diff --git a/apps/pdp10/diags/ka10/README.md b/apps/pdp10/diags/ka10/README.md index 048abc433..13fa79aac 100644 --- a/apps/pdp10/diags/ka10/README.md +++ b/apps/pdp10/diags/ka10/README.md @@ -11,7 +11,8 @@ PCjs has archived selected KA10 diagnostic source files from the [PDP-10 KLAD Diagnostics Sources](http://pdp-10.trailing-edge.com/klad_sources/index.html) and turned them into stand-alone PDP-10 diagnostics, using the new PCjs [MACRO-10 Mini-Assembler](/modules/pdp10/lib/macro10.js). -A complete list of supported diagnostics is provided [below](#list-of-ka10-diagnostics). +Complete lists of supported [diagnostics](#list-of-ka10-diagnostics) and [reliability tests](#list-of-ka10-reliability-tests) +are provided below. I've also experimented with assembling these diagnostics from the original (unmodified) source files. For example, you can go to the [DAKAK Diagnostic](dakak/) page and try the following command: @@ -134,5 +135,16 @@ so far. - TESTS OF MULTIPY, INTERGER MULTIPLY, DIVIDE, INTERGER DIVIDE* - [KA10 Basic Instruction Diagnostic #12 (MAINDEC-10-DAKAL)](dakal/) - TESTS THE MULTIPY, INTERGER MULIPLY, DIVIDE AND INTERGER DIVIDE INSTRUCTIONS* +- [KA10 Basic Instruction Diagnostic #13 (MAINDEC-10-DAKAL)](dakam/) + - TESTS THE BYTE, BLOCK TRANSFER AND JFFO INSTRUCTIONS *Gotta love those multipy, interger muliply, and interger divide tests! -JP + +List of KA10 Reliability Tests +------------------------------ + +Like the diagnostics above, the following list of KA10 Reliability Tests are simple those tests that have been archived and tested +with PDPjs so far. + +- [KA10 Basic Instruction Reliability Test #1 (MAINDEC-10-DAKBA)](dakba/) + - COMPARES, SKIPS, EXCHANGES, BOOLE, ROTATES, TESTS diff --git a/apps/pdp10/diags/ka10/dakam/README.md b/apps/pdp10/diags/ka10/dakam/README.md index a7cb55d86..ca61257dc 100644 --- a/apps/pdp10/diags/ka10/dakam/README.md +++ b/apps/pdp10/diags/ka10/dakam/README.md @@ -7,7 +7,7 @@ machines: type: pdp10 config: /devices/pdp10/machine/ka10/test/debugger/machine.xml debugger: true - commands: a dakam.mac;g 037653 + commands: a dakam.mac --- PDP-10 KA10 Basic Instruction Diagnostic #13 diff --git a/apps/pdp10/diags/ka10/dakba/DAKBA.LST.txt b/apps/pdp10/diags/ka10/dakba/DAKBA.LST.txt new file mode 100644 index 000000000..7ba7adc0c --- /dev/null +++ b/apps/pdp10/diags/ka10/dakba/DAKBA.LST.txt @@ -0,0 +1,7501 @@ +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 1 +DAKBAT MAC 21-JAN-77 16:42 DIAGNOSTIC PARAMETERS SEQ 0015 + + 1 ;MAINDEC-10-DAKBA + 2 + 3 000002 DECVER=002 + 4 000000 MCNVER=000 + 5 + 6 XLIST + 7 LIST + 8 LALL + 9 + 10 NAME \MCNVER,\DECVER^ + 11 + 12 TITLE DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 ^ + 13 + 14 XALL + 15 + 16 ;TEST DESIGNED FOR RANDOM NUMBER TESTING OF THE PDP-10 BASIC INSTRUCTIONS + 17 ;(COMPARES,SKIPS,EXCHANGES,BOOLE,ROTATES,TESTS,ETC.) + 18 + 19 ;COPYRIGHT 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 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 2 +DAKBAT MAC 21-JAN-77 16:42 DIAGNOSTIC PARAMETERS SEQ 0016 + + 29 SUBTTL DIAGNOSTIC PARAMETERS + 30 + 31 ;LUUO DEFINITIONS + 32 + 33 001000 000000 OPDEF ERR [1B8] + 34 002000 000000 OPDEF ERRM [2B8] + 35 003000 000000 OPDEF ERRI [3B8] + 36 004000 000000 OPDEF ERROR [4B8] + 37 005000 000000 OPDEF ER [5B8] + 38 011000 000000 OPDEF EERR [11B8] + 39 012000 000000 OPDEF EERRM [12B8] + 40 013000 000000 OPDEF EERRI [13B8] + 41 037316 LUUO1=ERRMES + 42 037316 LUUO2=ERRMES + 43 037316 LUUO3=ERRMES + 44 037316 LUUO4=ERRMES + 45 037316 LUUO5=ERRMES + 46 037316 LUUO11=ERRMES + 47 037316 LUUO12=ERRMES + 48 037316 LUUO13=ERRMES + 49 + 50 ;SUBROUTINE ASSEMBLY DEFINITIONS + 51 + 52 000001 EXCASB==1 + 53 000001 USRASB==1 + 54 000040 DEBUG==40 + 55 000001 KLOLD==1 + 56 000010 KA10=10 + 57 000001 PGMEND==1 + 58 000001 ERRELB==1 + 59 030000 SADR1==BEGIN + 60 030076 SADR2==RESRT1 + 61 030635 SADR3==RENTR1 + 62 030000 SADR4==BEGIN + 63 030000 SADR5==BEGIN + 64 030000 SADR6==BEGIN + 65 254200 030000 SADR7==HALT BEGIN + 66 254200 030000 SADR8==HALT BEGIN + 67 254200 030000 SADR9==HALT BEGIN + 68 254200 030000 SADR10==HALT BEGIN + 69 254200 030000 SADR11==HALT BEGIN + 70 123457 654321 PAREA1==123457,,654321 + 71 000000 PAREA2==0 + 72 444153 424100 PAREA3==SIXBIT/DAKBA/ + 73 645560 000000 PAREA4==SIXBIT/TMP/ + 74 000000 PAREA5==0 + 75 000000 PAREA6==0 + 76 000001 ITERAT==1 + 77 000001 ENDPGM==1 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 3 +DAKBAT MAC 21-JAN-77 16:42 DIAGNOSTIC PARAMETERS SEQ 0017 + + 78 ;MACROS + 79 + 80 DEFINE SETUP (A,B)< + 81 AC1=&17 + 82 AC2=&17 + 83 AC3=&17 + 84 AC4=&17 + 85 AC5=&17 + 86 RAN1=&17 + 87 MOVEI AC-1,. + 88 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 89 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 90 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 91 MOVEI AC-1,A ;ROUTINE WEIGHTING + 92 ASH AC-1,@CMPLXT+B ;ROUTINE COMPLEXITY + 93 ASH AC-1,@RTIME ;RUN TIME CONTROLLER > + 94 + 95 DEFINE RANDOM (A)< + 96 MOVE AC,RAN# ;GENERATE A PSEUDO RANDOM NUMBER + 97 ADD AC,[142536475076] + 98 ROT AC,-1 ;IN BOTH AC AND + 99 EQVB AC,RAN ;REGISTER RAN > + 100 + 101 DEFINE LOOP (A,B)< + 102 SOJG AC-1,A ;ITERATION COUNTER + 103 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 104 JUMPL AC-1,B ;LOOP ON ERROR SWITCH > +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 1 +PARAM KLM 18-JAN-77 11:38 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 SEQ 0018 + + 105 SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 + 106 + 107 DEFINE S,<;*********************************************************************> + 108 + 109 S^;*********************************************************************^ + 110 ;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE) + 111 ;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE + 112 ;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS + 113 S^;*********************************************************************^ + 114 + 115 400000 ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION + 116 200000 RSTART==200000 ;RESTART TEST, PRINT TOTALS + 117 100000 TOTALS==100000 ;PRINT TOTALS, CONTINUE + 118 + 119 040000 NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED) + 120 020000 PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE) + 121 010000 DING== 010000 ;RING BELL ON ERROR + 122 + 123 004000 LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR + 124 002000 ERSTOP==002000 ;HALT ON TEST ERROR + 125 001000 PALERS==001000 ;PRINT ALL ERRORS + 126 + 127 000400 RELIAB==000400 ;RELIABILITY MODE + 128 000200 TXTINH==000200 ;INHIBIT ERROR TEXT + 129 000100 INHPAG==000100 ;INHIBIT PAGING + 130 + 131 000040 MODDVC==000040 ;MODIFY DEVICE CODE + 132 000020 INHCSH==000020 ;INHIBIT CACHE + 133 000010 OPRSEL==000010 ;OPERATOR SELECTION + 134 + 135 000004 CHAIN== 000004 ;CHAIN CONTROL SWITCH + 136 + 137 000002 KAHZ50==000002 ;KA10 50 HERTZ POWER + 138 + 139 ;SWITCH 17 RESERVED !!! +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 2 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0019 + + 140 SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 + 141 + 142 S^;*********************************************************************^ + 143 ;*SPECIAL SUBPROGRAM LINKAGES + 144 S^;*********************************************************************^ + 145 + 146 027772 FSELNK= 27772 ;FILE SELECT LINK + 147 027773 FRDLNK= 27773 ;FILE READ LINK + 148 027774 LDLNK= 27774 ;LOAD LINKAGE ADDRESS + 149 027775 DDTLNK= 27775 ;DDT LINKAGE ADDRESS + 150 027776 MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS + 151 027777 SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS + 152 + 153 S^;*********************************************************************^ + 154 ;*SPECIAL SUBROUTINE FATAL HALTS + 155 ;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE + 156 S^;*********************************************************************^ + 157 + 158 ;ADDRESS TAG REASON + 159 ;--------------------- + 160 + 161 ; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION + 162 ; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR + 163 ; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR + 164 ; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT + 165 ; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL + 166 ; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET + 167 ; 1016 CPIERR ;CPU INITIALIZATION ERROR + 168 ; 1017 EOPERR ;END OF PROGRAM ERROR + 169 ; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT + 170 + 171 S^;*********************************************************************^ +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 3 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0020 + + 172 S^;*********************************************************************^ + 173 ;OPERATOR DEFINITIONS (NON-UUO'S) + 174 S^;*********************************************************************^ + 175 + 176 260740 000000 OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL + 177 263740 000000 OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN + 178 261740 000000 OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST + 179 262740 000000 OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST + 180 254000 000000 OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S + 181 254200 000000 OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT + 182 254100 000000 OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT + 183 254500 000000 OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT + 184 + 185 S^;*********************************************************************^ + 186 ;*SUBROUTINE INITIALIZATION CALL + 187 S^;*********************************************************************^ + 188 + 189 265000 030011 OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION + 190 + 191 S^;*********************************************************************^ + 192 ;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION). + 193 S^;*********************************************************************^ + 194 + 195 037640 000004 OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT + 196 037600 000004 OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT + 197 + 198 S^;*********************************************************************^ + 199 ;*TERMINAL INPUT UUO'S + 200 ;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE + 201 ;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE. + 202 S^;*********************************************************************^ + 203 + 204 037000 000003 OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER + 205 037040 000003 OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y + 206 037100 000003 OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N + 207 037140 000003 OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD + 208 037200 000003 OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD + 209 037240 000003 OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD + 210 037300 000003 OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK + 211 037340 000003 OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK + 212 037400 000003 OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD + 213 037440 000003 OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 4 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0021 + + 214 ;*TERMINAL OUTPUT UUO'S. + 215 + 216 037000 000000 OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD + 217 037000 000001 OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED + 218 037740 000000 OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE + 219 037740 000001 OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED + 220 037600 000003 OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE + 221 037640 000003 OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED + 222 037000 000000 OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE + 223 037040 000000 OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED + 224 037100 000000 OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE + 225 037200 000000 OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED + 226 037000 000000 OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE + 227 037040 000000 OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED + 228 037500 000000 OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER + 229 037500 000001 OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED + 230 037040 000000 OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT + 231 037040 000001 OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED + 232 037100 000000 OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS + 233 037100 000001 OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED + 234 037140 000000 OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS + 235 037140 000001 OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED + 236 037200 000000 OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS + 237 037200 000001 OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED + 238 037240 000000 OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS + 239 037240 000001 OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED + 240 037300 000000 OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS + 241 037300 000001 OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED + 242 037340 000000 OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS + 243 037340 000001 OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED + 244 037440 000000 OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS + 245 037440 000001 OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED. + 246 037400 000000 OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS + 247 037400 000001 OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED + 248 037600 000000 OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL + 249 037600 000001 OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED + 250 037540 000000 OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6 + 251 037540 000001 OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED + 252 037700 000003 OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S + 253 037740 000003 OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED + 254 037640 000000 OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S + 255 037640 000001 OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED + 256 037700 000000 OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S + 257 037700 000001 OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED + 258 037200 000002 OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME + 259 037000 000002 OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD + 260 037040 000002 OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED + 261 037240 000002 OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE + 262 037100 000002 OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD + 263 037140 000002 OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED + 264 037000 030242 OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED + 265 037040 030242 OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED + 266 037000 000040 OPDEF PSP [37B8!0B12!40] ;PRINT SPACE + 267 037040 000040 OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED + 268 037000 030243 OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 4-1 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0022 + + 269 037040 030243 OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED + 270 037040 000007 OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL + 271 + 272 037040 000026 OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE + 273 + 274 DEFINE PMSG (ARG),< + 275 PSIXM [SIXBIT\ARG'_\]> + 276 + 277 DEFINE PMSGF (ARG),< + 278 PSIXMF [SIXBIT\ARG'_\]> + 279 + 280 ;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING + 281 ;* CONSERVES CORE OVER ASCIZ + 282 + 283 DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]> + 284 + 285 ;*CONSOLE SWITCH INPUT UUO. + 286 ;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF + 287 ;* USER MODE. + 288 + 289 037400 000002 OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES + 290 + 291 ;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION + 292 ;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR. + 293 + 294 037540 000004 OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK + 295 037200 000004 OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER + 296 + 297 ;*KL10 ONLY CACHE OPERATION UUO'S + 298 + 299 037040 000004 OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE + 300 037100 000004 OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH + 301 037140 000004 OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 5 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0023 + + 302 ;*END OF PASS/PROGRAM UUOS + 303 + 304 ;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT, + 305 ;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC. + 306 + 307 037500 000004 OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS + 308 037700 000004 OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO + 309 + 310 ;*MEMORY MANAGEMENT UUO'S + 311 ;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING, + 312 ;*ADDRESS CONVERSION, ETC... + 313 + 314 037000 000004 OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY + 315 037500 000002 OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY + 316 037440 000002 OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT + 317 037540 000002 OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT + 318 037640 000002 OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK + 319 037600 000002 OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP + 320 037740 000002 OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP + 321 + 322 ;*DEVICE CODE MODIFICATION UUO + 323 ;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO + 324 ;*IOT'S TO A DIFFERENT DEVICE CODE. + 325 + 326 037340 000002 OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER + 327 037300 000002 OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM + 328 + 329 030000 IFNDEF MODDVL, + 330 030000 IFNDEF MODDVU, + 331 + 332 ;*"DIAMON" FILE SELECTION AND READ UUOS + 333 + 334 037240 000004 OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION + 335 037300 000004 OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA + 336 037340 000004 OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA + 337 037400 000004 OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA + 338 + 339 ;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES + 340 + 341 037700 000002 OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE + 342 + 343 XLIST + 344 LIST +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 1 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0024 + + 345 SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 + 346 + 347 030000 LOC 30000 + 348 + 349 S^;*********************************************************************^ + 350 ;*PROGRAM STARTING ADDRESSES + 351 ;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS + 352 ;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE + 353 ;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER + 354 ;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS. + 355 S^;*********************************************************************^ + 356 + 357 030000 254 00 1 00 027776 BEGIN: JRST @MODLNK ;STAND-ALONE START + 358 030001 254 00 0 00 030600 $START: JRST START ;MODE CHECK STARTING ADDRESS + 359 + 360 030002 254 00 1 00 027774 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START + 361 + 362 030003 254 00 1 00 027774 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START + 363 + 364 030004 254 00 0 00 030000 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START + 365 + 366 030005 254 00 0 00 030076 PFSTRT: JRST SADR2 ;POWER FAIL RESTART + 367 + 368 030006 254 00 0 00 030635 REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY) + 369 + 370 030007 SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT" + 371 030007 254 00 1 00 027775 DDTSRT: JRST @DDTLNK ;DDT START + 372 + 373 030010 254 00 0 00 030605 BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE) + 374 030011 254 00 1 00 027777 SBINIT: JRST @SUBLNK ;PMGINT LINKAGE + 375 030012 000000 000000 RETURN: 0 ;RETURN ADDRESS STORAGE + 376 + 377 030013 254200 030000 START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS + 378 030014 254200 030000 START2: SADR8 ; " + 379 030015 254200 030000 START3: SADR9 ; " + 380 030016 254200 030000 START4: SADR10 ; " + 381 030017 254200 030000 START5: SADR11 ; " +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 2 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0025 + + 382 S^;*********************************************************************^ + 383 ;*PROGRAM FIXED PARAMETER AREA + 384 S^;*********************************************************************^ + 385 + 386 030020 444153 424100 PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME + 387 030021 645560 000000 PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION + 388 030022 123457 654321 RANDBS: PAREA1 ;RANDOM BASE NUMBER + 389 030023 000000 000000 SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES + 390 030024 000000 000001 ITRCNT: ITERAT ;PROGRAM ITERATIONS + 391 030025 000000 030637 $PNAME: PGMNAM ;POINTER TO PROGRAMS NAME + 392 030026 000000 000002 $PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL + 393 030027 000000 030000 $MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT + 394 030030 000000 030000 $MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT + 395 030031 777777 777777 $EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED + 396 030032 777777 777777 $UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED + 397 030033 000000 000000 $DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE + 398 030034 000000 000000 $MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS + 399 030035 000000 000000 PAREA7: PAREA5 ;OPTIONAL PARAMETER + 400 030036 000000 000000 PAREA8: PAREA6 ;OPTIONAL PARAMETER + 401 + 402 S^;*********************************************************************^ + 403 ;*PROGRAM VARIABLE PARAMETER AREA + 404 S^;*********************************************************************^ + 405 + 406 030037 000000 000000 USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG + 407 030040 000000 000000 KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10 + 408 030041 000000 000000 KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10 + 409 030042 777777 777777 MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG + 410 030043 000000 000000 MONCTL: 0 ;DIAG MON/SYS EXR FLAG + 411 030044 000000 000000 MONTEN: 0 ;-1= LOADED BY 10 + 412 030045 000000 000000 CLOCKF: 0 ;CLOCK TICKED FLAG + 413 030046 000000 000000 CONSW: 0 ;CONSOLE SWITCH SETTINGS + 414 030047 000000 000000 PASCNT: 0 ;PROGRAM PASS COUNT + 415 030050 000000 000000 RUNFLG: 0 ;PROGRAM RUN FLAG + 416 030051 000000 000000 TESTPC: 0 ;SUBTEST PC + 417 030052 000000 000000 ERRPC: 0 ;ERROR PC + 418 030053 000000 000000 ERRTLS: 0 ;ERROR TOTALS + 419 030054 000000 000000 TICKS: 0 ;PROGRAM RUNNING TIME + 420 030055 000000 000000 MARGIN: 0 ;KI10 MARGIN WORD VALUE + 421 030056 000000 000000 $ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 3 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0026 + + 422 S^;*********************************************************************^ + 423 ;*SPECIAL PROGRAM DISPATCH ADDRESSES + 424 S^;*********************************************************************^ + 425 + 426 030057 037 12 0 00 000004 BEGEND: ENDUUO ;END OF PASS + 427 030060 254 00 0 00 030010 $BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM + 428 030061 037 16 0 00 000004 $BEND2: EOPUUO ;END OF PROGRAM - NO RETURN + 429 030062 000000 030000 CNTLC: SADR5 ;CONTROL C XFER ADDRESS + 430 030063 000000 030000 ALTMGO: SADR6 ;ALTMODE XFER ADDRESS + 431 030064 CPOPJ1: ;SKIP RETURN + 432 030064 350 00 0 17 000000 UUOSKP: AOS (P) ;SKIP RETURN FROM UUO + 433 030065 CPOPJ: ;NON-SKIP REGULAR RETURN + 434 030065 263 17 0 00 000000 UUOEXT: RTN ;UUO RETURN + 435 030066 255 00 0 00 000000 UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE + 436 030067 255 00 0 00 000000 $UORTX: JFCL ;ADDITIONAL UUO LINKAGE + 437 030070 255 00 0 00 000000 $UUOER: JFCL ;INITED AS (JRST $UOERX) + 438 030071 255 00 0 00 000000 $ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE + 439 030072 255 00 0 00 000000 $ITRX1: JFCL ; " + 440 030073 255 00 0 00 000000 $USRHL: JFCL ; " + 441 030074 255 00 0 00 000000 $RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE + 442 030075 255 00 0 00 000000 $RSRTY: JFCL ; " + 443 030076 255 00 0 00 000000 RESRT1: JFCL ; INITED AS (JRST RESRTX) + 444 030077 255 00 0 00 000000 RESRT2: JFCL ; " + 445 030100 255 00 0 00 000000 $PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE + 446 030101 255 00 0 00 000000 ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE + 447 030102 254 04 0 00 030102 HALT . ;IMPROPER TRANSFER HALT + 448 + 449 030103 000000 000000 $PSHER: 0 ;INITED AS (JRST PSHERR) + 450 030104 000000 000000 ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT + 451 030105 000000 000000 0 ;INITED AS (JRST $ITRC1) + 452 + 453 S^;*********************************************************************^ + 454 ;*PROCESSOR CONTROL STORAGE + 455 S^;*********************************************************************^ + 456 + 457 030106 000000 000000 $ACC0: 0 ;INTERRUPT SAVED AC0 + 458 030107 000000 000000 $SVPI: 0 ;INTERRUPT SAVED PI + 459 030110 000000 000000 $SVAPR: 0 ;INTERRUPT SAVED APR + 460 030111 000000 000000 $SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI) + 461 030112 000000 000000 $SPAG1: 0 ;INTERRUPT SAVED PAG (CONI) + 462 + 463 030113 000000 000000 $SVUUO: 0 ;CURRENT USERS UUO + 464 030114 000000 000000 $SVUPC: 0 ;PC OF CURRENT USERS UUO + 465 + 466 030115 000000 000000 REPTU: 0 ;REPEAT UUO ITERATIONS + 467 030116 000000 000000 SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG + 468 030117 000000 000000 %CORFLG:0 ; " CORRECT FLAG + 469 030120 000000 000000 %COREC: 0 ; " CORRECT DATA + 470 030121 000000 000000 %ACTFL: 0 ; " ACTUAL FLAG + 471 030122 000000 000000 %ACTUL: 0 ; " ACTUAL DATA + 472 030123 000000 000000 %DISCR: 0 ; " DISCREPENCY DATA +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 4 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0027 + + 473 S^;*********************************************************************^ + 474 ;*UUO DISPATCH TABLE + 475 S^;*********************************************************************^ + 476 XLIST + 477 LIST + 478 030124 037316 030070 UUODIS: LUUO1,,$UUOER + 479 030125 037316 037316 LUUO3,,LUUO2 + 480 030126 037316 037316 LUUO5,,LUUO4 + 481 030127 030070 030070 LUUO7,,LUUO6 + 482 030130 037316 030070 LUUO11,,LUUO10 + 483 030131 037316 037316 LUUO13,,LUUO12 + 484 030132 030070 030070 LUUO15,,LUUO14 + 485 030133 030070 030070 LUUO17,,LUUO16 + 486 030134 030070 030070 LUUO21,,LUUO20 + 487 030135 030070 030070 LUUO23,,LUUO22 + 488 030136 030070 030070 LUUO25,,LUUO24 + 489 030137 030070 030070 LUUO27,,LUUO26 + 490 030140 030070 030070 LUUO31,,LUUO30 + 491 030141 030070 030070 LUUO33,,LUUO32 + 492 + 493 S^;*********************************************************************^ + 494 ;*MEMORY MANAGMENT STORAGE + 495 S^;*********************************************************************^ + 496 + 497 030142 000000 000000 DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT + 498 030143 000000 000000 MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING + 499 030144 000000 000000 MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.) + 500 030145 000000 000000 MEMLOW: 0 ;LOWEST USABLE MEMORY + 501 030146 MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE + 502 + 503 S^;*********************************************************************^ + 504 ;*PRINT CONTROL STORAGE + 505 S^;*********************************************************************^ + 506 + 507 030217 000000 000000 PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE + 508 030220 000000 000000 PNTENB: 0 ;PRINT ENABLE + 509 030221 000000 000000 PDISF: 0 ;PRINT DISABLED FLAG + 510 030222 000000 000000 PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS + 511 030223 000000 000000 PNTSPC: 0 ;PRINT SPACE CONTROL + 512 030224 000000 000000 OPTIME: 0 ;TYPE-IN WAIT TIME + 513 030225 000000 000000 $TWCNT: 0 ;TIME WAITED + 514 030226 000000 000000 $DVOFF: 0 ;LOGICAL DEVICE INITED FLAG + 515 030227 000000 000000 TTYFIL: 0 ;TTY EXEC FILLERS FLAG + 516 030230 000000 000000 TTYSPD: 0 ;TTY EXEC BAUD RATE + 517 030231 000000 000000 $TTCHR: 0 ;ACTUAL TYPED IN CHAR + 518 030232 000000 000000 $CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR + 519 030233 000000 000000 $TYPNB: 0 ;TYPED IN NUMBER + 520 030234 000000 000000 $CRLF: 0 ;FREE CR/LF FLAG + 521 030235 000000 000000 $TABF: 0 ;TAB CONVERSION FLAG + 522 030236 000000 000000 $FFF: 0 ;FORM FEED CONVERSION FLAG + 523 030237 000000 000000 $VTF: 0 ;VERTICAL TAB CONVERSION FLAG + 524 030240 000000 000000 USRLFF: 0 ;USER LF FILLERS + 525 030241 000000 000000 USRCRF: 0 ;USER CR FILLERS +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 5 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0028 + + 526 S^;*********************************************************************^ + 527 ;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED + 528 ;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS: + 529 ;* MOVEI NAME + 530 ;* PNTA ;OR PNTAF + 531 S^;*********************************************************************^ + 532 + 533 030242 CRLF: ASCII/ + 534 030242 015 012 000 000 000 / + 535 030243 CRLF2: ASCII/ + 536 + 537 030243 015 012 015 012 000 / + 538 030244 054 000 000 000 000 COMMA: ASCII/,/ + 539 030245 056 000 000 000 000 PERIOD: ASCII/./ + 540 030246 040 000 000 000 000 SPACE: ASCII/ / + 541 030247 011 000 000 000 000 TAB: ASCII/ / + 542 030250 MINUS: + 543 030250 055 000 000 000 000 HYPEN: ASCII/-/ + 544 030251 053 000 000 000 000 PLUS: ASCII/+/ + 545 030252 052 000 000 000 000 AST: ASCII/*/ + 546 030253 100 000 000 000 000 ATSIN: ASCII/@/ + 547 030254 050 000 000 000 000 LFP: ASCII/(/ + 548 030255 051 000 000 000 000 RTP: ASCII/)/ + 549 030256 007 0000000000 BELL: BYTE (7) 007 + 550 030257 077 000 000 000 000 QUEST: ASCII/?/ + 551 030260 057 000 000 000 000 SLASH: ASCII!/! + 552 030261 044 000 000 000 000 DOLLAR: ASCII/$/ + 553 030262 000000 000012 RADIX: ^D10 ;DECIMAL PRINT RADIX + 554 030263 000000 000040 RADLSP: 40 ;DECIMAL PRINT LEADING CHAR + 555 030264 000000 000012 RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT + 556 + 557 S^;*********************************************************************^ + 558 ;*USER MODE OUTPUT FILE INFORMATION + 559 S^;*********************************************************************^ + 560 + 561 030265 $OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER + 562 030270 60 62 51 56 64 00 $OUTNM: SIXBIT /PRINT/ ;FILE NAME + 563 030271 60 56 64 00 00 00 $OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION + 564 030272 BLOCK 2 + 565 + 566 S^;*********************************************************************^ + 567 ;*DISK UPDATE MODE FILE INFORMATION + 568 S^;*********************************************************************^ + 569 + 570 030274 $IBUF: BLOCK 3 + 571 030277 60 62 51 56 64 00 $INNM: SIXBIT /PRINT/ + 572 030300 60 56 64 00 00 00 $INEXT: SIXBIT /PNT/ + 573 030301 BLOCK 2 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 6 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0029 + + 574 S^;*********************************************************************^ + 575 ;*PUSHDOWN LIST CONTROL INFORMATION + 576 S^;*********************************************************************^ + 577 + 578 030303 777577 030303 PLIST: PLIST-PLISTE,,PLIST + 579 030304 PLISTS: BLOCK 200 + 580 030504 000000 000000 PLISTE: 0 ;END OF PUSHDOWN LIST + 581 + 582 S^;*********************************************************************^ + 583 ;*POWER LINE CLOCK FREQUENCY FLAG + 584 S^;*********************************************************************^ + 585 + 586 030505 000000 000000 CYCL60: 0 ;0 = 60, -1 = 50 CYCLE + 587 + 588 S^;*********************************************************************^ + 589 ;*KL10 CACHE CONTROL FLAGS + 590 S^;*********************************************************************^ + 591 + 592 030506 000000 000000 CSHFLG: 0 ;ALLOW CACHE IF 0 + 593 030507 000000 000000 CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0 + 594 + 595 S^;*********************************************************************^ + 596 ;*NUMBER INPUT DIGIT FLAG + 597 S^;*********************************************************************^ + 598 + 599 030510 000000 000000 TTNBRF: 0 ;-1 IF ANY DIGIT TYPED + 600 + 601 S^;*********************************************************************^ + 602 ;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION + 603 S^;*********************************************************************^ + 604 + 605 030511 000000 000000 PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION + 606 + 607 S^;*********************************************************************^ + 608 ;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS + 609 S^;*********************************************************************^ + 610 + 611 030512 000000 000000 %ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO + 612 030513 000000 000000 %ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO + 613 030514 000000 000000 %ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO + 614 + 615 S^;*********************************************************************^ + 616 ;*SPECIAL USERS UUO INTERCEPT INSTRUCTION + 617 S^;*********************************************************************^ + 618 + 619 030515 000000 000000 $$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 7 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0030 + + 620 S^;*********************************************************************^ + 621 ;*KL10 PROCESSOR TYPE FLAG, 0=P0, 1=BBD NEW, 2=BBD OLD + 622 S^;*********************************************************************^ + 623 + 624 030516 000000 000000 KLTYP: 0 + 625 + 626 S^;*********************************************************************^ + 627 ;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION + 628 S^;*********************************************************************^ + 629 + 630 030517 000000 000000 $$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER + 631 + 632 S^;*********************************************************************^ + 633 ;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION + 634 S^;*********************************************************************^ + 635 + 636 030520 000000 000000 $$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR + 637 + 638 S^;*********************************************************************^ + 639 ;*"SWITCH" CALL USAGE CONTROL + 640 S^;*********************************************************************^ + 641 + 642 030521 000000 000000 $$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES + 643 + 644 S^;*********************************************************************^ + 645 ;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS + 646 S^;*********************************************************************^ + 647 + 648 030522 000000 000000 $$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL + 649 030523 000000 000000 $$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL + 650 + 651 S^;*********************************************************************^ + 652 ;*SPECIAL FUTURE EXPANSION ROOM + 653 ;*IF ANY FIXED AREA TAGS ARE ADDED, REDUCE THE SIZE OF + 654 ;*THIS BLOCK STATEMENT ACCORDINGLY. THIS MUST BE DONE + 655 ;*SO THAT PREVIOUS FIXED ASSIGNMENTS DO NOT CHANGE. + 656 S^;*********************************************************************^ + 657 + 658 030524 BLOCK 53 ;HOPEFULLY THIS IS ENOUGH FOREVER + 659 + 660 S^;*********************************************************************^ + 661 ;*END OF FIXED STORAGE + 662 S^;*********************************************************************^ + 663 + 664 030577 $ENDFX=&<777700>-1 + 665 030577 LOC $ENDFX + 666 030577 000000 000000 ENDFIX: 0 ;END OF FIXED STORAGE +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 1 +DAKBAM MAC 21-JAN-77 16:47 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0031 + + 667 ;INITIALIZE UUO HANDLER + 668 + 669 030600 265 00 0 00 030011 START: PGMINT ;INITIALIZE SUBROUTINES + 670 030601 200 00 0 00 030022 MOVE 0,RANDBS ;EXEC, SETUP RANDOM BASE + 671 030602 332 00 0 00 030037 SKIPE USER ;USER, USE TIME OF DAY IN JIFFIES + 672 030603 040 00 0 00 037560 CALL 0,[SIXBIT/TIMER/] + 673 030604 202 00 0 00 037667 MOVEM 0,RAN ;SETUP RANDOM BASE + 674 + 675 ;INITIALIZE COMPLEXITY TABLE + 676 000000 A=0 + 677 030605 402 00 0 00 030671 STARTA: SETZM CMPLXT ;STORE A TABLE OF POWERS OF 2 + 678 030606 201 01 0 00 000001 MOVEI 1,1 ;OR 0. + 679 030607 037 10 0 00 000002 SWITCH + 680 030610 607 00 0 00 000400 TLNN RELIAB ;FAST CYCLE SWITCH SET ? + 681 030611 402 00 0 00 000001 SETZM 1 ;YES, STORE ZERO'S + 682 REPEAT 7, + 683 < MOVEM 1,CMPLXT+1+A + 684 LSH 1,1 + 685 A=A+1> + 686 030612 202 01 0 00 030672 MOVEM 1,CMPLXT+1+A + 687 030613 242 01 0 00 000001 LSH 1,1 + 688 000001 A=A+1 + 689 030614 202 01 0 00 030673 MOVEM 1,CMPLXT+1+A + 690 030615 242 01 0 00 000001 LSH 1,1 + 691 000002 A=A+1 + 692 030616 202 01 0 00 030674 MOVEM 1,CMPLXT+1+A + 693 030617 242 01 0 00 000001 LSH 1,1 + 694 000003 A=A+1 + 695 030620 202 01 0 00 030675 MOVEM 1,CMPLXT+1+A + 696 030621 242 01 0 00 000001 LSH 1,1 + 697 000004 A=A+1 + 698 030622 202 01 0 00 030676 MOVEM 1,CMPLXT+1+A + 699 030623 242 01 0 00 000001 LSH 1,1 + 700 000005 A=A+1 + 701 030624 202 01 0 00 030677 MOVEM 1,CMPLXT+1+A + 702 030625 242 01 0 00 000001 LSH 1,1 + 703 000006 A=A+1 + 704 030626 202 01 0 00 030700 MOVEM 1,CMPLXT+1+A + 705 030627 242 01 0 00 000001 LSH 1,1 + 706 000007 A=A+1 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 2 +DAKBAM MAC 21-JAN-77 16:47 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0032 + + 707 ;INITIALIZE RUN TIME + 708 + 709 030630 201 01 0 00 000001 MOVEI 1,1 + 710 030631 603 00 0 00 000400 TLNE RELIAB ;FAST CYCLE SWITCH SET ? + 711 030632 201 01 0 00 000007 MOVEI 1,7 ;NO, MULTIPLY RUNNING TIME + 712 030633 202 01 0 00 030670 MOVEM 1,RTIME ;STORE IN RTIME + 713 + 714 030634 254 00 0 00 030711 JRST CAM1 ;GO PERFORM DIAGNOSTIC + 715 + 716 030635 037 05 0 00 000002 RENTR1: DROPDV ;CLOSE LOGICAL OUTPUT FILE + 717 030636 040 00 0 00 037561 CALL [SIXBIT .EXIT.] + 718 + 719 030637 PGMNAM: ASCIZ/ + 720 030637 015 012 120 104 120 PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST 1 (DAKBA) + 721 030640 055 061 060 040 040 + 722 030641 113 101 061 060 040 + 723 030642 102 101 123 111 103 + 724 030643 040 111 116 123 124 + 725 030644 122 125 103 124 111 + 726 030645 117 116 040 122 105 + 727 030646 114 111 101 102 111 + 728 030647 114 111 124 131 040 + 729 030650 124 105 123 124 040 + 730 030651 061 040 050 104 101 + 731 030652 113 102 101 051 015 + 732 030653 012 050 103 117 115 (COMPARES, SKIPS, EXCHANGES, BOOLE, ROTATES, TESTS, ETC.) + 733 030654 120 101 122 105 123 + 734 030655 054 040 123 113 111 + 735 030656 120 123 054 040 105 + 736 030657 130 103 110 101 116 + 737 030660 107 105 123 054 040 + 738 030661 102 117 117 114 105 + 739 030662 054 040 122 117 124 + 740 030663 101 124 105 123 054 + 741 030664 040 124 105 123 124 + 742 030665 123 054 040 105 124 + 743 030666 103 056 051 015 012 / + 744 030667 000 000 000 000 000 + 745 ;CONSTANTS + 746 + 747 030670 000000 000000 RTIME: 0 + 748 030671 CMPLXT: BLOCK 20 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 3 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0033 + + 749 SUBTTL DIAGNOSTIC SECTION + 750 LALL + 751 + 752 ;TEST CAMN,CAME (SIMPLE) + 753 ;THE CONTENTS OF THE AC IS COMPARED WITH ITSELF + 754 ;AN ERROR WILL OCCUR IF CAMN SKIPS OR CAME FAILS TO SKIP + 755 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 756 ;15 ACS ARE USED IN THE TEST + 757 + 758 000002 AC=2 + 759 030711 CAM1: SETUP 20,0^ + 760 000003 AC1=&17 + 761 000004 AC2=&17 + 762 000005 AC3=&17 + 763 000006 AC4=&17 + 764 000007 AC5=&17 + 765 000000 RAN1=&17 + 766 030711 201 01 0 00 030711 MOVEI AC-1,. + 767 030712 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 768 030713 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 769 030714 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 770 030715 201 01 0 00 000020 MOVEI AC-1,20 ;ROUTINE WEIGHTING + 771 030716 240 01 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 772 030717 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 773 RANDOM^ + 774 030720 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 775 030721 270 02 0 00 037562 ADD AC,[142536475076] + 776 030722 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 777 030723 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 778 CAMNE1: REPEAT ^D10, + 779 < MOVE AC,RAN + 780 CAMN AC,AC ;C(AC) = C(AC) + 781 CAME AC,AC + 782 ERROR AC,AC ;CHECK CAME,CAMN + 783 AC=&17 + 784 > + 785 030724 200 02 0 00 037667 MOVE AC,RAN + 786 030725 316 02 0 00 000002 CAMN AC,AC ;C(AC) = C(AC) + 787 030726 312 02 0 00 000002 CAME AC,AC + 788 030727 004 02 0 00 000002 ERROR AC,AC ;CHECK CAME,CAMN + 789 000003 AC=&17 + 790 + 791 030730 200 03 0 00 037667 MOVE AC,RAN + 792 030731 316 03 0 00 000003 CAMN AC,AC ;C(AC) = C(AC) + 793 030732 312 03 0 00 000003 CAME AC,AC + 794 030733 004 03 0 00 000003 ERROR AC,AC ;CHECK CAME,CAMN + 795 000004 AC=&17 + 796 + 797 030734 200 04 0 00 037667 MOVE AC,RAN + 798 030735 316 04 0 00 000004 CAMN AC,AC ;C(AC) = C(AC) + 799 030736 312 04 0 00 000004 CAME AC,AC + 800 030737 004 04 0 00 000004 ERROR AC,AC ;CHECK CAME,CAMN + 801 000005 AC=&17 + 802 + 803 030740 200 05 0 00 037667 MOVE AC,RAN +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 3-1 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0034 + + 804 030741 316 05 0 00 000005 CAMN AC,AC ;C(AC) = C(AC) + 805 030742 312 05 0 00 000005 CAME AC,AC + 806 030743 004 05 0 00 000005 ERROR AC,AC ;CHECK CAME,CAMN + 807 000006 AC=&17 + 808 + 809 030744 200 06 0 00 037667 MOVE AC,RAN + 810 030745 316 06 0 00 000006 CAMN AC,AC ;C(AC) = C(AC) + 811 030746 312 06 0 00 000006 CAME AC,AC + 812 030747 004 06 0 00 000006 ERROR AC,AC ;CHECK CAME,CAMN + 813 000007 AC=&17 + 814 + 815 030750 200 07 0 00 037667 MOVE AC,RAN + 816 030751 316 07 0 00 000007 CAMN AC,AC ;C(AC) = C(AC) + 817 030752 312 07 0 00 000007 CAME AC,AC + 818 030753 004 07 0 00 000007 ERROR AC,AC ;CHECK CAME,CAMN + 819 000010 AC=&17 + 820 + 821 030754 200 10 0 00 037667 MOVE AC,RAN + 822 030755 316 10 0 00 000010 CAMN AC,AC ;C(AC) = C(AC) + 823 030756 312 10 0 00 000010 CAME AC,AC + 824 030757 004 10 0 00 000010 ERROR AC,AC ;CHECK CAME,CAMN + 825 000011 AC=&17 + 826 + 827 030760 200 11 0 00 037667 MOVE AC,RAN + 828 030761 316 11 0 00 000011 CAMN AC,AC ;C(AC) = C(AC) + 829 030762 312 11 0 00 000011 CAME AC,AC + 830 030763 004 11 0 00 000011 ERROR AC,AC ;CHECK CAME,CAMN + 831 000012 AC=&17 + 832 + 833 030764 200 12 0 00 037667 MOVE AC,RAN + 834 030765 316 12 0 00 000012 CAMN AC,AC ;C(AC) = C(AC) + 835 030766 312 12 0 00 000012 CAME AC,AC + 836 030767 004 12 0 00 000012 ERROR AC,AC ;CHECK CAME,CAMN + 837 000013 AC=&17 + 838 + 839 030770 200 13 0 00 037667 MOVE AC,RAN + 840 030771 316 13 0 00 000013 CAMN AC,AC ;C(AC) = C(AC) + 841 030772 312 13 0 00 000013 CAME AC,AC + 842 030773 004 13 0 00 000013 ERROR AC,AC ;CHECK CAME,CAMN + 843 000014 AC=&17 + 844 + 845 000002 AC=2 + 846 LOOP CAMNE1-3,CAMNE1^ + 847 030774 367 01 0 00 030721 SOJG AC-1,CAMNE1-3 ;ITERATION COUNTER + 848 030775 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 849 030776 321 01 0 00 030724 JUMPL AC-1,CAMNE1 ;LOOP ON ERROR SWITCH ^ + 850 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 4 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0035 + + 851 + 852 ;TEST MOVE TO AC,FURTHER TEST OF CAME + 853 ;THE C(AC) IS COMPARED WITH THE CONTENTS OF THE RANDOM + 854 ;NUMBER GENERATOR. 15 ACS ARE USED IN THE TEST + 855 ;ERRORS ARE PRINTED IN THE FORM (PC,AC,C(AC),CORRECT) + 856 + 857 000002 AC=2 + 858 030777 MOVAC: SETUP 20,0^ + 859 000003 AC1=&17 + 860 000004 AC2=&17 + 861 000005 AC3=&17 + 862 000006 AC4=&17 + 863 000007 AC5=&17 + 864 000000 RAN1=&17 + 865 030777 201 01 0 00 030777 MOVEI AC-1,. + 866 031000 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 867 031001 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 868 031002 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 869 031003 201 01 0 00 000020 MOVEI AC-1,20 ;ROUTINE WEIGHTING + 870 031004 240 01 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 871 031005 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 872 RANDOM^ + 873 031006 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 874 031007 270 02 0 00 037562 ADD AC,[142536475076] + 875 031010 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 876 031011 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 877 MOVAC1: REPEAT ^D10, + 878 < MOVE AC,RAN ;MOVE RAN INTO AC. + 879 CAME AC,RAN ;RANDOM SHOULD EQUAL AC + 880 ERROR AC,RAN ;IF NOT MOVE FAILED + 881 CAME AC,RAN# ;IF AC=RAN CAME FAILED + 882 ERROR AC,RAN# ;IF PREVIOUS WORKED,INHIBIT STORE + 883 AC=&17 ;AC ON CAME FAILED + 884 > + 885 031012 200 02 0 00 037667 MOVE AC,RAN ;MOVE RAN INTO AC. + 886 031013 312 02 0 00 037667 CAME AC,RAN ;RANDOM SHOULD EQUAL AC + 887 031014 004 02 0 00 037667 ERROR AC,RAN ;IF NOT MOVE FAILED + 888 031015 312 02 0 00 037667 CAME AC,RAN# ;IF AC=RAN CAME FAILED + 889 031016 004 02 0 00 037667 ERROR AC,RAN# ;IF PREVIOUS WORKED,INHIBIT STORE + 890 000003 AC=&17 ;AC ON CAME FAILED + 891 + 892 031017 200 03 0 00 037667 MOVE AC,RAN ;MOVE RAN INTO AC. + 893 031020 312 03 0 00 037667 CAME AC,RAN ;RANDOM SHOULD EQUAL AC + 894 031021 004 03 0 00 037667 ERROR AC,RAN ;IF NOT MOVE FAILED + 895 031022 312 03 0 00 037667 CAME AC,RAN# ;IF AC=RAN CAME FAILED + 896 031023 004 03 0 00 037667 ERROR AC,RAN# ;IF PREVIOUS WORKED,INHIBIT STORE + 897 000004 AC=&17 ;AC ON CAME FAILED + 898 + 899 031024 200 04 0 00 037667 MOVE AC,RAN ;MOVE RAN INTO AC. + 900 031025 312 04 0 00 037667 CAME AC,RAN ;RANDOM SHOULD EQUAL AC + 901 031026 004 04 0 00 037667 ERROR AC,RAN ;IF NOT MOVE FAILED + 902 031027 312 04 0 00 037667 CAME AC,RAN# ;IF AC=RAN CAME FAILED + 903 031030 004 04 0 00 037667 ERROR AC,RAN# ;IF PREVIOUS WORKED,INHIBIT STORE + 904 000005 AC=&17 ;AC ON CAME FAILED + 905 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 4-1 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0036 + + 906 031031 200 05 0 00 037667 MOVE AC,RAN ;MOVE RAN INTO AC. + 907 031032 312 05 0 00 037667 CAME AC,RAN ;RANDOM SHOULD EQUAL AC + 908 031033 004 05 0 00 037667 ERROR AC,RAN ;IF NOT MOVE FAILED + 909 031034 312 05 0 00 037667 CAME AC,RAN# ;IF AC=RAN CAME FAILED + 910 031035 004 05 0 00 037667 ERROR AC,RAN# ;IF PREVIOUS WORKED,INHIBIT STORE + 911 000006 AC=&17 ;AC ON CAME FAILED + 912 + 913 031036 200 06 0 00 037667 MOVE AC,RAN ;MOVE RAN INTO AC. + 914 031037 312 06 0 00 037667 CAME AC,RAN ;RANDOM SHOULD EQUAL AC + 915 031040 004 06 0 00 037667 ERROR AC,RAN ;IF NOT MOVE FAILED + 916 031041 312 06 0 00 037667 CAME AC,RAN# ;IF AC=RAN CAME FAILED + 917 031042 004 06 0 00 037667 ERROR AC,RAN# ;IF PREVIOUS WORKED,INHIBIT STORE + 918 000007 AC=&17 ;AC ON CAME FAILED + 919 + 920 031043 200 07 0 00 037667 MOVE AC,RAN ;MOVE RAN INTO AC. + 921 031044 312 07 0 00 037667 CAME AC,RAN ;RANDOM SHOULD EQUAL AC + 922 031045 004 07 0 00 037667 ERROR AC,RAN ;IF NOT MOVE FAILED + 923 031046 312 07 0 00 037667 CAME AC,RAN# ;IF AC=RAN CAME FAILED + 924 031047 004 07 0 00 037667 ERROR AC,RAN# ;IF PREVIOUS WORKED,INHIBIT STORE + 925 000010 AC=&17 ;AC ON CAME FAILED + 926 + 927 031050 200 10 0 00 037667 MOVE AC,RAN ;MOVE RAN INTO AC. + 928 031051 312 10 0 00 037667 CAME AC,RAN ;RANDOM SHOULD EQUAL AC + 929 031052 004 10 0 00 037667 ERROR AC,RAN ;IF NOT MOVE FAILED + 930 031053 312 10 0 00 037667 CAME AC,RAN# ;IF AC=RAN CAME FAILED + 931 031054 004 10 0 00 037667 ERROR AC,RAN# ;IF PREVIOUS WORKED,INHIBIT STORE + 932 000011 AC=&17 ;AC ON CAME FAILED + 933 + 934 031055 200 11 0 00 037667 MOVE AC,RAN ;MOVE RAN INTO AC. + 935 031056 312 11 0 00 037667 CAME AC,RAN ;RANDOM SHOULD EQUAL AC + 936 031057 004 11 0 00 037667 ERROR AC,RAN ;IF NOT MOVE FAILED + 937 031060 312 11 0 00 037667 CAME AC,RAN# ;IF AC=RAN CAME FAILED + 938 031061 004 11 0 00 037667 ERROR AC,RAN# ;IF PREVIOUS WORKED,INHIBIT STORE + 939 000012 AC=&17 ;AC ON CAME FAILED + 940 + 941 031062 200 12 0 00 037667 MOVE AC,RAN ;MOVE RAN INTO AC. + 942 031063 312 12 0 00 037667 CAME AC,RAN ;RANDOM SHOULD EQUAL AC + 943 031064 004 12 0 00 037667 ERROR AC,RAN ;IF NOT MOVE FAILED + 944 031065 312 12 0 00 037667 CAME AC,RAN# ;IF AC=RAN CAME FAILED + 945 031066 004 12 0 00 037667 ERROR AC,RAN# ;IF PREVIOUS WORKED,INHIBIT STORE + 946 000013 AC=&17 ;AC ON CAME FAILED + 947 + 948 031067 200 13 0 00 037667 MOVE AC,RAN ;MOVE RAN INTO AC. + 949 031070 312 13 0 00 037667 CAME AC,RAN ;RANDOM SHOULD EQUAL AC + 950 031071 004 13 0 00 037667 ERROR AC,RAN ;IF NOT MOVE FAILED + 951 031072 312 13 0 00 037667 CAME AC,RAN# ;IF AC=RAN CAME FAILED + 952 031073 004 13 0 00 037667 ERROR AC,RAN# ;IF PREVIOUS WORKED,INHIBIT STORE + 953 000014 AC=&17 ;AC ON CAME FAILED + 954 + 955 000002 AC=2 + 956 LOOP MOVAC1-3,MOVAC1^ + 957 031074 367 01 0 00 031007 SOJG AC-1,MOVAC1-3 ;ITERATION COUNTER + 958 031075 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 959 031076 321 01 0 00 031012 JUMPL AC-1,MOVAC1 ;LOOP ON ERROR SWITCH ^ +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 5 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0037 + + 960 + 961 ;TEST THE SKIP INST FOR NO SKIP,ABILITY TO LOAD + 962 ;AN AC,AC SELECTION,AND AC0 LOGIC(NOT LOADING 0) + 963 ;ERRORS ARE PRESENTED IN THE FORM(PC,AC,C(AC),CORRECT) + 964 + 965 000005 AC=5 + 966 031077 SKP: SETUP 30,0^ + 967 000006 AC1=&17 + 968 000007 AC2=&17 + 969 000010 AC3=&17 + 970 000011 AC4=&17 + 971 000012 AC5=&17 + 972 000003 RAN1=&17 + 973 031077 201 04 0 00 031077 MOVEI AC-1,. + 974 031100 202 04 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 975 031101 201 04 0 00 000004 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 976 031102 202 04 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 977 031103 201 04 0 00 000030 MOVEI AC-1,30 ;ROUTINE WEIGHTING + 978 031104 240 04 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 979 031105 240 04 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 980 RANDOM^ + 981 031106 200 05 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 982 031107 270 05 0 00 037562 ADD AC,[142536475076] + 983 031110 241 05 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 984 031111 447 05 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 985 031112 200 00 0 00 037563 SKP1: MOVE [0] ;DO NOT USE AC0 FOR SKIP + 986 REPEAT ^D8, + 987 < SKIP AC1,RAN# ;STORE IN AC,DO NOT SKIP,CHECK + 988 CAME AC1,AC ;NEW AC AGAINST PREVIOUSLY + 989 ERROR AC1,AC ;STORED AC. IF AC=AC+1(SKIP LOGIC) + 990 CAME [0] ;IF NOT= STORE CYCLE + 991 ERROR [0] ;IF 0 NONE ZERO ADDR/STORE + 992 AC=&17 + 993 AC1=&17 + 994 > + 995 031113 330 06 0 00 037667 SKIP AC1,RAN# ;STORE IN AC,DO NOT SKIP,CHECK + 996 031114 312 06 0 00 000005 CAME AC1,AC ;NEW AC AGAINST PREVIOUSLY + 997 031115 004 06 0 00 000005 ERROR AC1,AC ;STORED AC. IF AC=AC+1(SKIP LOGIC) + 998 031116 312 00 0 00 037563 CAME [0] ;IF NOT= STORE CYCLE + 999 031117 004 00 0 00 037563 ERROR [0] ;IF 0 NONE ZERO ADDR/STORE + 1000 000006 AC=&17 + 1001 000007 AC1=&17 + 1002 + 1003 031120 330 07 0 00 037667 SKIP AC1,RAN# ;STORE IN AC,DO NOT SKIP,CHECK + 1004 031121 312 07 0 00 000006 CAME AC1,AC ;NEW AC AGAINST PREVIOUSLY + 1005 031122 004 07 0 00 000006 ERROR AC1,AC ;STORED AC. IF AC=AC+1(SKIP LOGIC) + 1006 031123 312 00 0 00 037563 CAME [0] ;IF NOT= STORE CYCLE + 1007 031124 004 00 0 00 037563 ERROR [0] ;IF 0 NONE ZERO ADDR/STORE + 1008 000007 AC=&17 + 1009 000010 AC1=&17 + 1010 + 1011 031125 330 10 0 00 037667 SKIP AC1,RAN# ;STORE IN AC,DO NOT SKIP,CHECK + 1012 031126 312 10 0 00 000007 CAME AC1,AC ;NEW AC AGAINST PREVIOUSLY + 1013 031127 004 10 0 00 000007 ERROR AC1,AC ;STORED AC. IF AC=AC+1(SKIP LOGIC) + 1014 031130 312 00 0 00 037563 CAME [0] ;IF NOT= STORE CYCLE +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 5-1 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0038 + + 1015 031131 004 00 0 00 037563 ERROR [0] ;IF 0 NONE ZERO ADDR/STORE + 1016 000010 AC=&17 + 1017 000011 AC1=&17 + 1018 + 1019 031132 330 11 0 00 037667 SKIP AC1,RAN# ;STORE IN AC,DO NOT SKIP,CHECK + 1020 031133 312 11 0 00 000010 CAME AC1,AC ;NEW AC AGAINST PREVIOUSLY + 1021 031134 004 11 0 00 000010 ERROR AC1,AC ;STORED AC. IF AC=AC+1(SKIP LOGIC) + 1022 031135 312 00 0 00 037563 CAME [0] ;IF NOT= STORE CYCLE + 1023 031136 004 00 0 00 037563 ERROR [0] ;IF 0 NONE ZERO ADDR/STORE + 1024 000011 AC=&17 + 1025 000012 AC1=&17 + 1026 + 1027 031137 330 12 0 00 037667 SKIP AC1,RAN# ;STORE IN AC,DO NOT SKIP,CHECK + 1028 031140 312 12 0 00 000011 CAME AC1,AC ;NEW AC AGAINST PREVIOUSLY + 1029 031141 004 12 0 00 000011 ERROR AC1,AC ;STORED AC. IF AC=AC+1(SKIP LOGIC) + 1030 031142 312 00 0 00 037563 CAME [0] ;IF NOT= STORE CYCLE + 1031 031143 004 00 0 00 037563 ERROR [0] ;IF 0 NONE ZERO ADDR/STORE + 1032 000012 AC=&17 + 1033 000013 AC1=&17 + 1034 + 1035 031144 330 13 0 00 037667 SKIP AC1,RAN# ;STORE IN AC,DO NOT SKIP,CHECK + 1036 031145 312 13 0 00 000012 CAME AC1,AC ;NEW AC AGAINST PREVIOUSLY + 1037 031146 004 13 0 00 000012 ERROR AC1,AC ;STORED AC. IF AC=AC+1(SKIP LOGIC) + 1038 031147 312 00 0 00 037563 CAME [0] ;IF NOT= STORE CYCLE + 1039 031150 004 00 0 00 037563 ERROR [0] ;IF 0 NONE ZERO ADDR/STORE + 1040 000013 AC=&17 + 1041 000014 AC1=&17 + 1042 + 1043 031151 330 14 0 00 037667 SKIP AC1,RAN# ;STORE IN AC,DO NOT SKIP,CHECK + 1044 031152 312 14 0 00 000013 CAME AC1,AC ;NEW AC AGAINST PREVIOUSLY + 1045 031153 004 14 0 00 000013 ERROR AC1,AC ;STORED AC. IF AC=AC+1(SKIP LOGIC) + 1046 031154 312 00 0 00 037563 CAME [0] ;IF NOT= STORE CYCLE + 1047 031155 004 00 0 00 037563 ERROR [0] ;IF 0 NONE ZERO ADDR/STORE + 1048 000014 AC=&17 + 1049 000015 AC1=&17 + 1050 + 1051 031156 330 15 0 00 037667 SKIP AC1,RAN# ;STORE IN AC,DO NOT SKIP,CHECK + 1052 031157 312 15 0 00 000014 CAME AC1,AC ;NEW AC AGAINST PREVIOUSLY + 1053 031160 004 15 0 00 000014 ERROR AC1,AC ;STORED AC. IF AC=AC+1(SKIP LOGIC) + 1054 031161 312 00 0 00 037563 CAME [0] ;IF NOT= STORE CYCLE + 1055 031162 004 00 0 00 037563 ERROR [0] ;IF 0 NONE ZERO ADDR/STORE + 1056 000015 AC=&17 + 1057 000016 AC1=&17 + 1058 + 1059 000005 AC=5 + 1060 LOOP SKP1-4,SKP1^ + 1061 031163 367 04 0 00 031106 SOJG AC-1,SKP1-4 ;ITERATION COUNTER + 1062 031164 200 05 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 1063 031165 321 04 0 00 031112 JUMPL AC-1,SKP1 ;LOOP ON ERROR SWITCH ^ +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 6 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0039 + + 1064 + 1065 ;TEST SKIPA INST FOR PC INCREMENT,ABILITY TO LOAD AN AC, + 1066 ;AC SELECTION AND AC0 LOGIC(NOT LOADING 0).ERRORS ARE + 1067 ;PRESENTED IN THE FORM (PC,AC,C(AC),CORRECT) + 1068 + 1069 000005 AC=5 + 1070 031166 SKPA: SETUP 30,0^ + 1071 000006 AC1=&17 + 1072 000007 AC2=&17 + 1073 000010 AC3=&17 + 1074 000011 AC4=&17 + 1075 000012 AC5=&17 + 1076 000003 RAN1=&17 + 1077 031166 201 04 0 00 031166 MOVEI AC-1,. + 1078 031167 202 04 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 1079 031170 201 04 0 00 000004 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 1080 031171 202 04 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 1081 031172 201 04 0 00 000030 MOVEI AC-1,30 ;ROUTINE WEIGHTING + 1082 031173 240 04 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 1083 031174 240 04 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 1084 RANDOM^ + 1085 031175 200 05 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 1086 031176 270 05 0 00 037562 ADD AC,[142536475076] + 1087 031177 241 05 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 1088 031200 447 05 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 1089 031201 200 00 0 00 037563 SKPA1: MOVE [0] ;DO NOT USE AC0 FOR SKIPA + 1090 REPEAT ^D8, + 1091 < SKIPA AC1,AC ;LOAD AC1 AND SKIP + 1092 ER AC,[ASCII /SKP/] ;FAILED TO SKIP. + 1093 CAME AC,RAN ;C(E) GET CHANGED? + 1094 ERROR AC,RAN ;YES. + 1095 CAME AC1,RAN ;AC GET LOADED WITH RAN? + 1096 ERROR AC1,RAN ;NO. + 1097 CAME 0,[0] ;C(AC0) STILL = 0? + 1098 ERROR [0] ;CHECK STORE CYCLE,AC ADDRESS + 1099 AC=&17 + 1100 AC1=&17 + 1101 > + 1102 031202 334 06 0 00 000005 SKIPA AC1,AC ;LOAD AC1 AND SKIP + 1103 031203 005 05 0 00 037564 ER AC,[ASCII /SKP/] ;FAILED TO SKIP. + 1104 031204 312 05 0 00 037667 CAME AC,RAN ;C(E) GET CHANGED? + 1105 031205 004 05 0 00 037667 ERROR AC,RAN ;YES. + 1106 031206 312 06 0 00 037667 CAME AC1,RAN ;AC GET LOADED WITH RAN? + 1107 031207 004 06 0 00 037667 ERROR AC1,RAN ;NO. + 1108 031210 312 00 0 00 037563 CAME 0,[0] ;C(AC0) STILL = 0? + 1109 031211 004 00 0 00 037563 ERROR [0] ;CHECK STORE CYCLE,AC ADDRESS + 1110 000006 AC=&17 + 1111 000007 AC1=&17 + 1112 + 1113 031212 334 07 0 00 000006 SKIPA AC1,AC ;LOAD AC1 AND SKIP + 1114 031213 005 06 0 00 037564 ER AC,[ASCII /SKP/] ;FAILED TO SKIP. + 1115 031214 312 06 0 00 037667 CAME AC,RAN ;C(E) GET CHANGED? + 1116 031215 004 06 0 00 037667 ERROR AC,RAN ;YES. + 1117 031216 312 07 0 00 037667 CAME AC1,RAN ;AC GET LOADED WITH RAN? + 1118 031217 004 07 0 00 037667 ERROR AC1,RAN ;NO. +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 6-1 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0040 + + 1119 031220 312 00 0 00 037563 CAME 0,[0] ;C(AC0) STILL = 0? + 1120 031221 004 00 0 00 037563 ERROR [0] ;CHECK STORE CYCLE,AC ADDRESS + 1121 000007 AC=&17 + 1122 000010 AC1=&17 + 1123 + 1124 031222 334 10 0 00 000007 SKIPA AC1,AC ;LOAD AC1 AND SKIP + 1125 031223 005 07 0 00 037564 ER AC,[ASCII /SKP/] ;FAILED TO SKIP. + 1126 031224 312 07 0 00 037667 CAME AC,RAN ;C(E) GET CHANGED? + 1127 031225 004 07 0 00 037667 ERROR AC,RAN ;YES. + 1128 031226 312 10 0 00 037667 CAME AC1,RAN ;AC GET LOADED WITH RAN? + 1129 031227 004 10 0 00 037667 ERROR AC1,RAN ;NO. + 1130 031230 312 00 0 00 037563 CAME 0,[0] ;C(AC0) STILL = 0? + 1131 031231 004 00 0 00 037563 ERROR [0] ;CHECK STORE CYCLE,AC ADDRESS + 1132 000010 AC=&17 + 1133 000011 AC1=&17 + 1134 + 1135 031232 334 11 0 00 000010 SKIPA AC1,AC ;LOAD AC1 AND SKIP + 1136 031233 005 10 0 00 037564 ER AC,[ASCII /SKP/] ;FAILED TO SKIP. + 1137 031234 312 10 0 00 037667 CAME AC,RAN ;C(E) GET CHANGED? + 1138 031235 004 10 0 00 037667 ERROR AC,RAN ;YES. + 1139 031236 312 11 0 00 037667 CAME AC1,RAN ;AC GET LOADED WITH RAN? + 1140 031237 004 11 0 00 037667 ERROR AC1,RAN ;NO. + 1141 031240 312 00 0 00 037563 CAME 0,[0] ;C(AC0) STILL = 0? + 1142 031241 004 00 0 00 037563 ERROR [0] ;CHECK STORE CYCLE,AC ADDRESS + 1143 000011 AC=&17 + 1144 000012 AC1=&17 + 1145 + 1146 031242 334 12 0 00 000011 SKIPA AC1,AC ;LOAD AC1 AND SKIP + 1147 031243 005 11 0 00 037564 ER AC,[ASCII /SKP/] ;FAILED TO SKIP. + 1148 031244 312 11 0 00 037667 CAME AC,RAN ;C(E) GET CHANGED? + 1149 031245 004 11 0 00 037667 ERROR AC,RAN ;YES. + 1150 031246 312 12 0 00 037667 CAME AC1,RAN ;AC GET LOADED WITH RAN? + 1151 031247 004 12 0 00 037667 ERROR AC1,RAN ;NO. + 1152 031250 312 00 0 00 037563 CAME 0,[0] ;C(AC0) STILL = 0? + 1153 031251 004 00 0 00 037563 ERROR [0] ;CHECK STORE CYCLE,AC ADDRESS + 1154 000012 AC=&17 + 1155 000013 AC1=&17 + 1156 + 1157 031252 334 13 0 00 000012 SKIPA AC1,AC ;LOAD AC1 AND SKIP + 1158 031253 005 12 0 00 037564 ER AC,[ASCII /SKP/] ;FAILED TO SKIP. + 1159 031254 312 12 0 00 037667 CAME AC,RAN ;C(E) GET CHANGED? + 1160 031255 004 12 0 00 037667 ERROR AC,RAN ;YES. + 1161 031256 312 13 0 00 037667 CAME AC1,RAN ;AC GET LOADED WITH RAN? + 1162 031257 004 13 0 00 037667 ERROR AC1,RAN ;NO. + 1163 031260 312 00 0 00 037563 CAME 0,[0] ;C(AC0) STILL = 0? + 1164 031261 004 00 0 00 037563 ERROR [0] ;CHECK STORE CYCLE,AC ADDRESS + 1165 000013 AC=&17 + 1166 000014 AC1=&17 + 1167 + 1168 031262 334 14 0 00 000013 SKIPA AC1,AC ;LOAD AC1 AND SKIP + 1169 031263 005 13 0 00 037564 ER AC,[ASCII /SKP/] ;FAILED TO SKIP. + 1170 031264 312 13 0 00 037667 CAME AC,RAN ;C(E) GET CHANGED? + 1171 031265 004 13 0 00 037667 ERROR AC,RAN ;YES. + 1172 031266 312 14 0 00 037667 CAME AC1,RAN ;AC GET LOADED WITH RAN? + 1173 031267 004 14 0 00 037667 ERROR AC1,RAN ;NO. +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 6-2 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0041 + + 1174 031270 312 00 0 00 037563 CAME 0,[0] ;C(AC0) STILL = 0? + 1175 031271 004 00 0 00 037563 ERROR [0] ;CHECK STORE CYCLE,AC ADDRESS + 1176 000014 AC=&17 + 1177 000015 AC1=&17 + 1178 + 1179 031272 334 15 0 00 000014 SKIPA AC1,AC ;LOAD AC1 AND SKIP + 1180 031273 005 14 0 00 037564 ER AC,[ASCII /SKP/] ;FAILED TO SKIP. + 1181 031274 312 14 0 00 037667 CAME AC,RAN ;C(E) GET CHANGED? + 1182 031275 004 14 0 00 037667 ERROR AC,RAN ;YES. + 1183 031276 312 15 0 00 037667 CAME AC1,RAN ;AC GET LOADED WITH RAN? + 1184 031277 004 15 0 00 037667 ERROR AC1,RAN ;NO. + 1185 031300 312 00 0 00 037563 CAME 0,[0] ;C(AC0) STILL = 0? + 1186 031301 004 00 0 00 037563 ERROR [0] ;CHECK STORE CYCLE,AC ADDRESS + 1187 000015 AC=&17 + 1188 000016 AC1=&17 + 1189 + 1190 000005 AC=5 + 1191 LOOP SKPA1-4,SKPA1^ + 1192 031302 367 04 0 00 031175 SOJG AC-1,SKPA1-4 ;ITERATION COUNTER + 1193 031303 200 05 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 1194 031304 321 04 0 00 031201 JUMPL AC-1,SKPA1 ;LOOP ON ERROR SWITCH ^ + 1195 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 7 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0042 + + 1196 + 1197 ;TEST EXCH. BOTH AC AND E ARE AC'S. CHECK FOR + 1198 ;CORRECT DATA IN AC AND C(E). + 1199 ;C(E) = -1, C(AC) = RAN NUM. + 1200 + 1201 000005 AC=5 + 1202 031305 EXCH1: SETUP 200,0^ + 1203 000006 AC1=&17 + 1204 000007 AC2=&17 + 1205 000010 AC3=&17 + 1206 000011 AC4=&17 + 1207 000012 AC5=&17 + 1208 000003 RAN1=&17 + 1209 031305 201 04 0 00 031305 MOVEI AC-1,. + 1210 031306 202 04 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 1211 031307 201 04 0 00 000004 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 1212 031310 202 04 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 1213 031311 201 04 0 00 000200 MOVEI AC-1,200 ;ROUTINE WEIGHTING + 1214 031312 240 04 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 1215 031313 240 04 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 1216 031314 EXCH2: RANDOM^ + 1217 031314 200 05 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 1218 031315 270 05 0 00 037562 ADD AC,[142536475076] + 1219 031316 241 05 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 1220 031317 447 05 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 1221 031320 477 06 0 00 000003 EXCH3: SETOB AC1,RAN1 ;MAKE C(E) = -1. + 1222 031321 250 05 0 00 000006 EXCH AC,AC1 ;DO THE EXCH. + 1223 031322 312 05 0 00 000003 CAME AC,RAN1 ;THE C(AC) SHOULD = ORIG C(E). + 1224 031323 001 03 0 00 037667 ERR RAN1,RAN + 1225 031324 312 06 0 00 037667 CAME AC1,RAN ;THE C(E) SHOULD = ORIG C(AC). + 1226 031325 001 03 0 00 037667 ERR RAN1,RAN + 1227 LOOP EXCH2,EXCH3^ + 1228 031326 367 04 0 00 031314 SOJG AC-1,EXCH2 ;ITERATION COUNTER + 1229 031327 200 05 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 1230 031330 321 04 0 00 031320 JUMPL AC-1,EXCH3 ;LOOP ON ERROR SWITCH ^ + 1231 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 8 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0043 + + 1232 + 1233 ;TEST SETCA FOR COMPLEMENT AC AND NOT STORING IN C(E) + 1234 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 1235 ;SETCA DOES NOT NORMALLY CHANGE THE CONTENTS OF "E" + 1236 + 1237 000010 AC=10 + 1238 BOLCA: REPEAT 2, + 1239 < SETUP 100,2 + 1240 RANDOM + 1241 MOVE AC2,[0] ;CLEAR AC2, USED TO INSURE + 1242 SETCA AC,AC2 ;SETCA DOES NOT STORE IN C(E) + 1243 CAMN AC,RAN# ;IF AC UNCHANGED CNTL PULSES + 1244 ERROR AC,RAN ;FOR INST SETCA FAILED + 1245 REPEAT 3, + 1246 < SETCA AC,AC2> + 1247 CAME AC,RAN# ;A TOTAL OF 4 COMPLEMENTS + 1248 ERROR AC,RAN ;SHOULD PRODUCE ORIGINAL NUM + 1249 CAME AC2,[0] ;IF SETCA STORED C(E) + 1250 ERROR AC2,[0] ;C(AC2) WILL NO LONGER BE 0. + 1251 LOOP .-16,.-15 + 1252 AC=AC+17 + 1253 > + 1254 SETUP 100,2^ + 1255 000011 AC1=&17 + 1256 000012 AC2=&17 + 1257 000013 AC3=&17 + 1258 000014 AC4=&17 + 1259 000015 AC5=&17 + 1260 000006 RAN1=&17 + 1261 031331 201 07 0 00 031331 MOVEI AC-1,. + 1262 031332 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 1263 031333 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 1264 031334 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 1265 031335 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 1266 031336 240 07 1 00 030673 ASH AC-1,@CMPLXT+2 ;ROUTINE COMPLEXITY + 1267 031337 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 1268 RANDOM^ + 1269 031340 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 1270 031341 270 10 0 00 037562 ADD AC,[142536475076] + 1271 031342 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 1272 031343 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 1273 031344 200 12 0 00 037563 MOVE AC2,[0] ;CLEAR AC2, USED TO INSURE + 1274 031345 450 10 0 00 000012 SETCA AC,AC2 ;SETCA DOES NOT STORE IN C(E) + 1275 031346 316 10 0 00 037667 CAMN AC,RAN# ;IF AC UNCHANGED CNTL PULSES + 1276 031347 004 10 0 00 037667 ERROR AC,RAN ;FOR INST SETCA FAILED + 1277 REPEAT 3, + 1278 031350 450 10 0 00 000012 SETCA AC,AC2 + 1279 031351 450 10 0 00 000012 SETCA AC,AC2 + 1280 031352 450 10 0 00 000012 SETCA AC,AC2 + 1281 031353 312 10 0 00 037667 CAME AC,RAN# ;A TOTAL OF 4 COMPLEMENTS + 1282 031354 004 10 0 00 037667 ERROR AC,RAN ;SHOULD PRODUCE ORIGINAL NUM + 1283 031355 312 12 0 00 037563 CAME AC2,[0] ;IF SETCA STORED C(E) + 1284 031356 004 12 0 00 037563 ERROR AC2,[0] ;C(AC2) WILL NO LONGER BE 0. + 1285 LOOP .-16,.-15^ + 1286 031357 367 07 0 00 031341 SOJG AC-1,.-16 ;ITERATION COUNTER +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 8-1 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0044 + + 1287 031360 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 1288 031361 321 07 0 00 031344 JUMPL AC-1,.-15 ;LOOP ON ERROR SWITCH ^ + 1289 000027 AC=AC+17 + 1290 + 1291 SETUP 100,2^ + 1292 000010 AC1=&17 + 1293 000011 AC2=&17 + 1294 000012 AC3=&17 + 1295 000013 AC4=&17 + 1296 000014 AC5=&17 + 1297 000005 RAN1=&17 + 1298 031362 201 06 0 00 031362 MOVEI AC-1,. + 1299 031363 202 06 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 1300 031364 201 06 0 00 000006 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 1301 031365 202 06 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 1302 031366 201 06 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 1303 031367 240 06 1 00 030673 ASH AC-1,@CMPLXT+2 ;ROUTINE COMPLEXITY + 1304 031370 240 06 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 1305 RANDOM^ + 1306 031371 200 07 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 1307 031372 270 07 0 00 037562 ADD AC,[142536475076] + 1308 031373 241 07 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 1309 031374 447 07 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 1310 031375 200 11 0 00 037563 MOVE AC2,[0] ;CLEAR AC2, USED TO INSURE + 1311 031376 450 07 0 00 000011 SETCA AC,AC2 ;SETCA DOES NOT STORE IN C(E) + 1312 031377 316 07 0 00 037667 CAMN AC,RAN# ;IF AC UNCHANGED CNTL PULSES + 1313 031400 004 07 0 00 037667 ERROR AC,RAN ;FOR INST SETCA FAILED + 1314 REPEAT 3, + 1315 031401 450 07 0 00 000011 SETCA AC,AC2 + 1316 031402 450 07 0 00 000011 SETCA AC,AC2 + 1317 031403 450 07 0 00 000011 SETCA AC,AC2 + 1318 031404 312 07 0 00 037667 CAME AC,RAN# ;A TOTAL OF 4 COMPLEMENTS + 1319 031405 004 07 0 00 037667 ERROR AC,RAN ;SHOULD PRODUCE ORIGINAL NUM + 1320 031406 312 11 0 00 037563 CAME AC2,[0] ;IF SETCA STORED C(E) + 1321 031407 004 11 0 00 037563 ERROR AC2,[0] ;C(AC2) WILL NO LONGER BE 0. + 1322 LOOP .-16,.-15^ + 1323 031410 367 06 0 00 031372 SOJG AC-1,.-16 ;ITERATION COUNTER + 1324 031411 200 07 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 1325 031412 321 06 0 00 031375 JUMPL AC-1,.-15 ;LOOP ON ERROR SWITCH ^ + 1326 000046 AC=AC+17 + 1327 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 9 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0045 + + 1328 + 1329 ;TEST SETCAI ABILITY TO COMPLEMENT AC AND FAILURE TO FETCH C(E) + 1330 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT + 1331 ;SETCA IS INDEXED FOR NOISE PURPOSES + 1332 + 1333 000005 AC=5 + 1334 031413 BOLCAI: SETUP 40,0^ + 1335 000006 AC1=&17 + 1336 000007 AC2=&17 + 1337 000010 AC3=&17 + 1338 000011 AC4=&17 + 1339 000012 AC5=&17 + 1340 000003 RAN1=&17 + 1341 031413 201 04 0 00 031413 MOVEI AC-1,. + 1342 031414 202 04 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 1343 031415 201 04 0 00 000004 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 1344 031416 202 04 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 1345 031417 201 04 0 00 000040 MOVEI AC-1,40 ;ROUTINE WEIGHTING + 1346 031420 240 04 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 1347 031421 240 04 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 1348 031422 BOLCA1: RANDOM^ + 1349 031422 200 05 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 1350 031423 270 05 0 00 037562 ADD AC,[142536475076] + 1351 031424 241 05 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 1352 031425 447 05 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 1353 BOLCA2: REPEAT 4, + 1354 < MOVE AC1,AC ;MOVE RANDOM TO AN AC + 1355 SETCAI AC1,-1(AC) ;TWO COMP SHOULD PRODUCE + 1356 SETCAI AC1,777000(AC) ;ORIGINAL NUMBER + 1357 CAME AC1,AC ;SETCAI FAILED + 1358 ERROR AC1,AC + 1359 AC=&17 + 1360 AC1=&17 + 1361 > + 1362 031426 200 06 0 00 000005 MOVE AC1,AC ;MOVE RANDOM TO AN AC + 1363 031427 451 06 0 05 777777 SETCAI AC1,-1(AC) ;TWO COMP SHOULD PRODUCE + 1364 031430 451 06 0 05 777000 SETCAI AC1,777000(AC) ;ORIGINAL NUMBER + 1365 031431 312 06 0 00 000005 CAME AC1,AC ;SETCAI FAILED + 1366 031432 004 06 0 00 000005 ERROR AC1,AC + 1367 000006 AC=&17 + 1368 000007 AC1=&17 + 1369 + 1370 031433 200 07 0 00 000006 MOVE AC1,AC ;MOVE RANDOM TO AN AC + 1371 031434 451 07 0 06 777777 SETCAI AC1,-1(AC) ;TWO COMP SHOULD PRODUCE + 1372 031435 451 07 0 06 777000 SETCAI AC1,777000(AC) ;ORIGINAL NUMBER + 1373 031436 312 07 0 00 000006 CAME AC1,AC ;SETCAI FAILED + 1374 031437 004 07 0 00 000006 ERROR AC1,AC + 1375 000007 AC=&17 + 1376 000010 AC1=&17 + 1377 + 1378 031440 200 10 0 00 000007 MOVE AC1,AC ;MOVE RANDOM TO AN AC + 1379 031441 451 10 0 07 777777 SETCAI AC1,-1(AC) ;TWO COMP SHOULD PRODUCE + 1380 031442 451 10 0 07 777000 SETCAI AC1,777000(AC) ;ORIGINAL NUMBER + 1381 031443 312 10 0 00 000007 CAME AC1,AC ;SETCAI FAILED + 1382 031444 004 10 0 00 000007 ERROR AC1,AC +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 9-1 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0046 + + 1383 000010 AC=&17 + 1384 000011 AC1=&17 + 1385 + 1386 031445 200 11 0 00 000010 MOVE AC1,AC ;MOVE RANDOM TO AN AC + 1387 031446 451 11 0 10 777777 SETCAI AC1,-1(AC) ;TWO COMP SHOULD PRODUCE + 1388 031447 451 11 0 10 777000 SETCAI AC1,777000(AC) ;ORIGINAL NUMBER + 1389 031450 312 11 0 00 000010 CAME AC1,AC ;SETCAI FAILED + 1390 031451 004 11 0 00 000010 ERROR AC1,AC + 1391 000011 AC=&17 + 1392 000012 AC1=&17 + 1393 + 1394 000005 AC=5 + 1395 LOOP BOLCA1,BOLCA2^ + 1396 031452 367 04 0 00 031422 SOJG AC-1,BOLCA1 ;ITERATION COUNTER + 1397 031453 200 05 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 1398 031454 321 04 0 00 031426 JUMPL AC-1,BOLCA2 ;LOOP ON ERROR SWITCH ^ + 1399 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 10 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0047 + + 1400 + 1401 ;TEST XOR TO ZERO,XOR 0 TO N,N TO N,-1 TO N + 1402 ;THREE ACS ARE USED IN THE TEST + 1403 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT + 1404 + 1405 000001 AC=1 + 1406 BOLX: REPEAT 3, + 1407 < SETUP 200,0 + 1408 RANDOM + 1409 MOVE AC,[0] ;CLEAR THE AC + 1410 XOR AC,RAN ;0 EXCLUSIVE ORED WITH + 1411 CAME AC,RAN ;RANDOM SHOULD = RANDOM + 1412 ERROR AC,RAN ;XOR FAILED + 1413 XOR AC,[0] ;ANY NUMBER XORED + 1414 CAME AC,RAN ;WITH THE NUMBER 0 + 1415 ERROR AC,RAN ;SHOULD REMAIN UNCHANGED + 1416 XOR AC,RAN ;ANY NUMBER XORED + 1417 CAME AC,[0] ;WITH ITSELF SHOULD + 1418 ERROR AC,[0] ;EQUAL 0 + 1419 XOR AC,[-1] ;SET AC TO ALL ONES + 1420 XOR AC,RAN ;AC SHOULD CONTAIN COMP OF RAN + 1421 XOR AC,[-1] ;RECOMPLEMENT AC TO ORIG + 1422 CAME AC,RAN ;CHECK FOR RANDOM + 1423 ERROR AC,RAN ;XOR FAILED + 1424 LOOP .-22,.-21 + 1425 AC=AC+1 + 1426 > + 1427 SETUP 200,0^ + 1428 000002 AC1=&17 + 1429 000003 AC2=&17 + 1430 000004 AC3=&17 + 1431 000005 AC4=&17 + 1432 000006 AC5=&17 + 1433 000017 RAN1=&17 + 1434 031455 201 00 0 00 031455 MOVEI AC-1,. + 1435 031456 202 00 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 1436 031457 201 00 0 00 000000 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 1437 031460 202 00 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 1438 031461 201 00 0 00 000200 MOVEI AC-1,200 ;ROUTINE WEIGHTING + 1439 031462 240 00 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 1440 031463 240 00 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 1441 RANDOM^ + 1442 031464 200 01 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 1443 031465 270 01 0 00 037562 ADD AC,[142536475076] + 1444 031466 241 01 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 1445 031467 447 01 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 1446 031470 200 01 0 00 037563 MOVE AC,[0] ;CLEAR THE AC + 1447 031471 430 01 0 00 037667 XOR AC,RAN ;0 EXCLUSIVE ORED WITH + 1448 031472 312 01 0 00 037667 CAME AC,RAN ;RANDOM SHOULD = RANDOM + 1449 031473 004 01 0 00 037667 ERROR AC,RAN ;XOR FAILED + 1450 031474 430 01 0 00 037563 XOR AC,[0] ;ANY NUMBER XORED + 1451 031475 312 01 0 00 037667 CAME AC,RAN ;WITH THE NUMBER 0 + 1452 031476 004 01 0 00 037667 ERROR AC,RAN ;SHOULD REMAIN UNCHANGED + 1453 031477 430 01 0 00 037667 XOR AC,RAN ;ANY NUMBER XORED + 1454 031500 312 01 0 00 037563 CAME AC,[0] ;WITH ITSELF SHOULD +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 10-1 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0048 + + 1455 031501 004 01 0 00 037563 ERROR AC,[0] ;EQUAL 0 + 1456 031502 430 01 0 00 037565 XOR AC,[-1] ;SET AC TO ALL ONES + 1457 031503 430 01 0 00 037667 XOR AC,RAN ;AC SHOULD CONTAIN COMP OF RAN + 1458 031504 430 01 0 00 037565 XOR AC,[-1] ;RECOMPLEMENT AC TO ORIG + 1459 031505 312 01 0 00 037667 CAME AC,RAN ;CHECK FOR RANDOM + 1460 031506 004 01 0 00 037667 ERROR AC,RAN ;XOR FAILED + 1461 LOOP .-22,.-21^ + 1462 031507 367 00 0 00 031465 SOJG AC-1,.-22 ;ITERATION COUNTER + 1463 031510 200 01 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 1464 031511 321 00 0 00 031470 JUMPL AC-1,.-21 ;LOOP ON ERROR SWITCH ^ + 1465 000002 AC=AC+1 + 1466 + 1467 SETUP 200,0^ + 1468 000003 AC1=&17 + 1469 000004 AC2=&17 + 1470 000005 AC3=&17 + 1471 000006 AC4=&17 + 1472 000007 AC5=&17 + 1473 000000 RAN1=&17 + 1474 031512 201 01 0 00 031512 MOVEI AC-1,. + 1475 031513 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 1476 031514 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 1477 031515 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 1478 031516 201 01 0 00 000200 MOVEI AC-1,200 ;ROUTINE WEIGHTING + 1479 031517 240 01 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 1480 031520 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 1481 RANDOM^ + 1482 031521 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 1483 031522 270 02 0 00 037562 ADD AC,[142536475076] + 1484 031523 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 1485 031524 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 1486 031525 200 02 0 00 037563 MOVE AC,[0] ;CLEAR THE AC + 1487 031526 430 02 0 00 037667 XOR AC,RAN ;0 EXCLUSIVE ORED WITH + 1488 031527 312 02 0 00 037667 CAME AC,RAN ;RANDOM SHOULD = RANDOM + 1489 031530 004 02 0 00 037667 ERROR AC,RAN ;XOR FAILED + 1490 031531 430 02 0 00 037563 XOR AC,[0] ;ANY NUMBER XORED + 1491 031532 312 02 0 00 037667 CAME AC,RAN ;WITH THE NUMBER 0 + 1492 031533 004 02 0 00 037667 ERROR AC,RAN ;SHOULD REMAIN UNCHANGED + 1493 031534 430 02 0 00 037667 XOR AC,RAN ;ANY NUMBER XORED + 1494 031535 312 02 0 00 037563 CAME AC,[0] ;WITH ITSELF SHOULD + 1495 031536 004 02 0 00 037563 ERROR AC,[0] ;EQUAL 0 + 1496 031537 430 02 0 00 037565 XOR AC,[-1] ;SET AC TO ALL ONES + 1497 031540 430 02 0 00 037667 XOR AC,RAN ;AC SHOULD CONTAIN COMP OF RAN + 1498 031541 430 02 0 00 037565 XOR AC,[-1] ;RECOMPLEMENT AC TO ORIG + 1499 031542 312 02 0 00 037667 CAME AC,RAN ;CHECK FOR RANDOM + 1500 031543 004 02 0 00 037667 ERROR AC,RAN ;XOR FAILED + 1501 LOOP .-22,.-21^ + 1502 031544 367 01 0 00 031522 SOJG AC-1,.-22 ;ITERATION COUNTER + 1503 031545 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 1504 031546 321 01 0 00 031525 JUMPL AC-1,.-21 ;LOOP ON ERROR SWITCH ^ + 1505 000003 AC=AC+1 + 1506 + 1507 SETUP 200,0^ + 1508 000004 AC1=&17 + 1509 000005 AC2=&17 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 10-2 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0049 + + 1510 000006 AC3=&17 + 1511 000007 AC4=&17 + 1512 000010 AC5=&17 + 1513 000001 RAN1=&17 + 1514 031547 201 02 0 00 031547 MOVEI AC-1,. + 1515 031550 202 02 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 1516 031551 201 02 0 00 000002 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 1517 031552 202 02 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 1518 031553 201 02 0 00 000200 MOVEI AC-1,200 ;ROUTINE WEIGHTING + 1519 031554 240 02 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 1520 031555 240 02 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 1521 RANDOM^ + 1522 031556 200 03 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 1523 031557 270 03 0 00 037562 ADD AC,[142536475076] + 1524 031560 241 03 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 1525 031561 447 03 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 1526 031562 200 03 0 00 037563 MOVE AC,[0] ;CLEAR THE AC + 1527 031563 430 03 0 00 037667 XOR AC,RAN ;0 EXCLUSIVE ORED WITH + 1528 031564 312 03 0 00 037667 CAME AC,RAN ;RANDOM SHOULD = RANDOM + 1529 031565 004 03 0 00 037667 ERROR AC,RAN ;XOR FAILED + 1530 031566 430 03 0 00 037563 XOR AC,[0] ;ANY NUMBER XORED + 1531 031567 312 03 0 00 037667 CAME AC,RAN ;WITH THE NUMBER 0 + 1532 031570 004 03 0 00 037667 ERROR AC,RAN ;SHOULD REMAIN UNCHANGED + 1533 031571 430 03 0 00 037667 XOR AC,RAN ;ANY NUMBER XORED + 1534 031572 312 03 0 00 037563 CAME AC,[0] ;WITH ITSELF SHOULD + 1535 031573 004 03 0 00 037563 ERROR AC,[0] ;EQUAL 0 + 1536 031574 430 03 0 00 037565 XOR AC,[-1] ;SET AC TO ALL ONES + 1537 031575 430 03 0 00 037667 XOR AC,RAN ;AC SHOULD CONTAIN COMP OF RAN + 1538 031576 430 03 0 00 037565 XOR AC,[-1] ;RECOMPLEMENT AC TO ORIG + 1539 031577 312 03 0 00 037667 CAME AC,RAN ;CHECK FOR RANDOM + 1540 031600 004 03 0 00 037667 ERROR AC,RAN ;XOR FAILED + 1541 LOOP .-22,.-21^ + 1542 031601 367 02 0 00 031557 SOJG AC-1,.-22 ;ITERATION COUNTER + 1543 031602 200 03 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 1544 031603 321 02 0 00 031562 JUMPL AC-1,.-21 ;LOOP ON ERROR SWITCH ^ + 1545 000004 AC=AC+1 + 1546 + 1547 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 11 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0050 + + 1548 + 1549 ;TEST SETZI AND IOR. SETZI ABILITY TO CLEAR,IOR RAN TO 0, + 1550 ;RANDOM TO RANDOM,RANDOM TO COMP RANDOM,0 TO RANDOM + 1551 ;ERROR IN THE FORM (PC,AC,C(AC),CORRECT) + 1552 + 1553 000005 AC=5 + 1554 031604 BOLZI: SETUP 100,0^ + 1555 000006 AC1=&17 + 1556 000007 AC2=&17 + 1557 000010 AC3=&17 + 1558 000011 AC4=&17 + 1559 000012 AC5=&17 + 1560 000003 RAN1=&17 + 1561 031604 201 04 0 00 031604 MOVEI AC-1,. + 1562 031605 202 04 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 1563 031606 201 04 0 00 000004 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 1564 031607 202 04 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 1565 031610 201 04 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 1566 031611 240 04 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 1567 031612 240 04 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 1568 RANDOM^ + 1569 031613 200 05 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 1570 031614 270 05 0 00 037562 ADD AC,[142536475076] + 1571 031615 241 05 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 1572 031616 447 05 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 1573 BOLZI1: REPEAT 2, + 1574 < MOVE AC,RAN# ;LOAD THE AC THEN + 1575 SETZI AC,(AC) ;TRY TO CLEAR IT,INDEX REDUNDANT + 1576 CAME AC,[0] ;IF NOT 0 + 1577 ERROR AC,[0] ;SETZI FAILED + 1578 IOR AC,RAN ;INCLUSIVE OR OF A + 1579 CAME AC,RAN ;NUMBER TO 0 SHOULD PRODUCE + 1580 ERROR AC,RAN ;THE NUMBER + 1581 IOR AC,RAN ;IOR SAME NUMBERS + 1582 CAME AC,RAN ;SHOULD HAVE NO EFFECT + 1583 ERROR AC,RAN ;ON AC.IOR FAILED + 1584 IOR AC,[0] ;IOR OF NO BITS SHOULD DO NOTHING + 1585 CAME AC,RAN + 1586 ERROR AC,RAN ;IOR FAILED + 1587 SETCA AC,0 + 1588 IOR AC,RAN ;INCLUSIVE OR OF COMP NUMBERS + 1589 CAME AC,[-1] ;SHOULD SET ALL BITS + 1590 ERROR AC,[-1] ;IOR FAILED + 1591 IOR AC,[-1] ;ALL BITS TO ALL BITS + 1592 CAME AC,[-1] ;PRODUCE ALL BITS + 1593 ERROR AC,[-1] + 1594 AC=&17 + 1595 > + 1596 031617 200 05 0 00 037667 MOVE AC,RAN# ;LOAD THE AC THEN + 1597 031620 401 05 0 05 000000 SETZI AC,(AC) ;TRY TO CLEAR IT,INDEX REDUNDANT + 1598 031621 312 05 0 00 037563 CAME AC,[0] ;IF NOT 0 + 1599 031622 004 05 0 00 037563 ERROR AC,[0] ;SETZI FAILED + 1600 031623 434 05 0 00 037667 IOR AC,RAN ;INCLUSIVE OR OF A + 1601 031624 312 05 0 00 037667 CAME AC,RAN ;NUMBER TO 0 SHOULD PRODUCE + 1602 031625 004 05 0 00 037667 ERROR AC,RAN ;THE NUMBER +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 11-1 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0051 + + 1603 031626 434 05 0 00 037667 IOR AC,RAN ;IOR SAME NUMBERS + 1604 031627 312 05 0 00 037667 CAME AC,RAN ;SHOULD HAVE NO EFFECT + 1605 031630 004 05 0 00 037667 ERROR AC,RAN ;ON AC.IOR FAILED + 1606 031631 434 05 0 00 037563 IOR AC,[0] ;IOR OF NO BITS SHOULD DO NOTHING + 1607 031632 312 05 0 00 037667 CAME AC,RAN + 1608 031633 004 05 0 00 037667 ERROR AC,RAN ;IOR FAILED + 1609 031634 450 05 0 00 000000 SETCA AC,0 + 1610 031635 434 05 0 00 037667 IOR AC,RAN ;INCLUSIVE OR OF COMP NUMBERS + 1611 031636 312 05 0 00 037565 CAME AC,[-1] ;SHOULD SET ALL BITS + 1612 031637 004 05 0 00 037565 ERROR AC,[-1] ;IOR FAILED + 1613 031640 434 05 0 00 037565 IOR AC,[-1] ;ALL BITS TO ALL BITS + 1614 031641 312 05 0 00 037565 CAME AC,[-1] ;PRODUCE ALL BITS + 1615 031642 004 05 0 00 037565 ERROR AC,[-1] + 1616 000006 AC=&17 + 1617 + 1618 031643 200 06 0 00 037667 MOVE AC,RAN# ;LOAD THE AC THEN + 1619 031644 401 06 0 06 000000 SETZI AC,(AC) ;TRY TO CLEAR IT,INDEX REDUNDANT + 1620 031645 312 06 0 00 037563 CAME AC,[0] ;IF NOT 0 + 1621 031646 004 06 0 00 037563 ERROR AC,[0] ;SETZI FAILED + 1622 031647 434 06 0 00 037667 IOR AC,RAN ;INCLUSIVE OR OF A + 1623 031650 312 06 0 00 037667 CAME AC,RAN ;NUMBER TO 0 SHOULD PRODUCE + 1624 031651 004 06 0 00 037667 ERROR AC,RAN ;THE NUMBER + 1625 031652 434 06 0 00 037667 IOR AC,RAN ;IOR SAME NUMBERS + 1626 031653 312 06 0 00 037667 CAME AC,RAN ;SHOULD HAVE NO EFFECT + 1627 031654 004 06 0 00 037667 ERROR AC,RAN ;ON AC.IOR FAILED + 1628 031655 434 06 0 00 037563 IOR AC,[0] ;IOR OF NO BITS SHOULD DO NOTHING + 1629 031656 312 06 0 00 037667 CAME AC,RAN + 1630 031657 004 06 0 00 037667 ERROR AC,RAN ;IOR FAILED + 1631 031660 450 06 0 00 000000 SETCA AC,0 + 1632 031661 434 06 0 00 037667 IOR AC,RAN ;INCLUSIVE OR OF COMP NUMBERS + 1633 031662 312 06 0 00 037565 CAME AC,[-1] ;SHOULD SET ALL BITS + 1634 031663 004 06 0 00 037565 ERROR AC,[-1] ;IOR FAILED + 1635 031664 434 06 0 00 037565 IOR AC,[-1] ;ALL BITS TO ALL BITS + 1636 031665 312 06 0 00 037565 CAME AC,[-1] ;PRODUCE ALL BITS + 1637 031666 004 06 0 00 037565 ERROR AC,[-1] + 1638 000007 AC=&17 + 1639 + 1640 000005 AC=5 + 1641 LOOP BOLZI1-4,BOLZI1^ + 1642 031667 367 04 0 00 031613 SOJG AC-1,BOLZI1-4 ;ITERATION COUNTER + 1643 031670 200 05 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 1644 031671 321 04 0 00 031617 JUMPL AC-1,BOLZI1 ;LOOP ON ERROR SWITCH ^ + 1645 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 12 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0052 + + 1646 ;TEST AND FOR 0 TO 0,1 TO 1,0 TO 1,1 TO 0 + 1647 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 1648 + 1649 000010 AC=10 + 1650 031672 BOLA: SETUP 400,0^ + 1651 000011 AC1=&17 + 1652 000012 AC2=&17 + 1653 000013 AC3=&17 + 1654 000014 AC4=&17 + 1655 000015 AC5=&17 + 1656 000006 RAN1=&17 + 1657 031672 201 07 0 00 031672 MOVEI AC-1,. + 1658 031673 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 1659 031674 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 1660 031675 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 1661 031676 201 07 0 00 000400 MOVEI AC-1,400 ;ROUTINE WEIGHTING + 1662 031677 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 1663 031700 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 1664 RANDOM^ + 1665 031701 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 1666 031702 270 10 0 00 037562 ADD AC,[142536475076] + 1667 031703 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 1668 031704 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 1669 031705 404 10 0 00 037667 BOLA1: AND AC,RAN ;NUMBER AND NUMBeR + 1670 031706 312 10 0 00 037667 CAME AC,RAN ;SHOULD EQUAL NUMBER + 1671 031707 004 10 0 00 037667 ERROR AC,RAN ;IF NOT, "AND" FAILED. + 1672 031710 404 10 0 00 037565 AND AC,[-1] ;"AND" OF ALL BITS WITH + 1673 031711 312 10 0 00 037667 CAME AC,RAN ;ANY NUMBER SHOULD + 1674 031712 004 10 0 00 037667 ERROR AC,RAN ;LEAVE THE NUMBER UNCHANGED + 1675 031713 450 10 0 00 000000 SETCA AC, + 1676 031714 404 10 0 00 037667 AND AC,RAN ;"AND" OF A NUMBER WITH ITS + 1677 031715 312 10 0 00 037563 CAME AC,[0] ;COMPLEMENT SHOULD + 1678 031716 004 10 0 00 037563 ERROR AC,[0] ;PRODUCE 0 + 1679 LOOP BOLA1-4,BOLA1^ + 1680 031717 367 07 0 00 031701 SOJG AC-1,BOLA1-4 ;ITERATION COUNTER + 1681 031720 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 1682 031721 321 07 0 00 031705 JUMPL AC-1,BOLA1 ;LOOP ON ERROR SWITCH ^ +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 13 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0053 + + 1683 + 1684 ;TEST ORCA AND SETO. 1 TO 0,1 TO 1, 0 TO 0, 1 TO 0,0 TO 1 + 1685 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 1686 ;ONE AC IS USED FOR TESTING + 1687 + 1688 000012 AC=12 + 1689 031722 BOLOS: SETUP 300,0^ + 1690 000013 AC1=&17 + 1691 000014 AC2=&17 + 1692 000015 AC3=&17 + 1693 000016 AC4=&17 + 1694 000017 AC5=&17 + 1695 000010 RAN1=&17 + 1696 031722 201 11 0 00 031722 MOVEI AC-1,. + 1697 031723 202 11 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 1698 031724 201 11 0 00 000011 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 1699 031725 202 11 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 1700 031726 201 11 0 00 000300 MOVEI AC-1,300 ;ROUTINE WEIGHTING + 1701 031727 240 11 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 1702 031730 240 11 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 1703 RANDOM^ + 1704 031731 200 12 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 1705 031732 270 12 0 00 037562 ADD AC,[142536475076] + 1706 031733 241 12 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 1707 031734 447 12 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 1708 031735 474 12 0 00 031735 BOLOS1: SETO AC,. ;WILL CHANGE THIS INST IF FETCH/STORE C(E). + 1709 031736 312 12 0 00 037565 CAME AC,[-1] ;CHECK FOR ALL BITS SET + 1710 031737 004 12 0 00 037565 ERROR AC,[-1] ;SETO FAILED + 1711 031740 454 12 0 00 037667 ORCA AC,RAN ;-1 ORED TO RANDOM + 1712 031741 312 12 0 00 037667 CAME AC,RAN ;SHOULD PRODUCE RANDOM + 1713 031742 004 12 0 00 037667 ERROR AC,RAN ;IF AC COMP PROBELY + 1714 031743 454 12 0 00 037667 ORCA AC,RAN ;RANDOM TO RANDOM SHOULD + 1715 031744 312 12 0 00 037565 CAME AC,[-1] ;PRODUCE -1 + 1716 031745 004 12 0 00 037565 ERROR AC,[-1] ;IF AC COMPLEMENTED PROPERLY + 1717 031746 454 12 0 00 037563 ORCA AC,[0] ;WITH NO BITS EFFECT IC COMP AC + 1718 031747 454 12 0 00 037667 ORCA AC,RAN + 1719 031750 312 12 0 00 037565 CAME AC,[-1] ;NO BITS COMPLEMENTS TO PRODUCE + 1720 031751 004 12 0 00 037565 ERROR AC,[-1] ;ALL ONES + 1721 LOOP BOLOS1-4,BOLOS1^ + 1722 031752 367 11 0 00 031731 SOJG AC-1,BOLOS1-4 ;ITERATION COUNTER + 1723 031753 200 12 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 1724 031754 321 11 0 00 031735 JUMPL AC-1,BOLOS1 ;LOOP ON ERROR SWITCH ^ + 1725 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 14 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0054 + + 1726 + 1727 ;TEST ANDCA.1 TO 1,0 TO 0, 0 TO 1,0 TO 0,1 TO 1,1 TO 0 + 1728 ;ERRORS ARE IN THE FORM(PC,AC,C(AC),CORRECT + 1729 ;ONE AC IS USED + 1730 + 1731 000013 AC=13 + 1732 031755 BOLAC: SETUP 200,1^ + 1733 000014 AC1=&17 + 1734 000015 AC2=&17 + 1735 000016 AC3=&17 + 1736 000017 AC4=&17 + 1737 000000 AC5=&17 + 1738 000011 RAN1=&17 + 1739 031755 201 12 0 00 031755 MOVEI AC-1,. + 1740 031756 202 12 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 1741 031757 201 12 0 00 000012 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 1742 031760 202 12 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 1743 031761 201 12 0 00 000200 MOVEI AC-1,200 ;ROUTINE WEIGHTING + 1744 031762 240 12 1 00 030672 ASH AC-1,@CMPLXT+1 ;ROUTINE COMPLEXITY + 1745 031763 240 12 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 1746 RANDOM^ + 1747 031764 200 13 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 1748 031765 270 13 0 00 037562 ADD AC,[142536475076] + 1749 031766 241 13 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 1750 031767 447 13 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 1751 031770 410 13 0 00 037667 BOLAC1: ANDCA AC,RAN ;ANDCA OF LIKE NUMBERS + 1752 031771 312 13 0 00 037563 CAME AC,[0] ;SHOULD PRODUCE 0 + 1753 031772 004 13 0 00 037563 ERROR AC,[0] ;ANDCA FAILED + 1754 031773 410 13 0 00 037667 ANDCA AC,RAN + 1755 031774 312 13 0 00 037667 CAME AC,RAN ;ANDCA OF ZERO AND NUMBER + 1756 031775 004 13 0 00 037667 ERROR AC,RAN ;SHOULD PRODUCE NUMBER + 1757 031776 474 13 0 00 031776 SETO AC,. ;SET ALL BITS + 1758 031777 410 13 0 00 037667 ANDCA AC,RAN + 1759 032000 312 13 0 00 037563 CAME AC,[0] ;ANDCA OF ALL BITS WITH NUMBER + 1760 032001 004 13 0 00 037563 ERROR AC,[0] ;SHOULD PRODUCE 0 + 1761 LOOP BOLAC1-4,BOLAC1^ + 1762 032002 367 12 0 00 031764 SOJG AC-1,BOLAC1-4 ;ITERATION COUNTER + 1763 032003 200 13 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 1764 032004 321 12 0 00 031770 JUMPL AC-1,BOLAC1 ;LOOP ON ERROR SWITCH ^ + 1765 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 15 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0055 + + 1766 + 1767 ;TEST EQV,1 TO 1,0 TO 0,1 TO 0,0 TO 1. EQV =(SET ALL LIKE BITS) + 1768 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 1769 + 1770 000014 AC=14 + 1771 032005 BOLEQ: SETUP 200,2^ + 1772 000015 AC1=&17 + 1773 000016 AC2=&17 + 1774 000017 AC3=&17 + 1775 000000 AC4=&17 + 1776 000001 AC5=&17 + 1777 000012 RAN1=&17 + 1778 032005 201 13 0 00 032005 MOVEI AC-1,. + 1779 032006 202 13 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 1780 032007 201 13 0 00 000013 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 1781 032010 202 13 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 1782 032011 201 13 0 00 000200 MOVEI AC-1,200 ;ROUTINE WEIGHTING + 1783 032012 240 13 1 00 030673 ASH AC-1,@CMPLXT+2 ;ROUTINE COMPLEXITY + 1784 032013 240 13 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 1785 RANDOM^ + 1786 032014 200 14 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 1787 032015 270 14 0 00 037562 ADD AC,[142536475076] + 1788 032016 241 14 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 1789 032017 447 14 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 1790 032020 444 14 0 00 037667 BOLEQ1: EQV AC,RAN ;WHEN NUMBERS ARE EQUAL + 1791 032021 312 14 0 00 037565 CAME AC,[-1] ;EQV SHOULD PRODUCE ALL + 1792 032022 004 14 0 00 037565 ERROR AC,[-1] ;BITS SET.EQV FAILED + 1793 032023 444 14 0 00 037667 EQV AC,RAN# + 1794 032024 312 14 0 00 037667 CAME AC,RAN ;WITH AC SET,EQV SHOULD + 1795 032025 004 14 0 00 037667 ERROR AC,RAN ;PRODUCE C(E) IN THE AC + 1796 032026 401 14 0 00 777777 SETZI AC,-1 + 1797 032027 444 14 0 00 037667 EQV AC,RAN ;WHEN AC=0 EQV SHOULD + 1798 032030 450 14 0 00 032030 SETCA AC,. ;PRODUCE COMPLEMENT OF + 1799 032031 312 14 0 00 037667 CAME AC,RAN ;C(E) + 1800 032032 004 14 0 00 037667 ERROR AC,RAN ;EQV FAILED + 1801 LOOP BOLEQ1-3,BOLEQ1^ + 1802 032033 367 13 0 00 032015 SOJG AC-1,BOLEQ1-3 ;ITERATION COUNTER + 1803 032034 200 14 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 1804 032035 321 13 0 00 032020 JUMPL AC-1,BOLEQ1 ;LOOP ON ERROR SWITCH ^ + 1805 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 16 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0056 + + 1806 + 1807 ;TEST SETM. SET THE CONTENTS OF MEMORY TO THE AC + 1808 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 1809 + 1810 000010 AC=10 + 1811 032036 BOLSM: SETUP 100,0^ + 1812 000011 AC1=&17 + 1813 000012 AC2=&17 + 1814 000013 AC3=&17 + 1815 000014 AC4=&17 + 1816 000015 AC5=&17 + 1817 000006 RAN1=&17 + 1818 032036 201 07 0 00 032036 MOVEI AC-1,. + 1819 032037 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 1820 032040 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 1821 032041 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 1822 032042 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 1823 032043 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 1824 032044 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 1825 RANDOM^ + 1826 032045 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 1827 032046 270 10 0 00 037562 ADD AC,[142536475076] + 1828 032047 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 1829 032050 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 1830 BOLSM1: REPEAT 2, + 1831 < SETM AC1,RAN ;THE NET RESULT OF SETM + 1832 CAME AC1,AC ;IS THE SAME AS MOVE + 1833 ERROR AC1,RAN ;SETM FAILED + 1834 AC=&17 + 1835 AC1=&17 + 1836 > + 1837 032051 414 11 0 00 037667 SETM AC1,RAN ;THE NET RESULT OF SETM + 1838 032052 312 11 0 00 000010 CAME AC1,AC ;IS THE SAME AS MOVE + 1839 032053 004 11 0 00 037667 ERROR AC1,RAN ;SETM FAILED + 1840 000011 AC=&17 + 1841 000012 AC1=&17 + 1842 + 1843 032054 414 12 0 00 037667 SETM AC1,RAN ;THE NET RESULT OF SETM + 1844 032055 312 12 0 00 000011 CAME AC1,AC ;IS THE SAME AS MOVE + 1845 032056 004 12 0 00 037667 ERROR AC1,RAN ;SETM FAILED + 1846 000012 AC=&17 + 1847 000013 AC1=&17 + 1848 + 1849 000010 AC=10 + 1850 LOOP BOLSM1-4,BOLSM1^ + 1851 032057 367 07 0 00 032045 SOJG AC-1,BOLSM1-4 ;ITERATION COUNTER + 1852 032060 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 1853 032061 321 07 0 00 032051 JUMPL AC-1,BOLSM1 ;LOOP ON ERROR SWITCH ^ +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 17 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0057 + + 1854 + 1855 ;TEST SETCM. (MOVE THE COMPLEMENT OF MEMORY TO AC) + 1856 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 1857 + 1858 000014 AC=14 + 1859 032062 BOLCM: SETUP 100,0^ + 1860 000015 AC1=&17 + 1861 000016 AC2=&17 + 1862 000017 AC3=&17 + 1863 000000 AC4=&17 + 1864 000001 AC5=&17 + 1865 000012 RAN1=&17 + 1866 032062 201 13 0 00 032062 MOVEI AC-1,. + 1867 032063 202 13 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 1868 032064 201 13 0 00 000013 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 1869 032065 202 13 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 1870 032066 201 13 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 1871 032067 240 13 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 1872 032070 240 13 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 1873 RANDOM^ + 1874 032071 200 14 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 1875 032072 270 14 0 00 037562 ADD AC,[142536475076] + 1876 032073 241 14 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 1877 032074 447 14 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 1878 032075 460 15 0 00 037667 BOLCM1: SETCM AC1,RAN ;COMP OF RANDOM TO AC + 1879 032076 460 16 0 00 000015 SETCM AC2,AC1 ;RECOMP TO AC2 + 1880 032077 312 16 0 00 037667 CAME AC2,RAN + 1881 032100 004 16 0 00 037667 ERROR AC2,RAN ;SETCM 1 OR 2 FAILED + 1882 LOOP BOLCM1-3,BOLCM1^ + 1883 032101 367 13 0 00 032072 SOJG AC-1,BOLCM1-3 ;ITERATION COUNTER + 1884 032102 200 14 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 1885 032103 321 13 0 00 032075 JUMPL AC-1,BOLCM1 ;LOOP ON ERROR SWITCH ^ + 1886 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 18 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0058 + + 1887 + 1888 ;TEST ORCM. (INCLUSIVE OR THE CONTENTS OF COMPLEMENTED MEMORY + 1889 ;TO THE CONTENTS OF AC.) ERRORS ARE IN THE FORM (PC,AC, + 1890 ;C(AC),CORRECT + 1891 + 1892 000005 AC=5 + 1893 032104 BOLOC: SETUP 140,0^ + 1894 000006 AC1=&17 + 1895 000007 AC2=&17 + 1896 000010 AC3=&17 + 1897 000011 AC4=&17 + 1898 000012 AC5=&17 + 1899 000003 RAN1=&17 + 1900 032104 201 04 0 00 032104 MOVEI AC-1,. + 1901 032105 202 04 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 1902 032106 201 04 0 00 000004 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 1903 032107 202 04 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 1904 032110 201 04 0 00 000140 MOVEI AC-1,140 ;ROUTINE WEIGHTING + 1905 032111 240 04 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 1906 032112 240 04 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 1907 RANDOM^ + 1908 032113 200 05 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 1909 032114 270 05 0 00 037562 ADD AC,[142536475076] + 1910 032115 241 05 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 1911 032116 447 05 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 1912 032117 464 05 0 00 037667 BOLOC1: ORCM AC,RAN ;LIKE NUMBERS SHOULD PRODUCE + 1913 032120 312 05 0 00 037565 CAME AC,[-1] ;ALL BITS SET + 1914 032121 004 05 0 00 037565 ERROR AC,[-1] + 1915 032122 464 05 0 00 037667 ORCM AC,RAN ;ANY NUMBER ORED WITH ALL + 1916 032123 312 05 0 00 037565 CAME AC,[-1] ;ONES SHOULD PRODUCE + 1917 032124 004 05 0 00 037565 ERROR AC,[-1] ;ALL ONES + 1918 032125 401 05 0 00 777777 SETZI AC,-1 + 1919 032126 464 05 0 00 037667 ORCM AC,RAN ;THE RANDOM NUMBER IS + 1920 032127 450 05 0 00 032127 SETCA AC,. ;ORED TO 0. THIS SHOULD + 1921 032130 312 05 0 00 037667 CAME AC,RAN ;PRODUCE THE COMPLEMENT + 1922 032131 004 05 0 00 037667 ERROR AC,RAN ;OF RANDOM + 1923 032132 464 05 0 00 037565 ORCM AC,[-1] + 1924 032133 312 05 0 00 037667 CAME AC,RAN ;ORING -1 SHOULD LEAVE + 1925 032134 004 05 0 00 037667 ERROR AC,RAN ;AC UNCHANGED + 1926 LOOP BOLOC1-3,BOLOC1^ + 1927 032135 367 04 0 00 032114 SOJG AC-1,BOLOC1-3 ;ITERATION COUNTER + 1928 032136 200 05 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 1929 032137 321 04 0 00 032117 JUMPL AC-1,BOLOC1 ;LOOP ON ERROR SWITCH ^ + 1930 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 19 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0059 + + 1931 + 1932 ;TEST ANDCM (AND WITH THE COMP OF MEMORY) + 1933 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 1934 + 1935 000010 AC=10 + 1936 032140 BOLAX: SETUP 140,0^ + 1937 000011 AC1=&17 + 1938 000012 AC2=&17 + 1939 000013 AC3=&17 + 1940 000014 AC4=&17 + 1941 000015 AC5=&17 + 1942 000006 RAN1=&17 + 1943 032140 201 07 0 00 032140 MOVEI AC-1,. + 1944 032141 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 1945 032142 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 1946 032143 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 1947 032144 201 07 0 00 000140 MOVEI AC-1,140 ;ROUTINE WEIGHTING + 1948 032145 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 1949 032146 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 1950 RANDOM^ + 1951 032147 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 1952 032150 270 10 0 00 037562 ADD AC,[142536475076] + 1953 032151 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 1954 032152 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 1955 032153 420 10 0 00 037667 BOLAX1: ANDCM AC,RAN ;LIKE NUMBERS SHOULD + 1956 032154 312 10 0 00 037563 CAME AC,[0] ;PRODUCE 0 + 1957 032155 004 10 0 00 037563 ERROR AC,[0] ;ANDCM FAILED + 1958 032156 420 10 0 00 037667 ANDCM AC,RAN ;ANYTHING ANDED TO + 1959 032157 312 10 0 00 037563 CAME AC,[0] ;ZERO SHOULD = 0 + 1960 032160 004 10 0 00 037563 ERROR AC,[0] + 1961 032161 474 10 0 00 000000 SETO AC, + 1962 032162 420 10 0 00 037667 ANDCM AC,RAN ;AC SHOULD - COMP OF MEMORY + 1963 032163 420 10 0 00 037563 ANDCM AC,[0] ;AC SHOULD REMAIN UNCHANGED + 1964 032164 430 10 0 00 037565 XOR AC,[-1] ;COMP AC + 1965 032165 312 10 0 00 037667 CAME AC,RAN ;AFTER COMP SHOULD EQUAL + 1966 032166 004 10 0 00 037667 ERROR AC,RAN ;RANDOM. ANDCM FAILED + 1967 LOOP BOLAX1-3,BOLAX1^ + 1968 032167 367 07 0 00 032150 SOJG AC-1,BOLAX1-3 ;ITERATION COUNTER + 1969 032170 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 1970 032171 321 07 0 00 032153 JUMPL AC-1,BOLAX1 ;LOOP ON ERROR SWITCH ^ + 1971 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 20 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0060 + + 1972 + 1973 ;TEST ORCB (INCLUSIVE OR THE COMPLEMENT OF AC AND C(E)) + 1974 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 1975 + 1976 000001 AC=1 + 1977 032172 BOLOB: SETUP 140,0^ + 1978 000002 AC1=&17 + 1979 000003 AC2=&17 + 1980 000004 AC3=&17 + 1981 000005 AC4=&17 + 1982 000006 AC5=&17 + 1983 000017 RAN1=&17 + 1984 032172 201 00 0 00 032172 MOVEI AC-1,. + 1985 032173 202 00 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 1986 032174 201 00 0 00 000000 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 1987 032175 202 00 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 1988 032176 201 00 0 00 000140 MOVEI AC-1,140 ;ROUTINE WEIGHTING + 1989 032177 240 00 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 1990 032200 240 00 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 1991 RANDOM^ + 1992 032201 200 01 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 1993 032202 270 01 0 00 037562 ADD AC,[142536475076] + 1994 032203 241 01 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 1995 032204 447 01 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 1996 032205 470 01 0 00 037667 BOLOB1: ORCB AC,RAN ;PRODUCE COMP OF RAN + 1997 032206 470 01 0 00 037565 ORCB AC,[-1] ;COMP AC + 1998 032207 312 01 0 00 037667 CAME AC,RAN ;CHECK ORCB + 1999 032210 004 01 0 00 037667 ERROR AC,RAN + 2000 032211 470 01 0 00 037565 ORCB AC,[-1] ;COMP AC + 2001 032212 470 01 0 00 037667 ORCB AC,RAN ;ANY TWO COMPLEMENTED NUMBERS + 2002 032213 312 01 0 00 037565 CAME AC,[-1] ;SHOULD PRODUCE ALL ONES + 2003 032214 004 01 0 00 037565 ERROR AC,[-1] + 2004 032215 470 01 0 00 037563 ORCB AC,[0] ;AC COMPLEMENTS TO 0 + 2005 032216 312 01 0 00 037565 CAME AC,[-1] + 2006 032217 004 01 0 00 037565 ERROR AC,[-1] ;ORCB FAILED + 2007 LOOP BOLOB1-4,BOLOB1^ + 2008 032220 367 00 0 00 032201 SOJG AC-1,BOLOB1-4 ;ITERATION COUNTER + 2009 032221 200 01 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2010 032222 321 00 0 00 032205 JUMPL AC-1,BOLOB1 ;LOOP ON ERROR SWITCH ^ + 2011 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 21 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0061 + + 2012 + 2013 ;TEST ANDCB (AND WITH BOTH OPERANDS COMPLEMENTED) + 2014 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 2015 + 2016 000002 AC=2 + 2017 032223 BOLAB: SETUP 140,0^ + 2018 000003 AC1=&17 + 2019 000004 AC2=&17 + 2020 000005 AC3=&17 + 2021 000006 AC4=&17 + 2022 000007 AC5=&17 + 2023 000000 RAN1=&17 + 2024 032223 201 01 0 00 032223 MOVEI AC-1,. + 2025 032224 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2026 032225 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2027 032226 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2028 032227 201 01 0 00 000140 MOVEI AC-1,140 ;ROUTINE WEIGHTING + 2029 032230 240 01 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 2030 032231 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2031 RANDOM^ + 2032 032232 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2033 032233 270 02 0 00 037562 ADD AC,[142536475076] + 2034 032234 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2035 032235 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2036 032236 440 02 0 00 037667 BOLAB1: ANDCB AC,RAN ;PRODUCE COMP OF RAN + 2037 032237 440 02 0 00 037563 ANDCB AC,[0] ;COMP AC + 2038 032240 312 02 0 00 037667 CAME AC,RAN ;CHECK FOR ORIGIONAL NUMBER + 2039 032241 004 02 0 00 037667 ERROR AC,RAN ;ANDCB FAILED + 2040 032242 440 02 0 00 037563 ANDCB AC,[0] ;COMPLEMENT AC + 2041 032243 440 02 0 00 037563 ANDCB AC,[0] ;RECOMPLEMENT AC + 2042 032244 312 02 0 00 037667 CAME AC,RAN ;SHOULD PRODUCE ORIGIONAL + 2043 032245 004 02 0 00 037667 ERROR AC,RAN ;ANDCB FAILED + 2044 032246 440 02 0 00 037565 ANDCB AC,[-1] ;RESULT SHOULD BE 0 IF + 2045 032247 312 02 0 00 037563 CAME AC,[0] ;CONTENTS OF E + 2046 032250 004 02 0 00 037563 ERROR AC,[0] ;CONTAINS NO BITS AFTER COMP + 2047 032251 440 02 0 00 037667 ANDCB AC,RAN ;AC SHOULD EQUAL COMP OF RAN + 2048 032252 440 02 0 00 037563 ANDCB AC,[0] ;COMP AC + 2049 032253 312 02 0 00 037667 CAME AC,RAN ;THE AND TO 0 + 2050 032254 004 02 0 00 037667 ERROR AC,RAN ;FAILED + 2051 LOOP BOLAB1-3,BOLAB1^ + 2052 032255 367 01 0 00 032233 SOJG AC-1,BOLAB1-3 ;ITERATION COUNTER + 2053 032256 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2054 032257 321 01 0 00 032236 JUMPL AC-1,BOLAB1 ;LOOP ON ERROR SWITCH ^ + 2055 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 22 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0062 + + 2056 + 2057 ;TEST SETA (EFFECTIVELY A NO OPERATION IN THIS MODE) + 2058 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 2059 + 2060 000003 AC=3 + 2061 032260 BOLSA: SETUP 100,0^ + 2062 000004 AC1=&17 + 2063 000005 AC2=&17 + 2064 000006 AC3=&17 + 2065 000007 AC4=&17 + 2066 000010 AC5=&17 + 2067 000001 RAN1=&17 + 2068 032260 201 02 0 00 032260 MOVEI AC-1,. + 2069 032261 202 02 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2070 032262 201 02 0 00 000002 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2071 032263 202 02 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2072 032264 201 02 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 2073 032265 240 02 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 2074 032266 240 02 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2075 RANDOM^ + 2076 032267 200 03 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2077 032270 270 03 0 00 037562 ADD AC,[142536475076] + 2078 032271 241 03 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2079 032272 447 03 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2080 ;DO 7 SETA'S. + 2081 BOLSA1: REPEAT 7,< + 2082 SETA AC,.> + 2083 + 2084 032273 424 03 0 00 032273 SETA AC,. + 2085 + 2086 032274 424 03 0 00 032274 SETA AC,. + 2087 + 2088 032275 424 03 0 00 032275 SETA AC,. + 2089 + 2090 032276 424 03 0 00 032276 SETA AC,. + 2091 + 2092 032277 424 03 0 00 032277 SETA AC,. + 2093 + 2094 032300 424 03 0 00 032300 SETA AC,. + 2095 + 2096 032301 424 03 0 00 032301 SETA AC,. + 2097 032302 312 03 0 00 037667 CAME AC,RAN ;C(AC) SHOULD = ORIG. C(AC) + 2098 032303 004 03 0 00 037667 ERROR AC,RAN + 2099 LOOP BOLSA1-3,BOLSA1^ + 2100 032304 367 02 0 00 032270 SOJG AC-1,BOLSA1-3 ;ITERATION COUNTER + 2101 032305 200 03 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2102 032306 321 02 0 00 032273 JUMPL AC-1,BOLSA1 ;LOOP ON ERROR SWITCH ^ + 2103 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 23 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0063 + + 2104 + 2105 ;TEST IORM, WHERE E IS AN AC. THE INST IS TESTED + 2106 ;FOR NOT STORING IN AC AS WELL AS STORING PROPERLY + 2107 ;IN E. + 2108 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 2109 + 2110 000011 AC=11 + 2111 032307 BMIOR: SETUP 100,1^ + 2112 000012 AC1=&17 + 2113 000013 AC2=&17 + 2114 000014 AC3=&17 + 2115 000015 AC4=&17 + 2116 000016 AC5=&17 + 2117 000007 RAN1=&17 + 2118 032307 201 10 0 00 032307 MOVEI AC-1,. + 2119 032310 202 10 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2120 032311 201 10 0 00 000010 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2121 032312 202 10 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2122 032313 201 10 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 2123 032314 240 10 1 00 030672 ASH AC-1,@CMPLXT+1 ;ROUTINE COMPLEXITY + 2124 032315 240 10 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2125 032316 BMIOR1: RANDOM^ + 2126 032316 200 11 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2127 032317 270 11 0 00 037562 ADD AC,[142536475076] + 2128 032320 241 11 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2129 032321 447 11 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2130 032322 204 12 0 00 000011 BMIOR2: MOVS AC1,AC ;AC=C(E) ORIG + 2131 032323 316 11 0 00 000012 CAMN AC,AC1 ;HALVES SAME? + 2132 032324 254 00 0 00 032316 JRST BMIOR1 ;YES. REJECT. + 2133 032325 460 00 0 00 000011 SETCM AC ;SIM AN + 2134 032326 404 00 0 00 000012 AND AC1 ;IOR + 2135 032327 430 00 0 00 000011 XOR AC ;INST + 2136 032330 436 11 0 00 000012 IORM AC,AC1 ;RESULT TO AC1 + 2137 032331 316 11 0 00 000012 CAMN AC,AC1 ;BOTH SAME? + 2138 032332 004 11 0 00 000012 ERROR AC,AC1 ;YES. STORED IN AC. + 2139 032333 312 12 0 00 000000 CAME AC1,0 ;C(E) = SIM. ANS? + 2140 032334 004 11 0 00 000000 ERROR AC,0 ;NO. IORM FAILED. + 2141 LOOP BMIOR1,BMIOR2^ + 2142 032335 367 10 0 00 032316 SOJG AC-1,BMIOR1 ;ITERATION COUNTER + 2143 032336 200 11 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2144 032337 321 10 0 00 032322 JUMPL AC-1,BMIOR2 ;LOOP ON ERROR SWITCH ^ + 2145 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 24 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0064 + + 2146 + 2147 ;TEST ORCAM, WHERE E IS AN AC. THE INSTRUCTION IS TESTED + 2148 ;FOR NOT STORING IN AC AS WELL AS STORING PROPERLY IN C(E). + 2149 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 2150 + 2151 000012 AC=12 + 2152 032340 BMICA: SETUP 100,1^ + 2153 000013 AC1=&17 + 2154 000014 AC2=&17 + 2155 000015 AC3=&17 + 2156 000016 AC4=&17 + 2157 000017 AC5=&17 + 2158 000010 RAN1=&17 + 2159 032340 201 11 0 00 032340 MOVEI AC-1,. + 2160 032341 202 11 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2161 032342 201 11 0 00 000011 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2162 032343 202 11 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2163 032344 201 11 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 2164 032345 240 11 1 00 030672 ASH AC-1,@CMPLXT+1 ;ROUTINE COMPLEXITY + 2165 032346 240 11 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2166 032347 BMICA1: RANDOM^ + 2167 032347 200 12 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2168 032350 270 12 0 00 037562 ADD AC,[142536475076] + 2169 032351 241 12 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2170 032352 447 12 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2171 032353 204 13 0 00 000012 BMICA2: MOVS AC1,AC ;SECOND RANDOM NUMBER + 2172 032354 460 14 0 00 000013 SETCM AC2,AC1 ;MOVE COMPLEMENT OF NUMBER + 2173 032355 460 00 0 00 000012 SETCM AC ;SIMULATE + 2174 032356 404 00 0 00 000014 AND AC2 ;THE INSTRUCTION + 2175 032357 430 00 0 00 000012 XOR AC ;IN AC0. + 2176 032360 456 13 0 00 000012 ORCAM AC1,AC ;RESULT TO C(E) + 2177 032361 316 13 0 00 000012 CAMN AC1,AC ;EQUAL? + 2178 032362 004 13 0 00 000012 ERROR AC1,AC ;YES. STORED IN AC. + 2179 032363 312 12 0 00 000000 CAME AC,0 ;C(E) = SIM. ANS? + 2180 032364 004 12 0 00 000000 ERROR AC,0 ;NO. ORCAM FAILED. + 2181 LOOP BMICA1,BMICA2^ + 2182 032365 367 11 0 00 032347 SOJG AC-1,BMICA1 ;ITERATION COUNTER + 2183 032366 200 12 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2184 032367 321 11 0 00 032353 JUMPL AC-1,BMICA2 ;LOOP ON ERROR SWITCH ^ + 2185 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 25 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0065 + + 2186 + 2187 ;TEST ORCMM, WHERE E IS AN AC. THE INSTRUCTION + 2188 ;IS TESTED FOR NOT STORING IN AC AS WELL AS THE + 2189 ;CORRECT ANSWER IN C(E). + 2190 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 2191 + 2192 000013 AC=13 + 2193 032370 BMICM: SETUP 100,0^ + 2194 000014 AC1=&17 + 2195 000015 AC2=&17 + 2196 000016 AC3=&17 + 2197 000017 AC4=&17 + 2198 000000 AC5=&17 + 2199 000011 RAN1=&17 + 2200 032370 201 12 0 00 032370 MOVEI AC-1,. + 2201 032371 202 12 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2202 032372 201 12 0 00 000012 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2203 032373 202 12 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2204 032374 201 12 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 2205 032375 240 12 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 2206 032376 240 12 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2207 032377 BMICM1: RANDOM^ + 2208 032377 200 13 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2209 032400 270 13 0 00 037562 ADD AC,[142536475076] + 2210 032401 241 13 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2211 032402 447 13 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2212 032403 204 14 0 00 000013 BMICM2: MOVS AC1,AC ;SECOND RANDOM NUMBER + 2213 032404 460 15 0 00 000013 SETCM AC2,AC ;SIMULATE + 2214 032405 460 00 0 00 000014 SETCM AC1 ;THE + 2215 032406 404 00 0 00 000015 AND AC2 ;INSTRUCTION + 2216 032407 430 00 0 00 000014 XOR AC1 ;IN AC0 + 2217 032410 316 00 0 00 000014 CAMN 0,AC1 ;IS SIMULATED ANS + 2218 032411 254 00 0 00 032377 JRST BMICM1 ;= C(AC)?...REJECT. + 2219 032412 466 14 0 00 000013 ORCMM AC1,AC ;IF AC1 = AC, STORE INHIBIT + 2220 032413 316 14 0 00 000013 CAMN AC1,AC + 2221 032414 004 14 0 00 000013 ERROR AC1,AC ;FAILED. + 2222 032415 312 13 0 00 000000 CAME AC,0 ;C(E) SHOULD = SIM. ANS. + 2223 032416 004 13 0 00 000000 ERROR AC,0 ;ORCMM FAILED. + 2224 LOOP BMICM1,BMICM2^ + 2225 032417 367 12 0 00 032377 SOJG AC-1,BMICM1 ;ITERATION COUNTER + 2226 032420 200 13 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2227 032421 321 12 0 00 032403 JUMPL AC-1,BMICM2 ;LOOP ON ERROR SWITCH ^ + 2228 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 26 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0066 + + 2229 + 2230 ;TEST ORCBM, WHERE E IS AN AC. THE INSTRUCTION + 2231 ;IS TESTED FOR NOT STORING IN AC AS WELL AS THE + 2232 ;CORRECT ANSWER IN C(E). + 2233 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 2234 + 2235 000014 AC=14 + 2236 032422 BMICB: SETUP 200,0^ + 2237 000015 AC1=&17 + 2238 000016 AC2=&17 + 2239 000017 AC3=&17 + 2240 000000 AC4=&17 + 2241 000001 AC5=&17 + 2242 000012 RAN1=&17 + 2243 032422 201 13 0 00 032422 MOVEI AC-1,. + 2244 032423 202 13 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2245 032424 201 13 0 00 000013 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2246 032425 202 13 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2247 032426 201 13 0 00 000200 MOVEI AC-1,200 ;ROUTINE WEIGHTING + 2248 032427 240 13 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 2249 032430 240 13 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2250 032431 BMICB1: RANDOM^ + 2251 032431 200 14 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2252 032432 270 14 0 00 037562 ADD AC,[142536475076] + 2253 032433 241 14 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2254 032434 447 14 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2255 032435 204 15 0 00 000014 BMICB2: MOVS AC1,AC ;AC1= 0101,0011 + 2256 032436 460 16 0 00 000014 SETCM AC2,AC ;AC2= 1100,1010 + 2257 032437 460 00 0 00 000016 SETCM AC2 ;AC0 = 0011,0101 + 2258 032440 420 00 0 00 000015 ANDCM AC1 ;AC0 = 0010,0100 + 2259 032441 430 00 0 00 000016 XOR AC2 ;AC0 = 1110,1110 + 2260 032442 472 15 0 00 000014 ORCBM AC1,AC ;SHOULD PRODUCE SAME LOGIC + 2261 032443 316 15 0 00 000014 CAMN AC1,AC ;EQUAL? + 2262 032444 004 15 0 00 000014 ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + 2263 032445 312 14 0 00 000000 CAME AC,0 ;C(E) SHOULD = SIM. ANS. + 2264 032446 004 14 0 00 000000 ERROR AC,0 ;ORCBM FAILED. + 2265 LOOP BMICB1,BMICB2^ + 2266 032447 367 13 0 00 032431 SOJG AC-1,BMICB1 ;ITERATION COUNTER + 2267 032450 200 14 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2268 032451 321 13 0 00 032435 JUMPL AC-1,BMICB2 ;LOOP ON ERROR SWITCH ^ + 2269 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 27 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0067 + + 2270 + 2271 ;TEST XORM, WHERE E IS AN AC. THE INSTRUCTION IS + 2272 ;TESTED FOR NOT STORING AC AS WELL AS CONTENTS + 2273 ;OF E CORRECTNESS. + 2274 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 2275 + 2276 000010 AC=10 + 2277 032452 BMX: SETUP 200,1^ + 2278 000011 AC1=&17 + 2279 000012 AC2=&17 + 2280 000013 AC3=&17 + 2281 000014 AC4=&17 + 2282 000015 AC5=&17 + 2283 000006 RAN1=&17 + 2284 032452 201 07 0 00 032452 MOVEI AC-1,. + 2285 032453 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2286 032454 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2287 032455 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2288 032456 201 07 0 00 000200 MOVEI AC-1,200 ;ROUTINE WEIGHTING + 2289 032457 240 07 1 00 030672 ASH AC-1,@CMPLXT+1 ;ROUTINE COMPLEXITY + 2290 032460 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2291 032461 BMX1: RANDOM^ + 2292 032461 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2293 032462 270 10 0 00 037562 ADD AC,[142536475076] + 2294 032463 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2295 032464 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2296 032465 322 10 0 00 032461 BMX2: JUMPE AC,BMX1 ;REJECT IF RAN = 0. + 2297 032466 204 11 0 00 000010 MOVS AC1,AC ;SECOND RANDOM NUMBER. + 2298 032467 460 00 0 00 000010 SETCM AC + 2299 032470 410 00 0 00 000011 ANDCA AC1 ;PERFORM + 2300 032471 200 12 0 00 000010 MOVE AC2,AC ;A PSEUDO + 2301 032472 434 12 0 00 000011 IOR AC2,AC1 ;EXCLUSIVE + 2302 032473 410 00 0 00 000012 ANDCA AC2 ;OR INSTRUCTION + 2303 032474 432 11 0 00 000010 XORM AC1,AC ;DO THE XOR + 2304 032475 316 11 0 00 000010 CAMN AC1,AC ;EQUAL? + 2305 032476 004 11 0 00 000010 ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + 2306 032477 312 10 0 00 000000 CAME AC,0 ;C(E) SHOULD = SIM. ANS. + 2307 032500 004 10 0 00 000000 ERROR AC,0 ;XORM FAILED. + 2308 LOOP BMX1,BMX2^ + 2309 032501 367 07 0 00 032461 SOJG AC-1,BMX1 ;ITERATION COUNTER + 2310 032502 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2311 032503 321 07 0 00 032465 JUMPL AC-1,BMX2 ;LOOP ON ERROR SWITCH ^ + 2312 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 28 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0068 + + 2313 + 2314 ;TEST EQVM, WHERE E IS AN AC. THE INSTRUCTION + 2315 ;IS TESTED FOR NOT STORING AC AS WELL AS + 2316 ;CORRECTNESS OF C(E). + 2317 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 2318 + 2319 000010 AC=10 + 2320 032504 BMEQ: SETUP 100,0^ + 2321 000011 AC1=&17 + 2322 000012 AC2=&17 + 2323 000013 AC3=&17 + 2324 000014 AC4=&17 + 2325 000015 AC5=&17 + 2326 000006 RAN1=&17 + 2327 032504 201 07 0 00 032504 MOVEI AC-1,. + 2328 032505 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2329 032506 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2330 032507 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2331 032510 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 2332 032511 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 2333 032512 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2334 032513 BMEQ1: RANDOM^ + 2335 032513 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2336 032514 270 10 0 00 037562 ADD AC,[142536475076] + 2337 032515 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2338 032516 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2339 032517 204 11 0 00 000010 BMEQ2: MOVS AC1,AC ;SECOND RANDOM NUMBER + 2340 032520 460 00 0 00 000011 SETCM AC1 ;EQV IS SAME LOGIC + 2341 032521 430 00 0 00 000010 XOR AC ;AS XOR WITH COMP AC + 2342 032522 446 11 0 00 000010 EQVM AC1,AC ;EQV SETS ALL LIKE BITS + 2343 032523 316 11 0 00 000010 CAMN AC1,AC ;EQUAL? + 2344 032524 004 11 0 00 000010 ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + 2345 032525 312 10 0 00 000000 CAME AC,0 ;C(E) SHOULD = SIM. ANS. + 2346 032526 004 10 0 00 000000 ERROR AC,0 ;EQVM FAILED. + 2347 LOOP BMEQ1,BMEQ2^ + 2348 032527 367 07 0 00 032513 SOJG AC-1,BMEQ1 ;ITERATION COUNTER + 2349 032530 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2350 032531 321 07 0 00 032517 JUMPL AC-1,BMEQ2 ;LOOP ON ERROR SWITCH ^ + 2351 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 29 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0069 + + 2352 + 2353 + 2354 ;TEST ANDM, WHERE E IS AN AC. THE INSTRUCTION IS + 2355 ;TESTED FOR NOT STORING IN AC AS WELL AS STORING + 2356 ;PROPERLY IN C(E). + 2357 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 2358 + 2359 000003 AC=3 + 2360 032532 BMAN: SETUP 100,0^ + 2361 000004 AC1=&17 + 2362 000005 AC2=&17 + 2363 000006 AC3=&17 + 2364 000007 AC4=&17 + 2365 000010 AC5=&17 + 2366 000001 RAN1=&17 + 2367 032532 201 02 0 00 032532 MOVEI AC-1,. + 2368 032533 202 02 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2369 032534 201 02 0 00 000002 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2370 032535 202 02 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2371 032536 201 02 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 2372 032537 240 02 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 2373 032540 240 02 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2374 032541 BMAN1: RANDOM^ + 2375 032541 200 03 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2376 032542 270 03 0 00 037562 ADD AC,[142536475076] + 2377 032543 241 03 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2378 032544 447 03 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2379 032545 204 04 0 00 000003 BMAN2: MOVS AC1,AC ;SECOND RANDOM NUMBER + 2380 032546 200 00 0 00 000003 MOVE AC ;SIMULATE + 2381 032547 434 00 0 00 000004 IOR AC1 ;AN "AND" + 2382 032550 430 00 0 00 000004 XOR AC1 ;INSTRUCTION. + 2383 032551 430 00 0 00 000003 XOR AC ;IN AC0 + 2384 032552 316 04 0 00 000003 CAMN AC1,AC ;REJECT THE NUMBER + 2385 032553 254 00 0 00 032541 JRST BMAN1 ;IF EQUAL. + 2386 032554 406 04 0 00 000003 ANDM AC1,AC ;THE INSTRUCTION + 2387 032555 316 04 0 00 000003 CAMN AC1,AC ;EQUAL? + 2388 032556 004 04 0 00 000003 ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + 2389 032557 312 03 0 00 000000 CAME AC,0 ;C(E) SHOULD = SIM. ANS. + 2390 032560 004 03 0 00 000000 ERROR AC,0 ;AND FAILED. + 2391 LOOP BMAN1,BMAN2^ + 2392 032561 367 02 0 00 032541 SOJG AC-1,BMAN1 ;ITERATION COUNTER + 2393 032562 200 03 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2394 032563 321 02 0 00 032545 JUMPL AC-1,BMAN2 ;LOOP ON ERROR SWITCH ^ + 2395 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 30 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0070 + + 2396 + 2397 + 2398 ;TEST ANDCAM, WHERE E IS AN AC. THE INSTRUCTION IS + 2399 ;TESTED FOR NOT STORING IN AN AC AS WELL AS + 2400 ;STORING C(E) PROPERLY. + 2401 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 2402 + 2403 000004 AC=4 + 2404 032564 BMACA: SETUP 100,0^ + 2405 000005 AC1=&17 + 2406 000006 AC2=&17 + 2407 000007 AC3=&17 + 2408 000010 AC4=&17 + 2409 000011 AC5=&17 + 2410 000002 RAN1=&17 + 2411 032564 201 03 0 00 032564 MOVEI AC-1,. + 2412 032565 202 03 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2413 032566 201 03 0 00 000003 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2414 032567 202 03 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2415 032570 201 03 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 2416 032571 240 03 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 2417 032572 240 03 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2418 032573 BMACA1: RANDOM^ + 2419 032573 200 04 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2420 032574 270 04 0 00 037562 ADD AC,[142536475076] + 2421 032575 241 04 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2422 032576 447 04 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2423 032577 322 04 0 00 032573 BMACA2: JUMPE AC,BMACA1 ;REJECT IF RAN = 0. + 2424 032600 204 05 0 00 000004 MOVS AC1,AC ;SECOND RANDOM NUMBER + 2425 032601 414 00 0 00 000004 SETM AC ;SIMULATE + 2426 032602 454 00 0 00 000005 ORCA AC1 ;ANDCA + 2427 032603 450 00 0 00 000000 SETCA ;LOGIC + 2428 032604 412 05 0 00 000004 ANDCAM AC1,AC ;THE INSTRUCTION + 2429 032605 316 05 0 00 000004 CAMN AC1,AC ;EQUAL? + 2430 032606 004 05 0 00 000004 ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + 2431 032607 312 04 0 00 000000 CAME AC,0 ;C(E) SHOULD = SIM. ANS. + 2432 032610 004 04 0 00 000000 ERROR AC,0 ;ANDCA FAILED. + 2433 LOOP BMACA1,BMACA2^ + 2434 032611 367 03 0 00 032573 SOJG AC-1,BMACA1 ;ITERATION COUNTER + 2435 032612 200 04 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2436 032613 321 03 0 00 032577 JUMPL AC-1,BMACA2 ;LOOP ON ERROR SWITCH ^ + 2437 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 31 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0071 + + 2438 + 2439 ;TEST ANDCMM, WHERE E IS AN AC. THE INSTRUCTION IS + 2440 ;TESTED FOR NOT STORING IN AN AC AS WELL AS + 2441 ;STORING C(E) PROPERLY. + 2442 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 2443 + 2444 000005 AC=5 + 2445 032614 BMACM: SETUP 100,0^ + 2446 000006 AC1=&17 + 2447 000007 AC2=&17 + 2448 000010 AC3=&17 + 2449 000011 AC4=&17 + 2450 000012 AC5=&17 + 2451 000003 RAN1=&17 + 2452 032614 201 04 0 00 032614 MOVEI AC-1,. + 2453 032615 202 04 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2454 032616 201 04 0 00 000004 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2455 032617 202 04 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2456 032620 201 04 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 2457 032621 240 04 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 2458 032622 240 04 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2459 032623 BMACM1: RANDOM^ + 2460 032623 200 05 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2461 032624 270 05 0 00 037562 ADD AC,[142536475076] + 2462 032625 241 05 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2463 032626 447 05 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2464 032627 322 05 0 00 032623 BMACM2: JUMPE AC,BMACM1 ;REJECT IF RAN = 0. + 2465 032630 204 06 0 00 000005 MOVS AC1,AC ;SECOND RANDOM NUMBER + 2466 032631 426 06 0 00 000000 SETAM AC1,0 ;AC1 TO AC0. + 2467 032632 434 00 0 00 000005 IOR AC ;SIMULATE + 2468 032633 430 00 0 00 000005 XOR AC ;THE INSTUCTION + 2469 032634 316 00 0 00 000006 CAMN 0,AC1 ;SIM ANS = C(AC)? + 2470 032635 254 00 0 00 032623 JRST BMACM1 ;YES. REJECT. + 2471 032636 422 06 0 00 000005 ANDCMM AC1,AC ;DO AN ANDCMM INSTRUCTION. + 2472 032637 316 06 0 00 000005 CAMN AC1,AC ;EQUAL? + 2473 032640 004 06 0 00 000005 ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + 2474 032641 312 05 0 00 000000 CAME AC,0 ;C(E) SHOULD = SIM. ANS. + 2475 032642 004 05 0 00 000000 ERROR AC,0 ;ANDCMM FAILED. + 2476 LOOP BMACM1,BMACM2^ + 2477 032643 367 04 0 00 032623 SOJG AC-1,BMACM1 ;ITERATION COUNTER + 2478 032644 200 05 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2479 032645 321 04 0 00 032627 JUMPL AC-1,BMACM2 ;LOOP ON ERROR SWITCH ^ + 2480 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 32 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0072 + + 2481 + 2482 ;TEST ANDCBM, WHERE E IS AN AC. THE INSTRUCTION + 2483 ;IS TESTED FOR NOT STORING IN AC AS WELL AS STORING + 2484 ;PROPERLY IN C(E). + 2485 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 2486 + 2487 000007 AC=7 + 2488 032646 BMACB: SETUP 100,0^ + 2489 000010 AC1=&17 + 2490 000011 AC2=&17 + 2491 000012 AC3=&17 + 2492 000013 AC4=&17 + 2493 000014 AC5=&17 + 2494 000005 RAN1=&17 + 2495 032646 201 06 0 00 032646 MOVEI AC-1,. + 2496 032647 202 06 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2497 032650 201 06 0 00 000006 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2498 032651 202 06 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2499 032652 201 06 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 2500 032653 240 06 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 2501 032654 240 06 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2502 032655 BMACB1: RANDOM^ + 2503 032655 200 07 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2504 032656 270 07 0 00 037562 ADD AC,[142536475076] + 2505 032657 241 07 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2506 032660 447 07 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2507 032661 204 10 0 00 000007 BMACB2: MOVS AC1,AC ;SECOND RANDOM NUMBER. + 2508 032662 460 00 0 00 000010 SETCM AC1 ;SIMULATE + 2509 032663 460 01 0 00 000007 SETCM 1,AC ;AN + 2510 032664 404 00 0 00 000001 AND 1 ;ANDCBM INST. + 2511 032665 442 10 0 00 000007 ANDCBM AC1,AC ;DO AN ANDCBM. + 2512 032666 316 10 0 00 000007 CAMN AC1,AC ;EQUAL? + 2513 032667 004 10 0 00 000007 ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + 2514 032670 312 07 0 00 000000 CAME AC,0 ;C(E) SHOULD = SIM. ANS. + 2515 032671 004 07 0 00 000000 ERROR AC,0 ;ANDCBM FAILED. + 2516 LOOP BMACB1,BMACB2^ + 2517 032672 367 06 0 00 032655 SOJG AC-1,BMACB1 ;ITERATION COUNTER + 2518 032673 200 07 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2519 032674 321 06 0 00 032661 JUMPL AC-1,BMACB2 ;LOOP ON ERROR SWITCH ^ + 2520 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 33 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0073 + + 2521 + 2522 ;TEST SETCAM, WHERE E IS AN AC. THE INSTRUCTION + 2523 ;IS TESTED FOR NOT STORING IN AC AS WELL AS + 2524 ;PROPER C(E). + 2525 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 2526 + 2527 000010 AC=10 + 2528 032675 BMCMM: SETUP 200,0^ + 2529 000011 AC1=&17 + 2530 000012 AC2=&17 + 2531 000013 AC3=&17 + 2532 000014 AC4=&17 + 2533 000015 AC5=&17 + 2534 000006 RAN1=&17 + 2535 032675 201 07 0 00 032675 MOVEI AC-1,. + 2536 032676 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2537 032677 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2538 032700 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2539 032701 201 07 0 00 000200 MOVEI AC-1,200 ;ROUTINE WEIGHTING + 2540 032702 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 2541 032703 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2542 032704 BMCMM1: RANDOM^ + 2543 032704 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2544 032705 270 10 0 00 037562 ADD AC,[142536475076] + 2545 032706 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2546 032707 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2547 032710 204 11 0 00 000010 BMCMM2: MOVS AC1,AC ;CHECK FOR NO CHANGE + 2548 032711 316 11 0 00 000010 CAMN AC1,AC ;IN 8 COMPLEMENTS + 2549 032712 254 00 0 00 032704 JRST BMCMM1 ;REJECT IF HALF SAME. + 2550 + 2551 REPEAT 10,< + 2552 SETCMM AC1,AC> + 2553 + 2554 032713 462 11 0 00 000010 SETCMM AC1,AC + 2555 + 2556 032714 462 11 0 00 000010 SETCMM AC1,AC + 2557 + 2558 032715 462 11 0 00 000010 SETCMM AC1,AC + 2559 + 2560 032716 462 11 0 00 000010 SETCMM AC1,AC + 2561 + 2562 032717 462 11 0 00 000010 SETCMM AC1,AC + 2563 + 2564 032720 462 11 0 00 000010 SETCMM AC1,AC + 2565 + 2566 032721 462 11 0 00 000010 SETCMM AC1,AC + 2567 + 2568 032722 462 11 0 00 000010 SETCMM AC1,AC + 2569 032723 316 11 0 00 000010 CAMN AC1,AC ;EQUAL? + 2570 032724 004 11 0 00 000010 ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + 2571 032725 312 10 0 00 037667 CAME AC,RAN ;C(E) SHOULD = ORIG. C(E). + 2572 032726 004 10 0 00 037667 ERROR AC,RAN ;SETCMM FAILED. + 2573 LOOP BMCMM1,BMCMM2^ + 2574 032727 367 07 0 00 032704 SOJG AC-1,BMCMM1 ;ITERATION COUNTER + 2575 032730 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 33-1 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0074 + + 2576 032731 321 07 0 00 032710 JUMPL AC-1,BMCMM2 ;LOOP ON ERROR SWITCH ^ + 2577 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 34 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0075 + + 2578 + 2579 ;TEST SETCAM, WHERE E IS AN AC. TEST FOR NOT + 2580 ;STORING IN AC AS WELL AS PROPER STORAGE IN C(E). + 2581 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 2582 + 2583 000011 AC=11 + 2584 032732 BMCAM: SETUP 100,0^ + 2585 000012 AC1=&17 + 2586 000013 AC2=&17 + 2587 000014 AC3=&17 + 2588 000015 AC4=&17 + 2589 000016 AC5=&17 + 2590 000007 RAN1=&17 + 2591 032732 201 10 0 00 032732 MOVEI AC-1,. + 2592 032733 202 10 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2593 032734 201 10 0 00 000010 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2594 032735 202 10 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2595 032736 201 10 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 2596 032737 240 10 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 2597 032740 240 10 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2598 032741 BMCAM1: RANDOM^ + 2599 032741 200 11 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2600 032742 270 11 0 00 037562 ADD AC,[142536475076] + 2601 032743 241 11 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2602 032744 447 11 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2603 032745 204 12 0 00 000011 BMCAM2: MOVS AC1,AC ;SECOND RANDOM NUMBER. + 2604 032746 460 00 0 00 000012 SETCM AC1 ;SIMULATE SETCAM. + 2605 032747 452 12 0 00 000011 SETCAM AC1,AC ;DO SETCAM. + 2606 032750 316 12 0 00 000011 CAMN AC1,AC ;EQUAL? + 2607 032751 004 12 0 00 000011 ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + 2608 032752 312 11 0 00 000000 CAME AC,0 ;C(E) SHOULD = SIM. ANS. + 2609 032753 004 11 0 00 000000 ERROR AC,0 ;SETCAM FAILED. + 2610 LOOP BMCAM1,BMACM2^ + 2611 032754 367 10 0 00 032741 SOJG AC-1,BMCAM1 ;ITERATION COUNTER + 2612 032755 200 11 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2613 032756 321 10 0 00 032627 JUMPL AC-1,BMACM2 ;LOOP ON ERROR SWITCH ^ + 2614 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 35 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0076 + + 2615 + 2616 ;TEST SETAM, WHERE E IS AN AC. + 2617 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 2618 + 2619 000010 AC=10 + 2620 032757 BMSA: SETUP 100,0^ + 2621 000011 AC1=&17 + 2622 000012 AC2=&17 + 2623 000013 AC3=&17 + 2624 000014 AC4=&17 + 2625 000015 AC5=&17 + 2626 000006 RAN1=&17 + 2627 032757 201 07 0 00 032757 MOVEI AC-1,. + 2628 032760 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2629 032761 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2630 032762 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2631 032763 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 2632 032764 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 2633 032765 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2634 032766 BMSA1: RANDOM^ + 2635 032766 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2636 032767 270 10 0 00 037562 ADD AC,[142536475076] + 2637 032770 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2638 032771 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2639 032772 204 11 0 00 000010 BMSA2: MOVS AC1,AC ;SECOND RANDOM NUMBER + 2640 032773 316 11 0 00 000010 CAMN AC1,AC + 2641 032774 254 00 0 00 032766 JRST BMSA1 ;REJECT IF SAME. + 2642 032775 426 10 0 00 000011 SETAM AC,AC1 ;C(AC) TO C(AC1) + 2643 032776 312 10 0 00 000011 CAME AC,AC1 ;EQUAL? + 2644 032777 004 10 0 00 000011 ERROR AC,AC1 ;NO. + 2645 033000 312 11 0 00 037667 CAME AC1,RAN ;C(E) SHOULD = ORIG C(AC). + 2646 033001 004 11 0 00 037667 ERROR AC1,RAN ;SETAM FAILED. + 2647 LOOP BMSA1,BMSA2^ + 2648 033002 367 07 0 00 032766 SOJG AC-1,BMSA1 ;ITERATION COUNTER + 2649 033003 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2650 033004 321 07 0 00 032772 JUMPL AC-1,BMSA2 ;LOOP ON ERROR SWITCH ^ + 2651 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 36 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0077 + + 2652 + 2653 ;TEST SETOM, WHERE E IS AN AC. + 2654 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 2655 + 2656 000010 AC=10 + 2657 033005 BMSM: SETUP 100,0^ + 2658 000011 AC1=&17 + 2659 000012 AC2=&17 + 2660 000013 AC3=&17 + 2661 000014 AC4=&17 + 2662 000015 AC5=&17 + 2663 000006 RAN1=&17 + 2664 033005 201 07 0 00 033005 MOVEI AC-1,. + 2665 033006 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2666 033007 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2667 033010 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2668 033011 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 2669 033012 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 2670 033013 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2671 033014 BMSM1: RANDOM^ + 2672 033014 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2673 033015 270 10 0 00 037562 ADD AC,[142536475076] + 2674 033016 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2675 033017 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2676 033020 204 11 0 00 000010 BMSM2: MOVS AC1,AC ;SECOND RANDOM NUMBER + 2677 033021 476 11 0 00 000010 SETOM AC1,AC ;DO SETOM INST. + 2678 033022 316 11 0 00 000010 CAMN AC1,AC ;EQUAL? + 2679 033023 004 11 0 00 000010 ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + 2680 033024 312 10 0 00 037565 CAME AC,[-1] ;C(E) SHOULD = A -1. + 2681 033025 004 10 0 00 037565 ERROR AC,[-1] ;SETOM FAILED. + 2682 LOOP BMSM1,BMSM2^ + 2683 033026 367 07 0 00 033014 SOJG AC-1,BMSM1 ;ITERATION COUNTER + 2684 033027 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2685 033030 321 07 0 00 033020 JUMPL AC-1,BMSM2 ;LOOP ON ERROR SWITCH ^ + 2686 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 37 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0078 + + 2687 + 2688 ;TEST SETMM, WHERE E IS AN AC. + 2689 ;ERRORS ARE IN THE FORM (PC, AC,C(AC),CORRECT) + 2690 + 2691 000010 AC=10 + 2692 033031 BMSMM: SETUP 100,0^ + 2693 000011 AC1=&17 + 2694 000012 AC2=&17 + 2695 000013 AC3=&17 + 2696 000014 AC4=&17 + 2697 000015 AC5=&17 + 2698 000006 RAN1=&17 + 2699 033031 201 07 0 00 033031 MOVEI AC-1,. + 2700 033032 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2701 033033 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2702 033034 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2703 033035 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 2704 033036 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 2705 033037 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2706 033040 BMSMM1: RANDOM^ + 2707 033040 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2708 033041 270 10 0 00 037562 ADD AC,[142536475076] + 2709 033042 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2710 033043 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2711 033044 204 11 0 00 000010 BMSMM2: MOVS AC1,AC ;A SECOND RANDOM NUMBER + 2712 033045 316 10 0 00 000011 CAMN AC,AC1 ;REJECT IF + 2713 033046 254 00 0 00 033040 JRST BMSMM1 ;HALF SAME + 2714 ;DO 8 SETMM...SHOULD NOT CHANGE C(E). + 2715 REPEAT 10,< + 2716 SETMM AC1,AC> + 2717 + 2718 033047 416 11 0 00 000010 SETMM AC1,AC + 2719 + 2720 033050 416 11 0 00 000010 SETMM AC1,AC + 2721 + 2722 033051 416 11 0 00 000010 SETMM AC1,AC + 2723 + 2724 033052 416 11 0 00 000010 SETMM AC1,AC + 2725 + 2726 033053 416 11 0 00 000010 SETMM AC1,AC + 2727 + 2728 033054 416 11 0 00 000010 SETMM AC1,AC + 2729 + 2730 033055 416 11 0 00 000010 SETMM AC1,AC + 2731 + 2732 033056 416 11 0 00 000010 SETMM AC1,AC + 2733 033057 316 11 0 00 000010 CAMN AC1,AC ;EQUAL? + 2734 033060 004 11 0 00 000010 ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + 2735 033061 312 10 0 00 037667 CAME AC,RAN ;C(E) SHOULD = ORIG. C(E). + 2736 033062 004 10 0 00 037667 ERROR AC,RAN ;SETMM FAILED. + 2737 LOOP BMSMM1,BMSMM2^ + 2738 033063 367 07 0 00 033040 SOJG AC-1,BMSMM1 ;ITERATION COUNTER + 2739 033064 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2740 033065 321 07 0 00 033044 JUMPL AC-1,BMSMM2 ;LOOP ON ERROR SWITCH ^ + 2741 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 38 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0079 + + 2742 + 2743 ;TEST SETZM, WHERE E IS AN AC. TESTS FOR NOT STORING + 2744 ;IN AC AS WELL AS STORING IN C(E) PROPERLY. + 2745 + 2746 000010 AC=10 + 2747 033066 SETZM1: SETUP 40,0^ + 2748 000011 AC1=&17 + 2749 000012 AC2=&17 + 2750 000013 AC3=&17 + 2751 000014 AC4=&17 + 2752 000015 AC5=&17 + 2753 000006 RAN1=&17 + 2754 033066 201 07 0 00 033066 MOVEI AC-1,. + 2755 033067 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2756 033070 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2757 033071 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2758 033072 201 07 0 00 000040 MOVEI AC-1,40 ;ROUTINE WEIGHTING + 2759 033073 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 2760 033074 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2761 033075 SETZM2: RANDOM^ + 2762 033075 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2763 033076 270 10 0 00 037562 ADD AC,[142536475076] + 2764 033077 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2765 033100 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2766 033101 322 10 0 00 033075 SETZM3: JUMPE AC,SETZM2 ;REJECT IF C(AC) = 0. + 2767 033102 477 11 0 00 000006 SETOB AC1,RAN1 ;SET C(AC) TO ALL ONES. + 2768 033103 402 11 0 00 000010 SETZM AC1,AC ;DO SETZM + 2769 033104 312 10 0 00 037563 CAME AC,[0] ;DID AC GET CLEARED? + 2770 033105 011 00 0 00 000006 EERR ,RAN1 ;NO. + 2771 033106 312 11 0 00 037565 CAME AC1,[-1] ;DOES C(AC1) STILL = -1? + 2772 033107 011 00 0 00 000006 EERR ,RAN1 ;NO. + 2773 LOOP SETZM2,SETZM3^ + 2774 033110 367 07 0 00 033075 SOJG AC-1,SETZM2 ;ITERATION COUNTER + 2775 033111 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2776 033112 321 07 0 00 033101 JUMPL AC-1,SETZM3 ;LOOP ON ERROR SWITCH ^ + 2777 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 39 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0080 + + 2778 + 2779 ;TEST ROT LEFT 3X(2X18). CHECKING FOR AC1 NOT CHANGED + 2780 ;AS WELL AS C(AC) BEING THE PROPER NUMBER. + 2781 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 2782 + 2783 000010 AC=10 + 2784 033113 ROTL2: SETUP 200,2^ + 2785 000011 AC1=&17 + 2786 000012 AC2=&17 + 2787 000013 AC3=&17 + 2788 000014 AC4=&17 + 2789 000015 AC5=&17 + 2790 000006 RAN1=&17 + 2791 033113 201 07 0 00 033113 MOVEI AC-1,. + 2792 033114 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2793 033115 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2794 033116 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2795 033117 201 07 0 00 000200 MOVEI AC-1,200 ;ROUTINE WEIGHTING + 2796 033120 240 07 1 00 030673 ASH AC-1,@CMPLXT+2 ;ROUTINE COMPLEXITY + 2797 033121 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2798 033122 ROTL2A: RANDOM^ + 2799 033122 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2800 033123 270 10 0 00 037562 ADD AC,[142536475076] + 2801 033124 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2802 033125 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2803 033126 477 11 0 00 000006 ROTL2B: SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 2804 ;DO 6 X (ROT LEFT 18 PLACES). + 2805 REPEAT 3,< + 2806 ROT AC,22 + 2807 ROT AC,22> + 2808 + 2809 033127 241 10 0 00 000022 ROT AC,22 + 2810 033130 241 10 0 00 000022 ROT AC,22 + 2811 + 2812 033131 241 10 0 00 000022 ROT AC,22 + 2813 033132 241 10 0 00 000022 ROT AC,22 + 2814 + 2815 033133 241 10 0 00 000022 ROT AC,22 + 2816 033134 241 10 0 00 000022 ROT AC,22 + 2817 033135 312 10 0 00 037667 CAME AC,RAN ;C(AC)SHOULD = C(AC) BEFORE ROT. + 2818 033136 013 00 0 00 000022 EERRI ,22 + 2819 033137 312 11 0 00 037565 CAME AC1,[-1] ;AC1 SHOULD NOT HAVE CHANGED. + 2820 033140 001 06 0 00 000022 ERR RAN1,22 + 2821 LOOP ROTL2A,ROTL2B^ + 2822 033141 367 07 0 00 033122 SOJG AC-1,ROTL2A ;ITERATION COUNTER + 2823 033142 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2824 033143 321 07 0 00 033126 JUMPL AC-1,ROTL2B ;LOOP ON ERROR SWITCH ^ + 2825 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 40 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0081 + + 2826 ;TEST ROT RIGHT 3X(2X18)..CHECKING FOR AC1 NOT + 2827 ;CHANGED AS WELL AS C(AC) ENDING UP BEING + 2828 ;THE SAME AS IT WAS BEFORE THE ROT. + 2829 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 2830 + 2831 000010 AC=10 + 2832 033144 ROTR2: SETUP 300,2^ + 2833 000011 AC1=&17 + 2834 000012 AC2=&17 + 2835 000013 AC3=&17 + 2836 000014 AC4=&17 + 2837 000015 AC5=&17 + 2838 000006 RAN1=&17 + 2839 033144 201 07 0 00 033144 MOVEI AC-1,. + 2840 033145 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2841 033146 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2842 033147 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2843 033150 201 07 0 00 000300 MOVEI AC-1,300 ;ROUTINE WEIGHTING + 2844 033151 240 07 1 00 030673 ASH AC-1,@CMPLXT+2 ;ROUTINE COMPLEXITY + 2845 033152 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2846 033153 ROTR2A: RANDOM^ + 2847 033153 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2848 033154 270 10 0 00 037562 ADD AC,[142536475076] + 2849 033155 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2850 033156 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2851 033157 477 11 0 00 000006 ROTR2B: SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 2852 ;DO 6 X (ROT RIGHT 18 PLACES). + 2853 REPEAT 3,< + 2854 ROT AC,-22 + 2855 ROT AC,-22> + 2856 + 2857 033160 241 10 0 00 777756 ROT AC,-22 + 2858 033161 241 10 0 00 777756 ROT AC,-22 + 2859 + 2860 033162 241 10 0 00 777756 ROT AC,-22 + 2861 033163 241 10 0 00 777756 ROT AC,-22 + 2862 + 2863 033164 241 10 0 00 777756 ROT AC,-22 + 2864 033165 241 10 0 00 777756 ROT AC,-22 + 2865 033166 312 10 0 00 037667 CAME AC,RAN ;C(AC) SHOULD = C(AC) BEFORE ROT. + 2866 033167 011 00 0 00 777756 EERR ,-22 + 2867 033170 312 11 0 00 037565 CAME AC1,[-1] ;C(AC1) SHOULD STILL = -1. + 2868 033171 003 06 0 00 777756 ERRI RAN1,-22 + 2869 LOOP ROTR2A,ROTR2B^ + 2870 033172 367 07 0 00 033153 SOJG AC-1,ROTR2A ;ITERATION COUNTER + 2871 033173 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2872 033174 321 07 0 00 033157 JUMPL AC-1,ROTR2B ;LOOP ON ERROR SWITCH ^ + 2873 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 41 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0082 + + 2874 + 2875 ;TEST ROT LEFT 3X36. CHECKING FOR AC1 NOT + 2876 ;CHANGED AND C(AC) = WHAT IT WAS BEFORE + 2877 ;ROT. + 2878 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 2879 + 2880 000002 AC=2 + 2881 033175 RTL36: SETUP 300,2^ + 2882 000003 AC1=&17 + 2883 000004 AC2=&17 + 2884 000005 AC3=&17 + 2885 000006 AC4=&17 + 2886 000007 AC5=&17 + 2887 000000 RAN1=&17 + 2888 033175 201 01 0 00 033175 MOVEI AC-1,. + 2889 033176 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2890 033177 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2891 033200 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2892 033201 201 01 0 00 000300 MOVEI AC-1,300 ;ROUTINE WEIGHTING + 2893 033202 240 01 1 00 030673 ASH AC-1,@CMPLXT+2 ;ROUTINE COMPLEXITY + 2894 033203 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2895 033204 RTL36A: RANDOM^ + 2896 033204 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2897 033205 270 02 0 00 037562 ADD AC,[142536475076] + 2898 033206 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2899 033207 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2900 033210 477 03 0 00 000000 RTL36B: SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 2901 ;DO 3 X (ROT LEFT 36 PLACES). + 2902 REPEAT 3,< + 2903 ROT AC,44> + 2904 + 2905 033211 241 02 0 00 000044 ROT AC,44 + 2906 + 2907 033212 241 02 0 00 000044 ROT AC,44 + 2908 + 2909 033213 241 02 0 00 000044 ROT AC,44 + 2910 033214 312 02 0 00 037667 CAME AC,RAN ;C(AC) SHOULD = C(AC) BEFORE ROT. + 2911 033215 013 00 0 00 000044 EERRI ,44 + 2912 033216 312 03 0 00 037565 CAME AC1,[-1] ;C(AC1) SHOULD STILL = -1. + 2913 033217 003 00 0 00 000044 ERRI RAN1,44 + 2914 LOOP RTL36A,RTL36B^ + 2915 033220 367 01 0 00 033204 SOJG AC-1,RTL36A ;ITERATION COUNTER + 2916 033221 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2917 033222 321 01 0 00 033210 JUMPL AC-1,RTL36B ;LOOP ON ERROR SWITCH ^ + 2918 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 42 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0083 + + 2919 + 2920 ;TEST ROT RIGHT 3X36. CHECKING FOR AC1 NOT + 2921 ;CHANGED AND C(AC) = WHAT IT DID BEFORE ROT. + 2922 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 2923 + 2924 000002 AC=2 + 2925 033223 RTR36: SETUP 300,2^ + 2926 000003 AC1=&17 + 2927 000004 AC2=&17 + 2928 000005 AC3=&17 + 2929 000006 AC4=&17 + 2930 000007 AC5=&17 + 2931 000000 RAN1=&17 + 2932 033223 201 01 0 00 033223 MOVEI AC-1,. + 2933 033224 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2934 033225 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2935 033226 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2936 033227 201 01 0 00 000300 MOVEI AC-1,300 ;ROUTINE WEIGHTING + 2937 033230 240 01 1 00 030673 ASH AC-1,@CMPLXT+2 ;ROUTINE COMPLEXITY + 2938 033231 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2939 033232 RTR36A: RANDOM^ + 2940 033232 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2941 033233 270 02 0 00 037562 ADD AC,[142536475076] + 2942 033234 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2943 033235 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2944 033236 477 03 0 00 000000 RTR36B: SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 2945 ;DO 3 X (ROT RIGHT 36 PLACES). + 2946 REPEAT 3,< + 2947 ROT AC,-44> + 2948 + 2949 033237 241 02 0 00 777734 ROT AC,-44 + 2950 + 2951 033240 241 02 0 00 777734 ROT AC,-44 + 2952 + 2953 033241 241 02 0 00 777734 ROT AC,-44 + 2954 033242 312 02 0 00 037667 CAME AC,RAN ;C(AC) SHOULD = RAN. + 2955 033243 013 00 0 00 777734 EERRI ,-44 + 2956 033244 312 03 0 00 037565 CAME AC1,[-1] ;C(AC1) SHOULD STILL = -1. + 2957 033245 003 00 0 00 777734 ERRI RAN1,-44 + 2958 LOOP RTR36A,RTR36B^ + 2959 033246 367 01 0 00 033232 SOJG AC-1,RTR36A ;ITERATION COUNTER + 2960 033247 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 2961 033250 321 01 0 00 033236 JUMPL AC-1,RTR36B ;LOOP ON ERROR SWITCH ^ + 2962 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 43 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0084 + + 2963 + 2964 ;TEST ROTC LEFT 3X36 THROUGH ALL AC'S CHECKING + 2965 ;FOR C(AC) AND C(AC1) BEING EXCHANGED + 2966 ;AFTER THE ROTC. + 2967 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 2968 + 2969 000002 AC=2 + 2970 033251 RTCL: SETUP 100,2^ + 2971 000003 AC1=&17 + 2972 000004 AC2=&17 + 2973 000005 AC3=&17 + 2974 000006 AC4=&17 + 2975 000007 AC5=&17 + 2976 000000 RAN1=&17 + 2977 033251 201 01 0 00 033251 MOVEI AC-1,. + 2978 033252 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 2979 033253 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 2980 033254 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 2981 033255 201 01 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 2982 033256 240 01 1 00 030673 ASH AC-1,@CMPLXT+2 ;ROUTINE COMPLEXITY + 2983 033257 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 2984 033260 RTCLA: RANDOM^ + 2985 033260 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 2986 033261 270 02 0 00 037562 ADD AC,[142536475076] + 2987 033262 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 2988 033263 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 2989 + 2990 RTCLB: REPEAT ^D10,< + 2991 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 2992 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 2993 ;DO 3 X (ROTC LEFT 36 PLACES). + 2994 REPEAT 3,< + 2995 ROTC AC,44> + 2996 CAME AC1,RAN ;C(AC1) SHOULD = RAN. + 2997 EERRI ,44 + 2998 CAME AC,[-1] ;C(AC) SHOULD = A -1. + 2999 ERRI RAN1,44 + 3000 AC=&17 + 3001 AC1=&17 + 3002 > + 3003 + 3004 033264 200 02 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3005 033265 477 03 0 00 000000 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3006 ;DO 3 X (ROTC LEFT 36 PLACES). + 3007 REPEAT 3, + 3008 + 3009 033266 245 02 0 00 000044 ROTC AC,44 + 3010 + 3011 033267 245 02 0 00 000044 ROTC AC,44 + 3012 + 3013 033270 245 02 0 00 000044 ROTC AC,44 + 3014 033271 312 03 0 00 037667 CAME AC1,RAN ;C(AC1) SHOULD = RAN. + 3015 033272 013 00 0 00 000044 EERRI ,44 + 3016 033273 312 02 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = A -1. + 3017 033274 003 00 0 00 000044 ERRI RAN1,44 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 43-1 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0085 + + 3018 000003 AC=&17 + 3019 000004 AC1=&17 + 3020 + 3021 + 3022 033275 200 03 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3023 033276 477 04 0 00 000000 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3024 ;DO 3 X (ROTC LEFT 36 PLACES). + 3025 REPEAT 3, + 3026 + 3027 033277 245 03 0 00 000044 ROTC AC,44 + 3028 + 3029 033300 245 03 0 00 000044 ROTC AC,44 + 3030 + 3031 033301 245 03 0 00 000044 ROTC AC,44 + 3032 033302 312 04 0 00 037667 CAME AC1,RAN ;C(AC1) SHOULD = RAN. + 3033 033303 013 00 0 00 000044 EERRI ,44 + 3034 033304 312 03 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = A -1. + 3035 033305 003 00 0 00 000044 ERRI RAN1,44 + 3036 000004 AC=&17 + 3037 000005 AC1=&17 + 3038 + 3039 + 3040 033306 200 04 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3041 033307 477 05 0 00 000000 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3042 ;DO 3 X (ROTC LEFT 36 PLACES). + 3043 REPEAT 3, + 3044 + 3045 033310 245 04 0 00 000044 ROTC AC,44 + 3046 + 3047 033311 245 04 0 00 000044 ROTC AC,44 + 3048 + 3049 033312 245 04 0 00 000044 ROTC AC,44 + 3050 033313 312 05 0 00 037667 CAME AC1,RAN ;C(AC1) SHOULD = RAN. + 3051 033314 013 00 0 00 000044 EERRI ,44 + 3052 033315 312 04 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = A -1. + 3053 033316 003 00 0 00 000044 ERRI RAN1,44 + 3054 000005 AC=&17 + 3055 000006 AC1=&17 + 3056 + 3057 + 3058 033317 200 05 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3059 033320 477 06 0 00 000000 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3060 ;DO 3 X (ROTC LEFT 36 PLACES). + 3061 REPEAT 3, + 3062 + 3063 033321 245 05 0 00 000044 ROTC AC,44 + 3064 + 3065 033322 245 05 0 00 000044 ROTC AC,44 + 3066 + 3067 033323 245 05 0 00 000044 ROTC AC,44 + 3068 033324 312 06 0 00 037667 CAME AC1,RAN ;C(AC1) SHOULD = RAN. + 3069 033325 013 00 0 00 000044 EERRI ,44 + 3070 033326 312 05 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = A -1. + 3071 033327 003 00 0 00 000044 ERRI RAN1,44 + 3072 000006 AC=&17 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 43-2 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0086 + + 3073 000007 AC1=&17 + 3074 + 3075 + 3076 033330 200 06 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3077 033331 477 07 0 00 000000 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3078 ;DO 3 X (ROTC LEFT 36 PLACES). + 3079 REPEAT 3, + 3080 + 3081 033332 245 06 0 00 000044 ROTC AC,44 + 3082 + 3083 033333 245 06 0 00 000044 ROTC AC,44 + 3084 + 3085 033334 245 06 0 00 000044 ROTC AC,44 + 3086 033335 312 07 0 00 037667 CAME AC1,RAN ;C(AC1) SHOULD = RAN. + 3087 033336 013 00 0 00 000044 EERRI ,44 + 3088 033337 312 06 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = A -1. + 3089 033340 003 00 0 00 000044 ERRI RAN1,44 + 3090 000007 AC=&17 + 3091 000010 AC1=&17 + 3092 + 3093 + 3094 033341 200 07 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3095 033342 477 10 0 00 000000 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3096 ;DO 3 X (ROTC LEFT 36 PLACES). + 3097 REPEAT 3, + 3098 + 3099 033343 245 07 0 00 000044 ROTC AC,44 + 3100 + 3101 033344 245 07 0 00 000044 ROTC AC,44 + 3102 + 3103 033345 245 07 0 00 000044 ROTC AC,44 + 3104 033346 312 10 0 00 037667 CAME AC1,RAN ;C(AC1) SHOULD = RAN. + 3105 033347 013 00 0 00 000044 EERRI ,44 + 3106 033350 312 07 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = A -1. + 3107 033351 003 00 0 00 000044 ERRI RAN1,44 + 3108 000010 AC=&17 + 3109 000011 AC1=&17 + 3110 + 3111 + 3112 033352 200 10 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3113 033353 477 11 0 00 000000 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3114 ;DO 3 X (ROTC LEFT 36 PLACES). + 3115 REPEAT 3, + 3116 + 3117 033354 245 10 0 00 000044 ROTC AC,44 + 3118 + 3119 033355 245 10 0 00 000044 ROTC AC,44 + 3120 + 3121 033356 245 10 0 00 000044 ROTC AC,44 + 3122 033357 312 11 0 00 037667 CAME AC1,RAN ;C(AC1) SHOULD = RAN. + 3123 033360 013 00 0 00 000044 EERRI ,44 + 3124 033361 312 10 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = A -1. + 3125 033362 003 00 0 00 000044 ERRI RAN1,44 + 3126 000011 AC=&17 + 3127 000012 AC1=&17 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 43-3 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0087 + + 3128 + 3129 + 3130 033363 200 11 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3131 033364 477 12 0 00 000000 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3132 ;DO 3 X (ROTC LEFT 36 PLACES). + 3133 REPEAT 3, + 3134 + 3135 033365 245 11 0 00 000044 ROTC AC,44 + 3136 + 3137 033366 245 11 0 00 000044 ROTC AC,44 + 3138 + 3139 033367 245 11 0 00 000044 ROTC AC,44 + 3140 033370 312 12 0 00 037667 CAME AC1,RAN ;C(AC1) SHOULD = RAN. + 3141 033371 013 00 0 00 000044 EERRI ,44 + 3142 033372 312 11 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = A -1. + 3143 033373 003 00 0 00 000044 ERRI RAN1,44 + 3144 000012 AC=&17 + 3145 000013 AC1=&17 + 3146 + 3147 + 3148 033374 200 12 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3149 033375 477 13 0 00 000000 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3150 ;DO 3 X (ROTC LEFT 36 PLACES). + 3151 REPEAT 3, + 3152 + 3153 033376 245 12 0 00 000044 ROTC AC,44 + 3154 + 3155 033377 245 12 0 00 000044 ROTC AC,44 + 3156 + 3157 033400 245 12 0 00 000044 ROTC AC,44 + 3158 033401 312 13 0 00 037667 CAME AC1,RAN ;C(AC1) SHOULD = RAN. + 3159 033402 013 00 0 00 000044 EERRI ,44 + 3160 033403 312 12 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = A -1. + 3161 033404 003 00 0 00 000044 ERRI RAN1,44 + 3162 000013 AC=&17 + 3163 000014 AC1=&17 + 3164 + 3165 + 3166 033405 200 13 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3167 033406 477 14 0 00 000000 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3168 ;DO 3 X (ROTC LEFT 36 PLACES). + 3169 REPEAT 3, + 3170 + 3171 033407 245 13 0 00 000044 ROTC AC,44 + 3172 + 3173 033410 245 13 0 00 000044 ROTC AC,44 + 3174 + 3175 033411 245 13 0 00 000044 ROTC AC,44 + 3176 033412 312 14 0 00 037667 CAME AC1,RAN ;C(AC1) SHOULD = RAN. + 3177 033413 013 00 0 00 000044 EERRI ,44 + 3178 033414 312 13 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = A -1. + 3179 033415 003 00 0 00 000044 ERRI RAN1,44 + 3180 000014 AC=&17 + 3181 000015 AC1=&17 + 3182 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 43-4 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0088 + + 3183 000002 AC=2 + 3184 LOOP RTCLA,RTCLB^ + 3185 033416 367 01 0 00 033260 SOJG AC-1,RTCLA ;ITERATION COUNTER + 3186 033417 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 3187 033420 321 01 0 00 033264 JUMPL AC-1,RTCLB ;LOOP ON ERROR SWITCH ^ + 3188 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 44 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0089 + + 3189 + 3190 ;TEST ROTC RIGHT 3X36 THROUGH ALL AC'S. CHECKING + 3191 ;FOR C(AC) AND C(AC1) BEING EXCHANGED. + 3192 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 3193 + 3194 000002 AC=2 + 3195 033421 RTCR: SETUP 100,2^ + 3196 000003 AC1=&17 + 3197 000004 AC2=&17 + 3198 000005 AC3=&17 + 3199 000006 AC4=&17 + 3200 000007 AC5=&17 + 3201 000000 RAN1=&17 + 3202 033421 201 01 0 00 033421 MOVEI AC-1,. + 3203 033422 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 3204 033423 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 3205 033424 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 3206 033425 201 01 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 3207 033426 240 01 1 00 030673 ASH AC-1,@CMPLXT+2 ;ROUTINE COMPLEXITY + 3208 033427 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 3209 033430 RTCRA: RANDOM^ + 3210 033430 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 3211 033431 270 02 0 00 037562 ADD AC,[142536475076] + 3212 033432 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 3213 033433 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 3214 + 3215 RTCRB: REPEAT ^D10,< + 3216 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3217 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3218 ;DO 3 X (ROTC RIGHT 36 PLACES). + 3219 REPEAT 3,< + 3220 ROTC AC,-44> + 3221 CAME AC1,RAN ;C(AC1) SHOULD = C(AC) BEFORE ROTC. + 3222 EERRI ,-44 + 3223 CAME AC,[-1] ;C(AC) SHOULD = C(AC1) BEFORE ROTC. + 3224 ERRI RAN1,-44 + 3225 AC=&17 + 3226 AC1=&17 + 3227 > + 3228 + 3229 033434 200 02 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3230 033435 477 03 0 00 000000 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3231 ;DO 3 X (ROTC RIGHT 36 PLACES). + 3232 REPEAT 3, + 3233 + 3234 033436 245 02 0 00 777734 ROTC AC,-44 + 3235 + 3236 033437 245 02 0 00 777734 ROTC AC,-44 + 3237 + 3238 033440 245 02 0 00 777734 ROTC AC,-44 + 3239 033441 312 03 0 00 037667 CAME AC1,RAN ;C(AC1) SHOULD = C(AC) BEFORE ROTC. + 3240 033442 013 00 0 00 777734 EERRI ,-44 + 3241 033443 312 02 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = C(AC1) BEFORE ROTC. + 3242 033444 003 00 0 00 777734 ERRI RAN1,-44 + 3243 000003 AC=&17 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 44-1 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0090 + + 3244 000004 AC1=&17 + 3245 + 3246 + 3247 033445 200 03 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3248 033446 477 04 0 00 000000 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3249 ;DO 3 X (ROTC RIGHT 36 PLACES). + 3250 REPEAT 3, + 3251 + 3252 033447 245 03 0 00 777734 ROTC AC,-44 + 3253 + 3254 033450 245 03 0 00 777734 ROTC AC,-44 + 3255 + 3256 033451 245 03 0 00 777734 ROTC AC,-44 + 3257 033452 312 04 0 00 037667 CAME AC1,RAN ;C(AC1) SHOULD = C(AC) BEFORE ROTC. + 3258 033453 013 00 0 00 777734 EERRI ,-44 + 3259 033454 312 03 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = C(AC1) BEFORE ROTC. + 3260 033455 003 00 0 00 777734 ERRI RAN1,-44 + 3261 000004 AC=&17 + 3262 000005 AC1=&17 + 3263 + 3264 + 3265 033456 200 04 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3266 033457 477 05 0 00 000000 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3267 ;DO 3 X (ROTC RIGHT 36 PLACES). + 3268 REPEAT 3, + 3269 + 3270 033460 245 04 0 00 777734 ROTC AC,-44 + 3271 + 3272 033461 245 04 0 00 777734 ROTC AC,-44 + 3273 + 3274 033462 245 04 0 00 777734 ROTC AC,-44 + 3275 033463 312 05 0 00 037667 CAME AC1,RAN ;C(AC1) SHOULD = C(AC) BEFORE ROTC. + 3276 033464 013 00 0 00 777734 EERRI ,-44 + 3277 033465 312 04 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = C(AC1) BEFORE ROTC. + 3278 033466 003 00 0 00 777734 ERRI RAN1,-44 + 3279 000005 AC=&17 + 3280 000006 AC1=&17 + 3281 + 3282 + 3283 033467 200 05 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3284 033470 477 06 0 00 000000 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3285 ;DO 3 X (ROTC RIGHT 36 PLACES). + 3286 REPEAT 3, + 3287 + 3288 033471 245 05 0 00 777734 ROTC AC,-44 + 3289 + 3290 033472 245 05 0 00 777734 ROTC AC,-44 + 3291 + 3292 033473 245 05 0 00 777734 ROTC AC,-44 + 3293 033474 312 06 0 00 037667 CAME AC1,RAN ;C(AC1) SHOULD = C(AC) BEFORE ROTC. + 3294 033475 013 00 0 00 777734 EERRI ,-44 + 3295 033476 312 05 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = C(AC1) BEFORE ROTC. + 3296 033477 003 00 0 00 777734 ERRI RAN1,-44 + 3297 000006 AC=&17 + 3298 000007 AC1=&17 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 44-2 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0091 + + 3299 + 3300 + 3301 033500 200 06 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3302 033501 477 07 0 00 000000 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3303 ;DO 3 X (ROTC RIGHT 36 PLACES). + 3304 REPEAT 3, + 3305 + 3306 033502 245 06 0 00 777734 ROTC AC,-44 + 3307 + 3308 033503 245 06 0 00 777734 ROTC AC,-44 + 3309 + 3310 033504 245 06 0 00 777734 ROTC AC,-44 + 3311 033505 312 07 0 00 037667 CAME AC1,RAN ;C(AC1) SHOULD = C(AC) BEFORE ROTC. + 3312 033506 013 00 0 00 777734 EERRI ,-44 + 3313 033507 312 06 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = C(AC1) BEFORE ROTC. + 3314 033510 003 00 0 00 777734 ERRI RAN1,-44 + 3315 000007 AC=&17 + 3316 000010 AC1=&17 + 3317 + 3318 + 3319 033511 200 07 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3320 033512 477 10 0 00 000000 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3321 ;DO 3 X (ROTC RIGHT 36 PLACES). + 3322 REPEAT 3, + 3323 + 3324 033513 245 07 0 00 777734 ROTC AC,-44 + 3325 + 3326 033514 245 07 0 00 777734 ROTC AC,-44 + 3327 + 3328 033515 245 07 0 00 777734 ROTC AC,-44 + 3329 033516 312 10 0 00 037667 CAME AC1,RAN ;C(AC1) SHOULD = C(AC) BEFORE ROTC. + 3330 033517 013 00 0 00 777734 EERRI ,-44 + 3331 033520 312 07 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = C(AC1) BEFORE ROTC. + 3332 033521 003 00 0 00 777734 ERRI RAN1,-44 + 3333 000010 AC=&17 + 3334 000011 AC1=&17 + 3335 + 3336 + 3337 033522 200 10 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3338 033523 477 11 0 00 000000 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3339 ;DO 3 X (ROTC RIGHT 36 PLACES). + 3340 REPEAT 3, + 3341 + 3342 033524 245 10 0 00 777734 ROTC AC,-44 + 3343 + 3344 033525 245 10 0 00 777734 ROTC AC,-44 + 3345 + 3346 033526 245 10 0 00 777734 ROTC AC,-44 + 3347 033527 312 11 0 00 037667 CAME AC1,RAN ;C(AC1) SHOULD = C(AC) BEFORE ROTC. + 3348 033530 013 00 0 00 777734 EERRI ,-44 + 3349 033531 312 10 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = C(AC1) BEFORE ROTC. + 3350 033532 003 00 0 00 777734 ERRI RAN1,-44 + 3351 000011 AC=&17 + 3352 000012 AC1=&17 + 3353 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 44-3 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0092 + + 3354 + 3355 033533 200 11 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3356 033534 477 12 0 00 000000 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3357 ;DO 3 X (ROTC RIGHT 36 PLACES). + 3358 REPEAT 3, + 3359 + 3360 033535 245 11 0 00 777734 ROTC AC,-44 + 3361 + 3362 033536 245 11 0 00 777734 ROTC AC,-44 + 3363 + 3364 033537 245 11 0 00 777734 ROTC AC,-44 + 3365 033540 312 12 0 00 037667 CAME AC1,RAN ;C(AC1) SHOULD = C(AC) BEFORE ROTC. + 3366 033541 013 00 0 00 777734 EERRI ,-44 + 3367 033542 312 11 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = C(AC1) BEFORE ROTC. + 3368 033543 003 00 0 00 777734 ERRI RAN1,-44 + 3369 000012 AC=&17 + 3370 000013 AC1=&17 + 3371 + 3372 + 3373 033544 200 12 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3374 033545 477 13 0 00 000000 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3375 ;DO 3 X (ROTC RIGHT 36 PLACES). + 3376 REPEAT 3, + 3377 + 3378 033546 245 12 0 00 777734 ROTC AC,-44 + 3379 + 3380 033547 245 12 0 00 777734 ROTC AC,-44 + 3381 + 3382 033550 245 12 0 00 777734 ROTC AC,-44 + 3383 033551 312 13 0 00 037667 CAME AC1,RAN ;C(AC1) SHOULD = C(AC) BEFORE ROTC. + 3384 033552 013 00 0 00 777734 EERRI ,-44 + 3385 033553 312 12 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = C(AC1) BEFORE ROTC. + 3386 033554 003 00 0 00 777734 ERRI RAN1,-44 + 3387 000013 AC=&17 + 3388 000014 AC1=&17 + 3389 + 3390 + 3391 033555 200 13 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3392 033556 477 14 0 00 000000 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3393 ;DO 3 X (ROTC RIGHT 36 PLACES). + 3394 REPEAT 3, + 3395 + 3396 033557 245 13 0 00 777734 ROTC AC,-44 + 3397 + 3398 033560 245 13 0 00 777734 ROTC AC,-44 + 3399 + 3400 033561 245 13 0 00 777734 ROTC AC,-44 + 3401 033562 312 14 0 00 037667 CAME AC1,RAN ;C(AC1) SHOULD = C(AC) BEFORE ROTC. + 3402 033563 013 00 0 00 777734 EERRI ,-44 + 3403 033564 312 13 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = C(AC1) BEFORE ROTC. + 3404 033565 003 00 0 00 777734 ERRI RAN1,-44 + 3405 000014 AC=&17 + 3406 000015 AC1=&17 + 3407 + 3408 000002 AC=2 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 44-4 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0093 + + 3409 LOOP RTCRA,RTCRB^ + 3410 033566 367 01 0 00 033430 SOJG AC-1,RTCRA ;ITERATION COUNTER + 3411 033567 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 3412 033570 321 01 0 00 033434 JUMPL AC-1,RTCRB ;LOOP ON ERROR SWITCH ^ + 3413 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 45 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0094 + + 3414 + 3415 ;TEST ROT. ROT A RANDOM NUMBER A RANDOM NUMBER OF TIMES + 3416 ;IN ONE DIRECTION AND THEN THE SAME NUMBER OF TIMES + 3417 ;IN THE OPPOSITE DIRECTION. + 3418 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT). + 3419 + 3420 000002 AC=2 + 3421 033571 ROTLR: SETUP 100,4^ + 3422 000003 AC1=&17 + 3423 000004 AC2=&17 + 3424 000005 AC3=&17 + 3425 000006 AC4=&17 + 3426 000007 AC5=&17 + 3427 000000 RAN1=&17 + 3428 033571 201 01 0 00 033571 MOVEI AC-1,. + 3429 033572 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 3430 033573 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 3431 033574 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 3432 033575 201 01 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 3433 033576 240 01 1 00 030675 ASH AC-1,@CMPLXT+4 ;ROUTINE COMPLEXITY + 3434 033577 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 3435 033600 ROTLR1: RANDOM^ + 3436 033600 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 3437 033601 270 02 0 00 037562 ADD AC,[142536475076] + 3438 033602 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 3439 033603 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 3440 033604 200 05 0 00 037667 MOVE AC3,RAN ;CHECK TO SEE + 3441 033605 404 05 0 00 037566 AND AC3,[377] ;THAT THE RIGHT MOST 8 BITS + 3442 033606 322 05 0 00 033600 JUMPE AC3,ROTLR1 ;DO NOT = 0..REJECT IF THEY DO. + 3443 033607 210 04 0 00 037667 ROTLR2: MOVN AC2,RAN ;PUT 2'S COMP OF RAN INTO AC2. + 3444 033610 477 03 0 00 000000 SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + 3445 033611 241 02 0 02 000000 ROT AC,(AC) ;ROT AC A RANDOM NUMBER OF TIMES. + 3446 033612 241 02 0 04 000000 ROT AC,(AC2) ;ROT AC THE SAME NUM OF TIMES + 3447 ;IN THE OPPOSITE DIRECTION. + 3448 033613 312 02 0 00 037667 CAME AC,RAN ;C(AC) SHOULD STILL = C(RAN). + 3449 033614 004 02 0 00 037667 ERROR AC,RAN + 3450 033615 312 03 0 00 037565 CAME AC1,[-1] ;C(AC1) SHOULD STILL = -1. + 3451 033616 004 03 0 00 037565 ERROR AC1,[-1] + 3452 LOOP ROTLR1,ROTLR2^ + 3453 033617 367 01 0 00 033600 SOJG AC-1,ROTLR1 ;ITERATION COUNTER + 3454 033620 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 3455 033621 321 01 0 00 033607 JUMPL AC-1,ROTLR2 ;LOOP ON ERROR SWITCH ^ + 3456 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 46 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0095 + + 3457 + 3458 ;TEST ROTC. DO A ROTC WITH A RANDOM NUMBER A RANDOM + 3459 ;NUMBER OF TIMES IN ONE DIRECTION AND THEN THE SAME + 3460 ;NUMBER OF TIMES IN THE OPPOSITE DIRECTION. + 3461 ;REPEAT THIS TEST FOR ALL AC'S. + 3462 ;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + 3463 + 3464 000002 AC=2 + 3465 033622 RTCLR: SETUP 200,3^ + 3466 000003 AC1=&17 + 3467 000004 AC2=&17 + 3468 000005 AC3=&17 + 3469 000006 AC4=&17 + 3470 000007 AC5=&17 + 3471 000000 RAN1=&17 + 3472 033622 201 01 0 00 033622 MOVEI AC-1,. + 3473 033623 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 3474 033624 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 3475 033625 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 3476 033626 201 01 0 00 000200 MOVEI AC-1,200 ;ROUTINE WEIGHTING + 3477 033627 240 01 1 00 030674 ASH AC-1,@CMPLXT+3 ;ROUTINE COMPLEXITY + 3478 033630 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 3479 033631 RTCLR1: RANDOM^ + 3480 033631 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 3481 033632 270 02 0 00 037562 ADD AC,[142536475076] + 3482 033633 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 3483 033634 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 3484 033635 200 05 0 00 037667 MOVE AC3,RAN ;CHECK TO SEE + 3485 033636 404 05 0 00 037566 AND AC3,[377] ;THAT THE RIGHT MOST 8 BITS + 3486 033637 322 05 0 00 033631 JUMPE AC3,RTCLR1 ;DO NOT = 0..REJECT IF THEY DO. + 3487 + 3488 RTCLR2: REPEAT ^D10,< + 3489 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3490 MOVN AC2,RAN ;MOVE THE 2'S COMP INTO ANOTHER AC. + 3491 SETO AC1, ;SET AC1 TO ALL ONES. + 3492 ROTC AC,(AC) ;ROTC AC A RANDOM NUMBER OF + 3493 ;TIMES IN ONE DIRECTION. + 3494 ROTC AC,(AC2) ;ROTC AC THE SAME NUMBER OF + 3495 ;TIMES IN THE OPPOSITE DIRECTION. + 3496 CAME AC,RAN ;C(AC) SHOULD STILL = RAN. + 3497 ERROR AC,RAN + 3498 CAME AC1,[-1] ;C(AC1) SHOULD STILL =-1 + 3499 ERROR AC1,[-1] + 3500 AC=&17 + 3501 AC1=&17 + 3502 AC2=&17 + 3503 + 3504 > + 3505 + 3506 033640 200 02 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3507 033641 210 04 0 00 037667 MOVN AC2,RAN ;MOVE THE 2'S COMP INTO ANOTHER AC. + 3508 033642 474 03 0 00 000000 SETO AC1, ;SET AC1 TO ALL ONES. + 3509 033643 245 02 0 02 000000 ROTC AC,(AC) ;ROTC AC A RANDOM NUMBER OF + 3510 ;TIMES IN ONE DIRECTION. + 3511 033644 245 02 0 04 000000 ROTC AC,(AC2) ;ROTC AC THE SAME NUMBER OF +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 46-1 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0096 + + 3512 ;TIMES IN THE OPPOSITE DIRECTION. + 3513 033645 312 02 0 00 037667 CAME AC,RAN ;C(AC) SHOULD STILL = RAN. + 3514 033646 004 02 0 00 037667 ERROR AC,RAN + 3515 033647 312 03 0 00 037565 CAME AC1,[-1] ;C(AC1) SHOULD STILL =-1 + 3516 033650 004 03 0 00 037565 ERROR AC1,[-1] + 3517 000003 AC=&17 + 3518 000004 AC1=&17 + 3519 000005 AC2=&17 + 3520 + 3521 + 3522 + 3523 033651 200 03 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3524 033652 210 05 0 00 037667 MOVN AC2,RAN ;MOVE THE 2'S COMP INTO ANOTHER AC. + 3525 033653 474 04 0 00 000000 SETO AC1, ;SET AC1 TO ALL ONES. + 3526 033654 245 03 0 03 000000 ROTC AC,(AC) ;ROTC AC A RANDOM NUMBER OF + 3527 ;TIMES IN ONE DIRECTION. + 3528 033655 245 03 0 05 000000 ROTC AC,(AC2) ;ROTC AC THE SAME NUMBER OF + 3529 ;TIMES IN THE OPPOSITE DIRECTION. + 3530 033656 312 03 0 00 037667 CAME AC,RAN ;C(AC) SHOULD STILL = RAN. + 3531 033657 004 03 0 00 037667 ERROR AC,RAN + 3532 033660 312 04 0 00 037565 CAME AC1,[-1] ;C(AC1) SHOULD STILL =-1 + 3533 033661 004 04 0 00 037565 ERROR AC1,[-1] + 3534 000004 AC=&17 + 3535 000005 AC1=&17 + 3536 000006 AC2=&17 + 3537 + 3538 + 3539 + 3540 033662 200 04 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3541 033663 210 06 0 00 037667 MOVN AC2,RAN ;MOVE THE 2'S COMP INTO ANOTHER AC. + 3542 033664 474 05 0 00 000000 SETO AC1, ;SET AC1 TO ALL ONES. + 3543 033665 245 04 0 04 000000 ROTC AC,(AC) ;ROTC AC A RANDOM NUMBER OF + 3544 ;TIMES IN ONE DIRECTION. + 3545 033666 245 04 0 06 000000 ROTC AC,(AC2) ;ROTC AC THE SAME NUMBER OF + 3546 ;TIMES IN THE OPPOSITE DIRECTION. + 3547 033667 312 04 0 00 037667 CAME AC,RAN ;C(AC) SHOULD STILL = RAN. + 3548 033670 004 04 0 00 037667 ERROR AC,RAN + 3549 033671 312 05 0 00 037565 CAME AC1,[-1] ;C(AC1) SHOULD STILL =-1 + 3550 033672 004 05 0 00 037565 ERROR AC1,[-1] + 3551 000005 AC=&17 + 3552 000006 AC1=&17 + 3553 000007 AC2=&17 + 3554 + 3555 + 3556 + 3557 033673 200 05 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3558 033674 210 07 0 00 037667 MOVN AC2,RAN ;MOVE THE 2'S COMP INTO ANOTHER AC. + 3559 033675 474 06 0 00 000000 SETO AC1, ;SET AC1 TO ALL ONES. + 3560 033676 245 05 0 05 000000 ROTC AC,(AC) ;ROTC AC A RANDOM NUMBER OF + 3561 ;TIMES IN ONE DIRECTION. + 3562 033677 245 05 0 07 000000 ROTC AC,(AC2) ;ROTC AC THE SAME NUMBER OF + 3563 ;TIMES IN THE OPPOSITE DIRECTION. + 3564 033700 312 05 0 00 037667 CAME AC,RAN ;C(AC) SHOULD STILL = RAN. + 3565 033701 004 05 0 00 037667 ERROR AC,RAN + 3566 033702 312 06 0 00 037565 CAME AC1,[-1] ;C(AC1) SHOULD STILL =-1 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 46-2 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0097 + + 3567 033703 004 06 0 00 037565 ERROR AC1,[-1] + 3568 000006 AC=&17 + 3569 000007 AC1=&17 + 3570 000010 AC2=&17 + 3571 + 3572 + 3573 + 3574 033704 200 06 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3575 033705 210 10 0 00 037667 MOVN AC2,RAN ;MOVE THE 2'S COMP INTO ANOTHER AC. + 3576 033706 474 07 0 00 000000 SETO AC1, ;SET AC1 TO ALL ONES. + 3577 033707 245 06 0 06 000000 ROTC AC,(AC) ;ROTC AC A RANDOM NUMBER OF + 3578 ;TIMES IN ONE DIRECTION. + 3579 033710 245 06 0 10 000000 ROTC AC,(AC2) ;ROTC AC THE SAME NUMBER OF + 3580 ;TIMES IN THE OPPOSITE DIRECTION. + 3581 033711 312 06 0 00 037667 CAME AC,RAN ;C(AC) SHOULD STILL = RAN. + 3582 033712 004 06 0 00 037667 ERROR AC,RAN + 3583 033713 312 07 0 00 037565 CAME AC1,[-1] ;C(AC1) SHOULD STILL =-1 + 3584 033714 004 07 0 00 037565 ERROR AC1,[-1] + 3585 000007 AC=&17 + 3586 000010 AC1=&17 + 3587 000011 AC2=&17 + 3588 + 3589 + 3590 + 3591 033715 200 07 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3592 033716 210 11 0 00 037667 MOVN AC2,RAN ;MOVE THE 2'S COMP INTO ANOTHER AC. + 3593 033717 474 10 0 00 000000 SETO AC1, ;SET AC1 TO ALL ONES. + 3594 033720 245 07 0 07 000000 ROTC AC,(AC) ;ROTC AC A RANDOM NUMBER OF + 3595 ;TIMES IN ONE DIRECTION. + 3596 033721 245 07 0 11 000000 ROTC AC,(AC2) ;ROTC AC THE SAME NUMBER OF + 3597 ;TIMES IN THE OPPOSITE DIRECTION. + 3598 033722 312 07 0 00 037667 CAME AC,RAN ;C(AC) SHOULD STILL = RAN. + 3599 033723 004 07 0 00 037667 ERROR AC,RAN + 3600 033724 312 10 0 00 037565 CAME AC1,[-1] ;C(AC1) SHOULD STILL =-1 + 3601 033725 004 10 0 00 037565 ERROR AC1,[-1] + 3602 000010 AC=&17 + 3603 000011 AC1=&17 + 3604 000012 AC2=&17 + 3605 + 3606 + 3607 + 3608 033726 200 10 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3609 033727 210 12 0 00 037667 MOVN AC2,RAN ;MOVE THE 2'S COMP INTO ANOTHER AC. + 3610 033730 474 11 0 00 000000 SETO AC1, ;SET AC1 TO ALL ONES. + 3611 033731 245 10 0 10 000000 ROTC AC,(AC) ;ROTC AC A RANDOM NUMBER OF + 3612 ;TIMES IN ONE DIRECTION. + 3613 033732 245 10 0 12 000000 ROTC AC,(AC2) ;ROTC AC THE SAME NUMBER OF + 3614 ;TIMES IN THE OPPOSITE DIRECTION. + 3615 033733 312 10 0 00 037667 CAME AC,RAN ;C(AC) SHOULD STILL = RAN. + 3616 033734 004 10 0 00 037667 ERROR AC,RAN + 3617 033735 312 11 0 00 037565 CAME AC1,[-1] ;C(AC1) SHOULD STILL =-1 + 3618 033736 004 11 0 00 037565 ERROR AC1,[-1] + 3619 000011 AC=&17 + 3620 000012 AC1=&17 + 3621 000013 AC2=&17 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 46-3 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0098 + + 3622 + 3623 + 3624 + 3625 033737 200 11 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3626 033740 210 13 0 00 037667 MOVN AC2,RAN ;MOVE THE 2'S COMP INTO ANOTHER AC. + 3627 033741 474 12 0 00 000000 SETO AC1, ;SET AC1 TO ALL ONES. + 3628 033742 245 11 0 11 000000 ROTC AC,(AC) ;ROTC AC A RANDOM NUMBER OF + 3629 ;TIMES IN ONE DIRECTION. + 3630 033743 245 11 0 13 000000 ROTC AC,(AC2) ;ROTC AC THE SAME NUMBER OF + 3631 ;TIMES IN THE OPPOSITE DIRECTION. + 3632 033744 312 11 0 00 037667 CAME AC,RAN ;C(AC) SHOULD STILL = RAN. + 3633 033745 004 11 0 00 037667 ERROR AC,RAN + 3634 033746 312 12 0 00 037565 CAME AC1,[-1] ;C(AC1) SHOULD STILL =-1 + 3635 033747 004 12 0 00 037565 ERROR AC1,[-1] + 3636 000012 AC=&17 + 3637 000013 AC1=&17 + 3638 000014 AC2=&17 + 3639 + 3640 + 3641 + 3642 033750 200 12 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3643 033751 210 14 0 00 037667 MOVN AC2,RAN ;MOVE THE 2'S COMP INTO ANOTHER AC. + 3644 033752 474 13 0 00 000000 SETO AC1, ;SET AC1 TO ALL ONES. + 3645 033753 245 12 0 12 000000 ROTC AC,(AC) ;ROTC AC A RANDOM NUMBER OF + 3646 ;TIMES IN ONE DIRECTION. + 3647 033754 245 12 0 14 000000 ROTC AC,(AC2) ;ROTC AC THE SAME NUMBER OF + 3648 ;TIMES IN THE OPPOSITE DIRECTION. + 3649 033755 312 12 0 00 037667 CAME AC,RAN ;C(AC) SHOULD STILL = RAN. + 3650 033756 004 12 0 00 037667 ERROR AC,RAN + 3651 033757 312 13 0 00 037565 CAME AC1,[-1] ;C(AC1) SHOULD STILL =-1 + 3652 033760 004 13 0 00 037565 ERROR AC1,[-1] + 3653 000013 AC=&17 + 3654 000014 AC1=&17 + 3655 000015 AC2=&17 + 3656 + 3657 + 3658 + 3659 033761 200 13 0 00 037667 MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + 3660 033762 210 15 0 00 037667 MOVN AC2,RAN ;MOVE THE 2'S COMP INTO ANOTHER AC. + 3661 033763 474 14 0 00 000000 SETO AC1, ;SET AC1 TO ALL ONES. + 3662 033764 245 13 0 13 000000 ROTC AC,(AC) ;ROTC AC A RANDOM NUMBER OF + 3663 ;TIMES IN ONE DIRECTION. + 3664 033765 245 13 0 15 000000 ROTC AC,(AC2) ;ROTC AC THE SAME NUMBER OF + 3665 ;TIMES IN THE OPPOSITE DIRECTION. + 3666 033766 312 13 0 00 037667 CAME AC,RAN ;C(AC) SHOULD STILL = RAN. + 3667 033767 004 13 0 00 037667 ERROR AC,RAN + 3668 033770 312 14 0 00 037565 CAME AC1,[-1] ;C(AC1) SHOULD STILL =-1 + 3669 033771 004 14 0 00 037565 ERROR AC1,[-1] + 3670 000014 AC=&17 + 3671 000015 AC1=&17 + 3672 000016 AC2=&17 + 3673 + 3674 + 3675 000002 AC=2 + 3676 LOOP RTCLR1,RTCLR2^ +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 46-4 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0099 + + 3677 033772 367 01 0 00 033631 SOJG AC-1,RTCLR1 ;ITERATION COUNTER + 3678 033773 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 3679 033774 321 01 0 00 033640 JUMPL AC-1,RTCLR2 ;LOOP ON ERROR SWITCH ^ + 3680 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 47 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0100 + + 3681 + 3682 ;TEST OVERFLOW ON A ROT LEFT...AROV SHOULD NOT COME UP. + 3683 + 3684 000002 AC=2 + 3685 033775 ROTOV: SETUP 20,0^ + 3686 000003 AC1=&17 + 3687 000004 AC2=&17 + 3688 000005 AC3=&17 + 3689 000006 AC4=&17 + 3690 000007 AC5=&17 + 3691 000000 RAN1=&17 + 3692 033775 201 01 0 00 033775 MOVEI AC-1,. + 3693 033776 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 3694 033777 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 3695 034000 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 3696 034001 201 01 0 00 000020 MOVEI AC-1,20 ;ROUTINE WEIGHTING + 3697 034002 240 01 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 3698 034003 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 3699 034004 ROTOV1: RANDOM^ + 3700 034004 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 3701 034005 270 02 0 00 037562 ADD AC,[142536475076] + 3702 034006 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 3703 034007 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 3704 034010 322 02 0 00 034004 ROTOV2: JUMPE AC,ROTOV1 ;REJECT IF RAN = 0. + 3705 034011 316 02 0 00 037565 CAMN AC,[-1] ;ALSO REJECT IF RAN = -1. + 3706 034012 254 00 0 00 034004 JRST ROTOV1 + 3707 034013 255 10 0 00 034014 JFCL 10,.+1 ;CLEAR OV FLAG. + 3708 034014 241 02 0 00 000256 ROT AC,256 ;ROT C(AC) 256 TIMES. + 3709 034015 255 10 0 00 034017 JFCL 10,.+2 ;OV FLAG GET SET? + 3710 034016 254 00 0 00 034020 JRST .+2 ;NO. + 3711 034017 005 02 0 00 037567 ER AC,[ASCII /OV/] ;YES. SHOULD NOT SET ON A ROT. + 3712 LOOP ROTOV1,ROTOV2^ + 3713 034020 367 01 0 00 034004 SOJG AC-1,ROTOV1 ;ITERATION COUNTER + 3714 034021 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 3715 034022 321 01 0 00 034010 JUMPL AC-1,ROTOV2 ;LOOP ON ERROR SWITCH ^ + 3716 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 48 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0101 + + 3717 + 3718 ;TEST OVERFLOW FLAG ON A ROT RIGHT...SHOULD NEVER GET SET. + 3719 + 3720 000003 AC=3 + 3721 034023 RTROV: SETUP 20,0^ + 3722 000004 AC1=&17 + 3723 000005 AC2=&17 + 3724 000006 AC3=&17 + 3725 000007 AC4=&17 + 3726 000010 AC5=&17 + 3727 000001 RAN1=&17 + 3728 034023 201 02 0 00 034023 MOVEI AC-1,. + 3729 034024 202 02 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 3730 034025 201 02 0 00 000002 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 3731 034026 202 02 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 3732 034027 201 02 0 00 000020 MOVEI AC-1,20 ;ROUTINE WEIGHTING + 3733 034030 240 02 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 3734 034031 240 02 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 3735 034032 RTROV1: RANDOM^ + 3736 034032 200 03 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 3737 034033 270 03 0 00 037562 ADD AC,[142536475076] + 3738 034034 241 03 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 3739 034035 447 03 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 3740 034036 322 03 0 00 034032 RTROV2: JUMPE AC,RTROV1 ;REJECT IF RAN = 0. + 3741 034037 316 03 0 00 037565 CAMN AC,[-1] ;ALSO REJECT IF RAN = -1. + 3742 034040 254 00 0 00 034032 JRST RTROV1 + 3743 034041 255 10 0 00 034042 JFCL 10,.+1 ;CLEAR OVERFLOW FLAG. + 3744 034042 241 03 0 00 777522 ROT AC,-256 ;ROT AC RIGHT 256 TIMES. + 3745 034043 255 10 0 00 034045 JFCL 10,.+2 ;OVERFLOW FALG GET SET? + 3746 034044 254 00 0 00 034046 JRST .+2 ;NO. + 3747 034045 005 03 0 00 037567 ER AC,[ASCII /OV/] + 3748 LOOP RTROV1,RTROV2^ + 3749 034046 367 02 0 00 034032 SOJG AC-1,RTROV1 ;ITERATION COUNTER + 3750 034047 200 03 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 3751 034050 321 02 0 00 034036 JUMPL AC-1,RTROV2 ;LOOP ON ERROR SWITCH ^ + 3752 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 49 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0102 + + 3753 + 3754 ;TEST MOVEM. AFTER FOLLOWED BY + 3755 ;, C(AC) SHOULD = ORIG C(AC). + 3756 ;RAN TO RAN1. + 3757 + 3758 000002 AC=2 + 3759 034051 MVEM1: SETUP 30,0^ + 3760 000003 AC1=&17 + 3761 000004 AC2=&17 + 3762 000005 AC3=&17 + 3763 000006 AC4=&17 + 3764 000007 AC5=&17 + 3765 000000 RAN1=&17 + 3766 034051 201 01 0 00 034051 MOVEI AC-1,. + 3767 034052 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 3768 034053 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 3769 034054 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 3770 034055 201 01 0 00 000030 MOVEI AC-1,30 ;ROUTINE WEIGHTING + 3771 034056 240 01 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 3772 034057 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 3773 034060 MVEM2: RANDOM^ + 3774 034060 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 3775 034061 270 02 0 00 037562 ADD AC,[142536475076] + 3776 034062 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 3777 034063 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 3778 ;DO 3 SETS OF MOVEM'S. + 3779 MVEM3: REPEAT 3,< + 3780 MOVEM AC,AC1 + 3781 MOVEM AC1,AC> + 3782 + 3783 034064 202 02 0 00 000003 MOVEM AC,AC1 + 3784 034065 202 03 0 00 000002 MOVEM AC1,AC + 3785 + 3786 034066 202 02 0 00 000003 MOVEM AC,AC1 + 3787 034067 202 03 0 00 000002 MOVEM AC1,AC + 3788 + 3789 034070 202 02 0 00 000003 MOVEM AC,AC1 + 3790 034071 202 03 0 00 000002 MOVEM AC1,AC + 3791 034072 312 02 0 00 037667 CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + 3792 034073 004 02 0 00 037667 ERROR AC,RAN + 3793 034074 312 03 0 00 037667 CAME AC1,RAN ;C(AC1) SHOULD ALSO = ORIG. C(AC). + 3794 034075 004 03 0 00 037667 ERROR AC1,RAN + 3795 LOOP MVEM2,MVEM3^ + 3796 034076 367 01 0 00 034060 SOJG AC-1,MVEM2 ;ITERATION COUNTER + 3797 034077 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 3798 034100 321 01 0 00 034064 JUMPL AC-1,MVEM3 ;LOOP ON ERROR SWITCH ^ + 3799 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 50 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0103 + + 3800 + 3801 ;TEST MOVES. AFTER 6 MOVES IN A ROW, THE C(E) + 3802 ;SHOULD = ORIG C(E). + 3803 + 3804 000002 AC=2 + 3805 034101 MVES1: SETUP 200,1^ + 3806 000003 AC1=&17 + 3807 000004 AC2=&17 + 3808 000005 AC3=&17 + 3809 000006 AC4=&17 + 3810 000007 AC5=&17 + 3811 000000 RAN1=&17 + 3812 034101 201 01 0 00 034101 MOVEI AC-1,. + 3813 034102 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 3814 034103 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 3815 034104 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 3816 034105 201 01 0 00 000200 MOVEI AC-1,200 ;ROUTINE WEIGHTING + 3817 034106 240 01 1 00 030672 ASH AC-1,@CMPLXT+1 ;ROUTINE COMPLEXITY + 3818 034107 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 3819 034110 MVES2: RANDOM^ + 3820 034110 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 3821 034111 270 02 0 00 037562 ADD AC,[142536475076] + 3822 034112 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 3823 034113 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 3824 ;DO 6 MOVE INSTRUCTIONS. + 3825 MVES3: REPEAT 3,< + 3826 MOVES AC1,AC + 3827 MOVES AC1,AC> + 3828 + 3829 034114 203 03 0 00 000002 MOVES AC1,AC + 3830 034115 203 03 0 00 000002 MOVES AC1,AC + 3831 + 3832 034116 203 03 0 00 000002 MOVES AC1,AC + 3833 034117 203 03 0 00 000002 MOVES AC1,AC + 3834 + 3835 034120 203 03 0 00 000002 MOVES AC1,AC + 3836 034121 203 03 0 00 000002 MOVES AC1,AC + 3837 034122 312 03 0 00 000002 CAME AC1,AC ;C(AC) SHOULD = C(E). + 3838 034123 004 03 0 00 000002 ERROR AC1,AC + 3839 034124 312 02 0 00 037667 CAME AC,RAN ;C(E) SHOULD = ORIG C(E). + 3840 034125 004 02 0 00 037667 ERROR AC,RAN + 3841 LOOP MVES2,MVES3^ + 3842 034126 367 01 0 00 034110 SOJG AC-1,MVES2 ;ITERATION COUNTER + 3843 034127 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 3844 034130 321 01 0 00 034114 JUMPL AC-1,MVES3 ;LOOP ON ERROR SWITCH ^ + 3845 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 51 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0104 + + 3846 + 3847 ;TEST MOVS INSTRUCTION...TWO MOVS SHOULD GIVE SAME NUMBER. + 3848 + 3849 000004 AC=4 + 3850 034131 MOVSA: SETUP 200,2^ + 3851 000005 AC1=&17 + 3852 000006 AC2=&17 + 3853 000007 AC3=&17 + 3854 000010 AC4=&17 + 3855 000011 AC5=&17 + 3856 000002 RAN1=&17 + 3857 034131 201 03 0 00 034131 MOVEI AC-1,. + 3858 034132 202 03 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 3859 034133 201 03 0 00 000003 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 3860 034134 202 03 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 3861 034135 201 03 0 00 000200 MOVEI AC-1,200 ;ROUTINE WEIGHTING + 3862 034136 240 03 1 00 030673 ASH AC-1,@CMPLXT+2 ;ROUTINE COMPLEXITY + 3863 034137 240 03 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 3864 034140 MOVSB: RANDOM^ + 3865 034140 200 04 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 3866 034141 270 04 0 00 037562 ADD AC,[142536475076] + 3867 034142 241 04 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 3868 034143 447 04 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 3869 ;DO 6 MOVS INSTRUCTIONS. + 3870 MOVSC: REPEAT 3,< + 3871 MOVS AC,AC + 3872 MOVS AC,AC> + 3873 + 3874 034144 204 04 0 00 000004 MOVS AC,AC + 3875 034145 204 04 0 00 000004 MOVS AC,AC + 3876 + 3877 034146 204 04 0 00 000004 MOVS AC,AC + 3878 034147 204 04 0 00 000004 MOVS AC,AC + 3879 + 3880 034150 204 04 0 00 000004 MOVS AC,AC + 3881 034151 204 04 0 00 000004 MOVS AC,AC + 3882 034152 312 04 0 00 037667 CAME AC,RAN ;C(AC) SHOULD STILL = RAN. + 3883 034153 011 00 0 00 037667 EERR ,RAN + 3884 LOOP MOVSB,MOVSC^ + 3885 034154 367 03 0 00 034140 SOJG AC-1,MOVSB ;ITERATION COUNTER + 3886 034155 200 04 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 3887 034156 321 03 0 00 034144 JUMPL AC-1,MOVSC ;LOOP ON ERROR SWITCH ^ + 3888 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 52 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0105 + + 3889 + 3890 ;TEST MOVS INSTRUCTION...MOVS FOLLOWED BY ROT SHOULD GIVE + 3891 ;SAME NUMBER. + 3892 + 3893 000005 AC=5 + 3894 034157 MOVS1: SETUP 200,1^ + 3895 000006 AC1=&17 + 3896 000007 AC2=&17 + 3897 000010 AC3=&17 + 3898 000011 AC4=&17 + 3899 000012 AC5=&17 + 3900 000003 RAN1=&17 + 3901 034157 201 04 0 00 034157 MOVEI AC-1,. + 3902 034160 202 04 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 3903 034161 201 04 0 00 000004 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 3904 034162 202 04 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 3905 034163 201 04 0 00 000200 MOVEI AC-1,200 ;ROUTINE WEIGHTING + 3906 034164 240 04 1 00 030672 ASH AC-1,@CMPLXT+1 ;ROUTINE COMPLEXITY + 3907 034165 240 04 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 3908 034166 MOVS2: RANDOM^ + 3909 034166 200 05 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 3910 034167 270 05 0 00 037562 ADD AC,[142536475076] + 3911 034170 241 05 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 3912 034171 447 05 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 3913 034172 204 05 0 00 000005 MOVS3: MOVS AC,AC ;DO MOVS INSTRUCTION. + 3914 034173 241 05 0 00 000022 ROT AC,22 ;ROT LEFT 18 PLACES. + 3915 034174 312 05 0 00 037667 CAME AC,RAN ;C(AC) SHOULD NOW = RAN. + 3916 034175 011 00 0 00 037667 EERR ,RAN + 3917 LOOP MOVS2,MOVS3^ + 3918 034176 367 04 0 00 034166 SOJG AC-1,MOVS2 ;ITERATION COUNTER + 3919 034177 200 05 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 3920 034200 321 04 0 00 034172 JUMPL AC-1,MOVS3 ;LOOP ON ERROR SWITCH ^ + 3921 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 53 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0106 + + 3922 + 3923 ;TEST MOVSM....TWO MOVSM SHOULD GIVE THE ORIG. NUM. + 3924 + 3925 000006 AC=6 + 3926 034201 MOVSMA: SETUP 300,1^ + 3927 000007 AC1=&17 + 3928 000010 AC2=&17 + 3929 000011 AC3=&17 + 3930 000012 AC4=&17 + 3931 000013 AC5=&17 + 3932 000004 RAN1=&17 + 3933 034201 201 05 0 00 034201 MOVEI AC-1,. + 3934 034202 202 05 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 3935 034203 201 05 0 00 000005 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 3936 034204 202 05 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 3937 034205 201 05 0 00 000300 MOVEI AC-1,300 ;ROUTINE WEIGHTING + 3938 034206 240 05 1 00 030672 ASH AC-1,@CMPLXT+1 ;ROUTINE COMPLEXITY + 3939 034207 240 05 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 3940 034210 MOVSMB: RANDOM^ + 3941 034210 200 06 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 3942 034211 270 06 0 00 037562 ADD AC,[142536475076] + 3943 034212 241 06 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 3944 034213 447 06 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 3945 + 3946 MOVSMC: REPEAT 3,< + 3947 MOVSM AC,AC1 + 3948 MOVSM AC1,AC> + 3949 + 3950 034214 206 06 0 00 000007 MOVSM AC,AC1 + 3951 034215 206 07 0 00 000006 MOVSM AC1,AC + 3952 + 3953 034216 206 06 0 00 000007 MOVSM AC,AC1 + 3954 034217 206 07 0 00 000006 MOVSM AC1,AC + 3955 + 3956 034220 206 06 0 00 000007 MOVSM AC,AC1 + 3957 034221 206 07 0 00 000006 MOVSM AC1,AC + 3958 034222 312 06 0 00 037667 CAME AC,RAN ;C(AC) SHOULD NOW BE = TO RAN. + 3959 034223 004 06 0 00 037667 ERROR AC,RAN + 3960 LOOP MOVSMB,MOVSMC^ + 3961 034224 367 05 0 00 034210 SOJG AC-1,MOVSMB ;ITERATION COUNTER + 3962 034225 200 06 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 3963 034226 321 05 0 00 034214 JUMPL AC-1,MOVSMC ;LOOP ON ERROR SWITCH ^ + 3964 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 54 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0107 + + 3965 + 3966 ;TEST MOVSS...TWO MOVSS SHOULD GIVE THE ORIGINAL NUMBER. + 3967 + 3968 000007 AC=7 + 3969 034227 MOVSSA: SETUP 200,0^ + 3970 000010 AC1=&17 + 3971 000011 AC2=&17 + 3972 000012 AC3=&17 + 3973 000013 AC4=&17 + 3974 000014 AC5=&17 + 3975 000005 RAN1=&17 + 3976 034227 201 06 0 00 034227 MOVEI AC-1,. + 3977 034230 202 06 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 3978 034231 201 06 0 00 000006 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 3979 034232 202 06 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 3980 034233 201 06 0 00 000200 MOVEI AC-1,200 ;ROUTINE WEIGHTING + 3981 034234 240 06 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 3982 034235 240 06 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 3983 034236 MOVSSB: RANDOM^ + 3984 034236 200 07 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 3985 034237 270 07 0 00 037562 ADD AC,[142536475076] + 3986 034240 241 07 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 3987 034241 447 07 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 3988 034242 403 00 0 00 000005 MOVSSC: SETZB 0,RAN1 ;CLEAR AC0. + 3989 + 3990 REPEAT 3,< + 3991 MOVSS AC + 3992 MOVSS AC> + 3993 + 3994 034243 207 00 0 00 000007 MOVSS AC + 3995 034244 207 00 0 00 000007 MOVSS AC + 3996 + 3997 034245 207 00 0 00 000007 MOVSS AC + 3998 034246 207 00 0 00 000007 MOVSS AC + 3999 + 4000 034247 207 00 0 00 000007 MOVSS AC + 4001 034250 207 00 0 00 000007 MOVSS AC + 4002 034251 312 07 0 00 037667 CAME AC,RAN ;C(AC) SHOULD NOW BE = TO RAN. + 4003 034252 011 00 0 00 000005 EERR ,RAN1 + 4004 034253 312 00 0 00 037563 CAME [0] ;C(AC0) SHOULD STILL = 0. + 4005 034254 011 00 0 00 000005 EERR ,RAN1 + 4006 LOOP MOVSSB,MOVSSC^ + 4007 034255 367 06 0 00 034236 SOJG AC-1,MOVSSB ;ITERATION COUNTER + 4008 034256 200 07 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4009 034257 321 06 0 00 034242 JUMPL AC-1,MOVSSC ;LOOP ON ERROR SWITCH ^ + 4010 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 55 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0108 + + 4011 + 4012 ;TEST MOVSI. + 4013 + 4014 000010 AC=10 + 4015 034260 MOVSIA: SETUP 100,0^ + 4016 000011 AC1=&17 + 4017 000012 AC2=&17 + 4018 000013 AC3=&17 + 4019 000014 AC4=&17 + 4020 000015 AC5=&17 + 4021 000006 RAN1=&17 + 4022 034260 201 07 0 00 034260 MOVEI AC-1,. + 4023 034261 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4024 034262 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4025 034263 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4026 034264 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 4027 034265 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4028 034266 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4029 034267 MOVSIB: RANDOM^ + 4030 034267 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4031 034270 270 10 0 00 037562 ADD AC,[142536475076] + 4032 034271 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4033 034272 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4034 034273 200 12 0 00 037667 MOVE AC2,RAN ;PUT RAN INTO AN AC. + 4035 034274 405 10 0 00 777777 MOVSIC: ANDI AC,-1 ;SIMULATE + 4036 034275 241 10 0 00 000022 ROT AC,22 ;A MOVSI INST. + 4037 034276 205 11 0 12 000000 MOVSI AC1,(AC2) ;DO MOVSI. + 4038 034277 312 11 0 00 000010 CAME AC1,AC ;C(AC1) SHOULD = SIM. ANS. + 4039 034300 004 11 0 00 000010 ERROR AC1,AC + 4040 LOOP MOVSIB,MOVSIC^ + 4041 034301 367 07 0 00 034267 SOJG AC-1,MOVSIB ;ITERATION COUNTER + 4042 034302 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4043 034303 321 07 0 00 034274 JUMPL AC-1,MOVSIC ;LOOP ON ERROR SWITCH ^ + 4044 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 56 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0109 + + 4045 + 4046 ;TEST LSH. SIMULATE A LSH 18 PLACES WITH A MOVSI. + 4047 + 4048 000011 AC=11 + 4049 034304 LSHA: SETUP 200,1^ + 4050 000012 AC1=&17 + 4051 000013 AC2=&17 + 4052 000014 AC3=&17 + 4053 000015 AC4=&17 + 4054 000016 AC5=&17 + 4055 000007 RAN1=&17 + 4056 034304 201 10 0 00 034304 MOVEI AC-1,. + 4057 034305 202 10 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4058 034306 201 10 0 00 000010 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4059 034307 202 10 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4060 034310 201 10 0 00 000200 MOVEI AC-1,200 ;ROUTINE WEIGHTING + 4061 034311 240 10 1 00 030672 ASH AC-1,@CMPLXT+1 ;ROUTINE COMPLEXITY + 4062 034312 240 10 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4063 034313 LSHB: RANDOM^ + 4064 034313 200 11 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4065 034314 270 11 0 00 037562 ADD AC,[142536475076] + 4066 034315 241 11 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4067 034316 447 11 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4068 034317 474 12 0 00 000000 LSHC: SETO AC1, ;SET AC+1 TO ALL ONES. + 4069 034320 205 13 0 11 000000 MOVSI AC2,(AC) ;SIMULATE LSH 18 PLACES. + 4070 034321 242 11 0 00 000022 LSH AC,22 ;DO LSH + 4071 034322 312 11 0 00 000013 CAME AC,AC2 ;C(AC) SHOULD = SIM. ANS. + 4072 034323 004 11 0 00 000013 ERROR AC,AC2 + 4073 034324 312 12 0 00 037565 CAME AC1,[-1] ;AC1 GET CHANGED? + 4074 034325 004 12 0 00 037565 ERROR AC1,[-1] ;YES. + 4075 LOOP LSHB,LSHC^ + 4076 034326 367 10 0 00 034313 SOJG AC-1,LSHB ;ITERATION COUNTER + 4077 034327 200 11 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4078 034330 321 10 0 00 034317 JUMPL AC-1,LSHC ;LOOP ON ERROR SWITCH ^ + 4079 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 57 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0110 + + 4080 + 4081 ;TEST LSH RIGHT 18 PLACES. + 4082 + 4083 000010 AC=10 + 4084 034331 LSH1: SETUP 200,1^ + 4085 000011 AC1=&17 + 4086 000012 AC2=&17 + 4087 000013 AC3=&17 + 4088 000014 AC4=&17 + 4089 000015 AC5=&17 + 4090 000006 RAN1=&17 + 4091 034331 201 07 0 00 034331 MOVEI AC-1,. + 4092 034332 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4093 034333 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4094 034334 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4095 034335 201 07 0 00 000200 MOVEI AC-1,200 ;ROUTINE WEIGHTING + 4096 034336 240 07 1 00 030672 ASH AC-1,@CMPLXT+1 ;ROUTINE COMPLEXITY + 4097 034337 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4098 034340 LSH2: RANDOM^ + 4099 034340 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4100 034341 270 10 0 00 037562 ADD AC,[142536475076] + 4101 034342 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4102 034343 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4103 034344 477 11 0 00 000006 LSH3: SETOB AC1,RAN1 ;SET C(AC+1) TO ALL ONES. + 4104 034345 242 10 0 00 777756 LSH AC,-22 ;DO LSH RIGHT 18 PLACES. + 4105 034346 204 12 0 00 037667 MOVS AC2,RAN ;SIMULATE + 4106 034347 405 12 0 00 777777 ANDI AC2,-1 ;LSH. + 4107 034350 312 10 0 00 000012 CAME AC,AC2 ;C(AC) SHOULD = SIM. ANS. + 4108 034351 013 00 0 00 777756 EERRI ,-22 + 4109 034352 312 11 0 00 037565 CAME AC1,[-1] ;C(AC+1) GET CHANGED? + 4110 034353 003 06 0 00 777756 ERRI RAN1,-22 + 4111 LOOP LSH2,LSH3^ + 4112 034354 367 07 0 00 034340 SOJG AC-1,LSH2 ;ITERATION COUNTER + 4113 034355 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4114 034356 321 07 0 00 034344 JUMPL AC-1,LSH3 ;LOOP ON ERROR SWITCH ^ + 4115 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 58 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0111 + + 4116 + 4117 ;TEST ASH ABILITY TO SET OR NOT SET OVERFLOW FLAG. + 4118 + 4119 000010 AC=10 + 4120 034357 ASHOV: SETUP 30,0^ + 4121 000011 AC1=&17 + 4122 000012 AC2=&17 + 4123 000013 AC3=&17 + 4124 000014 AC4=&17 + 4125 000015 AC5=&17 + 4126 000006 RAN1=&17 + 4127 034357 201 07 0 00 034357 MOVEI AC-1,. + 4128 034360 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4129 034361 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4130 034362 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4131 034363 201 07 0 00 000030 MOVEI AC-1,30 ;ROUTINE WEIGHTING + 4132 034364 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4133 034365 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4134 034366 474 10 0 00 000000 ASHOV1: SETO AC, ;SET AC TO ALL ONES..1,1 CONDITION. + 4135 034367 255 10 0 00 034370 JFCL 10,.+1 ;CLEAR OV FLAG. + 4136 034370 240 10 0 00 000001 ASH AC,1 ;DO ASH. + 4137 034371 255 10 0 00 034373 JFCL 10,.+2 ;OVERFLOW FLAG GET SET? + 4138 034372 254 00 0 00 034374 JRST .+2 ;NO. + 4139 034373 005 10 0 00 037567 ER AC,[ASCII /OV/] ;YES. 1,1 CONDITION SHOULD NOT SET IT. + 4140 034374 255 10 0 00 034375 JFCL 10,.+1 ;CLEAR OV FLAG. + 4141 034375 400 10 0 00 000000 SETZ AC, ;CLEAR AC...0,0 CONDITION. + 4142 034376 240 10 0 00 000001 ASH AC,1 ;DO ASH. + 4143 034377 255 10 0 00 034401 JFCL 10,.+2 ;OVERFLOW FLAG GET SET? + 4144 034400 254 00 0 00 034402 JRST .+2 ;NO. + 4145 034401 005 10 0 00 037567 ER AC,[ASCII /OV/] ;YES. 0,0 COND. SHOULDN'T SET IT. + 4146 034402 255 10 0 00 034403 JFCL 10,.+1 ;CLEAR OV FLAG. + 4147 034403 205 10 0 00 377777 MOVSI AC,377777 ;SET AC FOR 0,1 CONDITION. + 4148 034404 240 10 0 00 000001 ASH AC,1 ;DO ASH. + 4149 034405 255 10 0 00 034407 JFCL 10,.+2 ;OVERFLOW FLAG GET SET? + 4150 034406 005 10 0 00 037567 ER AC,[ASCII /OV/] ;NO. 0,1 COND. SHOULD SET IT. + 4151 034407 255 10 0 00 034410 JFCL 10,.+1 ;CLEAR OV FLAG. + 4152 034410 205 10 0 00 400000 MOVSI AC,400000 ;SET AC FOR 1,0 CONDITION. + 4153 034411 240 10 0 00 000001 ASH AC,1 ;DO ASH. + 4154 034412 255 10 0 00 034414 JFCL 10,.+2 ;OV FLAG GET SET? + 4155 034413 005 10 0 00 037567 ER AC,[ASCII /OV/] ;NO. 1,0 COND. SHOULD SET IT. + 4156 LOOP ASHOV1,ASHOV1^ + 4157 034414 367 07 0 00 034366 SOJG AC-1,ASHOV1 ;ITERATION COUNTER + 4158 034415 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4159 034416 321 07 0 00 034366 JUMPL AC-1,ASHOV1 ;LOOP ON ERROR SWITCH ^ + 4160 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 59 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0112 + + 4161 + 4162 ;TEST ASH. DO ASH RIGHT 36 PLACES WITH ORIG. + 4163 ;C(AC) = 400000000000. AFTER ASH THE C(AC) SHOULD = A -1. + 4164 + 4165 000010 AC=10 + 4166 034417 ASH1: SETUP 20,0^ + 4167 000011 AC1=&17 + 4168 000012 AC2=&17 + 4169 000013 AC3=&17 + 4170 000014 AC4=&17 + 4171 000015 AC5=&17 + 4172 000006 RAN1=&17 + 4173 034417 201 07 0 00 034417 MOVEI AC-1,. + 4174 034420 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4175 034421 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4176 034422 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4177 034423 201 07 0 00 000020 MOVEI AC-1,20 ;ROUTINE WEIGHTING + 4178 034424 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4179 034425 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4180 034426 200 10 0 00 037570 ASH2: MOVE AC,[XWD 400000,0] ;MAKE C(AC) = ALL 0'S WITH SIGN BIT SET. + 4181 034427 240 10 0 00 777734 ASH AC,-44 ;DO ASH RIGHT 36 PLACES...SIGN + 4182 034430 312 10 0 00 037565 CAME AC,[-1] ;BIT SHOULD HAVE SET ALL BITS TO A ONE. + 4183 034431 004 10 0 00 037565 ERROR AC,[-1] + 4184 LOOP ASH2,ASH2^ + 4185 034432 367 07 0 00 034426 SOJG AC-1,ASH2 ;ITERATION COUNTER + 4186 034433 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4187 034434 321 07 0 00 034426 JUMPL AC-1,ASH2 ;LOOP ON ERROR SWITCH ^ + 4188 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 60 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0113 + + 4189 + 4190 ;TEST ASH. DO ASH LEFT 36 PLACES WITH ORIG. C(AC) = + 4191 ;TO A -1. AFTER ASH THE C(AC) SHOULD = THE SIGN + 4192 ;BIT SET AND THE REST ZEROS. + 4193 + 4194 000011 AC=11 + 4195 034435 ASH3: SETUP 20,0^ + 4196 000012 AC1=&17 + 4197 000013 AC2=&17 + 4198 000014 AC3=&17 + 4199 000015 AC4=&17 + 4200 000016 AC5=&17 + 4201 000007 RAN1=&17 + 4202 034435 201 10 0 00 034435 MOVEI AC-1,. + 4203 034436 202 10 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4204 034437 201 10 0 00 000010 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4205 034440 202 10 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4206 034441 201 10 0 00 000020 MOVEI AC-1,20 ;ROUTINE WEIGHTING + 4207 034442 240 10 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4208 034443 240 10 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4209 034444 200 11 0 00 037565 ASH4: MOVE AC,[-1] ;MAKE C(AC) = A -1. + 4210 034445 240 11 0 00 000044 ASH AC,44 ;DO ASH LEFT 36 PLACES..0'S GOING + 4211 034446 312 11 0 00 037570 CAME AC,[XWD 400000,0] ;INTO BIT 35 SHOULD JUST LEAVE SIGN BIT SET. + 4212 034447 004 11 0 00 037563 ERROR AC,[0] + 4213 LOOP ASH4,ASH4^ + 4214 034450 367 10 0 00 034444 SOJG AC-1,ASH4 ;ITERATION COUNTER + 4215 034451 200 11 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4216 034452 321 10 0 00 034444 JUMPL AC-1,ASH4 ;LOOP ON ERROR SWITCH ^ + 4217 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 61 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0114 + + 4218 + 4219 ;TEST ADD. RAN TO 0 CONDITION. + 4220 + 4221 000010 AC=10 + 4222 034453 ADD1: SETUP 100,0^ + 4223 000011 AC1=&17 + 4224 000012 AC2=&17 + 4225 000013 AC3=&17 + 4226 000014 AC4=&17 + 4227 000015 AC5=&17 + 4228 000006 RAN1=&17 + 4229 034453 201 07 0 00 034453 MOVEI AC-1,. + 4230 034454 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4231 034455 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4232 034456 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4233 034457 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 4234 034460 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4235 034461 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4236 034462 ADD2: RANDOM^ + 4237 034462 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4238 034463 270 10 0 00 037562 ADD AC,[142536475076] + 4239 034464 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4240 034465 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4241 034466 400 10 0 00 000000 ADD3: SETZ AC, ;CLEAR AC. + 4242 034467 270 10 0 00 037667 ADD AC,RAN ;ADD RAN TO 0. + 4243 034470 312 10 0 00 037667 CAME AC,RAN ;C(AC) SHOULD = RAN NUM. + 4244 034471 004 10 0 00 037667 ERROR AC,RAN + 4245 LOOP ADD2,ADD3^ + 4246 034472 367 07 0 00 034462 SOJG AC-1,ADD2 ;ITERATION COUNTER + 4247 034473 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4248 034474 321 07 0 00 034466 JUMPL AC-1,ADD3 ;LOOP ON ERROR SWITCH ^ + 4249 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 62 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0115 + + 4250 + 4251 ; TEST ADD. 0 TO RAN CONDITION. + 4252 + 4253 000010 AC=10 + 4254 034475 ADD1A: SETUP 100,0^ + 4255 000011 AC1=&17 + 4256 000012 AC2=&17 + 4257 000013 AC3=&17 + 4258 000014 AC4=&17 + 4259 000015 AC5=&17 + 4260 000006 RAN1=&17 + 4261 034475 201 07 0 00 034475 MOVEI AC-1,. + 4262 034476 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4263 034477 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4264 034500 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4265 034501 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 4266 034502 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4267 034503 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4268 034504 ADD2A: RANDOM^ + 4269 034504 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4270 034505 270 10 0 00 037562 ADD AC,[142536475076] + 4271 034506 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4272 034507 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4273 ;ADD A CONSTANT 0 TO RAN 5 TIMES. + 4274 ADD3A: REPEAT 5,< + 4275 ADD AC,[0]> + 4276 + 4277 034510 270 10 0 00 037563 ADD AC,[0] + 4278 + 4279 034511 270 10 0 00 037563 ADD AC,[0] + 4280 + 4281 034512 270 10 0 00 037563 ADD AC,[0] + 4282 + 4283 034513 270 10 0 00 037563 ADD AC,[0] + 4284 + 4285 034514 270 10 0 00 037563 ADD AC,[0] + 4286 034515 312 10 0 00 037667 CAME AC,RAN ;C(AC) SHOULD STILL = RAN NUM. + 4287 034516 004 10 0 00 037667 ERROR AC,RAN + 4288 LOOP ADD2A,ADD3A^ + 4289 034517 367 07 0 00 034504 SOJG AC-1,ADD2A ;ITERATION COUNTER + 4290 034520 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4291 034521 321 07 0 00 034510 JUMPL AC-1,ADD3A ;LOOP ON ERROR SWITCH ^ + 4292 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 63 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0116 + + 4293 + 4294 ;TEST ADD. ADD 1'S COMP OF RAN TO RAN. + 4295 ;SHOULD GET A -1. + 4296 + 4297 000010 AC=10 + 4298 034522 ADD1B: SETUP 100,0^ + 4299 000011 AC1=&17 + 4300 000012 AC2=&17 + 4301 000013 AC3=&17 + 4302 000014 AC4=&17 + 4303 000015 AC5=&17 + 4304 000006 RAN1=&17 + 4305 034522 201 07 0 00 034522 MOVEI AC-1,. + 4306 034523 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4307 034524 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4308 034525 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4309 034526 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 4310 034527 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4311 034530 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4312 034531 ADD2B: RANDOM^ + 4313 034531 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4314 034532 270 10 0 00 037562 ADD AC,[142536475076] + 4315 034533 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4316 034534 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4317 034535 460 11 0 00 037667 ADD3B: SETCM AC1,RAN ;1'S COMP OF RAN TO AC1. + 4318 034536 270 10 0 00 000011 ADD AC,AC1 ;ADD IT TO RAN. + 4319 034537 312 10 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = -1. + 4320 034540 004 10 0 00 037565 ERROR AC,[-1] + 4321 LOOP ADD2B,ADD3B^ + 4322 034541 367 07 0 00 034531 SOJG AC-1,ADD2B ;ITERATION COUNTER + 4323 034542 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4324 034543 321 07 0 00 034535 JUMPL AC-1,ADD3B ;LOOP ON ERROR SWITCH ^ + 4325 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 64 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0117 + + 4326 + 4327 ;TEST ADD. CHECK CRY0,CRY1,AND OV FLAGS. + 4328 ;ADD, TO A RANDOM NUMBER, A -1 AND THEN A +1. + 4329 ;CRY0 AND CRY1 SHOULD BOTH GET SET AND AROV SHOULD NOT GET SET. + 4330 + 4331 000010 AC=10 + 4332 034544 ADD1C: SETUP 400,2^ + 4333 000011 AC1=&17 + 4334 000012 AC2=&17 + 4335 000013 AC3=&17 + 4336 000014 AC4=&17 + 4337 000015 AC5=&17 + 4338 000006 RAN1=&17 + 4339 034544 201 07 0 00 034544 MOVEI AC-1,. + 4340 034545 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4341 034546 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4342 034547 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4343 034550 201 07 0 00 000400 MOVEI AC-1,400 ;ROUTINE WEIGHTING + 4344 034551 240 07 1 00 030673 ASH AC-1,@CMPLXT+2 ;ROUTINE COMPLEXITY + 4345 034552 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4346 034553 ADD2C: RANDOM^ + 4347 034553 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4348 034554 270 10 0 00 037562 ADD AC,[142536475076] + 4349 034555 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4350 034556 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4351 034557 255 17 0 00 034560 ADD3C: JFCL 17,.+1 ;CLEAR ALL FLAGS. + 4352 034560 270 10 0 00 037565 ADD AC,[-1] ;ADD A -1 TO RAN. + 4353 034561 270 10 0 00 037571 ADD AC,[1] ;ADD A +1 TO ANS OF ADDITION OF RAN AND A -1. + 4354 034562 312 10 0 00 037667 CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + 4355 034563 004 10 0 00 037667 ERROR AC,RAN + 4356 034564 255 04 0 00 034570 JFCL 4,CRY0A + 4357 034565 255 02 0 00 034567 JFCL 2,.+2 + 4358 034566 254 00 0 00 034573 JRST BOTHF + 4359 034567 005 10 0 00 037572 ER AC,[ASCII /CRY0/];CRY0 FAILED TO GET SET. + 4360 034570 255 02 0 00 034572 CRY0A: JFCL 2,.+2 + 4361 034571 005 10 0 00 037573 ER AC,[ASCII /CRY1/];CRY1 FAILED TO GET SET. + 4362 034572 254 00 0 00 034574 JRST AROVA + 4363 034573 005 10 0 00 037574 BOTHF: ER AC,[ASCII /CRY01/];BOTH CRY0 + CRY1 FAILED TO GET SET. + 4364 034574 255 10 0 00 034576 AROVA: JFCL 10,.+2 + 4365 034575 254 00 0 00 034577 JRST ADD4C + 4366 034576 005 10 0 00 037567 ER AC,[ASCII /OV/] ;AROV GOT SET. + 4367 034577 ADD4C: LOOP ADD2C,ADD3C^ + 4368 034577 367 07 0 00 034553 SOJG AC-1,ADD2C ;ITERATION COUNTER + 4369 034600 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4370 034601 321 07 0 00 034557 JUMPL AC-1,ADD3C ;LOOP ON ERROR SWITCH ^ + 4371 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 65 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0118 + + 4372 + 4373 ;TEST ADDM. WHERE E IS AN AC. + 4374 ;RAN TO 0 CONDITION. + 4375 + 4376 000004 AC=4 + 4377 034602 ADDM1: SETUP 100,0^ + 4378 000005 AC1=&17 + 4379 000006 AC2=&17 + 4380 000007 AC3=&17 + 4381 000010 AC4=&17 + 4382 000011 AC5=&17 + 4383 000002 RAN1=&17 + 4384 034602 201 03 0 00 034602 MOVEI AC-1,. + 4385 034603 202 03 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4386 034604 201 03 0 00 000003 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4387 034605 202 03 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4388 034606 201 03 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 4389 034607 240 03 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4390 034610 240 03 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4391 034611 ADDM2: RANDOM^ + 4392 034611 200 04 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4393 034612 270 04 0 00 037562 ADD AC,[142536475076] + 4394 034613 241 04 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4395 034614 447 04 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4396 034615 200 06 0 00 037667 MOVE AC2,RAN ;SAVE RAN IN AN AC. + 4397 034616 403 05 0 00 000002 ADDM3: SETZB AC1,RAN1 ;MAKE C(E) = 0. + 4398 034617 272 04 0 00 000005 ADDM AC,AC1 ;DO ADDM. + 4399 034620 312 06 0 00 000005 CAME AC2,AC1 ;C(E) SHOULD =ORIG C(AC). + 4400 034621 002 02 0 00 037667 ERRM RAN1,RAN + 4401 LOOP ADDM2,ADDM3^ + 4402 034622 367 03 0 00 034611 SOJG AC-1,ADDM2 ;ITERATION COUNTER + 4403 034623 200 04 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4404 034624 321 03 0 00 034616 JUMPL AC-1,ADDM3 ;LOOP ON ERROR SWITCH ^ + 4405 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 66 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0119 + + 4406 + 4407 ;TEST ADDM. WHERE E IS AN AC. + 4408 ;0 TO RAN CONDITION. + 4409 + 4410 000005 AC=5 + 4411 034625 ADDM1A: SETUP 100,0^ + 4412 000006 AC1=&17 + 4413 000007 AC2=&17 + 4414 000010 AC3=&17 + 4415 000011 AC4=&17 + 4416 000012 AC5=&17 + 4417 000003 RAN1=&17 + 4418 034625 201 04 0 00 034625 MOVEI AC-1,. + 4419 034626 202 04 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4420 034627 201 04 0 00 000004 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4421 034630 202 04 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4422 034631 201 04 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 4423 034632 240 04 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4424 034633 240 04 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4425 034634 ADDM2A: RANDOM^ + 4426 034634 200 05 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4427 034635 270 05 0 00 037562 ADD AC,[142536475076] + 4428 034636 241 05 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4429 034637 447 05 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4430 034640 200 07 0 00 037667 MOVE AC2,RAN ;SAVE RAN IN AN AC. + 4431 034641 403 06 0 00 000003 ADDM3A: SETZB AC1,RAN1 ;MAKE C(AC) = 0. + 4432 034642 272 06 0 00 000005 ADDM AC1,AC ;DO ADDM. + 4433 034643 312 07 0 00 000005 CAME AC2,AC ;C(E) SHOULD = ORIG C(E). + 4434 034644 012 00 0 00 000003 EERRM ,RAN1 + 4435 LOOP ADDM2A,ADDM3A^ + 4436 034645 367 04 0 00 034634 SOJG AC-1,ADDM2A ;ITERATION COUNTER + 4437 034646 200 05 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4438 034647 321 04 0 00 034641 JUMPL AC-1,ADDM3A ;LOOP ON ERROR SWITCH ^ + 4439 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 67 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0120 + + 4440 + 4441 ;TEST ADDM. WHERE E IS AN AC. + 4442 ;1'S COMP RAN TO RAN. + 4443 + 4444 000006 AC=6 + 4445 034650 ADDM1B: SETUP 100,0^ + 4446 000007 AC1=&17 + 4447 000010 AC2=&17 + 4448 000011 AC3=&17 + 4449 000012 AC4=&17 + 4450 000013 AC5=&17 + 4451 000004 RAN1=&17 + 4452 034650 201 05 0 00 034650 MOVEI AC-1,. + 4453 034651 202 05 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4454 034652 201 05 0 00 000005 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4455 034653 202 05 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4456 034654 201 05 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 4457 034655 240 05 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4458 034656 240 05 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4459 034657 ADDM2B: RANDOM^ + 4460 034657 200 06 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4461 034660 270 06 0 00 037562 ADD AC,[142536475076] + 4462 034661 241 06 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4463 034662 447 06 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4464 034663 460 07 0 00 000006 ADDM3B: SETCM AC1,AC ;MAKE C(AC) = 1'S COMP OF C(E). + 4465 034664 200 04 0 00 000007 MOVE RAN1,AC1 ;SAVE C(AC) IN CASE OF ERROR. + 4466 034665 272 07 0 00 000006 ADDM AC1,AC ;DO ADDM. + 4467 034666 312 06 0 00 037565 CAME AC,[-1] ;C(E) SHOULD = A -1. + 4468 034667 012 00 0 00 000004 EERRM ,RAN1 + 4469 LOOP ADDM2B,ADDM3B^ + 4470 034670 367 05 0 00 034657 SOJG AC-1,ADDM2B ;ITERATION COUNTER + 4471 034671 200 06 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4472 034672 321 05 0 00 034663 JUMPL AC-1,ADDM3B ;LOOP ON ERROR SWITCH ^ + 4473 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 68 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0121 + + 4474 + 4475 ;TEST ADDI. CHECK C(AC) FOR CORRECT DATA. + 4476 ;0 TO RAN CONDITION. + 4477 + 4478 000002 AC=2 + 4479 034673 ADDI1: SETUP 20,0^ + 4480 000003 AC1=&17 + 4481 000004 AC2=&17 + 4482 000005 AC3=&17 + 4483 000006 AC4=&17 + 4484 000007 AC5=&17 + 4485 000000 RAN1=&17 + 4486 034673 201 01 0 00 034673 MOVEI AC-1,. + 4487 034674 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4488 034675 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4489 034676 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4490 034677 201 01 0 00 000020 MOVEI AC-1,20 ;ROUTINE WEIGHTING + 4491 034700 240 01 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4492 034701 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4493 034702 ADDI2: RANDOM^ + 4494 034702 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4495 034703 270 02 0 00 037562 ADD AC,[142536475076] + 4496 034704 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4497 034705 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4498 034706 271 02 0 00 000000 ADDI3: ADDI AC,0 ;DO ADDI. + 4499 034707 312 02 0 00 037667 CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + 4500 034710 013 00 0 00 000000 EERRI ,0 + 4501 LOOP ADDI2,ADDI3^ + 4502 034711 367 01 0 00 034702 SOJG AC-1,ADDI2 ;ITERATION COUNTER + 4503 034712 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4504 034713 321 01 0 00 034706 JUMPL AC-1,ADDI3 ;LOOP ON ERROR SWITCH ^ + 4505 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 69 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0122 + + 4506 + 4507 ;TEST ADDI. CHECK FOR CORRECT DATA IN AC. + 4508 ;RAN TO 0 CONDITION. + 4509 + 4510 000002 AC=2 + 4511 034714 ADDI1A: SETUP 100,0^ + 4512 000003 AC1=&17 + 4513 000004 AC2=&17 + 4514 000005 AC3=&17 + 4515 000006 AC4=&17 + 4516 000007 AC5=&17 + 4517 000000 RAN1=&17 + 4518 034714 201 01 0 00 034714 MOVEI AC-1,. + 4519 034715 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4520 034716 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4521 034717 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4522 034720 201 01 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 4523 034721 240 01 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4524 034722 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4525 034723 ADDI2A: RANDOM^ + 4526 034723 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4527 034724 270 02 0 00 037562 ADD AC,[142536475076] + 4528 034725 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4529 034726 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4530 034727 403 03 0 00 000000 ADDI3A: SETZB AC1,RAN1 ;CLEAR C(AC). + 4531 034730 201 04 0 02 000000 MOVEI AC2,(AC) ;SIMULATE ADDI. + 4532 034731 271 03 0 02 000000 ADDI AC1,(AC) ;DO ADDI. + 4533 034732 312 03 0 00 000004 CAME AC1,AC2 ;C(AC) SHOULD = SIM. ANS. + 4534 034733 003 00 0 02 000000 ERRI RAN1,(AC) + 4535 LOOP ADDI2A,ADDI3A^ + 4536 034734 367 01 0 00 034723 SOJG AC-1,ADDI2A ;ITERATION COUNTER + 4537 034735 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4538 034736 321 01 0 00 034727 JUMPL AC-1,ADDI3A ;LOOP ON ERROR SWITCH ^ + 4539 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 70 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0123 + + 4540 + 4541 ;TEST ADDI. CHECK FOR CORRECT DATA IN AC. + 4542 ;1'S COMP RAN TO RAN. + 4543 + 4544 000003 AC=3 + 4545 034737 ADDI1B: SETUP 40,0^ + 4546 000004 AC1=&17 + 4547 000005 AC2=&17 + 4548 000006 AC3=&17 + 4549 000007 AC4=&17 + 4550 000010 AC5=&17 + 4551 000001 RAN1=&17 + 4552 034737 201 02 0 00 034737 MOVEI AC-1,. + 4553 034740 202 02 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4554 034741 201 02 0 00 000002 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4555 034742 202 02 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4556 034743 201 02 0 00 000040 MOVEI AC-1,40 ;ROUTINE WEIGHTING + 4557 034744 240 02 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4558 034745 240 02 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4559 034746 ADDI2B: RANDOM^ + 4560 034746 200 03 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4561 034747 270 03 0 00 037562 ADD AC,[142536475076] + 4562 034750 241 03 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4563 034751 447 03 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4564 034752 460 04 0 00 000003 ADDI3B: SETCM AC1,AC ;MAKE C(AC) = 1'S COMP OF E. + 4565 034753 200 05 0 00 000004 MOVE AC2,AC1 ;SIMULATE + 4566 034754 435 05 0 00 777777 IORI AC2,-1 ;ADDI INST. + 4567 034755 200 01 0 00 000004 MOVE RAN1,AC1 ;SAVE C(AC) IN CASE OF ERROR. + 4568 034756 271 04 0 03 000000 ADDI AC1,(AC) ;DO ADDI. + 4569 034757 312 04 0 00 000005 CAME AC1,AC2 ;C(AC) SHOULD = SIM. ANS. + 4570 034760 003 01 0 03 000000 ERRI RAN1,(AC) + 4571 LOOP ADDI2B,ADDI3B^ + 4572 034761 367 02 0 00 034746 SOJG AC-1,ADDI2B ;ITERATION COUNTER + 4573 034762 200 03 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4574 034763 321 02 0 00 034752 JUMPL AC-1,ADDI3B ;LOOP ON ERROR SWITCH ^ + 4575 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 71 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0124 + + 4576 + 4577 ;TEST ADDB. CHECK FOR C(AC) = C(E), AND CORRECT + 4578 ;DATA IN AC FOR 0 TO RAN CONDITION. + 4579 + 4580 000004 AC=4 + 4581 034764 ADDB1: SETUP 100,0^ + 4582 000005 AC1=&17 + 4583 000006 AC2=&17 + 4584 000007 AC3=&17 + 4585 000010 AC4=&17 + 4586 000011 AC5=&17 + 4587 000002 RAN1=&17 + 4588 034764 201 03 0 00 034764 MOVEI AC-1,. + 4589 034765 202 03 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4590 034766 201 03 0 00 000003 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4591 034767 202 03 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4592 034770 201 03 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 4593 034771 240 03 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4594 034772 240 03 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4595 034773 ADDB2: RANDOM^ + 4596 034773 200 04 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4597 034774 270 04 0 00 037562 ADD AC,[142536475076] + 4598 034775 241 04 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4599 034776 447 04 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4600 034777 403 05 0 00 000002 ADDB3: SETZB AC1,RAN1 ;CLEAR C(E). + 4601 035000 273 04 0 00 000005 ADDB AC,AC1 ;DO ADDB. + 4602 035001 312 04 0 00 000005 CAME AC,AC1 ;C(AC) SHOULLD = C(E). + 4603 035002 001 02 0 00 037667 ERR RAN1,RAN + 4604 035003 312 04 0 00 037667 CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + 4605 035004 001 02 0 00 037667 ERR RAN1,RAN + 4606 LOOP ADDB2,ADDB3^ + 4607 035005 367 03 0 00 034773 SOJG AC-1,ADDB2 ;ITERATION COUNTER + 4608 035006 200 04 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4609 035007 321 03 0 00 034777 JUMPL AC-1,ADDB3 ;LOOP ON ERROR SWITCH ^ + 4610 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 72 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0125 + + 4611 + 4612 ;TEST ADDB. CHECK FOR C(AC) = C(E), AND CORRECT + 4613 ;DATA IN AC FOR RAN TO 0 CONDITION. + 4614 + 4615 000005 AC=5 + 4616 035010 ADDB1A: SETUP 100,0^ + 4617 000006 AC1=&17 + 4618 000007 AC2=&17 + 4619 000010 AC3=&17 + 4620 000011 AC4=&17 + 4621 000012 AC5=&17 + 4622 000003 RAN1=&17 + 4623 035010 201 04 0 00 035010 MOVEI AC-1,. + 4624 035011 202 04 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4625 035012 201 04 0 00 000004 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4626 035013 202 04 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4627 035014 201 04 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 4628 035015 240 04 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4629 035016 240 04 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4630 035017 ADDB2A: RANDOM^ + 4631 035017 200 05 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4632 035020 270 05 0 00 037562 ADD AC,[142536475076] + 4633 035021 241 05 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4634 035022 447 05 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4635 035023 403 06 0 00 000003 ADDB3A: SETZB AC1,RAN1 ;CLEAR C(AC). + 4636 035024 273 06 0 00 000005 ADDB AC1,AC ;DO ADDB. + 4637 035025 312 06 0 00 000005 CAME AC1,AC ;C(AC) SHOULD = C(E). + 4638 035026 011 00 0 00 000003 EERR ,RAN1 + 4639 035027 312 06 0 00 037667 CAME AC1,RAN ;C(AC) SHOULD = ORIG C(E). + 4640 035030 011 00 0 00 000003 EERR ,RAN1 + 4641 LOOP ADDB2A,ADDB3A^ + 4642 035031 367 04 0 00 035017 SOJG AC-1,ADDB2A ;ITERATION COUNTER + 4643 035032 200 05 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4644 035033 321 04 0 00 035023 JUMPL AC-1,ADDB3A ;LOOP ON ERROR SWITCH ^ + 4645 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 73 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0126 + + 4646 + 4647 ;TEST ADDB. CHECK FOR C(AC) = C(E), AND CORRECT DATA + 4648 ;IN AC FOR NOT RAN TO RAN CONDITION. + 4649 + 4650 000006 AC=6 + 4651 035034 ADDB1B: SETUP 100,0^ + 4652 000007 AC1=&17 + 4653 000010 AC2=&17 + 4654 000011 AC3=&17 + 4655 000012 AC4=&17 + 4656 000013 AC5=&17 + 4657 000004 RAN1=&17 + 4658 035034 201 05 0 00 035034 MOVEI AC-1,. + 4659 035035 202 05 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4660 035036 201 05 0 00 000005 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4661 035037 202 05 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4662 035040 201 05 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 4663 035041 240 05 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4664 035042 240 05 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4665 035043 ADDB2B: RANDOM^ + 4666 035043 200 06 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4667 035044 270 06 0 00 037562 ADD AC,[142536475076] + 4668 035045 241 06 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4669 035046 447 06 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4670 035047 460 07 0 00 000006 ADDB3B: SETCM AC1,AC ;MAKE C(E) = 1'S COMP OF C(AC). + 4671 035050 200 04 0 00 000007 MOVE RAN1,AC1 ;SAVE C(E) IN CASE OF ERROR. + 4672 035051 273 06 0 00 000007 ADDB AC,AC1 ;DO ADDB. + 4673 035052 312 06 0 00 000007 CAME AC,AC1 ;C(AC) SHOULD = C(E). + 4674 035053 001 04 0 00 037667 ERR RAN1,RAN + 4675 035054 312 06 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = A -1. + 4676 035055 001 04 0 00 037667 ERR RAN1,RAN + 4677 LOOP ADDB2B,ADDB3B^ + 4678 035056 367 05 0 00 035043 SOJG AC-1,ADDB2B ;ITERATION COUNTER + 4679 035057 200 06 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4680 035060 321 05 0 00 035047 JUMPL AC-1,ADDB3B ;LOOP ON ERROR SWITCH ^ + 4681 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 74 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0127 + + 4682 + 4683 ;TEST SUB. CHECK C(AC) FOR CORRECT DATA. + 4684 ;0 TO RAN CONDITION. + 4685 + 4686 000002 AC=2 + 4687 035061 SUB1: SETUP 100,0^ + 4688 000003 AC1=&17 + 4689 000004 AC2=&17 + 4690 000005 AC3=&17 + 4691 000006 AC4=&17 + 4692 000007 AC5=&17 + 4693 000000 RAN1=&17 + 4694 035061 201 01 0 00 035061 MOVEI AC-1,. + 4695 035062 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4696 035063 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4697 035064 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4698 035065 201 01 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 4699 035066 240 01 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4700 035067 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4701 035070 SUB2: RANDOM^ + 4702 035070 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4703 035071 270 02 0 00 037562 ADD AC,[142536475076] + 4704 035072 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4705 035073 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4706 035074 403 03 0 00 000000 SUB3: SETZB AC1,RAN1 ;CLEAR C(E). + 4707 + 4708 REPEAT 3,< + 4709 SUB AC,AC1> + 4710 + 4711 035075 274 02 0 00 000003 SUB AC,AC1 + 4712 + 4713 035076 274 02 0 00 000003 SUB AC,AC1 + 4714 + 4715 035077 274 02 0 00 000003 SUB AC,AC1 + 4716 035100 312 02 0 00 037667 CAME AC,RAN ;C(AC) SHOULD STILL = ORIG C(AC). + 4717 035101 001 00 0 00 037667 ERR RAN1,RAN + 4718 LOOP SUB2,SUB3^ + 4719 035102 367 01 0 00 035070 SOJG AC-1,SUB2 ;ITERATION COUNTER + 4720 035103 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4721 035104 321 01 0 00 035074 JUMPL AC-1,SUB3 ;LOOP ON ERROR SWITCH ^ + 4722 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 75 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0128 + + 4723 + 4724 ;TEST SUB. CHECK C(AC) FOR CORRECT DATA. + 4725 ;RAN TO 0 CONDITION. + 4726 + 4727 000002 AC=2 + 4728 035105 SUB1A: SETUP 100,0^ + 4729 000003 AC1=&17 + 4730 000004 AC2=&17 + 4731 000005 AC3=&17 + 4732 000006 AC4=&17 + 4733 000007 AC5=&17 + 4734 000000 RAN1=&17 + 4735 035105 201 01 0 00 035105 MOVEI AC-1,. + 4736 035106 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4737 035107 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4738 035110 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4739 035111 201 01 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 4740 035112 240 01 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4741 035113 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4742 035114 SUB1B: RANDOM^ + 4743 035114 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4744 035115 270 02 0 00 037562 ADD AC,[142536475076] + 4745 035116 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4746 035117 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4747 035120 403 03 0 00 000000 SUB1C: SETZB AC1,RAN1 ;CLEAR C(AC). + 4748 035121 210 04 0 00 037667 MOVN AC2,RAN ;ANY NUM FROM 0 = 2'S COMP OF THAT NUM. + 4749 035122 274 03 0 00 000002 SUB AC1,AC ;SUBTRACT RAN FROM 0. + 4750 035123 312 03 0 00 000004 CAME AC1,AC2 ;C(AC) SHOULD = SIM. ANS. + 4751 035124 011 00 0 00 000000 EERR ,RAN1 + 4752 LOOP SUB1B,SUB1C^ + 4753 035125 367 01 0 00 035114 SOJG AC-1,SUB1B ;ITERATION COUNTER + 4754 035126 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4755 035127 321 01 0 00 035120 JUMPL AC-1,SUB1C ;LOOP ON ERROR SWITCH ^ + 4756 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 76 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0129 + + 4757 + 4758 ;TEST SUB. CHECK C(AC) FOR CORRECT DATA. + 4759 ;SUB RAN FROM RAN. + 4760 + 4761 000002 AC=2 + 4762 035130 SUB2A: SETUP 100,0^ + 4763 000003 AC1=&17 + 4764 000004 AC2=&17 + 4765 000005 AC3=&17 + 4766 000006 AC4=&17 + 4767 000007 AC5=&17 + 4768 000000 RAN1=&17 + 4769 035130 201 01 0 00 035130 MOVEI AC-1,. + 4770 035131 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4771 035132 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4772 035133 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4773 035134 201 01 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 4774 035135 240 01 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4775 035136 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4776 035137 SUB2B: RANDOM^ + 4777 035137 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4778 035140 270 02 0 00 037562 ADD AC,[142536475076] + 4779 035141 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4780 035142 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4781 035143 200 03 0 00 000002 SUB2C: MOVE AC1,AC ;MAKE C(E) = C(AC). + 4782 035144 274 02 0 00 000003 SUB AC,AC1 ;SUB RAN FROM RAN. + 4783 035145 312 02 0 00 037563 CAME AC,[0] ;C(AC) SHOULD = 0. + 4784 035146 011 00 0 00 037667 EERR ,RAN + 4785 LOOP SUB2B,SUB2C^ + 4786 035147 367 01 0 00 035137 SOJG AC-1,SUB2B ;ITERATION COUNTER + 4787 035150 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4788 035151 321 01 0 00 035143 JUMPL AC-1,SUB2C ;LOOP ON ERROR SWITCH ^ + 4789 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 77 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0130 + + 4790 + 4791 ;TEST SUBM. WHERE E IS AN AC. + 4792 ;RAN TO 0 CONDITION. + 4793 + 4794 000007 AC=7 + 4795 035152 SUBM1: SETUP 100,0^ + 4796 000010 AC1=&17 + 4797 000011 AC2=&17 + 4798 000012 AC3=&17 + 4799 000013 AC4=&17 + 4800 000014 AC5=&17 + 4801 000005 RAN1=&17 + 4802 035152 201 06 0 00 035152 MOVEI AC-1,. + 4803 035153 202 06 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4804 035154 201 06 0 00 000006 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4805 035155 202 06 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4806 035156 201 06 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 4807 035157 240 06 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4808 035160 240 06 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4809 035161 SUBM2: RANDOM^ + 4810 035161 200 07 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4811 035162 270 07 0 00 037562 ADD AC,[142536475076] + 4812 035163 241 07 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4813 035164 447 07 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4814 035165 403 10 0 00 000005 SUBM3: SETZB AC1,RAN1 ;CLEAR C(AC). + 4815 035166 210 11 0 00 000007 MOVN AC2,AC ;SIM SUB..RAN FROM 0 = 2'S COMP RAN. + 4816 035167 276 10 0 00 000007 SUBM AC1,AC ;DO SUBM. + 4817 035170 312 11 0 00 000007 CAME AC2,AC ;C(E) SHOULD = SIM. ANS. + 4818 035171 012 00 0 00 000005 EERRM ,RAN1 + 4819 LOOP SUBM2,SUBM3^ + 4820 035172 367 06 0 00 035161 SOJG AC-1,SUBM2 ;ITERATION COUNTER + 4821 035173 200 07 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4822 035174 321 06 0 00 035165 JUMPL AC-1,SUBM3 ;LOOP ON ERROR SWITCH ^ + 4823 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 78 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0131 + + 4824 ;TEST SUBM. SHERE E IS AN AC. + 4825 ;0 TO RAN CONDITION. + 4826 + 4827 000010 AC=10 + 4828 035175 SUBM1A: SETUP 100,0^ + 4829 000011 AC1=&17 + 4830 000012 AC2=&17 + 4831 000013 AC3=&17 + 4832 000014 AC4=&17 + 4833 000015 AC5=&17 + 4834 000006 RAN1=&17 + 4835 035175 201 07 0 00 035175 MOVEI AC-1,. + 4836 035176 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4837 035177 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4838 035200 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4839 035201 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 4840 035202 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4841 035203 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4842 035204 SUBM2A: RANDOM^ + 4843 035204 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4844 035205 270 10 0 00 037562 ADD AC,[142536475076] + 4845 035206 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4846 035207 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4847 035210 200 12 0 00 037667 MOVE AC2,RAN ;SAVE RAN IN AN AC. + 4848 035211 403 11 0 00 000006 SUBM3A: SETZB AC1,RAN1 ;CLEAR C(E). + 4849 035212 276 10 0 00 000011 SUBM AC,AC1 ;DO SUBM...0 FROM RAN = RAN. + 4850 035213 312 12 0 00 000011 CAME AC2,AC1 ;C(E) SHOULD = ORIG C(AC). + 4851 035214 002 06 0 00 037667 ERRM RAN1,RAN + 4852 035215 312 10 0 00 037667 CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + 4853 035216 002 06 0 00 037667 ERRM RAN1,RAN + 4854 LOOP SUBM2A,SUBM3A^ + 4855 035217 367 07 0 00 035204 SOJG AC-1,SUBM2A ;ITERATION COUNTER + 4856 035220 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4857 035221 321 07 0 00 035211 JUMPL AC-1,SUBM3A ;LOOP ON ERROR SWITCH ^ + 4858 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 79 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0132 + + 4859 + 4860 ;TEST SUBM. WHERE E IS AN AC. + 4861 ;RAN TO RAN CONDITION. + 4862 + 4863 000011 AC=11 + 4864 035222 SUBM1B: SETUP 100,0^ + 4865 000012 AC1=&17 + 4866 000013 AC2=&17 + 4867 000014 AC3=&17 + 4868 000015 AC4=&17 + 4869 000016 AC5=&17 + 4870 000007 RAN1=&17 + 4871 035222 201 10 0 00 035222 MOVEI AC-1,. + 4872 035223 202 10 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4873 035224 201 10 0 00 000010 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4874 035225 202 10 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4875 035226 201 10 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 4876 035227 240 10 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4877 035230 240 10 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4878 035231 SUBM2B: RANDOM^ + 4879 035231 200 11 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4880 035232 270 11 0 00 037562 ADD AC,[142536475076] + 4881 035233 241 11 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4882 035234 447 11 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4883 035235 200 12 0 00 000011 SUBM3B: MOVE AC1,AC ;MAKE C(E) = C(AC). + 4884 035236 276 11 0 00 000012 SUBM AC,AC1 ;DO SUBM. + 4885 035237 312 12 0 00 037563 CAME AC1,[0] ;C(E) SHOULD = 0. + 4886 035240 012 00 0 00 037667 EERRM ,RAN + 4887 035241 312 11 0 00 037667 CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + 4888 035242 012 00 0 00 037667 EERRM ,RAN + 4889 LOOP SUBM2B,SUBM3B^ + 4890 035243 367 10 0 00 035231 SOJG AC-1,SUBM2B ;ITERATION COUNTER + 4891 035244 200 11 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4892 035245 321 10 0 00 035235 JUMPL AC-1,SUBM3B ;LOOP ON ERROR SWITCH ^ + 4893 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 80 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0133 + + 4894 + 4895 ;TEST SUBI. CHECK C(AC) FOR CORRECT DATA. + 4896 ;0 TO RAN CONDITION. + 4897 + 4898 000010 AC=10 + 4899 035246 SUBI1: SETUP 20,0^ + 4900 000011 AC1=&17 + 4901 000012 AC2=&17 + 4902 000013 AC3=&17 + 4903 000014 AC4=&17 + 4904 000015 AC5=&17 + 4905 000006 RAN1=&17 + 4906 035246 201 07 0 00 035246 MOVEI AC-1,. + 4907 035247 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4908 035250 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4909 035251 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4910 035252 201 07 0 00 000020 MOVEI AC-1,20 ;ROUTINE WEIGHTING + 4911 035253 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4912 035254 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4913 035255 SUBI2: RANDOM^ + 4914 035255 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4915 035256 270 10 0 00 037562 ADD AC,[142536475076] + 4916 035257 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4917 035260 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4918 035261 275 10 0 00 000000 SUBI3: SUBI AC,0 ;DO SUBI..0 FROM RAN = RAN. + 4919 035262 312 10 0 00 037667 CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + 4920 035263 013 00 0 00 000000 EERRI ,0 + 4921 LOOP SUBI2,SUBI3^ + 4922 035264 367 07 0 00 035255 SOJG AC-1,SUBI2 ;ITERATION COUNTER + 4923 035265 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4924 035266 321 07 0 00 035261 JUMPL AC-1,SUBI3 ;LOOP ON ERROR SWITCH ^ + 4925 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 81 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0134 + + 4926 + 4927 ;TEST SUBI. CHECK C(AC) FOR CORRECT DATA. + 4928 ;RAN TO 0 CONDITION. + 4929 + 4930 000010 AC=10 + 4931 035267 SUBI1A: SETUP 20,0^ + 4932 000011 AC1=&17 + 4933 000012 AC2=&17 + 4934 000013 AC3=&17 + 4935 000014 AC4=&17 + 4936 000015 AC5=&17 + 4937 000006 RAN1=&17 + 4938 035267 201 07 0 00 035267 MOVEI AC-1,. + 4939 035270 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4940 035271 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4941 035272 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4942 035273 201 07 0 00 000020 MOVEI AC-1,20 ;ROUTINE WEIGHTING + 4943 035274 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4944 035275 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4945 035276 SUBI2A: RANDOM^ + 4946 035276 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4947 035277 270 10 0 00 037562 ADD AC,[142536475076] + 4948 035300 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4949 035301 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4950 035302 403 11 0 00 000006 SUBI3A: SETZB AC1,RAN1 ;CLEAR C(AC). + 4951 035303 211 12 0 10 000000 MOVNI AC2,(AC) ;SIM SUB..RAN FROM 0 = 2'S COMP RAN. + 4952 035304 275 11 0 10 000000 SUBI AC1,(AC) ;DO SUBI. + 4953 035305 312 11 0 00 000012 CAME AC1,AC2 ;C(AC) SHOULD = SIM ANS. + 4954 035306 003 06 0 10 000000 ERRI RAN1,(AC) + 4955 LOOP SUBI2A,SUBI3A^ + 4956 035307 367 07 0 00 035276 SOJG AC-1,SUBI2A ;ITERATION COUNTER + 4957 035310 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4958 035311 321 07 0 00 035302 JUMPL AC-1,SUBI3A ;LOOP ON ERROR SWITCH ^ + 4959 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 82 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0135 + + 4960 + 4961 ;TEST SUBI. CHECK C(AC) FOR CORRECT DATA. + 4962 ;RAN TO RAN CONDITION. + 4963 + 4964 000010 AC=10 + 4965 035312 SUBI1B: SETUP 20,0^ + 4966 000011 AC1=&17 + 4967 000012 AC2=&17 + 4968 000013 AC3=&17 + 4969 000014 AC4=&17 + 4970 000015 AC5=&17 + 4971 000006 RAN1=&17 + 4972 035312 201 07 0 00 035312 MOVEI AC-1,. + 4973 035313 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 4974 035314 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 4975 035315 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 4976 035316 201 07 0 00 000020 MOVEI AC-1,20 ;ROUTINE WEIGHTING + 4977 035317 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 4978 035320 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 4979 035321 SUBI2B: RANDOM^ + 4980 035321 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 4981 035322 270 10 0 00 037562 ADD AC,[142536475076] + 4982 035323 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 4983 035324 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 4984 035325 200 06 0 00 000010 MOVE RAN1,AC ;SAVE C(AC) IN CASE OF ERROR. + 4985 035326 200 11 0 00 000010 SUBI3B: MOVE AC1,AC ;SIMULATE A + 4986 035327 404 11 0 00 037575 AND AC1,[XWD -1,0] ;SUBI RAN FROM RAN. + 4987 035330 275 10 0 10 000000 SUBI AC,(AC) ;DO SUBI. + 4988 035331 312 10 0 00 000011 CAME AC,AC1 ;C(AC) SHOULD = SIM. ANS. + 4989 035332 003 06 0 06 000000 ERRI RAN1,(RAN1) + 4990 LOOP SUBI2B,SUBI3B^ + 4991 035333 367 07 0 00 035321 SOJG AC-1,SUBI2B ;ITERATION COUNTER + 4992 035334 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 4993 035335 321 07 0 00 035326 JUMPL AC-1,SUBI3B ;LOOP ON ERROR SWITCH ^ + 4994 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 83 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0136 + + 4995 + 4996 ;TEST SUBB. CHECK THAT C(AC) = C(E) AND C(AC) + 4997 ;= CORRECT DATA. + 4998 ;0 TO RAN. + 4999 + 5000 000010 AC=10 + 5001 035336 SUBB1: SETUP 20,0^ + 5002 000011 AC1=&17 + 5003 000012 AC2=&17 + 5004 000013 AC3=&17 + 5005 000014 AC4=&17 + 5006 000015 AC5=&17 + 5007 000006 RAN1=&17 + 5008 035336 201 07 0 00 035336 MOVEI AC-1,. + 5009 035337 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5010 035340 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5011 035341 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5012 035342 201 07 0 00 000020 MOVEI AC-1,20 ;ROUTINE WEIGHTING + 5013 035343 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5014 035344 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5015 035345 SUBB2: RANDOM^ + 5016 035345 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5017 035346 270 10 0 00 037562 ADD AC,[142536475076] + 5018 035347 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5019 035350 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5020 035351 403 11 0 00 000006 SUBB3: SETZB AC1,RAN1 ;CLEAR C(E). + 5021 035352 277 10 0 00 000011 SUBB AC,AC1 ;DO SUBB..0 FROM RAN = RAN. + 5022 035353 312 10 0 00 000011 CAME AC,AC1 ;C(AC) SHOULD = C(E). + 5023 035354 001 06 0 00 037667 ERR RAN1,RAN + 5024 035355 312 10 0 00 037667 CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + 5025 035356 001 06 0 00 037667 ERR RAN1,RAN + 5026 LOOP SUBB2,SUBB3^ + 5027 035357 367 07 0 00 035345 SOJG AC-1,SUBB2 ;ITERATION COUNTER + 5028 035360 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5029 035361 321 07 0 00 035351 JUMPL AC-1,SUBB3 ;LOOP ON ERROR SWITCH ^ + 5030 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 84 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0137 + + 5031 + 5032 ;TEST SUBB. CHECK C(AC) = C(E) AND C(AC) FOR + 5033 ;CORRECT DATA. + 5034 ;RAN TO 0 CONDITION. + 5035 + 5036 000010 AC=10 + 5037 035362 SUBB1A: SETUP 20,0^ + 5038 000011 AC1=&17 + 5039 000012 AC2=&17 + 5040 000013 AC3=&17 + 5041 000014 AC4=&17 + 5042 000015 AC5=&17 + 5043 000006 RAN1=&17 + 5044 035362 201 07 0 00 035362 MOVEI AC-1,. + 5045 035363 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5046 035364 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5047 035365 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5048 035366 201 07 0 00 000020 MOVEI AC-1,20 ;ROUTINE WEIGHTING + 5049 035367 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5050 035370 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5051 035371 SUBB2A: RANDOM^ + 5052 035371 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5053 035372 270 10 0 00 037562 ADD AC,[142536475076] + 5054 035373 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5055 035374 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5056 035375 403 11 0 00 000006 SUBB3A: SETZB AC1,RAN1 ;CLEAR C(AC). + 5057 035376 210 12 0 00 000010 MOVN AC2,AC ;SIMULATE SUB...RAN FROM 0 = 2'S COMP RAN. + 5058 035377 277 11 0 00 000010 SUBB AC1,AC ;DO SUBB. + 5059 035400 312 11 0 00 000010 CAME AC1,AC ;C(AC) SHOULD = C(E). + 5060 035401 011 00 0 00 000006 EERR ,RAN1 + 5061 035402 312 11 0 00 000012 CAME AC1,AC2 ;C(AC) SHOULD = SIM. ANS. + 5062 035403 011 00 0 00 000006 EERR ,RAN1 + 5063 LOOP SUBB2A,SUBB3A^ + 5064 035404 367 07 0 00 035371 SOJG AC-1,SUBB2A ;ITERATION COUNTER + 5065 035405 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5066 035406 321 07 0 00 035375 JUMPL AC-1,SUBB3A ;LOOP ON ERROR SWITCH ^ + 5067 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 85 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0138 + + 5068 + 5069 ;TEST SUBB. CHECK C(AC) = C(E) AND FOR + 5070 ;CORRECT DATA IN AC. + 5071 ;RAN TO RAN CONDITION. + 5072 + 5073 000010 AC=10 + 5074 035407 SUBB1B: SETUP 40,0^ + 5075 000011 AC1=&17 + 5076 000012 AC2=&17 + 5077 000013 AC3=&17 + 5078 000014 AC4=&17 + 5079 000015 AC5=&17 + 5080 000006 RAN1=&17 + 5081 035407 201 07 0 00 035407 MOVEI AC-1,. + 5082 035410 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5083 035411 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5084 035412 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5085 035413 201 07 0 00 000040 MOVEI AC-1,40 ;ROUTINE WEIGHTING + 5086 035414 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5087 035415 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5088 035416 SUBB2B: RANDOM^ + 5089 035416 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5090 035417 270 10 0 00 037562 ADD AC,[142536475076] + 5091 035420 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5092 035421 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5093 035422 200 11 0 00 000010 SUBB3B: MOVE AC1,AC ;MAKE C(E) = C(AC). + 5094 035423 277 10 0 00 000011 SUBB AC,AC1 ;DO SUBB..RAN FROM RAN = 0. + 5095 035424 312 10 0 00 000011 CAME AC,AC1 ;C(AC) SHOULD = C(E). + 5096 035425 011 00 0 00 037667 EERR ,RAN + 5097 035426 312 10 0 00 037563 CAME AC,[0] ;C(AC) SHOULD = 0. + 5098 035427 011 00 0 00 037667 EERR ,RAN + 5099 LOOP SUBB2B,SUBB3B^ + 5100 035430 367 07 0 00 035416 SOJG AC-1,SUBB2B ;ITERATION COUNTER + 5101 035431 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5102 035432 321 07 0 00 035422 JUMPL AC-1,SUBB3B ;LOOP ON ERROR SWITCH ^ + 5103 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 86 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0139 + + 5104 + 5105 + 5106 ;TEST MOVEI. CHECK C(AC) FOR CORRECT DATA. + 5107 ;RAN TO RAN1. + 5108 + 5109 000002 AC=2 + 5110 035433 MVEI1: SETUP 20,0^ + 5111 000003 AC1=&17 + 5112 000004 AC2=&17 + 5113 000005 AC3=&17 + 5114 000006 AC4=&17 + 5115 000007 AC5=&17 + 5116 000000 RAN1=&17 + 5117 035433 201 01 0 00 035433 MOVEI AC-1,. + 5118 035434 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5119 035435 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5120 035436 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5121 035437 201 01 0 00 000020 MOVEI AC-1,20 ;ROUTINE WEIGHTING + 5122 035440 240 01 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5123 035441 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5124 035442 MVEI2: RANDOM^ + 5125 035442 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5126 035443 270 02 0 00 037562 ADD AC,[142536475076] + 5127 035444 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5128 035445 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5129 035446 200 04 0 00 037667 MOVE AC2,RAN ;SAVE RAN IN AN AC. + 5130 035447 207 00 0 00 000002 MVEI3: MOVSS RAN1,AC ;MAKE C(AC) = SEC RAN NUM. + 5131 035450 200 03 0 00 037667 MOVE AC1,RAN ;SIMULATE + 5132 035451 242 03 0 00 000022 LSH AC1,22 ;A + 5133 035452 242 03 0 00 777756 LSH AC1,-22 ;MOVEI. + 5134 035453 201 02 0 04 000000 MOVEI AC,(AC2) ;DO A MOVEI. + 5135 035454 312 02 0 00 000003 CAME AC,AC1 ;C(AC) SHOULD = SIM. ANS. + 5136 035455 003 00 0 04 000000 ERRI RAN1,(AC2) + 5137 LOOP MVEI2,MVEI3^ + 5138 035456 367 01 0 00 035442 SOJG AC-1,MVEI2 ;ITERATION COUNTER + 5139 035457 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5140 035460 321 01 0 00 035447 JUMPL AC-1,MVEI3 ;LOOP ON ERROR SWITCH ^ + 5141 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 87 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0140 + + 5142 + 5143 ;TEST MOVN. TWO MOVN INSTRUCTIONS SHOULD NOT CHANGE C(AC). + 5144 + 5145 000002 AC=2 + 5146 035461 MOVN1: SETUP 200,0^ + 5147 000003 AC1=&17 + 5148 000004 AC2=&17 + 5149 000005 AC3=&17 + 5150 000006 AC4=&17 + 5151 000007 AC5=&17 + 5152 000000 RAN1=&17 + 5153 035461 201 01 0 00 035461 MOVEI AC-1,. + 5154 035462 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5155 035463 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5156 035464 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5157 035465 201 01 0 00 000200 MOVEI AC-1,200 ;ROUTINE WEIGHTING + 5158 035466 240 01 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5159 035467 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5160 035470 MOVN2: RANDOM^ + 5161 035470 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5162 035471 270 02 0 00 037562 ADD AC,[142536475076] + 5163 035472 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5164 035473 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5165 ;DO 6 X (MOVN RAN TO RAN). + 5166 MOVN3: REPEAT 3,< + 5167 MOVN AC,AC + 5168 MOVN AC,AC> + 5169 + 5170 035474 210 02 0 00 000002 MOVN AC,AC + 5171 035475 210 02 0 00 000002 MOVN AC,AC + 5172 + 5173 035476 210 02 0 00 000002 MOVN AC,AC + 5174 035477 210 02 0 00 000002 MOVN AC,AC + 5175 + 5176 035500 210 02 0 00 000002 MOVN AC,AC + 5177 035501 210 02 0 00 000002 MOVN AC,AC + 5178 035502 312 02 0 00 037667 CAME AC,RAN ;C(AC) SHOULD STILL = RAN NUM. + 5179 035503 004 02 0 00 037667 ERROR AC,RAN + 5180 LOOP MOVN2,MOVN3^ + 5181 035504 367 01 0 00 035470 SOJG AC-1,MOVN2 ;ITERATION COUNTER + 5182 035505 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5183 035506 321 01 0 00 035474 JUMPL AC-1,MOVN3 ;LOOP ON ERROR SWITCH ^ + 5184 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 88 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0141 + + 5185 + 5186 ;TEST MOVNI. CHECK C(AC) FOR CORRECT DATA. + 5187 ;RAN TO RAN1. + 5188 + 5189 000002 AC=2 + 5190 035507 MVNI1: SETUP 40,0^ + 5191 000003 AC1=&17 + 5192 000004 AC2=&17 + 5193 000005 AC3=&17 + 5194 000006 AC4=&17 + 5195 000007 AC5=&17 + 5196 000000 RAN1=&17 + 5197 035507 201 01 0 00 035507 MOVEI AC-1,. + 5198 035510 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5199 035511 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5200 035512 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5201 035513 201 01 0 00 000040 MOVEI AC-1,40 ;ROUTINE WEIGHTING + 5202 035514 240 01 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5203 035515 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5204 035516 MVNI2: RANDOM^ + 5205 035516 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5206 035517 270 02 0 00 037562 ADD AC,[142536475076] + 5207 035520 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5208 035521 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5209 035522 200 04 0 00 037667 MOVE AC2,RAN ;SAVE RAN IN AN AC. + 5210 035523 207 00 0 00 000002 MVNI3: MOVSS RAN1,AC ;C(AC) = SEC RAN NUM. + 5211 035524 201 03 0 04 000000 MOVEI AC1,(AC2) ;SIMULATE + 5212 035525 450 03 0 00 000000 SETCA AC1, ;A + 5213 035526 270 03 0 00 037571 ADD AC1,[1] ;MOVNI INST. + 5214 035527 211 02 0 04 000000 MOVNI AC,(AC2) ;DO A MOVNI. + 5215 035530 312 02 0 00 000003 CAME AC,AC1 ;C(AC) SHOULD = SIM. ANS. + 5216 035531 003 00 0 04 000000 ERRI RAN1,(AC2) + 5217 LOOP MVNI2,MVNI3^ + 5218 035532 367 01 0 00 035516 SOJG AC-1,MVNI2 ;ITERATION COUNTER + 5219 035533 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5220 035534 321 01 0 00 035523 JUMPL AC-1,MVNI3 ;LOOP ON ERROR SWITCH ^ + 5221 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 89 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0142 + + 5222 + 5223 ;TEST MOVNM. WHERE E IS AN AC. + 5224 ;CHECK C(E) FOR CORRECT DATA. + 5225 ;RAN TO RAN. + 5226 + 5227 000002 AC=2 + 5228 035535 MVNM1: SETUP 100,0^ + 5229 000003 AC1=&17 + 5230 000004 AC2=&17 + 5231 000005 AC3=&17 + 5232 000006 AC4=&17 + 5233 000007 AC5=&17 + 5234 000000 RAN1=&17 + 5235 035535 201 01 0 00 035535 MOVEI AC-1,. + 5236 035536 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5237 035537 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5238 035540 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5239 035541 201 01 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 5240 035542 240 01 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5241 035543 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5242 035544 MVNM2: RANDOM^ + 5243 035544 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5244 035545 270 02 0 00 037562 ADD AC,[142536475076] + 5245 035546 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5246 035547 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5247 035550 200 00 0 00 037667 MOVE RAN1,RAN ;SAVE RAN IN AN AC. + 5248 035551 200 03 0 00 000002 MVNM3: MOVE AC1,AC ;MAKE C(E) = C(AC). + 5249 ;DO 3 X 2(MOVNM). + 5250 REPEAT 3,< + 5251 MOVNM AC,AC1 + 5252 MOVNM AC1,AC> + 5253 + 5254 035552 212 02 0 00 000003 MOVNM AC,AC1 + 5255 035553 212 03 0 00 000002 MOVNM AC1,AC + 5256 + 5257 035554 212 02 0 00 000003 MOVNM AC,AC1 + 5258 035555 212 03 0 00 000002 MOVNM AC1,AC + 5259 + 5260 035556 212 02 0 00 000003 MOVNM AC,AC1 + 5261 035557 212 03 0 00 000002 MOVNM AC1,AC + 5262 035560 312 00 0 00 000002 CAME RAN1,AC ;C(E) SHOULD = ORIG C(E). + 5263 035561 012 00 0 00 037667 EERRM ,RAN + 5264 LOOP MVNM2,MVNM3^ + 5265 035562 367 01 0 00 035544 SOJG AC-1,MVNM2 ;ITERATION COUNTER + 5266 035563 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5267 035564 321 01 0 00 035551 JUMPL AC-1,MVNM3 ;LOOP ON ERROR SWITCH ^ + 5268 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 90 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0143 + + 5269 + 5270 ;TEST MOVNS. WHERE E IS AN AC. + 5271 ;CHECK PROPER STORING OF C(E) INTO AC. + 5272 ;TWO MOVNS = ORIG NUMBER. + 5273 ;C(E) = RAN. + 5274 + 5275 000003 AC=3 + 5276 035565 MVNS1: SETUP 100,0^ + 5277 000004 AC1=&17 + 5278 000005 AC2=&17 + 5279 000006 AC3=&17 + 5280 000007 AC4=&17 + 5281 000010 AC5=&17 + 5282 000001 RAN1=&17 + 5283 035565 201 02 0 00 035565 MOVEI AC-1,. + 5284 035566 202 02 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5285 035567 201 02 0 00 000002 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5286 035570 202 02 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5287 035571 201 02 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 5288 035572 240 02 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5289 035573 240 02 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5290 035574 MVNS2: RANDOM^ + 5291 035574 200 03 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5292 035575 270 03 0 00 037562 ADD AC,[142536475076] + 5293 035576 241 03 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5294 035577 447 03 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5295 035600 200 05 0 00 037667 MOVE AC2,RAN ;PUT C(RAN) INTO AC2 FOR FUTURE COMPARE. + 5296 035601 477 04 0 00 000001 MVNS3: SETOB AC1,RAN1 ;MAKE C(AC) = -1. + 5297 ;DO 3 X 2(MOVNS). + 5298 REPEAT 3,< + 5299 MOVNS AC1,AC + 5300 MOVNS AC1,AC> + 5301 + 5302 035602 213 04 0 00 000003 MOVNS AC1,AC + 5303 035603 213 04 0 00 000003 MOVNS AC1,AC + 5304 + 5305 035604 213 04 0 00 000003 MOVNS AC1,AC + 5306 035605 213 04 0 00 000003 MOVNS AC1,AC + 5307 + 5308 035606 213 04 0 00 000003 MOVNS AC1,AC + 5309 035607 213 04 0 00 000003 MOVNS AC1,AC + 5310 035610 312 04 0 00 000003 CAME AC1,AC ;C(AC) SHOULD = C(E). + 5311 035611 012 00 0 00 000001 EERRM ,RAN1 + 5312 035612 312 05 0 00 000003 CAME AC2,AC ;C(E) SHOULD = ORIG. C(E). + 5313 035613 012 00 0 00 000001 EERRM ,RAN1 + 5314 LOOP MVNS2,MVNS3^ + 5315 035614 367 02 0 00 035574 SOJG AC-1,MVNS2 ;ITERATION COUNTER + 5316 035615 200 03 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5317 035616 321 02 0 00 035601 JUMPL AC-1,MVNS3 ;LOOP ON ERROR SWITCH ^ + 5318 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 91 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0144 + + 5319 + 5320 ;TEST MOVNS. WHERE E IS AN AC. + 5321 ;CHECK FOR NOT LOADING C(E) INTO AC WHEN AC= 0. + 5322 ;TWO MOVNS = ORIGINAL NUM. + 5323 ;C(E) = RAN. + 5324 + 5325 000010 AC=10 + 5326 035617 MVNSA: SETUP 40,0^ + 5327 000011 AC1=&17 + 5328 000012 AC2=&17 + 5329 000013 AC3=&17 + 5330 000014 AC4=&17 + 5331 000015 AC5=&17 + 5332 000006 RAN1=&17 + 5333 035617 201 07 0 00 035617 MOVEI AC-1,. + 5334 035620 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5335 035621 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5336 035622 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5337 035623 201 07 0 00 000040 MOVEI AC-1,40 ;ROUTINE WEIGHTING + 5338 035624 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5339 035625 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5340 035626 MVNSB: RANDOM^ + 5341 035626 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5342 035627 270 10 0 00 037562 ADD AC,[142536475076] + 5343 035630 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5344 035631 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5345 035632 200 12 0 00 037667 MOVE AC2,RAN ;SAVE RAN IN AN AC. + 5346 035633 477 00 0 00 000006 MVNSC: SETOB RAN1 ;MAKE C(AC) = -1. + 5347 ;DO 3 X 2(MOVNS). + 5348 REPEAT 3,< + 5349 MOVNS AC + 5350 MOVNS AC> + 5351 + 5352 035634 213 00 0 00 000010 MOVNS AC + 5353 035635 213 00 0 00 000010 MOVNS AC + 5354 + 5355 035636 213 00 0 00 000010 MOVNS AC + 5356 035637 213 00 0 00 000010 MOVNS AC + 5357 + 5358 035640 213 00 0 00 000010 MOVNS AC + 5359 035641 213 00 0 00 000010 MOVNS AC + 5360 035642 316 00 0 00 000010 CAMN AC ;C(AC) SHOULD NOT = C(E). + 5361 035643 012 00 0 00 000006 EERRM ,RAN1 + 5362 035644 312 12 0 00 000010 CAME AC2,AC ;C(AC) SHOULD = ORIG C(AC). + 5363 035645 012 00 0 00 000006 EERRM ,RAN1 + 5364 LOOP MVNSB, MVNSC^ + 5365 035646 367 07 0 00 035626 SOJG AC-1,MVNSB ;ITERATION COUNTER + 5366 035647 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5367 035650 321 07 0 00 035633 JUMPL AC-1,MVNSC ;LOOP ON ERROR SWITCH ^ + 5368 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 92 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0145 + + 5369 + 5370 ;TEST MOVM. CHECK F(AC) FOR CORRECT DATA. + 5371 ;RAN TO RAN1. + 5372 + 5373 000007 AC=7 + 5374 035651 MVM1: SETUP 40,0^ + 5375 000010 AC1=&17 + 5376 000011 AC2=&17 + 5377 000012 AC3=&17 + 5378 000013 AC4=&17 + 5379 000014 AC5=&17 + 5380 000005 RAN1=&17 + 5381 035651 201 06 0 00 035651 MOVEI AC-1,. + 5382 035652 202 06 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5383 035653 201 06 0 00 000006 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5384 035654 202 06 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5385 035655 201 06 0 00 000040 MOVEI AC-1,40 ;ROUTINE WEIGHTING + 5386 035656 240 06 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5387 035657 240 06 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5388 035660 MVM2: RANDOM^ + 5389 035660 200 07 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5390 035661 270 07 0 00 037562 ADD AC,[142536475076] + 5391 035662 241 07 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5392 035663 447 07 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5393 035664 207 05 0 00 000007 MVM3: MOVSS RAN1,AC ;C(AC) = SEC RAN NUM. + 5394 035665 200 10 0 00 037667 MOVE AC1,RAN ;C(E) = 1ST RAN NUM. + 5395 035666 460 11 0 00 000010 SETCM AC2,AC1 ;SIMULATE + 5396 035667 607 10 0 00 400000 TLNN AC1,400000 ;A + 5397 035670 200 11 0 00 000010 MOVE AC2,AC1 ;MOVM + 5398 035671 603 10 0 00 400000 TLNE AC1,400000 ;INST. + 5399 035672 270 11 0 00 037571 ADD AC2,[1] + 5400 035673 214 07 0 00 000010 MOVM AC,AC1 ;DO A MOVM. + 5401 035674 312 07 0 00 000011 CAME AC,AC2 ;C(AC) SHOULD = SIM. ANS. + 5402 035675 011 00 0 00 000005 EERR ,RAN1 + 5403 LOOP MVM2, MVM3^ + 5404 035676 367 06 0 00 035660 SOJG AC-1,MVM2 ;ITERATION COUNTER + 5405 035677 200 07 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5406 035700 321 06 0 00 035664 JUMPL AC-1,MVM3 ;LOOP ON ERROR SWITCH ^ + 5407 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 93 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0146 + + 5408 + 5409 ;TEST MOVMI. CHECK C(AC) FOR CORRECT DATA. + 5410 ;RAN TO RAN1. + 5411 + 5412 000010 AC=10 + 5413 035701 MVMI1: SETUP 40,0^ + 5414 000011 AC1=&17 + 5415 000012 AC2=&17 + 5416 000013 AC3=&17 + 5417 000014 AC4=&17 + 5418 000015 AC5=&17 + 5419 000006 RAN1=&17 + 5420 035701 201 07 0 00 035701 MOVEI AC-1,. + 5421 035702 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5422 035703 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5423 035704 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5424 035705 201 07 0 00 000040 MOVEI AC-1,40 ;ROUTINE WEIGHTING + 5425 035706 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5426 035707 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5427 035710 MVMI2: RANDOM^ + 5428 035710 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5429 035711 270 10 0 00 037562 ADD AC,[142536475076] + 5430 035712 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5431 035713 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5432 035714 201 11 0 00 000010 MVMI3: MOVEI AC1,AC ;SIMULATE A MOVMI INST...MOVEI. + 5433 035715 207 06 0 00 000010 MOVSS RAN1,AC ;C(AC) = SEC RAN NUM. + 5434 035716 215 10 0 11 000000 MOVMI AC,(AC1) ;DO MOVMI. + 5435 035717 312 10 0 00 000011 CAME AC,AC1 ;C(AC) SHOULD = SIM ANS. + 5436 035720 003 06 0 11 000000 ERRI RAN1,(AC1) + 5437 LOOP MVMI2, MVMI3^ + 5438 035721 367 07 0 00 035710 SOJG AC-1,MVMI2 ;ITERATION COUNTER + 5439 035722 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5440 035723 321 07 0 00 035714 JUMPL AC-1,MVMI3 ;LOOP ON ERROR SWITCH ^ + 5441 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 94 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0147 + + 5442 + 5443 ;TEST MOVMM. CHECK C(AC) + C(E) FOR CORRECT DATA. + 5444 ;RAN TO RAN1. + 5445 + 5446 000011 AC=11 + 5447 035724 MVMM1: SETUP 200,0^ + 5448 000012 AC1=&17 + 5449 000013 AC2=&17 + 5450 000014 AC3=&17 + 5451 000015 AC4=&17 + 5452 000016 AC5=&17 + 5453 000007 RAN1=&17 + 5454 035724 201 10 0 00 035724 MOVEI AC-1,. + 5455 035725 202 10 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5456 035726 201 10 0 00 000010 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5457 035727 202 10 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5458 035730 201 10 0 00 000200 MOVEI AC-1,200 ;ROUTINE WEIGHTING + 5459 035731 240 10 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5460 035732 240 10 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5461 035733 MVMM2: RANDOM^ + 5462 035733 200 11 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5463 035734 270 11 0 00 037562 ADD AC,[142536475076] + 5464 035735 241 11 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5465 035736 447 11 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5466 035737 207 07 0 00 000011 MVMM3: MOVSS RAN1,AC ;C(AC) = SEC RAN NUM. + 5467 035740 200 12 0 00 037667 MOVE AC1,RAN ;C(E) = RAN. + 5468 035741 460 13 0 00 000011 SETCM AC2,AC ;SIMULATE + 5469 035742 607 11 0 00 400000 TLNN AC,400000 ;A + 5470 035743 200 13 0 00 000011 MOVE AC2,AC ;MOVMM + 5471 035744 603 11 0 00 400000 TLNE AC,400000 ;INST + 5472 035745 270 13 0 00 037571 ADD AC2,[1] + 5473 035746 216 11 0 00 000012 MOVMM AC,AC1 ;DO A MOVMM INST. + 5474 035747 312 11 0 00 000007 CAME AC,RAN1 ;C(AC) SHOULD = ORIG C(AC). + 5475 035750 012 00 0 00 000007 EERRM ,RAN1 + 5476 035751 312 12 0 00 000013 CAME AC1,AC2 ;C(E) SHOULD = SIM. ANS. + 5477 035752 012 00 0 00 000007 EERRM ,RAN1 + 5478 LOOP MVMM2, MVMM3^ + 5479 035753 367 10 0 00 035733 SOJG AC-1,MVMM2 ;ITERATION COUNTER + 5480 035754 200 11 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5481 035755 321 10 0 00 035737 JUMPL AC-1,MVMM3 ;LOOP ON ERROR SWITCH ^ + 5482 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 95 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0148 + + 5483 + 5484 ;TEST MOVMS. CHECK C(E) FOR CORRECT DATA. + 5485 ;RAN TO RAN1. + 5486 + 5487 000010 AC=10 + 5488 035756 MVMS1: SETUP 200,0^ + 5489 000011 AC1=&17 + 5490 000012 AC2=&17 + 5491 000013 AC3=&17 + 5492 000014 AC4=&17 + 5493 000015 AC5=&17 + 5494 000006 RAN1=&17 + 5495 035756 201 07 0 00 035756 MOVEI AC-1,. + 5496 035757 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5497 035760 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5498 035761 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5499 035762 201 07 0 00 000200 MOVEI AC-1,200 ;ROUTINE WEIGHTING + 5500 035763 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5501 035764 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5502 035765 MVMS2: RANDOM^ + 5503 035765 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5504 035766 270 10 0 00 037562 ADD AC,[142536475076] + 5505 035767 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5506 035770 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5507 035771 207 06 0 00 000010 MVMS3: MOVSS RAN1,AC ;C(AC) = SEC RAN NUM. + 5508 035772 200 11 0 00 037667 MOVE AC1,RAN ;C(E) = RAN. + 5509 035773 460 12 0 00 037667 SETCM AC2,RAN ;SIMULATE + 5510 035774 607 11 0 00 400000 TLNN AC1,400000 ;A + 5511 035775 200 12 0 00 000011 MOVE AC2,AC1 ;MOVMS + 5512 035776 603 11 0 00 400000 TLNE AC1,400000 ;INST. + 5513 035777 270 12 0 00 037571 ADD AC2,[1] + 5514 036000 217 10 0 00 000011 MOVMS AC,AC1 ;DO A MOVMS. + 5515 036001 312 10 0 00 000011 CAME AC,AC1 ;C(AC) SHOULD = C(E). + 5516 036002 012 00 0 00 000006 EERRM ,RAN1 + 5517 036003 312 11 0 00 000012 CAME AC1,AC2 ;C(E) SHOULD = SIM. ANS. + 5518 036004 012 00 0 00 000006 EERRM ,RAN1 + 5519 LOOP MVMS2, MVMS3^ + 5520 036005 367 07 0 00 035765 SOJG AC-1,MVMS2 ;ITERATION COUNTER + 5521 036006 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5522 036007 321 07 0 00 035771 JUMPL AC-1,MVMS3 ;LOOP ON ERROR SWITCH ^ + 5523 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 96 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0149 + + 5524 + 5525 ;TEST LSH. A LSH LEFT AND A LSH RIGHT SHOULD + 5526 ;GIVE THE SAME NUMBER WITH A ZERO SIGN BIT. + 5527 + 5528 000002 AC=2 + 5529 036010 LSH1P: SETUP 40,0^ + 5530 000003 AC1=&17 + 5531 000004 AC2=&17 + 5532 000005 AC3=&17 + 5533 000006 AC4=&17 + 5534 000007 AC5=&17 + 5535 000000 RAN1=&17 + 5536 036010 201 01 0 00 036010 MOVEI AC-1,. + 5537 036011 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5538 036012 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5539 036013 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5540 036014 201 01 0 00 000040 MOVEI AC-1,40 ;ROUTINE WEIGHTING + 5541 036015 240 01 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5542 036016 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5543 036017 LSH1PA: RANDOM^ + 5544 036017 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5545 036020 270 02 0 00 037562 ADD AC,[142536475076] + 5546 036021 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5547 036022 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5548 036023 404 02 0 00 037576 LSH1PB: AND AC,[XWD 377777,-1] ;SIMULATE A LSH LEFT THEN RIGHT. + 5549 036024 200 03 0 00 037667 MOVE AC1,RAN ;MOVE RANDOM NUM INTO AN AC + 5550 ;AND DO 3(LSH LEFT 1 PLACE THEN RIGHT 1 PLACE). + 5551 REPEAT 3,< + 5552 LSH AC1,1 + 5553 LSH AC1,-1> + 5554 + 5555 036025 242 03 0 00 000001 LSH AC1,1 + 5556 036026 242 03 0 00 777777 LSH AC1,-1 + 5557 + 5558 036027 242 03 0 00 000001 LSH AC1,1 + 5559 036030 242 03 0 00 777777 LSH AC1,-1 + 5560 + 5561 036031 242 03 0 00 000001 LSH AC1,1 + 5562 036032 242 03 0 00 777777 LSH AC1,-1 + 5563 036033 312 03 0 00 000002 CAME AC1,AC ;C(AC1) = SIM. ANS? + 5564 036034 004 03 0 00 000002 ERROR AC1,AC ;NO. LSH FAILED. + 5565 LOOP LSH1PA,LSH1PB^ + 5566 036035 367 01 0 00 036017 SOJG AC-1,LSH1PA ;ITERATION COUNTER + 5567 036036 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5568 036037 321 01 0 00 036023 JUMPL AC-1,LSH1PB ;LOOP ON ERROR SWITCH ^ + 5569 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 97 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0150 + + 5570 + 5571 ;TEST TDN,TDNA. CHECK FOR SKIP/NO SKIP AND + 5572 ;NO DATA CHANGE IN AC FOR RAN1 TO RAN CONDITION. + 5573 + 5574 000002 AC=2 + 5575 036040 TDN1: SETUP 100,0^ + 5576 000003 AC1=&17 + 5577 000004 AC2=&17 + 5578 000005 AC3=&17 + 5579 000006 AC4=&17 + 5580 000007 AC5=&17 + 5581 000000 RAN1=&17 + 5582 036040 201 01 0 00 036040 MOVEI AC-1,. + 5583 036041 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5584 036042 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5585 036043 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5586 036044 201 01 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 5587 036045 240 01 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5588 036046 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5589 036047 TDN2: RANDOM^ + 5590 036047 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5591 036050 270 02 0 00 037562 ADD AC,[142536475076] + 5592 036051 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5593 036052 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5594 036053 204 03 0 00 000002 TDN3: MOVS AC1,AC ;PUT SECOND RAN. NUM. INTO "E". + 5595 036054 610 02 0 00 000003 TDN AC,AC1 ;NO SKIP, NO DATA CHANGE. + 5596 036055 254 00 0 00 036057 JRST .+2 ;HERE..GO AROUND ERR UUO. + 5597 036056 005 02 0 00 037577 ER AC,[ASCII /TST/];TDN SKIPPED. + 5598 036057 614 02 0 00 000003 TDNA AC,AC1 ;SKIP, NO DATA CHANGE. + 5599 036060 005 02 0 00 037577 ER AC,[ASCII /TST/] + 5600 036061 312 02 0 00 037667 CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + 5601 036062 001 03 0 00 037667 ERR AC1,RAN + 5602 LOOP TDN2,TDN3^ + 5603 036063 367 01 0 00 036047 SOJG AC-1,TDN2 ;ITERATION COUNTER + 5604 036064 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5605 036065 321 01 0 00 036053 JUMPL AC-1,TDN3 ;LOOP ON ERROR SWITCH ^ + 5606 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 98 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0151 + + 5607 + 5608 ;TEST TDNN,TDNE. CHECK FOR SKIP/ NO SKIP AND + 5609 ;NO DATA CHANGE IN AC FOR RAN TO 0 CONDITION. + 5610 + 5611 000003 AC=3 + 5612 036066 TDNE1A: SETUP 100,0^ + 5613 000004 AC1=&17 + 5614 000005 AC2=&17 + 5615 000006 AC3=&17 + 5616 000007 AC4=&17 + 5617 000010 AC5=&17 + 5618 000001 RAN1=&17 + 5619 036066 201 02 0 00 036066 MOVEI AC-1,. + 5620 036067 202 02 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5621 036070 201 02 0 00 000002 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5622 036071 202 02 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5623 036072 201 02 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 5624 036073 240 02 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5625 036074 240 02 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5626 036075 TDNE2A: RANDOM^ + 5627 036075 200 03 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5628 036076 270 03 0 00 037562 ADD AC,[142536475076] + 5629 036077 241 03 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5630 036100 447 03 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5631 036101 403 04 0 00 000001 TDNE3A: SETZB AC1,RAN1 ;CLEAR C(AC). + 5632 036102 616 04 0 00 000003 TDNN AC1,AC ;C(E) + C(AC) =0..NO SKIP. + 5633 036103 254 00 0 00 036105 JRST .+2 + 5634 036104 005 04 0 00 037577 ER AC1,[ASCII /TST/];TDNN SKIPPED. + 5635 036105 612 04 0 00 000003 TDNE AC1,AC ;C(E) + C(AC) = 0. SKIP. + 5636 036106 005 04 0 00 037577 ER AC1,[ASCII /TST/] + 5637 036107 312 04 0 00 037563 CAME AC1,[0] ;C(AC) SHOULD STILL = 0. + 5638 036110 001 03 0 00 000001 ERR AC,RAN1 + 5639 LOOP TDNE2A,TDNE3A^ + 5640 036111 367 02 0 00 036075 SOJG AC-1,TDNE2A ;ITERATION COUNTER + 5641 036112 200 03 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5642 036113 321 02 0 00 036101 JUMPL AC-1,TDNE3A ;LOOP ON ERROR SWITCH ^ + 5643 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 99 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0152 + + 5644 + 5645 ;TEST TDNN,TDNE. CHECK FOR SKIP/ NO SKIP AND + 5646 ;NO DATA CHANGE FOR 0 TO RAN CONDITION. + 5647 + 5648 000004 AC=4 + 5649 036114 TDNE1B: SETUP 40,0^ + 5650 000005 AC1=&17 + 5651 000006 AC2=&17 + 5652 000007 AC3=&17 + 5653 000010 AC4=&17 + 5654 000011 AC5=&17 + 5655 000002 RAN1=&17 + 5656 036114 201 03 0 00 036114 MOVEI AC-1,. + 5657 036115 202 03 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5658 036116 201 03 0 00 000003 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5659 036117 202 03 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5660 036120 201 03 0 00 000040 MOVEI AC-1,40 ;ROUTINE WEIGHTING + 5661 036121 240 03 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5662 036122 240 03 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5663 036123 TDNE2B: RANDOM^ + 5664 036123 200 04 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5665 036124 270 04 0 00 037562 ADD AC,[142536475076] + 5666 036125 241 04 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5667 036126 447 04 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5668 036127 400 05 0 00 000000 TDNE3B: SETZ AC1, ;CLEAR C(E). + 5669 036130 616 04 0 00 000005 TDNN AC,AC1 ;C(E) + C(AC) = 0. NO SKIP. + 5670 036131 254 00 0 00 036133 JRST .+2 + 5671 036132 005 04 0 00 037577 ER AC,[ASCII /TST/];TDNN SKIPPED. + 5672 036133 612 04 0 00 000005 TDNE AC,AC1 ;C(E) + C(AC) = 0. SKIP. + 5673 036134 005 04 0 00 037577 ER AC,[ASCII /TST/] + 5674 036135 312 04 0 00 037667 CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + 5675 036136 001 05 0 00 037667 ERR AC1,RAN + 5676 LOOP TDNE2B,TDNE3B^ + 5677 036137 367 03 0 00 036123 SOJG AC-1,TDNE2B ;ITERATION COUNTER + 5678 036140 200 04 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5679 036141 321 03 0 00 036127 JUMPL AC-1,TDNE3B ;LOOP ON ERROR SWITCH ^ + 5680 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 100 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0153 + + 5681 + 5682 ;TEST TDNN,TDNE. CHECK FOR SKIP/ NO SKIP AND + 5683 ;NO DATA CHANGE IN AC FOR RAN TO -1 CONDITION. + 5684 + 5685 000005 AC=5 + 5686 036142 TDNE1C: SETUP 40,0^ + 5687 000006 AC1=&17 + 5688 000007 AC2=&17 + 5689 000010 AC3=&17 + 5690 000011 AC4=&17 + 5691 000012 AC5=&17 + 5692 000003 RAN1=&17 + 5693 036142 201 04 0 00 036142 MOVEI AC-1,. + 5694 036143 202 04 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5695 036144 201 04 0 00 000004 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5696 036145 202 04 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5697 036146 201 04 0 00 000040 MOVEI AC-1,40 ;ROUTINE WEIGHTING + 5698 036147 240 04 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5699 036150 240 04 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5700 036151 TDNE2C: RANDOM^ + 5701 036151 200 05 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5702 036152 270 05 0 00 037562 ADD AC,[142536475076] + 5703 036153 241 05 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5704 036154 447 05 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5705 036155 322 05 0 00 036151 JUMPE AC,TDNE2C ;REJECT IF RAN = 0. + 5706 036156 477 06 0 00 000003 TDNE3C: SETOB AC1,RAN1 ;SET C(AC) TO ALL ONES. + 5707 036157 612 06 0 00 000005 TDNE AC1,AC ;C(E) + C(AC) NOT = 0..NO SKIP. + 5708 036160 254 00 0 00 036162 JRST .+2 + 5709 036161 005 06 0 00 037577 ER AC1,[ASCII /TST/];TDNE SKIPPED. + 5710 036162 616 06 0 00 000005 TDNN AC1,AC ;C(E) + C(AC) NOT = 0..SKIP. + 5711 036163 005 06 0 00 037577 ER AC1,[ASCII /TST/] + 5712 036164 312 06 0 00 037565 CAME AC1,[-1] ;C(AC) SHOULD = ORIG C(AC). + 5713 036165 001 05 0 00 000003 ERR AC,RAN1 + 5714 LOOP TDNE2C,TDNE3C^ + 5715 036166 367 04 0 00 036151 SOJG AC-1,TDNE2C ;ITERATION COUNTER + 5716 036167 200 05 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5717 036170 321 04 0 00 036156 JUMPL AC-1,TDNE3C ;LOOP ON ERROR SWITCH ^ + 5718 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 101 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0154 + + 5719 + 5720 ;TEST TDNE,TDNN. CHECK FOR SKIP/ NO SKIP AND + 5721 ;NO DATA CHANGE IN AC FOR -1 TO RAN CONDITION. + 5722 + 5723 000006 AC=6 + 5724 036171 TDNE1D: SETUP 40,0^ + 5725 000007 AC1=&17 + 5726 000010 AC2=&17 + 5727 000011 AC3=&17 + 5728 000012 AC4=&17 + 5729 000013 AC5=&17 + 5730 000004 RAN1=&17 + 5731 036171 201 05 0 00 036171 MOVEI AC-1,. + 5732 036172 202 05 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5733 036173 201 05 0 00 000005 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5734 036174 202 05 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5735 036175 201 05 0 00 000040 MOVEI AC-1,40 ;ROUTINE WEIGHTING + 5736 036176 240 05 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5737 036177 240 05 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5738 036200 TDNE2D: RANDOM^ + 5739 036200 200 06 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5740 036201 270 06 0 00 037562 ADD AC,[142536475076] + 5741 036202 241 06 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5742 036203 447 06 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5743 036204 322 06 0 00 036200 JUMPE AC,TDNE2D ;REJECT IF RAN = 0. + 5744 036205 474 07 0 00 000000 TDNE3D: SETO AC1, ;SET C(E) TO ALL ONES. + 5745 036206 612 06 0 00 000007 TDNE AC,AC1 ;C(E) + C(AC) NOT = 0..NO SKIP. + 5746 036207 254 00 0 00 036211 JRST .+2 + 5747 036210 005 06 0 00 037577 ER AC,[ASCII /TST/];TDNE SKIPPED. + 5748 036211 616 06 0 00 000007 TDNN AC,AC1 ;C(E) + C(AC) NOT = 0..SKIP. + 5749 036212 005 06 0 00 037577 ER AC,[ASCII /TST/] + 5750 036213 312 06 0 00 037667 CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + 5751 036214 001 07 0 00 037667 ERR AC1,RAN + 5752 LOOP TDNE2D,TDNE3D^ + 5753 036215 367 05 0 00 036200 SOJG AC-1,TDNE2D ;ITERATION COUNTER + 5754 036216 200 06 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5755 036217 321 05 0 00 036205 JUMPL AC-1,TDNE3D ;LOOP ON ERROR SWITCH ^ + 5756 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 102 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0155 + + 5757 + 5758 ;TEST TDNE,TDNN. CHECK FOR SKIP/ NO SKIP AND + 5759 ;NO DATA CHANGE IN AC FOR RAN TO RAN CONDITION. + 5760 + 5761 000007 AC=7 + 5762 036220 TDNE1E: SETUP 20,0^ + 5763 000010 AC1=&17 + 5764 000011 AC2=&17 + 5765 000012 AC3=&17 + 5766 000013 AC4=&17 + 5767 000014 AC5=&17 + 5768 000005 RAN1=&17 + 5769 036220 201 06 0 00 036220 MOVEI AC-1,. + 5770 036221 202 06 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5771 036222 201 06 0 00 000006 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5772 036223 202 06 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5773 036224 201 06 0 00 000020 MOVEI AC-1,20 ;ROUTINE WEIGHTING + 5774 036225 240 06 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5775 036226 240 06 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5776 036227 TDNE2E: RANDOM^ + 5777 036227 200 07 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5778 036230 270 07 0 00 037562 ADD AC,[142536475076] + 5779 036231 241 07 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5780 036232 447 07 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5781 036233 322 07 0 00 036227 JUMPE AC,TDNE2E ;REJECT IF RAN = 0. + 5782 036234 200 10 0 00 000007 TDNE3E: MOVE AC1,AC ;MAKE C(E) = C(AC). + 5783 036235 612 07 0 00 000010 TDNE AC,AC1 ;C(E) + C(AC) NOT = 0..NO SKIP. + 5784 036236 254 00 0 00 036240 JRST .+2 + 5785 036237 005 07 0 00 037577 ER AC,[ASCII /TST/];TDNE SKIPPED. + 5786 036240 616 07 0 00 000010 TDNN AC,AC1 ;C(E) + C(AC) NOT = 0. SKIP. + 5787 036241 005 07 0 00 037577 ER AC,[ASCII /TST/] + 5788 036242 312 07 0 00 037667 CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + 5789 036243 001 10 0 00 037667 ERR AC1,RAN + 5790 LOOP TDNE2E,TDNE3E^ + 5791 036244 367 06 0 00 036227 SOJG AC-1,TDNE2E ;ITERATION COUNTER + 5792 036245 200 07 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5793 036246 321 06 0 00 036234 JUMPL AC-1,TDNE3E ;LOOP ON ERROR SWITCH ^ + 5794 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 103 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0156 + + 5795 + 5796 ;TEST TDNE,TDNN. CHECK FOR SKIP/ NO SKIP AND + 5797 ;NO DATA CHANGE IN AC FOR NOT RAN TO RAN CONDITON. + 5798 + 5799 000010 AC=10 + 5800 036247 TDNE1F: SETUP 20,0^ + 5801 000011 AC1=&17 + 5802 000012 AC2=&17 + 5803 000013 AC3=&17 + 5804 000014 AC4=&17 + 5805 000015 AC5=&17 + 5806 000006 RAN1=&17 + 5807 036247 201 07 0 00 036247 MOVEI AC-1,. + 5808 036250 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5809 036251 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5810 036252 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5811 036253 201 07 0 00 000020 MOVEI AC-1,20 ;ROUTINE WEIGHTING + 5812 036254 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5813 036255 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5814 036256 TDNE2F: RANDOM^ + 5815 036256 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5816 036257 270 10 0 00 037562 ADD AC,[142536475076] + 5817 036260 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5818 036261 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5819 036262 460 11 0 00 000010 TDNE3F: SETCM AC1,AC ;MAKE C(E) = 1'S COMP OF C(AC). + 5820 036263 616 10 0 00 000011 TDNN AC,AC1 ;C(E) + C(AC) = 0..NO SKIP. + 5821 036264 254 00 0 00 036266 JRST .+2 + 5822 036265 005 10 0 00 037577 ER AC,[ASCII /TST/];TDNN SKIPPED. + 5823 036266 612 10 0 00 000011 TDNE AC,AC1 ;C(E) + C(AC) = 0..SKIP. + 5824 036267 005 10 0 00 037577 ER AC,[ASCII /TST/] + 5825 036270 312 10 0 00 037667 CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + 5826 036271 001 11 0 00 037667 ERR AC1,RAN + 5827 LOOP TDNE2F,TDNE3F^ + 5828 036272 367 07 0 00 036256 SOJG AC-1,TDNE2F ;ITERATION COUNTER + 5829 036273 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5830 036274 321 07 0 00 036262 JUMPL AC-1,TDNE3F ;LOOP ON ERROR SWITCH ^ + 5831 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 104 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0157 + + 5832 + 5833 ;TEST TDZ,TDZA. CHECK FOR SKIP/ NO SKIP AND + 5834 ;CORRECT DATA IN AC FOR NOT RAN TO RAN CONDITION. + 5835 + 5836 000011 AC=11 + 5837 036275 TDZA1: SETUP 100,0^ + 5838 000012 AC1=&17 + 5839 000013 AC2=&17 + 5840 000014 AC3=&17 + 5841 000015 AC4=&17 + 5842 000016 AC5=&17 + 5843 000007 RAN1=&17 + 5844 036275 201 10 0 00 036275 MOVEI AC-1,. + 5845 036276 202 10 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5846 036277 201 10 0 00 000010 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5847 036300 202 10 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5848 036301 201 10 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 5849 036302 240 10 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5850 036303 240 10 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5851 036304 TDZA2: RANDOM^ + 5852 036304 200 11 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5853 036305 270 11 0 00 037562 ADD AC,[142536475076] + 5854 036306 241 11 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5855 036307 447 11 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5856 036310 460 12 0 00 000011 TDZA3: SETCM AC1,AC ;MAKE C(E) 1'S COMP OF C(AC). + 5857 036311 630 11 0 00 000012 TDZ AC,AC1 ;SHOULD NOT SKIP. + 5858 036312 254 00 0 00 036314 JRST .+2 + 5859 036313 005 11 0 00 037577 ER AC,[ASCII/TST/] ;TDZ SKIPPED. + 5860 036314 634 11 0 00 000012 TDZA AC,AC1 ;SHOULD SKIP. + 5861 036315 005 11 0 00 037577 ER AC,[ASCII /TST/] + 5862 036316 312 11 0 00 037667 CAME AC,RAN ;C(AC) SHOULD STILL = RAN NUM. + 5863 036317 001 12 0 00 037667 ERR AC1,RAN + 5864 036320 316 12 0 00 037667 CAMN AC1,RAN ;C(E) SHOULD NOT = RAN. + 5865 036321 001 12 0 00 037667 ERR AC1,RAN + 5866 LOOP TDZA2,TDZA3^ + 5867 036322 367 10 0 00 036304 SOJG AC-1,TDZA2 ;ITERATION COUNTER + 5868 036323 200 11 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5869 036324 321 10 0 00 036310 JUMPL AC-1,TDZA3 ;LOOP ON ERROR SWITCH ^ + 5870 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 105 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0158 + + 5871 + 5872 ;TEST TDZ,TDZA. CHECK FOR SKIP/NO SKIP AND + 5873 ;CORRECT DATA IN AC FOR RAN TO RAN CONDITION. + 5874 + 5875 000010 AC=10 + 5876 036325 TDZAA: SETUP 100,1^ + 5877 000011 AC1=&17 + 5878 000012 AC2=&17 + 5879 000013 AC3=&17 + 5880 000014 AC4=&17 + 5881 000015 AC5=&17 + 5882 000006 RAN1=&17 + 5883 036325 201 07 0 00 036325 MOVEI AC-1,. + 5884 036326 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5885 036327 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5886 036330 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5887 036331 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 5888 036332 240 07 1 00 030672 ASH AC-1,@CMPLXT+1 ;ROUTINE COMPLEXITY + 5889 036333 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5890 036334 TDZAB: RANDOM^ + 5891 036334 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5892 036335 270 10 0 00 037562 ADD AC,[142536475076] + 5893 036336 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5894 036337 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5895 036340 630 10 0 00 000010 TDZAC: TDZ AC,AC ;SHOULD NOT SKIP. + 5896 036341 312 10 0 00 037563 CAME AC,[0] ;SHOULD CLEAR C(AC). + 5897 036342 011 00 0 00 037667 EERR ,RAN + 5898 036343 200 10 0 00 037667 MOVE AC,RAN ;RESTORE AC. + 5899 036344 634 10 0 00 000010 TDZA AC,AC ;SHOULD SKIP. + 5900 036345 005 10 0 00 037577 ER AC,[ASCII /TST/] + 5901 036346 312 10 0 00 037563 CAME AC,[0] ;C(AC) SHOULD BE CLEARED. + 5902 036347 011 00 0 00 037667 EERR ,RAN + 5903 LOOP TDZAB,TDZAC^ + 5904 036350 367 07 0 00 036334 SOJG AC-1,TDZAB ;ITERATION COUNTER + 5905 036351 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5906 036352 321 07 0 00 036340 JUMPL AC-1,TDZAC ;LOOP ON ERROR SWITCH ^ + 5907 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 106 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0159 + + 5908 + 5909 + 5910 ;TEST TDZ,TDZA. CHECK FOR SKIP/ NO SKIP AND + 5911 ;CORRECT DATA IN AC FOR RAN1 TO RAN CONDITION. + 5912 + 5913 000010 AC=10 + 5914 036353 TDZB1: SETUP 100,0^ + 5915 000011 AC1=&17 + 5916 000012 AC2=&17 + 5917 000013 AC3=&17 + 5918 000014 AC4=&17 + 5919 000015 AC5=&17 + 5920 000006 RAN1=&17 + 5921 036353 201 07 0 00 036353 MOVEI AC-1,. + 5922 036354 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5923 036355 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5924 036356 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5925 036357 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 5926 036360 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5927 036361 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5928 036362 TDZB2: RANDOM^ + 5929 036362 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5930 036363 270 10 0 00 037562 ADD AC,[142536475076] + 5931 036364 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5932 036365 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5933 036366 204 11 0 00 000010 TDZB3: MOVS AC1,AC ;MAKE C(E) A DIFF. RAN. NUM. + 5934 036367 200 12 0 00 000011 MOVE AC2,AC1 ;SIMULATE + 5935 036370 430 12 0 00 000010 XOR AC2,AC ;A + 5936 036371 404 12 0 00 000010 AND AC2,AC ;TDZ. + 5937 036372 630 10 0 00 000011 TDZ AC,AC1 ;TDZ SHOULD NOT SKIP. + 5938 036373 312 10 0 00 000012 CAME AC,AC2 ;C(AC) SHOULD = SIM. ANS. + 5939 036374 001 11 0 00 037667 ERR AC1,RAN + 5940 036375 200 10 0 00 037667 MOVE AC,RAN ;RESTORE AC. + 5941 036376 634 10 0 00 000011 TDZA AC,AC1 ;SHOULD SKIP. + 5942 036377 005 10 0 00 037577 ER AC,[ASCII /TST/] + 5943 036400 312 10 0 00 000012 CAME AC,AC2 ;C(AC) SHOULD = SIM. ANS. + 5944 036401 001 11 0 00 037667 ERR AC1,RAN + 5945 LOOP TDZB2,TDZB3^ + 5946 036402 367 07 0 00 036362 SOJG AC-1,TDZB2 ;ITERATION COUNTER + 5947 036403 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5948 036404 321 07 0 00 036366 JUMPL AC-1,TDZB3 ;LOOP ON ERROR SWITCH ^ + 5949 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 107 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0160 + + 5950 ;TEST TDZE, TDZN. CHECK FOR SKIP/NO SKIP AND + 5951 ;CORRECT DATA IN AC FOR FLOATING ONE IN C(E) AND + 5952 ;THAT BIT CLEARED IN RANDOM NUM. IN AC. + 5953 + 5954 000010 AC=10 + 5955 036405 TDZE1: SETUP 100,0^ + 5956 000011 AC1=&17 + 5957 000012 AC2=&17 + 5958 000013 AC3=&17 + 5959 000014 AC4=&17 + 5960 000015 AC5=&17 + 5961 000006 RAN1=&17 + 5962 036405 201 07 0 00 036405 MOVEI AC-1,. + 5963 036406 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 5964 036407 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 5965 036410 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 5966 036411 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 5967 036412 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 5968 036413 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 5969 036414 201 11 0 00 000001 MOVEI AC1,1 ;SETUP AC1 TO CONTAIN A MASK BIT. + 5970 036415 TDZE2: RANDOM^ + 5971 036415 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 5972 036416 270 10 0 00 037562 ADD AC,[142536475076] + 5973 036417 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 5974 036420 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 5975 036421 241 11 0 00 000001 ROT AC1,1 ;ROT TO TEST NEXT BIT. + 5976 036422 420 10 0 00 000011 TDZE3: ANDCM AC,AC1 ;CLEAR MASK BIT IN AC. + 5977 036423 200 12 0 00 000010 MOVE AC2,AC ;SAVE FOR FUTURE COMPARE. + 5978 036424 636 10 0 00 000011 TDZN AC,AC1 ;C(E) + C(AC) = 0...NO SKIP. + 5979 036425 254 00 0 00 036427 JRST .+2 + 5980 036426 005 10 0 00 037577 ER AC,[ASCII /TST/] ;TDZN SKIPPED. + 5981 036427 632 10 0 00 000011 TDZE AC,AC1 ;C(E) + C(AC) = 0...SKIP. + 5982 036430 005 10 0 00 037577 ER AC,[ASCII /TST/] + 5983 036431 312 10 0 00 000012 CAME AC,AC2 ;C(AC) SHOULD = ORIG C(AC). + 5984 036432 001 11 0 00 000012 ERR AC1,AC2 + 5985 LOOP TDZE2,TDZE3^ + 5986 036433 367 07 0 00 036415 SOJG AC-1,TDZE2 ;ITERATION COUNTER + 5987 036434 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 5988 036435 321 07 0 00 036422 JUMPL AC-1,TDZE3 ;LOOP ON ERROR SWITCH ^ + 5989 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 108 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0161 + + 5990 + 5991 ;TEST TDZE, TDZN. CHECK FOR SKIP/ NO SKIP AND + 5992 ;CORRECT DATA IN AC FOR FLOATING ONE IN C(E) + 5993 ;AND THAT BIT SET IN RAN. NUM. IN C(AC). + 5994 + 5995 000010 AC=10 + 5996 036436 TDZEA: SETUP 100,0^ + 5997 000011 AC1=&17 + 5998 000012 AC2=&17 + 5999 000013 AC3=&17 + 6000 000014 AC4=&17 + 6001 000015 AC5=&17 + 6002 000006 RAN1=&17 + 6003 036436 201 07 0 00 036436 MOVEI AC-1,. + 6004 036437 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 6005 036440 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 6006 036441 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 6007 036442 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 6008 036443 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 6009 036444 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 6010 036445 201 11 0 00 000001 MOVEI AC1,1 ;SET MASK BIT IN C(E). + 6011 036446 TDZEB: RANDOM^ + 6012 036446 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 6013 036447 270 10 0 00 037562 ADD AC,[142536475076] + 6014 036450 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 6015 036451 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 6016 036452 241 11 0 00 000001 ROT AC1,1 ;ROT MASK BIT TO TEST NEXT BIT. + 6017 036453 434 10 0 00 000011 TDZEC: IOR AC,AC1 ;SET MASK BIT IN AC. + 6018 036454 200 06 0 00 000010 MOVE RAN1,AC ;SAVE C(AC) IN CASE OF ERROR. + 6019 036455 200 12 0 00 000010 MOVE AC2,AC ;SIMULATE + 6020 036456 420 12 0 00 000011 ANDCM AC2,AC1 ;A TDZ. + 6021 036457 632 10 0 00 000011 TDZE AC,AC1 ;C(E) + C(AC) NOT = 0...NO SKIP. + 6022 036460 312 10 0 00 000012 CAME AC,AC2 ;C(AC) SHOULD = SIM. ANS. + 6023 036461 001 11 0 00 000006 ERR AC1,RAN1 + 6024 036462 434 10 0 00 000011 IOR AC,AC1 ;RESET MASK BIT IN AC. + 6025 036463 636 10 0 00 000011 TDZN AC,AC1 ;C(E) + C(AC) NOT = 0...SKIP. + 6026 036464 005 10 0 00 037577 ER AC,[ASCII /TST/] + 6027 036465 312 10 0 00 000012 CAME AC,AC2 ;AND C(AC) SHOULD = SIM. ANS. + 6028 036466 001 11 0 00 000006 ERR AC1,RAN1 + 6029 LOOP TDZEB,TDZEC^ + 6030 036467 367 07 0 00 036446 SOJG AC-1,TDZEB ;ITERATION COUNTER + 6031 036470 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 6032 036471 321 07 0 00 036453 JUMPL AC-1,TDZEC ;LOOP ON ERROR SWITCH ^ + 6033 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 109 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0162 + + 6034 + 6035 ;TEST TDZE,TDZN. SET AND ROT A MASK BIT IN AC + 6036 ;AND CHECK SKIP/NO SKIP AND PROPER C(AC) + 6037 ;FOR MASK BIT IN AC ANS RANDOM NUMBER IN E. + 6038 + 6039 000010 AC=10 + 6040 036472 TDZNA: SETUP 100,0^ + 6041 000011 AC1=&17 + 6042 000012 AC2=&17 + 6043 000013 AC3=&17 + 6044 000014 AC4=&17 + 6045 000015 AC5=&17 + 6046 000006 RAN1=&17 + 6047 036472 201 07 0 00 036472 MOVEI AC-1,. + 6048 036473 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 6049 036474 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 6050 036475 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 6051 036476 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 6052 036477 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 6053 036500 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 6054 036501 201 11 0 00 000001 MOVEI AC1,1 ;SETUP AC1 FOR MASK BIT. + 6055 036502 TDZNB: RANDOM^ + 6056 036502 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 6057 036503 270 10 0 00 037562 ADD AC,[142536475076] + 6058 036504 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 6059 036505 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 6060 036506 241 11 0 00 000001 ROT AC1,1 ;ROT AC1 TO TEST NEXT BIT. + 6061 036507 200 12 0 00 000011 MOVE AC2,AC1 ;SAVE MASK BIT. + 6062 036510 200 11 0 00 000012 TDZNC: MOVE AC1,AC2 ;RESTORE MASK BIT IF ERROR. + 6063 036511 420 10 0 00 000011 ANDCM AC,AC1 ;CLEAR MASK BIT IN RAN NUM. + 6064 036512 636 11 0 00 000010 TDZN AC1,AC ;C(E) + C(AC) =0..SHOULDN'T SKIP. + 6065 036513 254 00 0 00 036515 JRST .+2 + 6066 036514 005 11 0 00 037577 ER AC1,[ASCII /TST/];TDZN SKIPPED. + 6067 036515 632 11 0 00 000010 TDZE AC1,AC ;C(E) + C(AC) = 0..SKIP. + 6068 036516 005 11 0 00 037577 ER AC1,[ASCII /TST/] + 6069 036517 312 11 0 00 000012 CAME AC1,AC2 ;C(AC1) SHOULD NOT HAVE CHANGED. + 6070 036520 001 10 0 00 000012 ERR AC,AC2 + 6071 LOOP TDZNB,TDZNC^ + 6072 036521 367 07 0 00 036502 SOJG AC-1,TDZNB ;ITERATION COUNTER + 6073 036522 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 6074 036523 321 07 0 00 036510 JUMPL AC-1,TDZNC ;LOOP ON ERROR SWITCH ^ + 6075 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 110 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0163 + + 6076 + 6077 ;TEST TDZE,TDZN. SET AND ROT A MASK BIT IN AC + 6078 ;AND CHECK SKIP/NO SKIP AND PROPER C(AC) + 6079 ;FOR MASK BIT IN AC AND RANDOM NUMBER IN E. + 6080 ;RANDOM NUMBER HAS MASK BIT SET. + 6081 + 6082 000010 AC=10 + 6083 036524 TDZN1: SETUP 40,0^ + 6084 000011 AC1=&17 + 6085 000012 AC2=&17 + 6086 000013 AC3=&17 + 6087 000014 AC4=&17 + 6088 000015 AC5=&17 + 6089 000006 RAN1=&17 + 6090 036524 201 07 0 00 036524 MOVEI AC-1,. + 6091 036525 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 6092 036526 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 6093 036527 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 6094 036530 201 07 0 00 000040 MOVEI AC-1,40 ;ROUTINE WEIGHTING + 6095 036531 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 6096 036532 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 6097 036533 201 11 0 00 000001 MOVEI AC1,1 ;SETUP AC1 FOR MASK BIT. + 6098 036534 TDZN2: RANDOM^ + 6099 036534 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 6100 036535 270 10 0 00 037562 ADD AC,[142536475076] + 6101 036536 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 6102 036537 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 6103 036540 241 11 0 00 000001 ROT AC1,1 ;ROT AC1 TO TEST NEXT BIT. + 6104 036541 200 12 0 00 000011 TDZN3: MOVE AC2,AC1 ;SAVE MASK BIT. + 6105 036542 434 10 0 00 000011 IOR AC,AC1 ;SET MASK BIT IN RAN. + 6106 036543 632 11 0 00 000010 TDZE AC1,AC ;C(E) + C(AC) NOT = 0...NO SKIP. + 6107 036544 312 11 0 00 037563 CAME AC1,[0] ;C(AC) SHOULD = 0. + 6108 036545 001 10 0 00 000012 ERR AC,AC2 + 6109 036546 200 11 0 00 000012 MOVE AC1,AC2 ;RESTORE MASK BIT. + 6110 036547 636 11 0 00 000010 TDZN AC1,AC ;C(E) + C(AC) NOT = 0...SKIP. + 6111 036550 005 11 0 00 037577 ER AC1,[ASCII /TST/] + 6112 036551 312 11 0 00 037563 CAME AC1,[0] ;AC1 SHOULD HAVE GOTTEN CLEARED OUT. + 6113 036552 001 10 0 00 000012 ERR AC,AC2 + 6114 036553 200 11 0 00 000012 MOVE AC1,AC2 ;RESTORE MASK BIT. + 6115 LOOP TDZN2,TDZN3^ + 6116 036554 367 07 0 00 036534 SOJG AC-1,TDZN2 ;ITERATION COUNTER + 6117 036555 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 6118 036556 321 07 0 00 036541 JUMPL AC-1,TDZN3 ;LOOP ON ERROR SWITCH ^ + 6119 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 111 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0164 + + 6120 + 6121 ;TEST TDO TDOA. CHECK FOR SKIP/NO SKIP ANS CORRECT DATA + 6122 ;IN AC FOR RAN TO NOT RAN. + 6123 + 6124 000010 AC=10 + 6125 036557 TDOA1: SETUP 100,0^ + 6126 000011 AC1=&17 + 6127 000012 AC2=&17 + 6128 000013 AC3=&17 + 6129 000014 AC4=&17 + 6130 000015 AC5=&17 + 6131 000006 RAN1=&17 + 6132 036557 201 07 0 00 036557 MOVEI AC-1,. + 6133 036560 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 6134 036561 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 6135 036562 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 6136 036563 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 6137 036564 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 6138 036565 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 6139 036566 TDOA2: RANDOM^ + 6140 036566 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 6141 036567 270 10 0 00 037562 ADD AC,[142536475076] + 6142 036570 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 6143 036571 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 6144 036572 460 11 0 00 000010 TDOA3: SETCM AC1,AC ;MAKE "C(E)" = COMP OF RAN. + 6145 036573 670 10 0 00 000011 TDO AC,AC1 ;SHOULD NOT SKIP. + 6146 036574 312 10 0 00 037565 CAME AC,[-1] ;AC SHOULD HAVE ALL BITS SET. + 6147 036575 001 11 0 00 037667 ERR AC1,RAN + 6148 036576 200 10 0 00 037667 MOVE AC,RAN ;RESTORE AC. + 6149 036577 674 10 0 00 000011 TDOA AC,AC1 ;SHOULD SKIP. + 6150 036600 005 10 0 00 037577 ER AC,[ASCII /TST/] + 6151 036601 312 10 0 00 037565 CAME AC,[-1] ;AC SHOULD HAVE ALL BITS SET. + 6152 036602 001 11 0 00 037667 ERR AC1,RAN + 6153 LOOP TDOA2,TDOA3^ + 6154 036603 367 07 0 00 036566 SOJG AC-1,TDOA2 ;ITERATION COUNTER + 6155 036604 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 6156 036605 321 07 0 00 036572 JUMPL AC-1,TDOA3 ;LOOP ON ERROR SWITCH ^ + 6157 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 112 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0165 + + 6158 + 6159 ;TEST TDO,TDOA. CHECK SKIP/NO SKIP AND + 6160 ;CORRECT DATA IN AC FOR RAN TO RAN CONDITION. + 6161 + 6162 000002 AC=2 + 6163 036606 TDOAA: SETUP 40,0^ + 6164 000003 AC1=&17 + 6165 000004 AC2=&17 + 6166 000005 AC3=&17 + 6167 000006 AC4=&17 + 6168 000007 AC5=&17 + 6169 000000 RAN1=&17 + 6170 036606 201 01 0 00 036606 MOVEI AC-1,. + 6171 036607 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 6172 036610 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 6173 036611 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 6174 036612 201 01 0 00 000040 MOVEI AC-1,40 ;ROUTINE WEIGHTING + 6175 036613 240 01 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 6176 036614 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 6177 036615 TDOAB: RANDOM^ + 6178 036615 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 6179 036616 270 02 0 00 037562 ADD AC,[142536475076] + 6180 036617 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 6181 036620 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 6182 036621 670 02 0 00 000002 TDOAC: TDO AC,AC ;SHOULD NOT SKIP. + 6183 036622 254 00 0 00 036624 JRST .+2 + 6184 036623 005 02 0 00 037577 ER AC,[ASCII /TST/] ;TDO SKIPPED. + 6185 036624 674 02 0 00 000002 TDOA AC,AC ;SHOULD SKIP. + 6186 036625 005 02 0 00 037577 ER AC,[ASCII /TST/] + 6187 036626 312 02 0 00 037667 CAME AC,RAN ;C(AC) SHOULD NOT HAVE CHANGED. + 6188 036627 011 00 0 00 037667 EERR ,RAN + 6189 LOOP TDOAB,TDOAC^ + 6190 036630 367 01 0 00 036615 SOJG AC-1,TDOAB ;ITERATION COUNTER + 6191 036631 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 6192 036632 321 01 0 00 036621 JUMPL AC-1,TDOAC ;LOOP ON ERROR SWITCH ^ + 6193 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 113 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0166 + + 6194 + 6195 ;TEST TDO, TDOA. CHECK FOR SKIP/NO SKIP + 6196 ;AND CORRECT DATA IN AC FOR RAN1 TO RAN CONDITION. + 6197 + 6198 000002 AC=2 + 6199 036633 TDOB1: SETUP 400,3^ + 6200 000003 AC1=&17 + 6201 000004 AC2=&17 + 6202 000005 AC3=&17 + 6203 000006 AC4=&17 + 6204 000007 AC5=&17 + 6205 000000 RAN1=&17 + 6206 036633 201 01 0 00 036633 MOVEI AC-1,. + 6207 036634 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 6208 036635 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 6209 036636 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 6210 036637 201 01 0 00 000400 MOVEI AC-1,400 ;ROUTINE WEIGHTING + 6211 036640 240 01 1 00 030674 ASH AC-1,@CMPLXT+3 ;ROUTINE COMPLEXITY + 6212 036641 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 6213 036642 TDOB2: RANDOM^ + 6214 036642 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 6215 036643 270 02 0 00 037562 ADD AC,[142536475076] + 6216 036644 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 6217 036645 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 6218 036646 204 03 0 00 000002 TDOB3: MOVS AC1,AC ;MAKE AC1 ANOTHER RAN NUM. + 6219 036647 200 04 0 00 000002 MOVE AC2,AC ;SIMULATE + 6220 036650 430 04 0 00 000003 XOR AC2,AC1 ;A + 6221 036651 434 04 0 00 000002 IOR AC2,AC ;TDO INST. + 6222 036652 670 02 0 00 000003 TDO AC,AC1 ;SHOULD NOT SKIP. + 6223 036653 312 02 0 00 000004 CAME AC,AC2 ;C(AC) = SIM. ANS? + 6224 036654 001 03 0 00 037667 ERR AC1,RAN ;NO. + 6225 036655 200 02 0 00 037667 MOVE AC,RAN ;RESTORE AC. + 6226 036656 674 02 0 00 000003 TDOA AC,AC1 ;SHOULD SKIP. + 6227 036657 005 02 0 00 037577 ER AC,[ASCII /TST/] + 6228 036660 312 02 0 00 000004 CAME AC,AC2 ;C(AC) = SIM ANS? + 6229 036661 001 03 0 00 037667 ERR AC1,RAN ;NO. + 6230 LOOP TDOB2,TDOB3^ + 6231 036662 367 01 0 00 036642 SOJG AC-1,TDOB2 ;ITERATION COUNTER + 6232 036663 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 6233 036664 321 01 0 00 036646 JUMPL AC-1,TDOB3 ;LOOP ON ERROR SWITCH ^ + 6234 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 114 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0167 + + 6235 + 6236 ;TEST TDOE,TDON. ROT A MASK BIT IN E AND SET THAT + 6237 ;BIT IN AC BEFORE TDO. CHECK FOR SKIP/NO SKIP + 6238 ;AND PROPER DATA IN AC. + 6239 + 6240 000002 AC=2 + 6241 036665 TDOE1: SETUP 40,0^ + 6242 000003 AC1=&17 + 6243 000004 AC2=&17 + 6244 000005 AC3=&17 + 6245 000006 AC4=&17 + 6246 000007 AC5=&17 + 6247 000000 RAN1=&17 + 6248 036665 201 01 0 00 036665 MOVEI AC-1,. + 6249 036666 202 01 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 6250 036667 201 01 0 00 000001 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 6251 036670 202 01 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 6252 036671 201 01 0 00 000040 MOVEI AC-1,40 ;ROUTINE WEIGHTING + 6253 036672 240 01 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 6254 036673 240 01 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 6255 036674 201 03 0 00 000001 MOVEI AC1,1 ;SETUP A MASK BIT IN "E". + 6256 036675 TDOE2: RANDOM^ + 6257 036675 200 02 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 6258 036676 270 02 0 00 037562 ADD AC,[142536475076] + 6259 036677 241 02 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 6260 036700 447 02 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 6261 036701 241 03 0 00 000000 ROT AC1, ;ROT MASK BIT TO TEST NEXT BIT. + 6262 036702 434 02 0 00 000003 TDOE3: IOR AC,AC1 ;SET MASK BIT IN AC. + 6263 036703 200 04 0 00 000002 MOVE AC2,AC ;SAVE AC IN AC2. + 6264 036704 672 02 0 00 000003 TDOE AC,AC1 ;C(E) + C(AC) NOT = 0. NO SKIP. + 6265 036705 254 00 0 00 036707 JRST .+2 + 6266 036706 005 02 0 00 037577 ER AC,[ASCII /TST/];TDOE SKIPPED. + 6267 036707 676 02 0 00 000003 TDON AC,AC1 ;C(E) + C(AC) NOT = 0..SKIP. + 6268 036710 005 02 0 00 037577 ER AC,[ASCII /TST/] + 6269 036711 312 02 0 00 000004 CAME AC,AC2 ;C(AC) SHOULD NOT CHANGE. + 6270 036712 001 03 0 00 000004 ERR AC1,AC2 + 6271 LOOP TDOE2,TDOE3^ + 6272 036713 367 01 0 00 036675 SOJG AC-1,TDOE2 ;ITERATION COUNTER + 6273 036714 200 02 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 6274 036715 321 01 0 00 036702 JUMPL AC-1,TDOE3 ;LOOP ON ERROR SWITCH ^ + 6275 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 115 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0168 + + 6276 + 6277 ;TEST TDOE,TDON. ROT A MASK BIT IN E AND CLEAR THAT + 6278 ;BIT IN AC BEFORE TDO. CHECK FOR SKIP/NO SKIP + 6279 ;AND PROPER DATA IN AC. + 6280 + 6281 000003 AC=3 + 6282 036716 TDOEA: SETUP 40,0^ + 6283 000004 AC1=&17 + 6284 000005 AC2=&17 + 6285 000006 AC3=&17 + 6286 000007 AC4=&17 + 6287 000010 AC5=&17 + 6288 000001 RAN1=&17 + 6289 036716 201 02 0 00 036716 MOVEI AC-1,. + 6290 036717 202 02 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 6291 036720 201 02 0 00 000002 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 6292 036721 202 02 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 6293 036722 201 02 0 00 000040 MOVEI AC-1,40 ;ROUTINE WEIGHTING + 6294 036723 240 02 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 6295 036724 240 02 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 6296 036725 201 04 0 00 000001 MOVEI AC1,1 ;SETUP MASK BIT IN"E". + 6297 036726 TDOEB: RANDOM^ + 6298 036726 200 03 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 6299 036727 270 03 0 00 037562 ADD AC,[142536475076] + 6300 036730 241 03 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 6301 036731 447 03 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 6302 036732 241 04 0 00 000001 ROT AC1,1 ;ROT MASK BIT TO TEST NEXT BIT. + 6303 036733 420 03 0 00 000004 TDOEC: ANDCM AC,AC1 ;CLEAR MASK BIT IN AC. + 6304 036734 200 01 0 00 000003 MOVE RAN1,AC ;SAVE AC. + 6305 036735 200 05 0 00 000003 MOVE AC2,AC ;SIMULATE + 6306 036736 434 05 0 00 000004 IOR AC2,AC1 ;A TDO. + 6307 036737 672 03 0 00 000004 TDOE AC,AC1 ;C(E) + C(AC) = 0. SKIP. + 6308 036740 005 03 0 00 037577 ER AC,[ASCII /TST/] + 6309 036741 312 03 0 00 000005 CAME AC,AC2 ;C(AC) = SIM ANS? + 6310 036742 001 04 0 00 000001 ERR AC1,RAN1 ;NO. + 6311 036743 200 03 0 00 000001 MOVE AC,RAN1 ;RESTORE AC. + 6312 036744 676 03 0 00 000004 TDON AC,AC1 ;C(E) + C(AC) = 0..NO SKIP. + 6313 036745 312 03 0 00 000005 CAME AC,AC2 ;C(AC) = SIM. ANS? + 6314 036746 001 04 0 00 000001 ERR AC1,RAN1 ;NO. + 6315 LOOP TDOEB,TDOEC^ + 6316 036747 367 02 0 00 036726 SOJG AC-1,TDOEB ;ITERATION COUNTER + 6317 036750 200 03 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 6318 036751 321 02 0 00 036733 JUMPL AC-1,TDOEC ;LOOP ON ERROR SWITCH ^ + 6319 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 116 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0169 + + 6320 + 6321 ;TEST TDOE,TDON. ROT A MASK BIT IN AC AND CLEAR THAT + 6322 ;BIT IN E BEFORE TDO. CHECK FOR SKIP/NO SKIP + 6323 ;AND PROPER DATA IN AC. + 6324 + 6325 000004 AC=4 + 6326 036752 TDONA: SETUP 40,0^ + 6327 000005 AC1=&17 + 6328 000006 AC2=&17 + 6329 000007 AC3=&17 + 6330 000010 AC4=&17 + 6331 000011 AC5=&17 + 6332 000002 RAN1=&17 + 6333 036752 201 03 0 00 036752 MOVEI AC-1,. + 6334 036753 202 03 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 6335 036754 201 03 0 00 000003 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 6336 036755 202 03 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 6337 036756 201 03 0 00 000040 MOVEI AC-1,40 ;ROUTINE WEIGHTING + 6338 036757 240 03 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 6339 036760 240 03 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 6340 036761 201 05 0 00 000001 MOVEI AC1,1 ;SETUP A MASK BIT IN AC. + 6341 036762 TDONB: RANDOM^ + 6342 036762 200 04 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 6343 036763 270 04 0 00 037562 ADD AC,[142536475076] + 6344 036764 241 04 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 6345 036765 447 04 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 6346 036766 241 05 0 00 000001 ROT AC1,1 ;ROT BIT TO TEST NEXT BIT. + 6347 036767 200 06 0 00 000005 MOVE AC2,AC1 ;SAVE MASK BIT SO IN CASE + 6348 036770 200 05 0 00 000006 TDONC: MOVE AC1,AC2 ;OF ERROR IT CAN BE RESTORED. + 6349 036771 420 04 0 00 000005 ANDCM AC,AC1 ;CLEAR MASK BIT IN E. + 6350 036772 322 04 0 00 036762 JUMPE AC,TDONB ;REJECT IF C(AC) = 0. + 6351 036773 200 07 0 00 000004 MOVE AC3,AC ;SIMULATE + 6352 036774 434 07 0 00 000005 IOR AC3,AC1 ;TDO. + 6353 036775 672 05 0 00 000004 TDOE AC1,AC ;C(E) + C(AC) = 0...SKIP. + 6354 036776 005 05 0 00 037577 ER AC1,[ASCII /TST/];TDOE DID NOT SKIP. + 6355 036777 312 05 0 00 000007 CAME AC1,AC3 ;C(AC) SHOULD = SIM. ANS. + 6356 037000 001 04 0 00 000006 ERR AC,AC2 + 6357 037001 676 05 0 00 000004 TDON AC1,AC ;C(E) + C(AC) NOT = 0...SKIP. + 6358 037002 005 05 0 00 037577 ER AC1,[ASCII /TST/] + 6359 037003 312 05 0 00 000007 CAME AC1,AC3 ;C(AC) SHOULD = SIM. ANS. + 6360 037004 001 04 0 00 000006 ERR AC,AC2 + 6361 037005 200 05 0 00 000006 MOVE AC1,AC2 ;RESTORE AC. + 6362 LOOP TDONB,TDONC^ + 6363 037006 367 03 0 00 036762 SOJG AC-1,TDONB ;ITERATION COUNTER + 6364 037007 200 04 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 6365 037010 321 03 0 00 036770 JUMPL AC-1,TDONC ;LOOP ON ERROR SWITCH ^ + 6366 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 117 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0170 + + 6367 + 6368 ;TEST TDOE,TDON. ROT A MASK BIT IN AC AND SET + 6369 ;THAT BIT IN E BEFORE TDO. CHECK FOR SKIP/ NO SKIP + 6370 ;AND CORRECT DATA IN AC. + 6371 + 6372 000005 AC=5 + 6373 037011 TDON1: SETUP 40,0^ + 6374 000006 AC1=&17 + 6375 000007 AC2=&17 + 6376 000010 AC3=&17 + 6377 000011 AC4=&17 + 6378 000012 AC5=&17 + 6379 000003 RAN1=&17 + 6380 037011 201 04 0 00 037011 MOVEI AC-1,. + 6381 037012 202 04 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 6382 037013 201 04 0 00 000004 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 6383 037014 202 04 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 6384 037015 201 04 0 00 000040 MOVEI AC-1,40 ;ROUTINE WEIGHTING + 6385 037016 240 04 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 6386 037017 240 04 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 6387 037020 201 06 0 00 000001 MOVEI AC1,1 ;SETUP AC TO CONTAIN A MASK BIT. + 6388 037021 TDON2: RANDOM^ + 6389 037021 200 05 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 6390 037022 270 05 0 00 037562 ADD AC,[142536475076] + 6391 037023 241 05 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 6392 037024 447 05 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 6393 037025 241 06 0 00 000001 ROT AC1,1 ;ROT TO TEST NEXT BIT. + 6394 037026 200 07 0 00 000006 MOVE AC2,AC1 ;SAVE C(AC) SO IT CAN BE + 6395 037027 200 06 0 00 000007 TDON3: MOVE AC1,AC2 ;RESTORED IN CASE OF ERROR. + 6396 037030 434 05 0 00 000006 IOR AC,AC1 ;SET MASK BIT IN E. + 6397 037031 672 06 0 00 000005 TDOE AC1,AC ;C(E) + C(AC) NOT = 0...NO SKIP. + 6398 037032 254 00 0 00 037034 JRST .+2 + 6399 037033 005 06 0 00 037577 ER AC1,[ASCII /TST/];TDOE SKIPPED. + 6400 037034 676 06 0 00 000005 TDON AC1,AC ;C(E) + C(AC) NOT = 0...SKIP. + 6401 037035 005 06 0 00 037577 ER AC1,[ASCII /TST/] + 6402 037036 312 06 0 00 000005 CAME AC1,AC ;C(AC) SHOULD = C(E). + 6403 037037 001 05 0 00 000007 ERR AC,AC2 + 6404 037040 200 06 0 00 000007 MOVE AC1,AC2 ;RESTORE AC. + 6405 LOOP TDON2,TDON3^ + 6406 037041 367 04 0 00 037021 SOJG AC-1,TDON2 ;ITERATION COUNTER + 6407 037042 200 05 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 6408 037043 321 04 0 00 037027 JUMPL AC-1,TDON3 ;LOOP ON ERROR SWITCH ^ + 6409 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 118 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0171 + + 6410 + 6411 ;TEST TDC. CHECK FOR SKIP/NO SKIP AND CORRECT + 6412 ;DATA FOR NOT RAN TO RAN CONDITION. + 6413 + 6414 000006 AC=6 + 6415 037044 TDC1: SETUP 100,0^ + 6416 000007 AC1=&17 + 6417 000010 AC2=&17 + 6418 000011 AC3=&17 + 6419 000012 AC4=&17 + 6420 000013 AC5=&17 + 6421 000004 RAN1=&17 + 6422 037044 201 05 0 00 037044 MOVEI AC-1,. + 6423 037045 202 05 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 6424 037046 201 05 0 00 000005 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 6425 037047 202 05 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 6426 037050 201 05 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 6427 037051 240 05 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 6428 037052 240 05 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 6429 037053 TDC2: RANDOM^ + 6430 037053 200 06 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 6431 037054 270 06 0 00 037562 ADD AC,[142536475076] + 6432 037055 241 06 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 6433 037056 447 06 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 6434 037057 460 07 0 00 037667 TDC3: SETCM AC1,RAN ;MAKE C("E") = COMP. OF RAN. + 6435 037060 650 06 0 00 000007 TDC AC,AC1 ;NO SKIP. + 6436 037061 312 06 0 00 037565 CAME AC,[-1] ;C(AC) SHOULD = A -1. + 6437 037062 001 07 0 00 037667 ERR AC1,RAN + 6438 037063 474 04 0 00 000000 SETO RAN1, ;SET RAN1 FOR ERROR MESSAGE. + 6439 037064 650 06 0 00 000007 TDC AC,AC1 ;NO SKIP. + 6440 037065 312 06 0 00 037667 CAME AC,RAN ;C(AC) SHOULD = RAN AGAIN. + 6441 037066 001 07 0 00 000004 ERR AC1,RAN1 + 6442 LOOP TDC2,TDC3^ + 6443 037067 367 05 0 00 037053 SOJG AC-1,TDC2 ;ITERATION COUNTER + 6444 037070 200 06 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 6445 037071 321 05 0 00 037057 JUMPL AC-1,TDC3 ;LOOP ON ERROR SWITCH ^ + 6446 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 119 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0172 + + 6447 + 6448 ;TEST TDCA. CHECKING FOR SKIP/ NO SKIP AND + 6449 ;CORRECT DATA IN AC FOR NOT RAN TO RAN CONDITION. + 6450 + 6451 000010 AC=10 + 6452 037072 TDCA1: SETUP 100,0^ + 6453 000011 AC1=&17 + 6454 000012 AC2=&17 + 6455 000013 AC3=&17 + 6456 000014 AC4=&17 + 6457 000015 AC5=&17 + 6458 000006 RAN1=&17 + 6459 037072 201 07 0 00 037072 MOVEI AC-1,. + 6460 037073 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 6461 037074 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 6462 037075 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 6463 037076 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 6464 037077 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 6465 037100 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 6466 037101 TDCA2: RANDOM^ + 6467 037101 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 6468 037102 270 10 0 00 037562 ADD AC,[142536475076] + 6469 037103 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 6470 037104 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 6471 037105 460 11 0 00 037667 TDCA3: SETCM AC1,RAN ;MAKE C("E") = COMP OF RAN. + 6472 037106 650 10 0 00 000011 TDC AC,AC1 ;SHOULD NOT SKIP. + 6473 037107 254 00 0 00 037111 JRST .+2 + 6474 037110 005 10 0 00 037577 ER AC,[ASCII /TST/];TDC SKIPPED. + 6475 037111 654 10 0 00 000011 TDCA AC,AC1 ;SHOULD SKIP. + 6476 037112 005 10 0 00 037577 ER AC,[ASCII /TST/] + 6477 037113 312 10 0 00 037667 CAME AC,RAN ;TWO TDC'S SHOULD RETURN C(AC) + 6478 ;TO IT'S ORIGINAL VALUE. + 6479 037114 001 11 0 00 037667 ERR AC1,RAN + 6480 LOOP TDCA2,TDCA3^ + 6481 037115 367 07 0 00 037101 SOJG AC-1,TDCA2 ;ITERATION COUNTER + 6482 037116 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 6483 037117 321 07 0 00 037105 JUMPL AC-1,TDCA3 ;LOOP ON ERROR SWITCH ^ + 6484 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 120 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0173 + + 6485 + 6486 ;TEST TDCE. CHECKING FOR SKIP/NO SKIP AND + 6487 ;CORRECT DATA IN AC FOR RAN TO 0 CONDITION. + 6488 + 6489 000011 AC=11 + 6490 037120 TDCE1: SETUP 100,0^ + 6491 000012 AC1=&17 + 6492 000013 AC2=&17 + 6493 000014 AC3=&17 + 6494 000015 AC4=&17 + 6495 000016 AC5=&17 + 6496 000007 RAN1=&17 + 6497 037120 201 10 0 00 037120 MOVEI AC-1,. + 6498 037121 202 10 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 6499 037122 201 10 0 00 000010 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 6500 037123 202 10 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 6501 037124 201 10 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 6502 037125 240 10 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 6503 037126 240 10 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 6504 037127 TDCE2: RANDOM^ + 6505 037127 200 11 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 6506 037130 270 11 0 00 037562 ADD AC,[142536475076] + 6507 037131 241 11 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 6508 037132 447 11 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 6509 037133 403 12 0 00 000007 TDCE3: SETZB AC1,RAN1 ;CLEAR BOTH AC AND RAN1. + 6510 037134 652 12 0 00 000011 TDCE AC1,AC ;C(E) + C(AC) = 0. SKIP. + 6511 037135 005 12 0 00 037577 ER AC1,[ASCII /TST/] + 6512 037136 312 12 0 00 037667 CAME AC1,RAN ;C(AC) SHOULD = RAN. + 6513 037137 011 00 0 00 000007 EERR ,RAN1 + 6514 LOOP TDCE2,TDCE3^ + 6515 037140 367 10 0 00 037127 SOJG AC-1,TDCE2 ;ITERATION COUNTER + 6516 037141 200 11 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 6517 037142 321 10 0 00 037133 JUMPL AC-1,TDCE3 ;LOOP ON ERROR SWITCH ^ + 6518 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 121 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0174 + + 6519 + 6520 ;TEST TDCE,TDCN. CHECKING FOR SKIP/NO SKIP AND + 6521 ;CORRECT DATA IN AC FOR 0 TO RAN CONDITION. + 6522 + 6523 000011 AC=11 + 6524 037143 TDCEA: SETUP 100,0^ + 6525 000012 AC1=&17 + 6526 000013 AC2=&17 + 6527 000014 AC3=&17 + 6528 000015 AC4=&17 + 6529 000016 AC5=&17 + 6530 000007 RAN1=&17 + 6531 037143 201 10 0 00 037143 MOVEI AC-1,. + 6532 037144 202 10 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 6533 037145 201 10 0 00 000010 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 6534 037146 202 10 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 6535 037147 201 10 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 6536 037150 240 10 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 6537 037151 240 10 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 6538 037152 TDCEB: RANDOM^ + 6539 037152 200 11 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 6540 037153 270 11 0 00 037562 ADD AC,[142536475076] + 6541 037154 241 11 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 6542 037155 447 11 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 6543 037156 400 12 0 00 000000 TDCEC: SETZ AC1, ;CLEAR C(E). + 6544 037157 656 11 0 00 000012 TDCN AC,AC1 ;C(E) + C(AC) = 0...NO SKIP. + 6545 037160 254 00 0 00 037162 JRST .+2 + 6546 037161 005 11 0 00 037577 ER AC,[ASCII /TST/];TDCN SKIPPED. + 6547 037162 652 11 0 00 000012 TDCE AC,AC1 ;C(E) + C(AC) = 0. SKIP. + 6548 037163 005 11 0 00 037577 ER AC,[ASCII /TST/] + 6549 037164 312 11 0 00 037667 CAME AC,RAN ;C(AC) SHOULD STILL = RAN. + 6550 037165 001 12 0 00 037667 ERR AC1,RAN + 6551 LOOP TDCEB,TDCEC^ + 6552 037166 367 10 0 00 037152 SOJG AC-1,TDCEB ;ITERATION COUNTER + 6553 037167 200 11 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 6554 037170 321 10 0 00 037156 JUMPL AC-1,TDCEC ;LOOP ON ERROR SWITCH ^ + 6555 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 122 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0175 + + 6556 + 6557 ;TEST TDCE. CHECKING FOR SKIP/NO SKIP AND + 6558 ;CORRECT DATA IN AC FOR RAN TO -1 CONDITION. + 6559 + 6560 000010 AC=10 + 6561 037171 TDCE4: SETUP 100,0^ + 6562 000011 AC1=&17 + 6563 000012 AC2=&17 + 6564 000013 AC3=&17 + 6565 000014 AC4=&17 + 6566 000015 AC5=&17 + 6567 000006 RAN1=&17 + 6568 037171 201 07 0 00 037171 MOVEI AC-1,. + 6569 037172 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 6570 037173 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 6571 037174 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 6572 037175 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 6573 037176 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 6574 037177 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 6575 037200 TDCE5: RANDOM^ + 6576 037200 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 6577 037201 270 10 0 00 037562 ADD AC,[142536475076] + 6578 037202 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 6579 037203 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 6580 037204 322 10 0 00 037200 JUMPE AC,TDCE5 ;REJECT IF RAN = 0. + 6581 037205 477 11 0 00 000006 TDCE6: SETOB AC1,RAN1 ;SET C(AC) TO ALL ONES. + 6582 037206 460 12 0 00 000010 SETCM AC2,AC ;SIMULATE A TDC. + 6583 037207 652 11 0 00 000010 TDCE AC1,AC ;C(E) + C(AC) NOT = 0. NO SKIP. + 6584 037210 312 11 0 00 000012 CAME AC1,AC2 ;C(AC) = SIM.. ANS? + 6585 037211 001 10 0 00 000006 ERR AC,RAN1 ;NO. + 6586 LOOP TDCE5,TDCE6^ + 6587 037212 367 07 0 00 037200 SOJG AC-1,TDCE5 ;ITERATION COUNTER + 6588 037213 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 6589 037214 321 07 0 00 037205 JUMPL AC-1,TDCE6 ;LOOP ON ERROR SWITCH ^ + 6590 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 123 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0176 + + 6591 + 6592 ;TEST TDCE,TDCN. CHECKING FOR SKIP/NO SKIP AND + 6593 ;CORRECT DATA IN AC FOR -1 TO RAN CONDITION. + 6594 + 6595 000010 AC=10 + 6596 037215 TDCED: SETUP 100,0^ + 6597 000011 AC1=&17 + 6598 000012 AC2=&17 + 6599 000013 AC3=&17 + 6600 000014 AC4=&17 + 6601 000015 AC5=&17 + 6602 000006 RAN1=&17 + 6603 037215 201 07 0 00 037215 MOVEI AC-1,. + 6604 037216 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 6605 037217 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 6606 037220 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 6607 037221 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 6608 037222 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 6609 037223 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 6610 037224 TDCEE: RANDOM^ + 6611 037224 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 6612 037225 270 10 0 00 037562 ADD AC,[142536475076] + 6613 037226 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 6614 037227 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 6615 037230 322 10 0 00 037224 JUMPE AC,TDCEE ;REJECT IF RAN = 0. + 6616 037231 316 10 0 00 037565 CAMN AC,[-1] ;C(AC) = -1? + 6617 037232 254 00 0 00 037224 JRST TDCEE ;YES. REJECT. + 6618 037233 477 11 0 00 000006 TDCEF: SETOB AC1,RAN1 ;SET C(E) TO ALL ONES. + 6619 037234 652 10 0 00 000011 TDCE AC,AC1 ;C(E) + C(AC) NOT = 0. NO SKIP. + 6620 037235 254 00 0 00 037237 JRST .+2 + 6621 037236 005 10 0 00 037577 ER AC,[ASCII /TST/];TDCE SKIPPED. + 6622 037237 656 10 0 00 000011 TDCN AC,AC1 ;C(E) + C(AC) NOT = 0..SKIP. + 6623 037240 005 10 0 00 037577 ER AC,[ASCII /TST/] + 6624 037241 312 10 0 00 037667 CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + 6625 037242 001 06 0 00 037667 ERR RAN1,RAN + 6626 LOOP TDCEE,TDCEF^ + 6627 037243 367 07 0 00 037224 SOJG AC-1,TDCEE ;ITERATION COUNTER + 6628 037244 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 6629 037245 321 07 0 00 037233 JUMPL AC-1,TDCEF ;LOOP ON ERROR SWITCH ^ + 6630 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 124 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0177 + + 6631 + 6632 ;TEST TDCE. CHECKING FOR SKIP/NO SKIP AND + 6633 ;CORRECT DATA IN AC FOR RAN TO RAN CONDITION. + 6634 + 6635 000010 AC=10 + 6636 037246 TDCE7: SETUP 100,0^ + 6637 000011 AC1=&17 + 6638 000012 AC2=&17 + 6639 000013 AC3=&17 + 6640 000014 AC4=&17 + 6641 000015 AC5=&17 + 6642 000006 RAN1=&17 + 6643 037246 201 07 0 00 037246 MOVEI AC-1,. + 6644 037247 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 6645 037250 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 6646 037251 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 6647 037252 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 6648 037253 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 6649 037254 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 6650 037255 TDCE8: RANDOM^ + 6651 037255 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 6652 037256 270 10 0 00 037562 ADD AC,[142536475076] + 6653 037257 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 6654 037260 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 6655 037261 322 10 0 00 037255 JUMPE AC,TDCE8 ;REJECT IF RAN = 0. + 6656 037262 200 11 0 00 037667 TDCE9: MOVE AC1,RAN ;MAKE C("AC") = C("E"). + 6657 037263 652 11 0 00 000010 TDCE AC1,AC ;C(E) + C(AC) NOT = 0. NO SKIP. + 6658 037264 312 11 0 00 037563 CAME AC1,[0] ;C(AC) SHOULD = 0. + 6659 037265 001 10 0 00 000010 ERR AC,AC + 6660 LOOP TDCE8,TDCE9^ + 6661 037266 367 07 0 00 037255 SOJG AC-1,TDCE8 ;ITERATION COUNTER + 6662 037267 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 6663 037270 321 07 0 00 037262 JUMPL AC-1,TDCE9 ;LOOP ON ERROR SWITCH ^ + 6664 +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 125 +DAKBAM MAC 21-JAN-77 16:47 DIAGNOSTIC SECTION SEQ 0178 + + 6665 + 6666 ;TEST TDCE. CHECKING FOR SKIP/NO SKIP AND + 6667 ;CORRECT DATA IN AC FOR RAN TO NOT RAN. + 6668 + 6669 000010 AC=10 + 6670 037271 TDCEG: SETUP 100,0^ + 6671 000011 AC1=&17 + 6672 000012 AC2=&17 + 6673 000013 AC3=&17 + 6674 000014 AC4=&17 + 6675 000015 AC5=&17 + 6676 000006 RAN1=&17 + 6677 037271 201 07 0 00 037271 MOVEI AC-1,. + 6678 037272 202 07 0 00 030051 MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + 6679 037273 201 07 0 00 000007 MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + 6680 037274 202 07 0 00 037664 MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + 6681 037275 201 07 0 00 000100 MOVEI AC-1,100 ;ROUTINE WEIGHTING + 6682 037276 240 07 1 00 030671 ASH AC-1,@CMPLXT+0 ;ROUTINE COMPLEXITY + 6683 037277 240 07 1 00 030670 ASH AC-1,@RTIME ;RUN TIME CONTROLLER ^ + 6684 037300 TDCEH: RANDOM^ + 6685 037300 200 10 0 00 037667 MOVE AC,RAN# ;GENERATE PSEUDO RANDOM NUMBER + 6686 037301 270 10 0 00 037562 ADD AC,[142536475076] + 6687 037302 241 10 0 00 777777 ROT AC,-1 ;IN BOTH AC AND + 6688 037303 447 10 0 00 037667 EQVB AC,RAN ;REGISTER RAN ^ + 6689 037304 460 11 0 00 000010 TDCEI: SETCM AC1,AC ;MAKE C("AC") = TO COMP OF RAN. + 6690 037305 200 06 0 00 000011 MOVE RAN1,AC1 ;SAVE C(AC) IN CASE OF ERROR. + 6691 037306 652 11 0 00 000010 TDCE AC1,AC ;C(E) + C(AC) = 0. SKIP. + 6692 037307 005 11 0 00 037577 ER AC1,[ASCII /TST/] + 6693 037310 312 11 0 00 037565 CAME AC1,[-1] ;C(AC) SHOULD = -1. + 6694 037311 001 10 0 00 000006 ERR AC,RAN1 + 6695 LOOP TDCEH,TDCEI^ + 6696 037312 367 07 0 00 037300 SOJG AC-1,TDCEH ;ITERATION COUNTER + 6697 037313 200 10 0 00 037667 MOVE AC,RAN ;RESTORE RANDOM NUMBER + 6698 037314 321 07 0 00 037304 JUMPL AC-1,TDCEI ;LOOP ON ERROR SWITCH ^ + 6699 + 6700 + 6701 + 6702 037315 254 00 0 00 030057 JRST BEGEND ;REPEAT TEST +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 1 +UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0179 + + 6703 SUBTTL *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 + 6704 + 6705 ;THIS SUBROUTINE PROVIDES ERROR REPORTING THRU THE USE OF UUO'S. + 6706 + 6707 037316 202 00 0 00 037676 ERRMES: MOVEM 0,%ERAC0# ;SAVE AC0 + 6708 IFDEF EXCASB,> + 6715 037317 202 01 0 00 037677 MOVEM 1,%ERAC1# ;SAVE AC1 + 6716 037320 202 02 0 00 037700 MOVEM 2,%ERAC2# ;SAVE AC2 + 6717 037321 350 00 0 00 030053 AOS ERRTLS ;INCREMENT ERROR TOTALS + 6718 037322 550 00 0 00 030114 HRRZ 0,$SVUPC ;GET PC OF UUO + 6719 037323 316 00 0 00 030052 CAMN 0,ERRPC ;PC = PC OF LAST ERROR ? + 6720 037324 350 00 0 00 037665 AOS MICNT# ;YES, ADD 1 TO ERROR COUNT + 6721 037325 200 00 0 00 037665 MOVE 0,MICNT + 6722 037326 504 00 0 00 030114 HRL 0,$SVUPC + 6723 037327 336 00 0 00 030041 SKIPN KLFLG ;NOT KL10 + 6724 037330 332 00 0 00 030037 SKIPE USER ;AND NOT USER? + 6725 037331 254 00 0 00 037333 JRST .+2 + 6726 037332 7 004 14 0 00 000000 DATAO PI,0 ;YES, DISPLAY ERROR PC,ERROR COUNT + 6727 037333 402 00 0 00 037666 SETZM PROCED# ;CLEAR PROCEED FLAG + 6728 037334 037 10 0 00 000002 SWITCH + 6729 037335 603 00 0 00 040000 TLNE NOPNT ;PRINTOUT ? + 6730 037336 254 00 0 00 037522 JRST %ERRS1 ;NO, RESTORE AC'S AND RETURN + 6731 037337 200 01 0 00 030113 MOVE 1,$SVUUO + 6732 037340 242 01 0 00 777745 LSH 1,-^D27 + 6733 037341 202 01 0 00 037670 MOVEM 1,%ACS1A# ;SAVE UUO NUMBER + 6734 037342 200 00 0 00 037676 MOVE 0,%ERAC0 + 6735 037343 200 01 0 00 037677 MOVE 1,%ERAC1 + 6736 037344 335 00 1 00 037664 SKIPGE @ERRLOP ;ERR LOOP AC > OR = 0 ? + 6737 037345 254 00 0 00 037554 JRST %ERRS4 ;NO, SEE IF PRINT ALL + 6738 037346 402 00 0 00 037665 %ERMS1: SETZM MICNT ;CLEAR ERROR COUNT + 6739 037347 331 00 0 00 030043 SKIPL MONCTL ;DIAG MON OR SYS EXER ? + 6740 037350 254 00 0 00 037354 JRST .+4 ;NO, DON'T NEED TITLE + 6741 037351 336 00 0 00 037701 SKIPN %ERFST# ;FIRST ERROR ? + 6742 037352 037 04 0 00 000002 PNTNM ;YES, PRINT PROGRAM TITLE + 6743 037353 476 00 0 00 037701 SETOM %ERFST + 6744 037354 336 00 0 00 030047 SKIPN PASCNT ;FIRST PASS ? + 6745 037355 254 00 0 00 037361 JRST .+4 ;YES + 6746 PMSG <^TEST PASS COUNT = >^ + 6747 037356 037 02 0 00 037600 PSIXM [SIXBIT\^TEST PASS COUNT = _\]^ + 6748 037357 200 00 0 00 030047 MOVE PASCNT + 6749 037360 037 15 0 00 000000 PNTDEC + 6750 PMSG <^PC = >^ + 6751 037361 037 02 0 00 037604 PSIXM [SIXBIT\^PC = _\]^ + 6752 037362 550 00 0 00 030114 HRRZ 0,$SVUPC ;GET PC OF UUO + 6753 037363 202 00 0 00 030052 MOVEM 0,ERRPC ;SAVE FOR COMPARE + 6754 037364 037 06 0 00 000000 PNT6 ;PRINT UUO ADDRESS + 6755 XLIST + 6756 LIST +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 4 +UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0180 + + 6757 ;RELIABILITY FORMAT ERROR PRINTER + 6758 + 6759 037365 402 00 0 00 037702 %ERMS2: SETZM %RAND# ;CLEAR PNT C(RAN) FLAG + 6760 037366 200 01 0 00 037670 MOVE 1,%ACS1A + 6761 037367 301 01 0 00 000011 CAIL 1,11 ;UUO # 11-13 + 6762 037370 476 00 0 00 037702 SETOM %RAND ;YES, SET PNT C(RAN) FLAG + 6763 037371 620 01 0 00 000010 TRZ 1,10 ;MAKE UUO # 1-7 + 6764 037372 202 01 0 00 037670 MOVEM 1,%ACS1A + 6765 037373 200 02 0 00 030052 MOVE 2,ERRPC ;GET UUO ADDRESS + 6766 037374 200 02 0 02 777777 MOVE 2,-1(2) ;GET INST IN UUO-1 + 6767 037375 301 01 0 00 000004 CAIL 1,4 ;UUO # < THAN 4 ? + 6768 037376 200 02 0 00 030113 MOVE 2,$SVUUO ;YES, GET UUO + 6769 037377 202 02 0 00 037671 MOVEM 2,%CNTE# ;SAVE E ADDRESS + 6770 037400 200 02 0 00 037700 MOVE 2,%ERAC2 + 6771 037401 200 01 0 00 037677 MOVE 1,%ERAC1 + 6772 037402 200 00 0 00 037676 MOVE 0,%ERAC0 + 6773 037403 201 01 1 00 037671 MOVEI 1,@%CNTE ;GET ADRS FIELD OF UUO OR UUO-1 + 6774 037404 202 01 0 00 037672 MOVEM 1,%EE1# + 6775 037405 200 01 0 00 037677 MOVE 1,%ERAC1 + 6776 037406 200 01 1 00 037672 MOVE 1,@%EE1 ;GET C(E) + 6777 037407 202 01 0 00 037673 MOVEM 1,%EE1A# + 6778 037410 200 01 0 00 037677 MOVE 1,%ERAC1 + 6779 037411 201 01 1 00 030113 MOVEI 1,@$SVUUO ;GET ADDRESS FIELD OF UUO + 6780 037412 202 01 0 00 037674 MOVEM 1,%EE2# + 6781 037413 200 01 0 00 037670 MOVE 1,%ACS1A + 6782 037414 306 01 0 00 000003 CAIN 1,3 ;UUO # 3 ? + 6783 037415 254 00 0 00 037421 JRST .+4 ;YES + 6784 037416 200 01 0 00 037677 MOVE 1,%ERAC1 + 6785 037417 200 01 1 00 037674 MOVE 1,@%EE2 ;GET C(E) OF UUO + 6786 037420 202 01 0 00 037675 MOVEM 1,%EE2A# + 6787 037421 200 02 0 00 037670 MOVE 2,%ACS1A ;GET UUO # + 6788 037422 200 01 0 00 037671 MOVE 1,%CNTE + 6789 037423 242 01 0 00 777751 LSH 1,-27 ;GET AC NUMBER + 6790 037424 405 01 0 00 000017 ANDI 1,17 + 6791 037425 307 02 0 00 000005 CAIG 2,5 ;UUO # 6,7 OR 2 + 6792 037426 306 02 0 00 000002 CAIN 2,2 + 6793 037427 254 00 0 00 037476 JRST %ERR2 ;YES, GO PNT E AND C(E) +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 5 +UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0181 + + 6794 ;PRINT ERROR AC + 6795 + 6796 PMSG <^AC = >^ + 6797 037430 037 02 0 00 037606 PSIXM [SIXBIT\^AC = _\]^ + 6798 037431 200 00 0 00 000001 MOVE 0,1 + 6799 037432 037 02 0 00 000000 PNT2 ;PRINT AC NUMBER + 6800 PMSG <^C(AC)= >^ + 6801 037433 037 02 0 00 037610 PSIXM [SIXBIT\^C(AC)= _\]^ + 6802 037434 200 00 0 01 000000 MOVE 0,(1) ;GET C(AC) + 6803 037435 307 01 0 00 000002 CAIG 1,2 ;IS AC # = SAVED AC ? + 6804 037436 200 00 0 01 037676 MOVE 0,%ERAC0(1) ;YES, GET SAVED AC + 6805 037437 037 13 0 00 000000 %ERRB: PNTHW ;PRINT C(AC) OR UUO2 (E) + 6806 + 6807 ;PRINT ERROR INFO + 6808 + 6809 037440 306 02 0 00 000005 CAIN 2,5 ;UUO # 5 + 6810 037441 254 00 0 00 037512 JRST %ERR4 ;YES, GO PNT 'TST','SKP', OR ETC. + 6811 + 6812 PMSG <^COR = >^ + 6813 037442 037 02 0 00 037612 PSIXM [SIXBIT\^COR = _\]^ + 6814 037443 200 00 0 01 000000 MOVE 0,(1) ;GET C(AC) + 6815 037444 307 01 0 00 000002 CAIG 1,2 ;IS AC # = SAVED AC ? + 6816 037445 200 00 0 01 037676 MOVE 0,%ERAC0(1) ;YES, GET SAVED AC + 6817 037446 302 02 0 00 000002 CAIE 2,2 + 6818 037447 200 00 0 00 037673 MOVE 0,%EE1A ;UUO # 2, GET C(E) + 6819 037450 037 13 0 00 000000 PNTHW ;PRINT C(E) OR UUO2 C(AC) + 6820 037451 301 02 0 00 000004 CAIL 2,4 ;UUO # >3 ? + 6821 037452 254 00 0 00 037515 JRST %ERRC ;YES, RESTORE AC'S AND RETURN + 6822 + 6823 PMSG <^ ORIGINAL>^ + 6824 037453 037 02 0 00 037614 PSIXM [SIXBIT\^ ORIGINAL_\]^ +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 6 +UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0182 + + 6825 037454 200 01 0 00 030113 %ERRB1: MOVE 1,$SVUUO + 6826 037455 242 01 0 00 777751 LSH 1,-27 ;GET AC # OF UUO + 6827 037456 405 01 0 00 000017 ANDI 1,17 + 6828 PMSG <^C(AC)= >^ + 6829 037457 037 02 0 00 037610 PSIXM [SIXBIT\^C(AC)= _\]^ + 6830 037460 200 00 0 01 000000 MOVE 0,(1) ;GET C(AC) + 6831 037461 307 01 0 00 000002 CAIG 1,2 ;IS AC # = SAVED AC ? + 6832 037462 200 00 0 01 037676 MOVE 0,%ERAC0(1) ;YES, GET SAVED AC + 6833 037463 332 00 0 00 037702 SKIPE %RAND ;PRINT C(RAN) FLAG SET ? + 6834 037464 200 00 0 00 037667 MOVE 0,RAN# ;YES + 6835 037465 037 13 0 00 000000 PNTHW ;PRINT C(AC) OR C(RAN) + 6836 037466 306 02 0 00 000003 CAIN 2,3 ;UUO # 3 ? + 6837 037467 254 00 0 00 037476 JRST %ERR2 ;YES, PRINT E, RESTORE AC'S AND RETURN + 6838 037470 306 02 0 00 000007 CAIN 2,7 ;UUO # 7 ? + 6839 037471 254 00 0 00 037515 JRST %ERRC ;YES, BYPASS PRINTING C(E) + 6840 PMSG <^C(E) = >^ + 6841 037472 037 02 0 00 037617 PSIXM [SIXBIT\^C(E) = _\]^ + 6842 037473 200 00 0 00 037675 MOVE 0,%EE2A + 6843 037474 037 13 0 00 000000 PNTHW ;PRINT C(E) + 6844 037475 254 00 0 00 037515 JRST %ERRC + 6845 + 6846 037476 %ERR2: PMSG <^E = >^ + 6847 037476 037 02 0 00 037621 PSIXM [SIXBIT\^E = _\]^ + 6848 037477 200 00 0 00 037674 MOVE 0,%EE2 + 6849 037500 306 02 0 00 000002 CAIN 2,2 ;UUO # 2 ? + 6850 037501 200 00 0 00 037672 MOVE 0,%EE1 + 6851 037502 037 06 0 00 000000 PNT6 ;PRINT E OF UUO OR UUO-1 + 6852 037503 301 02 0 00 000006 CAIL 2,6 ;UUO 6 OR 7 ? + 6853 037504 254 00 0 00 037454 JRST %ERRB1 ;YES, GO PNT C(AC), C(E) AND RETURN + 6854 037505 306 02 0 00 000003 CAIN 2,3 ;UUO # 3 ? + 6855 037506 254 00 0 00 037515 JRST %ERRC ;YES, RESTORE AC'S AND RETURN + 6856 + 6857 PMSG <^C(E) = >^ + 6858 037507 037 02 0 00 037617 PSIXM [SIXBIT\^C(E) = _\]^ + 6859 037510 200 00 0 00 037673 MOVE 0,%EE1A ;GET C(E) + 6860 037511 254 00 0 00 037437 JRST %ERRB +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 7 +UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0183 + + 6861 ;PRINT ASCII COMMENT + 6862 + 6863 037512 551 00 1 00 030113 %ERR4: HRRZI 0,@$SVUUO + 6864 037513 037 00 0 00 000000 PNTA ;PRINT 'TST','SKP', OR ETC. + 6865 037514 254 00 0 00 037515 JRST %ERRC + 6866 + 6867 ;COMPLETE PRINTOUT + 6868 + 6869 037515 037 00 0 00 030242 %ERRC: PCRL + 6870 + 6871 XLIST + 6872 LIST + 6873 037516 254 00 0 00 037517 JRST %ERMORE + 6874 + 6875 > + 6876 LIST +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 8 +UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0184 + + 6877 ;RESTORE AC'S AND RETURN OR HALT + 6878 + 6879 037517 256 00 0 00 030101 %ERMORE:XCT ERMORE + 6880 037520 037 16 0 00 000002 PNTMGN ;PRINT MARGINS + 6881 037521 037 10 0 00 000002 SWITCH + 6882 + 6883 037522 037 07 0 00 000003 %ERRS1: TTALTM ;ALTMODE CHECK + 6884 037523 254 00 0 00 037527 JRST .+4 ;NONE + 6885 037524 201 00 0 00 037527 MOVEI .+3 ;SAVE CONT ADDRESS + 6886 037525 202 00 0 00 000130 MOVEM JOBOPC + 6887 037526 254 00 1 00 030063 JRST @ALTMGO ;PERFORM TRANSFER + 6888 037527 200 00 0 00 030046 MOVE CONSW + 6889 037530 603 00 0 00 002000 TLNE 0,ERSTOP ;HALT ON ERROR SWITCH SET ? + 6890 037531 037 14 0 00 000004 ERRHLT ;YES + 6891 037532 607 00 0 00 004000 TLNN 0,LOOPER ;LOOP ON ERROR SWITCH SET ? + 6892 037533 476 00 0 00 037666 SETOM PROCED ;NO, SET THE PROCEED FLAG + 6893 037534 603 00 0 00 010000 TLNE 0,DING ;RING BELL SWITCH SET ? + 6894 037535 037 01 0 00 000007 PBELL ;YES, GO RING BELL + 6895 + 6896 037536 200 02 0 00 037700 %ERRS2: MOVE 2,%ERAC2 ;RESTORE AC'S + 6897 037537 200 01 0 00 037677 MOVE 1,%ERAC1 + 6898 037540 476 00 1 00 037664 SETOM @ERRLOP ;SET C(ERR LOOP AC) TO -1 + 6899 037541 336 00 0 00 037666 SKIPN PROCED ;LOOP ON ERROR ? + 6900 037542 254 00 0 00 037552 JRST %ERRS5 ;YES + 6901 037543 350 00 1 00 037664 AOS @ERRLOP ;NO, INC C(ERR LOOP AC) + 6902 037544 350 00 1 00 037664 AOS @ERRLOP ;SO IT ='S 1 + 6903 037545 331 00 0 00 030043 SKIPL MONCTL ;UNDER DIAGNOSTIC MONITOR ? + 6904 037546 254 00 0 00 037552 JRST %ERRS5 ;NO, CONTINUE PROGRAM + 6905 037547 200 00 0 00 030053 MOVE 0,ERRTLS ;YES + 6906 037550 301 00 0 00 000005 CAIL 0,5 ;PRINTED ALLOWED ERRORS ? + 6907 037551 254 00 0 00 030061 JRST $BEND2 + 6908 + 6909 037552 200 00 0 00 037676 %ERRS5: MOVE 0,%ERAC0 ;NO, CONTINUE PROGRAM + 6910 IFDEF EXCASB,> + 6917 037553 254 00 0 00 030065 JRST UUOEXT + 6918 + 6919 037554 200 00 0 00 030046 %ERRS4: MOVE 0,CONSW + 6920 037555 607 00 0 00 001000 TLNN PALERS ;PRINT ALL ERRORS ? + 6921 037556 254 00 0 00 037522 JRST %ERRS1 ;NO + 6922 037557 254 00 0 00 037346 JRST %ERMS1 ;YES +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 1 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0185 + + 6923 SUBTTL *STOR* RESERVED STORAGE, JAN 18,1977 + 6924 + 6925 ;PROGRAM LITERALS + 6926 + 6927 XLIST + 6928 IFNDEF $LPAPER, + 6929 037560 LIT + 6930 037560 64 51 55 45 62 00 + 6931 037561 45 70 51 64 00 00 + 6932 037562 142536 475076 + 6933 037563 000000 000000 + 6934 037564 123 113 120 000 000 + 6935 037565 777777 777777 + 6936 037566 000000 000377 + 6937 037567 117 126 000 000 000 + 6938 037570 400000 000000 + 6939 037571 000000 000001 + 6940 037572 103 122 131 060 000 + 6941 037573 103 122 131 061 000 + 6942 037574 103 122 131 060 061 + 6943 037575 777777 000000 + 6944 037576 377777 777777 + 6945 037577 124 123 124 000 000 + 6946 037600 76 64 45 63 64 00 + 6947 037601 60 41 63 63 00 43 + 6948 037602 57 65 56 64 00 35 + 6949 037603 00 77 00 00 00 00 + 6950 037604 76 60 43 00 35 00 + 6951 037605 00 00 77 00 00 00 + 6952 037606 76 41 43 00 35 00 + 6953 037607 00 00 77 00 00 00 + 6954 037610 76 43 10 41 43 11 + 6955 037611 35 00 77 00 00 00 + 6956 037612 76 43 57 62 00 35 + 6957 037613 00 00 77 00 00 00 + 6958 037614 76 00 00 00 00 57 + 6959 037615 62 51 47 51 56 41 + 6960 037616 54 77 00 00 00 00 + 6961 037617 76 43 10 45 11 00 + 6962 037620 35 00 77 00 00 00 + 6963 037621 76 45 00 35 00 00 + 6964 037622 00 00 77 00 00 00 + 6965 LIST + 6966 037623 000000 000000 ENDSLD: 0 + 6967 + 6968 IFDEF DEBUG,< + 6969 037624 PATCH: BLOCK DEBUG ;PATCHING AREA + 6970 > + 6971 + 6972 ;PROGRAM VARIABLES + 6973 037664 VAR + 6974 + 6975 IFDEF PGMEND,< + 6976 037703 000000 000000 END: 0 + 6977 030000 END BEGIN > +DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION 0,2 MACRO %52(537) 17:24 21-JAN-77 PAGE 1-1 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0186 + + +NO ERRORS DETECTED + +PROGRAM BREAK IS 000000 +ABSLUTE BREAK IS 037704 +CPU TIME USED 00:32.099 + +11K CORE USED diff --git a/apps/pdp10/diags/ka10/dakba/DAKBAM.MAC.txt b/apps/pdp10/diags/ka10/dakba/DAKBAM.MAC.txt new file mode 100644 index 000000000..6a43e5130 --- /dev/null +++ b/apps/pdp10/diags/ka10/dakba/DAKBAM.MAC.txt @@ -0,0 +1,2310 @@ +;INITIALIZE UUO HANDLER + +START: PGMINT ;INITIALIZE SUBROUTINES + MOVE 0,RANDBS ;EXEC, SETUP RANDOM BASE + SKIPE USER ;USER, USE TIME OF DAY IN JIFFIES + CALL 0,[SIXBIT/TIMER/] + MOVEM 0,RAN ;SETUP RANDOM BASE + +;INITIALIZE COMPLEXITY TABLE + A=0 +STARTA: SETZM CMPLXT ;STORE A TABLE OF POWERS OF 2 + MOVEI 1,1 ;OR 0. + SWITCH + TLNN RELIAB ;FAST CYCLE SWITCH SET ? + SETZM 1 ;YES, STORE ZERO'S + REPEAT 7, +< MOVEM 1,CMPLXT+1+A + LSH 1,1 + A=A+1> +;INITIALIZE RUN TIME + + MOVEI 1,1 + TLNE RELIAB ;FAST CYCLE SWITCH SET ? + MOVEI 1,7 ;NO, MULTIPLY RUNNING TIME + MOVEM 1,RTIME ;STORE IN RTIME + + JRST CAM1 ;GO PERFORM DIAGNOSTIC + +RENTR1: DROPDV ;CLOSE LOGICAL OUTPUT FILE + CALL [SIXBIT .EXIT.] + +PGMNAM: ASCIZ/ +PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST 1 (DAKBA) +(COMPARES, SKIPS, EXCHANGES, BOOLE, ROTATES, TESTS, ETC.) +/ +;CONSTANTS + +RTIME: 0 +CMPLXT: BLOCK 20 +SUBTTL DIAGNOSTIC SECTION + LALL + +;TEST CAMN,CAME (SIMPLE) +;THE CONTENTS OF THE AC IS COMPARED WITH ITSELF +;AN ERROR WILL OCCUR IF CAMN SKIPS OR CAME FAILS TO SKIP +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) +;15 ACS ARE USED IN THE TEST + + AC=2 +CAM1: SETUP 20,0 + RANDOM +CAMNE1: REPEAT ^D10, +< MOVE AC,RAN + CAMN AC,AC ;C(AC) = C(AC) + CAME AC,AC + ERROR AC,AC ;CHECK CAME,CAMN + AC=&17 +> + AC=2 + LOOP CAMNE1-3,CAMNE1 + + +;TEST MOVE TO AC,FURTHER TEST OF CAME +;THE C(AC) IS COMPARED WITH THE CONTENTS OF THE RANDOM +;NUMBER GENERATOR. 15 ACS ARE USED IN THE TEST +;ERRORS ARE PRINTED IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=2 +MOVAC: SETUP 20,0 + RANDOM +MOVAC1: REPEAT ^D10, +< MOVE AC,RAN ;MOVE RAN INTO AC. + CAME AC,RAN ;RANDOM SHOULD EQUAL AC + ERROR AC,RAN ;IF NOT MOVE FAILED + CAME AC,RAN# ;IF AC=RAN CAME FAILED + ERROR AC,RAN# ;IF PREVIOUS WORKED,INHIBIT STORE + AC=&17 ;AC ON CAME FAILED +> + AC=2 + LOOP MOVAC1-3,MOVAC1 + +;TEST THE SKIP INST FOR NO SKIP,ABILITY TO LOAD +;AN AC,AC SELECTION,AND AC0 LOGIC(NOT LOADING 0) +;ERRORS ARE PRESENTED IN THE FORM(PC,AC,C(AC),CORRECT) + + AC=5 +SKP: SETUP 30,0 + RANDOM +SKP1: MOVE [0] ;DO NOT USE AC0 FOR SKIP + REPEAT ^D8, +< SKIP AC1,RAN# ;STORE IN AC,DO NOT SKIP,CHECK + CAME AC1,AC ;NEW AC AGAINST PREVIOUSLY + ERROR AC1,AC ;STORED AC. IF AC=AC+1(SKIP LOGIC) + CAME [0] ;IF NOT= STORE CYCLE + ERROR [0] ;IF 0 NONE ZERO ADDR/STORE + AC=&17 + AC1=&17 +> + AC=5 + LOOP SKP1-4,SKP1 + +;TEST SKIPA INST FOR PC INCREMENT,ABILITY TO LOAD AN AC, +;AC SELECTION AND AC0 LOGIC(NOT LOADING 0).ERRORS ARE +;PRESENTED IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=5 +SKPA: SETUP 30,0 + RANDOM +SKPA1: MOVE [0] ;DO NOT USE AC0 FOR SKIPA + REPEAT ^D8, +< SKIPA AC1,AC ;LOAD AC1 AND SKIP + ER AC,[ASCII /SKP/] ;FAILED TO SKIP. + CAME AC,RAN ;C(E) GET CHANGED? + ERROR AC,RAN ;YES. + CAME AC1,RAN ;AC GET LOADED WITH RAN? + ERROR AC1,RAN ;NO. + CAME 0,[0] ;C(AC0) STILL = 0? + ERROR [0] ;CHECK STORE CYCLE,AC ADDRESS + AC=&17 + AC1=&17 +> + AC=5 + LOOP SKPA1-4,SKPA1 + + +;TEST EXCH. BOTH AC AND E ARE AC'S. CHECK FOR +;CORRECT DATA IN AC AND C(E). +;C(E) = -1, C(AC) = RAN NUM. + + AC=5 +EXCH1: SETUP 200,0 +EXCH2: RANDOM +EXCH3: SETOB AC1,RAN1 ;MAKE C(E) = -1. + EXCH AC,AC1 ;DO THE EXCH. + CAME AC,RAN1 ;THE C(AC) SHOULD = ORIG C(E). + ERR RAN1,RAN + CAME AC1,RAN ;THE C(E) SHOULD = ORIG C(AC). + ERR RAN1,RAN + LOOP EXCH2,EXCH3 + + +;TEST SETCA FOR COMPLEMENT AC AND NOT STORING IN C(E) +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) +;SETCA DOES NOT NORMALLY CHANGE THE CONTENTS OF "E" + + AC=10 +BOLCA: REPEAT 2, +< SETUP 100,2 + RANDOM + MOVE AC2,[0] ;CLEAR AC2, USED TO INSURE + SETCA AC,AC2 ;SETCA DOES NOT STORE IN C(E) + CAMN AC,RAN# ;IF AC UNCHANGED CNTL PULSES + ERROR AC,RAN ;FOR INST SETCA FAILED + REPEAT 3, +< SETCA AC,AC2> + CAME AC,RAN# ;A TOTAL OF 4 COMPLEMENTS + ERROR AC,RAN ;SHOULD PRODUCE ORIGINAL NUM + CAME AC2,[0] ;IF SETCA STORED C(E) + ERROR AC2,[0] ;C(AC2) WILL NO LONGER BE 0. + LOOP .-16,.-15 + AC=AC+17 +> + +;TEST SETCAI ABILITY TO COMPLEMENT AC AND FAILURE TO FETCH C(E) +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT +;SETCA IS INDEXED FOR NOISE PURPOSES + + AC=5 +BOLCAI: SETUP 40,0 +BOLCA1: RANDOM +BOLCA2: REPEAT 4, +< MOVE AC1,AC ;MOVE RANDOM TO AN AC + SETCAI AC1,-1(AC) ;TWO COMP SHOULD PRODUCE + SETCAI AC1,777000(AC) ;ORIGINAL NUMBER + CAME AC1,AC ;SETCAI FAILED + ERROR AC1,AC + AC=&17 + AC1=&17 +> + AC=5 + LOOP BOLCA1,BOLCA2 + + +;TEST XOR TO ZERO,XOR 0 TO N,N TO N,-1 TO N +;THREE ACS ARE USED IN THE TEST +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT + + AC=1 +BOLX: REPEAT 3, +< SETUP 200,0 + RANDOM + MOVE AC,[0] ;CLEAR THE AC + XOR AC,RAN ;0 EXCLUSIVE ORED WITH + CAME AC,RAN ;RANDOM SHOULD = RANDOM + ERROR AC,RAN ;XOR FAILED + XOR AC,[0] ;ANY NUMBER XORED + CAME AC,RAN ;WITH THE NUMBER 0 + ERROR AC,RAN ;SHOULD REMAIN UNCHANGED + XOR AC,RAN ;ANY NUMBER XORED + CAME AC,[0] ;WITH ITSELF SHOULD + ERROR AC,[0] ;EQUAL 0 + XOR AC,[-1] ;SET AC TO ALL ONES + XOR AC,RAN ;AC SHOULD CONTAIN COMP OF RAN + XOR AC,[-1] ;RECOMPLEMENT AC TO ORIG + CAME AC,RAN ;CHECK FOR RANDOM + ERROR AC,RAN ;XOR FAILED + LOOP .-22,.-21 + AC=AC+1 +> + + +;TEST SETZI AND IOR. SETZI ABILITY TO CLEAR,IOR RAN TO 0, +;RANDOM TO RANDOM,RANDOM TO COMP RANDOM,0 TO RANDOM +;ERROR IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=5 +BOLZI: SETUP 100,0 + RANDOM +BOLZI1: REPEAT 2, +< MOVE AC,RAN# ;LOAD THE AC THEN + SETZI AC,(AC) ;TRY TO CLEAR IT,INDEX REDUNDANT + CAME AC,[0] ;IF NOT 0 + ERROR AC,[0] ;SETZI FAILED + IOR AC,RAN ;INCLUSIVE OR OF A + CAME AC,RAN ;NUMBER TO 0 SHOULD PRODUCE + ERROR AC,RAN ;THE NUMBER + IOR AC,RAN ;IOR SAME NUMBERS + CAME AC,RAN ;SHOULD HAVE NO EFFECT + ERROR AC,RAN ;ON AC.IOR FAILED + IOR AC,[0] ;IOR OF NO BITS SHOULD DO NOTHING + CAME AC,RAN + ERROR AC,RAN ;IOR FAILED + SETCA AC,0 + IOR AC,RAN ;INCLUSIVE OR OF COMP NUMBERS + CAME AC,[-1] ;SHOULD SET ALL BITS + ERROR AC,[-1] ;IOR FAILED + IOR AC,[-1] ;ALL BITS TO ALL BITS + CAME AC,[-1] ;PRODUCE ALL BITS + ERROR AC,[-1] + AC=&17 +> + AC=5 + LOOP BOLZI1-4,BOLZI1 + +;TEST AND FOR 0 TO 0,1 TO 1,0 TO 1,1 TO 0 +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=10 +BOLA: SETUP 400,0 + RANDOM +BOLA1: AND AC,RAN ;NUMBER AND NUMBeR + CAME AC,RAN ;SHOULD EQUAL NUMBER + ERROR AC,RAN ;IF NOT, "AND" FAILED. + AND AC,[-1] ;"AND" OF ALL BITS WITH + CAME AC,RAN ;ANY NUMBER SHOULD + ERROR AC,RAN ;LEAVE THE NUMBER UNCHANGED + SETCA AC, + AND AC,RAN ;"AND" OF A NUMBER WITH ITS + CAME AC,[0] ;COMPLEMENT SHOULD + ERROR AC,[0] ;PRODUCE 0 + LOOP BOLA1-4,BOLA1 + +;TEST ORCA AND SETO. 1 TO 0,1 TO 1, 0 TO 0, 1 TO 0,0 TO 1 +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) +;ONE AC IS USED FOR TESTING + + AC=12 +BOLOS: SETUP 300,0 + RANDOM +BOLOS1: SETO AC,. ;WILL CHANGE THIS INST IF FETCH/STORE C(E). + CAME AC,[-1] ;CHECK FOR ALL BITS SET + ERROR AC,[-1] ;SETO FAILED + ORCA AC,RAN ;-1 ORED TO RANDOM + CAME AC,RAN ;SHOULD PRODUCE RANDOM + ERROR AC,RAN ;IF AC COMP PROBELY + ORCA AC,RAN ;RANDOM TO RANDOM SHOULD + CAME AC,[-1] ;PRODUCE -1 + ERROR AC,[-1] ;IF AC COMPLEMENTED PROPERLY + ORCA AC,[0] ;WITH NO BITS EFFECT IC COMP AC + ORCA AC,RAN + CAME AC,[-1] ;NO BITS COMPLEMENTS TO PRODUCE + ERROR AC,[-1] ;ALL ONES + LOOP BOLOS1-4,BOLOS1 + + +;TEST ANDCA.1 TO 1,0 TO 0, 0 TO 1,0 TO 0,1 TO 1,1 TO 0 +;ERRORS ARE IN THE FORM(PC,AC,C(AC),CORRECT +;ONE AC IS USED + + AC=13 +BOLAC: SETUP 200,1 + RANDOM +BOLAC1: ANDCA AC,RAN ;ANDCA OF LIKE NUMBERS + CAME AC,[0] ;SHOULD PRODUCE 0 + ERROR AC,[0] ;ANDCA FAILED + ANDCA AC,RAN + CAME AC,RAN ;ANDCA OF ZERO AND NUMBER + ERROR AC,RAN ;SHOULD PRODUCE NUMBER + SETO AC,. ;SET ALL BITS + ANDCA AC,RAN + CAME AC,[0] ;ANDCA OF ALL BITS WITH NUMBER + ERROR AC,[0] ;SHOULD PRODUCE 0 + LOOP BOLAC1-4,BOLAC1 + + +;TEST EQV,1 TO 1,0 TO 0,1 TO 0,0 TO 1. EQV =(SET ALL LIKE BITS) +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=14 +BOLEQ: SETUP 200,2 + RANDOM +BOLEQ1: EQV AC,RAN ;WHEN NUMBERS ARE EQUAL + CAME AC,[-1] ;EQV SHOULD PRODUCE ALL + ERROR AC,[-1] ;BITS SET.EQV FAILED + EQV AC,RAN# + CAME AC,RAN ;WITH AC SET,EQV SHOULD + ERROR AC,RAN ;PRODUCE C(E) IN THE AC + SETZI AC,-1 + EQV AC,RAN ;WHEN AC=0 EQV SHOULD + SETCA AC,. ;PRODUCE COMPLEMENT OF + CAME AC,RAN ;C(E) + ERROR AC,RAN ;EQV FAILED + LOOP BOLEQ1-3,BOLEQ1 + + +;TEST SETM. SET THE CONTENTS OF MEMORY TO THE AC +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=10 +BOLSM: SETUP 100,0 + RANDOM +BOLSM1: REPEAT 2, +< SETM AC1,RAN ;THE NET RESULT OF SETM + CAME AC1,AC ;IS THE SAME AS MOVE + ERROR AC1,RAN ;SETM FAILED + AC=&17 + AC1=&17 +> + AC=10 + LOOP BOLSM1-4,BOLSM1 + +;TEST SETCM. (MOVE THE COMPLEMENT OF MEMORY TO AC) +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=14 +BOLCM: SETUP 100,0 + RANDOM +BOLCM1: SETCM AC1,RAN ;COMP OF RANDOM TO AC + SETCM AC2,AC1 ;RECOMP TO AC2 + CAME AC2,RAN + ERROR AC2,RAN ;SETCM 1 OR 2 FAILED + LOOP BOLCM1-3,BOLCM1 + + +;TEST ORCM. (INCLUSIVE OR THE CONTENTS OF COMPLEMENTED MEMORY +;TO THE CONTENTS OF AC.) ERRORS ARE IN THE FORM (PC,AC, +;C(AC),CORRECT + + AC=5 +BOLOC: SETUP 140,0 + RANDOM +BOLOC1: ORCM AC,RAN ;LIKE NUMBERS SHOULD PRODUCE + CAME AC,[-1] ;ALL BITS SET + ERROR AC,[-1] + ORCM AC,RAN ;ANY NUMBER ORED WITH ALL + CAME AC,[-1] ;ONES SHOULD PRODUCE + ERROR AC,[-1] ;ALL ONES + SETZI AC,-1 + ORCM AC,RAN ;THE RANDOM NUMBER IS + SETCA AC,. ;ORED TO 0. THIS SHOULD + CAME AC,RAN ;PRODUCE THE COMPLEMENT + ERROR AC,RAN ;OF RANDOM + ORCM AC,[-1] + CAME AC,RAN ;ORING -1 SHOULD LEAVE + ERROR AC,RAN ;AC UNCHANGED + LOOP BOLOC1-3,BOLOC1 + + +;TEST ANDCM (AND WITH THE COMP OF MEMORY) +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=10 +BOLAX: SETUP 140,0 + RANDOM +BOLAX1: ANDCM AC,RAN ;LIKE NUMBERS SHOULD + CAME AC,[0] ;PRODUCE 0 + ERROR AC,[0] ;ANDCM FAILED + ANDCM AC,RAN ;ANYTHING ANDED TO + CAME AC,[0] ;ZERO SHOULD = 0 + ERROR AC,[0] + SETO AC, + ANDCM AC,RAN ;AC SHOULD - COMP OF MEMORY + ANDCM AC,[0] ;AC SHOULD REMAIN UNCHANGED + XOR AC,[-1] ;COMP AC + CAME AC,RAN ;AFTER COMP SHOULD EQUAL + ERROR AC,RAN ;RANDOM. ANDCM FAILED + LOOP BOLAX1-3,BOLAX1 + + +;TEST ORCB (INCLUSIVE OR THE COMPLEMENT OF AC AND C(E)) +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=1 +BOLOB: SETUP 140,0 + RANDOM +BOLOB1: ORCB AC,RAN ;PRODUCE COMP OF RAN + ORCB AC,[-1] ;COMP AC + CAME AC,RAN ;CHECK ORCB + ERROR AC,RAN + ORCB AC,[-1] ;COMP AC + ORCB AC,RAN ;ANY TWO COMPLEMENTED NUMBERS + CAME AC,[-1] ;SHOULD PRODUCE ALL ONES + ERROR AC,[-1] + ORCB AC,[0] ;AC COMPLEMENTS TO 0 + CAME AC,[-1] + ERROR AC,[-1] ;ORCB FAILED + LOOP BOLOB1-4,BOLOB1 + + +;TEST ANDCB (AND WITH BOTH OPERANDS COMPLEMENTED) +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=2 +BOLAB: SETUP 140,0 + RANDOM +BOLAB1: ANDCB AC,RAN ;PRODUCE COMP OF RAN + ANDCB AC,[0] ;COMP AC + CAME AC,RAN ;CHECK FOR ORIGIONAL NUMBER + ERROR AC,RAN ;ANDCB FAILED + ANDCB AC,[0] ;COMPLEMENT AC + ANDCB AC,[0] ;RECOMPLEMENT AC + CAME AC,RAN ;SHOULD PRODUCE ORIGIONAL + ERROR AC,RAN ;ANDCB FAILED + ANDCB AC,[-1] ;RESULT SHOULD BE 0 IF + CAME AC,[0] ;CONTENTS OF E + ERROR AC,[0] ;CONTAINS NO BITS AFTER COMP + ANDCB AC,RAN ;AC SHOULD EQUAL COMP OF RAN + ANDCB AC,[0] ;COMP AC + CAME AC,RAN ;THE AND TO 0 + ERROR AC,RAN ;FAILED + LOOP BOLAB1-3,BOLAB1 + + +;TEST SETA (EFFECTIVELY A NO OPERATION IN THIS MODE) +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=3 +BOLSA: SETUP 100,0 + RANDOM + ;DO 7 SETA'S. +BOLSA1: REPEAT 7,< + SETA AC,.> + CAME AC,RAN ;C(AC) SHOULD = ORIG. C(AC) + ERROR AC,RAN + LOOP BOLSA1-3,BOLSA1 + + +;TEST IORM, WHERE E IS AN AC. THE INST IS TESTED +;FOR NOT STORING IN AC AS WELL AS STORING PROPERLY +;IN E. +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=11 +BMIOR: SETUP 100,1 +BMIOR1: RANDOM +BMIOR2: MOVS AC1,AC ;AC=C(E) ORIG + CAMN AC,AC1 ;HALVES SAME? + JRST BMIOR1 ;YES. REJECT. + SETCM AC ;SIM AN + AND AC1 ;IOR + XOR AC ;INST + IORM AC,AC1 ;RESULT TO AC1 + CAMN AC,AC1 ;BOTH SAME? + ERROR AC,AC1 ;YES. STORED IN AC. + CAME AC1,0 ;C(E) = SIM. ANS? + ERROR AC,0 ;NO. IORM FAILED. + LOOP BMIOR1,BMIOR2 + + +;TEST ORCAM, WHERE E IS AN AC. THE INSTRUCTION IS TESTED +;FOR NOT STORING IN AC AS WELL AS STORING PROPERLY IN C(E). +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=12 +BMICA: SETUP 100,1 +BMICA1: RANDOM +BMICA2: MOVS AC1,AC ;SECOND RANDOM NUMBER + SETCM AC2,AC1 ;MOVE COMPLEMENT OF NUMBER + SETCM AC ;SIMULATE + AND AC2 ;THE INSTRUCTION + XOR AC ;IN AC0. + ORCAM AC1,AC ;RESULT TO C(E) + CAMN AC1,AC ;EQUAL? + ERROR AC1,AC ;YES. STORED IN AC. + CAME AC,0 ;C(E) = SIM. ANS? + ERROR AC,0 ;NO. ORCAM FAILED. + LOOP BMICA1,BMICA2 + + +;TEST ORCMM, WHERE E IS AN AC. THE INSTRUCTION +;IS TESTED FOR NOT STORING IN AC AS WELL AS THE +;CORRECT ANSWER IN C(E). +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=13 +BMICM: SETUP 100,0 +BMICM1: RANDOM +BMICM2: MOVS AC1,AC ;SECOND RANDOM NUMBER + SETCM AC2,AC ;SIMULATE + SETCM AC1 ;THE + AND AC2 ;INSTRUCTION + XOR AC1 ;IN AC0 + CAMN 0,AC1 ;IS SIMULATED ANS + JRST BMICM1 ;= C(AC)?...REJECT. + ORCMM AC1,AC ;IF AC1 = AC, STORE INHIBIT + CAMN AC1,AC + ERROR AC1,AC ;FAILED. + CAME AC,0 ;C(E) SHOULD = SIM. ANS. + ERROR AC,0 ;ORCMM FAILED. + LOOP BMICM1,BMICM2 + + +;TEST ORCBM, WHERE E IS AN AC. THE INSTRUCTION +;IS TESTED FOR NOT STORING IN AC AS WELL AS THE +;CORRECT ANSWER IN C(E). +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=14 +BMICB: SETUP 200,0 +BMICB1: RANDOM +BMICB2: MOVS AC1,AC ;AC1= 0101,0011 + SETCM AC2,AC ;AC2= 1100,1010 + SETCM AC2 ;AC0 = 0011,0101 + ANDCM AC1 ;AC0 = 0010,0100 + XOR AC2 ;AC0 = 1110,1110 + ORCBM AC1,AC ;SHOULD PRODUCE SAME LOGIC + CAMN AC1,AC ;EQUAL? + ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + CAME AC,0 ;C(E) SHOULD = SIM. ANS. + ERROR AC,0 ;ORCBM FAILED. + LOOP BMICB1,BMICB2 + + +;TEST XORM, WHERE E IS AN AC. THE INSTRUCTION IS +;TESTED FOR NOT STORING AC AS WELL AS CONTENTS +;OF E CORRECTNESS. +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=10 +BMX: SETUP 200,1 +BMX1: RANDOM +BMX2: JUMPE AC,BMX1 ;REJECT IF RAN = 0. + MOVS AC1,AC ;SECOND RANDOM NUMBER. + SETCM AC + ANDCA AC1 ;PERFORM + MOVE AC2,AC ;A PSEUDO + IOR AC2,AC1 ;EXCLUSIVE + ANDCA AC2 ;OR INSTRUCTION + XORM AC1,AC ;DO THE XOR + CAMN AC1,AC ;EQUAL? + ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + CAME AC,0 ;C(E) SHOULD = SIM. ANS. + ERROR AC,0 ;XORM FAILED. + LOOP BMX1,BMX2 + + +;TEST EQVM, WHERE E IS AN AC. THE INSTRUCTION +;IS TESTED FOR NOT STORING AC AS WELL AS +;CORRECTNESS OF C(E). +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=10 +BMEQ: SETUP 100,0 +BMEQ1: RANDOM +BMEQ2: MOVS AC1,AC ;SECOND RANDOM NUMBER + SETCM AC1 ;EQV IS SAME LOGIC + XOR AC ;AS XOR WITH COMP AC + EQVM AC1,AC ;EQV SETS ALL LIKE BITS + CAMN AC1,AC ;EQUAL? + ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + CAME AC,0 ;C(E) SHOULD = SIM. ANS. + ERROR AC,0 ;EQVM FAILED. + LOOP BMEQ1,BMEQ2 + + + +;TEST ANDM, WHERE E IS AN AC. THE INSTRUCTION IS +;TESTED FOR NOT STORING IN AC AS WELL AS STORING +;PROPERLY IN C(E). +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=3 +BMAN: SETUP 100,0 +BMAN1: RANDOM +BMAN2: MOVS AC1,AC ;SECOND RANDOM NUMBER + MOVE AC ;SIMULATE + IOR AC1 ;AN "AND" + XOR AC1 ;INSTRUCTION. + XOR AC ;IN AC0 + CAMN AC1,AC ;REJECT THE NUMBER + JRST BMAN1 ;IF EQUAL. + ANDM AC1,AC ;THE INSTRUCTION + CAMN AC1,AC ;EQUAL? + ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + CAME AC,0 ;C(E) SHOULD = SIM. ANS. + ERROR AC,0 ;AND FAILED. + LOOP BMAN1,BMAN2 + + + +;TEST ANDCAM, WHERE E IS AN AC. THE INSTRUCTION IS +;TESTED FOR NOT STORING IN AN AC AS WELL AS +;STORING C(E) PROPERLY. +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=4 +BMACA: SETUP 100,0 +BMACA1: RANDOM +BMACA2: JUMPE AC,BMACA1 ;REJECT IF RAN = 0. + MOVS AC1,AC ;SECOND RANDOM NUMBER + SETM AC ;SIMULATE + ORCA AC1 ;ANDCA + SETCA ;LOGIC + ANDCAM AC1,AC ;THE INSTRUCTION + CAMN AC1,AC ;EQUAL? + ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + CAME AC,0 ;C(E) SHOULD = SIM. ANS. + ERROR AC,0 ;ANDCA FAILED. + LOOP BMACA1,BMACA2 + + +;TEST ANDCMM, WHERE E IS AN AC. THE INSTRUCTION IS +;TESTED FOR NOT STORING IN AN AC AS WELL AS +;STORING C(E) PROPERLY. +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=5 +BMACM: SETUP 100,0 +BMACM1: RANDOM +BMACM2: JUMPE AC,BMACM1 ;REJECT IF RAN = 0. + MOVS AC1,AC ;SECOND RANDOM NUMBER + SETAM AC1,0 ;AC1 TO AC0. + IOR AC ;SIMULATE + XOR AC ;THE INSTUCTION + CAMN 0,AC1 ;SIM ANS = C(AC)? + JRST BMACM1 ;YES. REJECT. + ANDCMM AC1,AC ;DO AN ANDCMM INSTRUCTION. + CAMN AC1,AC ;EQUAL? + ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + CAME AC,0 ;C(E) SHOULD = SIM. ANS. + ERROR AC,0 ;ANDCMM FAILED. + LOOP BMACM1,BMACM2 + + +;TEST ANDCBM, WHERE E IS AN AC. THE INSTRUCTION +;IS TESTED FOR NOT STORING IN AC AS WELL AS STORING +;PROPERLY IN C(E). +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=7 +BMACB: SETUP 100,0 +BMACB1: RANDOM +BMACB2: MOVS AC1,AC ;SECOND RANDOM NUMBER. + SETCM AC1 ;SIMULATE + SETCM 1,AC ;AN + AND 1 ;ANDCBM INST. + ANDCBM AC1,AC ;DO AN ANDCBM. + CAMN AC1,AC ;EQUAL? + ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + CAME AC,0 ;C(E) SHOULD = SIM. ANS. + ERROR AC,0 ;ANDCBM FAILED. + LOOP BMACB1,BMACB2 + + +;TEST SETCAM, WHERE E IS AN AC. THE INSTRUCTION +;IS TESTED FOR NOT STORING IN AC AS WELL AS +;PROPER C(E). +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=10 +BMCMM: SETUP 200,0 +BMCMM1: RANDOM +BMCMM2: MOVS AC1,AC ;CHECK FOR NO CHANGE + CAMN AC1,AC ;IN 8 COMPLEMENTS + JRST BMCMM1 ;REJECT IF HALF SAME. + + REPEAT 10,< + SETCMM AC1,AC> + CAMN AC1,AC ;EQUAL? + ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + CAME AC,RAN ;C(E) SHOULD = ORIG. C(E). + ERROR AC,RAN ;SETCMM FAILED. + LOOP BMCMM1,BMCMM2 + + + ;TEST SETCAM, WHERE E IS AN AC. TEST FOR NOT +;STORING IN AC AS WELL AS PROPER STORAGE IN C(E). +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=11 +BMCAM: SETUP 100,0 +BMCAM1: RANDOM +BMCAM2: MOVS AC1,AC ;SECOND RANDOM NUMBER. + SETCM AC1 ;SIMULATE SETCAM. + SETCAM AC1,AC ;DO SETCAM. + CAMN AC1,AC ;EQUAL? + ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + CAME AC,0 ;C(E) SHOULD = SIM. ANS. + ERROR AC,0 ;SETCAM FAILED. + LOOP BMCAM1,BMACM2 + + +;TEST SETAM, WHERE E IS AN AC. +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=10 +BMSA: SETUP 100,0 +BMSA1: RANDOM +BMSA2: MOVS AC1,AC ;SECOND RANDOM NUMBER + CAMN AC1,AC + JRST BMSA1 ;REJECT IF SAME. + SETAM AC,AC1 ;C(AC) TO C(AC1) + CAME AC,AC1 ;EQUAL? + ERROR AC,AC1 ;NO. + CAME AC1,RAN ;C(E) SHOULD = ORIG C(AC). + ERROR AC1,RAN ;SETAM FAILED. + LOOP BMSA1,BMSA2 + + +;TEST SETOM, WHERE E IS AN AC. +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=10 +BMSM: SETUP 100,0 +BMSM1: RANDOM +BMSM2: MOVS AC1,AC ;SECOND RANDOM NUMBER + SETOM AC1,AC ;DO SETOM INST. + CAMN AC1,AC ;EQUAL? + ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + CAME AC,[-1] ;C(E) SHOULD = A -1. + ERROR AC,[-1] ;SETOM FAILED. + LOOP BMSM1,BMSM2 + + +;TEST SETMM, WHERE E IS AN AC. +;ERRORS ARE IN THE FORM (PC, AC,C(AC),CORRECT) + + AC=10 +BMSMM: SETUP 100,0 +BMSMM1: RANDOM +BMSMM2: MOVS AC1,AC ;A SECOND RANDOM NUMBER + CAMN AC,AC1 ;REJECT IF + JRST BMSMM1 ;HALF SAME + ;DO 8 SETMM...SHOULD NOT CHANGE C(E). + REPEAT 10,< + SETMM AC1,AC> + CAMN AC1,AC ;EQUAL? + ERROR AC1,AC ;YES. INHIBIT STORE AC FAILED. + CAME AC,RAN ;C(E) SHOULD = ORIG. C(E). + ERROR AC,RAN ;SETMM FAILED. + LOOP BMSMM1,BMSMM2 + + +;TEST SETZM, WHERE E IS AN AC. TESTS FOR NOT STORING +;IN AC AS WELL AS STORING IN C(E) PROPERLY. + + AC=10 +SETZM1: SETUP 40,0 +SETZM2: RANDOM +SETZM3: JUMPE AC,SETZM2 ;REJECT IF C(AC) = 0. + SETOB AC1,RAN1 ;SET C(AC) TO ALL ONES. + SETZM AC1,AC ;DO SETZM + CAME AC,[0] ;DID AC GET CLEARED? + EERR ,RAN1 ;NO. + CAME AC1,[-1] ;DOES C(AC1) STILL = -1? + EERR ,RAN1 ;NO. + LOOP SETZM2,SETZM3 + + +;TEST ROT LEFT 3X(2X18). CHECKING FOR AC1 NOT CHANGED +;AS WELL AS C(AC) BEING THE PROPER NUMBER. +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=10 +ROTL2: SETUP 200,2 +ROTL2A: RANDOM +ROTL2B: SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + ;DO 6 X (ROT LEFT 18 PLACES). + REPEAT 3,< + ROT AC,22 + ROT AC,22> + CAME AC,RAN ;C(AC)SHOULD = C(AC) BEFORE ROT. + EERRI ,22 + CAME AC1,[-1] ;AC1 SHOULD NOT HAVE CHANGED. + ERR RAN1,22 + LOOP ROTL2A,ROTL2B + +;TEST ROT RIGHT 3X(2X18)..CHECKING FOR AC1 NOT +;CHANGED AS WELL AS C(AC) ENDING UP BEING +;THE SAME AS IT WAS BEFORE THE ROT. +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=10 +ROTR2: SETUP 300,2 +ROTR2A: RANDOM +ROTR2B: SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + ;DO 6 X (ROT RIGHT 18 PLACES). + REPEAT 3,< + ROT AC,-22 + ROT AC,-22> + CAME AC,RAN ;C(AC) SHOULD = C(AC) BEFORE ROT. + EERR ,-22 + CAME AC1,[-1] ;C(AC1) SHOULD STILL = -1. + ERRI RAN1,-22 + LOOP ROTR2A,ROTR2B + + +;TEST ROT LEFT 3X36. CHECKING FOR AC1 NOT +;CHANGED AND C(AC) = WHAT IT WAS BEFORE +;ROT. +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=2 +RTL36: SETUP 300,2 +RTL36A: RANDOM +RTL36B: SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + ;DO 3 X (ROT LEFT 36 PLACES). + REPEAT 3,< + ROT AC,44> + CAME AC,RAN ;C(AC) SHOULD = C(AC) BEFORE ROT. + EERRI ,44 + CAME AC1,[-1] ;C(AC1) SHOULD STILL = -1. + ERRI RAN1,44 + LOOP RTL36A,RTL36B + + +;TEST ROT RIGHT 3X36. CHECKING FOR AC1 NOT +;CHANGED AND C(AC) = WHAT IT DID BEFORE ROT. +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=2 +RTR36: SETUP 300,2 +RTR36A: RANDOM +RTR36B: SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + ;DO 3 X (ROT RIGHT 36 PLACES). + REPEAT 3,< + ROT AC,-44> + CAME AC,RAN ;C(AC) SHOULD = RAN. + EERRI ,-44 + CAME AC1,[-1] ;C(AC1) SHOULD STILL = -1. + ERRI RAN1,-44 + LOOP RTR36A,RTR36B + + +;TEST ROTC LEFT 3X36 THROUGH ALL AC'S CHECKING +;FOR C(AC) AND C(AC1) BEING EXCHANGED +;AFTER THE ROTC. +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=2 +RTCL: SETUP 100,2 +RTCLA: RANDOM + +RTCLB: REPEAT ^D10,< + MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + ;DO 3 X (ROTC LEFT 36 PLACES). + REPEAT 3,< + ROTC AC,44> + CAME AC1,RAN ;C(AC1) SHOULD = RAN. + EERRI ,44 + CAME AC,[-1] ;C(AC) SHOULD = A -1. + ERRI RAN1,44 + AC=&17 + AC1=&17 +> + AC=2 + LOOP RTCLA,RTCLB + + +;TEST ROTC RIGHT 3X36 THROUGH ALL AC'S. CHECKING +;FOR C(AC) AND C(AC1) BEING EXCHANGED. +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=2 +RTCR: SETUP 100,2 +RTCRA: RANDOM + +RTCRB: REPEAT ^D10,< + MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + ;DO 3 X (ROTC RIGHT 36 PLACES). + REPEAT 3,< + ROTC AC,-44> + CAME AC1,RAN ;C(AC1) SHOULD = C(AC) BEFORE ROTC. + EERRI ,-44 + CAME AC,[-1] ;C(AC) SHOULD = C(AC1) BEFORE ROTC. + ERRI RAN1,-44 + AC=&17 + AC1=&17 +> + AC=2 + LOOP RTCRA,RTCRB + + +;TEST ROT. ROT A RANDOM NUMBER A RANDOM NUMBER OF TIMES +;IN ONE DIRECTION AND THEN THE SAME NUMBER OF TIMES +;IN THE OPPOSITE DIRECTION. +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT). + + AC=2 +ROTLR: SETUP 100,4 +ROTLR1: RANDOM + MOVE AC3,RAN ;CHECK TO SEE + AND AC3,[377] ;THAT THE RIGHT MOST 8 BITS + JUMPE AC3,ROTLR1 ;DO NOT = 0..REJECT IF THEY DO. +ROTLR2: MOVN AC2,RAN ;PUT 2'S COMP OF RAN INTO AC2. + SETOB AC1,RAN1 ;SET AC+1 TO ALL ONES. + ROT AC,(AC) ;ROT AC A RANDOM NUMBER OF TIMES. + ROT AC,(AC2) ;ROT AC THE SAME NUM OF TIMES + ;IN THE OPPOSITE DIRECTION. + CAME AC,RAN ;C(AC) SHOULD STILL = C(RAN). + ERROR AC,RAN + CAME AC1,[-1] ;C(AC1) SHOULD STILL = -1. + ERROR AC1,[-1] + LOOP ROTLR1,ROTLR2 + + +;TEST ROTC. DO A ROTC WITH A RANDOM NUMBER A RANDOM +;NUMBER OF TIMES IN ONE DIRECTION AND THEN THE SAME +;NUMBER OF TIMES IN THE OPPOSITE DIRECTION. +;REPEAT THIS TEST FOR ALL AC'S. +;ERRORS ARE IN THE FORM (PC,AC,C(AC),CORRECT) + + AC=2 +RTCLR: SETUP 200,3 +RTCLR1: RANDOM + MOVE AC3,RAN ;CHECK TO SEE + AND AC3,[377] ;THAT THE RIGHT MOST 8 BITS + JUMPE AC3,RTCLR1 ;DO NOT = 0..REJECT IF THEY DO. + +RTCLR2: REPEAT ^D10,< + MOVE AC,RAN ;MOVE A RAN NUM INTO AN AC. + MOVN AC2,RAN ;MOVE THE 2'S COMP INTO ANOTHER AC. + SETO AC1, ;SET AC1 TO ALL ONES. + ROTC AC,(AC) ;ROTC AC A RANDOM NUMBER OF + ;TIMES IN ONE DIRECTION. + ROTC AC,(AC2) ;ROTC AC THE SAME NUMBER OF + ;TIMES IN THE OPPOSITE DIRECTION. + CAME AC,RAN ;C(AC) SHOULD STILL = RAN. + ERROR AC,RAN + CAME AC1,[-1] ;C(AC1) SHOULD STILL =-1 + ERROR AC1,[-1] + AC=&17 + AC1=&17 + AC2=&17 + +> + AC=2 + LOOP RTCLR1,RTCLR2 + + +;TEST OVERFLOW ON A ROT LEFT...AROV SHOULD NOT COME UP. + + AC=2 +ROTOV: SETUP 20,0 +ROTOV1: RANDOM +ROTOV2: JUMPE AC,ROTOV1 ;REJECT IF RAN = 0. + CAMN AC,[-1] ;ALSO REJECT IF RAN = -1. + JRST ROTOV1 + JFCL 10,.+1 ;CLEAR OV FLAG. + ROT AC,256 ;ROT C(AC) 256 TIMES. + JFCL 10,.+2 ;OV FLAG GET SET? + JRST .+2 ;NO. + ER AC,[ASCII /OV/] ;YES. SHOULD NOT SET ON A ROT. + LOOP ROTOV1,ROTOV2 + + +;TEST OVERFLOW FLAG ON A ROT RIGHT...SHOULD NEVER GET SET. + + AC=3 +RTROV: SETUP 20,0 +RTROV1: RANDOM +RTROV2: JUMPE AC,RTROV1 ;REJECT IF RAN = 0. + CAMN AC,[-1] ;ALSO REJECT IF RAN = -1. + JRST RTROV1 + JFCL 10,.+1 ;CLEAR OVERFLOW FLAG. + ROT AC,-256 ;ROT AC RIGHT 256 TIMES. + JFCL 10,.+2 ;OVERFLOW FALG GET SET? + JRST .+2 ;NO. + ER AC,[ASCII /OV/] + LOOP RTROV1,RTROV2 + + +;TEST MOVEM. AFTER FOLLOWED BY +;, C(AC) SHOULD = ORIG C(AC). +;RAN TO RAN1. + + AC=2 +MVEM1: SETUP 30,0 +MVEM2: RANDOM + ;DO 3 SETS OF MOVEM'S. +MVEM3: REPEAT 3,< + MOVEM AC,AC1 + MOVEM AC1,AC> + CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + ERROR AC,RAN + CAME AC1,RAN ;C(AC1) SHOULD ALSO = ORIG. C(AC). + ERROR AC1,RAN + LOOP MVEM2,MVEM3 + + +;TEST MOVES. AFTER 6 MOVES IN A ROW, THE C(E) +;SHOULD = ORIG C(E). + + AC=2 +MVES1: SETUP 200,1 +MVES2: RANDOM + ;DO 6 MOVE INSTRUCTIONS. +MVES3: REPEAT 3,< + MOVES AC1,AC + MOVES AC1,AC> + CAME AC1,AC ;C(AC) SHOULD = C(E). + ERROR AC1,AC + CAME AC,RAN ;C(E) SHOULD = ORIG C(E). + ERROR AC,RAN + LOOP MVES2,MVES3 + + +;TEST MOVS INSTRUCTION...TWO MOVS SHOULD GIVE SAME NUMBER. + + AC=4 +MOVSA: SETUP 200,2 +MOVSB: RANDOM + ;DO 6 MOVS INSTRUCTIONS. +MOVSC: REPEAT 3,< + MOVS AC,AC + MOVS AC,AC> + CAME AC,RAN ;C(AC) SHOULD STILL = RAN. + EERR ,RAN + LOOP MOVSB,MOVSC + + +;TEST MOVS INSTRUCTION...MOVS FOLLOWED BY ROT SHOULD GIVE +;SAME NUMBER. + + AC=5 +MOVS1: SETUP 200,1 +MOVS2: RANDOM +MOVS3: MOVS AC,AC ;DO MOVS INSTRUCTION. + ROT AC,22 ;ROT LEFT 18 PLACES. + CAME AC,RAN ;C(AC) SHOULD NOW = RAN. + EERR ,RAN + LOOP MOVS2,MOVS3 + + +;TEST MOVSM....TWO MOVSM SHOULD GIVE THE ORIG. NUM. + + AC=6 +MOVSMA: SETUP 300,1 +MOVSMB: RANDOM + +MOVSMC: REPEAT 3,< + MOVSM AC,AC1 + MOVSM AC1,AC> + CAME AC,RAN ;C(AC) SHOULD NOW BE = TO RAN. + ERROR AC,RAN + LOOP MOVSMB,MOVSMC + + +;TEST MOVSS...TWO MOVSS SHOULD GIVE THE ORIGINAL NUMBER. + + AC=7 +MOVSSA: SETUP 200,0 +MOVSSB: RANDOM +MOVSSC: SETZB 0,RAN1 ;CLEAR AC0. + + REPEAT 3,< + MOVSS AC + MOVSS AC> + CAME AC,RAN ;C(AC) SHOULD NOW BE = TO RAN. + EERR ,RAN1 + CAME [0] ;C(AC0) SHOULD STILL = 0. + EERR ,RAN1 + LOOP MOVSSB,MOVSSC + + +;TEST MOVSI. + + AC=10 +MOVSIA: SETUP 100,0 +MOVSIB: RANDOM + MOVE AC2,RAN ;PUT RAN INTO AN AC. +MOVSIC: ANDI AC,-1 ;SIMULATE + ROT AC,22 ;A MOVSI INST. + MOVSI AC1,(AC2) ;DO MOVSI. + CAME AC1,AC ;C(AC1) SHOULD = SIM. ANS. + ERROR AC1,AC + LOOP MOVSIB,MOVSIC + + +;TEST LSH. SIMULATE A LSH 18 PLACES WITH A MOVSI. + + AC=11 +LSHA: SETUP 200,1 +LSHB: RANDOM +LSHC: SETO AC1, ;SET AC+1 TO ALL ONES. + MOVSI AC2,(AC) ;SIMULATE LSH 18 PLACES. + LSH AC,22 ;DO LSH + CAME AC,AC2 ;C(AC) SHOULD = SIM. ANS. + ERROR AC,AC2 + CAME AC1,[-1] ;AC1 GET CHANGED? + ERROR AC1,[-1] ;YES. + LOOP LSHB,LSHC + + +;TEST LSH RIGHT 18 PLACES. + + AC=10 +LSH1: SETUP 200,1 +LSH2: RANDOM +LSH3: SETOB AC1,RAN1 ;SET C(AC+1) TO ALL ONES. + LSH AC,-22 ;DO LSH RIGHT 18 PLACES. + MOVS AC2,RAN ;SIMULATE + ANDI AC2,-1 ;LSH. + CAME AC,AC2 ;C(AC) SHOULD = SIM. ANS. + EERRI ,-22 + CAME AC1,[-1] ;C(AC+1) GET CHANGED? + ERRI RAN1,-22 + LOOP LSH2,LSH3 + + +;TEST ASH ABILITY TO SET OR NOT SET OVERFLOW FLAG. + + AC=10 +ASHOV: SETUP 30,0 +ASHOV1: SETO AC, ;SET AC TO ALL ONES..1,1 CONDITION. + JFCL 10,.+1 ;CLEAR OV FLAG. + ASH AC,1 ;DO ASH. + JFCL 10,.+2 ;OVERFLOW FLAG GET SET? + JRST .+2 ;NO. + ER AC,[ASCII /OV/] ;YES. 1,1 CONDITION SHOULD NOT SET IT. + JFCL 10,.+1 ;CLEAR OV FLAG. + SETZ AC, ;CLEAR AC...0,0 CONDITION. + ASH AC,1 ;DO ASH. + JFCL 10,.+2 ;OVERFLOW FLAG GET SET? + JRST .+2 ;NO. + ER AC,[ASCII /OV/] ;YES. 0,0 COND. SHOULDN'T SET IT. + JFCL 10,.+1 ;CLEAR OV FLAG. + MOVSI AC,377777 ;SET AC FOR 0,1 CONDITION. + ASH AC,1 ;DO ASH. + JFCL 10,.+2 ;OVERFLOW FLAG GET SET? + ER AC,[ASCII /OV/] ;NO. 0,1 COND. SHOULD SET IT. + JFCL 10,.+1 ;CLEAR OV FLAG. + MOVSI AC,400000 ;SET AC FOR 1,0 CONDITION. + ASH AC,1 ;DO ASH. + JFCL 10,.+2 ;OV FLAG GET SET? + ER AC,[ASCII /OV/] ;NO. 1,0 COND. SHOULD SET IT. + LOOP ASHOV1,ASHOV1 + + +;TEST ASH. DO ASH RIGHT 36 PLACES WITH ORIG. +;C(AC) = 400000000000. AFTER ASH THE C(AC) SHOULD = A -1. + + AC=10 +ASH1: SETUP 20,0 +ASH2: MOVE AC,[XWD 400000,0] ;MAKE C(AC) = ALL 0'S WITH SIGN BIT SET. + ASH AC,-44 ;DO ASH RIGHT 36 PLACES...SIGN + CAME AC,[-1] ;BIT SHOULD HAVE SET ALL BITS TO A ONE. + ERROR AC,[-1] + LOOP ASH2,ASH2 + + +;TEST ASH. DO ASH LEFT 36 PLACES WITH ORIG. C(AC) = +;TO A -1. AFTER ASH THE C(AC) SHOULD = THE SIGN +;BIT SET AND THE REST ZEROS. + + AC=11 +ASH3: SETUP 20,0 +ASH4: MOVE AC,[-1] ;MAKE C(AC) = A -1. + ASH AC,44 ;DO ASH LEFT 36 PLACES..0'S GOING + CAME AC,[XWD 400000,0] ;INTO BIT 35 SHOULD JUST LEAVE SIGN BIT SET. + ERROR AC,[0] + LOOP ASH4,ASH4 + + +;TEST ADD. RAN TO 0 CONDITION. + + AC=10 +ADD1: SETUP 100,0 +ADD2: RANDOM +ADD3: SETZ AC, ;CLEAR AC. + ADD AC,RAN ;ADD RAN TO 0. + CAME AC,RAN ;C(AC) SHOULD = RAN NUM. + ERROR AC,RAN + LOOP ADD2,ADD3 + + +; TEST ADD. 0 TO RAN CONDITION. + + AC=10 +ADD1A: SETUP 100,0 +ADD2A: RANDOM + ;ADD A CONSTANT 0 TO RAN 5 TIMES. +ADD3A: REPEAT 5,< + ADD AC,[0]> + CAME AC,RAN ;C(AC) SHOULD STILL = RAN NUM. + ERROR AC,RAN + LOOP ADD2A,ADD3A + + +;TEST ADD. ADD 1'S COMP OF RAN TO RAN. +;SHOULD GET A -1. + + AC=10 +ADD1B: SETUP 100,0 +ADD2B: RANDOM +ADD3B: SETCM AC1,RAN ;1'S COMP OF RAN TO AC1. + ADD AC,AC1 ;ADD IT TO RAN. + CAME AC,[-1] ;C(AC) SHOULD = -1. + ERROR AC,[-1] + LOOP ADD2B,ADD3B + + +;TEST ADD. CHECK CRY0,CRY1,AND OV FLAGS. +;ADD, TO A RANDOM NUMBER, A -1 AND THEN A +1. +;CRY0 AND CRY1 SHOULD BOTH GET SET AND AROV SHOULD NOT GET SET. + + AC=10 +ADD1C: SETUP 400,2 +ADD2C: RANDOM +ADD3C: JFCL 17,.+1 ;CLEAR ALL FLAGS. + ADD AC,[-1] ;ADD A -1 TO RAN. + ADD AC,[1] ;ADD A +1 TO ANS OF ADDITION OF RAN AND A -1. + CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + ERROR AC,RAN + JFCL 4,CRY0A + JFCL 2,.+2 + JRST BOTHF + ER AC,[ASCII /CRY0/];CRY0 FAILED TO GET SET. +CRY0A: JFCL 2,.+2 + ER AC,[ASCII /CRY1/];CRY1 FAILED TO GET SET. + JRST AROVA +BOTHF: ER AC,[ASCII /CRY01/];BOTH CRY0 + CRY1 FAILED TO GET SET. +AROVA: JFCL 10,.+2 + JRST ADD4C + ER AC,[ASCII /OV/] ;AROV GOT SET. +ADD4C: LOOP ADD2C,ADD3C + + +;TEST ADDM. WHERE E IS AN AC. +;RAN TO 0 CONDITION. + + AC=4 +ADDM1: SETUP 100,0 +ADDM2: RANDOM + MOVE AC2,RAN ;SAVE RAN IN AN AC. +ADDM3: SETZB AC1,RAN1 ;MAKE C(E) = 0. + ADDM AC,AC1 ;DO ADDM. + CAME AC2,AC1 ;C(E) SHOULD =ORIG C(AC). + ERRM RAN1,RAN + LOOP ADDM2,ADDM3 + + +;TEST ADDM. WHERE E IS AN AC. +;0 TO RAN CONDITION. + + AC=5 +ADDM1A: SETUP 100,0 +ADDM2A: RANDOM + MOVE AC2,RAN ;SAVE RAN IN AN AC. +ADDM3A: SETZB AC1,RAN1 ;MAKE C(AC) = 0. + ADDM AC1,AC ;DO ADDM. + CAME AC2,AC ;C(E) SHOULD = ORIG C(E). + EERRM ,RAN1 + LOOP ADDM2A,ADDM3A + + +;TEST ADDM. WHERE E IS AN AC. +;1'S COMP RAN TO RAN. + + AC=6 +ADDM1B: SETUP 100,0 +ADDM2B: RANDOM +ADDM3B: SETCM AC1,AC ;MAKE C(AC) = 1'S COMP OF C(E). + MOVE RAN1,AC1 ;SAVE C(AC) IN CASE OF ERROR. + ADDM AC1,AC ;DO ADDM. + CAME AC,[-1] ;C(E) SHOULD = A -1. + EERRM ,RAN1 + LOOP ADDM2B,ADDM3B + + +;TEST ADDI. CHECK C(AC) FOR CORRECT DATA. +;0 TO RAN CONDITION. + + AC=2 +ADDI1: SETUP 20,0 +ADDI2: RANDOM +ADDI3: ADDI AC,0 ;DO ADDI. + CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + EERRI ,0 + LOOP ADDI2,ADDI3 + + +;TEST ADDI. CHECK FOR CORRECT DATA IN AC. +;RAN TO 0 CONDITION. + + AC=2 +ADDI1A: SETUP 100,0 +ADDI2A: RANDOM +ADDI3A: SETZB AC1,RAN1 ;CLEAR C(AC). + MOVEI AC2,(AC) ;SIMULATE ADDI. + ADDI AC1,(AC) ;DO ADDI. + CAME AC1,AC2 ;C(AC) SHOULD = SIM. ANS. + ERRI RAN1,(AC) + LOOP ADDI2A,ADDI3A + + +;TEST ADDI. CHECK FOR CORRECT DATA IN AC. +;1'S COMP RAN TO RAN. + + AC=3 +ADDI1B: SETUP 40,0 +ADDI2B: RANDOM +ADDI3B: SETCM AC1,AC ;MAKE C(AC) = 1'S COMP OF E. + MOVE AC2,AC1 ;SIMULATE + IORI AC2,-1 ;ADDI INST. + MOVE RAN1,AC1 ;SAVE C(AC) IN CASE OF ERROR. + ADDI AC1,(AC) ;DO ADDI. + CAME AC1,AC2 ;C(AC) SHOULD = SIM. ANS. + ERRI RAN1,(AC) + LOOP ADDI2B,ADDI3B + + +;TEST ADDB. CHECK FOR C(AC) = C(E), AND CORRECT +;DATA IN AC FOR 0 TO RAN CONDITION. + + AC=4 +ADDB1: SETUP 100,0 +ADDB2: RANDOM +ADDB3: SETZB AC1,RAN1 ;CLEAR C(E). + ADDB AC,AC1 ;DO ADDB. + CAME AC,AC1 ;C(AC) SHOULLD = C(E). + ERR RAN1,RAN + CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + ERR RAN1,RAN + LOOP ADDB2,ADDB3 + + +;TEST ADDB. CHECK FOR C(AC) = C(E), AND CORRECT +;DATA IN AC FOR RAN TO 0 CONDITION. + + AC=5 +ADDB1A: SETUP 100,0 +ADDB2A: RANDOM +ADDB3A: SETZB AC1,RAN1 ;CLEAR C(AC). + ADDB AC1,AC ;DO ADDB. + CAME AC1,AC ;C(AC) SHOULD = C(E). + EERR ,RAN1 + CAME AC1,RAN ;C(AC) SHOULD = ORIG C(E). + EERR ,RAN1 + LOOP ADDB2A,ADDB3A + + +;TEST ADDB. CHECK FOR C(AC) = C(E), AND CORRECT DATA +;IN AC FOR NOT RAN TO RAN CONDITION. + + AC=6 +ADDB1B: SETUP 100,0 +ADDB2B: RANDOM +ADDB3B: SETCM AC1,AC ;MAKE C(E) = 1'S COMP OF C(AC). + MOVE RAN1,AC1 ;SAVE C(E) IN CASE OF ERROR. + ADDB AC,AC1 ;DO ADDB. + CAME AC,AC1 ;C(AC) SHOULD = C(E). + ERR RAN1,RAN + CAME AC,[-1] ;C(AC) SHOULD = A -1. + ERR RAN1,RAN + LOOP ADDB2B,ADDB3B + + +;TEST SUB. CHECK C(AC) FOR CORRECT DATA. +;0 TO RAN CONDITION. + + AC=2 +SUB1: SETUP 100,0 +SUB2: RANDOM +SUB3: SETZB AC1,RAN1 ;CLEAR C(E). + + REPEAT 3,< + SUB AC,AC1> + CAME AC,RAN ;C(AC) SHOULD STILL = ORIG C(AC). + ERR RAN1,RAN + LOOP SUB2,SUB3 + + +;TEST SUB. CHECK C(AC) FOR CORRECT DATA. +;RAN TO 0 CONDITION. + + AC=2 +SUB1A: SETUP 100,0 +SUB1B: RANDOM +SUB1C: SETZB AC1,RAN1 ;CLEAR C(AC). + MOVN AC2,RAN ;ANY NUM FROM 0 = 2'S COMP OF THAT NUM. + SUB AC1,AC ;SUBTRACT RAN FROM 0. + CAME AC1,AC2 ;C(AC) SHOULD = SIM. ANS. + EERR ,RAN1 + LOOP SUB1B,SUB1C + + +;TEST SUB. CHECK C(AC) FOR CORRECT DATA. +;SUB RAN FROM RAN. + + AC=2 +SUB2A: SETUP 100,0 +SUB2B: RANDOM +SUB2C: MOVE AC1,AC ;MAKE C(E) = C(AC). + SUB AC,AC1 ;SUB RAN FROM RAN. + CAME AC,[0] ;C(AC) SHOULD = 0. + EERR ,RAN + LOOP SUB2B,SUB2C + + +;TEST SUBM. WHERE E IS AN AC. +;RAN TO 0 CONDITION. + + AC=7 +SUBM1: SETUP 100,0 +SUBM2: RANDOM +SUBM3: SETZB AC1,RAN1 ;CLEAR C(AC). + MOVN AC2,AC ;SIM SUB..RAN FROM 0 = 2'S COMP RAN. + SUBM AC1,AC ;DO SUBM. + CAME AC2,AC ;C(E) SHOULD = SIM. ANS. + EERRM ,RAN1 + LOOP SUBM2,SUBM3 + +;TEST SUBM. SHERE E IS AN AC. +;0 TO RAN CONDITION. + + AC=10 +SUBM1A: SETUP 100,0 +SUBM2A: RANDOM + MOVE AC2,RAN ;SAVE RAN IN AN AC. +SUBM3A: SETZB AC1,RAN1 ;CLEAR C(E). + SUBM AC,AC1 ;DO SUBM...0 FROM RAN = RAN. + CAME AC2,AC1 ;C(E) SHOULD = ORIG C(AC). + ERRM RAN1,RAN + CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + ERRM RAN1,RAN + LOOP SUBM2A,SUBM3A + + +;TEST SUBM. WHERE E IS AN AC. +;RAN TO RAN CONDITION. + + AC=11 +SUBM1B: SETUP 100,0 +SUBM2B: RANDOM +SUBM3B: MOVE AC1,AC ;MAKE C(E) = C(AC). + SUBM AC,AC1 ;DO SUBM. + CAME AC1,[0] ;C(E) SHOULD = 0. + EERRM ,RAN + CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + EERRM ,RAN + LOOP SUBM2B,SUBM3B + + +;TEST SUBI. CHECK C(AC) FOR CORRECT DATA. +;0 TO RAN CONDITION. + + AC=10 +SUBI1: SETUP 20,0 +SUBI2: RANDOM +SUBI3: SUBI AC,0 ;DO SUBI..0 FROM RAN = RAN. + CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + EERRI ,0 + LOOP SUBI2,SUBI3 + + +;TEST SUBI. CHECK C(AC) FOR CORRECT DATA. +;RAN TO 0 CONDITION. + + AC=10 +SUBI1A: SETUP 20,0 +SUBI2A: RANDOM +SUBI3A: SETZB AC1,RAN1 ;CLEAR C(AC). + MOVNI AC2,(AC) ;SIM SUB..RAN FROM 0 = 2'S COMP RAN. + SUBI AC1,(AC) ;DO SUBI. + CAME AC1,AC2 ;C(AC) SHOULD = SIM ANS. + ERRI RAN1,(AC) + LOOP SUBI2A,SUBI3A + + +;TEST SUBI. CHECK C(AC) FOR CORRECT DATA. +;RAN TO RAN CONDITION. + + AC=10 +SUBI1B: SETUP 20,0 +SUBI2B: RANDOM + MOVE RAN1,AC ;SAVE C(AC) IN CASE OF ERROR. +SUBI3B: MOVE AC1,AC ;SIMULATE A + AND AC1,[XWD -1,0] ;SUBI RAN FROM RAN. + SUBI AC,(AC) ;DO SUBI. + CAME AC,AC1 ;C(AC) SHOULD = SIM. ANS. + ERRI RAN1,(RAN1) + LOOP SUBI2B,SUBI3B + + +;TEST SUBB. CHECK THAT C(AC) = C(E) AND C(AC) +;= CORRECT DATA. +;0 TO RAN. + + AC=10 +SUBB1: SETUP 20,0 +SUBB2: RANDOM +SUBB3: SETZB AC1,RAN1 ;CLEAR C(E). + SUBB AC,AC1 ;DO SUBB..0 FROM RAN = RAN. + CAME AC,AC1 ;C(AC) SHOULD = C(E). + ERR RAN1,RAN + CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + ERR RAN1,RAN + LOOP SUBB2,SUBB3 + + +;TEST SUBB. CHECK C(AC) = C(E) AND C(AC) FOR +;CORRECT DATA. +;RAN TO 0 CONDITION. + + AC=10 +SUBB1A: SETUP 20,0 +SUBB2A: RANDOM +SUBB3A: SETZB AC1,RAN1 ;CLEAR C(AC). + MOVN AC2,AC ;SIMULATE SUB...RAN FROM 0 = 2'S COMP RAN. + SUBB AC1,AC ;DO SUBB. + CAME AC1,AC ;C(AC) SHOULD = C(E). + EERR ,RAN1 + CAME AC1,AC2 ;C(AC) SHOULD = SIM. ANS. + EERR ,RAN1 + LOOP SUBB2A,SUBB3A + + +;TEST SUBB. CHECK C(AC) = C(E) AND FOR +;CORRECT DATA IN AC. +;RAN TO RAN CONDITION. + + AC=10 +SUBB1B: SETUP 40,0 +SUBB2B: RANDOM +SUBB3B: MOVE AC1,AC ;MAKE C(E) = C(AC). + SUBB AC,AC1 ;DO SUBB..RAN FROM RAN = 0. + CAME AC,AC1 ;C(AC) SHOULD = C(E). + EERR ,RAN + CAME AC,[0] ;C(AC) SHOULD = 0. + EERR ,RAN + LOOP SUBB2B,SUBB3B + + + +;TEST MOVEI. CHECK C(AC) FOR CORRECT DATA. +;RAN TO RAN1. + + AC=2 +MVEI1: SETUP 20,0 +MVEI2: RANDOM + MOVE AC2,RAN ;SAVE RAN IN AN AC. +MVEI3: MOVSS RAN1,AC ;MAKE C(AC) = SEC RAN NUM. + MOVE AC1,RAN ;SIMULATE + LSH AC1,22 ;A + LSH AC1,-22 ;MOVEI. + MOVEI AC,(AC2) ;DO A MOVEI. + CAME AC,AC1 ;C(AC) SHOULD = SIM. ANS. + ERRI RAN1,(AC2) + LOOP MVEI2,MVEI3 + + +;TEST MOVN. TWO MOVN INSTRUCTIONS SHOULD NOT CHANGE C(AC). + + AC=2 +MOVN1: SETUP 200,0 +MOVN2: RANDOM + ;DO 6 X (MOVN RAN TO RAN). +MOVN3: REPEAT 3,< + MOVN AC,AC + MOVN AC,AC> + CAME AC,RAN ;C(AC) SHOULD STILL = RAN NUM. + ERROR AC,RAN + LOOP MOVN2,MOVN3 + + +;TEST MOVNI. CHECK C(AC) FOR CORRECT DATA. +;RAN TO RAN1. + + AC=2 +MVNI1: SETUP 40,0 +MVNI2: RANDOM + MOVE AC2,RAN ;SAVE RAN IN AN AC. +MVNI3: MOVSS RAN1,AC ;C(AC) = SEC RAN NUM. + MOVEI AC1,(AC2) ;SIMULATE + SETCA AC1, ;A + ADD AC1,[1] ;MOVNI INST. + MOVNI AC,(AC2) ;DO A MOVNI. + CAME AC,AC1 ;C(AC) SHOULD = SIM. ANS. + ERRI RAN1,(AC2) + LOOP MVNI2,MVNI3 + + +;TEST MOVNM. WHERE E IS AN AC. +;CHECK C(E) FOR CORRECT DATA. +;RAN TO RAN. + + AC=2 +MVNM1: SETUP 100,0 +MVNM2: RANDOM + MOVE RAN1,RAN ;SAVE RAN IN AN AC. +MVNM3: MOVE AC1,AC ;MAKE C(E) = C(AC). + ;DO 3 X 2(MOVNM). + REPEAT 3,< + MOVNM AC,AC1 + MOVNM AC1,AC> + CAME RAN1,AC ;C(E) SHOULD = ORIG C(E). + EERRM ,RAN + LOOP MVNM2,MVNM3 + + +;TEST MOVNS. WHERE E IS AN AC. +;CHECK PROPER STORING OF C(E) INTO AC. +;TWO MOVNS = ORIG NUMBER. +;C(E) = RAN. + + AC=3 +MVNS1: SETUP 100,0 +MVNS2: RANDOM + MOVE AC2,RAN ;PUT C(RAN) INTO AC2 FOR FUTURE COMPARE. +MVNS3: SETOB AC1,RAN1 ;MAKE C(AC) = -1. + ;DO 3 X 2(MOVNS). + REPEAT 3,< + MOVNS AC1,AC + MOVNS AC1,AC> + CAME AC1,AC ;C(AC) SHOULD = C(E). + EERRM ,RAN1 + CAME AC2,AC ;C(E) SHOULD = ORIG. C(E). + EERRM ,RAN1 + LOOP MVNS2,MVNS3 + + +;TEST MOVNS. WHERE E IS AN AC. +;CHECK FOR NOT LOADING C(E) INTO AC WHEN AC= 0. +;TWO MOVNS = ORIGINAL NUM. +;C(E) = RAN. + + AC=10 +MVNSA: SETUP 40,0 +MVNSB: RANDOM + MOVE AC2,RAN ;SAVE RAN IN AN AC. +MVNSC: SETOB RAN1 ;MAKE C(AC) = -1. + ;DO 3 X 2(MOVNS). + REPEAT 3,< + MOVNS AC + MOVNS AC> + CAMN AC ;C(AC) SHOULD NOT = C(E). + EERRM ,RAN1 + CAME AC2,AC ;C(AC) SHOULD = ORIG C(AC). + EERRM ,RAN1 + LOOP MVNSB, MVNSC + + +;TEST MOVM. CHECK F(AC) FOR CORRECT DATA. +;RAN TO RAN1. + + AC=7 +MVM1: SETUP 40,0 +MVM2: RANDOM +MVM3: MOVSS RAN1,AC ;C(AC) = SEC RAN NUM. + MOVE AC1,RAN ;C(E) = 1ST RAN NUM. + SETCM AC2,AC1 ;SIMULATE + TLNN AC1,400000 ;A + MOVE AC2,AC1 ;MOVM + TLNE AC1,400000 ;INST. + ADD AC2,[1] + MOVM AC,AC1 ;DO A MOVM. + CAME AC,AC2 ;C(AC) SHOULD = SIM. ANS. + EERR ,RAN1 + LOOP MVM2, MVM3 + + +;TEST MOVMI. CHECK C(AC) FOR CORRECT DATA. +;RAN TO RAN1. + + AC=10 +MVMI1: SETUP 40,0 +MVMI2: RANDOM +MVMI3: MOVEI AC1,AC ;SIMULATE A MOVMI INST...MOVEI. + MOVSS RAN1,AC ;C(AC) = SEC RAN NUM. + MOVMI AC,(AC1) ;DO MOVMI. + CAME AC,AC1 ;C(AC) SHOULD = SIM ANS. + ERRI RAN1,(AC1) + LOOP MVMI2, MVMI3 + + +;TEST MOVMM. CHECK C(AC) + C(E) FOR CORRECT DATA. +;RAN TO RAN1. + + AC=11 +MVMM1: SETUP 200,0 +MVMM2: RANDOM +MVMM3: MOVSS RAN1,AC ;C(AC) = SEC RAN NUM. + MOVE AC1,RAN ;C(E) = RAN. + SETCM AC2,AC ;SIMULATE + TLNN AC,400000 ;A + MOVE AC2,AC ;MOVMM + TLNE AC,400000 ;INST + ADD AC2,[1] + MOVMM AC,AC1 ;DO A MOVMM INST. + CAME AC,RAN1 ;C(AC) SHOULD = ORIG C(AC). + EERRM ,RAN1 + CAME AC1,AC2 ;C(E) SHOULD = SIM. ANS. + EERRM ,RAN1 + LOOP MVMM2, MVMM3 + + +;TEST MOVMS. CHECK C(E) FOR CORRECT DATA. +;RAN TO RAN1. + + AC=10 +MVMS1: SETUP 200,0 +MVMS2: RANDOM +MVMS3: MOVSS RAN1,AC ;C(AC) = SEC RAN NUM. + MOVE AC1,RAN ;C(E) = RAN. + SETCM AC2,RAN ;SIMULATE + TLNN AC1,400000 ;A + MOVE AC2,AC1 ;MOVMS + TLNE AC1,400000 ;INST. + ADD AC2,[1] + MOVMS AC,AC1 ;DO A MOVMS. + CAME AC,AC1 ;C(AC) SHOULD = C(E). + EERRM ,RAN1 + CAME AC1,AC2 ;C(E) SHOULD = SIM. ANS. + EERRM ,RAN1 + LOOP MVMS2, MVMS3 + + +;TEST LSH. A LSH LEFT AND A LSH RIGHT SHOULD +;GIVE THE SAME NUMBER WITH A ZERO SIGN BIT. + + AC=2 +LSH1P: SETUP 40,0 +LSH1PA: RANDOM +LSH1PB: AND AC,[XWD 377777,-1] ;SIMULATE A LSH LEFT THEN RIGHT. + MOVE AC1,RAN ;MOVE RANDOM NUM INTO AN AC + ;AND DO 3(LSH LEFT 1 PLACE THEN RIGHT 1 PLACE). + REPEAT 3,< + LSH AC1,1 + LSH AC1,-1> + CAME AC1,AC ;C(AC1) = SIM. ANS? + ERROR AC1,AC ;NO. LSH FAILED. + LOOP LSH1PA,LSH1PB + + +;TEST TDN,TDNA. CHECK FOR SKIP/NO SKIP AND +;NO DATA CHANGE IN AC FOR RAN1 TO RAN CONDITION. + + AC=2 +TDN1: SETUP 100,0 +TDN2: RANDOM +TDN3: MOVS AC1,AC ;PUT SECOND RAN. NUM. INTO "E". + TDN AC,AC1 ;NO SKIP, NO DATA CHANGE. + JRST .+2 ;HERE..GO AROUND ERR UUO. + ER AC,[ASCII /TST/];TDN SKIPPED. + TDNA AC,AC1 ;SKIP, NO DATA CHANGE. + ER AC,[ASCII /TST/] + CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + ERR AC1,RAN + LOOP TDN2,TDN3 + + +;TEST TDNN,TDNE. CHECK FOR SKIP/ NO SKIP AND +;NO DATA CHANGE IN AC FOR RAN TO 0 CONDITION. + + AC=3 +TDNE1A: SETUP 100,0 +TDNE2A: RANDOM +TDNE3A: SETZB AC1,RAN1 ;CLEAR C(AC). + TDNN AC1,AC ;C(E) + C(AC) =0..NO SKIP. + JRST .+2 + ER AC1,[ASCII /TST/];TDNN SKIPPED. + TDNE AC1,AC ;C(E) + C(AC) = 0. SKIP. + ER AC1,[ASCII /TST/] + CAME AC1,[0] ;C(AC) SHOULD STILL = 0. + ERR AC,RAN1 + LOOP TDNE2A,TDNE3A + + +;TEST TDNN,TDNE. CHECK FOR SKIP/ NO SKIP AND +;NO DATA CHANGE FOR 0 TO RAN CONDITION. + + AC=4 +TDNE1B: SETUP 40,0 +TDNE2B: RANDOM +TDNE3B: SETZ AC1, ;CLEAR C(E). + TDNN AC,AC1 ;C(E) + C(AC) = 0. NO SKIP. + JRST .+2 + ER AC,[ASCII /TST/];TDNN SKIPPED. + TDNE AC,AC1 ;C(E) + C(AC) = 0. SKIP. + ER AC,[ASCII /TST/] + CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + ERR AC1,RAN + LOOP TDNE2B,TDNE3B + + +;TEST TDNN,TDNE. CHECK FOR SKIP/ NO SKIP AND +;NO DATA CHANGE IN AC FOR RAN TO -1 CONDITION. + + AC=5 +TDNE1C: SETUP 40,0 +TDNE2C: RANDOM + JUMPE AC,TDNE2C ;REJECT IF RAN = 0. +TDNE3C: SETOB AC1,RAN1 ;SET C(AC) TO ALL ONES. + TDNE AC1,AC ;C(E) + C(AC) NOT = 0..NO SKIP. + JRST .+2 + ER AC1,[ASCII /TST/];TDNE SKIPPED. + TDNN AC1,AC ;C(E) + C(AC) NOT = 0..SKIP. + ER AC1,[ASCII /TST/] + CAME AC1,[-1] ;C(AC) SHOULD = ORIG C(AC). + ERR AC,RAN1 + LOOP TDNE2C,TDNE3C + + +;TEST TDNE,TDNN. CHECK FOR SKIP/ NO SKIP AND +;NO DATA CHANGE IN AC FOR -1 TO RAN CONDITION. + + AC=6 +TDNE1D: SETUP 40,0 +TDNE2D: RANDOM + JUMPE AC,TDNE2D ;REJECT IF RAN = 0. +TDNE3D: SETO AC1, ;SET C(E) TO ALL ONES. + TDNE AC,AC1 ;C(E) + C(AC) NOT = 0..NO SKIP. + JRST .+2 + ER AC,[ASCII /TST/];TDNE SKIPPED. + TDNN AC,AC1 ;C(E) + C(AC) NOT = 0..SKIP. + ER AC,[ASCII /TST/] + CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + ERR AC1,RAN + LOOP TDNE2D,TDNE3D + + +;TEST TDNE,TDNN. CHECK FOR SKIP/ NO SKIP AND +;NO DATA CHANGE IN AC FOR RAN TO RAN CONDITION. + + AC=7 +TDNE1E: SETUP 20,0 +TDNE2E: RANDOM + JUMPE AC,TDNE2E ;REJECT IF RAN = 0. +TDNE3E: MOVE AC1,AC ;MAKE C(E) = C(AC). + TDNE AC,AC1 ;C(E) + C(AC) NOT = 0..NO SKIP. + JRST .+2 + ER AC,[ASCII /TST/];TDNE SKIPPED. + TDNN AC,AC1 ;C(E) + C(AC) NOT = 0. SKIP. + ER AC,[ASCII /TST/] + CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + ERR AC1,RAN + LOOP TDNE2E,TDNE3E + + +;TEST TDNE,TDNN. CHECK FOR SKIP/ NO SKIP AND +;NO DATA CHANGE IN AC FOR NOT RAN TO RAN CONDITON. + + AC=10 +TDNE1F: SETUP 20,0 +TDNE2F: RANDOM +TDNE3F: SETCM AC1,AC ;MAKE C(E) = 1'S COMP OF C(AC). + TDNN AC,AC1 ;C(E) + C(AC) = 0..NO SKIP. + JRST .+2 + ER AC,[ASCII /TST/];TDNN SKIPPED. + TDNE AC,AC1 ;C(E) + C(AC) = 0..SKIP. + ER AC,[ASCII /TST/] + CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + ERR AC1,RAN + LOOP TDNE2F,TDNE3F + + +;TEST TDZ,TDZA. CHECK FOR SKIP/ NO SKIP AND +;CORRECT DATA IN AC FOR NOT RAN TO RAN CONDITION. + + AC=11 +TDZA1: SETUP 100,0 +TDZA2: RANDOM +TDZA3: SETCM AC1,AC ;MAKE C(E) 1'S COMP OF C(AC). + TDZ AC,AC1 ;SHOULD NOT SKIP. + JRST .+2 + ER AC,[ASCII/TST/] ;TDZ SKIPPED. + TDZA AC,AC1 ;SHOULD SKIP. + ER AC,[ASCII /TST/] + CAME AC,RAN ;C(AC) SHOULD STILL = RAN NUM. + ERR AC1,RAN + CAMN AC1,RAN ;C(E) SHOULD NOT = RAN. + ERR AC1,RAN + LOOP TDZA2,TDZA3 + + +;TEST TDZ,TDZA. CHECK FOR SKIP/NO SKIP AND +;CORRECT DATA IN AC FOR RAN TO RAN CONDITION. + + AC=10 +TDZAA: SETUP 100,1 +TDZAB: RANDOM +TDZAC: TDZ AC,AC ;SHOULD NOT SKIP. + CAME AC,[0] ;SHOULD CLEAR C(AC). + EERR ,RAN + MOVE AC,RAN ;RESTORE AC. + TDZA AC,AC ;SHOULD SKIP. + ER AC,[ASCII /TST/] + CAME AC,[0] ;C(AC) SHOULD BE CLEARED. + EERR ,RAN + LOOP TDZAB,TDZAC + + + +;TEST TDZ,TDZA. CHECK FOR SKIP/ NO SKIP AND +;CORRECT DATA IN AC FOR RAN1 TO RAN CONDITION. + + AC=10 +TDZB1: SETUP 100,0 +TDZB2: RANDOM +TDZB3: MOVS AC1,AC ;MAKE C(E) A DIFF. RAN. NUM. + MOVE AC2,AC1 ;SIMULATE + XOR AC2,AC ;A + AND AC2,AC ;TDZ. + TDZ AC,AC1 ;TDZ SHOULD NOT SKIP. + CAME AC,AC2 ;C(AC) SHOULD = SIM. ANS. + ERR AC1,RAN + MOVE AC,RAN ;RESTORE AC. + TDZA AC,AC1 ;SHOULD SKIP. + ER AC,[ASCII /TST/] + CAME AC,AC2 ;C(AC) SHOULD = SIM. ANS. + ERR AC1,RAN + LOOP TDZB2,TDZB3 + +;TEST TDZE, TDZN. CHECK FOR SKIP/NO SKIP AND +;CORRECT DATA IN AC FOR FLOATING ONE IN C(E) AND +;THAT BIT CLEARED IN RANDOM NUM. IN AC. + + AC=10 +TDZE1: SETUP 100,0 + MOVEI AC1,1 ;SETUP AC1 TO CONTAIN A MASK BIT. +TDZE2: RANDOM + ROT AC1,1 ;ROT TO TEST NEXT BIT. +TDZE3: ANDCM AC,AC1 ;CLEAR MASK BIT IN AC. + MOVE AC2,AC ;SAVE FOR FUTURE COMPARE. + TDZN AC,AC1 ;C(E) + C(AC) = 0...NO SKIP. + JRST .+2 + ER AC,[ASCII /TST/] ;TDZN SKIPPED. + TDZE AC,AC1 ;C(E) + C(AC) = 0...SKIP. + ER AC,[ASCII /TST/] + CAME AC,AC2 ;C(AC) SHOULD = ORIG C(AC). + ERR AC1,AC2 + LOOP TDZE2,TDZE3 + + +;TEST TDZE, TDZN. CHECK FOR SKIP/ NO SKIP AND +;CORRECT DATA IN AC FOR FLOATING ONE IN C(E) +;AND THAT BIT SET IN RAN. NUM. IN C(AC). + + AC=10 +TDZEA: SETUP 100,0 + MOVEI AC1,1 ;SET MASK BIT IN C(E). +TDZEB: RANDOM + ROT AC1,1 ;ROT MASK BIT TO TEST NEXT BIT. +TDZEC: IOR AC,AC1 ;SET MASK BIT IN AC. + MOVE RAN1,AC ;SAVE C(AC) IN CASE OF ERROR. + MOVE AC2,AC ;SIMULATE + ANDCM AC2,AC1 ;A TDZ. + TDZE AC,AC1 ;C(E) + C(AC) NOT = 0...NO SKIP. + CAME AC,AC2 ;C(AC) SHOULD = SIM. ANS. + ERR AC1,RAN1 + IOR AC,AC1 ;RESET MASK BIT IN AC. + TDZN AC,AC1 ;C(E) + C(AC) NOT = 0...SKIP. + ER AC,[ASCII /TST/] + CAME AC,AC2 ;AND C(AC) SHOULD = SIM. ANS. + ERR AC1,RAN1 + LOOP TDZEB,TDZEC + + +;TEST TDZE,TDZN. SET AND ROT A MASK BIT IN AC +;AND CHECK SKIP/NO SKIP AND PROPER C(AC) +;FOR MASK BIT IN AC ANS RANDOM NUMBER IN E. + + AC=10 +TDZNA: SETUP 100,0 + MOVEI AC1,1 ;SETUP AC1 FOR MASK BIT. +TDZNB: RANDOM + ROT AC1,1 ;ROT AC1 TO TEST NEXT BIT. + MOVE AC2,AC1 ;SAVE MASK BIT. +TDZNC: MOVE AC1,AC2 ;RESTORE MASK BIT IF ERROR. + ANDCM AC,AC1 ;CLEAR MASK BIT IN RAN NUM. + TDZN AC1,AC ;C(E) + C(AC) =0..SHOULDN'T SKIP. + JRST .+2 + ER AC1,[ASCII /TST/];TDZN SKIPPED. + TDZE AC1,AC ;C(E) + C(AC) = 0..SKIP. + ER AC1,[ASCII /TST/] + CAME AC1,AC2 ;C(AC1) SHOULD NOT HAVE CHANGED. + ERR AC,AC2 + LOOP TDZNB,TDZNC + + +;TEST TDZE,TDZN. SET AND ROT A MASK BIT IN AC +;AND CHECK SKIP/NO SKIP AND PROPER C(AC) +;FOR MASK BIT IN AC AND RANDOM NUMBER IN E. +;RANDOM NUMBER HAS MASK BIT SET. + + AC=10 +TDZN1: SETUP 40,0 + MOVEI AC1,1 ;SETUP AC1 FOR MASK BIT. +TDZN2: RANDOM + ROT AC1,1 ;ROT AC1 TO TEST NEXT BIT. +TDZN3: MOVE AC2,AC1 ;SAVE MASK BIT. + IOR AC,AC1 ;SET MASK BIT IN RAN. + TDZE AC1,AC ;C(E) + C(AC) NOT = 0...NO SKIP. + CAME AC1,[0] ;C(AC) SHOULD = 0. + ERR AC,AC2 + MOVE AC1,AC2 ;RESTORE MASK BIT. + TDZN AC1,AC ;C(E) + C(AC) NOT = 0...SKIP. + ER AC1,[ASCII /TST/] + CAME AC1,[0] ;AC1 SHOULD HAVE GOTTEN CLEARED OUT. + ERR AC,AC2 + MOVE AC1,AC2 ;RESTORE MASK BIT. + LOOP TDZN2,TDZN3 + + +;TEST TDO TDOA. CHECK FOR SKIP/NO SKIP ANS CORRECT DATA +;IN AC FOR RAN TO NOT RAN. + + AC=10 +TDOA1: SETUP 100,0 +TDOA2: RANDOM +TDOA3: SETCM AC1,AC ;MAKE "C(E)" = COMP OF RAN. + TDO AC,AC1 ;SHOULD NOT SKIP. + CAME AC,[-1] ;AC SHOULD HAVE ALL BITS SET. + ERR AC1,RAN + MOVE AC,RAN ;RESTORE AC. + TDOA AC,AC1 ;SHOULD SKIP. + ER AC,[ASCII /TST/] + CAME AC,[-1] ;AC SHOULD HAVE ALL BITS SET. + ERR AC1,RAN + LOOP TDOA2,TDOA3 + + +;TEST TDO,TDOA. CHECK SKIP/NO SKIP AND +;CORRECT DATA IN AC FOR RAN TO RAN CONDITION. + + AC=2 +TDOAA: SETUP 40,0 +TDOAB: RANDOM +TDOAC: TDO AC,AC ;SHOULD NOT SKIP. + JRST .+2 + ER AC,[ASCII /TST/] ;TDO SKIPPED. + TDOA AC,AC ;SHOULD SKIP. + ER AC,[ASCII /TST/] + CAME AC,RAN ;C(AC) SHOULD NOT HAVE CHANGED. + EERR ,RAN + LOOP TDOAB,TDOAC + + +;TEST TDO, TDOA. CHECK FOR SKIP/NO SKIP +;AND CORRECT DATA IN AC FOR RAN1 TO RAN CONDITION. + + AC=2 +TDOB1: SETUP 400,3 +TDOB2: RANDOM +TDOB3: MOVS AC1,AC ;MAKE AC1 ANOTHER RAN NUM. + MOVE AC2,AC ;SIMULATE + XOR AC2,AC1 ;A + IOR AC2,AC ;TDO INST. + TDO AC,AC1 ;SHOULD NOT SKIP. + CAME AC,AC2 ;C(AC) = SIM. ANS? + ERR AC1,RAN ;NO. + MOVE AC,RAN ;RESTORE AC. + TDOA AC,AC1 ;SHOULD SKIP. + ER AC,[ASCII /TST/] + CAME AC,AC2 ;C(AC) = SIM ANS? + ERR AC1,RAN ;NO. + LOOP TDOB2,TDOB3 + + +;TEST TDOE,TDON. ROT A MASK BIT IN E AND SET THAT +;BIT IN AC BEFORE TDO. CHECK FOR SKIP/NO SKIP +;AND PROPER DATA IN AC. + + AC=2 +TDOE1: SETUP 40,0 + MOVEI AC1,1 ;SETUP A MASK BIT IN "E". +TDOE2: RANDOM + ROT AC1, ;ROT MASK BIT TO TEST NEXT BIT. +TDOE3: IOR AC,AC1 ;SET MASK BIT IN AC. + MOVE AC2,AC ;SAVE AC IN AC2. + TDOE AC,AC1 ;C(E) + C(AC) NOT = 0. NO SKIP. + JRST .+2 + ER AC,[ASCII /TST/];TDOE SKIPPED. + TDON AC,AC1 ;C(E) + C(AC) NOT = 0..SKIP. + ER AC,[ASCII /TST/] + CAME AC,AC2 ;C(AC) SHOULD NOT CHANGE. + ERR AC1,AC2 + LOOP TDOE2,TDOE3 + + +;TEST TDOE,TDON. ROT A MASK BIT IN E AND CLEAR THAT +;BIT IN AC BEFORE TDO. CHECK FOR SKIP/NO SKIP +;AND PROPER DATA IN AC. + + AC=3 +TDOEA: SETUP 40,0 + MOVEI AC1,1 ;SETUP MASK BIT IN"E". +TDOEB: RANDOM + ROT AC1,1 ;ROT MASK BIT TO TEST NEXT BIT. +TDOEC: ANDCM AC,AC1 ;CLEAR MASK BIT IN AC. + MOVE RAN1,AC ;SAVE AC. + MOVE AC2,AC ;SIMULATE + IOR AC2,AC1 ;A TDO. + TDOE AC,AC1 ;C(E) + C(AC) = 0. SKIP. + ER AC,[ASCII /TST/] + CAME AC,AC2 ;C(AC) = SIM ANS? + ERR AC1,RAN1 ;NO. + MOVE AC,RAN1 ;RESTORE AC. + TDON AC,AC1 ;C(E) + C(AC) = 0..NO SKIP. + CAME AC,AC2 ;C(AC) = SIM. ANS? + ERR AC1,RAN1 ;NO. + LOOP TDOEB,TDOEC + + +;TEST TDOE,TDON. ROT A MASK BIT IN AC AND CLEAR THAT +;BIT IN E BEFORE TDO. CHECK FOR SKIP/NO SKIP +;AND PROPER DATA IN AC. + + AC=4 +TDONA: SETUP 40,0 + MOVEI AC1,1 ;SETUP A MASK BIT IN AC. +TDONB: RANDOM + ROT AC1,1 ;ROT BIT TO TEST NEXT BIT. + MOVE AC2,AC1 ;SAVE MASK BIT SO IN CASE +TDONC: MOVE AC1,AC2 ;OF ERROR IT CAN BE RESTORED. + ANDCM AC,AC1 ;CLEAR MASK BIT IN E. + JUMPE AC,TDONB ;REJECT IF C(AC) = 0. + MOVE AC3,AC ;SIMULATE + IOR AC3,AC1 ;TDO. + TDOE AC1,AC ;C(E) + C(AC) = 0...SKIP. + ER AC1,[ASCII /TST/];TDOE DID NOT SKIP. + CAME AC1,AC3 ;C(AC) SHOULD = SIM. ANS. + ERR AC,AC2 + TDON AC1,AC ;C(E) + C(AC) NOT = 0...SKIP. + ER AC1,[ASCII /TST/] + CAME AC1,AC3 ;C(AC) SHOULD = SIM. ANS. + ERR AC,AC2 + MOVE AC1,AC2 ;RESTORE AC. + LOOP TDONB,TDONC + + +;TEST TDOE,TDON. ROT A MASK BIT IN AC AND SET +;THAT BIT IN E BEFORE TDO. CHECK FOR SKIP/ NO SKIP +;AND CORRECT DATA IN AC. + + AC=5 +TDON1: SETUP 40,0 + MOVEI AC1,1 ;SETUP AC TO CONTAIN A MASK BIT. +TDON2: RANDOM + ROT AC1,1 ;ROT TO TEST NEXT BIT. + MOVE AC2,AC1 ;SAVE C(AC) SO IT CAN BE +TDON3: MOVE AC1,AC2 ;RESTORED IN CASE OF ERROR. + IOR AC,AC1 ;SET MASK BIT IN E. + TDOE AC1,AC ;C(E) + C(AC) NOT = 0...NO SKIP. + JRST .+2 + ER AC1,[ASCII /TST/];TDOE SKIPPED. + TDON AC1,AC ;C(E) + C(AC) NOT = 0...SKIP. + ER AC1,[ASCII /TST/] + CAME AC1,AC ;C(AC) SHOULD = C(E). + ERR AC,AC2 + MOVE AC1,AC2 ;RESTORE AC. + LOOP TDON2,TDON3 + + +;TEST TDC. CHECK FOR SKIP/NO SKIP AND CORRECT +;DATA FOR NOT RAN TO RAN CONDITION. + + AC=6 +TDC1: SETUP 100,0 +TDC2: RANDOM +TDC3: SETCM AC1,RAN ;MAKE C("E") = COMP. OF RAN. + TDC AC,AC1 ;NO SKIP. + CAME AC,[-1] ;C(AC) SHOULD = A -1. + ERR AC1,RAN + SETO RAN1, ;SET RAN1 FOR ERROR MESSAGE. + TDC AC,AC1 ;NO SKIP. + CAME AC,RAN ;C(AC) SHOULD = RAN AGAIN. + ERR AC1,RAN1 + LOOP TDC2,TDC3 + + +;TEST TDCA. CHECKING FOR SKIP/ NO SKIP AND +;CORRECT DATA IN AC FOR NOT RAN TO RAN CONDITION. + + AC=10 +TDCA1: SETUP 100,0 +TDCA2: RANDOM +TDCA3: SETCM AC1,RAN ;MAKE C("E") = COMP OF RAN. + TDC AC,AC1 ;SHOULD NOT SKIP. + JRST .+2 + ER AC,[ASCII /TST/];TDC SKIPPED. + TDCA AC,AC1 ;SHOULD SKIP. + ER AC,[ASCII /TST/] + CAME AC,RAN ;TWO TDC'S SHOULD RETURN C(AC) + ;TO IT'S ORIGINAL VALUE. + ERR AC1,RAN + LOOP TDCA2,TDCA3 + + +;TEST TDCE. CHECKING FOR SKIP/NO SKIP AND +;CORRECT DATA IN AC FOR RAN TO 0 CONDITION. + + AC=11 +TDCE1: SETUP 100,0 +TDCE2: RANDOM +TDCE3: SETZB AC1,RAN1 ;CLEAR BOTH AC AND RAN1. + TDCE AC1,AC ;C(E) + C(AC) = 0. SKIP. + ER AC1,[ASCII /TST/] + CAME AC1,RAN ;C(AC) SHOULD = RAN. + EERR ,RAN1 + LOOP TDCE2,TDCE3 + + +;TEST TDCE,TDCN. CHECKING FOR SKIP/NO SKIP AND +;CORRECT DATA IN AC FOR 0 TO RAN CONDITION. + + AC=11 +TDCEA: SETUP 100,0 +TDCEB: RANDOM +TDCEC: SETZ AC1, ;CLEAR C(E). + TDCN AC,AC1 ;C(E) + C(AC) = 0...NO SKIP. + JRST .+2 + ER AC,[ASCII /TST/];TDCN SKIPPED. + TDCE AC,AC1 ;C(E) + C(AC) = 0. SKIP. + ER AC,[ASCII /TST/] + CAME AC,RAN ;C(AC) SHOULD STILL = RAN. + ERR AC1,RAN + LOOP TDCEB,TDCEC + + +;TEST TDCE. CHECKING FOR SKIP/NO SKIP AND +;CORRECT DATA IN AC FOR RAN TO -1 CONDITION. + + AC=10 +TDCE4: SETUP 100,0 +TDCE5: RANDOM + JUMPE AC,TDCE5 ;REJECT IF RAN = 0. +TDCE6: SETOB AC1,RAN1 ;SET C(AC) TO ALL ONES. + SETCM AC2,AC ;SIMULATE A TDC. + TDCE AC1,AC ;C(E) + C(AC) NOT = 0. NO SKIP. + CAME AC1,AC2 ;C(AC) = SIM.. ANS? + ERR AC,RAN1 ;NO. + LOOP TDCE5,TDCE6 + + +;TEST TDCE,TDCN. CHECKING FOR SKIP/NO SKIP AND +;CORRECT DATA IN AC FOR -1 TO RAN CONDITION. + + AC=10 +TDCED: SETUP 100,0 +TDCEE: RANDOM + JUMPE AC,TDCEE ;REJECT IF RAN = 0. + CAMN AC,[-1] ;C(AC) = -1? + JRST TDCEE ;YES. REJECT. +TDCEF: SETOB AC1,RAN1 ;SET C(E) TO ALL ONES. + TDCE AC,AC1 ;C(E) + C(AC) NOT = 0. NO SKIP. + JRST .+2 + ER AC,[ASCII /TST/];TDCE SKIPPED. + TDCN AC,AC1 ;C(E) + C(AC) NOT = 0..SKIP. + ER AC,[ASCII /TST/] + CAME AC,RAN ;C(AC) SHOULD = ORIG C(AC). + ERR RAN1,RAN + LOOP TDCEE,TDCEF + + +;TEST TDCE. CHECKING FOR SKIP/NO SKIP AND +;CORRECT DATA IN AC FOR RAN TO RAN CONDITION. + + AC=10 +TDCE7: SETUP 100,0 +TDCE8: RANDOM + JUMPE AC,TDCE8 ;REJECT IF RAN = 0. +TDCE9: MOVE AC1,RAN ;MAKE C("AC") = C("E"). + TDCE AC1,AC ;C(E) + C(AC) NOT = 0. NO SKIP. + CAME AC1,[0] ;C(AC) SHOULD = 0. + ERR AC,AC + LOOP TDCE8,TDCE9 + + +;TEST TDCE. CHECKING FOR SKIP/NO SKIP AND +;CORRECT DATA IN AC FOR RAN TO NOT RAN. + + AC=10 +TDCEG: SETUP 100,0 +TDCEH: RANDOM +TDCEI: SETCM AC1,AC ;MAKE C("AC") = TO COMP OF RAN. + MOVE RAN1,AC1 ;SAVE C(AC) IN CASE OF ERROR. + TDCE AC1,AC ;C(E) + C(AC) = 0. SKIP. + ER AC1,[ASCII /TST/] + CAME AC1,[-1] ;C(AC) SHOULD = -1. + ERR AC,RAN1 + LOOP TDCEH,TDCEI + + + + JRST BEGEND ;REPEAT TEST + diff --git a/apps/pdp10/diags/ka10/dakba/DAKBAT.MAC.txt b/apps/pdp10/diags/ka10/dakba/DAKBAT.MAC.txt new file mode 100644 index 000000000..a43e0970b --- /dev/null +++ b/apps/pdp10/diags/ka10/dakba/DAKBAT.MAC.txt @@ -0,0 +1,106 @@ +;MAINDEC-10-DAKBA + +DECVER=002 +MCNVER=000 + + XLIST +DEFINE NAME (MCNVER,DECVER),< + +TITLE DAKBA PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST (1), VERSION MCNVER,DECVER > + LIST + LALL + +NAME \MCNVER,\DECVER + + XALL + +;TEST DESIGNED FOR RANDOM NUMBER TESTING OF THE PDP-10 BASIC INSTRUCTIONS +;(COMPARES,SKIPS,EXCHANGES,BOOLE,ROTATES,TESTS,ETC.) + +;COPYRIGHT 1977 +;DIGITAL EQUIPMENT CORPORATION +;MARLBORO, MASS. 01752 + +;JOHN R. KIRCHOFF + + LOC 137 +MCNVER,,DECVER + + NOSYM +SUBTTL DIAGNOSTIC PARAMETERS + +;LUUO DEFINITIONS + +OPDEF ERR [1B8] +OPDEF ERRM [2B8] +OPDEF ERRI [3B8] +OPDEF ERROR [4B8] +OPDEF ER [5B8] +OPDEF EERR [11B8] +OPDEF EERRM [12B8] +OPDEF EERRI [13B8] +LUUO1=ERRMES +LUUO2=ERRMES +LUUO3=ERRMES +LUUO4=ERRMES +LUUO5=ERRMES +LUUO11=ERRMES +LUUO12=ERRMES +LUUO13=ERRMES + +;SUBROUTINE ASSEMBLY DEFINITIONS + +EXCASB==1 +USRASB==1 +DEBUG==40 +KLOLD==1 +KA10=10 +PGMEND==1 +ERRELB==1 +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==123457,,654321 +PAREA2==0 +PAREA3==SIXBIT/DAKBA/ +PAREA4==SIXBIT/TMP/ +PAREA5==0 +PAREA6==0 +ITERAT==1 +ENDPGM==1 +;MACROS + +DEFINE SETUP (A,B)< + AC1=&17 + AC2=&17 + AC3=&17 + AC4=&17 + AC5=&17 + RAN1=&17 + MOVEI AC-1,. + MOVEM AC-1,TESTPC ;SETUP SUBTEST PC + MOVEI AC-1,&17 ;INFORM ERROR ROUTINE + MOVEM AC-1,ERRLOP# ;WHICH AC IS USED FOR ITERATION + MOVEI AC-1,A ;ROUTINE WEIGHTING + ASH AC-1,@CMPLXT+B ;ROUTINE COMPLEXITY + ASH AC-1,@RTIME ;RUN TIME CONTROLLER > + +DEFINE RANDOM (A)< + MOVE AC,RAN# ;GENERATE A PSEUDO RANDOM NUMBER + ADD AC,[142536475076] + ROT AC,-1 ;IN BOTH AC AND + EQVB AC,RAN ;REGISTER RAN > + +DEFINE LOOP (A,B)< + SOJG AC-1,A ;ITERATION COUNTER + MOVE AC,RAN ;RESTORE RANDOM NUMBER + JUMPL AC-1,B ;LOOP ON ERROR SWITCH > + diff --git a/apps/pdp10/diags/ka10/dakba/README.md b/apps/pdp10/diags/ka10/dakba/README.md new file mode 100644 index 000000000..c1a1f7632 --- /dev/null +++ b/apps/pdp10/diags/ka10/dakba/README.md @@ -0,0 +1,605 @@ +--- +layout: page +title: PDP-10 KA10 Basic Instruction Reliability Test #1 +permalink: /apps/pdp10/diags/ka10/dakba/ +machines: + - id: testka10 + type: pdp10 + config: /devices/pdp10/machine/ka10/test/debugger/machine.xml + debugger: true + commands: a dakba.mac +--- + +PDP-10 KA10 Basic Instruction Reliability Test #1 +------------------------------------------------- + +The *PDP-10 KA10 Basic Instruction Reliability Test #1* (MAINDEC-10-DAKBA) test code has been extracted from +[DAKBAM.MAC](DAKBAM.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakbam.mac.html)] and +[DAKBAT.MAC](DAKBAT.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakbat.mac.html)] +for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below. + +This test exercises "COMPARES, SKIPS, EXCHANGES, BOOLE, ROTATES, TESTS." + +Information regarding this test includes: + +- [Instructions](#dakbatxt) +- [History](#dakbahst) +- [Source Code](#dakbamac) +- [MACRO-10 Listing](DAKBA.LST.txt) +- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/ka10/dakba/DAKBA.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 DAKBA.MAC + +will automatically read the [DAKBA.MAC](DAKBA.MAC.txt) source file (a slightly modified copy of [DAKBAM.MAC](DAKBAM.MAC.txt)), +assemble it, and then load the binary image at the location specified in the file. + +--- + +DAKBA.TXT +--------- + +``` +MAINDEC-10-DAKBA.TXT + + + + + + + + IDENTIFICATION + -------------- + + PRODUCT CODE: MAINDEC-10-DAKBA-B-D + + PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC + INSTRUCTION RELIABILITY TEST (1) + + FUNCTION: COMPARES, SKIPS, EXCHANGES, BOOLE, ROTATES, TESTS + + VERSION: 0.2 + + DATE RELEASED: JANUARY 1977 + + MAINTAINED BY: DIAGNOSTIC ENGINEERING GROUP + + AUTHOR: JOHN R. KIRCHOFF + +COPYRIGHT(C) 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-DAKBA.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-DAKBA.TXT + PAGE 3 + +1.0 ABSTRACT + + THIS PDP-10 KA10 BASIC INSTRUCTION RELIABILITY TEST + IS THE FIRST IN A SERIES OF PDP-10 KA10 PROCESSOR + RANDOM NUMBER DIAGNOSTICS. + + THE DIAGNOSTIC TESTS COMPARES, SKIPS, EXCHANGES, BOOLE, ROTATES, TESTS. + IN THE MAJORITY OF CASES EACH INSTRUCTION IS TESTED BY + SIMULATING THE INSTRUCTION, WITH SIMPLER INSTRUCTIONS, AND + THEN EXECUTING THE INSTRUCTION. RANDOM NUMBERS ARE USED AS + THE OPERANDS IN AC AND/OR C(E). THE RESULTS OF THE + SIMULATION AND EXECUTION ARE COMPARED AND AN ERROR MESSAGE + IS PRINTED IF THE RESULTS ARE NOT EQUAL. + +2.0 REQUIREMENTS + +2.1 EQUIPMENT + + A PDP-10 KA10 EQUIPPED WITH A MINIMUM OF 32K OF MEMORY + + CONSOLE TELETYPE + DECTAPE + LINE PRINTER (OPTIONAL) + +2.2 STORAGE + + THE PROGRAM RUNS WITHIN 32K OF MEMORY. + +2.3 PRELIMINARY PROGRAMS + + PREVIOUS PROCESSOR DIAGNOSTICS + + MAINDEC-10-DAKBA.TXT + PAGE 4 + +3.0 PROGRAM PROCEDURES + +3.1 LOADING PROCEDURE + + THIS DIAGNOSTIC REQUIRES THAT THE DECSYSTEM10 SUBROUTINE + PROGRAM BE RESIDENT IN THE PDP-10. + + DECTAPE - LOAD WITH DIAMON (DECTAPE DEVICE CODE 320) + TIME SHARING - RUN UNDER DIAMON. + +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-DAKBA.TXT + PAGE 5 + +3.3 OPERATING PROCEDURE + + NORMAL OPERATION WITH ALL SWITCHES SET TO ZERO IS QUICK + VERIFY MODE. TO RELIABILITY TEST SET THE "RELIAB" SWITCH. + + 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-DAKBA.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 + + 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 0 FAST CYCLE OPERATION + 1 RELIABILITY MODE + + 10 TXTINH 0 PRINT FULL ERROR MESSAGES. + 1 INHIBIT COMMENT PORTION OF ERROR MESSAGES. + + 11 INHPAG NOT USED + + 12 MODDVC NOT USED + + 13 INHCSH NOT USED + + MAINDEC-10-DAKBA.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, AC + NUMBER, ERROR WORD AND CORRECT WORD. + + THE PC VALUE IS USEFUL IN RELATING THE FAILURE TO THE LISTING. + + 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. + + THE FOLLOWING IS THE DIFFERENT ERROR FORMATS WITH THEIR + RESPECTIVE UUO'S AND ERROR MESSAGES. + + A. ERROR #1 - ERR AC,E + ------------------------------- + + EXAMPLE: AC E + 2053 / CAME AC1,AC2 ;RESULT CORRECT + 2054 / ERR AC,RAN1 ;ORIG C(AC) ORIG C(E) + + AC1=5 ;TEST DATA + C(AC1) = 201532107642 + C(AC2) = 201432107642 + C(RAN1)= 777777777777 + C(AC) = 576345670135 + + ERROR MESSAGE: + + (SOURCE OF NUMBERS PRINTED) + PC = 002054 ;PC OF ERROR UUO + AC = 05 ;AC FIELD OF UUO-1 + C(AC)= 201532107642 ;C(C(AC)) OF UUO-1 + COR = 201432107642 ;C(C(ADDRESS FIELD)) OF UUO-1 + ORIGINAL + C(AC)= 777777777777 ;C(C(ADDRESS FIELD)) OF UUO + C(E) = 576345670135 ;C(C(AC)) OF UUO + + MAINDEC-10-DAKBA.TXT + PAGE 8 + +5.0 ERRORS (CON'T) + + B. ERROR #2 - ERRM AC,E + -------------------------------- + + EXAMPLE: AC E + 2053 / CAME AC2,MUD ;CORRECT RESULT + 2054 / ERRM AC,RAN1 ;ORIG C(AC) ORIG C(E) + + MUD=5033 ;TEST DATA + C(MUD) = 201532107642 + C(AC2) = 201432107642 + C(RAN1)= 777777777777 + C(AC) = 576345670135 + + ERROR MESSAGE: + + (SOURCE OF NUMBERS PRINTED) + PC = 002054 ;PC OF ERROR UUO + E = 5033 ;BITS 18-35 (E) OF UUO-1 + C(E) = 201532107642 ;C(C(E)) OF UUO-1 + COR = 201432107642 ;C(C(AC)) OF UUO-1 + ORIGINAL + C(AC)= 777777777777 ;C(C(E)) OF UUO + C(E) = 576345670135 ;C(C(AC)) OF UUO + + MAINDEC-10-DAKBA.TXT + PAGE 9 + +5.0 ERRORS (CON'T) + + C. ERROR #3 - ERRI AC,E + -------------------------------- + + EXAMPLE: AC E + 2053 / CAME AC1,AC2 ;RESULT CORRECT + 2054 / ERRI RAN1,(AC) ;ORIG C(AC) ORIG E + + AC1=5 ;TEST DATA + C(AC1) = 107742670135 + C(AC2) = 107642670135 + C(RAN1)= 777777777777 + C(AC) = 576345670135 + + ERROR MESSAGE: + + (SOURCE OF NUMBERS PRINTED) + PC = 002054 ;PC OF ERROR UUO + AC = 5 ;AC FIELD OF UUO-1 + C(AC)= 107742670135 ;C(C(AC)) OF UUO-1 + COR = 107642670135 ;C(C(E)) OF UUO-1 + ORIGINAL + C(AC)= 777777777777 ;C(C(AC)) OF UUO + E = 670135 ;C(ADDRESS FIELD) OF UUO + + D. ERROR #4 - ERROR AC,E + --------------------------------- + + EXAMPLE: AC E + 2053 / CAME AC,RAN + 2054 / ERROR AC,RAN ;RESULT CORRECT + + AC=5 ;TEST DATA + C(AC) = 201532107642 + C(RAN) = 201432107642 + + ERROR MESSAGE: + + (SOURCE OF NUMBERS PRINTED) + PC = 002054 ;PC OF ERROR UUO + AC = 5 ;AC FIELD OF UUO + C(AC)= 201532107642 ;C(C(AC)) OF UUO + COR = 201432107642 ;C(C(E)) OF UUO + + MAINDEC-10-DAKBA.TXT + PAGE 10 + +5.0 ERRORS (CON'T) + + E. ERROR #5 - ER AC,[ASCII/MESSAGE/] + --------------------------------------------- + + EXAMPLE: AC E + 2053 / JFCL 10,.+2 + 2054 / ER AC,[ASCII/OV/] ;RESULT MESSAGE + + AC=5 ;TEST DATA + C(AC) = 201432107642 + + ERROR MESSAGE: + + (SOURCE OF NUMBERS PRINTED) + PC = 002054 ;PC OF ERROR UUO + AC = 5 ;AC FIELD OF UUO + C(AC)= 201432107642 OV ;C(C(AC)) OF UUO + ;ADDRESS FIELD OF UUO POINTS TO AN + ;ASCII MESSAGE + + F. ERROR #6 - ERM AC,E + ------------------------------- + + EXAMPLE: AC E + 2053 / SOJ AC2, + 2054 / ERM AC1,(AC2) ;C(AC) RESULT + + C(AC2)=5033 ;TEST DATA + C(AC) = 740000005756 + C(C(AC2)=254000004041 + + ERROR MESSAGE: + + (SOURCE OF NUMBERS PRINTED) + PC = 002054 ;PC OF ERROR UUO + E = 5033 ;BITS 18-35 (E) OF UUO + C(AC)= 740000005756 ;C(AC) OF UUO + C(E) = 254000004041 ;C(C(E)) OF UUO + + MAINDEC-10-DAKBA.TXT + PAGE 11 + +5.0 ERRORS (CON'T) + + G. ERROR #7 - ERMM AC,E + -------------------------------- + + EXAMPLE: AC E + 2053 / SOJ AC2, + 2054 / ERMM AC1,(AC2) ;C(AC) RESULT + + C(AC2)=5033 ;TEST DATA + C(AC1) = 740000005756 + + ERROR MESSAGE: + + (SOURCE OF NUMBERS PRINTED) + PC = 002054 ;PC OF ERROR UUO + E = 5033 ;BITS 18-35 (E) OF UUO + C(AC)= 740000005756 ;C(AC) OF UUO + + + H. ERROR #11 - EERR ,E + -------------------------------- + + I. ERROR #12 - EERRM ,E + -------------------------------- + + J. ERROR #13 - EERRI ,E + -------------------------------- + + ERRORS 11,12 AND 13 ARE THE SAME AS ERRORS 1,2 AND 3 EXCEPT + THAT THE AC OF THE UUO IS REPLACED BY C(RAN). IN + OTHER WORDS C(RAN) WILL BE PRINTED FOR THE ORIGINAL + C(E). + MAINDEC-10-DAKBA.TXT + PAGE 12 + +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 + + A. NORMAL OPERATION - APPROXIMATELY FIVE SECONDS. + + B. RELIABILITY MODE - APPROXIMATELY 1.5 TO 3 MINUTES. + +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. + + MAINDEC-10-DAKBA.TXT + PAGE 13 + +8.0 OPERATIONAL VARIATIONS (CON'T) + + 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 'DAKBA.TMP' + + EXAMPLE DEVICE ASSIGNMENT: + + .ASSIGN DSK DEV + + IN USER MODE THE PROGRAM WILL MAKE 1000(8) PASSES AND THEN + RETURN TO DIAMON COMMAND MODE. + + 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 +``` + +DAKBA.HST +--------- + + THIS IS A HISTORY OF THE DEVELOPMENT OF MAINDEC-10-DAKBA + + ************************************************************************ + + PRODUCT CODE: MAINDEC-10-DAKBA + + PRODUCT NAME: KA10 BASIC INSTRUCTION RELIABILITY # 1 + + DATE RELEASED: JANUARY 1977 + + VERSION: 0.2 + + UPDATE AUTHOR: JOHN R. KIRCHOFF + + CHANGES MADE: + + 1. UPGRADE TO ALLOW COMPATABILITY WITH THE SUBROUTINE PACKAGE. + 2. PROGRAM REPLACES OLD D0XX KA10 SERIES DIAGNOSTIC + + ************************************************************************ + +DAKBA.MAC +--------- + +[[Download](DAKBA.MAC.txt)] + +{% highlight text %} +{% include_relative DAKBA.MAC.txt %} +{% endhighlight %}