From c380e2cad24bce5d072c9af1457c0fb00fdaab07 Mon Sep 17 00:00:00 2001 From: Jeff Date: Wed, 29 Mar 2017 10:30:02 -0700 Subject: [PATCH] Added PDP-10 diagnostic #6 (MAINDEC-10-DAKAF) --- apps/pdp10/diags/klad/README.md | 1 + apps/pdp10/diags/klad/dakaf/DAKAF.LST.txt | 6826 ++++++++++++++++++++ apps/pdp10/diags/klad/dakaf/DAKAF.MAC.txt | 3219 +++++++++ apps/pdp10/diags/klad/dakaf/DAKAFM.MAC.txt | 3207 +++++++++ apps/pdp10/diags/klad/dakaf/README.md | 276 + modules/pdp10/lib/debugger.js | 2 +- 6 files changed, 13530 insertions(+), 1 deletion(-) create mode 100644 apps/pdp10/diags/klad/dakaf/DAKAF.LST.txt create mode 100644 apps/pdp10/diags/klad/dakaf/DAKAF.MAC.txt create mode 100644 apps/pdp10/diags/klad/dakaf/DAKAFM.MAC.txt create mode 100644 apps/pdp10/diags/klad/dakaf/README.md diff --git a/apps/pdp10/diags/klad/README.md b/apps/pdp10/diags/klad/README.md index b44775e5a..170a9cff8 100644 --- a/apps/pdp10/diags/klad/README.md +++ b/apps/pdp10/diags/klad/README.md @@ -15,3 +15,4 @@ PCjs has archived selected files from - [KA10 Basic Instruction Diagnostic #3 (MAINDEC-10-DAKAC)](dakac/) - [KA10 Basic Instruction Diagnostic #4 (MAINDEC-10-DAKAD)](dakad/) - [KA10 Basic Instruction Diagnostic #5 (MAINDEC-10-DAKAE)](dakae/) +- [KA10 Basic Instruction Diagnostic #6 (MAINDEC-10-DAKAF)](dakaf/) diff --git a/apps/pdp10/diags/klad/dakaf/DAKAF.LST.txt b/apps/pdp10/diags/klad/dakaf/DAKAF.LST.txt new file mode 100644 index 000000000..0206a7346 --- /dev/null +++ b/apps/pdp10/diags/klad/dakaf/DAKAF.LST.txt @@ -0,0 +1,6826 @@ +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 1 +DAKAFT MAC 19-JAN-77 17:08 DIAGNOSTIC PARAMETERS SEQ 0007 + + 1 ;DAKAF + 2 + 3 + 4 + 5 000002 DECVER==2 + 6 000000 MCNVER==0 + 7 + 8 XLIST + 9 LIST + 10 LALL + 11 NAME \MCNVER,\DECVER^ + 12 + 13 TITLE DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 + 14 ^ + 15 + 16 ;TEST DESIGNED FOR INITIAL DEBUGGING OF PROCESSOR HARDWARE + 17 ;AND TO DETECT (SOLID) FAILURES IN THE FIELD. + 18 + 19 ;COPYRIGHT 1972,1977 + 20 ;DIGITAL EQUIPMENT CORPORATION + 21 ;MARLBORO, MASS. 01752 + 22 + 23 ;JOHN R. KIRCHOFF + 24 + 25 000137 LOC 137 + 26 000137 000000 000002 MCNVER,,DECVER + 27 + 28 NOSYM +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 2 +DAKAFT MAC 19-JAN-77 17:08 DIAGNOSTIC PARAMETERS SEQ 0008 + + 29 SUBTTL DIAGNOSTIC PARAMETERS + 30 + 31 ;PARAMETER DEFINITIONS + 32 000001 EXCASB==1 + 33 000001 USRASB==1 + 34 000001 PGMEND==1 + 35 000100 DEBUG==100 + 36 + 37 ;FLAG DEFINITIONS + 38 010000 USERF=10000 ;USER MODE FLAG + 39 + 40 + 41 ;MACROS + 42 + 43 ;SPECIAL FEATURE PARAMETERS + 44 + 45 030712 SADR1=START + 46 030712 SADR2=START + 47 030712 SADR3=START + 48 030712 SADR4=START + 49 254000 030712 SADR5=JRST START + 50 254000 030712 SADR6=JRST START + 51 254000 030712 SADR7=JRST START + 52 254000 030712 SADR8=JRST START + 53 254000 030712 SADR9=JRST START + 54 254000 030712 SADR10=JRST START + 55 254000 030712 SADR11=JRST START + 56 + 57 000000 PAREA0=0 + 58 000000 PAREA1=0 + 59 000000 PAREA2=0 + 60 444153 414600 PAREA3=SIXBIT/DAKAF/ + 61 645560 000000 PAREA4=SIXBIT/TMP/ + 62 000000 PAREA5=0 + 63 000000 PAREA6=0 + 64 001000 ITERAT==1000 + 65 000001 PGMEND==1 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 3 +DAKAFT MAC 19-JAN-77 17:08 DIAGNOSTIC PARAMETERS SEQ 0009 + + 66 SUBTTL DIAGNOSTIC PARAMETERS + 67 + 68 ;ACCUMULATOR ASSIGNMENTS + 69 + 70 ;CONTROL WORDS + 71 + 72 400000 AROV=400000 ;ARITHMETIC OVERFLOW + 73 200000 CRY0=200000 ;CARRY 0 + 74 100000 CRY1=100000 ;CARRY 1 + 75 040000 FOV=40000 ;FLOATING OVERFLOW + 76 020000 BIS=20000 ;BYTE INTERRUPT + 77 010000 USERF=10000 ;USER MODE FLAG + 78 004000 EXIOT=4000 ;USER PRIV I/O FLAG + 79 000100 FXU=100 ;FLOATING UNDERFLOW + 80 000040 DCK=40 ;DIVIDE CHECK + 81 + 82 + 83 ;MACROS + 84 + 85 ; STOP - USED FOR SCOPE LOOP, IF INSTRUCTION FAILS, CHANGE (JUMPA .+1) + 86 ; TO A (JUMPA X) TO CYCLE ON FAILING INSTRUCTION + 87 + 88 DEFINE STOP (A)< + 89 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 90 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 91 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 92 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 93 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1> + 94 + 95 ; SFLAG - USED TO CLEAR ALL FLAGS THEN TO SET REQUESTED FLAG + 96 + 97 DEFINE SFLAG (A)< + 98 MOVSI 1,A + 99 JFCL 17,.+1 ;RESET ALL FLAGS + 100 JRST 2,.+1(1) ;SET A FLAG> +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 1 +PARAM KLM 18-JAN-77 11:38 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 SEQ 0010 + + 101 SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 + 102 + 103 DEFINE S,<;*********************************************************************> + 104 + 105 S^;*********************************************************************^ + 106 ;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE) + 107 ;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE + 108 ;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS + 109 S^;*********************************************************************^ + 110 + 111 400000 ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION + 112 200000 RSTART==200000 ;RESTART TEST, PRINT TOTALS + 113 100000 TOTALS==100000 ;PRINT TOTALS, CONTINUE + 114 + 115 040000 NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED) + 116 020000 PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE) + 117 010000 DING== 010000 ;RING BELL ON ERROR + 118 + 119 004000 LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR + 120 002000 ERSTOP==002000 ;HALT ON TEST ERROR + 121 001000 PALERS==001000 ;PRINT ALL ERRORS + 122 + 123 000400 RELIAB==000400 ;RELIABILITY MODE + 124 000200 TXTINH==000200 ;INHIBIT ERROR TEXT + 125 000100 INHPAG==000100 ;INHIBIT PAGING + 126 + 127 000040 MODDVC==000040 ;MODIFY DEVICE CODE + 128 000020 INHCSH==000020 ;INHIBIT CACHE + 129 000010 OPRSEL==000010 ;OPERATOR SELECTION + 130 + 131 000004 CHAIN== 000004 ;CHAIN CONTROL SWITCH + 132 + 133 000002 KAHZ50==000002 ;KA10 50 HERTZ POWER + 134 + 135 ;SWITCH 17 RESERVED !!! +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 2 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0011 + + 136 SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 + 137 + 138 S^;*********************************************************************^ + 139 ;*SPECIAL SUBPROGRAM LINKAGES + 140 S^;*********************************************************************^ + 141 + 142 027772 FSELNK= 27772 ;FILE SELECT LINK + 143 027773 FRDLNK= 27773 ;FILE READ LINK + 144 027774 LDLNK= 27774 ;LOAD LINKAGE ADDRESS + 145 027775 DDTLNK= 27775 ;DDT LINKAGE ADDRESS + 146 027776 MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS + 147 027777 SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS + 148 + 149 S^;*********************************************************************^ + 150 ;*SPECIAL SUBROUTINE FATAL HALTS + 151 ;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE + 152 S^;*********************************************************************^ + 153 + 154 ;ADDRESS TAG REASON + 155 ;--------------------- + 156 + 157 ; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION + 158 ; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR + 159 ; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR + 160 ; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT + 161 ; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL + 162 ; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET + 163 ; 1016 CPIERR ;CPU INITIALIZATION ERROR + 164 ; 1017 EOPERR ;END OF PROGRAM ERROR + 165 ; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT + 166 + 167 S^;*********************************************************************^ +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 3 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0012 + + 168 S^;*********************************************************************^ + 169 ;OPERATOR DEFINITIONS (NON-UUO'S) + 170 S^;*********************************************************************^ + 171 + 172 260740 000000 OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL + 173 263740 000000 OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN + 174 261740 000000 OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST + 175 262740 000000 OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST + 176 254000 000000 OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S + 177 254200 000000 OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT + 178 254100 000000 OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT + 179 254500 000000 OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT + 180 + 181 S^;*********************************************************************^ + 182 ;*SUBROUTINE INITIALIZATION CALL + 183 S^;*********************************************************************^ + 184 + 185 265000 030011 OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION + 186 + 187 S^;*********************************************************************^ + 188 ;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION). + 189 S^;*********************************************************************^ + 190 + 191 037640 000004 OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT + 192 037600 000004 OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT + 193 + 194 S^;*********************************************************************^ + 195 ;*TERMINAL INPUT UUO'S + 196 ;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE + 197 ;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE. + 198 S^;*********************************************************************^ + 199 + 200 037000 000003 OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER + 201 037040 000003 OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y + 202 037100 000003 OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N + 203 037140 000003 OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD + 204 037200 000003 OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD + 205 037240 000003 OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD + 206 037300 000003 OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK + 207 037340 000003 OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK + 208 037400 000003 OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD + 209 037440 000003 OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 4 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0013 + + 210 ;*TERMINAL OUTPUT UUO'S. + 211 + 212 037000 000000 OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD + 213 037000 000001 OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED + 214 037740 000000 OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE + 215 037740 000001 OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED + 216 037600 000003 OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE + 217 037640 000003 OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED + 218 037000 000000 OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE + 219 037040 000000 OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED + 220 037100 000000 OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE + 221 037200 000000 OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED + 222 037000 000000 OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE + 223 037040 000000 OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED + 224 037500 000000 OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER + 225 037500 000001 OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED + 226 037040 000000 OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT + 227 037040 000001 OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED + 228 037100 000000 OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS + 229 037100 000001 OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED + 230 037140 000000 OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS + 231 037140 000001 OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED + 232 037200 000000 OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS + 233 037200 000001 OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED + 234 037240 000000 OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS + 235 037240 000001 OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED + 236 037300 000000 OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS + 237 037300 000001 OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED + 238 037340 000000 OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS + 239 037340 000001 OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED + 240 037440 000000 OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS + 241 037440 000001 OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED. + 242 037400 000000 OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS + 243 037400 000001 OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED + 244 037600 000000 OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL + 245 037600 000001 OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED + 246 037540 000000 OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6 + 247 037540 000001 OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED + 248 037700 000003 OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S + 249 037740 000003 OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED + 250 037640 000000 OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S + 251 037640 000001 OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED + 252 037700 000000 OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S + 253 037700 000001 OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED + 254 037200 000002 OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME + 255 037000 000002 OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD + 256 037040 000002 OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED + 257 037240 000002 OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE + 258 037100 000002 OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD + 259 037140 000002 OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED + 260 037000 030242 OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED + 261 037040 030242 OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED + 262 037000 000040 OPDEF PSP [37B8!0B12!40] ;PRINT SPACE + 263 037040 000040 OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED + 264 037000 030243 OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 4-1 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0014 + + 265 037040 030243 OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED + 266 037040 000007 OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL + 267 + 268 037040 000026 OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE + 269 + 270 DEFINE PMSG (ARG),< + 271 PSIXM [SIXBIT\ARG'_\]> + 272 + 273 DEFINE PMSGF (ARG),< + 274 PSIXMF [SIXBIT\ARG'_\]> + 275 + 276 ;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING + 277 ;* CONSERVES CORE OVER ASCIZ + 278 + 279 DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]> + 280 + 281 ;*CONSOLE SWITCH INPUT UUO. + 282 ;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF + 283 ;* USER MODE. + 284 + 285 037400 000002 OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES + 286 + 287 ;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION + 288 ;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR. + 289 + 290 037540 000004 OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK + 291 037200 000004 OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER + 292 + 293 ;*KL10 ONLY CACHE OPERATION UUO'S + 294 + 295 037040 000004 OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE + 296 037100 000004 OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH + 297 037140 000004 OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 5 +PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0015 + + 298 ;*END OF PASS/PROGRAM UUOS + 299 + 300 ;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT, + 301 ;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC. + 302 + 303 037500 000004 OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS + 304 037700 000004 OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO + 305 + 306 ;*MEMORY MANAGEMENT UUO'S + 307 ;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING, + 308 ;*ADDRESS CONVERSION, ETC... + 309 + 310 037000 000004 OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY + 311 037500 000002 OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY + 312 037440 000002 OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT + 313 037540 000002 OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT + 314 037640 000002 OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK + 315 037600 000002 OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP + 316 037740 000002 OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP + 317 + 318 ;*DEVICE CODE MODIFICATION UUO + 319 ;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO + 320 ;*IOT'S TO A DIFFERENT DEVICE CODE. + 321 + 322 037340 000002 OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER + 323 037300 000002 OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM + 324 + 325 030000 IFNDEF MODDVL, + 326 030000 IFNDEF MODDVU, + 327 + 328 ;*"DIAMON" FILE SELECTION AND READ UUOS + 329 + 330 037240 000004 OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION + 331 037300 000004 OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA + 332 037340 000004 OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA + 333 037400 000004 OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA + 334 + 335 ;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES + 336 + 337 037700 000002 OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE + 338 + 339 XLIST + 340 IFNDEF KLOLD, + 366 + 367 ;*A MACRO TO REPORT AN ERROR AND NOT LOOP + 368 + 369 DEFINE ERROR1 (FORMAT,CORECT,ACTUAL,F,D,ERR)< + 370 SALL + 371 ERUUO FORMAT,[T,,[SIXBIT\F'_\] + 372 CORECT,,ACTUAL + 373 [SIXBIT\D'_\],,ERR] + 374 XALL > + 375 + 376 >;END OF KLOLD CONDITIONAL + 377 + 378 XLIST + 379 LIST +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 1 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0017 + + 380 SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 + 381 + 382 030000 LOC 30000 + 383 + 384 S^;*********************************************************************^ + 385 ;*PROGRAM STARTING ADDRESSES + 386 ;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS + 387 ;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE + 388 ;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER + 389 ;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS. + 390 S^;*********************************************************************^ + 391 + 392 030000 254 00 1 00 027776 BEGIN: JRST @MODLNK ;STAND-ALONE START + 393 030001 254 00 0 00 030712 $START: JRST START ;MODE CHECK STARTING ADDRESS + 394 + 395 030002 254 00 1 00 027774 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START + 396 + 397 030003 254 00 1 00 027774 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START + 398 + 399 030004 254 00 0 00 030712 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START + 400 + 401 030005 254 00 0 00 030712 PFSTRT: JRST SADR2 ;POWER FAIL RESTART + 402 + 403 030006 254 00 0 00 030712 REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY) + 404 + 405 030007 SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT" + 406 030007 254 00 1 00 027775 DDTSRT: JRST @DDTLNK ;DDT START + 407 + 408 030010 254 00 0 00 030741 BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE) + 409 030011 254 00 1 00 027777 SBINIT: JRST @SUBLNK ;PMGINT LINKAGE + 410 030012 000000 000000 RETURN: 0 ;RETURN ADDRESS STORAGE + 411 + 412 030013 254000 030712 START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS + 413 030014 254000 030712 START2: SADR8 ; " + 414 030015 254000 030712 START3: SADR9 ; " + 415 030016 254000 030712 START4: SADR10 ; " + 416 030017 254000 030712 START5: SADR11 ; " +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 2 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0018 + + 417 S^;*********************************************************************^ + 418 ;*PROGRAM FIXED PARAMETER AREA + 419 S^;*********************************************************************^ + 420 + 421 030020 444153 414600 PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME + 422 030021 645560 000000 PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION + 423 030022 000000 000000 RANDBS: PAREA1 ;RANDOM BASE NUMBER + 424 030023 000000 000000 SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES + 425 030024 000000 001000 ITRCNT: ITERAT ;PROGRAM ITERATIONS + 426 030025 000000 030725 $PNAME: PGMNAM ;POINTER TO PROGRAMS NAME + 427 030026 000000 000002 $PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL + 428 030027 000000 030000 $MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT + 429 030030 000000 030000 $MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT + 430 030031 777777 777777 $EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED + 431 030032 777777 777777 $UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED + 432 030033 000000 000000 $DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE + 433 030034 000000 000000 $MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS + 434 030035 000000 000000 PAREA7: PAREA5 ;OPTIONAL PARAMETER + 435 030036 000000 000000 PAREA8: PAREA6 ;OPTIONAL PARAMETER + 436 + 437 S^;*********************************************************************^ + 438 ;*PROGRAM VARIABLE PARAMETER AREA + 439 S^;*********************************************************************^ + 440 + 441 030037 000000 000000 USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG + 442 030040 000000 000000 KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10 + 443 030041 000000 000000 KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10 + 444 030042 777777 777777 MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG + 445 030043 000000 000000 MONCTL: 0 ;DIAG MON/SYS EXR FLAG + 446 030044 000000 000000 MONTEN: 0 ;-1= LOADED BY 10 + 447 030045 000000 000000 CLOCKF: 0 ;CLOCK TICKED FLAG + 448 030046 000000 000000 CONSW: 0 ;CONSOLE SWITCH SETTINGS + 449 030047 000000 000000 PASCNT: 0 ;PROGRAM PASS COUNT + 450 030050 000000 000000 RUNFLG: 0 ;PROGRAM RUN FLAG + 451 030051 000000 000000 TESTPC: 0 ;SUBTEST PC + 452 030052 000000 000000 ERRPC: 0 ;ERROR PC + 453 030053 000000 000000 ERRTLS: 0 ;ERROR TOTALS + 454 030054 000000 000000 TICKS: 0 ;PROGRAM RUNNING TIME + 455 030055 000000 000000 MARGIN: 0 ;KI10 MARGIN WORD VALUE + 456 030056 000000 000000 $ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 3 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0019 + + 457 S^;*********************************************************************^ + 458 ;*SPECIAL PROGRAM DISPATCH ADDRESSES + 459 S^;*********************************************************************^ + 460 + 461 030057 037 12 0 00 000004 BEGEND: ENDUUO ;END OF PASS + 462 030060 254 00 0 00 030010 $BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM + 463 030061 037 16 0 00 000004 $BEND2: EOPUUO ;END OF PROGRAM - NO RETURN + 464 030062 254000 030712 CNTLC: SADR5 ;CONTROL C XFER ADDRESS + 465 030063 254000 030712 ALTMGO: SADR6 ;ALTMODE XFER ADDRESS + 466 030064 CPOPJ1: ;SKIP RETURN + 467 030064 350 00 0 17 000000 UUOSKP: AOS (P) ;SKIP RETURN FROM UUO + 468 030065 CPOPJ: ;NON-SKIP REGULAR RETURN + 469 030065 263 17 0 00 000000 UUOEXT: RTN ;UUO RETURN + 470 030066 255 00 0 00 000000 UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE + 471 030067 255 00 0 00 000000 $UORTX: JFCL ;ADDITIONAL UUO LINKAGE + 472 030070 255 00 0 00 000000 $UUOER: JFCL ;INITED AS (JRST $UOERX) + 473 030071 255 00 0 00 000000 $ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE + 474 030072 255 00 0 00 000000 $ITRX1: JFCL ; " + 475 030073 255 00 0 00 000000 $USRHL: JFCL ; " + 476 030074 255 00 0 00 000000 $RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE + 477 030075 255 00 0 00 000000 $RSRTY: JFCL ; " + 478 030076 255 00 0 00 000000 RESRT1: JFCL ; INITED AS (JRST RESRTX) + 479 030077 255 00 0 00 000000 RESRT2: JFCL ; " + 480 030100 255 00 0 00 000000 $PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE + 481 030101 255 00 0 00 000000 ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE + 482 030102 254 04 0 00 030102 HALT . ;IMPROPER TRANSFER HALT + 483 + 484 030103 000000 000000 $PSHER: 0 ;INITED AS (JRST PSHERR) + 485 030104 000000 000000 ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT + 486 030105 000000 000000 0 ;INITED AS (JRST $ITRC1) + 487 + 488 S^;*********************************************************************^ + 489 ;*PROCESSOR CONTROL STORAGE + 490 S^;*********************************************************************^ + 491 + 492 030106 000000 000000 $ACC0: 0 ;INTERRUPT SAVED AC0 + 493 030107 000000 000000 $SVPI: 0 ;INTERRUPT SAVED PI + 494 030110 000000 000000 $SVAPR: 0 ;INTERRUPT SAVED APR + 495 030111 000000 000000 $SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI) + 496 030112 000000 000000 $SPAG1: 0 ;INTERRUPT SAVED PAG (CONI) + 497 + 498 030113 000000 000000 $SVUUO: 0 ;CURRENT USERS UUO + 499 030114 000000 000000 $SVUPC: 0 ;PC OF CURRENT USERS UUO + 500 + 501 030115 000000 000000 REPTU: 0 ;REPEAT UUO ITERATIONS + 502 030116 000000 000000 SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG + 503 030117 000000 000000 %CORFLG:0 ; " CORRECT FLAG + 504 030120 000000 000000 %COREC: 0 ; " CORRECT DATA + 505 030121 000000 000000 %ACTFL: 0 ; " ACTUAL FLAG + 506 030122 000000 000000 %ACTUL: 0 ; " ACTUAL DATA + 507 030123 000000 000000 %DISCR: 0 ; " DISCREPENCY DATA +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 4 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0020 + + 508 S^;*********************************************************************^ + 509 ;*UUO DISPATCH TABLE + 510 S^;*********************************************************************^ + 511 XLIST + 512 LIST + 513 030124 030070 030070 UUODIS: LUUO1,,$UUOER + 514 030125 030070 030070 LUUO3,,LUUO2 + 515 030126 030070 030070 LUUO5,,LUUO4 + 516 030127 030070 030070 LUUO7,,LUUO6 + 517 030130 030070 030070 LUUO11,,LUUO10 + 518 030131 030070 030070 LUUO13,,LUUO12 + 519 030132 030070 030070 LUUO15,,LUUO14 + 520 030133 030070 030070 LUUO17,,LUUO16 + 521 030134 030070 030070 LUUO21,,LUUO20 + 522 030135 030070 030070 LUUO23,,LUUO22 + 523 030136 030070 030070 LUUO25,,LUUO24 + 524 030137 030070 030070 LUUO27,,LUUO26 + 525 030140 030070 030070 LUUO31,,LUUO30 + 526 030141 030070 030070 LUUO33,,LUUO32 + 527 + 528 S^;*********************************************************************^ + 529 ;*MEMORY MANAGMENT STORAGE + 530 S^;*********************************************************************^ + 531 + 532 030142 000000 000000 DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT + 533 030143 000000 000000 MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING + 534 030144 000000 000000 MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.) + 535 030145 000000 000000 MEMLOW: 0 ;LOWEST USABLE MEMORY + 536 030146 MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE + 537 + 538 S^;*********************************************************************^ + 539 ;*PRINT CONTROL STORAGE + 540 S^;*********************************************************************^ + 541 + 542 030217 000000 000000 PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE + 543 030220 000000 000000 PNTENB: 0 ;PRINT ENABLE + 544 030221 000000 000000 PDISF: 0 ;PRINT DISABLED FLAG + 545 030222 000000 000000 PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS + 546 030223 000000 000000 PNTSPC: 0 ;PRINT SPACE CONTROL + 547 030224 000000 000000 OPTIME: 0 ;TYPE-IN WAIT TIME + 548 030225 000000 000000 $TWCNT: 0 ;TIME WAITED + 549 030226 000000 000000 $DVOFF: 0 ;LOGICAL DEVICE INITED FLAG + 550 030227 000000 000000 TTYFIL: 0 ;TTY EXEC FILLERS FLAG + 551 030230 000000 000000 TTYSPD: 0 ;TTY EXEC BAUD RATE + 552 030231 000000 000000 $TTCHR: 0 ;ACTUAL TYPED IN CHAR + 553 030232 000000 000000 $CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR + 554 030233 000000 000000 $TYPNB: 0 ;TYPED IN NUMBER + 555 030234 000000 000000 $CRLF: 0 ;FREE CR/LF FLAG + 556 030235 000000 000000 $TABF: 0 ;TAB CONVERSION FLAG + 557 030236 000000 000000 $FFF: 0 ;FORM FEED CONVERSION FLAG + 558 030237 000000 000000 $VTF: 0 ;VERTICAL TAB CONVERSION FLAG + 559 030240 000000 000000 USRLFF: 0 ;USER LF FILLERS + 560 030241 000000 000000 USRCRF: 0 ;USER CR FILLERS +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 5 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0021 + + 561 S^;*********************************************************************^ + 562 ;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED + 563 ;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS: + 564 ;* MOVEI NAME + 565 ;* PNTA ;OR PNTAF + 566 S^;*********************************************************************^ + 567 + 568 030242 CRLF: ASCII/ + 569 030242 015 012 000 000 000 / + 570 030243 CRLF2: ASCII/ + 571 + 572 030243 015 012 015 012 000 / + 573 030244 054 000 000 000 000 COMMA: ASCII/,/ + 574 030245 056 000 000 000 000 PERIOD: ASCII/./ + 575 030246 040 000 000 000 000 SPACE: ASCII/ / + 576 030247 011 000 000 000 000 TAB: ASCII/ / + 577 030250 MINUS: + 578 030250 055 000 000 000 000 HYPEN: ASCII/-/ + 579 030251 053 000 000 000 000 PLUS: ASCII/+/ + 580 030252 052 000 000 000 000 AST: ASCII/*/ + 581 030253 100 000 000 000 000 ATSIN: ASCII/@/ + 582 030254 050 000 000 000 000 LFP: ASCII/(/ + 583 030255 051 000 000 000 000 RTP: ASCII/)/ + 584 030256 007 0000000000 BELL: BYTE (7) 007 + 585 030257 077 000 000 000 000 QUEST: ASCII/?/ + 586 030260 057 000 000 000 000 SLASH: ASCII!/! + 587 030261 044 000 000 000 000 DOLLAR: ASCII/$/ + 588 030262 000000 000012 RADIX: ^D10 ;DECIMAL PRINT RADIX + 589 030263 000000 000040 RADLSP: 40 ;DECIMAL PRINT LEADING CHAR + 590 030264 000000 000012 RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT + 591 + 592 S^;*********************************************************************^ + 593 ;*USER MODE OUTPUT FILE INFORMATION + 594 S^;*********************************************************************^ + 595 + 596 030265 $OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER + 597 030270 60 62 51 56 64 00 $OUTNM: SIXBIT /PRINT/ ;FILE NAME + 598 030271 60 56 64 00 00 00 $OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION + 599 030272 BLOCK 2 + 600 + 601 S^;*********************************************************************^ + 602 ;*DISK UPDATE MODE FILE INFORMATION + 603 S^;*********************************************************************^ + 604 + 605 030274 $IBUF: BLOCK 3 + 606 030277 60 62 51 56 64 00 $INNM: SIXBIT /PRINT/ + 607 030300 60 56 64 00 00 00 $INEXT: SIXBIT /PNT/ + 608 030301 BLOCK 2 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 6 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0022 + + 609 S^;*********************************************************************^ + 610 ;*PUSHDOWN LIST CONTROL INFORMATION + 611 S^;*********************************************************************^ + 612 + 613 030303 777577 030303 PLIST: PLIST-PLISTE,,PLIST + 614 030304 PLISTS: BLOCK 200 + 615 030504 000000 000000 PLISTE: 0 ;END OF PUSHDOWN LIST + 616 + 617 S^;*********************************************************************^ + 618 ;*POWER LINE CLOCK FREQUENCY FLAG + 619 S^;*********************************************************************^ + 620 + 621 030505 000000 000000 CYCL60: 0 ;0 = 60, -1 = 50 CYCLE + 622 + 623 S^;*********************************************************************^ + 624 ;*KL10 CACHE CONTROL FLAGS + 625 S^;*********************************************************************^ + 626 + 627 030506 000000 000000 CSHFLG: 0 ;ALLOW CACHE IF 0 + 628 030507 000000 000000 CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0 + 629 + 630 S^;*********************************************************************^ + 631 ;*NUMBER INPUT DIGIT FLAG + 632 S^;*********************************************************************^ + 633 + 634 030510 000000 000000 TTNBRF: 0 ;-1 IF ANY DIGIT TYPED + 635 + 636 S^;*********************************************************************^ + 637 ;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION + 638 S^;*********************************************************************^ + 639 + 640 030511 000000 000000 PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION + 641 + 642 S^;*********************************************************************^ + 643 ;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS + 644 S^;*********************************************************************^ + 645 + 646 030512 000000 000000 %ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO + 647 030513 000000 000000 %ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO + 648 030514 000000 000000 %ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO + 649 + 650 S^;*********************************************************************^ + 651 ;*SPECIAL USERS UUO INTERCEPT INSTRUCTION + 652 S^;*********************************************************************^ + 653 + 654 030515 000000 000000 $$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 7 +FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0023 + + 655 S^;*********************************************************************^ + 656 ;*KL10 PROCESSOR TYPE FLAG, 0=P0, 1=BBD NEW, 2=BBD OLD + 657 S^;*********************************************************************^ + 658 + 659 030516 000000 000000 KLTYP: 0 + 660 + 661 S^;*********************************************************************^ + 662 ;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION + 663 S^;*********************************************************************^ + 664 + 665 030517 000000 000000 $$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER + 666 + 667 S^;*********************************************************************^ + 668 ;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION + 669 S^;*********************************************************************^ + 670 + 671 030520 000000 000000 $$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR + 672 + 673 S^;*********************************************************************^ + 674 ;*"SWITCH" CALL USAGE CONTROL + 675 S^;*********************************************************************^ + 676 + 677 030521 000000 000000 $$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES + 678 + 679 S^;*********************************************************************^ + 680 ;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS + 681 S^;*********************************************************************^ + 682 + 683 030522 000000 000000 $$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL + 684 030523 000000 000000 $$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL + 685 + 686 S^;*********************************************************************^ + 687 ;*SPECIAL FUTURE EXPANSION ROOM + 688 ;*IF ANY FIXED AREA TAGS ARE ADDED, REDUCE THE SIZE OF + 689 ;*THIS BLOCK STATEMENT ACCORDINGLY. THIS MUST BE DONE + 690 ;*SO THAT PREVIOUS FIXED ASSIGNMENTS DO NOT CHANGE. + 691 S^;*********************************************************************^ + 692 + 693 030524 BLOCK 53 ;HOPEFULLY THIS IS ENOUGH FOREVER + 694 + 695 S^;*********************************************************************^ + 696 ;*END OF FIXED STORAGE + 697 S^;*********************************************************************^ + 698 + 699 030577 $ENDFX=&<777700>-1 + 700 030577 LOC $ENDFX + 701 030577 000000 000000 ENDFIX: 0 ;END OF FIXED STORAGE +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 1 +SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0024 + + 702 SUBTTL *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 + 703 + 704 ;NEW DEFINITIONS USED BY THE KL10 SUBROUTINE PACKAGE + 705 + 706 000000 AC0= 0 + 707 030000 DIAGNOS=30000 ;PDP-10 DIAGNOSTIC START ADDRESS + 708 010000 DDT= 10000 ;PDP-10 DDT START ADDRESS + 709 020000 DIAMON= 20000 ;PDP-10 DIAMON LOADER START ADDRESS + 710 020000 DONG11= 1B22 ;11 DOORBELL (FROM THE 10) + 711 + 712 ;DTE20 DEVICE CODES + 713 + 714 000200 DTE== 200 ;DTE0 + 715 000204 DTE0== 204 + 716 000204 DTE1== 204 + 717 000210 DTE2== 210 + 718 000214 DTE3== 214 + 719 + 720 ;KL10 EPT COMMUNICATION AREA + 721 + 722 000440 $STD= 440 ;PDP-10 DIAGNOSTIC START ADDRESS + 723 000441 $DDT= 441 ;PDP-10 DDT START ADDRESS + 724 000442 $STL= 442 ;PDP-10 LOADER START ADDRESS + 725 000443 $STM= 443 ;PDP-10 MONITOR START ADDRESS + 726 + 727 000444 $DTFLG= 444 ;DTE20 OPERATION COMPLETE FLAG + 728 000445 $DTCLK= 445 ;DTE20 CLOCK INTERRUPT FLAG + 729 000446 $DTCI= 446 ;DTE20 CLOCK INTERRUPT INSTRUCTION + 730 000447 $DTT11= 447 ;DTE20 10 TO 11 ARGUMENT + 731 000450 $DTF11= 450 ;DTE20 11 TO 10 ARGUMENT + 732 000451 $DTCMD= 451 ;DTE20 TO 11 COMMAND WORD + 733 000452 $DTSEQ= 452 ;DTE20 OPERATION SEQUENCE NUMBER + 734 000453 $DTOPR= 453 ;DTE20 OPERATIONAL DTE # + 735 000454 $DTCHR= 454 ;DTE20 LAST TYPED CHARACTER + 736 000455 $DTMTD= 455 ;DTE20 MONITOR TTY OUTPUT COMPLETE FLAG + 737 000456 $DTMTI= 456 ;DTE20 MONITOR TTY INPUT FLAG + 738 + 739 000457 $DTSWR= 457 ;DTE20 CONSOLE SWITCH REGISTER +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 2 +SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0025 + + 740 ;SPECIAL "FIXED" REASSIGNMENTS + 741 + 742 030600 $$LOC=. ;SAVE CURRENT LOCATION + 743 + 744 030000 LOC 30000 + 745 030000 254 00 0 00 030600 $$BEGIN:JRST $$START ;SETUP SPECIAL START + 746 030001 254 00 0 00 030600 JRST $$START ;"DIAMON" CHAIN START ADDRESS + 747 + 748 000440 LOC 440 + 749 000440 254 00 0 00 030000 $STD: JRST BEGIN ;SETUP FOR "STD" + 750 000443 LOC 443 + 751 000443 254 00 0 00 030636 $STM: JRST $SPEC ;SIMPLE RUN CONTROL + 752 + 753 030057 LOC 30057 + 754 030057 254 00 0 00 030641 $BEGEND:JRST $SPBEND ;SETUP SPECIAL "BEGEND" + 755 + 756 ;SPECIAL MUUO, TRAP & PAGE FAIL SETUP + 757 + 758 000420 LOC 420 + 759 000420 254 04 0 00 000420 $$420: HALT . ;KI10 PAGE FAIL + 760 000421 255 00 0 00 000000 $$421: JFCL ;OVERFLOW + 761 000422 254 04 0 00 000422 $$422: HALT . ;PUSHDOWN OVERFLOW + 762 000423 254 04 0 00 000423 $$423: HALT . ;TRAP 3 + 763 000424 000000 000000 $$424: 0 ;MMUO + 764 000425 000000 000000 $$425: 0 ;MMUO PC + 765 000426 000000 000000 $$426: 0 ;KI10-PAGE FAIL, KL10-PROCESS CONTEXT + 766 000427 254 04 0 00 000427 $$427: HALT . + 767 000430 000000 000427 $$430: 427 ;MMUO NEW PC'S + 768 000431 000000 000427 $$431: 427 + 769 000432 000000 000427 $$432: 427 + 770 000433 000000 000427 $$433: 427 + 771 000434 000000 000427 $$434: 427 + 772 000435 000000 000427 $$435: 427 + 773 000436 000000 000427 $$436: 427 + 774 000437 000000 000427 $$437: 427 + 775 + 776 000500 LOC 500 + 777 000500 000000 000000 $$500: 0 ;KL10 PAGE FAIL WORD + 778 000501 000000 000000 $$501: 0 ;KL10 PAGE FAIL PC + 779 000502 000000 000503 $$502: 503 ;KL10 PAGE FAIL NEW PC + 780 000503 254 04 0 00 000503 $$503: HALT . +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 3 +SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0026 + + 781 030600 LOC $$LOC ;RESET CURRENT LOCATION + 782 + 783 ;SPECIAL STARTUP SEQUENCE + 784 + 785 030600 402 00 0 00 030037 $$START:SETZM USER + 786 030601 265 00 0 00 030602 JSP 0,.+1 ;IN USER MODE ? + 787 030602 603 00 0 00 010000 TLNE 0,USERF + 788 030603 476 00 0 00 030037 SETOM USER ;YES, SET CONTROL WORD + 789 030604 336 00 0 00 030042 SKIPN MONFLG ;SPECIAL USER MODE ? + 790 030605 402 00 0 00 030037 SETZM USER ;YES, RUN AS EXEC + 791 030606 332 00 0 00 030037 SKIPE USER + 792 030607 254 00 0 00 030712 JRST START ;USER MODE, DON'T NEED CPU TYPE + 793 + 794 030610 336 00 0 00 030044 $STKIL: SKIPN MONTEN ;LOADED BY "DIAMON" ? + 795 030611 476 00 0 00 030024 SETOM ITRCNT ;NO, RUN FOREVER + 796 030612 402 00 0 00 030516 SETZM KLTYP + 797 030613 402 00 0 00 030041 SETZM KLFLG ;ASSUME KI10 + 798 030614 200 01 0 00 034277 MOVE 1,[1,,1] + 799 030615 251 01 0 00 000001 BLT 1,1 ;HOPE THIS WORKS + 800 030616 316 01 0 00 034277 CAMN 1,[1,,1] ;IF AC NE 1,,1 AFTER BLT, KL10 + 801 030617 254 00 0 00 030712 JRST START ;KI10, NO ADDITIONAL SETUP + 802 + 803 030620 7 000 20 0 00 010040 $STKL: CONO APR,10040 ;SET BBD NOT BIT + 804 030621 7 000 24 0 00 000000 CONI APR,0 + 805 030622 7 000 20 0 00 020040 CONO APR,20040 ;CLEAR BBD NOT BIT + 806 030623 606 00 0 00 000040 TRNN 0,40 ;IF SET, KL10 + 807 030624 350 00 0 00 030516 AOS KLTYP ;IF NOT, BBD + 808 030625 402 00 0 00 000444 SETZM $DTFLG + 809 030626 402 00 0 00 000445 SETZM $DTCLK + 810 030627 200 00 0 00 000453 MOVE $DTOPR ;GET DTE # + 811 030630 436 00 0 00 030670 ORM $$DTE0 ;INSERT IN DTE I/O INSTS + 812 030631 436 00 0 00 030672 ORM $$DTE1 + 813 030632 436 00 0 00 030704 ORM $$DTE2 + 814 030633 436 00 0 00 030706 ORM $$DTE3 + 815 030634 476 00 0 00 030041 SETOM KLFLG ;SET KL10 CONTROL FLAG + 816 030635 254 00 0 00 030712 JRST START + 817 + 818 030636 200 00 0 00 034300 $SPEC: MOVE [JRST STARTA] ;SIMPLE RUN CONTROL + 819 030637 202 00 0 00 030643 MOVEM $SPB1 + 820 030640 254 00 0 00 030712 JRST START +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 4 +SPCCPU KLM 26-FEB-76 05:50 *SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, 26-FEB-76 SEQ 0027 + + 821 ;SPECIAL "BEGEND" ROUTINE + 822 + 823 030641 350 00 0 00 030047 $SPBEND:AOS PASCNT ;INCREMENT PASS COUNT + 824 030642 370 00 0 00 030024 SOS ITRCNT ;DECREMENT ITERATION COUNT + 825 030643 336 00 0 00 030037 $SPB1: SKIPN USER + 826 030644 254 00 0 00 030652 JRST $SPBEX ;EXEC MODE + 827 + 828 030645 332 00 0 00 030024 $SPBUS: SKIPE ITRCNT ;USER MODE, COMPLETED ? + 829 030646 254 00 0 00 030741 JRST STARTA ;NO, KEEP RUNNING + 830 030647 336 00 0 00 030044 SKIPN MONTEN ;DONE, LOADED BY "DIAMON" ? + 831 030650 047 00 0 00 000012 EXIT ;NO, RETURN TO MONITOR + 832 030651 254 00 1 00 030012 JRST @RETURN ;YES, RETURN TO "DIAMON" + 833 + 834 030652 332 00 0 00 030041 $SPBEX: SKIPE KLFLG + 835 030653 254 00 0 00 030660 JRST $SPBKL ;KL10 & EXEC + 836 030654 7 004 14 0 00 030024 DATAO PI,ITRCNT ;KI10 & EXEC, DISPLAY ITER COUNT + 837 030655 332 00 0 00 030024 SKIPE ITRCNT + 838 030656 254 00 0 00 030741 JRST STARTA ;NOT COMPLETED YET + 839 030657 254 00 1 00 030012 JRST @RETURN ;DONE + 840 + 841 030660 336 00 0 00 030024 $SPBKL: SKIPN ITRCNT + 842 030661 254 00 0 00 030676 JRST $SPKLD ;KL10, EXEC & COMPLETED + 843 + 844 030662 335 00 0 00 030043 SKIPGE MONCTL + 845 030663 254 00 0 00 030741 JRST STARTA ;"DIAMON" CONTROL + 846 030664 201 00 0 00 000404 MOVEI 0,404 ;NOTIFY PDP-11 OF END OF PASS + 847 030665 202 00 0 00 000451 MOVEM 0,$DTCMD + 848 030666 402 00 0 00 000444 SETZM $DTFLG + 849 030667 336 00 0 00 030516 SKIPN KLTYP + 850 030670 7 200 20 0 00 020000 $$DTE0: CONO DTE,DONG11 + 851 030671 332 00 0 00 030516 SKIPE KLTYP + 852 030672 7 200 20 0 00 010000 $$DTE1: CONO DTE,10000 + 853 030673 336 00 0 00 000444 SKIPN $DTFLG ;WAIT TILL 11 RESPONDS + 854 030674 254 00 0 00 030673 JRST .-1 + 855 030675 254 00 0 00 030741 JRST STARTA ;KEEP RUNNING + 856 + 857 ;SPECIAL KL10 COMPLETED ROUTINE + 858 + 859 030676 332 00 0 00 030044 $SPKLD: SKIPE MONTEN + 860 030677 254 00 1 00 030012 JRST @RETURN ;LOADED BY "DIAMON" + 861 + 862 030700 201 00 0 00 000403 MOVEI 0,403 ;NOTIFY PDP-11 OF COMPLETION + 863 030701 202 00 0 00 000451 MOVEM 0,$DTCMD + 864 030702 402 00 0 00 000444 SETZM $DTFLG + 865 030703 336 00 0 00 030516 SKIPN KLTYP + 866 030704 7 200 20 0 00 020000 $$DTE2: CONO DTE,DONG11 + 867 030705 332 00 0 00 030516 SKIPE KLTYP + 868 030706 7 200 20 0 00 010000 $$DTE3: CONO DTE,10000 + 869 030707 336 00 0 00 000444 SKIPN $DTFLG ;SHOULD NEVER HAPPEN + 870 030710 254 00 0 00 030707 JRST .-1 ;11 NEVER RETURNS ON END OF PROGRAM + 871 030711 254 04 0 00 030000 HALT BEGIN ;IF IT DOES, HALT. +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 1 +DAKAFM MAC 19-JAN-77 17:08 DIAGNOSTIC SECTION SEQ 0028 + + 872 SUBTTL DIAGNOSTIC SECTION + 873 + 874 030712 402 00 0 00 030037 START: SETZM USER# ;CLEAR USER CONTROL WORD + 875 030713 265 00 0 00 030714 JSP 0,.+1 ;GET FLAGS + 876 030714 603 00 0 00 010000 TLNE USERF ;IN USER MODE? + 877 030715 476 00 0 00 030037 SETOM USER ;YES, SET USER CONTROL WORD + 878 030716 336 00 0 00 030042 SKIPN MONFLG ;SPECIAL USER MODE? + 879 030717 402 00 0 00 030037 SETZM USER ;YES, CLEAR USER CONTROL WORD + 880 030720 336 00 0 00 030037 SKIPN USER + 881 030721 254 00 0 00 030741 JRST STARTA + 882 030722 331 00 0 00 030043 SKIPL MONCTL + 883 030723 051 03 0 00 030725 TTCALL 3,PGMNAM ;MENTION OUR NAME + 884 030724 254 00 0 00 030741 JRST STARTA + 885 + 886 030725 PGMNAM: ASCIZ/ + 887 030725 015 012 120 104 120 PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) [DAKAF] + 888 030726 055 061 060 040 113 + 889 030727 101 061 060 040 102 + 890 030730 101 123 111 103 040 + 891 030731 111 116 123 124 122 + 892 030732 125 103 124 111 117 + 893 030733 116 040 104 111 101 + 894 030734 107 116 117 123 124 + 895 030735 111 103 040 050 066 + 896 030736 051 040 133 104 101 + 897 030737 113 101 106 135 015 + 898 030740 012 000 000 000 000 / + 899 + 900 030741 254 00 0 00 030742 STARTA: JRST .+1 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 2 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0029 + + 901 SUBTTL TEST OF MSCL BOOLEAN INSTRUCTIONS + 902 + 903 ;********** + 904 + 905 ;THIS TEST VERIFIES THAT SETZI CLEARS THE AC AND DOES NOT AFFECT E. + 906 ;FIRST, AC AND E ARE PRELOADED WITH -1,,-1, THEN, SETZI IS EXECUTED. + 907 ;AC IS THEN CHECKED FOR 0 AND E IS CHECKED FOR -1,,-1 + 908 + 909 030742 474 01 0 00 000000 C56100: SETO 1, ;PRELOAD AC WITH -1,,-1 + 910 030743 474 02 0 00 000000 SETO 2, ;PRELOAD E WITH -1,,-1 + 911 030744 401 01 0 00 000002 SETZI 1,2 ;*SETZI SHOULD CLEAR THE AC + 912 030745 332 00 0 00 000001 SKIPE 1 ;PASS IF C(AC)=0 + 913 STOP^ + 914 030746 254 04 0 00 030747 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 915 030747 324 00 0 00 030750 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 916 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 917 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 918 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 919 030750 312 02 0 00 034301 CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + 920 STOP^ + 921 030751 254 04 0 00 030752 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 922 030752 324 00 0 00 030753 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 923 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 924 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 925 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 926 + 927 ;********** + 928 + 929 ;THIS TEST VERIFIES THAT SETZM CLEARS C(E) AND DOES NOT AFFECT C(AC) + 930 ;FIRST, AC AND E ARE PRELOADED WITH -1,,-1; THEN SETZM IS EXECUTED. + 931 ;AC IS THEN CHECKED FOR -1,,-1 AND E IS CHECKED FOR 0. + 932 + 933 030753 474 01 0 00 000000 C56200: SETO 1, ;PRELOAD AC WITH -1,,-1 + 934 030754 474 02 0 00 000000 SETO 2, ;PRELOAD E WITH -1,,-1 + 935 030755 402 01 0 00 000002 SETZM 1,2 ;*SETZM SHOULD CLEAR E + 936 030756 312 01 0 00 034301 CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + 937 STOP^ + 938 030757 254 04 0 00 030760 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 939 030760 324 00 0 00 030761 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 940 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 941 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 942 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 943 030761 332 00 0 00 000002 SKIPE 2 ;PASS IF C(E)=0 + 944 STOP^ + 945 030762 254 04 0 00 030763 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 946 030763 324 00 0 00 030764 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 947 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 948 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 949 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 950 + 951 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 3 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0030 + + 952 ;THIS TEST VERIFIES THAT SETOI PLACES ALL ONES INTO THE AC. + 953 ;FIRST, THE AC AND E ARE CLEARED; THEN, SETOI IS EXECUTED. + 954 ;AC AND E ARE CHECKED FOR -1,,-1 AND 0 RESPECTIVELY + 955 + 956 030764 403 01 0 00 000002 C56300: SETZB 1,2 ;CLEAR AC,E + 957 030765 475 01 0 00 000002 SETOI 1,2 ;*SETOI SHOULD PLACE -1,,-1 INTO THE AC + 958 030766 312 01 0 00 034301 CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + 959 STOP^ + 960 030767 254 04 0 00 030770 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 961 030770 324 00 0 00 030771 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 962 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 963 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 964 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 965 030771 332 00 0 00 000002 SKIPE 2 ;PASS IF C(E)=0 + 966 STOP^ + 967 030772 254 04 0 00 030773 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 968 030773 324 00 0 00 030774 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 969 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 970 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 971 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 972 + 973 ;********** + 974 + 975 ;THIS TEST VERIFIES THAT SETOM PLACES ALL ONES INTO E + 976 ;FIRST, THE AC AND E ARE CLEARED, THEN SETOM IS EXECUTED. + 977 ;AC AND E ARE THEN CHECKED FOR 0 AND -1,,-1 RESPECTIVELY. + 978 + 979 030774 403 01 0 00 000002 C56400: SETZB 1,2 ;CLEAR AC,E + 980 030775 476 01 0 00 000002 SETOM 1,2 ;*SETOM SHOULD PLACE -1,,-1 INTO E + 981 030776 332 00 0 00 000001 SKIPE 1 ;PASS IF C(AC)=0 + 982 STOP^ + 983 030777 254 04 0 00 031000 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 984 031000 324 00 0 00 031001 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 985 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 986 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 987 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 988 031001 312 02 0 00 034301 CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + 989 STOP^ + 990 031002 254 04 0 00 031003 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 991 031003 324 00 0 00 031004 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 992 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 993 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 994 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 995 + 996 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 4 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0031 + + 997 ;THIS TEST VERIFIES THAT SETOB PLACES ALL ONES INTO BOTH AC AND E. + 998 ;FIRST, BOTH AC AND E ARE CLEARED; THEN, SETOB IS EXECUTED. + 999 ;AC AND E ARE BOTH CHECKED FOR -1,,-1 + 1000 + 1001 031004 403 01 0 00 000002 C56500: SETZB 1,2 ;CLEAR AC,E + 1002 031005 477 01 0 00 000002 SETOB 1,2 ;*SETOB SHOULD PUT -1,,-1 INTO BOTH AC AND E + 1003 031006 312 01 0 00 034301 CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + 1004 STOP^ + 1005 031007 254 04 0 00 031010 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1006 031010 324 00 0 00 031011 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1007 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1008 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1009 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1010 031011 312 02 0 00 034301 CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + 1011 STOP^ + 1012 031012 254 04 0 00 031013 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1013 031013 324 00 0 00 031014 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1014 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1015 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1016 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1017 + 1018 ;********** + 1019 + 1020 ;THIS TEST VERIFIES THAT ANDI PLACES THE LOGICAL AND FUNCTION + 1021 ;OF C(AC) AND 0,,E INTO THE AC. + 1022 ;IN THIS CASE, C(AC)=777000,,707070 AND E=0,,123123. + 1023 ;HENCE, THE RESULT IN THE AC SHOULD BE 0,,103103 + 1024 + 1025 031014 200 01 0 00 034302 C56600: MOVE 1,[777000,,707070] ;PRELOAD AC WITH 777000,,707070 + 1026 031015 405 01 0 00 123123 ANDI 1,123123 ;*ANDI SHOULD PLACE 0,,103103 INTO THE AC + 1027 031016 302 01 0 00 103020 CAIE 1,103020 ;PASS IF C(AC)=103103 + 1028 STOP^ + 1029 031017 254 04 0 00 031020 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1030 031020 324 00 0 00 031021 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1031 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1032 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1033 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1034 + 1035 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 5 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0032 + + 1036 ;THIS TEST VERIFIES THAT ANDM PLACES THE LOGICAL AND FUNCTION OF + 1037 ;C(AC) AND C(E) INTO E. + 1038 ;IN THIS CASE, C(AC)=777000,,000777 AND C(E)=123456,,123456. + 1039 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 777000,,000777 AND + 1040 ;123000,,00456 RESPECTIVELY + 1041 + 1042 031021 200 01 0 00 034303 C56700: MOVE 1,[777000,,777] ;PRELOAD E WITH 777000,,000777 + 1043 031022 200 02 0 00 034304 MOVE 2,[123456,,123456] ;PRELOAD AC WITH 123456,,123456 + 1044 031023 406 02 0 00 000001 ANDM 2,1 ;*ANDM SHOULD PLACE 123000,,000456 INTO E + 1045 031024 312 02 0 00 034304 CAME 2,[123456,,123456] ;PASS IF C(AC) NOT MODIFIED + 1046 STOP^ + 1047 031025 254 04 0 00 031026 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1048 031026 324 00 0 00 031027 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1049 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1050 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1051 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1052 031027 312 01 0 00 034305 CAME 1,[123000,,000456] ;PASS IF C(E)=123000,,000456 + 1053 STOP^ + 1054 031030 254 04 0 00 031031 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1055 031031 324 00 0 00 031032 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1056 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1057 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1058 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1059 + 1060 ;********** + 1061 + 1062 ;THIS TEST VERIFIES THAT ANDM PLACES THE LOGICAL AND FUNCTION OF + 1063 ;C(AC) AND C(E) INTO E. + 1064 ;IN THIS CASE, C(AC)=777000,,000777 AND C(E)=123456,,123456. + 1065 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 777000,,000777 AND + 1066 ;123000,,00456 RESPECTIVELY + 1067 + 1068 031032 200 01 0 00 034303 C56701: MOVE 1,[777000,,777] ;PRELOAD E WITH 777000,,000777 + 1069 031033 202 01 0 00 031046 MOVEM 1,E56701 + 1070 031034 200 02 0 00 034304 MOVE 2,[123456,,123456] ;PRELOAD AC WITH 123456,,123456 + 1071 031035 406 02 0 00 031046 ANDM 2,E56701 ;*ANDM SHOULD PLACE 123000,,000456 INTO E + 1072 031036 312 02 0 00 034304 CAME 2,[123456,,123456] ;PASS IF C(AC) NOT MODIFIED + 1073 STOP^ + 1074 031037 254 04 0 00 031040 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1075 031040 324 00 0 00 031041 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1076 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1077 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1078 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1079 031041 200 01 0 00 031046 MOVE 1,E56701 + 1080 031042 312 01 0 00 034305 CAME 1,[123000,,000456] ;PASS IF C(E)=123000,,000456 + 1081 STOP^ + 1082 031043 254 04 0 00 031044 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1083 031044 324 00 0 00 031045 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1084 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1085 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1086 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1087 + 1088 031045 334 00 0 00 000000 SKIPA ;GO TO NEXT TEST + 1089 031046 000000 000000 E56701: 0 ;TEST WORD MEMORY + 1090 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 5-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0033 + + 1091 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 6 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0034 + + 1092 ;THIS TEST VERIFIES THAT ANDCB PLACES THE LOGICAL AND FUNCTION OF + 1093 ;C(AC) AND C(E) INTO BOTH AC AND E + 1094 ;IN THIS CASE, C(AC)=-1,,0 AND C(E)=121212,,-1 + 1095 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 121212,,0, + 1096 + 1097 031047 561 03 0 00 000000 C57000: HRROI 3,0 ;PRELOAD AC WITH -1,,0 + 1098 031050 525 06 0 00 121212 HRLOI 6,121212 ;PRELOAD E WITH 121212,,-1 + 1099 031051 407 03 0 00 000006 ANDB 3,6 ;*ANDB SHOULD PLACE 121212,,0 INTO BOTH AC AND E + 1100 031052 312 03 0 00 034306 CAME 3,[121212,,0] ;PASS IF C(AC)=121212,,0 + 1101 STOP^ + 1102 031053 254 04 0 00 031054 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1103 031054 324 00 0 00 031055 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1104 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1105 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1106 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1107 031055 312 06 0 00 034306 CAME 6,[121212,,0] ;PASS IF C(E)=121212,,0 + 1108 STOP^ + 1109 031056 254 04 0 00 031057 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1110 031057 324 00 0 00 031060 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1111 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1112 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1113 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1114 + 1115 ;********** + 1116 + 1117 ;THIS TEST VERIFIES THAT ANDCB PLACES THE LOGICAL AND FUNCTION OF + 1118 ;C(AC) AND C(E) INTO BOTH AC AND E + 1119 ;IN THIS CASE, C(AC)=-1,,0 AND C(E)=121212,,-1 + 1120 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 121212,,0, + 1121 + 1122 031060 561 03 0 00 000000 C57001: HRROI 3,0 ;PRELOAD AC WITH -1,,0 + 1123 031061 525 06 0 00 121212 HRLOI 6,121212 ;PRELOAD E WITH 121212,,-1 + 1124 031062 202 06 0 00 031074 MOVEM 6,E57001 + 1125 031063 407 03 0 00 031074 ANDB 3,E57001 ;*ANDB SHOULD PLACE 121212,,0 INTO BOTH AC AND E + 1126 031064 312 03 0 00 034306 CAME 3,[121212,,0] ;PASS IF C(AC)=121212,,0 + 1127 STOP^ + 1128 031065 254 04 0 00 031066 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1129 031066 324 00 0 00 031067 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1130 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1131 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1132 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1133 031067 200 06 0 00 031074 MOVE 6,E57001 + 1134 031070 312 06 0 00 034306 CAME 6,[121212,,0] ;PASS IF C(E)=121212,,0 + 1135 STOP^ + 1136 031071 254 04 0 00 031072 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1137 031072 324 00 0 00 031073 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1138 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1139 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1140 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1141 + 1142 031073 334 00 0 00 000000 SKIPA ;GO TO NEXT TEST + 1143 031074 000000 000000 E57001: 0 ;TEST WORD MEMORY + 1144 + 1145 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 7 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0035 + + 1146 ;THIS TEST VERIFIES THAT ANDCAI PLACES THE LOGICAL AND FUNCTION + 1147 ;OF THE WORD 0,E AND THE COMPLEMENT OF C(AC) INTO THE AC + 1148 ;IN THIS CASE, C(AC)=777,000,,707070 AND E=0,135246 + 1149 ;HENCE, THE RESULT IN THE AC SHOULD BE 0,,030206 + 1150 + 1151 031075 200 05 0 00 034302 C57100: MOVE 5,[777000,,707070] ;PRELOAD AC WITH 777000,,707070 + 1152 031076 411 05 0 00 135246 ANDCAI 5,135246 ;*ANDCAI SHOULD PLACE 0,,30206 INTO THE AC + 1153 031077 302 05 0 00 030206 CAIE 5,030206 ;PASS IF C(AC)=030206 + 1154 STOP^ + 1155 031100 254 04 0 00 031101 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1156 031101 324 00 0 00 031102 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1157 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1158 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1159 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1160 + 1161 ;********** + 1162 + 1163 ;THIS TEST VERIFIES THAT ANDCAM PLACES THE LOGICAL AND FUNCTION OF + 1164 ;C(E) AND THE COMPLEMENT OF C(AC) INTO E. + 1165 ;IN THIS CASE, C(AC)=000767,,-1 AND C(E)=777350,,-2 + 1166 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 000767,,-1 AND + 1167 ;777010,,0 RESPECTIVELY. + 1168 + 1169 031102 525 04 0 00 000767 C57200: HRLOI 4,767 ;PRELOAD AC WITH 000767,,-1 + 1170 031103 200 06 0 00 034307 MOVE 6,[777350,,-2] ;PRELOAD E WITH 777350,,-2 + 1171 031104 412 04 0 00 000006 ANDCAM 4,6 ;*ANDCAM SHOULD PLACE 777010,,0 + 1172 ;INTO E + 1173 031105 312 04 0 00 034310 CAME 4,[767,,-1] ;PASS IF C(AC) IS UNCHANGED + 1174 STOP^ + 1175 031106 254 04 0 00 031107 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1176 031107 324 00 0 00 031110 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1177 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1178 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1179 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1180 031110 312 06 0 00 034311 CAME 6,[777010,,0] ;PASS IF C(E)=777010,,0 + 1181 STOP^ + 1182 031111 254 04 0 00 031112 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1183 031112 324 00 0 00 031113 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1184 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1185 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1186 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1187 + 1188 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 8 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0036 + + 1189 ;THIS TEST VERIFIES THAT ANDCAB PLACES THE LOGICAN AND FUNCTION OF + 1190 ;C(E) AND THE COMPLEMENT OF C(AC) INTO BOTH AC AND E. + 1191 ;IN THIS CASE, C(AC)=000777,,770077 AND C(E)=123456,246123 + 1192 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 123000,,006100 + 1193 + 1194 031113 200 01 0 00 034312 C57300: MOVE 1,[000777,,770077] ;PRELOAD AC WITH 000777,770077 + 1195 031114 200 02 0 00 034313 MOVE 2,[123456,,246123] ;PRELOAD E WITH 123456,246123 + 1196 031115 413 01 0 00 000002 ANDCAB 1,2 ;*ANDCAB SHOULD PLACE 123000,006100 + 1197 ;INTO BOTH AC AND E + 1198 031116 312 01 0 00 034314 CAME 1,[123000,,006100] ;PASS IF C(AC)=123000,006100 + 1199 STOP^ + 1200 031117 254 04 0 00 031120 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1201 031120 324 00 0 00 031121 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1202 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1203 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1204 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1205 031121 312 02 0 00 034314 CAME 2,[123000,,006100] ;PASS IF C(E)=123000,006100 + 1206 STOP^ + 1207 031122 254 04 0 00 031123 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1208 031123 324 00 0 00 031124 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1209 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1210 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1211 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1212 + 1213 ;********** + 1214 + 1215 ;THIS TEST VERIFIES THAT SETMI MOVES THE WORD 0,,E INTO THE AC + 1216 ;IN THIS CASE, C(AC)=-1,,-1 AND E=0,,123456. HENCE, THE RESULT + 1217 ;IN THE AC SHOULD BE 0,,123456 + 1218 + 1219 031124 474 05 0 00 000000 C57400: SETO 5, ;PRELOAD AC WITH -1,,-1 + 1220 031125 415 05 0 00 123456 SETMI 5,123456 ;*SETMI SHOULD PLACE 0,,123456 INTO THE AC + 1221 031126 302 05 0 00 123456 CAIE 5,123456 ;PASS IF C(AC)=0,123456 + 1222 STOP^ + 1223 031127 254 04 0 00 031130 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1224 031130 324 00 0 00 031131 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1225 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1226 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1227 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1228 + 1229 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 9 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0037 + + 1230 ;THIS TEST VERIFIES THAT SETMM IS A NO-OP. HENCE, IT SHOULD + 1231 ;NOT MODIFY AC OR E. + 1232 ;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-1; AND NEITHER SHOULD NOT BE CHANGED + 1233 + 1234 031131 400 16 0 00 000000 C57500: SETZ 16, ;CLEAR C(AC) + 1235 031132 474 17 0 00 000000 SETO 17, ;PRELOAD E WITH -1,,-1 + 1236 031133 416 16 0 00 000017 SETMM 16,17 ;*SETMM IS A NO-OP + 1237 031134 332 00 0 00 000016 SKIPE 16 ;PASS IF C(AC) UNCHANGED + 1238 STOP^ + 1239 031135 254 04 0 00 031136 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1240 031136 324 00 0 00 031137 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1241 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1242 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1243 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1244 031137 312 17 0 00 034301 CAME 17,[-1] ;PASS IF C(E) UNCHANGED + 1245 STOP^ + 1246 031140 254 04 0 00 031141 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1247 031141 324 00 0 00 031142 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1248 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1249 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1250 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1251 + 1252 ;********** + 1253 + 1254 ;THIS TEST VERIFIES THAT SETMB PLACES C(E) INTO THE AC + 1255 ;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=100,,-200 HENCE, THE RESULT + 1256 ;IN BOTH AC AND E SHOULD BE 000100,,-200. + 1257 + 1258 031142 474 00 0 00 000000 C57600: SETO 0, ;CLEAR AC + 1259 031143 200 01 0 00 034315 MOVE 1,[100,,-200] ;PRELOAD E WITH 100,,-200 + 1260 031144 417 00 0 00 000001 SETMB 0,1 ;*SETMB SHOULD PLACE 100,,-200 INTO THE AC + 1261 031145 312 00 0 00 034315 CAME 0,[100,,-200] ;PASS IF C(AC)=100,,-200 + 1262 STOP^ + 1263 031146 254 04 0 00 031147 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1264 031147 324 00 0 00 031150 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1265 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1266 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1267 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1268 031150 312 01 0 00 034315 CAME 1,[100,,-200] ;PASS IF C(E)=100,,-200 + 1269 STOP^ + 1270 031151 254 04 0 00 031152 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1271 031152 324 00 0 00 031153 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1272 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1273 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1274 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1275 + 1276 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 10 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0038 + + 1277 ;THIS TEST VERIFIES THAT ANDCMI PLACES THE LOGICAL AND FUNCTION + 1278 ;OF C(AC) AND THE COMPLEMENT OF THE WORD 0,,E INTO THE AC. + 1279 ;IN THIS CASE, C(AC)=123456,,246135 AND E=0,,717273. + 1280 ;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,040104. + 1281 + 1282 031153 200 15 0 00 034316 C57700: MOVE 15,[123456,,246135] ;PRELOAD AC WITH 123456,,246135 + 1283 031154 421 15 0 00 717273 ANDCMI 15,717273 ;*ANDCMI SHOULD PLACE 123456,,040104 + 1284 ;INTO THE AC + 1285 031155 312 15 0 00 034317 CAME 15,[123456,,040104] ;PASS IF C(AC)=123456,,040104 + 1286 STOP^ + 1287 031156 254 04 0 00 031157 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1288 031157 324 00 0 00 031160 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1289 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1290 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1291 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1292 + 1293 ;********** + 1294 + 1295 ;THIS TEST VERIFIES THAT ANDCMM PLACES THE LOGICAL AND FUNCTION OF + 1296 ;C(AC) AND THE COMPLEMENT OF C(E) INTO E. + 1297 ;IN THIS CASE,C(AC)=12321,,456654 AND C(E)= 770077,,007770 + 1298 ;HENCE, THE RESULT IN E SHOULD BE 003300,,450004 + 1299 + 1300 031160 200 14 0 00 034320 C60000: MOVE 14,[123321,,456654] ;PRELOAD AC WITH 123321,,456654 + 1301 031161 200 15 0 00 034321 MOVE 15,[770077,,007770] ;PRELOAD E WITH 77007770 + 1302 031162 422 14 0 00 000015 ANDCMM 14,15 ;*ANDCMM SHOULD PLACE 003300,,450004 INTO THE AC + 1303 031163 312 14 0 00 034320 CAME 14,[123321,,456654] ;PASS IF C(AC) UNCHANGED + 1304 STOP^ + 1305 031164 254 04 0 00 031165 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1306 031165 324 00 0 00 031166 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1307 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1308 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1309 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1310 031166 312 15 0 00 034322 CAME 15,[3300,,450004] ;PASS IF C(E) = 003300,,450004 + 1311 STOP^ + 1312 031167 254 04 0 00 031170 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1313 031170 324 00 0 00 031171 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1314 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1315 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1316 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1317 + 1318 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 11 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0039 + + 1319 ;THIS TEST VERIFIES THAT ANDCMB PLACES THE LOGICAL AND FUNCTION OF + 1320 ;C(AC) AND THE COMPLEMENT OF C(E) INTO BOTH AC AND E. + 1321 ;IN THIS CASE, C(AC)123456,,663322 AND C(E) = 777000,,700770 + 1322 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 000456,,063002 + 1323 + 1324 031171 200 13 0 00 034323 C60100: MOVE 13,[123456,,663322] ;PRELOAD AC WITH 123456,,663322 + 1325 031172 200 14 0 00 034324 MOVE 14,[777000,,700770] ;PRELOAD E WITH 777000,,700770 + 1326 031173 423 13 0 00 000014 ANDCMB 13,14 ;*ANDCMB SHOULD PLACE 000456,,063002 + 1327 ;INTO BOTH AC AND E + 1328 031174 312 13 0 00 034325 CAME 13,[456,,63002] ;PASS IF C(AC)=000456,,063002 + 1329 STOP^ + 1330 031175 254 04 0 00 031176 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1331 031176 324 00 0 00 031177 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1332 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1333 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1334 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1335 031177 312 14 0 00 034325 CAME 14,[456,,63002] ;PASS IF C(E)=000456,,063002 + 1336 STOP^ + 1337 031200 254 04 0 00 031201 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1338 031201 324 00 0 00 031202 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1339 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1340 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1341 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1342 + 1343 ;********** + 1344 + 1345 + 1346 ;THIS TEST VERIFIES THAT SETA IS A NO-OP. IT AFFECTS NEITHER + 1347 ;AC OR E. IN THIS CASE, C(AC)=123456,,777776 AND C(E)=010203,,123450. + 1348 ;SETA SHOULD NOT MODIFY C(AC) OR C(E) + 1349 + 1350 031202 200 12 0 00 034326 C60200: MOVE 12,[123456,,777776] ;PRELOAD AC WITH 123456,,-2 + 1351 031203 200 13 0 00 034327 MOVE 13,[010203,,123450] ;PRELOAD E WITH 010203,,123450 + 1352 031204 424 12 0 00 000013 SETA 12,13 ;*SETA IS A NO-OP + 1353 031205 312 12 0 00 034326 CAME 12,[123456,,-2] ;PASS IF C(AC) UNCHANGED + 1354 STOP^ + 1355 031206 254 04 0 00 031207 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1356 031207 324 00 0 00 031210 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1357 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1358 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1359 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1360 031210 312 13 0 00 034327 CAME 13,[010203,,123450] ;PASS IF C(E) UNCHANGED + 1361 STOP^ + 1362 031211 254 04 0 00 031212 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1363 031212 324 00 0 00 031213 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1364 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1365 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1366 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1367 + 1368 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 12 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0040 + + 1369 ;THIS TEST VERIFIES THAT SETAI IS A NO-OP. IT DOES NOT AFFECT THE AC. + 1370 ;IN THIS CASE, C(AC)=123456,,777776 AND E=0,,123450 + 1371 ;SETA SHOULD NOT MODIFY C(AC) + 1372 + 1373 031213 200 12 0 00 034326 C60300: MOVE 12,[123456,,777776] ;PRELOAD AC WITH 123456,,-2 + 1374 031214 425 12 0 00 123450 SETAI 12,123450 ;*SETAI IS A NO-OP + 1375 031215 312 12 0 00 034326 CAME 12,[123456,,-2] ;PASS IF C(AC) UNCHANGED + 1376 STOP^ + 1377 031216 254 04 0 00 031217 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1378 031217 324 00 0 00 031220 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1379 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1380 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1381 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1382 + 1383 ;********** + 1384 + 1385 ;THIS TEST VERIFIES THAT SETAM PLACES C(AC) INTO E. + 1386 ;IN THIS CASE, C(AC)=123456,,0 AND C(E)=-1,,-1. HENCE, THE + 1387 ;RESULT IN E SHOULD BE 123456,,0 + 1388 + 1389 031220 515 11 0 00 123456 C60400: HRLZI 11,123456 ;PRELOAD AC WITH 123456,,0 + 1390 031221 474 12 0 00 000000 SETO 12, ;PRELOAD E WITH -1,,-1 + 1391 031222 426 11 0 00 000012 SETAM 11,12 ;SETAM SHOULD PLACE 123456,,0 INTO E + 1392 031223 312 11 0 00 034330 CAME 11,[123456,,0] ;PASS IF C(AC) UNCHANGED + 1393 STOP^ + 1394 031224 254 04 0 00 031225 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1395 031225 324 00 0 00 031226 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1396 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1397 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1398 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1399 031226 312 12 0 00 034330 CAME 12,[123456,,0] ;PASS IF C(E)=123456,,0 + 1400 STOP^ + 1401 031227 254 04 0 00 031230 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1402 031230 324 00 0 00 031231 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1403 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1404 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1405 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1406 + 1407 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 13 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0041 + + 1408 ;THIS TEST VERIFIES THAT XORI PLACES THE LOGICAL EXCLUSIVE OR FUNCTION + 1409 ;OF C(AC) AND THE WORD 0,,E INTO THE AC. + 1410 ;IN THIS CASE, C(AC)=000777,,123456 AND E=0,,434431 + 1411 ;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,517067. + 1412 + 1413 031231 200 10 0 00 034331 C60500: MOVE 10,[777,,123456] ;PRELOAD AC WITH 000777,,123456 + 1414 031232 431 10 0 00 434431 XORI 10,434431 ;*XORI SHOULD PLACE 000777,,517067 INTO THE AC + 1415 031233 312 10 0 00 034332 CAME 10,[777,,517067] ;PASS IF C(AC)=000777,,517067 + 1416 STOP^ + 1417 031234 254 04 0 00 031235 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1418 031235 324 00 0 00 031236 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1419 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1420 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1421 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1422 + 1423 ;********** + 1424 + 1425 ;THIS TEST VERIFIES THAT XORB PLACES THE LOGICAL EXCLUSIVE OR FUNCTION + 1426 ;OF C(AC) AND C(E) INTO BOTH AC AND E. + 1427 ;IN THIS CASE, C(AC)=707077,,555666 AND C(E)=123456,,765432 + 1428 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 624421,,230254 + 1429 + 1430 031236 200 07 0 00 034333 C60600: MOVE 7,[707077,,555666] ;PRELOAD AC WITH 707077,,555666 + 1431 031237 200 10 0 00 034334 MOVE 10,[123456,,765432] ;PRELOAD E WITH 123456,,765432 + 1432 031240 433 07 0 00 000010 XORB 7,10 ;*XORB SHOULD PLACE 624421,,230254 + 1433 ;INTO BOTH AC AND E + 1434 031241 312 07 0 00 034335 CAME 7,[624421,,230254] ;PASS IF C(AC)=624421,,230254 + 1435 STOP^ + 1436 031242 254 04 0 00 031243 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1437 031243 324 00 0 00 031244 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1438 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1439 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1440 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1441 031244 312 10 0 00 034335 CAME 10,[624421,,230254] ;PASS IF C(E)=624421,,230254 + 1442 STOP^ + 1443 031245 254 04 0 00 031246 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1444 031246 324 00 0 00 031247 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1445 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1446 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1447 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1448 + 1449 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 14 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0042 + + 1450 ;THIS TEST VERIFIES THAT IORI PLACES THE INCLUSIVE OR FUNCTION + 1451 ;OF C(AC) AND THE WORD 0,,E INTO THE AC. + 1452 ;IN THIS CASE, C(AC)=707070,,123456 AND E=0,,765567 + 1453 ;HENCE, THE RESULT IN THE AC SHOULD BE 707070,,767577 + 1454 + 1455 031247 200 06 0 00 034336 C60700: MOVE 6,[707070,,123456] ;PRELOAD AC WITH 707070,,123456 + 1456 031250 435 06 0 00 765567 IORI 6,765567 ;*IORI SHOULD PLACE 707070,,767577 INTO THE AC + 1457 031251 312 06 0 00 034337 CAME 6,[707070,,767577] ;PASS IF C(AC)=707070,,767577 + 1458 STOP^ + 1459 031252 254 04 0 00 031253 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1460 031253 324 00 0 00 031254 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1461 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1462 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1463 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1464 + 1465 ;********** + 1466 + 1467 ;THIS TEST VERIFIES THAT IORM PLACES THE INCLUSIVE OR FUNCTION + 1468 ;OF C(AC) AND C(E) INTO E. + 1469 ;IN THIS CASE, C(AC)=123456,,777666 AND C(E)=777001,,123470 + 1470 ;HENCE, THE RESULT IN E SHOULD BE 777457,,777676 + 1471 + 1472 031254 200 05 0 00 034340 C61000: MOVE 5,[123456,,777666] ;PRELOAD AC WITH 123456,777666 + 1473 031255 200 06 0 00 034341 MOVE 6,[777001,,123470] ;PRELOAD E WITH 777001,,123470 + 1474 031256 436 05 0 00 000006 IORM 5,6 ;*IORM SHOULD PLACE + 1475 ;777457,777676 INTO E + 1476 031257 312 05 0 00 034340 CAME 5,[123456,,777666] ;PASS IF C(AC) UNMODIFIED + 1477 STOP^ + 1478 031260 254 04 0 00 031261 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1479 031261 324 00 0 00 031262 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1480 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1481 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1482 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1483 031262 312 06 0 00 034342 CAME 6,[777457,,777676] ;PASS IF C(E)=777457,777676 + 1484 STOP^ + 1485 031263 254 04 0 00 031264 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1486 031264 324 00 0 00 031265 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1487 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1488 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1489 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1490 + 1491 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 15 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0043 + + 1492 ;THIS TEST VERIFIES THAT IORB PLACES THE INCLUSIVE OR FUNCTION + 1493 ;OF C(AC) AND C(E) INTO E. + 1494 ;IN THIS CASE, C(AC)=123456,,777666 AND C(E)=777001,,123470 + 1495 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 777457,,777676 + 1496 + 1497 031265 200 05 0 00 034340 C61100: MOVE 5,[123456,,777666] ;PRELOAD AC WITH 123456,777666 + 1498 031266 200 06 0 00 034341 MOVE 6,[777001,,123470] ;PRELOAD E WITH 777001,,123470 + 1499 031267 437 05 0 00 000006 IORB 5,6 ;*IORB SHOULD PLACE + 1500 ;777457,,777676 INTO + 1501 031270 312 05 0 00 034342 CAME 5,[777457,,777676] ;PASS IF C(AC)=777457,,777676 + 1502 STOP^ + 1503 031271 254 04 0 00 031272 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1504 031272 324 00 0 00 031273 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1505 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1506 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1507 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1508 031273 312 06 0 00 034342 CAME 6,[777457,,777676] ;PASS IF C(E)=777457,,777676 + 1509 STOP^ + 1510 031274 254 04 0 00 031275 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1511 031275 324 00 0 00 031276 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1512 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1513 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1514 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1515 + 1516 ;********** + 1517 + 1518 ;THIS TEST VERIFIES THAT ANDCBI PLACES THE LOGICAL AND FUNCTION + 1519 ;OF THE COMPLEMENTS OF BOTH C(AC) AND THE WORD 0,,E INTO THE AC + 1520 ;IN THIS CASE, C(AC)=777000,,123456 AND E=0,,706050. + 1521 ;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,050321. + 1522 + 1523 031276 200 04 0 00 034343 C61200: MOVE 4,[777000,,123456] ;PRELOAD AC WITH 777000,,123456 + 1524 031277 441 04 0 00 706050 ANDCBI 4,706050 ;*ANDCBI SHOULD PLACE 000777,,050321 + 1525 ;INTO THE AC + 1526 031300 312 04 0 00 034344 CAME 4,[777,,50321] ;PASS IF C(AC)=000777,,050321 + 1527 STOP^ + 1528 031301 254 04 0 00 031302 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1529 031302 324 00 0 00 031303 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1530 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1531 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1532 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1533 + 1534 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 16 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0044 + + 1535 ;THIS TEST VERIFIES THAT ANDCBM PLACES THE LOGICAL AND FUNCTION + 1536 ;OF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO + 1537 ;IN THE CASE, C(AC)=777007,,771100 AND C(E)=063202,,123477 + 1538 ;HENCE, THE RESULT IN E SHOULD BE 000570,,004200 + 1539 + 1540 031303 200 03 0 00 034345 C61300: MOVE 3,[777007,,771100] ;PRELOAD AC WITH 777007,,771100 + 1541 031304 200 04 0 00 034346 MOVE 4,[63202,,123477] ;PRELOAD E WITH 063202,,123477 + 1542 031305 442 03 0 00 000004 ANDCBM 3,4 ;*ANDCBM SHOULD PLACE + 1543 ;000570,,004200 INTO E. + 1544 031306 312 03 0 00 034345 CAME 3,[777007,,771100] ;PASS IF C(AC) IS UNCHANGED + 1545 STOP^ + 1546 031307 254 04 0 00 031310 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1547 031310 324 00 0 00 031311 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1548 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1549 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1550 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1551 031311 312 04 0 00 034347 CAME 4,[570,,4200] ;PASS IF C(E)=000570,,004200 + 1552 STOP^ + 1553 031312 254 04 0 00 031313 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1554 031313 324 00 0 00 031314 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1555 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1556 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1557 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1558 + 1559 ;********** + 1560 + 1561 ;THIS TEST VERIFIES THAT ANDCBB PLACES THE LOGICAL AND FUNCTION + 1562 ;OF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO BOTH AC AND E + 1563 ;IN THIS CASE, C(AC)=777007,,771100 AND C(E)=063202,,123477 + 1564 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 000570,,004200 + 1565 + 1566 031314 200 03 0 00 034345 C61400: MOVE 3,[777007,,771100] ;PRELOAD WITH 777007,,771100 + 1567 031315 200 04 0 00 034346 MOVE 4,[63202,,123477] ;PRELOAD E WITH 063202,,123477 + 1568 031316 443 03 0 00 000004 ANDCBB 3,4 ;*ANDCBB SHOULD PLACE + 1569 ;000570,,004200 INTO BOTH AC AND E + 1570 031317 312 03 0 00 034347 CAME 3,[570,,4200] ;PASS IF C(AC)=000570,,004200 + 1571 STOP^ + 1572 031320 254 04 0 00 031321 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1573 031321 324 00 0 00 031322 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1574 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1575 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1576 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1577 031322 312 04 0 00 034347 CAME 4,[570,,4200] ;PASS IF C(E)=000570,,004200 + 1578 STOP^ + 1579 031323 254 04 0 00 031324 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1580 031324 324 00 0 00 031325 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1581 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1582 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1583 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1584 + 1585 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 17 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0045 + + 1586 ;THIS TEST VERIFIES THAT EQVI PLACES THE LOGICAL EQUIVALENCE FUNCTION + 1587 ;OF C(AC) AND THE WORD 0,,E INTO THE AC + 1588 ;IN THIS CASE, C(AC)=707070,,123426 AND E=0,,123363 + 1589 ;HENCE, THE RESULT IN THE AC SHOULD BE 070707,,777032 + 1590 + 1591 031325 200 02 0 00 034350 C61500: MOVE 2,[707070,,123426] ;PRELOAD AC WITH 707070,,123426 + 1592 031326 445 02 0 00 123363 EQVI 2,123363 ;*EQVI SHOULD PLACE + 1593 ;070707,,777032 INTO THE AC + 1594 031327 312 02 0 00 034351 CAME 2,[70707,,777032] ;PASS IF C(AC)=070707,,777032 + 1595 STOP^ + 1596 031330 254 04 0 00 031331 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1597 031331 324 00 0 00 031332 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1598 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1599 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1600 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1601 + 1602 ;********** + 1603 + 1604 ;THIS TEST VERIFIES THAT EQVM PLACES THE LOGICAL EQUIVALENCE FUNCTION + 1605 ;OF C(AC) AND C(E) INTO E. + 1606 ;IN THIS CASE, C(AC)= 123456,,123457 AND C(E) = 707633,,121212 + 1607 ;HENCE, THE RESULT IN E SHOULD BE 153512,,775132 + 1608 + 1609 031332 200 01 0 00 034352 C61600: MOVE 1,[123456,,123457] ;PRELOAD AC WITH 123456,,123457 + 1610 031333 200 02 0 00 034353 MOVE 2,[707633,,121212] ;PRELOAD AC WITH 707633,,121212 + 1611 031334 446 01 0 00 000002 EQVM 1,2 ;*EQVM SHOULD PLACE 153512,,775132 INTO E. + 1612 031335 312 01 0 00 034352 CAME 1,[123456,,123457] ;PASS IF C(AC) UNCHANGED + 1613 STOP^ + 1614 031336 254 04 0 00 031337 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1615 031337 324 00 0 00 031340 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1616 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1617 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1618 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1619 031340 312 02 0 00 034354 CAME 2,[153512,,775132];PASS IF C(E) = 153512,,775132 + 1620 STOP^ + 1621 031341 254 04 0 00 031342 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1622 031342 324 00 0 00 031343 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1623 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1624 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1625 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1626 + 1627 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 18 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0046 + + 1628 ;THIS TEST VERIFIES THAT EQVB PLACES THE LOGICAL EQUIVALENCE FUNCTION + 1629 ;OF C(AC)AND C(E) INTO BOTH AC AND E. + 1630 ;IN THIS CASE, C(AC) = 123456,,123457 AND C(E) = 707633,,121212 + 1631 ;HENSE, THE RSULT IN BOTH AC AND E SHOULD BE 153512,,775132 + 1632 + 1633 031343 200 01 0 00 034352 C61700: MOVE 1,[123456,,123457] ;PRELOAD AC WITH 123456,,12345 + 1634 031344 200 02 0 00 034353 MOVE 2,[707633,,121212] ;PRELOAD AC WITH 707633,,121212 + 1635 031345 447 01 0 00 000002 EQVB 1,2 ;*EQVB SHOULD PLACE 153512,,775132 + 1636 ;INTO BOTHE AC AND E. + 1637 031346 312 01 0 00 034354 CAME 1,[153512,,775132] ;PASS IC C(AC)=153512,,775132 + 1638 STOP^ + 1639 031347 254 04 0 00 031350 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1640 031350 324 00 0 00 031351 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1641 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1642 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1643 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1644 031351 312 02 0 00 034354 CAME 2,[153512,,775132] ;PASS IF C(E)=153512,,775132 + 1645 STOP^ + 1646 031352 254 04 0 00 031353 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1647 031353 324 00 0 00 031354 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1648 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1649 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1650 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1651 + 1652 ;********** + 1653 + 1654 ;THIS TEST VERIFIES THAT SETCAI PLACES THE COMPLEMENT OF C(AC) + 1655 ;INTO THE AC. + 1656 ;IN THIS CASE, C(AC)=777000,,123456 AND E=0,,707070 + 1657 ;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,654321 + 1658 + 1659 031354 200 00 0 00 034343 C62000: MOVE 0,[777000,,123456] ;PRELOAD AC WITH 777000,,123456 + 1660 031355 451 00 0 00 707070 SETCAI 0,707070 ;*SETCAI SHOULD PLACE 000777,,654321 + 1661 ;INTO THE AC + 1662 031356 312 00 0 00 034355 CAME 0,[777,,654321] ;PASS IF C(AC)=000777,,654321 + 1663 STOP^ + 1664 031357 254 04 0 00 031360 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1665 031360 324 00 0 00 031361 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1666 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1667 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1668 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1669 + 1670 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 19 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0047 + + 1671 ;THIS TEST VERIFIES THAT SETCAM PLACES THE COMPLEMENT OF C(AC) + 1672 ;INTO E. + 1673 ;IN THIS CASE, C(AC)=123456,,765432 AND C(E)=-1,,-1. + 1674 ;HENCE, THE RESULT IN E SHOULD BE 654321,,012345 + 1675 + 1676 031361 200 17 0 00 034334 C62100: MOVE 17,[123456,,765432] ;PRELOAD AC WITH 123456,,765432 + 1677 031362 474 00 0 00 000000 SETO 0, ;PRELOAD E WITH -1,,-1 + 1678 031363 452 17 0 00 000000 SETCAM 17,0 ;*SETCAM SHOULD PLACE + 1679 ;654321,,012345 INTO E + 1680 031364 312 17 0 00 034334 CAME 17,[123456,,765432] ;PASS IF C(AC) IS UNCHANGED + 1681 STOP^ + 1682 031365 254 04 0 00 031366 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1683 031366 324 00 0 00 031367 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1684 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1685 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1686 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1687 031367 312 00 0 00 034356 CAME 0,[654321,,12345] ;PASS IF C(E)=654321,,012345 + 1688 STOP^ + 1689 031370 254 04 0 00 031371 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1690 031371 324 00 0 00 031372 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1691 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1692 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1693 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1694 + 1695 ;********** + 1696 + 1697 ;THIS TEST VERIFIES THAT SETCAB PLACES THE COMPLEMENT OF C(AC) + 1698 ;INTO BOTH AC AND E. + 1699 ;IN THIS CASE, C(AC)=123456,,765432 AND C(E)=-1,,-1. + 1700 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 654321,,012345 + 1701 + 1702 031372 200 17 0 00 034334 C62200: MOVE 17,[123456,,765432] ;PRELOAD AC WITH 123456,,76543 + 1703 031373 474 00 0 00 000000 SETO 0, ;PRELOAD E WITH -1,,-1 + 1704 031374 453 17 0 00 000000 SETCAB 17,0 ;*SETCAB SHOULD PLACE + 1705 ;654321,,012345 INTO BOTH AC AND E + 1706 031375 312 17 0 00 034356 CAME 17,[654321,,12345] ;PASS IF C(AC)=654321,,012345 + 1707 STOP^ + 1708 031376 254 04 0 00 031377 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1709 031377 324 00 0 00 031400 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1710 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1711 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1712 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1713 031400 312 00 0 00 034356 CAME 0,[654321,,12345] ;PASS IF C(E)=654321,,012345 + 1714 STOP^ + 1715 031401 254 04 0 00 031402 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1716 031402 324 00 0 00 031403 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1717 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1718 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1719 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1720 + 1721 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 20 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0048 + + 1722 ;THIS TEST VERIFIES THAT ORCAI PLACES THE INCLUSIVE OR FUNCTION + 1723 ;OF THE WORD 0,,E AND THE COMPLEMENT OF C(AC) INTO THE AC. + 1724 ;IN THIS CASE, C(AC)=777000,,123477 AND E=0,,765401 + 1725 ;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,775701 + 1726 + 1727 031403 200 16 0 00 034357 C62300: MOVE 16,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + 1728 031404 455 16 0 00 765401 ORCAI 16,765401 ;*ORCAI SHOULD PLACE 000777,,767477 + 1729 ;INTO THE AC + 1730 031405 312 16 0 00 034360 CAME 16,[777,,775701] ;PASS IF C(AC)=000777,,775701 + 1731 STOP^ + 1732 031406 254 04 0 00 031407 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1733 031407 324 00 0 00 031410 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1734 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1735 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1736 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1737 + 1738 ;********** + 1739 + 1740 ;THIS TEST VERIFIES THAT ORCAM PLACES THE INCLUSIVE OR FUNCTION + 1741 ;OF C(E) AND THE COMPLEMENT OF C(AC) INTO + 1742 ;IN THIS CASE, C(AC)=777000,,123477 AND C(E)=707070,,707072 + 1743 ;HENCE, THE RESULT IN E SHOULD BE 707777,,757372 + 1744 + 1745 031410 200 15 0 00 034357 C62400: MOVE 15,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + 1746 031411 200 16 0 00 034361 MOVE 16,[707070,,707072] ;PRELOAD E WITH 707070,,707072 + 1747 031412 456 15 0 00 000016 ORCAM 15,16 ;*ORCAM SHOULD PLACE 707777,,757372 + 1748 ;INTO E + 1749 031413 312 15 0 00 034357 CAME 15,[777000,,123477] ;PASS IF C(AC) IS UNCHANGED + 1750 STOP^ + 1751 031414 254 04 0 00 031415 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1752 031415 324 00 0 00 031416 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1753 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1754 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1755 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1756 031416 312 16 0 00 034362 CAME 16,[707777,,757372] ;PASS IF C(E)=707777,,757372 + 1757 STOP^ + 1758 031417 254 04 0 00 031420 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1759 031420 324 00 0 00 031421 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1760 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1761 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1762 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1763 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 21 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0049 + + 1764 ;********** + 1765 ;THIS TEST VERIFIES THAT ORCAB PLACES THE INCLUSIVE OR FUNCTION + 1766 ;OF C(E) AND THE COMPLEMENT OF C(AC) INTO BOTH AC AND E. + 1767 ;IN THIS CASE, C(AC)=777000,,123477 AND C(E)=707070,,707072 + 1768 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 707777,,757372 + 1769 + 1770 031421 200 15 0 00 034357 C62500: MOVE 15,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + 1771 031422 200 16 0 00 034361 MOVE 16,[707070,,707072] ;PRELOAD E WITH 707070,,707072 + 1772 031423 457 15 0 00 000016 ORCAB 15,16 ;*ORCAB SHOULD PLACE 707777,,757372 + 1773 ;INTO BOTHE AC AND E + 1774 031424 312 15 0 00 034362 CAME 15,[707777,,757372] ;PASS IF C(AC)=707777,,757372 + 1775 STOP^ + 1776 031425 254 04 0 00 031426 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1777 031426 324 00 0 00 031427 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1778 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1779 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1780 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1781 031427 312 16 0 00 034362 CAME 16,[707777,,757372] ;PASS IF C(E)=707777,,757372 + 1782 STOP^ + 1783 031430 254 04 0 00 031431 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1784 031431 324 00 0 00 031432 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1785 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1786 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1787 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1788 + 1789 ;********** + 1790 + 1791 ;THIS TEST VERIFIES THAT SETCMI PLACES THE COMPLEMENT OF THE + 1792 ;WORD 0,,E INTO THE AC + 1793 ;IN THIS CASE, C(AC)=777000,,123456 AND E=0,,707070 + 1794 ;HENCE, THE RESULT IN THE AC SHOULD BE -1,,070707 + 1795 + 1796 031432 200 00 0 00 034343 C62600: MOVE 0,[777000,,123456] ;PRELOAD AC WITH 777000,,123456 + 1797 031433 461 00 0 00 707070 SETCMI 0,707070 ;*SETCMI SHOULD PLACE -1,,070707 + 1798 ;INTO THE AC + 1799 031434 312 00 0 00 034363 CAME 0,[-1,,070707] ;PASS IF C(AC)=-1,,070707 + 1800 STOP^ + 1801 031435 254 04 0 00 031436 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1802 031436 324 00 0 00 031437 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1803 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1804 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1805 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1806 + 1807 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 22 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0050 + + 1808 ;THIS TEST VERIFIES THAT SETCMM PLACES THE COMPLEMENT OF C(E) + 1809 ;INTO E. + 1810 ;IN THIS CASE, C(E)=123456,,765432 AND C(AC)=-1,,-1. + 1811 ;HENCE, THE RESULT IN E SHOULD BE 654321,,012345 + 1812 + 1813 031437 200 17 0 00 034334 C62700: MOVE 17,[123456,,765432] ;PRELOAD E WITH 123456,,76543 + 1814 031440 474 00 0 00 000000 SETO 0, ;PRELOAD AC WITH -1,,-1 + 1815 031441 462 00 0 00 000017 SETCMM 0,17 ;*SETCMM SHOULD PLACE + 1816 ;654321,012345 INTO E + 1817 031442 312 00 0 00 034301 CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + 1818 STOP^ + 1819 031443 254 04 0 00 031444 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1820 031444 324 00 0 00 031445 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1821 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1822 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1823 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1824 031445 312 17 0 00 034356 CAME 17,[654321,,12345] ;PASS IF C(E)=654321,,012345 + 1825 STOP^ + 1826 031446 254 04 0 00 031447 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1827 031447 324 00 0 00 031450 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1828 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1829 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1830 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1831 + 1832 ;********** + 1833 + 1834 ;THIS TEST VERIFIES THAT SETCMB PLACES THE COMPLEMENT OF C(E) + 1835 ;INTO BOTH AC AND E. + 1836 ;IN THIS CASE, C(E)=123456,,765432 AND C(AC)=-1,,-1. + 1837 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 654321,,012345 + 1838 + 1839 031450 200 17 0 00 034334 C63000: MOVE 17,[123456,,765432] ;PRELOAD E WITH 123456,,76543 + 1840 031451 474 00 0 00 000000 SETO 0, ;PRELOAD AC WITH -1,,-1 + 1841 031452 463 00 0 00 000017 SETCMB 0,17 ;*SETCMB SHOULD PLACE + 1842 ;654321,,012345 INTO BOTH AC AND E + 1843 031453 312 00 0 00 034356 CAME 0,[654321,,12345] ;PASS IF C(AC)=654321,,012345 + 1844 STOP^ + 1845 031454 254 04 0 00 031455 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1846 031455 324 00 0 00 031456 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1847 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1848 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1849 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1850 031456 312 17 0 00 034356 CAME 17,[654321,,12345] ;PASS IF C(E)=654321,,012345 + 1851 STOP^ + 1852 031457 254 04 0 00 031460 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1853 031460 324 00 0 00 031461 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1854 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1855 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1856 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1857 + 1858 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 23 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0051 + + 1859 ;THIS TEST VERIFIES THAT ORCMI PLACES THE INCLUSIVE OR FUNCTION + 1860 ;OF C(AC) AND THE COMPLEMENT OF THE WORD 0,,E INTO THE AC. + 1861 ;IN THIS CASE, C(AC)=777000,,123477 AND E=0,,765401 + 1862 ;HENCE, THE RESULT IN THE AC SHOULD BE -1,,133777 + 1863 + 1864 031461 200 16 0 00 034357 C63100: MOVE 16,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + 1865 031462 465 16 0 00 765401 ORCMI 16,765401 ;*ORCMI SHOULD PLACE -1,,133777 + 1866 ;INTO THE AC + 1867 031463 312 16 0 00 034364 CAME 16,[-1,,133777] ;PASS IF C(AC)=-1,,133777 + 1868 STOP^ + 1869 031464 254 04 0 00 031465 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1870 031465 324 00 0 00 031466 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1871 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1872 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1873 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1874 + 1875 ;********** + 1876 + 1877 ;THIS TEST VERIFIES THAT ORCMM PLACES THE INCLUSIVE OR FUNCTION + 1878 ;OF C(AC) AND THE COMPLEMENT OC C(E) INTO + 1879 ;IN THIS CASE, C(E)=777000,,123477 AND C (AC)=707070,,707072 + 1880 ;HENCE, THE RESULT IN E SHOULD BE 707777,,757372 + 1881 + 1882 031466 200 15 0 00 034357 C63200: MOVE 15,[777000,,123477] ;PRELOAD E WITH 777000,,123477 + 1883 031467 200 16 0 00 034361 MOVE 16,[707070,,707072] ;PRELOAD AC WITH 707070,,707072 + 1884 031470 466 16 0 00 000015 ORCMM 16,15 ;*ORCMM SHOULD PLACE 707777,,757372 + 1885 ;INTO E + 1886 031471 312 16 0 00 034361 CAME 16,[707070,,707072] ;PASS IF C(AC) IS UNCHANGED + 1887 STOP^ + 1888 031472 254 04 0 00 031473 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1889 031473 324 00 0 00 031474 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1890 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1891 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1892 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1893 031474 312 15 0 00 034362 CAME 15,[707777,,757372] ;PASS IF C(E)=707777,,757372 + 1894 STOP^ + 1895 031475 254 04 0 00 031476 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1896 031476 324 00 0 00 031477 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1897 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1898 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1899 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1900 + 1901 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 24 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0052 + + 1902 ;THIS TEST VERIFIES THAT ORCMB PLACES THE INCLUSIVE OR FUNCTION + 1903 ;OF C(AC) AND THE COMPLEMENT OF C(E) INTO BOTH AC AND E. + 1904 ;IN THIS CASE, C(E)=777000,,123477 AND C(AC)=707070,,707072 + 1905 ;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 707777,,757372 + 1906 + 1907 031477 200 15 0 00 034357 C63300: MOVE 15,[777000,,123477] ;PRELOAD E WITH 777000,,123477 + 1908 031500 200 16 0 00 034361 MOVE 16,[707070,,707072] ;PRELOAD AC WITH 707070,,707072 + 1909 031501 467 16 0 00 000015 ORCMB 16,15 ;*ORCMB SHOULD PLACE 707777,,757372 + 1910 ;INTO BOTH AC AND E + 1911 031502 312 16 0 00 034362 CAME 16,[707777,,757372] ;PASS IF C(AC)=707777,,757372 + 1912 STOP^ + 1913 031503 254 04 0 00 031504 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1914 031504 324 00 0 00 031505 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1915 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1916 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1917 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1918 031505 312 15 0 00 034362 CAME 15,[707777,,757372] ;PASS OF C(E)=707777,,757372 + 1919 STOP^ + 1920 031506 254 04 0 00 031507 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1921 031507 324 00 0 00 031510 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1922 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1923 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1924 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1925 + 1926 ;********** + 1927 + 1928 ;THIS TEST VERIFIES THAT ORCBI PLACES THE LOGICAL INCLUSIVE OR + 1929 ;FUNCTION OF THE COMPLEMENTS OF BOTH C(AC) AND THE WORD 0,,E INTO THE AC. + 1930 ;IN THIS CASE, C(AC)=707070,,070706 AND E=0,,770011. + 1931 ;HENCE, THE RESULT IN THE AC SHOULD BE -1,,707777 + 1932 + 1933 031510 200 15 0 00 034365 C63400: MOVE 15,[707070,,070706] ;PRELOAD AC WITH 707070,,070706 + 1934 031511 471 15 0 00 770011 ORCBI 15,770011 ;*ORCBI SHOULD PLACE -1,,707777 INTO THE AC + 1935 031512 312 15 0 00 034366 CAME 15,[-1,,707777] ;PASS IF C(AC)=-1,707777 + 1936 STOP^ + 1937 031513 254 04 0 00 031514 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1938 031514 324 00 0 00 031515 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1939 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1940 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1941 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1942 + 1943 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 25 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL BOOLEAN INSTRUCTIONS SEQ 0053 + + 1944 ;THIS TEST VERIFIES THAT ORCBM PLACES THE LOGICAL INCLUSIVE OR + 1945 ;FUNCTION OF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO + 1946 ;IN THIS CASE, C(AC)=123456,,770077 AND C(E)=777001,,123324 + 1947 ;HENCE, THE RESULT IN E SHOULD BE 654777,,657753 + 1948 + 1949 031515 200 14 0 00 034367 C63500: MOVE 14,[123456,,770077] ;PRELOAD AC WITH 123456,,770077 + 1950 031516 200 15 0 00 034370 MOVE 15,[777001,,123324] ;PRELOAD E WITH 777001,,123324 + 1951 031517 472 14 0 00 000015 ORCBM 14,15 ;*ORCBM SHOULD PLACE 654777,,657753 + 1952 ;INTO E + 1953 031520 312 14 0 00 034367 CAME 14,[123456,,770077] ;PASS IF C(AC) IS UNCHANGED + 1954 STOP^ + 1955 031521 254 04 0 00 031522 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1956 031522 324 00 0 00 031523 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1957 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1958 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1959 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1960 031523 312 15 0 00 034371 CAME 15,[654777,,657753] ;PASS IF C(E)=654777,,657753 + 1961 STOP^ + 1962 031524 254 04 0 00 031525 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1963 031525 324 00 0 00 031526 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1964 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1965 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1966 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1967 + 1968 ;********** + 1969 + 1970 ;THIS TEST VERIFIES THAT ORCBB PLACES THE LOGICAL INCLUSIVE OR + 1971 ;FUNCTIONOF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO BOTH AC AND E + 1972 ;IN THIS CASE, C(AC)=123456,,770077 AND C(E)=777001,,657753 + 1973 + 1974 031526 200 14 0 00 034367 C63600: MOVE 14,[123456,,770077] ;PRELOAD AC WITH 123456,,770077 + 1975 031527 200 15 0 00 034370 MOVE 15,[777001,,123324] ;PRELOAD E WITH 777001,,123324 + 1976 031530 473 14 0 00 000015 ORCBB 14,15 ;*ORCBB SHOULD PLACE 654777,,657753 + 1977 ;INTO BOTH AC AND E + 1978 031531 312 14 0 00 034371 CAME 14,[654777,,657753] ;PASS IF C(AC)=654777,,657753 + 1979 STOP^ + 1980 031532 254 04 0 00 031533 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1981 031533 324 00 0 00 031534 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1982 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1983 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1984 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1985 031534 312 15 0 00 034371 CAME 15,[654777,,657753] ;PASS IF C(E)=654777,,657753 + 1986 STOP^ + 1987 031535 254 04 0 00 031536 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 1988 031536 324 00 0 00 031537 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 1989 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 1990 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 1991 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 1992 + 1993 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 26 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0054 + + 1994 SUBTTL TEST OF MSCL HWT INSTRUCTIONS + 1995 + 1996 ;********** + 1997 + 1998 ;THIS TEST VERIFIES THAT HLLI CLEARS AC LEFT + 1999 ;IN THIS CASE, C(AC)=707070,,123456 AND E=777000 + 2000 ;HENCE, THE RESULT IN THE AC SHOULD BE 0,,123456 + 2001 + 2002 031537 200 17 0 00 034336 C63700: MOVE 17,[707070,,123456] ;PRELOAD AC WITH 707070,,123456 + 2003 031540 501 17 0 00 777000 HLLI 17,777000 ;*HLLI SHOULD PLACE 0,,123456 INTO THHE AC + 2004 031541 302 17 0 00 123456 CAIE 17,123456 ;PASS IF C(AC)=0,,123456 + 2005 STOP^ + 2006 031542 254 04 0 00 031543 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2007 031543 324 00 0 00 031544 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2008 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2009 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2010 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2011 + 2012 ;********** + 2013 + 2014 ;THIS TEST VERIFIES THAT HLLS PLACES C(E) INTO THE AC IF AC IS NON-ZERO + 2015 ;AND IS A NO-OP IF AC=0 + 2016 ;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E)=123456,,765432 + 2017 ;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 + 2018 ;AND 123456,,765432 RESPECTIVELY + 2019 + 2020 031544 474 00 0 00 000000 C64000: SETO 0 ;PRELOAD AC WITH -1,,-1 + 2021 031545 200 02 0 00 034334 MOVE 2,[123456,,765432] ;PRELOAD E WITH 123456,,765432 + 2022 031546 503 00 0 00 000002 HLLS 0,2 ;*HLLS SHOULD NOT AFFECT AC OR E + 2023 031547 312 00 0 00 034301 CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + 2024 STOP^ + 2025 031550 254 04 0 00 031551 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2026 031551 324 00 0 00 031552 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2027 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2028 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2029 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2030 031552 312 02 0 00 034334 CAME 2,[123456,,765432] ;PASS IF C(C) IS UNCHANGED + 2031 STOP^ + 2032 031553 254 04 0 00 031554 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2033 031554 324 00 0 00 031555 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2034 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2035 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2036 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2037 + 2038 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 27 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0055 + + 2039 ;THIS TEST VERIFIES THAT HLLS PLACES C(E) INTO THE AC IF AC IS NON-ZERO? + 2040 ;AND IS A NO-OP IF AC=0 + 2041 ;IN THIS CASE, AC=1, C(AC)=1,,-1 AND C(E)=123456,,765432 + 2042 ;HENCE, THE RESULTS IN AC AND E WHOULD BE 123456,,765432 + 2043 ;AND 123456,,765432 RESPECTVIELY + 2044 + 2045 031555 474 01 0 00 000000 C64010: SETO 1, ;PRELOAD AC WITH -1,,-1 + 2046 031556 200 02 0 00 034334 MOVE 2,[123456,,765432] ;PRELOAD E WITH 123456,,765432 + 2047 031557 503 01 0 00 000002 HLLS 1,2 ;*HLLS SHOULD PLACE 123456,,765432 INTO THE AC + 2048 031560 312 01 0 00 034334 CAME 1,[123456,,765432] ;PASS IF C(AC)=123456,,765432 + 2049 STOP^ + 2050 031561 254 04 0 00 031562 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2051 031562 324 00 0 00 031563 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2052 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2053 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2054 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2055 031563 312 02 0 00 034334 CAME 2,[123456,,765432] ;PASS IF C(C) IS UNCHANGED + 2056 STOP^ + 2057 031564 254 04 0 00 031565 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2058 031565 324 00 0 00 031566 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2059 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2060 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2061 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2062 + 2063 ;********** + 2064 + 2065 ;THIS TEST VERIFIES THAT HRLS PLACES C(E-RIGHT) INTO E-LEFT, BUT + 2066 ;DOES NOT AFFECT E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E + 2067 ;IS ALSO PLACED INTO THE AC. + 2068 ;IN THIS CASE, AC=0, C(AC)=1,,-1 AND C(E)=123456,707070 + 2069 ;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE -1,,-1 + 2070 ;AND 707070,,707070. + 2071 + 2072 031566 474 00 0 00 000000 C64100: SETO 0, ;PRELOAD AC WITH -1,,-1 + 2073 031567 200 03 0 00 034372 MOVE 3,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + 2074 031570 507 00 0 00 000003 HRLS 0,3 ;*HRLS SHOULD PLACE 707070,,707070 + 2075 ;INTO E. + 2076 031571 312 00 0 00 034301 CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + 2077 STOP^ + 2078 031572 254 04 0 00 031573 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2079 031573 324 00 0 00 031574 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2080 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2081 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2082 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2083 031574 312 03 0 00 034373 CAME 3,[707070,,707070] ;PASS IF C(E)=707070,,707070 + 2084 STOP^ + 2085 031575 254 04 0 00 031576 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2086 031576 324 00 0 00 031577 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2087 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2088 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2089 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2090 + 2091 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 28 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0056 + + 2092 ;THIS TEST VERIFIES THAT HRLS PLACES C(E-RIGHT) INTO E-LEFT, BUT + 2093 ;DOES NOT AFFECT E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E + 2094 ;IS ALSO PLACED INTO THE AC. + 2095 ;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E)=123456,,707070 + 2096 ;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 707070,,707070 + 2097 ;AND 707070,,707070. + 2098 + 2099 031577 474 01 0 00 000000 C64110: SETO 1, ;PRELOAD AC WITH -1,,-1 + 2100 031600 200 03 0 00 034372 MOVE 3,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + 2101 031601 507 01 0 00 000003 HRLS 1,3 ;*HRLS SHOULD PLACE 707070,,707070 + 2102 ;INTO BOTH AC AND E. + 2103 031602 312 01 0 00 034373 CAME 1,[707070,,707070] ;PASS IF C(AC)=707070,,707070 + 2104 STOP^ + 2105 031603 254 04 0 00 031604 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2106 031604 324 00 0 00 031605 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2107 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2108 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2109 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2110 031605 312 03 0 00 034373 CAME 3,[707070,,707070] ;PASS IF C(E)=707070,,707070 + 2111 STOP^ + 2112 031606 254 04 0 00 031607 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2113 031607 324 00 0 00 031610 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2114 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2115 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2116 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2117 + 2118 ;********** + 2119 + 2120 ;THIS TEST VERIFIES THAN HLLZM PLACES C(AC-LEFT) INTO E-LEFT AND + 2121 ;PLACES 0 INTO E-RIGHT + 2122 ;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,717171 + 2123 ;HENCE, THE RESULT IN E SHOULD BE 123456,,0 + 2124 + 2125 031610 200 01 0 00 034374 C64200: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + 2126 031611 200 02 0 00 034375 MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + 2127 031612 512 01 0 00 000002 HLLZM 1,2 ;*HLLZM SHOULD PLACE 123456,,0 INTO E + 2128 031613 312 01 0 00 034374 CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + 2129 STOP^ + 2130 031614 254 04 0 00 031615 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2131 031615 324 00 0 00 031616 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2132 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2133 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2134 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2135 031616 312 02 0 00 034330 CAME 2,[123456,,0] ;PASS IF C(E)=123456,,0 + 2136 STOP^ + 2137 031617 254 04 0 00 031620 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2138 031620 324 00 0 00 031621 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2139 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2140 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2141 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2142 + 2143 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 29 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0057 + + 2144 ;THIS TEST VERIFIES THAT HLLZS CLEARS THE RIGHT HALF OF E, BUT DOESN'T + 2145 ;AFFECT THE LEFT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS + 2146 ;ALSO PLACED INTO THE AC. + 2147 ;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E)=123456,,707070 + 2148 ;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 + 2149 ;AND 123456,,0 RESPECTIVELY + 2150 + 2151 031621 474 00 0 00 000000 C64300: SETO 0, ;PRELOAD AC WITH -1,,-1 + 2152 031622 200 17 0 00 034372 MOVE 17,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + 2153 031623 513 00 0 00 000017 HLLZS 0,17 ;*HLLZS SHOULD PLACE 123456,,0 INTO E. + 2154 031624 312 00 0 00 034301 CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + 2155 STOP^ + 2156 031625 254 04 0 00 031626 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2157 031626 324 00 0 00 031627 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2158 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2159 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2160 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2161 031627 312 17 0 00 034330 CAME 17,[123456,,0] ;PASS IF C(E)=123456,,0 + 2162 STOP^ + 2163 031630 254 04 0 00 031631 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2164 031631 324 00 0 00 031632 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2165 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2166 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2167 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2168 + 2169 + 2170 ;********** + 2171 + 2172 ;THIS TEST VERIFIES THAT HLLZS CLEARS THE RIGHT HALF OF E, BUT DOESN'T + 2173 ;AFFECT THE LEFT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS + 2174 ;ALSO PLACED INTO THE AC. + 2175 ;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E)=123456,,707070 + 2176 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 123456,,0 + 2177 ;AND 123456,,0 RESPECTIVELY. + 2178 + 2179 031632 474 01 0 00 000000 C64310: SETO 1, ;PRELOAD AC WITH -1,,-1 + 2180 031633 200 17 0 00 034372 MOVE 17,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + 2181 031634 513 01 0 00 000017 HLLZS 1,17 ;*HLLZS SHOULD PLACE 123456,,0 INTO + 2182 ;BOTH AC AND E + 2183 031635 312 01 0 00 034330 CAME 1,[123456,,0] ;PASS IF C(AC)=123456,,0 + 2184 STOP^ + 2185 031636 254 04 0 00 031637 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2186 031637 324 00 0 00 031640 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2187 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2188 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2189 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2190 031640 312 17 0 00 034330 CAME 17,[123456,,0] ;PASS IF C(E)=123456,,0 + 2191 STOP^ + 2192 031641 254 04 0 00 031642 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2193 031642 324 00 0 00 031643 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2194 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2195 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2196 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2197 + 2198 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 30 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0058 + + 2199 ;THIS TEST VERIFIES THAT HRLZM PLACES C(AC-RIGHT) INTO E-LEFT AND + 2200 ;PLACES O INTO E-RIGHT. + 2201 ;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,,717171 + 2202 ;HENCE, THE RESULT IN E SHOULD BE 123422,,0 + 2203 + 2204 031643 200 01 0 00 034374 C64400: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + 2205 031644 200 02 0 00 034375 MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + 2206 031645 516 01 0 00 000002 HRLZM 1,2 ;*HRLZM SHOULD PLACE 123422,,0 INTO E + 2207 031646 312 01 0 00 034374 CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + 2208 STOP^ + 2209 031647 254 04 0 00 031650 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2210 031650 324 00 0 00 031651 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2211 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2212 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2213 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2214 031651 312 02 0 00 034376 CAME 2,[123422,,0] ;PASS IF C(E)=123422,,0 + 2215 STOP^ + 2216 031652 254 04 0 00 031653 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2217 031653 324 00 0 00 031654 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2218 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2219 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2220 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2221 + 2222 ;********** + 2223 + 2224 ;THIS TEST VERIFIES THAT HRLZS PLACES C(E-RIGHT) INTO E-LEFT AND + 2225 ;CLEARS E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALSO + 2226 ;PLACED INTO THE AC. + 2227 ;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E)=123456,,707076 + 2228 ;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE -1,,-1 + 2229 ;AND 707076,,0 + 2230 + 2231 031654 474 00 0 00 000000 C64500: SETO 0, ;PRELOAD AC WITH -1,,-1 + 2232 031655 200 16 0 00 034377 MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + 2233 031656 517 00 0 00 000016 HRLZS 0,16 ;*HRLZS SHOULD PLACE 707076,,0 + 2234 ;INTO E. + 2235 031657 312 00 0 00 034301 CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + 2236 STOP^ + 2237 031660 254 04 0 00 031661 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2238 031661 324 00 0 00 031662 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2239 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2240 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2241 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2242 031662 312 16 0 00 034400 CAME 16,[707076,,0] ;PASS IF C(AC)=707076,,0 + 2243 STOP^ + 2244 031663 254 04 0 00 031664 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2245 031664 324 00 0 00 031665 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2246 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2247 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2248 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2249 + 2250 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 31 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0059 + + 2251 ;THIS TEST VERIFIES THAT HRLZS PLACES C(E-RIGHT) INTO E-LEFT AND + 2252 ;CLEARS E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALSO + 2253 ;PLACED INTO THE AC. + 2254 ;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E)=123456,,707076 + 2255 ;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 707076,,0 + 2256 ;AND 707076,,0 + 2257 + 2258 031665 474 01 0 00 000000 C64510: SETO 1, ;PRELOAD AC WITH -1,,-1 + 2259 031666 200 16 0 00 034377 MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + 2260 031667 517 01 0 00 000016 HRLZS 1,16 ;*HRLZS SHOULD PLACE 707076,,0 + 2261 ;INTO BOTH AC AND E. + 2262 031670 312 01 0 00 034400 CAME 1,[707076,,0] ;PASS IF C(AC)=707076,,0 + 2263 STOP^ + 2264 031671 254 04 0 00 031672 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2265 031672 324 00 0 00 031673 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2266 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2267 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2268 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2269 031673 312 16 0 00 034400 CAME 16,[707076,,0] ;PASS IF C(AC)=707076,,0 + 2270 STOP^ + 2271 031674 254 04 0 00 031675 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2272 031675 324 00 0 00 031676 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2273 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2274 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2275 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2276 + 2277 ;********** + 2278 + 2279 ;THIS TEST VERIFIES THAT HLLOM PLACES C(AC-LEFT) INTO E-LEFT AND + 2280 ;PLACES -1 INTO E-RIGHT. + 2281 ;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,,717171 + 2282 ;HENCE, THE RESULT IN E SHOULD BE 123456,,-1. + 2283 + 2284 031676 200 01 0 00 034374 C64600: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + 2285 031677 200 02 0 00 034375 MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + 2286 031700 522 01 0 00 000002 HLLOM 1,2 ;*HLLOM SHOULD PLACE 123456,,-1 INTO E + 2287 031701 312 01 0 00 034374 CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + 2288 STOP^ + 2289 031702 254 04 0 00 031703 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2290 031703 324 00 0 00 031704 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2291 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2292 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2293 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2294 031704 312 02 0 00 034401 CAME 2,[123456,,-1] ;PASS IF C(E)=123456,,-1 + 2295 STOP^ + 2296 031705 254 04 0 00 031706 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2297 031706 324 00 0 00 031707 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2298 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2299 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2300 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2301 + 2302 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 32 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0060 + + 2303 ;THIS TEST VERIFIES THAT HRLO, C(E-RIGHT) INTO AC=LEFT AND + 2304 ;PLACES -1 INTO AC-RIGHT. IN THIS CASE, C(AC)=123456,,135724 AND + 2305 ;C(E)=765432,,246135. HENCE, THE RESULT IN THE AC SHOULD BE 246135,,-1 + 2306 + 2307 031707 200 15 0 00 034402 C64700: MOVE 15,[123456,,135724] ;PRELOAD AC WITH 123456,,135724 + 2308 031710 200 16 0 00 034403 MOVE 16,[765432,,246135] ;PRELOAD E WITH 765432,,246135 + 2309 031711 524 15 0 00 000016 HRLO 15,16 ;*HRLO SHOULD PLACE 246135,,-1 INTO AC + 2310 031712 312 15 0 00 034404 CAME 15,[246135,,-1] ;PASS IF C(AC)=246135,,-1 + 2311 STOP^ + 2312 031713 254 04 0 00 031714 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2313 031714 324 00 0 00 031715 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2314 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2315 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2316 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2317 031715 312 16 0 00 034403 CAME 16,[765432,,246135] ;PASS IF C(E) UNCHANGED + 2318 STOP^ + 2319 031716 254 04 0 00 031717 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2320 031717 324 00 0 00 031720 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2321 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2322 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2323 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2324 + 2325 ;********** + 2326 + 2327 ;THIS TEST VERIFIES THAT HRLOI PLACES 0,,E INTO AC-LEFT AND + 2328 ;PLACES ONES INTO AC-RIGHT. IN THIS CASE, C(AC)=0 AND E=0,,123456. + 2329 ;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,-1 + 2330 + 2331 031720 400 14 0 00 000000 C65000: SETZ 14, ;CLEAR AC + 2332 031721 525 14 0 00 123456 HRLOI 14,123456 ;*HRLOI SHOULD PLACE 123456,,-1 INTO THE AC + 2333 031722 312 14 0 00 034401 CAME 14,[123456,,-1] ;PASS IF C(AC)=123456,,-1 + 2334 STOP^ + 2335 031723 254 04 0 00 031724 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2336 031724 324 00 0 00 031725 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2337 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2338 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2339 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2340 + 2341 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 33 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0061 + + 2342 ;THIS TEST VERIFIES THAT HRLOM PLACES C(AC-RIGHT) INTO E-LEFT + 2343 ;AND PLACES -1 INTO E-RIGHT. IN THIS CASE, C(E)=0 AND C(AC)=123123,,456765 + 2344 ;HENCE, THE RESULT IN E SHOULD BE 456765,,-1. + 2345 + 2346 031725 402 00 0 00 000014 C65100: SETZM 14 ;CLEAR E + 2347 031726 200 13 0 00 034405 MOVE 13,[123123,,456765] ;PRELOAD AC WITH 123123,,456765 + 2348 031727 526 13 0 00 000014 HRLOM 13,14 ;*HRLOM SHOULD PLACE 456765,,-1 INTO E + 2349 031730 312 13 0 00 034405 CAME 13,[123123,,456765] ;PASS IF C(AC) UNCHANGED + 2350 + 2351 STOP^ + 2352 031731 254 04 0 00 031732 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2353 031732 324 00 0 00 031733 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2354 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2355 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2356 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2357 031733 312 14 0 00 034406 CAME 14,[456765,,-1] ;PASS IF C(E)=456765,,-1 + 2358 STOP^ + 2359 031734 254 04 0 00 031735 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2360 031735 324 00 0 00 031736 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2361 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2362 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2363 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2364 + 2365 ;********** + 2366 + 2367 + 2368 ;THIS TEST VERIFIES THAT HRLOS PLACES C(E-RIGHT) INTO E-LEFT AND + 2369 ;PLACES -1 INTO E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALOS + 2370 ;PLACED INTO THE AC. + 2371 ;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,707076 + 2372 ;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 0 + 2373 ;AND 707076,,0 + 2374 + 2375 031736 400 00 0 00 000000 C65200: SETZ 0, ;PRELOAD AC WITH 0 + 2376 031737 200 16 0 00 034377 MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + 2377 031740 527 00 0 00 000016 HRLOS 0,16 ;*HRLZS SHOULD PLACE 707076,,-1 + 2378 ;INTO E. + 2379 031741 312 00 0 00 034407 CAME 0,[0] ;PASS IF C(AC) UNCHANGED + 2380 STOP^ + 2381 031742 254 04 0 00 031743 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2382 031743 324 00 0 00 031744 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2383 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2384 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2385 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2386 031744 312 16 0 00 034410 CAME 16,[707076,,-1] ;PASS IF C(AC)=707076,,-1 + 2387 STOP^ + 2388 031745 254 04 0 00 031746 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2389 031746 324 00 0 00 031747 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2390 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2391 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2392 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2393 + 2394 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 34 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0062 + + 2395 ;THIS TEST VERIFIES THAT HRLOS PLACES C(E-RIGHT) INTO E-LEFT AND + 2396 ;PLACES -1 INTO E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALSO + 2397 ;PLACED INTO THE AC. + 2398 ;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123456,,707076 + 2399 ;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 707076,,-1 + 2400 ;AND 707076,,-1 + 2401 + 2402 031747 400 01 0 00 000000 C65210: SETZ 1, ;PRELOAD AC WITH 0 + 2403 031750 200 16 0 00 034377 MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + 2404 031751 527 01 0 00 000016 HRLOS 1,16 ;*HRLZS SHOULD PLACE 707076,,-1 + 2405 ;INTO BOTH AC AND E + 2406 031752 312 01 0 00 034410 CAME 1,[707076,,-1] ;PASS IF C(AC)=707076,,-1 + 2407 STOP^ + 2408 031753 254 04 0 00 031754 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2409 031754 324 00 0 00 031755 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2410 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2411 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2412 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2413 031755 312 16 0 00 034410 CAME 16,[707076,,-1] ;PASS IF C(AC)=707076,,-1 + 2414 STOP^ + 2415 031756 254 04 0 00 031757 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2416 031757 324 00 0 00 031760 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2417 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2418 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2419 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2420 + 2421 ;********** + 2422 + 2423 ;THIS TEST VERIFIES THAT HLLEM PLACES C(AC-LEFT) INTO E-LEFT + 2424 ;AND PLACES BIT 0 OF THE AC INTO BITS 18 THRU 35 OF E. IN THIS CASE, + 2425 ;C(AC)=123456,,707076 AND C(E)=-1,,-1. HENCE, THE RESULT IN E + 2426 ;SHOULD BE 123456,,0. + 2427 + 2428 031760 200 12 0 00 034377 C65300: MOVE 12,[123456,,707076] ;PRELOAD AC WITH 123456,,707076 + 2429 031761 476 00 0 00 000013 SETOM 13 ;PRELOAD E WITH -1,,-1 + 2430 031762 532 12 0 00 000013 HLLEM 12,13 ;*HLLEM SHOULD PLACE 123456,,0 INTO E + 2431 031763 312 12 0 00 034377 CAME 12,[123456,,707076] ;PASS IF C(AC) UNCHANGED + 2432 STOP^ + 2433 031764 254 04 0 00 031765 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2434 031765 324 00 0 00 031766 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2435 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2436 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2437 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2438 031766 312 13 0 00 034330 CAME 13,[123456,,0] ;PASS IF C(E)=123456,,0 + 2439 STOP^ + 2440 031767 254 04 0 00 031770 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2441 031770 324 00 0 00 031771 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2442 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2443 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2444 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2445 + 2446 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 35 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0063 + + 2447 ;THIS TEST VERIFIES THAT HLLES PLACES C(E-LEFT) INTO E-LEFT AND + 2448 ;PLACES BIT 0 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO + 2449 ;THE RESULT IN E IS ALSO PLACED INTO THE AC. + 2450 ;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=765432,,0. + 2451 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 + 2452 ;AND 765432,,-1 RESPECTIVELY. + 2453 + 2454 031771 400 00 0 00 000000 C65400: SETZ 0, ;CLEAR AC + 2455 031772 515 02 0 00 765432 HRLZI 2,765432 ;PRELOAD E WITH 765432,,0 + 2456 031773 533 00 0 00 000002 HLLES 0,2 ;*HLLES SHOULD PLACE 765432,,-1 + 2457 ;INTO E + 2458 031774 312 00 0 00 034407 CAME 0,[0] ;PASS IF C(AC) UNCHANGED + 2459 STOP^ + 2460 031775 254 04 0 00 031776 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2461 031776 324 00 0 00 031777 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2462 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2463 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2464 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2465 031777 312 02 0 00 034411 CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + 2466 STOP^ + 2467 032000 254 04 0 00 032001 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2468 032001 324 00 0 00 032002 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2469 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2470 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2471 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2472 + 2473 ;********** + 2474 + 2475 ;THIS TEST VERIFIES THAT HLLES PLACES C(E-LEFT) INTO E-LEFT AND + 2476 ;PLACES BIT 0 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO, + 2477 ;THE RESULT IN E IS ALSO PLACED INTO THE AC. + 2478 ;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=765432,,0 + 2479 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 765432,,-1 + 2480 ;AND 765432,,-1 RESPECTIVELY + 2481 + 2482 032002 400 01 0 00 000000 C65410: SETZ 1, ;CLEAR AC + 2483 032003 515 02 0 00 765432 HRLZI 2,765432 ;PRELOAD E WITH 765432,,0 + 2484 032004 533 01 0 00 000002 HLLES 1,2 ;*HLLES SHOULD PLACE 765432,,-1 + 2485 ;INTO BOTH AC AND E + 2486 032005 312 01 0 00 034411 CAME 1,[765432,,-1] ;PASS IF C(AC)=765432,,-1 + 2487 STOP^ + 2488 032006 254 04 0 00 032007 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2489 032007 324 00 0 00 032010 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2490 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2491 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2492 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2493 032010 312 02 0 00 034411 CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + 2494 STOP^ + 2495 032011 254 04 0 00 032012 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2496 032012 324 00 0 00 032013 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2497 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2498 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2499 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2500 + 2501 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 36 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0064 + + 2502 ;THIS TEST VERIFIES THAT HLLEM PLACES C(AC-RIGHT) INTO E-LEFT + 2503 ;AND PLACES BIT 18 OF THE AC INTO BITS 18 THRU 35 OF E. IN THIS CASE, + 2504 ;C(AC)=365432,123456 AND C(E)=-1,,-1. HENCE, THE RESULT IN E + 2505 ;SHOULD BE 365432,,0. + 2506 + 2507 032013 200 12 0 00 034412 C65500: MOVE 12,[365432,,123456] ;PRELOAD AC WITH 365432,,123456 + 2508 032014 476 00 0 00 000013 SETOM 13 ;PRELOAD E WITH -1,,-1 + 2509 032015 532 12 0 00 000013 HLLEM 12,13 ;*HLLEM SHOULD PLACE 365432,,0 INTO E + 2510 032016 312 12 0 00 034412 CAME 12,[365432,,123456] ;PASS IF C(AC) UNCHANGED + 2511 STOP^ + 2512 032017 254 04 0 00 032020 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2513 032020 324 00 0 00 032021 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2514 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2515 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2516 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2517 032021 312 13 0 00 034413 CAME 13,[365432,,0] ;PASS IF C(E)=365432,,0 + 2518 STOP^ + 2519 032022 254 04 0 00 032023 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2520 032023 324 00 0 00 032024 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2521 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2522 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2523 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2524 + 2525 ;********** + 2526 + 2527 ;THIS TEST VERIFIES THAT HRLES PLACES C(E-RIGHT) INTO E-LEFT AND + 2528 ;PLACES BIT 18 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO, + 2529 ;THE RESULT IN E IS ALSO PLACED INTO THE AC. + 2530 ;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=0,,765432 + 2531 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 + 2532 ;AND 765432,,-1 RESPECTIVELY + 2533 + 2534 032024 400 00 0 00 000000 C65600: SETZ 0, ;CLEAR AC + 2535 032025 551 02 0 00 765432 HRRZI 2,765432 ;PRELOAD E WITH 0,,765432 + 2536 032026 537 00 0 00 000002 HRLES 0,2 ;*HLLES SHOULD PLACE 765432,,-1 + 2537 ;INTO + 2538 032027 312 00 0 00 034407 CAME 0,[0] ;PASS IF C(AC) UNCHANGED + 2539 STOP^ + 2540 032030 254 04 0 00 032031 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2541 032031 324 00 0 00 032032 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2542 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2543 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2544 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2545 032032 312 02 0 00 034411 CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + 2546 STOP^ + 2547 032033 254 04 0 00 032034 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2548 032034 324 00 0 00 032035 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2549 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2550 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2551 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2552 + 2553 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 37 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0065 + + 2554 ;THIS TEST VERIFIES THAT HRLES PLACES C(E-RIGHT) INTO E-LEFT AND + 2555 ;PLACES BIT 18 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO, + 2556 ;THE RESULT IN E IS ALSO PLACED INTO THE AC. + 2557 ;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=0,,765432 + 2558 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 765432,,-1 + 2559 ;AND 765432,,-1 RESPECTIVELY. + 2560 + 2561 032035 400 01 0 00 000000 C65610: SETZ 1, ;CLEAR AC + 2562 032036 551 02 0 00 765432 HRRZI 2,765432 ;PRELOAD E WITH 0,765432 + 2563 032037 537 01 0 00 000002 HRLES 1,2 ;*HLLES SHOULD PLACE 765432,,-1 + 2564 ;INTO BOTH AC AND E + 2565 032040 312 01 0 00 034411 CAME 1,[765432,,-1] ;PASS IF C(AC)=765442,,-1 + 2566 STOP^ + 2567 032041 254 04 0 00 032042 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2568 032042 324 00 0 00 032043 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2569 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2570 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2571 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2572 032043 312 02 0 00 034411 CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + 2573 STOP^ + 2574 032044 254 04 0 00 032045 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2575 032045 324 00 0 00 032046 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2576 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2577 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2578 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2579 + 2580 + 2581 ;********** + 2582 + 2583 ;THIS TEST VERIFIES THAT HLRM SHOULD PLACE C(AC-LEFT) INTO E-RIGHT + 2584 ;AND NOT AFFECT E-LEFT. IN THIS CASE, C(AC)=123456,,701234 + 2585 ;AND C(E)=0. HENCE, THE RESULT IN E SHOULD BE 0,,123456 + 2586 + 2587 032046 200 11 0 00 034414 C65700: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 2588 032047 402 00 0 00 000012 SETZM 12 ;CLEAR E + 2589 032050 546 11 0 00 000012 HLRM 11,12 ;*HLRM SHOULD PLACE 0,,123456 INTO E + 2590 032051 312 11 0 00 034414 CAME 11,[123456,,701234] ;PASS IF C(AC) UNCHANGE + 2591 STOP^ + 2592 032052 254 04 0 00 032053 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2593 032053 324 00 0 00 032054 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2594 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2595 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2596 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2597 032054 302 12 0 00 123456 CAIE 12,123456 ;PASS IF C(E)=0,,123456 + 2598 STOP^ + 2599 032055 254 04 0 00 032056 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2600 032056 324 00 0 00 032057 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2601 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2602 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2603 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2604 + 2605 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 38 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0066 + + 2606 ;THIS TEST VERIFIES THAT HLRS PLACES C(E-LEFT) INTO E-RIGHT AND + 2607 ;DOES NOT AFFECT E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E + 2608 ;IS ALSO PLACED INTO THE AC. + 2609 ;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123123,,246135 + 2610 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 + 2611 ;AND 123123,,123123 RESPECTIVELY. + 2612 + 2613 032057 400 00 0 00 000000 C66000: SETZ 0, ;CLEAR AC + 2614 032060 200 12 0 00 034415 MOVE 12,[123123,,246135] ;PRELOAD E WITH 123123,,246135 + 2615 032061 547 00 0 00 000012 HLRS 0,12 ;*HLRS SHOULD PLACE 123123,,123123 + 2616 ;INTO E. + 2617 032062 312 00 0 00 034407 CAME 0,[0] ;PASS IF C(AC) UNCHANGED + 2618 STOP^ + 2619 032063 254 04 0 00 032064 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2620 032064 324 00 0 00 032065 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2621 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2622 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2623 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2624 032065 312 12 0 00 034416 CAME 12,[123123,,123123] ;PASS IF C(E)=123123,,123123 + 2625 STOP^ + 2626 032066 254 04 0 00 032067 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2627 032067 324 00 0 00 032070 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2628 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2629 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2630 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2631 + 2632 + 2633 ;********** + 2634 + 2635 ;THIS TEST VERIFIES THAT HLRS PLACES C(E-LEFT) INTO E-RIGHT AND + 2636 ;DOES NOT AFFECT E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E + 2637 ;IS ALSO PLACED INTO THE AC. + 2638 ;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123123,,246135 + 2639 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 123123,,123123 + 2640 ;AND 123123,,123123 RESPECTIVELY. + 2641 + 2642 032070 400 01 0 00 000000 C66010: SETZ 1, ;CLEAR AC + 2643 032071 200 12 0 00 034415 MOVE 12,[123123,,246135] ;PRELOAD E WITH 123123,,246135 + 2644 032072 547 01 0 00 000012 HLRS 1,12 ;*HLRS SHOULD PLACE 123123,,123123 + 2645 ;INTO BOTH AC AND E. + 2646 032073 312 01 0 00 034416 CAME 1,[123123,,123123] ;PASS IF C(AC)=123123,,123123 + 2647 STOP^ + 2648 032074 254 04 0 00 032075 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2649 032075 324 00 0 00 032076 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2650 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2651 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2652 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2653 032076 312 12 0 00 034416 CAME 12,[123123,,123123] ;PASS IF C(E)=123123,,123123 + 2654 STOP^ + 2655 032077 254 04 0 00 032100 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2656 032100 324 00 0 00 032101 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2657 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2658 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2659 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2660 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 38-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0067 + + 2661 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 39 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0068 + + 2662 ;THIS TEST VERIFIES THAT HRRZS CLEARS THE LEFT HALF OF E, BUT DOES NOT + 2663 ;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS + 2664 ;ALSO PLACED INTO THE AC. + 2665 ;IN THIS CASE, AC = 0, C(AC) = -1,,-1 AND C(E) = 123456,,701234 + 2666 ;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 AND 0,,701234 + 2667 ;RESPECTIVELY. + 2668 + 2669 032101 474 00 0 00 000000 C66100: SETO 0 ;PRELOAD AC WITH -1,,-1 + 2670 032102 200 17 0 00 034414 MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 2671 032103 553 00 0 00 000017 HRRZS 0,17 ;HRRZS SHOULD PLACE 0,,701234 INTO E + 2672 032104 312 00 0 00 034301 CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + 2673 STOP^ + 2674 032105 254 04 0 00 032106 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2675 032106 324 00 0 00 032107 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2676 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2677 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2678 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2679 032107 302 17 0 00 701234 CAIE 17,701234 ;PASS IF C(E) = 0,,701234 + 2680 STOP^ + 2681 032110 254 04 0 00 032111 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2682 032111 324 00 0 00 032112 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2683 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2684 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2685 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2686 + 2687 ;********** + 2688 + 2689 ;THIS TEST VERIFIES THAT HRRZS CLEARS THE LEFT HALF OF E, BUT DOES NOT + 2690 ;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS + 2691 ;ALSO PLACED INTO THE AC. + 2692 ;IN THIS CASE, AC = 1, C(AC) = -1,,-1 AND C(E) = 123456,,701234 + 2693 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,701234 AND 0,,701234 + 2694 ;RESPECTIVELY. + 2695 + 2696 032112 474 01 0 00 000000 C66110: SETO 1, ;PRELOAD AC WITH -1,,-1 + 2697 032113 200 17 0 00 034414 MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 2698 032114 553 01 0 00 000017 HRRZS 1,17 ;HRRZS SHOULD PLACE 0,,701234 INTO + 2699 ;BOTH AC AND E + 2700 032115 302 01 0 00 701234 CAIE 1,701234 ;PASS IF C(AC) = 0,,701234 + 2701 STOP^ + 2702 032116 254 04 0 00 032117 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2703 032117 324 00 0 00 032120 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2704 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2705 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2706 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2707 032120 302 17 0 00 701234 CAIE 17,701234 ;PASS IF C(E) = 0,,701234 + 2708 STOP^ + 2709 032121 254 04 0 00 032122 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2710 032122 324 00 0 00 032123 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2711 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2712 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2713 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2714 + 2715 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 40 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0069 + + 2716 ;THIS TEST VERIFIES THAT HLRZI CLEARS THE AC + 2717 ;IN THIS CASE, C(AC) = -1,,-1 AND E = 0,,-1. HENCE, THE + 2718 ;RESULT IN THE AC SHOULD BE 0. + 2719 + 2720 032123 474 00 0 00 000007 C66200: SETO 7 ;PRELOAD AC WITH -1,,-1 + 2721 032124 555 07 0 00 777777 HLRZI 7,-1 ;*HLRZI SHOULD CLEAR THE AC + 2722 032125 332 00 0 00 000007 SKIPE 7 ;PASS IF C(AC) = 0 + 2723 STOP^ + 2724 032126 254 04 0 00 032127 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2725 032127 324 00 0 00 032130 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2726 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2727 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2728 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2729 + 2730 ;********** + 2731 + 2732 ;THIS TEST VERIFIES THAT HLRZM PLACES C(AC-LEFT) INTO E-RIGHT AND + 2733 ;PLACES 0 INTO E-LEFT. + 2734 ;IN THIS CASE, C(AC) = 123456,,123422 AND C(E) = 707070,,717171 + 2735 ;HENCE, THE RESULT IN E SHOULD BE 0,,123456. + 2736 + 2737 032130 200 01 0 00 034374 C66300: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + 2738 032131 200 02 0 00 034375 MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + 2739 032132 556 01 0 00 000002 HLRZM 1,2 ;*HLRZM SHOULD PLACE 0,,123456 INTO E. + 2740 032133 312 01 0 00 034374 CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + 2741 STOP^ + 2742 032134 254 04 0 00 032135 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2743 032135 324 00 0 00 032136 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2744 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2745 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2746 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2747 032136 302 02 0 00 123456 CAIE 2,123456 ;PASS IF C(E) = 0,,123456 + 2748 STOP^ + 2749 032137 254 04 0 00 032140 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2750 032140 324 00 0 00 032141 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2751 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2752 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2753 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2754 + 2755 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 41 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0070 + + 2756 ;THIS TEST VERIFIES THAT HLRZM PLACES C(AC-LEFT) INTO E-RIGHT AND + 2757 ;PLACES 0 INTO E-LEFT. + 2758 ;IN THIS CASE, C(AC) = 123456,,123422 AND C(E) = 707070,,717171 + 2759 ;HENCE, THE RESULT IN E SHOULD BE 0,,123456. + 2760 + 2761 032141 200 01 0 00 034374 C66301: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + 2762 032142 200 02 0 00 034375 MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + 2763 032143 202 02 0 00 032155 MOVEM 2,E66301 + 2764 032144 556 01 0 00 032155 HLRZM 1,E66301 ;*HLRZM SHOULD PLACE 0,,123456 INTO E. + 2765 032145 312 01 0 00 034374 CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + 2766 STOP^ + 2767 032146 254 04 0 00 032147 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2768 032147 324 00 0 00 032150 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2769 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2770 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2771 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2772 032150 200 02 0 00 032155 MOVE 2,E66301 + 2773 032151 302 02 0 00 123456 CAIE 2,123456 ;PASS IF C(E) = 0,,123456 + 2774 STOP^ + 2775 032152 254 04 0 00 032153 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2776 032153 324 00 0 00 032154 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2777 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2778 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2779 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2780 + 2781 032154 334 00 0 00 000000 SKIPA ;GO TO NEXT TEST + 2782 032155 000000 000000 E66301: 0 ;TEST WORD MEMORY + 2783 + 2784 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 42 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0071 + + 2785 ;THIS TEST VERIFIES THAT HLRZS PLACES C(E-LEFT) INTO E-RIGHT AND + 2786 ;PLACES 0 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E IS + 2787 ;ALSO PLACED INTO THE AC. + 2788 ;IN THIS CASE, AC = 0, C(AC) = -1,,-1 AND C(E) = 123456,,701234. + 2789 ;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 AND 0,,123456 + 2790 ;RESPECTIVELY. + 2791 + 2792 032156 474 00 0 00 000000 C66400: SETO 0, ;PRELOAD AC WITH -1,,-1 + 2793 032157 200 07 0 00 034414 MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 2794 032160 557 00 0 00 000007 HLRZS 0,7 ;*HLRZS SHOULD PLACE 0,,123456 INTO E + 2795 032161 312 00 0 00 034301 CAME 0,[-1] ;PASS IF C(AC) IS UNCHANGED + 2796 STOP^ + 2797 032162 254 04 0 00 032163 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2798 032163 324 00 0 00 032164 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2799 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2800 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2801 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2802 032164 302 07 0 00 123456 CAIE 7,123456 ;PASS IF C(E) = 0,,123456 + 2803 STOP^ + 2804 032165 254 04 0 00 032166 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2805 032166 324 00 0 00 032167 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2806 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2807 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2808 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2809 + 2810 ;********** + 2811 + 2812 ;THIS TEST VERIFIES THAT HLRZS PLACES C(E-LEFT) INTO E-RIGHT AND + 2813 ;PLACES 0 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E + 2814 ;IS ALSO PLACED INTO THE AC. + 2815 ;IN THIS CASE, AC = 6, C(AC) = -1,,-1 AND C(E) = 123456,,701234. + 2816 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,123456 AND 0123456 + 2817 ;RESPECTIVELY. + 2818 + 2819 032167 474 06 0 00 000000 C66410: SETO 6, ;PRELOAD AC WITH -1,,-1 + 2820 032170 200 07 0 00 034414 MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 2821 032171 557 06 0 00 000007 HLRZS 6,7 ;*HLRZS SHOULD PLACE 0,,123456 INTO + 2822 ;BOTH AC AND E + 2823 032172 302 06 0 00 123456 CAIE 6,123456 ;PASS IF C(AC) = 0,,123456 + 2824 STOP^ + 2825 032173 254 04 0 00 032174 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2826 032174 324 00 0 00 032175 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2827 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2828 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2829 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2830 032175 302 07 0 00 123456 CAIE 7,123456 ;PASS IF C(E) = 0,,123456 + 2831 STOP^ + 2832 032176 254 04 0 00 032177 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2833 032177 324 00 0 00 032200 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2834 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2835 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2836 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2837 + 2838 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 43 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0072 + + 2839 ;THIS TEST VERIFIES THAT HLRZS PLACES C(E-LEFT) INTO E-RIGHT AND + 2840 ;PLACES 0 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E + 2841 ;IS ALSO PLACED INTO THE AC. + 2842 ;IN THIS CASE, AC = 6, C(AC) = -1,,-1 AND C(E) = 123456,,701234. + 2843 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,123456 AND 0123456 + 2844 ;RESPECTIVELY. + 2845 + 2846 032200 474 06 0 00 000000 C66411: SETO 6, ;PRELOAD AC WITH -1,,-1 + 2847 032201 200 07 0 00 034414 MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 2848 032202 202 07 0 00 032214 MOVEM 7,E66411 + 2849 032203 557 06 0 00 032214 HLRZS 6,E66411 ;*HLRZS SHOULD PLACE 0,,123456 INTO + 2850 ;BOTH AC AND E + 2851 032204 302 06 0 00 123456 CAIE 6,123456 ;PASS IF C(AC) = 0,,123456 + 2852 STOP^ + 2853 032205 254 04 0 00 032206 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2854 032206 324 00 0 00 032207 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2855 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2856 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2857 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2858 032207 200 07 0 00 032214 MOVE 7,E66411 + 2859 032210 302 07 0 00 123456 CAIE 7,123456 ;PASS IF C(E) = 0,,123456 + 2860 STOP^ + 2861 032211 254 04 0 00 032212 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2862 032212 324 00 0 00 032213 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2863 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2864 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2865 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2866 + 2867 032213 334 00 0 00 000000 SKIPA ;GO TO NEXT TEST + 2868 032214 000000 000000 E66411: 0 ;TEST WORD MEMORY + 2869 + 2870 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 44 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0073 + + 2871 ;THIS TEST VERIFIES THAT HRROM PLACES C(AC-RIGHT) INTO E-RIGHT AND + 2872 ;PLACES -1 INTO E-LEFT. IN THIS CASE, C(AC) = 123456,,701234 AND + 2873 ;C(E) = 0. HENCE, THE RESULT IN E SHOULD BE -1,,601234. + 2874 + 2875 032215 200 05 0 00 034414 C66500: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 2876 032216 402 00 0 00 000006 SETZM 6 ;CLEAR E + 2877 032217 562 05 0 00 000006 HRROM 5,6 ;*HRROM SHOULD PLACE -1,,701234 INTO E + 2878 032220 312 05 0 00 034414 CAME 5,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 2879 STOP^ + 2880 032221 254 04 0 00 032222 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2881 032222 324 00 0 00 032223 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2882 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2883 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2884 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2885 032223 312 06 0 00 034417 CAME 6,[-1,,701234] ;PASS IF C(E) = -1,,701234 + 2886 STOP^ + 2887 032224 254 04 0 00 032225 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2888 032225 324 00 0 00 032226 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2889 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2890 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2891 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2892 + 2893 + 2894 ;********** + 2895 + 2896 ;THIS TEST VERIFIES THAT HRROS PLACES -1 INTO THE LEFT HALF OF E, BUT DOES NOT + 2897 ;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO THE RESULT IN E IS + 2898 ;ALSO PLACED INTO THE AC. + 2899 ;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,701234 + 2900 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 + 2901 ;AND -1,,701234 RESPECTIVELY. + 2902 + 2903 032226 400 00 0 00 000000 C66600: SETZ 0 ;PRELOAD AC WITH 0 + 2904 032227 200 17 0 00 034414 MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 2905 032230 563 00 0 00 000017 HRROS 0,17 ;HRROS SHOULD PLACE -1,,701234 INTO E + 2906 032231 312 00 0 00 034407 CAME 0,[0] ;PASS IF C(AC) IS UNCHANGED + 2907 STOP^ + 2908 032232 254 04 0 00 032233 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2909 032233 324 00 0 00 032234 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2910 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2911 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2912 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2913 032234 312 17 0 00 034417 CAME 17,[-1,,701234] ;PASS IF C(E)=-1,,701234 + 2914 STOP^ + 2915 032235 254 04 0 00 032236 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2916 032236 324 00 0 00 032237 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2917 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2918 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2919 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2920 + 2921 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 45 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0074 + + 2922 ;THIS TEST VERIFIES THAT HRROS PLACES -1 INTO THE LEFT HALF OF E, BUT DOES NOT + 2923 ;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO THE RESULT IN E IS + 2924 ;ALSO PLACED INTO THE AC. + 2925 ;IN THIS CASE, AC=16, C(AC)=0 AND C(E)=123456,,701234 + 2926 ;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,701234 + 2927 ;AND -1,,701234 RESPECTIVELY. + 2928 + 2929 032237 400 16 0 00 000000 C66610: SETZ 16, ;PRELOAD AC WITH 0 + 2930 032240 200 17 0 00 034414 MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 2931 032241 563 16 0 00 000017 HRROS 16,17 ;*HRROS SHOULD PLACE -1,,701234 INTO + 2932 ;BOTH AC AND E + 2933 032242 312 16 0 00 034417 CAME 16,[-1,,701234] ;PASS IF C(AC)=-1,,701234 + 2934 STOP^ + 2935 032243 254 04 0 00 032244 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2936 032244 324 00 0 00 032245 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2937 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2938 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2939 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2940 032245 312 17 0 00 034417 CAME 17,[-1,,701234] ;PASS IF C(E)=-1,,701234 + 2941 STOP^ + 2942 032246 254 04 0 00 032247 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2943 032247 324 00 0 00 032250 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2944 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2945 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2946 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2947 + 2948 ;********** + 2949 + 2950 ;THIS TEST VERIFIES THAT HLRO PLACES C(E-LEFT) INTO AC-RIGHT AND + 2951 ;PLACES -1 INTO AC-LEFT. IN THIS CASE, C(AC)=0 + 2952 ;C(E)=765432,,107654. HENCE, THE RESULT IN THE AC SHOULD BE -1,,765432. + 2953 + 2954 032250 400 04 0 00 000000 C66700: SETZ 4, ;CLEAR AC + 2955 032251 200 05 0 00 034420 MOVE 5,[765432,,107654] ;PRELOAD E WITH 765432,,107654 + 2956 032252 564 04 0 00 000005 HLRO 4,5 ;*HLRO SHOULD PLACE -1,,765432 INTO THE AC + 2957 032253 312 04 0 00 034421 CAME 4,[-1,,765432] ;PASS IF C(AC)=-1,,765432 + 2958 STOP^ + 2959 032254 254 04 0 00 032255 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2960 032255 324 00 0 00 032256 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2961 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2962 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2963 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2964 032256 312 05 0 00 034420 CAME 5,[765432,,107654] ;PASS IF C(E) IS UNCHANGED + 2965 STOP^ + 2966 032257 254 04 0 00 032260 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2967 032260 324 00 0 00 032261 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2968 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2969 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2970 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2971 + 2972 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 46 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0075 + + 2973 ;THIS TEST VERIFIES THAT HLROI PLACES -1,,0 INTO THE AC. + 2974 ;IN THIS CASE, C(AC)=123456,,765432 AND E=070707. HENCE, THE + 2975 ;RESULT IN THE AC SHOULD BE -1,,0 + 2976 + 2977 032261 200 03 0 00 034334 C67000: MOVE 3,[123456,,765432] ;PRELOAD AC WITH 123456,,765432 + 2978 032262 565 03 0 00 070707 HLROI 3,070707 ;*HLROI SHOULD PLACE -1,,0 INTO THE AC + 2979 032263 312 03 0 00 034422 CAME 3,[-1,,0] ;PASS IF C(AC)=-1,,0 + 2980 STOP^ + 2981 032264 254 04 0 00 032265 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 2982 032265 324 00 0 00 032266 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 2983 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 2984 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 2985 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 2986 + 2987 ;********** + 2988 + 2989 ;THIS TEST VERIFIES THAT HLROM PLACES C(AC-LEFT) INTO E RIGHT AND + 2990 ;PLACES -1 INTO E-LEFT + 2991 ;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,,717171 + 2992 ;HENCE, THE RESULT IN E SHOULD BE -1,,123456 + 2993 + 2994 032266 200 01 0 00 034374 C67100: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + 2995 032267 200 02 0 00 034375 MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + 2996 032270 566 01 0 00 000002 HLROM 1,2 ;*HLROM SHOULD PLACE -1,,123456 INTO E + 2997 032271 312 01 0 00 034374 CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + 2998 STOP^ + 2999 032272 254 04 0 00 032273 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3000 032273 324 00 0 00 032274 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3001 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3002 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3003 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3004 032274 312 02 0 00 034423 CAME 2,[-1,,123456] ;PASS IF C(E)=-1,,123456 + 3005 STOP^ + 3006 032275 254 04 0 00 032276 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3007 032276 324 00 0 00 032277 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3008 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3009 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3010 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3011 + 3012 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 47 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0076 + + 3013 ;THIS TEST VERIFIES THAT HLROS PLACES C(E-LEFT) INTO E-RIGHT AND + 3014 ;PLACES -1 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E + 3015 ;IS ALSO PLACED INTO THE AC. + 3016 ;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,701234. + 3017 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 + 3018 ;AND -1,,123456 RESPECTIVELY + 3019 + 3020 032277 400 00 0 00 000000 C67200: SETZ 0 ;PRELOAD AC WITH 0 + 3021 032300 200 07 0 00 034414 MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 3022 032301 567 00 0 00 000007 HLROS 0,7 ;*HLROS SHOULD PLACE -1,,123456 INTO E + 3023 ; + 3024 032302 302 00 0 00 000000 CAIE 0,0 ;PASS IF C(AC) IS UNCHANGED + 3025 STOP^ + 3026 032303 254 04 0 00 032304 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3027 032304 324 00 0 00 032305 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3028 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3029 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3030 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3031 032305 312 07 0 00 034423 CAME 7,[-1,,123456] ;PASS IF C(E)=-1,,123456 + 3032 STOP^ + 3033 032306 254 04 0 00 032307 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3034 032307 324 00 0 00 032310 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3035 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3036 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3037 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3038 + 3039 ;********** + 3040 + 3041 ;THIS TEST VERIFIES THAT HLROS PLACES C(E-LEFT) INTO E-RIGHT AND + 3042 ;PLACES -1 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E + 3043 ;IS ALSO PLACED INTO THE AC. + 3044 ;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123456,,701234. + 3045 ;HENCE, THE RESULT IN AC AND E SHOULD BE -1,,123456 + 3046 ;AND -1,,123456 RESPECTIVELY. + 3047 + 3048 032310 400 01 0 00 000000 C67210: SETZ 1, ;PRELOAD AC WITH 0 + 3049 032311 200 07 0 00 034414 MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 3050 032312 567 01 0 00 000007 HLROS 1,7 ;*HLROS SHOULD PLACE -1,,123456 INTO + 3051 ;BOTH AC AND E + 3052 032313 312 01 0 00 034423 CAME 1,[-1,,123456] ;PASS IF C(AC)=-1,,123456 + 3053 STOP^ + 3054 032314 254 04 0 00 032315 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3055 032315 324 00 0 00 032316 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3056 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3057 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3058 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3059 032316 312 07 0 00 034423 CAME 7,[-1,,123456] ;PASS IF C(E)=-1,,123456 + 3060 STOP^ + 3061 032317 254 04 0 00 032320 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3062 032320 324 00 0 00 032321 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3063 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3064 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3065 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3066 + 3067 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 48 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0077 + + 3068 ;THIS TEST VERIFIES THAT HRRES PLACES C(E-RIGHT) INTO E-RIGHT + 3069 ;AND PLACES BIT 18 OF E INTO BITS 0 THRU 17 OF E. IF AC IS NON-ZERO, + 3070 ;THE RESULT IN E IS ALSO PLACED INTO THE AC. + 3071 ;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,701234 + 3072 ;HENCE, THE RESULT IN AC AND E SHOULD BE 0 + 3073 ;AND -1,,701234 RESPECTIVELY. + 3074 + 3075 032321 400 00 0 00 000000 C67300: SETZ 0, ;PRELOAD AC WITH 0 + 3076 032322 200 03 0 00 034414 MOVE 3,[123456,,701234] ;PRELOAD WITH 123456,,701234 + 3077 032323 573 00 0 00 000003 HRRES 0,3 ;HRRES SHOULD PLACE -1,,701234 INTO E + 3078 + 3079 032324 332 00 0 00 000000 SKIPE ;PASS IF C(AC) IS UNCHANGED + 3080 STOP^ + 3081 032325 254 04 0 00 032326 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3082 032326 324 00 0 00 032327 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3083 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3084 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3085 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3086 032327 312 03 0 00 034417 CAME 3,[-1,,701234] ;PASS IF C(E)=-1,,701234 + 3087 STOP^ + 3088 032330 254 04 0 00 032331 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3089 032331 324 00 0 00 032332 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3090 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3091 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3092 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3093 + 3094 ;********** + 3095 + 3096 ;THIS TEST VERIFIES THAT HRRES, PLACES C(E-RIGHT) INTO E-RIGHT + 3097 ;AND PLACES BIT 18 OF E INTO BITS 0 THRU 17 OF E. IF AC IS NON-ZERO, + 3098 ;THE RESULT IN E IS ALSO PLACED INTO THE AC. + 3099 ;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123456,,701234. + 3100 ;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,701234 + 3101 ;AND -1,,701234 RESPECTIVELY. + 3102 + 3103 032332 400 01 0 00 000000 C67310: SETZ 1, ;PRELOAD AC WITH 0 + 3104 032333 200 03 0 00 034414 MOVE 3,[123456,,701234] ;PRELOAD WITH 123456,,701234 + 3105 032334 573 01 0 00 000003 HRRES 1,3 ;HRRES SHOULD PLACE -1,,701234 INTO + 3106 ;BOTH AC AND E + 3107 032335 312 01 0 00 034417 CAME 1,[-1,,701234] ;PASS IF C(AC)=-1,,701234 + 3108 STOP^ + 3109 032336 254 04 0 00 032337 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3110 032337 324 00 0 00 032340 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3111 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3112 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3113 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3114 032340 312 03 0 00 034417 CAME 3,[-1,,701234] ;PASS IF C(E)=-1,,701234 + 3115 STOP^ + 3116 032341 254 04 0 00 032342 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3117 032342 324 00 0 00 032343 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3118 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3119 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3120 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3121 + 3122 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 49 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL HWT INSTRUCTIONS SEQ 0078 + + 3123 ;THIS TEST VERIFIES THAT HLRES PLACES C(E-LEFT) INTO E-RIGHT + 3124 ;AND PLACES BIT 0 OF E INTO BITS 0 THRU 17 OF E. IF AC IS + 3125 ;NON-ZERO, THE RESULT IN E IS ALSO PLACED INTO THE AC. + 3126 ;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E) 123456,,701234 + 3127 ;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 + 3128 ;AND 0,,123456 RESPECTIVELY. + 3129 + 3130 032343 474 00 0 00 000000 C67400: SETO 0, ;PRELOAD AC WITH -1,,-1 + 3131 032344 200 07 0 00 034414 MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 3132 032345 577 00 0 00 000007 HLRES 0,7 ;*HLRES SHOULD PLACE 0,,123456 INTO E + 3133 + 3134 032346 312 00 0 00 034301 CAME 0,[-1] ;PASS IF C(AC) IS UNCHANGED + 3135 STOP^ + 3136 032347 254 04 0 00 032350 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3137 032350 324 00 0 00 032351 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3138 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3139 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3140 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3141 032351 302 07 0 00 123456 CAIE 7,123456 ;PASS IF C(E)=0,,123456 + 3142 STOP^ + 3143 032352 254 04 0 00 032353 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3144 032353 324 00 0 00 032354 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3145 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3146 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3147 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3148 + 3149 ;********** + 3150 + 3151 ;THIS TEST VERIFIES THAT HLRES PLACES C(E-LEFT) INTO E-RIGHT + 3152 ;AND PLACES BIT 0 OF E INTO BITS 0 THRU 17 OF E. IF AC IS + 3153 ;NON-ZERO, THE RESULT IN E IS ALSO PLACED INTO THE AC. + 3154 ;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E) 123456,,701234. + 3155 ;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,123456 + 3156 ;AND 0,,123456 RESPECTIVELY. + 3157 + 3158 032354 474 01 0 00 000000 C67410: SETO 1, ;PRELOAD AC WITH -1,,-1 + 3159 032355 200 07 0 00 034414 MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + 3160 032356 577 01 0 00 000007 HLRES 1,7 ;*HLRES SHOULD PLACE 0,,123456 INTO + 3161 ;BOTH AC AND E + 3162 032357 302 01 0 00 123456 CAIE 1,123456 ;PASS IF C(AC)=0,,123456 + 3163 STOP^ + 3164 032360 254 04 0 00 032361 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3165 032361 324 00 0 00 032362 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3166 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3167 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3168 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3169 032362 302 07 0 00 123456 CAIE 7,123456 ;PASS IF C(E)=0,,123456 + 3170 STOP^ + 3171 032363 254 04 0 00 032364 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3172 032364 324 00 0 00 032365 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3173 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3174 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3175 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3176 + 3177 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 50 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0079 + + 3178 SUBTTL TEST OF MSCL LOGICAL TEST INSTRUCTIONS + 3179 + 3180 ;********** + 3181 + 3182 ;THIS TEST VERIFIES THAT TRNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3183 ;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 3184 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 3185 ;HENCE, TRNE SHOULD SKIP THE NEXT INSTRUCTION. THE AC IS ALSO + 3186 ;CHECKED FOR NO MODIFICATION. + 3187 + 3188 032365 200 17 0 00 034414 C67500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3189 032366 602 17 0 00 000003 TRNE 17,3 ;*TRNE SHOULD SKIP THE NEXT INSTRUCTION + 3190 STOP^ + 3191 032367 254 04 0 00 032370 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3192 032370 324 00 0 00 032371 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3193 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3194 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3195 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3196 032371 312 17 0 00 034414 CAME 17,[123456,,701234] ;PASS IF C AC) UNCHANGED + 3197 STOP^ + 3198 032372 254 04 0 00 032373 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3199 032373 324 00 0 00 032374 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3200 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3201 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3202 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3203 + 3204 ;********** + 3205 + 3206 ;THIS TEST VERIFIES THAT TRNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3207 ;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 3208 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 3209 ;HENCE, TRNE SHOULD NOT SKIP THE NEXT INSTRUCTION. THE AC IS ALSO + 3210 ;CHECKED FOR NO MODIFICATION. + 3211 + 3212 032374 200 16 0 00 034414 C67510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3213 032375 602 16 0 00 000300 TRNE 16,300 ;*TRNE SHOULD NOT SKIP THE NEXT INSTRUCTION + 3214 032376 334 00 0 00 000000 SKIPA ;PASS IF TRNE DID NOT SKIP + 3215 STOP^ + 3216 032377 254 04 0 00 032400 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3217 032400 324 00 0 00 032401 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3218 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3219 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3220 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3221 032401 312 16 0 00 034414 CAME 16,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3222 STOP^ + 3223 032402 254 04 0 00 032403 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3224 032403 324 00 0 00 032404 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3225 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3226 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3227 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3228 + 3229 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 51 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0080 + + 3230 ;THIS TEST VERIFIES THAT TLNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3231 ;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 3232 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 3233 ;HENCE, TLNE SHOULD SKIP THE NEXT INSTRUCTION, THE AC IS ALSO + 3234 ;CHECKED FOR NO MODIFICATION. + 3235 + 3236 032404 200 15 0 00 034414 C67600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3237 032405 603 15 0 00 000300 TLNE 15,300 ;*TLNE CHOULD SKIP + 3238 STOP^ + 3239 032406 254 04 0 00 032407 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3240 032407 324 00 0 00 032410 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3241 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3242 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3243 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3244 032410 312 15 0 00 034414 CAME 15,[123456,,701234] ;PASS IF C(AC) IS UNCHANGED + 3245 STOP^ + 3246 032411 254 04 0 00 032412 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3247 032412 324 00 0 00 032413 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3248 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3249 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3250 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3251 + 3252 ;********** + 3253 + 3254 ;THIS TEST VERIFIES THAT TLNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3255 ;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO + 3256 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 3257 ;HENCE, TLNE SHOULD NOT SKIP THE NEXT INSTRUCTION, THE AC IS ALSO + 3258 ;CHECKED FOR NO MODIFICATION + 3259 + 3260 032413 200 14 0 00 034414 C67610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3261 032414 603 14 0 00 000003 TLNE 14,3 ;*TLNE SHOULD NOT SKIP + 3262 032415 334 00 0 00 000000 SKIPA ;PASS IF TLNE DID NOT SKIP + 3263 STOP^ + 3264 032416 254 04 0 00 032417 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3265 032417 324 00 0 00 032420 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3266 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3267 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3268 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3269 032420 312 14 0 00 034414 CAME 14,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3270 STOP^ + 3271 032421 254 04 0 00 032422 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3272 032422 324 00 0 00 032423 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3273 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3274 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3275 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3276 + 3277 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 52 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0081 + + 3278 ;THIS TEST VERIFIES THAT TRNA ALWAYS SKIPS THE NEXT SEQUENTIAL + 3279 ;INSTRUCTION. HENCE, TRNA IS INDEPENDENT OF BOTH C(A) AND E + 3280 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 3281 ;HENCE, TRNA SHOULD SKIP THENEXT INSTRUCTION AND NOT ALTER C(AC). + 3282 + 3283 032423 200 13 0 00 034414 C67700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3284 032424 604 13 0 00 000003 TRNA 13,3 ;*TRNA SHOULD ALWAYS SKIP + 3285 STOP^ + 3286 032425 254 04 0 00 032426 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3287 032426 324 00 0 00 032427 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3288 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3289 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3290 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3291 032427 312 13 0 00 034414 CAME 13,[123456,,701234] ;PASS IFC(AC) UNCHANGED + 3292 STOP^ + 3293 032430 254 04 0 00 032431 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3294 032431 324 00 0 00 032432 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3295 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3296 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3297 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3298 + 3299 ;********** + 3300 + 3301 ;THIS TEST VERIFhES THAT TRNA ALWAYS SKIPS THE NEXT SEQUENTIAL + 3302 ;INSTRUCTION. HENCE, TRNA IS INDEPENDENT OF BOTH C(A) AND E. + 3303 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 3304 ;HENCE, TRNA SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + 3305 + 3306 032432 200 12 0 00 034414 C67710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3307 032433 604 12 0 00 000300 TRNA 12,300 ;*TRNA SHOQLD ALWAYS SKIP + 3308 STOP^ + 3309 032434 254 04 0 00 032435 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3310 032435 324 00 0 00 032436 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3311 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3312 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3313 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3314 032436 312 12 0 00 034414 CAME 12,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3315 STOP^ + 3316 032437 254 04 0 00 032440 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3317 032440 324 00 0 00 032441 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3318 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3319 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3320 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3321 + 3322 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 53 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0082 + + 3323 ;THIS TEST VERIFIaS THAT TLNA ALWAYS SKIPS THE NEXT SEQUENTIAL + 3324 ;INSTRUCTION. HENCE, TLNA IS INDEPENDENt OF BOTH C(AC) AND E. + 3325 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 3326 ;HENCE, TLNA SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + 3327 + 3328 032441 200 11 0 00 034414 C70000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3329 032442 605 11 0 00 000003 TLNA 11,3 ;*TLNA SHOULD ALWAYS SKIP + 3330 STOP^ + 3331 032443 254 04 0 00 032444 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3332 032444 324 00 0 00 032445 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3333 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3334 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3335 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3336 032445 312 11 0 00 034414 CAME 11,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3337 STOP^ + 3338 032446 254 04 0 00 032447 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3339 032447 324 00 0 00 032450 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3340 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3341 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3342 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3343 + 3344 ;********** + 3345 + 3346 ;THIS TEST VERIFIES THAT TLNA ALWAYS SKIPS THE NEXT SEQUENTIAL + 3347 ;INSTRUCTION. HENCE, TLNA IS INDEPENDENT OF BOTH C(AC) AND E. + 3348 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 3349 ;HENCE, TLNA SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + 3350 + 3351 032450 200 10 0 00 034414 C70010: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3352 032451 605 10 0 00 000300 TLNA 10,300 ;*TLNA SHOULD ALWAYS SKIP + 3353 STOP^ + 3354 032452 254 04 0 00 032453 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3355 032453 324 00 0 00 032454 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3356 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3357 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3358 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3359 032454 312 10 0 00 034414 CAME 10,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3360 STOP^ + 3361 032455 254 04 0 00 032456 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3362 032456 324 00 0 00 032457 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3363 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3364 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3365 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3366 + 3367 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 54 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0083 + + 3368 ;THIS TEST VERIFIES THAT TRNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3369 ;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN + 3370 ;E ARE ZERO. IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 3371 ;HENCE, TRNN SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + 3372 + 3373 032457 200 07 0 00 034414 C70100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3374 032460 606 07 0 00 000300 TRNN 7,300 ;*TRNN SHOULD SKIP + 3375 SToP^ + 3376 032461 254 04 0 00 032462 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3377 032462 324 00 0 00 032463 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3378 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3379 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3380 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3381 032463 312 07 0 00 034414 CAME 7,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3382 STOP^ + 3383 032464 254 04 0 00 032465 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3384 032465 324 00 0 00 032466 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3385 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3386 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3387 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3388 + 3389 ;********** + 3390 + 3391 ;THIS TEST VERIFIES THAT TRNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3392 ;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN + 3393 ;E ARE ZERO. IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 3394 ;HENCE, TRNN SHoULD NOT SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + 3395 + 3396 032466 200 06 0 00 034414 C70110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3397 032467 606 06 0 00 000003 TRNN 6,3 ;*TRNN SHOULD NOT SKIP + 3398 032470 334 00 0 00 000000 SKIPA ;PASS IF TRNN DID NOT SKIP + 3399 STOP^ + 3400 032471 254 04 0 00 032472 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3401 032472 324 00 0 00 032473 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3402 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3403 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3404 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3405 032473 312 06 0 00 034414 CAME 6,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3406 STOP^ + 3407 032474 254 04 0 00 032475 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3408 032475 324 00 0 00 032476 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3409 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3410 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3411 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3412 + 3413 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 55 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0084 + + 3414 ;THIS TEST VERIFIES THAT TLNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3415 ;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 3416 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 3417 ;HENCE, TLNN SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + 3418 + 3419 032476 200 05 0 00 034414 C70200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3420 032477 607 05 0 00 000003 TLNN 5,3 ;*TLNN SHOULD SKIP + 3421 STOP^ + 3422 032500 254 04 0 00 032501 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3423 032501 324 00 0 00 032502 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3424 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3425 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3426 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3427 032502 312 05 0 00 034414 CAME 5,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3428 STOP^ + 3429 032503 254 04 0 00 032504 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3430 032504 324 00 0 00 032505 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3431 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3432 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3433 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3434 + 3435 ;********** + 3436 + 3437 ;THIS TEST VERIFIES thAT TLNN SkIPS THE NEXT SEQUENTIAL INSTRUcTION + 3438 ;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 3439 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 3440 ;HENCE, TLNN SHOULD NOT SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + 3441 + 3442 032505 200 04 0 00 034414 C70210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3443 032506 607 04 0 00 000300 TLNN 4,300 ;*TLNN SHOULD NOT SKIP + 3444 032507 334 00 0 00 000000 SKIPA ;PASS IF TLNN DOES NOT SKIP + 3445 STOP^ + 3446 032510 254 04 0 00 032511 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3447 032511 324 00 0 00 032512 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3448 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3449 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3450 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3451 032512 312 04 0 00 034414 CAME 4,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3452 STOP^ + 3453 032513 254 04 0 00 032514 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3454 032514 324 00 0 00 032515 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3455 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3456 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3457 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3458 + 3459 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 56 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0085 + + 3460 ;THIS TEST VERIFIES THAT TSNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3461 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH + 3462 ;BOTH HALVES SNAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. + 3463 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 + 3464 ;HENCE, TSNE SHOULD SKIP THE NEXT INSTRUCtION AND + 3465 ;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED. + 3466 + 3467 032515 200 03 0 00 034414 C70300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3468 032516 200 04 0 00 034424 MOVE 4,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + 3469 032517 613 03 0 00 000004 TSNE 3,4 ;*TSNE SHOULD SKIP + 3470 STOP^ + 3471 032520 254 04 0 00 032521 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3472 032521 324 00 0 00 032522 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3473 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3474 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3475 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3476 032522 312 03 0 00 034414 CAME 3,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3477 STOP^ + 3478 032523 254 04 0 00 032524 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3479 032524 324 00 0 00 032525 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3480 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3481 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3482 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3483 032525 312 04 0 00 034424 CAME 4,[76543,,654321] ;PASS IF C(E) UNCHANGED + 3484 STOP^ + 3485 032526 254 04 0 00 032527 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3486 032527 324 00 0 00 032530 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3487 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3488 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3489 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3490 + 3491 ;********** + 3492 + 3493 ;THIS TEST VERIFIES THAT TSNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3494 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH + 3495 ;BOTH HALVES SNAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. + 3496 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654323 + 3497 ;HENCE, TSNE SHOULD NOT SKIP THE NEXT INSTRUCTION AND + 3498 ;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED. + 3499 + 3500 032530 200 02 0 00 034414 C70310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3501 032531 200 03 0 00 034425 MOVE 3,[76543,,654323] ;PRELOAD E WITH 076543,,654323 + 3502 032532 613 02 0 00 000003 TSNE 2,3 ;*TSNE SHOULD NOT SKIP + 3503 032533 334 00 0 00 000000 SKIPA ;PASS IF TSOE DId NOT SKIP + 3504 STOP^ + 3505 032534 254 04 0 00 032535 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3506 032535 324 00 0 00 032536 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3507 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3508 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3509 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3510 032536 312 02 0 00 034414 CAME 2,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3511 STOP^ + 3512 032537 254 04 0 00 032540 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3513 032540 324 00 0 00 032541 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3514 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 56-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0086 + + 3515 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3516 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3517 032541 312 03 0 00 034425 CAME 3,[76543,,654323] ;PASS IF C(E) UNCHANGED + 3518 STOP^ + 3519 032542 254 04 0 00 032543 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3520 032543 324 00 0 00 032544 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3521 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3522 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3523 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3524 + 3525 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 57 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0087 + + 3526 ;THIS TEST VERIFIES THAT TSNA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3527 ;NEITHER AC NOR E ARE AFFECTED. + 3528 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 + 3529 ;HENCE, TSNA SHOULD SKIP THE NEXT INSTRUCTION AND + 3530 ;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + 3531 + 3532 032544 200 01 0 00 034414 C70400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3533 032545 200 02 0 00 034424 MOVE 2,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + 3534 032546 615 01 0 00 000002 TSNA 1,2 ;*TSNA SHOULD SKIP + 3535 STOP^ + 3536 032547 254 04 0 00 032550 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3537 032550 324 00 0 00 032551 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3538 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3539 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3540 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3541 032551 312 01 0 00 034414 CAME 1,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3542 STOP^ + 3543 032552 254 04 0 00 032553 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3544 032553 324 00 0 00 032554 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3545 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3546 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3547 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3548 032554 312 02 0 00 034424 CAME 2,[76543,,654321] ;PASS IF C(E) UNCHANGED + 3549 STOP^ + 3550 032555 254 04 0 00 032556 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3551 032556 324 00 0 00 032557 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3552 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3553 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3554 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3555 + 3556 ;********** + 3557 + 3558 ;THIS TEST VERIFIES THAT TSNA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3559 ;NEITHER AC NOR E ARE EFFECTED. + 3560 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654323 + 3561 ;HENCE, TSNA SHOULD SKIP THE NEXT INSTRUCTION AND + 3562 ;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + 3563 + 3564 032557 200 00 0 00 034414 C70410: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3565 032560 200 01 0 00 034425 MOVE 1,[76543,,654323] ;PRELOAD E WITH 076543,,654323 + 3566 032561 615 00 0 00 000001 TSNA 0,1 ;*TSNA SHOULD SKIP + 3567 STOP^ + 3568 032562 254 04 0 00 032563 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3569 032563 324 00 0 00 032564 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3570 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3571 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3572 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3573 032564 312 01 0 00 034425 CAME 1,[76543,,654323] ;PASS IF C(E) UNCHANGED + 3574 STOP^ + 3575 032565 254 04 0 00 032566 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3576 032566 324 00 0 00 032567 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3577 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3578 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3579 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3580 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 57-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0088 + + 3581 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 58 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0089 + + 3582 ;THIS TEST VERIFIES THAT TSNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3583 ;IF AND ONLY IF NOT ALL HITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH + 3584 ;BOTH HALVES SWAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. + 3585 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076547,,654321 + 3586 ;HENCE, TSNN SHOULD SKIP THE NEXT INSTRUCTION AND + 3587 ;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + 3588 + 3589 032567 200 17 0 00 034414 C70500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3590 032570 200 00 0 00 034426 MOVE 0,[76547,,654321] ;PRELOAD E WITH 076547,,654321 + 3591 032571 617 17 0 00 000000 TSNN 17,0 ;*TSNN SHOULD SKIP + 3592 STOP^ + 3593 032572 254 04 0 00 032573 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3594 032573 324 00 0 00 032574 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3595 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3596 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3597 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3598 032574 312 17 0 00 034414 CAME 17,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3599 STOP^ + 3600 032575 254 04 0 00 032576 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3601 032576 324 00 0 00 032577 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3602 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3603 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3604 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3605 032577 312 00 0 00 034426 CAME 0,[76547,,654321] ;PASS IF C(E) UNCHANGED + 3606 STOP^ + 3607 032600 254 04 0 00 032601 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3608 032601 324 00 0 00 032602 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3609 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3610 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3611 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3612 + 3613 ;********** + 3614 + 3615 ;THIS TEST VERIFIES THAT TSNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3616 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH + 3617 ;BOTH HALVES SWAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. + 3618 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 + 3619 ;HENCE, TSNN SHOULD NOT SKIP THE NEXT INSTRUCTION AND + 3620 ;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + 3621 + 3622 032602 200 16 0 00 034414 C70510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3623 032603 200 17 0 00 034424 MOVE 17,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + 3624 032604 617 16 0 00 000017 TSNN 16,17 ;*TSNN SHOULD NOT SKIP + 3625 032605 334 00 0 00 000000 SKIPA ;PASS IF TSNN DID NOT SKIP + 3626 STOP^ + 3627 032606 254 04 0 00 032607 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3628 032607 324 00 0 00 032610 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3629 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3630 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3631 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3632 032610 312 16 0 00 034414 CAME 16,[123456,,701234] ;PASS IF C(AC) UNCHANGED + 3633 STOP^ + 3634 032611 254 04 0 00 032612 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3635 032612 324 00 0 00 032613 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3636 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 58-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0090 + + 3637 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3638 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3639 032613 312 17 0 00 034424 CAME 17,[76543,,654321] ;PASS IF C(E) UNCHANGED + 3640 STOP^ + 3641 032614 254 04 0 00 032615 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3642 032615 324 00 0 00 032616 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3643 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3644 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3645 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3646 + 3647 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 59 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0091 + + 3648 ;THIS TEST VERIFIES THAT TRZ CHANGES ALL BITS IN THE AC-RIGHT WHICH + 3649 ;CORRESPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. + 3650 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 3651 ;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701234 + 3652 + 3653 032616 200 15 0 00 034414 C70600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234] + 3654 032617 620 12 0 00 000003 TRZ 12,3 ;*TRZ SHOULD PLACE 123456,,701234 INTO + 3655 ;THE AC AND NOT SKIP + 3656 032620 334 00 0 00 000000 SKIPA ;PASS IF TRZ DOES NOT SKIP + 3657 STOP^ + 3658 032621 254 04 0 00 032622 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3659 032622 324 00 0 00 032623 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3660 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3661 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3662 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3663 032623 312 15 0 00 034414 CAME 15,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 3664 STOP^ + 3665 032624 254 04 0 00 032625 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3666 032625 324 00 0 00 032626 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3667 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3668 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3669 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3670 + 3671 ;********** + 3672 + 3673 ;THIS TEST VERIFIES THAT TRZ CHANGES ALL BITS IN THE AC-RIGHT WHICH + 3674 ;CORRESPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. + 3675 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 3676 ;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701034 + 3677 + 3678 032626 200 14 0 00 034414 C70610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3679 032627 620 14 0 00 000300 TRZ 14,300 ;*TRZ SHOULD PLACE 123456,,701234 INTO + 3680 ;THE ACAND NOT SKIP + 3681 032630 334 00 0 00 000000 SKIPA ;PASS IF TRX DOES NOT SKIP + 3682 STOP^ + 3683 032631 254 04 0 00 032632 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3684 032632 324 00 0 00 032633 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3685 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3686 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3687 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3688 032633 312 14 0 00 034427 CAME 14,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + 3689 STOP^ + 3690 032634 254 04 0 00 032635 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3691 032635 324 00 0 00 032636 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3692 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3693 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3694 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3695 + 3696 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 60 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0092 + + 3697 ;THIS TEST VERIFIES THAT TLZ CHANGES ALL BITS IN THE AC-LEFT WHICH + 3698 ;CORRESPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. + 3699 ;IN THIS CACE, C(AC)=123456,,701234 AND E=300 + 3700 ;HENCE, THE RESULT IN THE AC SHOUL BE 123456,,701234 + 3701 + 3702 032636 200 13 0 00 034414 C70700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3703 032637 621 13 0 00 000300 TLZ 13,300 ;*TLZ SHOULD PLACE 123456,,701234 INTO + 3704 ;THE AC AND NOT SKIP + 3705 032640 334 00 0 00 000000 SKIPA ;PASS IF TLZ DOES NOT SKIP + 3706 STOP^ + 3707 032641 254 04 0 00 032642 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3708 032642 324 00 0 00 032643 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3709 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3710 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3711 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3712 032643 312 13 0 00 034414 CAME 13,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 3713 STOP^ + 3714 032644 254 04 0 00 032645 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3715 032645 324 00 0 00 032646 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3716 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3717 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3718 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3719 + 3720 ;********** + 3721 + 3722 ;THIS TEST VERIFIES THAT TLZ CHANGES ALL BITS IN THE AC-LEFT WHICH + 3723 ;CORRSPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. + 3724 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 3725 ;HENCE, THE RESULT IN THE AC SHOULD BE 123454,,701234 + 3726 + 3727 032646 200 12 0 00 034414 C70710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3728 032647 621 12 0 00 000003 TLZ 12,3 ;*TLZ SHOULD PLACE 123454,,701234 INTO + 3729 ;THE AC AND NOT SKIP + 3730 032650 334 00 0 00 000000 SKIPA ;PASS IF TLZ DOES NOT SKIP + 3731 STOP^ + 3732 032651 254 04 0 00 032652 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3733 032652 324 00 0 00 032653 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3734 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3735 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3736 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3737 032653 312 12 0 00 034430 CAME 12,[123454,,701234] ;PASS IF C(AC)=123454,701234 + 3738 STOP^ + 3739 032654 254 04 0 00 032655 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3740 032655 324 00 0 00 032656 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3741 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3742 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3743 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3744 + 3745 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 61 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0093 + + 3746 ;THIS TEST VERIFIES THAT TRZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3747 ;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 3748 ;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. + 3749 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 3750 ;HENCE, TRZE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 3751 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701234 + 3752 + 3753 032656 200 11 0 00 034414 C71000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3754 032657 622 11 0 00 000003 TRZE 11,3 ;*TRZE SHOULD SKIP AND + 3755 ;PLACE 123456,,701234 INTO THE AC + 3756 STOP^ + 3757 032660 254 04 0 00 032661 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3758 032661 324 00 0 00 032662 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3759 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3760 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3761 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3762 032662 312 11 0 00 034414 CAME 11,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 3763 STOP^ + 3764 032663 254 04 0 00 032664 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3765 032664 324 00 0 00 032665 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3766 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3767 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3768 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3769 + 3770 ;********** + 3771 + 3772 ;THIS TEST VERIFIES THAT TRZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3773 ;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRSPONDING TO 1'S IN E ARE ZERO. + 3774 ;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. + 3775 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 3776 ;HENCE, TRZE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 3777 ;AND THE RESULT IN THE AC SHOUDL BE 123456,,701034 + 3778 + 3779 032665 200 10 0 00 034414 C71010: MOVE 10,[123456,,701234] ;PRELOAD AC WIT@ 123456,,701234 + 3780 032666 622 10 0 00 000300 TRZE 10,300 ;*TRZE SHOULD PLACE 123456,,701034 INTO + 3781 ;THE AC AND NOT SKIP + 3782 032667 334 00 0 00 000000 SKIPA ;PASS IF TRZE DOES NOT SKIP + 3783 STOP^ + 3784 032670 254 04 0 00 032671 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3785 032671 324 00 0 00 032672 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3786 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3787 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3788 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3789 032672 312 10 0 00 034427 CAME 10,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + 3790 STOP^ + 3791 032673 254 04 0 00 032674 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3792 032674 324 00 0 00 032675 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3793 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3794 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3795 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3796 + 3797 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 62 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0094 + + 3798 ;THIS TEST VERIFIES THAT TLZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3799 ;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 3800 ;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. + 3801 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 3802 ;HENCE, TLZE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 3803 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701234 + 3804 + 3805 032675 200 07 0 00 034414 C71100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3806 032676 623 07 0 00 000300 TLZE 7,300 ;*TLZE SHOULD SKIP AND + 3807 ;PLACE 123456,,701234 INTO THE AC + 3808 STOP^ + 3809 032677 254 04 0 00 032700 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3810 032700 324 00 0 00 032701 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3811 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3812 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3813 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3814 032701 312 07 0 00 034414 CAME 7,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 3815 STOP^ + 3816 032702 254 04 0 00 032703 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3817 032703 324 00 0 00 032704 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3818 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3819 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3820 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3821 + 3822 ;********** + 3823 + 3824 ;THIS TEST VERIFIES THAT TLZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3825 ;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 3826 ;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. + 3827 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 3828 ;HENCE, TLZE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 3829 ;AND THE RESULT IN THE AC SHOULD BE 123454,,701234 + 3830 + 3831 032704 200 06 0 00 034414 C71110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3832 032705 623 06 0 00 000003 TLZE 6,3 ;*TLZE SHOULD PLACE 123454,,701234 INTO + 3833 ;THE AC AND NOT SKIP + 3834 032706 334 00 0 00 000000 SKIPA ;PASS IF TLZE DOES NOT SKIP + 3835 STOP^ + 3836 032707 254 04 0 00 032710 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3837 032710 324 00 0 00 032711 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3838 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3839 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3840 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3841 032711 312 06 0 00 034430 CAME 6,[123454,,701234] ;PASS IF C(AC)=123454,,701234 + 3842 STOP^ + 3843 032712 254 04 0 00 032713 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3844 032713 324 00 0 00 032714 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3845 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3846 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3847 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3848 + 3849 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 63 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0095 + + 3850 ;THIS TEST VERIFIES THAT TRZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3851 ;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ZERO. + 3852 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 3853 ;HENCE, TRZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 3854 ;THE AC SHOULD BE 123456,,701234 + 3855 + 3856 032714 200 05 0 00 034414 C71200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3857 032715 624 05 0 00 000003 TRZA 5,3 ;*TRZA SHOULD SKIP AND + 3858 ;PLACE 123456,,701234 INTO THE AC + 3859 STOP^ + 3860 032716 254 04 0 00 032717 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3861 032717 324 00 0 00 032720 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3862 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3863 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3864 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3865 032720 312 05 0 00 034414 CAME 5,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 3866 STOP^ + 3867 032721 254 04 0 00 032722 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3868 032722 324 00 0 00 032723 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3869 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3870 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3871 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3872 + 3873 ;********** + 3874 + 3875 ;THIS TEST VERIFIES THAT TRZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3876 ;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ZERO. + 3877 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 3878 ;HENCE, TRZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 3879 ;THE AC SHOULD BE 123456,,701234. + 3880 + 3881 032723 200 04 0 00 034414 C71210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3882 032724 624 04 0 00 000300 TRZA 4,300 ;*TRZA SHOULD SKIP AND + 3883 ;PLACE 123456,,701034 INTO THE AC + 3884 STOP^ + 3885 032725 254 04 0 00 032726 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3886 032726 324 00 0 00 032727 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3887 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3888 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3889 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3890 032727 312 04 0 00 034427 CAME 4,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + 3891 STOP^ + 3892 032730 254 04 0 00 032731 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3893 032731 324 00 0 00 032732 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3894 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3895 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3896 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3897 + 3898 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 64 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0096 + + 3899 ;THIS TEST VERIFIES THAT TLZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRQCTION + 3900 ;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E TO ZERO. + 3901 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 3902 ;HENCE, TLZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 3903 ;THE AC SHOULD BE 123454,,701234. + 3904 + 3905 032732 200 03 0 00 034414 C71300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3906 032733 625 03 0 00 000003 TLZA 3,3 ;*TLZA SHOULD SKIP AND + 3907 ;PLACE 123454,,701234 INTO THE AC + 3908 STOP^ + 3909 032734 254 04 0 00 032735 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3910 032735 324 00 0 00 032736 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3911 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3912 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3913 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3914 032736 312 03 0 00 034430 CAME 3,[123454,,701234] ;PASS IF C(AC)=123454,,701234 + 3915 STOP^ + 3916 032737 254 04 0 00 032740 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3917 032740 324 00 0 00 032741 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3918 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3919 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3920 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3921 + 3922 ;********** + 3923 + 3924 ;THIS TEST VERIFIES THAT TLZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3925 ;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E TO ZERO. + 3926 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 3927 ;HENCE, TLZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 3928 ;THE AC SHOULD BE 123456,,701234. + 3929 + 3930 032741 200 02 0 00 034414 C71310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3931 032742 625 02 0 00 000300 TLZA 2,300 ;*TLZA SHOULD SKIP AND + 3932 ;PLACE 123456,,701234 INTO THE AC + 3933 STOP^ + 3934 032743 254 04 0 00 032744 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3935 032744 324 00 0 00 032745 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3936 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3937 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3938 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3939 032745 312 02 0 00 034414 CAME 2,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 3940 STOP^ + 3941 032746 254 04 0 00 032747 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3942 032747 324 00 0 00 032750 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3943 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3944 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3945 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3946 + 3947 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 65 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0097 + + 3948 ;THIS TEST VERIFIES THAT TRZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3949 ;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 3950 ;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. + 3951 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 3952 ;HENCE, TRZN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 3953 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701034. + 3954 + 3955 032750 200 01 0 00 034414 C71400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 3956 032751 626 01 0 00 000300 TRZN 1,300 ;*TRZN SHOULD SKIP AND + 3957 ;PLACE 123456,,701034 INTO THE AC + 3958 STOP^ + 3959 032752 254 04 0 00 032753 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3960 032753 324 00 0 00 032754 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3961 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3962 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3963 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3964 032754 312 01 0 00 034427 CAME 1,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + 3965 STOP^ + 3966 032755 254 04 0 00 032756 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3967 032756 324 00 0 00 032757 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3968 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3969 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3970 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3971 + 3972 ;********** + 3973 + 3974 ;THIS TEST VERIFIES THAT TRZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 3975 ;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 3976 ;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. + 3977 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 3978 ;HENCE, TRZN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 3979 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701234. + 3980 + 3981 032757 200 00 0 00 034414 C71410: MOVE 0,[123456,,701234] ;PRELOAD AC WATH 123456,,701234 + 3982 032760 626 00 0 00 000003 TRZN 0,3 ;*TRZN SHOULD PLACE 123456,,701234 INTO + 3983 ;THE AC AND NOT SKIP + 3984 032761 334 00 0 00 000000 SKIPA ;PASS IF TRZN DOES NOT SKIP + 3985 STOP^ + 3986 032762 254 04 0 00 032763 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3987 032763 324 00 0 00 032764 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3988 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3989 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3990 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3991 032764 312 00 0 00 034414 CAME 0,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 3992 STOP^ + 3993 032765 254 04 0 00 032766 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 3994 032766 324 00 0 00 032767 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 3995 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 3996 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 3997 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 3998 + 3999 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 66 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0098 + + 4000 ;THIS TEST VERIFIES THAT TLZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4001 ;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 4002 ;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. + 4003 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 4004 ;HENCE, TLZN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 4005 ;AND THE RESULT IN THE AC SHOULD BE 123454,,701234. + 4006 + 4007 032767 200 17 0 00 034414 C71500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4008 032770 627 17 0 00 000003 TLZN 17,3 ;TLZN SHOULD SKIP AND + 4009 ;PLACE 123454,,701234 INTO THE AC + 4010 STOP^ + 4011 032771 254 04 0 00 032772 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4012 032772 324 00 0 00 032773 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4013 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4014 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4015 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4016 032773 312 17 0 00 034430 CAME 17,[123454,,701234] ;PASS IF C(AC)=123454,,701234 + 4017 STOP^ + 4018 032774 254 04 0 00 032775 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4019 032775 324 00 0 00 032776 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4020 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4021 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4022 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4023 + 4024 ;********** + 4025 + 4026 ;THIS TEST VERIFIES THAT TLZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4027 ;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 4028 ;THESE MASKED AC BIPS ARE THEN CHANGED TO ZEROS. + 4029 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 4030 ;HENCE, TLZN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 4031 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701234. + 4032 + 4033 032776 200 16 0 00 034414 C71510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4034 032777 627 16 0 00 000300 TLZN 16,300 ;*TLZN SHOULD PLACE 123456,,701234 INTO + 4035 ;THE AC AND NOT SKIP + 4036 033000 334 00 0 00 000000 SKIPA ;PASS IF TLZN DOES NOT SKIP + 4037 STOP^ + 4038 033001 254 04 0 00 033002 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4039 033002 324 00 0 00 033003 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4040 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4041 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4042 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4043 033003 312 16 0 00 034414 CAME 16,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 4044 STOP^ + 4045 033004 254 04 0 00 033005 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4046 033005 324 00 0 00 033006 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4047 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4048 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4049 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4050 + 4051 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 67 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0099 + + 4052 ;THIS TEST VERIFIES THAT TSZ CLEARS ALL BITS OF THE AC WHICH + 4053 ;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES + 4054 ;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. + 4055 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321. + 4056 ;HENCE, TSZ SHOULD NOT SKIP AND C(AC) SHOULD BE 123456,,701234. + 4057 + 4058 033006 200 15 0 00 034414 C71600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4059 033007 200 16 0 00 034424 MOVE 16,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + 4060 033010 631 15 0 00 000016 TSZ 15,16 ;*TSZ SHOULD NOT SKIP AND + 4061 ;PLACE 123456,,701234 INTO THE AC + 4062 033011 334 00 0 00 000000 SKIPA ;PASS IF TSZ DID NOT SKIP + 4063 STOP^ + 4064 033012 254 04 0 00 033013 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4065 033013 324 00 0 00 033014 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4066 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4067 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4068 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4069 033014 312 15 0 00 034414 CAME 15,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 4070 STOP^ + 4071 033015 254 04 0 00 033016 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4072 033016 324 00 0 00 033017 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4073 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4074 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4075 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4076 033017 312 16 0 00 034424 CAME 16,[76543,,654321] ;PASS IF C(E) UNCHANCED + 4077 STOP^ + 4078 033020 254 04 0 00 033021 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4079 033021 324 00 0 00 033022 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4080 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4081 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4082 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4083 + 4084 ;********** + 4085 + 4086 ;THIS TEST VERIFIES THAT TSZ CLEARS ALL BITS OF THE AC WHICH + 4087 ;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES + 4088 ;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. + 4089 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070. + 4090 ;HENCE, TSZ SHOULD NOT SKIP AND C(AC) SHOULD BE 020406,,501210. + 4091 + 4092 033022 200 14 0 00 034414 C71610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4093 033023 200 15 0 00 034431 MOVE 15,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + 4094 033024 631 14 0 00 000015 TSZ 14,15 ;*TSZ SHOULD NOT SKIP AND + 4095 ;PLACE 020406,,501210 INTO THE AC + 4096 033025 334 00 0 00 000000 SKIPA ;PASS IF TSZ DID NOT SKIP + 4097 STOP^ + 4098 033026 254 04 0 00 033027 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4099 033027 324 00 0 00 033030 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4100 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4101 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4102 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4103 033030 312 14 0 00 034432 CAME 14,[020406,,501210] ;PASS IF C(AC)=020406,,501210 + 4104 STOP^ + 4105 033031 254 04 0 00 033032 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4106 033032 324 00 0 00 033033 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 67-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0100 + + 4107 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4108 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4109 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4110 033033 312 15 0 00 034431 CAME 15,[252525,,707070] ;PASS IF C(E) UNCHANGED + 4111 STOP^ + 4112 033034 254 04 0 00 033035 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4113 033035 324 00 0 00 033036 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4114 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4115 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4116 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4117 + 4118 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 68 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0101 + + 4119 ;THIS TEST VERIFIES THAT TDZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4120 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 4121 ;C(E). + 4122 ;AC BITS ARE THEN CHANGED TO ZERO. + 4123 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543. + 4124 ;HENCE, TDZE SHOULD SKIP AND THE RESULT IN THE AC + 4125 ;SHOULD BE 123456,,701234. C(E) IS NOT AFFECTED. + 4126 + 4127 033036 200 13 0 00 034414 C71700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4128 033037 200 14 0 00 034433 MOVE 14,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + 4129 033040 632 13 0 00 000014 TDZE 13,14 ;*TDZE SHOULD SKIP AND + 4130 ;PLACE 123456,,701234 INTO THE AC + 4131 STOP^ + 4132 033041 254 04 0 00 033042 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4133 033042 324 00 0 00 033043 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4134 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4135 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4136 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4137 033043 312 13 0 00 034414 CAME 13,[123456,,701234] ;PASS IF C(AC)=123456,,701234] + 4138 STOP^ + 4139 033044 254 04 0 00 033045 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4140 033045 324 00 0 00 033046 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4141 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4142 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4143 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4144 033046 312 14 0 00 034433 CAME 14,[654321,,076543] ;PASS IF C(E) UNCHANGED + 4145 STOP^ + 4146 033047 254 04 0 00 033050 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4147 033050 324 00 0 00 033051 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4148 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4149 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4150 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4151 + 4152 ;********** + 4153 + 4154 ;THIS TEST VERIFIES THAT TDZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4155 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 4156 ;C(E) ARE ZERO. THESE MASKED + 4157 ;AC BITS ARE THEN CHANGED TO ZERO. + 4158 ;IN THIS CASE, C(AC)= 123456,,701234 AND C(E)= 754321,,076543 + 4159 ;HENCE, TDZE SHOULD NOT SKIP AND THE RESULT IN AC + 4160 ;SHOULD BE 023456,,701234 C(E) IS NOT AFFECTED + 4161 + 4162 033051 200 12 0 00 034414 C71710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4163 033052 200 13 0 00 034434 MOVE 13,[754321,,076543] ;PRELOAD E WITH 754321,,076543 + 4164 033053 632 12 0 00 000013 TDZE 12,13 ;*TDZE SHOULD NOT SKIP AND + 4165 ;PLACE 023456,,701234 INTO THE AC + 4166 033054 334 00 0 00 000000 SKIPA ;PASS IF TDZE DOES NOT SKIP + 4167 STOP^ + 4168 033055 254 04 0 00 033056 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4169 033056 324 00 0 00 033057 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4170 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4171 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4172 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4173 033057 312 12 0 00 034435 CAME 12,[023456,,701234] ;PASS IF C(AC)= 023456,,701234 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 68-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0102 + + 4174 STOP^ + 4175 033060 254 04 0 00 033061 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4176 033061 324 00 0 00 033062 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4177 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4178 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4179 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4180 033062 312 13 0 00 034434 CAME 13,[754321,,076543] ;PASS IF C(E) UNCHANGED + 4181 STOP^ + 4182 033063 254 04 0 00 033064 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4183 033064 324 00 0 00 033065 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4184 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4185 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4186 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4187 + 4188 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 69 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0103 + + 4189 ;THIS TEST VERIFIES THAT TSZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4190 ;IF AND ONLY IF ALL BITS IN THE AC CORRECPONDING TO 1'S IN + 4191 ;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 4192 ;AC BITS ARE THEN CHANGED TO ZERO. + 4193 ;IN THIS CASE, C(AC)= 123456,,701234 AND C(E)= 076543,,654321 + 4194 ;HENCE, TSZE SHOULD SKIP AND THE RESULT IN AC + 4195 ;SHOULD BE 123456,,701234 C(E) IS NOT AFFECTED + 4196 + 4197 033065 200 11 0 00 034414 C72000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4198 033066 200 12 0 00 034424 MOVE 12,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + 4199 033067 633 11 0 00 000012 TSZE 11,12 ;*TSZE SHOULD SKIP AND + 4200 ;PLACE 123456,,701234 INTO THE AC + 4201 STOP^ + 4202 033070 254 04 0 00 033071 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4203 033071 324 00 0 00 033072 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4204 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4205 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4206 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4207 033072 312 11 0 00 034414 CAME 11,[123456,,701234] ;PASS IF C(AC)= 123456,,701234 + 4208 STOP^ + 4209 033073 254 04 0 00 033074 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4210 033074 324 00 0 00 033075 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4211 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4212 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4213 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4214 033075 312 12 0 00 034424 CAME 12,[76543,,654321] ;PASS IF C(E) UNCHANGED + 4215 STOP^ + 4216 033076 254 04 0 00 033077 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4217 033077 324 00 0 00 033100 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4218 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4219 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4220 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4221 + 4222 ;********** + 4223 + 4224 ;THIS TEST VERIFIES THAT TSZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4225 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 4226 ;C (E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 4227 ;AC BITS ARE THEN CHANGED TO ZERO + 4228 ;IN THIS CASE, C(AC)= 123456,,701234 AND C(E)= 076543,,657321 + 4229 ;HENCE, TSZE SHOULD NOT SKIP AND THE RESULT IN AC + 4230 ;SHOULD BE 120456,,701234 C(E) IS NOT AFFECTED + 4231 + 4232 033100 200 10 0 00 034414 C72010: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4233 033101 200 11 0 00 034436 MOVE 11,[76543,,657321] ;PRELOAD E WITH 076543,,654321 + 4234 033102 633 10 0 00 000011 TSZE 10,11 ;*TSZE SHOULD NOT SKIP AND + 4235 ;PLACE 120456,,701234 INTO THE AC + 4236 033103 334 00 0 00 000000 SKIPA ;PASS IF TSZE DID NOT SKIP + 4237 STOP^ + 4238 033104 254 04 0 00 033105 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4239 033105 324 00 0 00 033106 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4240 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4241 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4242 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4243 033106 312 10 0 00 034437 CAME 10,[120456,,701234] ;PASS IF C(AC)= 120456,,701234 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 69-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0104 + + 4244 STOP^ + 4245 033107 254 04 0 00 033110 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4246 033110 324 00 0 00 033111 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4247 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4248 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4249 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4250 033111 312 11 0 00 034436 CAME 11,[76543,,657321] ;PASS IF C(E) UNCHANGED + 4251 STOP^ + 4252 033112 254 04 0 00 033113 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4253 033113 324 00 0 00 033114 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4254 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4255 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4256 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4257 + 4258 + 4259 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 70 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0105 + + 4260 ;THIS TEST VERIFIES THAT TDZA CLEARS ALL BITS OF THE AC WHICH + 4261 ;CORRESPOND TO 1'S IN C(E) AND ALWAYS + 4262 ;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED + 4263 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)= 654321,,076543 + 4264 ;HENCE, TD2A SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 123456,,701234 + 4265 + 4266 033114 200 07 0 00 034414 C72100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4267 033115 200 10 0 00 034433 MOVE 10,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + 4268 033116 634 07 0 00 000010 TDZA 7,10 ;*TDZA SHOULD SKIP AND + 4269 ;PLACE 123456,,701234 INTO THE AC + 4270 STOP^ + 4271 033117 254 04 0 00 033120 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4272 033120 324 00 0 00 033121 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4273 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4274 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4275 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4276 033121 312 07 0 00 034414 CAME 7,[123456,,701234] ;PASS IF C(AC)= 123456,,701234 + 4277 STOP^ + 4278 033122 254 04 0 00 033123 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4279 033123 324 00 0 00 033124 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4280 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4281 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4282 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4283 033124 312 10 0 00 034433 CAME 10,[654321,,076543] ;PASS IF C(AC)=123456,,701234 + 4284 STOP^ + 4285 033125 254 04 0 00 033126 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4286 033126 324 00 0 00 033127 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4287 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4288 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4289 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4290 033127 312 10 0 00 034433 CAME 10,[654321,,076543] ;PASS IF C(E) UNCHANGED + 4291 STOP^ + 4292 033130 254 04 0 00 033131 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4293 033131 324 00 0 00 033132 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4294 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4295 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4296 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4297 + 4298 ;********** + 4299 + 4300 ;THIS TEST VERIFIES THAT TDZA CLEARS ALL BITS OF THE AC WHICH + 4301 ;CORRESPOND TO 1'S IN C(E) AND ALWAYS + 4302 ;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED + 4303 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 + 4304 ;HENCE, TDZA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 121052,,000204 + 4305 + 4306 033132 200 06 0 00 034414 C72110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4307 033133 200 07 0 00 034431 MOVE 7,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + 4308 033134 634 06 0 00 000007 TDZA 6,7 ;*TDZA SHOULD SKIP AND + 4309 ;PLACE 121052,,000204 INTO THE AC + 4310 STOP^ + 4311 033135 254 04 0 00 033136 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4312 033136 324 00 0 00 033137 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4313 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4314 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 70-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0106 + + 4315 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4316 033137 312 06 0 00 034440 CAME 6,[121052,,000204] ;PASS IF C(AC)=121052,,000204 + 4317 STOP^ + 4318 033140 254 04 0 00 033141 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4319 033141 324 00 0 00 033142 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4320 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4321 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4322 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4323 033142 312 07 0 00 034431 CAME 7,[252525,,707070] ;PASS IF C(E) UNCHANGED + 4324 STOP^ + 4325 033143 254 04 0 00 033144 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4326 033144 324 00 0 00 033145 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4327 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4328 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4329 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4330 + 4331 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 71 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0107 + + 4332 ;THIS TEST VERIFIES TH`T TSZA CLEARS AHL BITS OF THE AC WHICH + 4333 ;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS + 4334 ;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. + 4335 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 + 4336 ;HENCE, TSZA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 123456,,701234 + 4337 + 4338 033145 200 05 0 00 034414 C72200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4339 033146 200 06 0 00 034424 MOVE 6,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + 4340 033147 635 05 0 00 000006 TSZA 5,6 ;*TSZA SHOULD SKIP AND + 4341 ;PLACE 123456,,701234 INTO THE AC + 4342 STOP^ + 4343 033150 254 04 0 00 033151 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4344 033151 324 00 0 00 033152 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4345 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4346 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4347 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4348 033152 312 05 0 00 034414 CAME 5,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 4349 STOP^ + 4350 033153 254 04 0 00 033154 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4351 033154 324 00 0 00 033155 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4352 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4353 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4354 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4355 033155 312 06 0 00 034424 CAME 6,[076543,,654321] ;PASS IF C(E) UNCHANGED + 4356 STOP^ + 4357 033156 254 04 0 00 033157 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4358 033157 324 00 0 00 033160 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4359 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4360 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4361 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4362 + 4363 ;********** + 4364 + 4365 ;THIS TEST VERIFIES THAT TSZA CLEARS ALL BITS OF THE AC WHICH + 4366 ;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS + 4367 ;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. + 4368 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=701234,,123456 + 4369 ;HENCE, TSZA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 0 + 4370 + 4371 033160 200 04 0 00 034414 C72210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4372 033161 200 05 0 00 034441 MOVE 5,[701234,,123456] ;PRELOAD E WITH 701234,,123456 + 4373 033162 635 04 0 00 000005 TSZA 4,5 ;*TSZA SHOULD SKIP AND + 4374 ;PLACE 0 INTO THE AC + 4375 STOP^ + 4376 033163 254 04 0 00 033164 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4377 033164 324 00 0 00 033165 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4378 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4379 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4380 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4381 033165 312 04 0 00 034407 CAME 4,[0] ;PASS IF C(AC)=0 + 4382 STOP^ + 4383 033166 254 04 0 00 033167 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4384 033167 324 00 0 00 033170 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4385 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4386 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 71-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0108 + + 4387 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4388 033170 312 05 0 00 034441 CAME 5,[701234,,123456] ;PASS IF C(E) UNCHANGED + 4389 SToP^ + 4390 033171 254 04 0 00 033172 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4391 033172 324 00 0 00 033173 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4392 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4393 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4394 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4395 + 4396 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 72 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0109 + + 4397 ;THIS TEST VERIFIES THAT TDZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4398 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 4399 ;C(E) ARE ZERO. THESE MASKED + 4400 ;AC BITS ARE THEN CHANGEDTO ZERO. + 4401 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076547 + 4402 ;HENCE, TDZN SHOULD SKIP AND THE RESULT IN THE AC + 4403 ;SHOULD BE 123456(,701230. C(E) IS NOT AFFECTED. + 4404 + 4405 033173 200 03 0 00 034414 C72300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4406 033174 200 04 0 00 034442 MOVE 4,[654321,,76547] ;PRELOAD E WITH 654321,,076547 + 4407 033175 636 03 0 00 000004 TDZN 3,4 ;*TDZN SHoULD SKIP AND + 4408 ;PLACE 123456,,701230 INTO THE AC + 4409 STOP^ + 4410 033176 254 04 0 00 033177 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4411 033177 324 00 0 00 033200 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4412 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4413 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4414 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4415 033200 312 03 0 00 034443 CAME 3,[123456,,701230] ;PASS IF C(AC)=123456,,701230 + 4416 STOP^ + 4417 033201 254 04 0 00 033202 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4418 033202 324 00 0 00 033203 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4419 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4420 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4421 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4422 033203 312 04 0 00 034442 CAME 4,[654321,,076547] ;PASS IF C(E) UNCHANGED + 4423 STOP^ + 4424 033204 254 04 0 00 033205 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4425 033205 324 00 0 00 033206 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4426 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4427 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4428 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4429 + 4430 ;********** + 4431 + 4432 ;THIS TEST VERIFIES THAT TDZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4433 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 4434 ;C(E) ARE ZERO. THESE MASKED + 4435 ;AC BITS ARE THEN CHANGED TO ZERO. + 4436 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 + 4437 ;HENCE, TDZN SHOULD NOT SKIP AND THE RESULT IN THE AC + 4438 ;SHOULD BE 123456,,701234. C(E) IS NOT AFFECTED. + 4439 + 4440 033206 200 02 0 00 034414 C72310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4441 033207 200 03 0 00 034433 MOVE 3,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + 4442 033210 636 02 0 00 000003 TDZN 2,3 ;*TDZN SHOULD NOT SKIP AND + 4443 ;PLACE 123456,,701234 INTO THE AC + 4444 033211 334 00 0 00 000000 SKIPA ;PASS IF TDZN DOES NOT SKIP + 4445 STOP^ + 4446 033212 254 04 0 00 033213 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4447 033213 324 00 0 00 033214 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4448 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4449 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4450 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4451 033214 312 02 0 00 034414 CAME 2,[123456,,701234] ;PASS IF C(AC)=123456,,701234 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 72-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0110 + + 4452 STOP^ + 4453 033215 254 04 0 00 033216 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4454 033216 324 00 0 00 033217 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4455 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4456 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4457 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4458 033217 312 03 0 00 034433 CAME 3,[654321,,076543] ;PASS IF C(E) UNCHANGED + 4459 STOP^ + 4460 033220 254 04 0 00 033221 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4461 033221 324 00 0 00 033222 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4462 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4463 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4464 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4465 + 4466 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 73 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0111 + + 4467 ;THIS TEST VERIFIES THaT TSZN SKIPS THE NEXT SEQQENPIAL INSTRUCTION + 4468 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 4469 ;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 4470 ;AC BITS ARE THEN CHANGED TO ZERO. + 4471 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=077543,,654321. + 4472 ;HENCE, TSZN SHOULD SKIP AND THE RESULT IN THE AC + 4473 ;SHOULD BE 123456,,700234. C(E) IS NOT AFFECTED. + 4474 + 4475 033222 200 01 0 00 034414 C72400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4476 033223 200 02 0 00 034444 MOVE 2,[077543,,654321] ;PRELOAD E WITH 077543,,654321 + 4477 033224 637 01 0 00 000002 TSZN 1,2 ;*TSZN SHOULD SKIP AND + 4478 ;PLACE 123456,,700234 INTO THE AC + 4479 STOP^ + 4480 033225 254 04 0 00 033226 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4481 033226 324 00 0 00 033227 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4482 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4483 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4484 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4485 033227 312 01 0 00 034445 CAME 1,[123456,,700234] ;PASS IF C(AC)=123456,,700234 + 4486 STOP^ + 4487 033230 254 04 0 00 033231 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4488 033231 324 00 0 00 033232 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4489 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4490 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4491 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4492 033232 312 02 0 00 034444 CAME 2,[77543,,654321] ;PASS IF C(E) UNCHANGED + 4493 STOP^ + 4494 033233 254 04 0 00 033234 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4495 033234 324 00 0 00 033235 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4496 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4497 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4498 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4499 + 4500 ;********** + 4501 + 4502 ;THIS TEST VERIFIES THAT TSZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4503 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 4504 ;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 4505 ;AC BITS ARE THEN CHANGED TO ZERO. + 4506 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321.- + 4507 ;HENCE, TSZN SHOULD NOT SKIP AND THE RESULT IN THE AC + 4508 ;SHOULD BE 123456,,701234. C(E) IS NOT AFFECTED. + 4509 + 4510 033235 200 00 0 00 034414 C72410: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4511 033236 200 01 0 00 034424 MOVE 1,[76543,,654321] ;PRElOAD E WITH 076543,,654321 + 4512 033237 637 00 0 00 000001 TSZN 0,1 ;*TSZN SHOULD NOT SKIP AND + 4513 ;PLACE 123456,,701234 INTO THE AC + 4514 033240 334 00 0 00 000000 SKIPA ;PASS IF TSZN DOES NOT SKIP + 4515 STOP^ + 4516 033241 254 04 0 00 033242 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4517 033242 324 00 0 00 033243 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4518 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4519 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4520 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4521 033243 312 00 0 00 034414 CAME 0,[123456,,701234] ;PASS IF C(AC)=123456,,701234] +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 73-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0112 + + 4522 STOP^ + 4523 033244 254 04 0 00 033245 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4524 033245 324 00 0 00 033246 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4525 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4526 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4527 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4528 033246 312 01 0 00 034424 CAME 1,[76543,,654321] ;PASS IF C(E) UNCHANGED + 4529 STOP^ + 4530 033247 254 04 0 00 033250 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4531 033250 324 00 0 00 033251 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4532 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4533 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4534 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4535 + 4536 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 74 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0113 + + 4537 ;THIS TEST VERIFIES THAT TRC COMPLEMENTS ALL BITS IN THE AC-RIGHT WHICH + 4538 ;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. + 4539 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 4540 ;HENCE, THE RESULT IN THE AC SHOUHD BE 123456,,701237 + 4541 + 4542 033251 200 17 0 00 034414 C72500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4543 033252 640 17 0 00 000003 TRC 17,3 ;*TRC SHOULD NOT SKIP AND + 4544 ;PLACE 123456,,701237 INTO THE AC + 4545 033253 334 00 0 00 000000 SKIPA ;PASS IF TRC DID NOT SKIP + 4546 STOP^ + 4547 033254 254 04 0 00 033255 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4548 033255 324 00 0 00 033256 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4549 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4550 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4551 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4552 033256 312 17 0 00 034446 CAME 17,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + 4553 STOP^ + 4554 033257 254 04 0 00 033260 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4555 033260 324 00 0 00 033261 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4556 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4557 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4558 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4559 + 4560 ;********** + 4561 + 4562 ;THIS TEST VERIFIES THAT TRC COMPLEMENTS ALL BITS IN THE AC-RIGHT WHICH + 4563 ;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. + 4564 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 4565 ;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701134 + 4566 + 4567 033261 200 16 0 00 034414 C72510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4568 033262 640 16 0 00 000300 TRC 16,300 ;*TRC SHOULD NOT SKIP AND + 4569 ;PLACE 123456,,701134 INTO THE AC + 4570 033263 334 00 0 00 000000 SKIPA ;PASS IF TRC DID NOT SKIP + 4571 STOP^ + 4572 033264 254 04 0 00 033265 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4573 033265 324 00 0 00 033266 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4574 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4575 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4576 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4577 033266 312 16 0 00 034447 CAME 16,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + 4578 STOP^ + 4579 033267 254 04 0 00 033270 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4580 033270 324 00 0 00 033271 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4581 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4582 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4583 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4584 + 4585 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 75 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0114 + + 4586 ;THIS TEST VERIFIES THAT TLC COMPLEMENTS ALL BITS IN THE AC-LEFT WHICH + 4587 ;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. + 4588 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 4589 ;HENCE, ThE RESULT IN THE AC SHOULD BE 123756,,701234. + 4590 + 4591 033271 200 15 0 00 034414 C72600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4592 033272 641 15 0 00 000300 TLC 15,300 ;*TLC SHOULD NOT SKIP AND + 4593 ;PLACE 123756,,701234 INTO THE AC + 4594 033273 334 00 0 00 000000 SKIPA ;PASS IF TLC DID NOT SKIP + 4595 STOP^ + 4596 033274 254 04 0 00 033275 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4597 033275 324 00 0 00 033276 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4598 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4599 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4600 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4601 033276 312 15 0 00 034450 CAME 15,[123756,,701234] ;PASS IF A(AC)=123756,,701234 + 4602 STOP^ + 4603 033277 254 04 0 00 033300 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4604 033300 324 00 0 00 033301 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4605 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4606 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4607 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4608 + 4609 ;********** + 4610 + 4611 ;THIS TEST VERIFIES THAT TLC COMPLEMENTS ALL BITS IN THE AC-LEFT WHICH + 4612 ;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. + 4613 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 4614 ;HENCE, THE RESULT IN THE AC SHOULD BE 123455,,701234. + 4615 + 4616 033301 200 14 0 00 034414 C72610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4617 033302 641 14 0 00 000003 TLC 14,3 ;*TLC SHOULD NOT SKIP AND + 4618 ;PLACE 123455,,701234 INTO THE AC + 4619 033303 334 00 0 00 000000 SKIPA ;PASS IF TLC DID NOT SKIP + 4620 STOP^ + 4621 033304 254 04 0 00 033305 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4622 033305 324 00 0 00 033306 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4623 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4624 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4625 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4626 033306 312 14 0 00 034451 CAME 14,[123455,,701234] ;PASS IF C(AC)=123455,,701234 + 4627 STOP^ + 4628 033307 254 04 0 00 033310 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4629 033310 324 00 0 00 033311 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4630 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4631 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4632 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4633 + 4634 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 76 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0115 + + 4635 ;THIS TEST VERIFIES THAT TRCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4636 ;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 4637 ;THESE MASKED AC BITS ARE THEN COMPLEMENTED. + 4638 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 4639 ;HENCE, TRCE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 4640 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701237. + 4641 + 4642 033311 200 13 0 00 034414 C72700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4643 033312 642 13 0 00 000003 TRCE 13,3 ;*TRCE SHOULD SKIP AND + 4644 ;PLACE 123456,,701237 INTO ThE AC + 4645 STOP^ + 4646 033313 254 04 0 00 033314 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4647 033314 324 00 0 00 033315 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4648 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4649 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4650 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4651 033315 312 13 0 00 034446 CAME 13,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + 4652 STOP^ + 4653 033316 254 04 0 00 033317 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4654 033317 324 00 0 00 033320 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4655 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4656 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4657 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4658 + 4659 ;********** + 4660 + 4661 ;THIS TEST VERIFIES THAT TRCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4662 ;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 4663 ;THESE MASKED AC BITS ARE THEN COMPLEMENTED. + 4664 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 4665 ;HENCE, TRCE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 4666 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701134 + 4667 + 4668 033320 200 12 0 00 034414 C72710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4669 033321 642 12 0 00 000300 TRCE 12,300 ;*TRCE SHOULD NOT SKIP AND + 4670 ;PLACE 123456,,701134 INTO THE AC + 4671 033322 334 00 0 00 000000 SKIPA ;PASS IF TRCE DID NOT SKIP + 4672 STOP^ + 4673 033323 254 04 0 00 033324 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4674 033324 324 00 0 00 033325 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4675 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4676 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4677 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4678 033325 312 12 0 00 034447 CAME 12,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + 4679 STOP^ + 4680 033326 254 04 0 00 033327 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4681 033327 324 00 0 00 033330 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4682 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4683 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4684 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4685 + 4686 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 77 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0116 + + 4687 ;THIS TEST VERIFIES THAT TLCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4688 ;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 4689 ;THESE MASKED AC BITS ARE THEN COMPLEMENTED. + 4690 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300. + 4691 ;HENCE, TLCE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 4692 ;AND THE RESULT IN THE AC SHOULD BE 123756,,701234. + 4693 + 4694 033330 200 11 0 00 034414 C73000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4695 033331 643 11 0 00 000300 TLCE 11,300 ;*TLCE SHOULD SKIP AND + 4696 ;PLACE 123756,,701234 INTO THE AC + 4697 STOP^ + 4698 033332 254 04 0 00 033333 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4699 033333 324 00 0 00 033334 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4700 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4701 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4702 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4703 033334 312 11 0 00 034450 CAME 11,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + 4704 STOP^ + 4705 033335 254 04 0 00 033336 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4706 033336 324 00 0 00 033337 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4707 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4708 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4709 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4710 + 4711 ;********** + 4712 + 4713 ;THIS TEST VERIFIES THAT TLCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4714 ;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 4715 ;THESE MASKED AC BITS ARE THEN COMPLEMENTED. + 4716 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 4717 ;HENCE, TLCE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 4718 ;AND THE RESULT IN THE AC SHOULD BE 123455,,701234. + 4719 + 4720 033337 200 10 0 00 034414 C73010: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4721 033340 643 10 0 00 000003 TLCE 10,3 ;*TLCE SHOULD NOT SKIP AND + 4722 ;PLACE 123455,,701234 INTO THE AC + 4723 033341 334 00 0 00 000000 SKIPA ;PASS IF TLCE DID NOT SKIP + 4724 STOP^ + 4725 033342 254 04 0 00 033343 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4726 033343 324 00 0 00 033344 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4727 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4728 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4729 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4730 033344 312 10 0 00 034451 CAME 10,[123455,,701234] ;PASS IF C(AC)=123455,,701234] + 4731 STOP^ + 4732 033345 254 04 0 00 033346 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4733 033346 324 00 0 00 033347 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4734 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4735 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4736 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4737 + 4738 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 78 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0117 + + 4739 ;THIS TEST VERIFIES THAT TRCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4740 ;AND COMPLEMENTS ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E. + 4741 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3. + 4742 ;HENCE, TRCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 4743 ;THE AC SHOULD BE 123456,,701237. + 4744 + 4745 033347 200 07 0 00 034414 C73100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4746 033350 644 07 0 00 000003 TRCA 7,3 ;*TRCA SHOULD SKIP AND + 4747 ;PLACE 123456,,701237 INTO THE AC + 4748 STOP^ + 4749 033351 254 04 0 00 033352 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4750 033352 324 00 0 00 033353 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4751 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4752 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4753 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4754 033353 312 07 0 00 034446 CAME 7,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + 4755 STOP^ + 4756 033354 254 04 0 00 033355 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4757 033355 324 00 0 00 033356 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4758 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4759 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4760 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4761 + 4762 ;********** + 4763 + 4764 ;THIS TEST VERIFIES THAT TRCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4765 ;AND COMPLEMENTS ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E + 4766 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 4767 ;HENCE, TRCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 4768 ;THE AC SHOULD BE 123456,,701134 + 4769 + 4770 033356 200 06 0 00 034414 C73110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4771 033357 644 06 0 00 000300 TRCA 6,300 ;*TRCA SHOULD SKIP AND + 4772 ;PLACE 123456,,701134 INTO THE AC + 4773 STOP^ + 4774 033360 254 04 0 00 033361 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4775 033361 324 00 0 00 033362 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4776 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4777 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4778 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4779 033362 312 06 0 00 034447 CAME 6,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + 4780 STOP^ + 4781 033363 254 04 0 00 033364 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4782 033364 324 00 0 00 033365 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4783 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4784 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4785 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4786 + 4787 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 79 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0118 + + 4788 ;THIS TEST VERIFIES THAT TLCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4789 ;AND COMPLEMENTS ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E + 4790 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 4791 ;HENCE, TLCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 4792 ;THE AC SHOULD 123456,,701234 + 4793 + 4794 033365 200 05 0 00 034414 C73200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4795 033366 645 05 0 00 000003 TLCA 5,3 ;*TLCA SHOULD SKIP AND + 4796 ;PLACE 12345,,701234 INTO THE AC + 4797 STOP^ + 4798 033367 254 04 0 00 033370 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4799 033370 324 00 0 00 033371 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4800 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4801 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4802 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4803 033371 312 05 0 00 034451 CAME 5,[123455,,701234] ;PASS IF C(AC)=123455,,701234 + 4804 STOP^ + 4805 033372 254 04 0 00 033373 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4806 033373 324 00 0 00 033374 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4807 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4808 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4809 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4810 + 4811 ;********** + 4812 + 4813 ;THIS TEST VERIFIES THAT TLCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4814 ;AND COMPLEMENTS ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E + 4815 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 4816 ;HENCE, TLCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 4817 ;THE AC SHOULD BE 123756,,701234 + 4818 + 4819 033374 200 04 0 00 034414 C73210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4820 033375 645 04 0 00 000300 TLCA 4,300 ;*TLCA SHOULD SKIP AND + 4821 ;PLACE 123756,,701234 INTO THE AC + 4822 STOP^ + 4823 033376 254 04 0 00 033377 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4824 033377 324 00 0 00 033400 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4825 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4826 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4827 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4828 033400 312 04 0 00 034450 CAME 4,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + 4829 STOP^ + 4830 033401 254 04 0 00 033402 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4831 033402 324 00 0 00 033403 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4832 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4833 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4834 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4835 + 4836 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 80 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0119 + + 4837 ;THIS TEST VERIFIES THAT TRCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4838 ;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 4839 ;THESE MASKED AC BITS ARE THEN COMPLEMENTED + 4840 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 4841 ;HENCE, TRCN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 4842 ;AND RESULT IN THE AC SHOULD BE 123456,,701134 + 4843 + 4844 033403 200 03 0 00 034414 C73300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4845 033404 646 03 0 00 000300 TRCN 3,300 ;*SHOULD SKIP AND + 4846 ;PLACE 123456,,701134 INTO THE AC + 4847 STOP^ + 4848 033405 254 04 0 00 033406 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4849 033406 324 00 0 00 033407 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4850 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4851 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4852 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4853 033407 312 03 0 00 034447 CAME 3,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + 4854 STOP^ + 4855 033410 254 04 0 00 033411 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4856 033411 324 00 0 00 033412 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4857 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4858 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4859 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4860 + 4861 ;********** + 4862 + 4863 ;THIS TEST VERIFIES THAT TRCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4864 ;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 4865 ;THESE MASKED AC BITS ARE THEN COMPLEMENTED + 4866 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 4867 ;HENCE, TRCN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 4868 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701237 + 4869 + 4870 033412 200 02 0 00 034414 C73310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4871 033413 646 02 0 00 000003 TRCN 2,3 ;*TRCN SHOULD NOT SKIP AND + 4872 ;PLACE 123456,,701237 INTO THE AC + 4873 033414 334 00 0 00 000000 SKIPA ;PASS IF TRCN DID NOT SKIP + 4874 STOP^ + 4875 033415 254 04 0 00 033416 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4876 033416 324 00 0 00 033417 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4877 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4878 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4879 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4880 033417 312 02 0 00 034446 CAME 2,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + 4881 STOP^ + 4882 033420 254 04 0 00 033421 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4883 033421 324 00 0 00 033422 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4884 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4885 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4886 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4887 + 4888 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 81 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0120 + + 4889 ;THIS TEST VERIFIES THAT TLCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4890 ;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 4891 ;THESE MASKED AC BITS ARE THEN COMPLEMENTED + 4892 ;IN THE CASE, C(AC)=123456,,701234 AND E=3 + 4893 ;HENCE, TLCN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 4894 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701234 + 4895 + 4896 033422 200 01 0 00 034414 C73400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4897 033423 647 01 0 00 000003 TLCN 1,3 ;*TLCN SHOULD SKIP AND + 4898 ;PLACE 123455,701234 INTO THE AC + 4899 STOP^ + 4900 033424 254 04 0 00 033425 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4901 033425 324 00 0 00 033426 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4902 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4903 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4904 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4905 033426 312 01 0 00 034451 CAME 1,[123455,,701234] ;PASS IF C(AC)=123455,,701234 + 4906 STOP^ + 4907 033427 254 04 0 00 033430 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4908 033430 324 00 0 00 033431 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4909 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4910 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4911 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4912 + 4913 ;********** + 4914 + 4915 ;THIS TEST VERIFIES THAT TLCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 4916 ;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZER. + 4917 ;THESE MASKED AC BITS ARE THEN COMPLEMENTED + 4918 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 4919 ;HENCE, TLCN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 4920 ;AND THE RESULT IN THE AC SHOULD BE 123756,,701234 + 4921 + 4922 033431 200 00 0 00 034414 C73410: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4923 033432 647 00 0 00 000300 TLCN 0,300 ;*TLCN SHOULD NOT SKIP AND + 4924 ;PLACE 123756,,701234 INTO THE AC + 4925 033433 334 00 0 00 000000 SKIPA ;PASS IF TLCN DID NOT SKIP + 4926 STOP^ + 4927 033434 254 04 0 00 033435 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4928 033435 324 00 0 00 033436 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4929 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4930 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4931 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4932 033436 312 00 0 00 034450 CAME 0,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + 4933 STOP^ + 4934 033437 254 04 0 00 033440 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4935 033440 324 00 0 00 033441 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4936 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4937 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4938 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4939 + 4940 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 82 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0121 + + 4941 ;THIS TEST VERIFIES THAT TSL COMPLEMENTS ALL BITS OF THE AC WHICH + 4942 ;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES + 4943 ;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED + 4944 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)6543,,654321 + 4945 ;HENCE, TSC SHOULD NOT SKIP AND C(AC) SHOULD BE -1,,-1 + 4946 + 4947 033441 200 17 0 00 034414 C73500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4948 033442 200 00 0 00 034424 MOVE 0,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + 4949 033443 651 17 0 00 000000 TSC 17,0 ;*TSC SHOULD NOT SKIP AND + 4950 ;PLACE -1,,-1 INTO THE AC + 4951 033444 334 00 0 00 000000 SKIPA ;PASS IF TSC DOES NOT SKIP + 4952 STOP^ + 4953 033445 254 04 0 00 033446 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4954 033446 324 00 0 00 033447 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4955 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4956 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4957 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4958 033447 312 17 0 00 034301 CAME 17,[-1] ;PASS IF C(AC)=-1,,-1 + 4959 STOP^ + 4960 033450 254 04 0 00 033451 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4961 033451 324 00 0 00 033452 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4962 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4963 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4964 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4965 033452 312 00 0 00 034424 CAME 0,[076543,,654321] ;PASS IF C(E) UNCHANGED + 4966 STOP^ + 4967 033453 254 04 0 00 033454 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4968 033454 324 00 0 00 033455 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4969 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4970 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4971 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4972 + 4973 ;********** + 4974 + 4975 ;THIS TEST VERIFIES THAT TSC COMPLEMENTS ALL BITS OF THE AC WHICH + 4976 ;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES + 4977 ;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED + 4978 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 + 4979 ;HENCE, TSC SHOULD NOT SKIP AND C(AC) SHOULD BE 624426,,553711 + 4980 + 4981 033455 200 16 0 00 034414 C73510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 4982 033456 200 17 0 00 034431 MOVE 17,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + 4983 033457 651 16 0 00 000017 TSC 16,17 ;*TSC SHOULD NOT SKIP AND + 4984 ;PLACE 624426,,553711 INTO THE AC + 4985 033460 334 00 0 00 000000 SKIPA ;PASS IF TSC DOES NOT SKIP + 4986 STOP^ + 4987 033461 254 04 0 00 033462 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4988 033462 324 00 0 00 033463 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 4989 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4990 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4991 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4992 033463 312 16 0 00 034452 CAME 16,[624426,,553711] ;PASS IF C(AC)=624426,,553711 + 4993 STOP^ + 4994 033464 254 04 0 00 033465 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 4995 033465 324 00 0 00 033466 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 82-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0122 + + 4996 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 4997 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 4998 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 4999 033466 312 17 0 00 034431 CAME 17,[252525,,707070] ;PASS IF C(E) UNCHANGED + 5000 STOP^ + 5001 033467 254 04 0 00 033470 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5002 033470 324 00 0 00 033471 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5003 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5004 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5005 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5006 + 5007 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 83 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0123 + + 5008 ;THIS TEST VERIFIES THAT TDCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5009 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5010 ;C(E) ARE ZERO. THESE MASKED + 5011 ;AC BITS ARE THEN COMPLEMENTED + 5012 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 + 5013 ;HENCE, TDCE SHOULD SKIP AND THE RESULT IN AC + 5014 ;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + 5015 + 5016 033471 200 15 0 00 034414 C73600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5017 033472 200 16 0 00 034433 MOVE 16,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + 5018 033473 652 15 0 00 000016 TDCE 15,16 ;*TDCE SHOULD SKIP AND + 5019 ;PLACE -1,,-1 INTO THE AC + 5020 STOP^ + 5021 033474 254 04 0 00 033475 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5022 033475 324 00 0 00 033476 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5023 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5024 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5025 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5026 033476 312 15 0 00 034301 CAME 15,[-1] ;PASS IF C(AC)=-1,,-1 + 5027 STOP^ + 5028 033477 254 04 0 00 033500 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5029 033500 324 00 0 00 033501 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5030 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5031 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5032 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5033 033501 312 16 0 00 034433 CAME 16,[654321,,076543] ;PASS IF C(E) UNCHANGED + 5034 STOP^ + 5035 033502 254 04 0 00 033503 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5036 033503 324 00 0 00 033504 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5037 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5038 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5039 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5040 + 5041 ;********** + 5042 + 5043 ;THIS TEST VERIFIES THAT TDCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5044 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5045 ;C(E) ARE ZERO. THESE MASKED + 5046 ;AC BITS ARE THEN COMPLEMENTED + 5047 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E) 754321,,076543 + 5048 ;HENCE, TDCE SHOULD NOT SKIP AND THE RESULT IN AC + 5049 ;SHOULD BE 677777,,-1 C(E) IS NOT AFFECTED. + 5050 + 5051 033504 200 14 0 00 034414 C73610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5052 033505 200 15 0 00 034434 MOVE 15,[754321,,076543] ;PRELOAD E WITH 754321,,076543 + 5053 033506 652 14 0 00 000015 TDCE 14,15 ;*TDCE SHOULD NOT SKIP AND + 5054 ;PLACE 677777,,-1 INTO THE AC + 5055 033507 334 00 0 00 000000 SKIPA ;PASS IF TDCE DOES NOT SKIP + 5056 STOP^ + 5057 033510 254 04 0 00 033511 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5058 033511 324 00 0 00 033512 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5059 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5060 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5061 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5062 033512 312 14 0 00 034453 CAME 14,[677777,,-1] ;PASS IF C(AC)=677777,,-1 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 83-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0124 + + 5063 STOP^ + 5064 033513 254 04 0 00 033514 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5065 033514 324 00 0 00 033515 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5066 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5067 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5068 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5069 033515 312 15 0 00 034434 CAME 15,[754321,,076543] ;PASS IF C(E) UNCHANGED + 5070 STOP^ + 5071 033516 254 04 0 00 033517 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5072 033517 324 00 0 00 033520 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5073 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5074 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5075 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5076 + 5077 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 84 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0125 + + 5078 ;THIS TEST VERIFIES THAT TSCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5079 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5080 ;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 5081 ;AC BITS ARE THEN COMPLEMENTED + 5082 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 + 5083 ;HENCE, TSCE SHOULD SKIP AND THE RESULT IN THE AC + 5084 ;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + 5085 + 5086 033520 200 13 0 00 034414 C73700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5087 033521 200 14 0 00 034424 MOVE 14,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + 5088 033522 653 13 0 00 000014 TSCE 13,14 ;*TSCE SHOULD SKIP AND + 5089 ;PLACE -1,,-1 INTO THE AC + 5090 STOP^ + 5091 033523 254 04 0 00 033524 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5092 033524 324 00 0 00 033525 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5093 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5094 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5095 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5096 033525 312 13 0 00 034301 CAME 13,[-1] ;PASS IF C(E) UNCHANGED + 5097 STOP^ + 5098 033526 254 04 0 00 033527 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5099 033527 324 00 0 00 033530 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5100 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5101 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5102 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5103 + 5104 ;********** + 5105 + 5106 ;THIS TEST VERIFIES THAT TSCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5107 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5108 ;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 5109 ;AC BITS ARE THEN COMPLEMENTED + 5110 ;IN THIS CASE, C(AC)=123456,701234 AND C(E)=076543,,657321 + 5111 ;HENCE, TSCE SHOULD NOT SKIP AND THE RESULT IN THE AC + 5112 ;SHOULD BE 774777,,-1. C(E) IS NOT AFFECTED. + 5113 + 5114 033530 200 12 0 00 034414 C73710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5115 033531 200 13 0 00 034436 MOVE 13,[76543,,657321] ;PRELOAD E WITH 076543,,657321 + 5116 033532 653 12 0 00 000013 TSCE 12,13 ;*TSCE HOULD NOT SKIP AND + 5117 ;PLACE 774777,,-1 INTO THE AC + 5118 033533 334 00 0 00 000000 SKIPA ;PASS IF TSCE DOES NOT SKIP + 5119 STOP^ + 5120 033534 254 04 0 00 033535 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5121 033535 324 00 0 00 033536 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5122 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5123 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5124 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5125 033536 312 12 0 00 034454 CAME 12,[774777,,-1] ;PASS IF C(AC)=774777,,-1 + 5126 STOP^ + 5127 033537 254 04 0 00 033540 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5128 033540 324 00 0 00 033541 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5129 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5130 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5131 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5132 033541 312 13 0 00 034436 CAME 13,[76543,,657321] ;PASS IF C(E) UNCHANGED +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 84-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0126 + + 5133 STOP^ + 5134 033542 254 04 0 00 033543 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5135 033543 324 00 0 00 033544 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5136 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5137 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5138 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5139 + 5140 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 85 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0127 + + 5141 ;THIS TEST VERIFIES THAT TDCA COMPLEMENTS ALL BITS OF THE AC WHICH + 5142 ;CORRESPOND TO 1'S IN C(E) AND ALWAYS + 5143 ;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED + 5144 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 + 5145 ;HENCE, TDCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + 5146 + 5147 033544 200 11 0 00 034414 C74000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5148 033545 200 12 0 00 034433 MOVE 12,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + 5149 033546 654 11 0 00 000012 TDCA 11,12 ;*TDCA SHOULD SKIP AND + 5150 ;PLACE -1,,-1 INTO THE AC + 5151 STOP^ + 5152 033547 254 04 0 00 033550 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5153 033550 324 00 0 00 033551 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5154 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5155 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5156 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5157 033551 312 11 0 00 034301 CAME 11,[-1] ;PASS IF C(AC)=-1,,-1 + 5158 STOP^ + 5159 033552 254 04 0 00 033553 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5160 033553 324 00 0 00 033554 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5161 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5162 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5163 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5164 033554 312 12 0 00 034433 CAME 12,[654321,,76543] ;PASS IF C(E) UNCHANGED + 5165 STOP^ + 5166 033555 254 04 0 00 033556 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5167 033556 324 00 0 00 033557 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5168 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5169 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5170 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5171 + 5172 ;********** + 5173 + 5174 ;THIS TEST VERIFIES THAT TDCA COMPLEMENTS ALL BITS OF THE AC WHICH + 5175 ;CORRESPOND TO 1'S IN C(E) AND SLWAYS + 5176 ;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED + 5177 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 + 5178 ;HENCE, TDCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 371173,,006244 + 5179 + 5180 033557 200 10 0 00 034414 C74100: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5181 033560 200 11 0 00 034431 MOVE 11,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + 5182 033561 654 10 0 00 000011 TDCA 10,11 ;*TDCA SHOULD SKP AND + 5183 ;PLACE 371173,,006244 INTO THE AC + 5184 STOP^ + 5185 033562 254 04 0 00 033563 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5186 033563 324 00 0 00 033564 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5187 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5188 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5189 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5190 033564 312 10 0 00 034455 CAME 10,[371173,,6244] ;PASS IF C(AC)=371173,,006244 + 5191 STOP^ + 5192 033565 254 04 0 00 033566 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5193 033566 324 00 0 00 033567 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5194 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5195 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 85-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0128 + + 5196 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5197 033567 312 11 0 00 034431 CAME 11,[252525,,707070] ;PASS IF C(E) UNCHANGED + 5198 STOP^ + 5199 033570 254 04 0 00 033571 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5200 033571 324 00 0 00 033572 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5201 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5202 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5203 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5204 + 5205 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 86 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0129 + + 5206 ;THIS TEST VERIFIES THAT TSCA COMPLEMENTS ALL BITS OF THE AC WHICH + 5207 ;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS + 5208 ;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED + 5209 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 + 5210 ;HENCE, TSCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + 5211 + 5212 033572 200 07 0 00 034414 C74200: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5213 033573 200 10 0 00 034424 MOVE 10,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + 5214 033574 655 07 0 00 000010 TSCA 7,10 ;*TSCA CHOULD SKIP AND + 5215 ;PLACE -1,,-1 INTO THE AC + 5216 STOP^ + 5217 033575 254 04 0 00 033576 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5218 033576 324 00 0 00 033577 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5219 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5220 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5221 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5222 033577 312 07 0 00 034301 CAME 7,[-1] ;PASS IF C(AC)=-1,,-1 + 5223 STOP^ + 5224 033600 254 04 0 00 033601 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5225 033601 324 00 0 00 033602 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5226 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5227 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5228 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5229 033602 312 10 0 00 034424 CAME 10,[076543,,654321] ;PASS IF C(E) UNCHANGED + 5230 STOP^ + 5231 033603 254 04 0 00 033604 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5232 033604 324 00 0 00 033605 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5233 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5234 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5235 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5236 + 5237 ;********** + 5238 + 5239 ;THIS TEST VERIFIES THAT TSCA COMPLEMENTS ALL BITS OF THE AC WHICH + 5240 ;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS + 5241 ;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED + 5242 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=701234,,123456 + 5243 ;HENCE, TSCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 0 + 5244 + 5245 033605 200 06 0 00 034414 C74210: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5246 033606 200 07 0 00 034441 MOVE 7,[701234,,123456] ;PRELOAD E WITH 701234,,123456 + 5247 033607 655 06 0 00 000007 TSCA 6,7 ;*TSCA SHOULD SKIP AND + 5248 ;PLACE 0 INTO THE AC + 5249 STOP^ + 5250 033610 254 04 0 00 033611 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5251 033611 324 00 0 00 033612 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5252 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5253 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5254 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5255 033612 312 06 0 00 034407 CAME 6,[0] ;PASS IF C(AC)=0 + 5256 STOP^ + 5257 033613 254 04 0 00 033614 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5258 033614 324 00 0 00 033615 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5259 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5260 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 86-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0130 + + 5261 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5262 033615 312 07 0 00 034441 CAME 7,[701234,,123456] ;PASS IF C(E) UNCHANGED + 5263 STOP^ + 5264 033616 254 04 0 00 033617 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5265 033617 324 00 0 00 033620 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5266 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5267 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5268 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5269 + 5270 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 87 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0131 + + 5271 ;THIS TEST VERIFIES THAT TDCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5272 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5273 ;C(E) ARE ZERO. THESE MASKED + 5274 ;AC BITS ARE THEN COMPLEMENTED + 5275 ;IN THE CASE, C(AC)=123456,,701234 AND C(E)=654321,,076547 + 5276 ;HENCE, TDCN SHOULD SKIP AND THE RESULT IN AC + 5277 ;SHOULD BE -1,,777773 C(E) IS NOT AFFECTED + 5278 + 5279 033620 200 05 0 00 034414 C74300: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5280 033621 200 06 0 00 034442 MOVE 6,[654321,,76547] ;PRELOAD E WITH 654321,,076547 + 5281 033622 656 05 0 00 000006 TDCN 5,6 ;*TDCN SHOULD SKIP AND + 5282 ;PLACE -1,,777773 INTO THE AC + 5283 STOP^ + 5284 033623 254 04 0 00 033624 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5285 033624 324 00 0 00 033625 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5286 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5287 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5288 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5289 033625 312 05 0 00 034456 CAME 5,[-1,,777773] ;PASS IF C(AC)=-1,777773 + 5290 STOP^ + 5291 033626 254 04 0 00 033627 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5292 033627 324 00 0 00 033630 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5293 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5294 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5295 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5296 033630 312 06 0 00 034442 CAME 6,[654321,,76547] ;PASS IF C(E) UNCHANGED + 5297 STOP^ + 5298 033631 254 04 0 00 033632 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5299 033632 324 00 0 00 033633 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5300 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5301 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5302 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5303 + 5304 ;********** + 5305 + 5306 ;THIS TEST VERIFIES THAT TDCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5307 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5308 ;C(E) ARE ZERO. THESE MASKED + 5309 ;AC BITS ARE THEN COMPLEMENTED + 5310 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 + 5311 ;HENCE, TDCN SHOULD NOT SKIP AND THE REUSLT IN AC + 5312 ;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + 5313 + 5314 033633 200 04 0 00 034414 C74310: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5315 033634 200 05 0 00 034433 MOVE 5,[654321,,76543] ;PRELOAD E WITH 654321,,076543 + 5316 033635 656 04 0 00 000005 TDCN 4,5 ;*TDCN SHOULD NOT SKIP AND + 5317 ;PLACE -1,,-1 INTO THE AC + 5318 033636 334 00 0 00 000000 SKIPA ;PASS IF TDCN DOES NOT SKIP + 5319 STOP^ + 5320 033637 254 04 0 00 033640 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5321 033640 324 00 0 00 033641 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5322 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5323 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5324 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5325 033641 312 04 0 00 034301 CAME 4,[-1] ;PASS IF C(AC)=-1,,-1 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 87-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0132 + + 5326 STOP^ + 5327 033642 254 04 0 00 033643 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5328 033643 324 00 0 00 033644 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5329 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5330 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5331 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5332 033644 312 05 0 00 034433 CAME 5,[654321,,76543] ;PASS IF C(E) UNCHANGED + 5333 STOP^ + 5334 033645 254 04 0 00 033646 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5335 033646 324 00 0 00 033647 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5336 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5337 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5338 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5339 + 5340 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 88 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0133 + + 5341 ;THIS TEST VERIFIES THAT TSCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5342 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5343 ;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 5344 ;AC BITS ARE THEN COMPLEMENTED + 5345 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=077543,,654321 + 5346 ;HENCE, TSCN SHOULD SKIP AND THE RESULT IN AC + 5347 ;SHOULD BE -1,,776777. C(E) IS NOT AFFECTED + 5348 + 5349 033647 200 03 0 00 034414 C74400: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5350 033650 200 04 0 00 034444 MOVE 4,[77543,,654321] ;PRELOAD E WITH 077543,,654321 + 5351 033651 657 03 0 00 000004 TSCN 3,4 ;*TSCN SHOULD SKIP AND + 5352 ;PLACE -1,,776777 INTO THE AC + 5353 STOP^ + 5354 033652 254 04 0 00 033653 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5355 033653 324 00 0 00 033654 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5356 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5357 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5358 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5359 033654 312 03 0 00 034457 CAME 3,[-1,,776777] ;PASS IF C(AC)=-1,776777 + 5360 STOP^ + 5361 033655 254 04 0 00 033656 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5362 033656 324 00 0 00 033657 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5363 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5364 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5365 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5366 033657 312 04 0 00 034444 CAME 4,[77543,,654321] ;PASS IF C(E) UNCHANGED + 5367 STOP^ + 5368 033660 254 04 0 00 033661 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5369 033661 324 00 0 00 033662 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5370 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5371 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5372 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5373 + 5374 ;********** + 5375 + 5376 ;THIS TEST VERIFIES THAT TSCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5377 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5378 ;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 5379 ;AC BITS ARE THEN COMPLEMENTD + 5380 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 + 5381 ;HENCE, TSCN SHOULD NOT SKIP AND THE RESULT IN AC + 5382 ;SHOULD BE -1,,-1. C(E) IS NOT AFFECTED. + 5383 + 5384 033662 200 02 0 00 034414 C74410: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5385 033663 200 03 0 00 034424 MOVE 3,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + 5386 033664 657 02 0 00 000003 TSCN 2,3 ;*TSCN SHOULD NOT SKIP AND + 5387 ;PLACE -1,,-1 INTO THE AC + 5388 033665 334 00 0 00 000000 SKIPA ;PASS IF TSCN DOES NOT SKIP + 5389 STOP^ + 5390 033666 254 04 0 00 033667 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5391 033667 324 00 0 00 033670 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5392 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5393 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5394 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5395 033670 312 02 0 00 034301 CAME 2,[-1] ;PASS IF C(AC)=-1,,-1 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 88-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0134 + + 5396 STOP^ + 5397 033671 254 04 0 00 033672 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5398 033672 324 00 0 00 033673 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5399 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5400 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5401 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5402 033673 312 03 0 00 034424 CAME 3,[76543,,654321] ;PASS IF C(E) UNCHANGED + 5403 STOP^ + 5404 033674 254 04 0 00 033675 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5405 033675 324 00 0 00 033676 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5406 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5407 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5408 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5409 + 5410 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 89 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0135 + + 5411 ;THIS TEST VERIFIES THAT TRO CHANGES ALL BITS IN THE AC-RIGHT WHICH + 5412 ;CORRESPOND TO 1'S IN E TO ONES AND DOES ANT SKIP + 5413 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 5414 ;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701237 + 5415 + 5416 033676 200 01 0 00 034414 C74500: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5417 033677 660 01 0 00 000003 TRO 1,3 ;*TRO SHOULD NOT SKIP AND + 5418 ;PLACE 123456,,701237 INTO THE AC + 5419 033700 334 00 0 00 000000 SKIPA ;PASS IF TRO DID NOT SKIP + 5420 STOP^ + 5421 033701 254 04 0 00 033702 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5422 033702 324 00 0 00 033703 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5423 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5424 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5425 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5426 033703 312 01 0 00 034446 CAME 1,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + 5427 STOP^ + 5428 033704 254 04 0 00 033705 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5429 033705 324 00 0 00 033706 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5430 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5431 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5432 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5433 + 5434 ;********** + 5435 + 5436 ;THIS TEST VERIFIES THAT TRO CHANGES ALL BITS IN THE AC-RIGHT WHICH + 5437 ;CORRESPOND TO 1'S IN E TO ONES AND DOES NOT SKIP + 5438 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 5439 ;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701224 + 5440 + 5441 033706 200 00 0 00 034414 C74510: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5442 033707 660 00 0 00 000300 TRO 0,300 ;*TRO SHOULD NOT SKIP AND + 5443 ;PLACE 123456,,701334 INTO THE AC + 5444 033710 334 00 0 00 000000 SKIPA ;PASS IF TRO DID NOT SKIP + 5445 STOP^ + 5446 033711 254 04 0 00 033712 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5447 033712 324 00 0 00 033713 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5448 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5449 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5450 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5451 033713 312 00 0 00 034460 CAME 0,[123456,,701334] ;PASS IF C(AC)=123456,,701334 + 5452 STOP^ + 5453 033714 254 04 0 00 033715 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5454 033715 324 00 0 00 033716 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5455 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5456 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5457 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5458 + 5459 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 90 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0136 + + 5460 ;THIS TEST VERIFIES THAT TLO CHANGES ALL BITS IN THE AC-LEFT WHICH + 5461 ;CORRESPOND TO 1'S IN E TO ONES AND DOES NOT SKIP + 5462 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 5463 ;HENCE, THE RESULT IN THE AC SHOULD BE 123756,,701234 + 5464 + 5465 033716 200 17 0 00 034414 C74600: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5466 033717 661 17 0 00 000300 TLO 17,300 ;*TLO SHOULD NOT SKIP AND + 5467 ;PLACE 123756,,701234 INTO THE AC + 5468 033720 334 00 0 00 000000 SKIPA ;PASS IF TLO DID NOT SKIP + 5469 STOP^ + 5470 033721 254 04 0 00 033722 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5471 033722 324 00 0 00 033723 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5472 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5473 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5474 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5475 033723 312 17 0 00 034450 CAME 17,[123756,,701234] ;PASS IF C(AC)=123456,,701234 + 5476 STOP^ + 5477 033724 254 04 0 00 033725 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5478 033725 324 00 0 00 033726 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5479 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5480 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5481 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5482 + 5483 ;********** + 5484 + 5485 ;THIS TEST VERIFIES THAT TLO CHANGES ALL BITS IN THE AC-LEFT WHICH + 5486 ;CORRESPOND TO 1'S IN E TO ONES AND DOES NOT SKIP + 5487 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 5488 ;HENCE, THE RESULT IN THE AC SHOULD BE 123457,,701234 + 5489 + 5490 033726 200 16 0 00 034461 C74610: MOVE 16,[123456,,70234] ;PRELOAD AC WITH 123456,,701234 + 5491 033727 661 16 0 00 000003 TLO 16,3 ;*TLO SHOULD NOT SKIP AND + 5492 ;PLACE 123457,,701234 INTO THE AC + 5493 033730 334 00 0 00 000000 SKIPA ;PASS IF DID NOT SKIP + 5494 STOP^ + 5495 033731 254 04 0 00 033732 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5496 033732 324 00 0 00 033733 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5497 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5498 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5499 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5500 033733 312 16 0 00 034462 CAME 16,[123457,,70234] ;PASS IF C(AC)=123457,,701234 + 5501 STOP^ + 5502 033734 254 04 0 00 033735 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5503 033735 324 00 0 00 033736 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5504 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5505 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5506 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5507 + 5508 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 91 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0137 + + 5509 ;THIS TEST VERIFIES THAT TROE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5510 ;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 5511 ;THESE MASKED AC BITS ARE THEN CHANGED TO ONES + 5512 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 5513 ;HENCE, TROE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 5514 ;AND RESULT IN THE AC SHOUD BE 123456,,701237 + 5515 + 5516 033736 200 15 0 00 034414 C74700: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5517 033737 662 15 0 00 000003 TROE 15,3 ;TROE SHOULD SKIP AND + 5518 ;PLACE 123456,,701237 IN TO THE AC + 5519 STOP^ + 5520 033740 254 04 0 00 033741 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5521 033741 324 00 0 00 033742 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5522 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5523 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5524 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5525 033742 312 15 0 00 034446 CAME 15,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + 5526 STOP^ + 5527 033743 254 04 0 00 033744 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5528 033744 324 00 0 00 033745 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5529 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5530 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5531 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5532 + 5533 ;********** + 5534 + 5535 ;THIS TEST VERIFIES THAT TROE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5536 ;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 5537 ;THESE MASKED AC BITS ARE THEN CHANGED TO ONES + 5538 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 5539 ;HENCE, TROE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 5540 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701334 + 5541 + 5542 033745 200 14 0 00 034414 C74710: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5543 033746 662 14 0 00 000300 TROE 14,300 ;*TROE SHOULD NOT SKIP AND + 5544 ;PLACE 123456,,701224 INTO THE AC + 5545 033747 334 00 0 00 000000 SKIPA ;PASS IF DID NOT SKIP + 5546 STOP^ + 5547 033750 254 04 0 00 033751 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5548 033751 324 00 0 00 033752 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5549 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5550 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5551 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5552 033752 312 14 0 00 034460 CAME 14,[123456,,701334] ;PASS IF C(AC)=123456,,701334 + 5553 STOP^ + 5554 033753 254 04 0 00 033754 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5555 033754 324 00 0 00 033755 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5556 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5557 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5558 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5559 + 5560 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 92 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0138 + + 5561 ;THIS TEST VERIFIES THAT TLOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5562 ;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 5563 ;THESE MASKED AC BITS ARE TEN CHANGED TO ONES + 5564 ;IN THES CASE, C(AC)=123456,,701234 AND E=300 + 5565 ;HENCE, TLOE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 5566 ;AND THE RESULT IN THE AC SHOULD BE 123756,,701234 + 5567 + 5568 033755 200 13 0 00 034414 C75000: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5569 033756 663 13 0 00 000300 TLOE 13,300 ;*TLOE SOULD SKIP AND + 5570 ;PLAND 123756,,701234 INTO THE AC + 5571 STOP^ + 5572 033757 254 04 0 00 033760 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5573 033760 324 00 0 00 033761 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5574 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5575 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5576 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5577 033761 312 13 0 00 034450 CAME 13,[123756,,701234] ;PASS IF C(AC)=123456,,701234 + 5578 STOP^ + 5579 033762 254 04 0 00 033763 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5580 033763 324 00 0 00 033764 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5581 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5582 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5583 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5584 + 5585 ;******** + 5586 + 5587 ;THIS TEST VERIFIES THAT TLOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5588 ;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 5589 ;THESE MASKED AC BITS ARE THEN CHANGED TO ONES + 5590 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 5591 ;HENCE, TLOE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 5592 ;AND THE RESULT IN THE AC SHOULD BE 123457,,701234 + 5593 + 5594 033764 200 12 0 00 034414 C75010: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5595 033765 663 12 0 00 000003 TLOE 12,3 ;*TLOE SHOULD NOT SKIP AND + 5596 ;PLACE 123457,,701234 INTO THE AC + 5597 033766 334 00 0 00 000000 SKIPA ;PASS IF TLOE DID NOT SKIP + 5598 STOP^ + 5599 033767 254 04 0 00 033770 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5600 033770 324 00 0 00 033771 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5601 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5602 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5603 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5604 033771 312 12 0 00 034463 CAME 12,[123457,,701234] ;PASS IF C(AC)=123457,,701234 + 5605 STOP^ + 5606 033772 254 04 0 00 033773 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5607 033773 324 00 0 00 033774 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5608 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5609 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5610 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5611 + 5612 ;******* +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 93 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0139 + + 5613 ;THIS TEST VERIFIES THAT TROA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTUCTION + 5614 ;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ONES + 5615 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 5616 ;HENCE, TROA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 5617 ;THE AC SHOULD BE 123456,,701237 + 5618 + 5619 033774 200 11 0 00 034414 C75100: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5620 033775 664 11 0 00 000003 TROA 11,3 ;*TROA SHOULD SKIP AND + 5621 ;PLACE 123456,,701237 + 5622 STOP^ + 5623 033776 254 04 0 00 033777 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5624 033777 324 00 0 00 034000 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5625 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5626 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5627 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5628 034000 312 11 0 00 034446 CAME 11,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + 5629 STOP^ + 5630 034001 254 04 0 00 034002 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5631 034002 324 00 0 00 034003 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5632 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5633 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5634 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5635 + 5636 ;********** + 5637 + 5638 ;THIS TEST VERIFIES THAT TROA ALWAYS SKIPS THE NEXT SEQUENTAIL INSTRUCTION + 5639 ;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ONES + 5640 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 5641 ;HENCE, TROA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 5642 ;THE AC SHOULD BE 123456,,701334 + 5643 + 5644 034003 200 10 0 00 034414 C75110: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5645 034004 664 10 0 00 000300 TROA 10,300 ;*TROA SHOULD SKIP AND + 5646 ;PLACE 123456,,701334 INTO THE AC + 5647 STOP^ + 5648 034005 254 04 0 00 034006 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5649 034006 324 00 0 00 034007 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5650 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5651 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5652 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5653 034007 312 10 0 00 034460 CAME 10,[123456,,701334] ;PASS IF C (AC)=123456,,701334 + 5654 STOP^ + 5655 034010 254 04 0 00 034011 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5656 034011 324 00 0 00 034012 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5657 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5658 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5659 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5660 + 5661 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 94 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0140 + + 5662 ;THIS TEST VERIFIES THAT TLOA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTUCTION + 5663 ;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND 1'S IN E TO ONES + 5664 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 5665 ;HENCE, TLOA SHOULD SKIP THE NEXT INSTRUCTION AND RESULT IN + 5666 ;THE AC SHOULD BE 123457,,701234 + 5667 + 5668 034012 200 07 0 00 034414 C75200: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5669 034013 665 07 0 00 000003 TLOA 7,3 ;*TLOA SHOULD SKIP AND + 5670 ;PLACE 123457,,701234 INTO THE AC + 5671 STOP^ + 5672 034014 254 04 0 00 034015 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5673 034015 324 00 0 00 034016 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5674 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5675 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5676 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5677 034016 312 07 0 00 034463 CAME 7,[123457,,701234] ;PASS IF C(AC)=123457,,701234] + 5678 STOP^ + 5679 034017 254 04 0 00 034020 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5680 034020 324 00 0 00 034021 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5681 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5682 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5683 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5684 + 5685 ;********** + 5686 + 5687 ;THIS TEST VERIFIES THAT TLOA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5688 ;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E TO ONES + 5689 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 5690 ;HENCE, TLOA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN + 5691 ;THE AC SHOULD BE 123756,,701234 + 5692 + 5693 034021 200 06 0 00 034414 C75210: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5694 034022 665 06 0 00 000300 TLOA 6,300 ;*TLOA SHOULD SKIP AND + 5695 ;PLACE 123756,,701234 INTO THE AC + 5696 STOP^ + 5697 034023 254 04 0 00 034024 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5698 034024 324 00 0 00 034025 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5699 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5700 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5701 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5702 034025 312 06 0 00 034450 CAME 6,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + 5703 STOP^ + 5704 034026 254 04 0 00 034027 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5705 034027 324 00 0 00 034030 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5706 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5707 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5708 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5709 + 5710 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 95 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0141 + + 5711 ;THIS TEST VERIFIES THAT TRON SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5712 ;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 5713 ;THESE MASKED AC BITS ARE THEN CHANGED TO ONES + 5714 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 5715 ;HENCE, TRON SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 5716 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701334 + 5717 + 5718 034030 200 05 0 00 034414 C75300: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5719 034031 666 05 0 00 000300 TRON 5,300 ;*TRON SHOULD SKIP AND + 5720 ;PLACE 123456,,701334 INTO THE AC + 5721 STOP^ + 5722 034032 254 04 0 00 034033 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5723 034033 324 00 0 00 034034 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5724 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5725 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5726 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5727 034034 312 05 0 00 034460 CAME 5,[123456,,701334] ;PASS IF C(AC)=123456,,701334 + 5728 STOP^ + 5729 034035 254 04 0 00 034036 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5730 034036 324 00 0 00 034037 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5731 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5732 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5733 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5734 + 5735 ;********** + 5736 + 5737 ;THIS TEST VERIFIES THAT TRON SKIPS THE NEXT SEQUENTIAL INSTUCTION + 5738 ;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. + 5739 ;THESE MASKED AC BITS ARE THEN CHANGED TO ONES + 5740 ;IN THIS CASE, C(AC)=123456,,701234 AND E=3 + 5741 ;HENCE, TRON SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 5742 ;AND THE RESULT IN THE AC SHOULD BE 123456,,701237 + 5743 + 5744 034037 200 04 0 00 034414 C75310: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5745 034040 666 04 0 00 000003 TRON 4,3 ;*TRON SHOULD NOT SKIP AND + 5746 ;PLACE 123456,,701237 INTO THE AC + 5747 034041 334 00 0 00 000000 SKIPA ;PASS IF TRON DID NOT SKIP + 5748 STOP^ + 5749 034042 254 04 0 00 034043 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5750 034043 324 00 0 00 034044 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5751 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5752 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5753 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5754 034044 312 04 0 00 034446 CAME 4,[123456,,701237] ;PASS IF C(AC)=123456,701237 + 5755 STOP^ + 5756 034045 254 04 0 00 034046 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5757 034046 324 00 0 00 034047 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5758 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5759 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5760 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5761 + 5762 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 96 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0142 + + 5763 ;THIS TEST VERIFIES THAT TLON SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5764 ;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 5765 ;THESE MASKED AC BITS ARE THEN CHANGED TO ONES + 5766 ;IN THIS CASE, C(AC)-123456,,701234 AND E=3 + 5767 ;HENCE, TLON SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION + 5768 ;AND THE RESULT IN THE AC SHOULD BE 123457,,701234 + 5769 + 5770 034047 200 03 0 00 034414 C75400: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5771 034050 667 03 0 00 000003 TLON 3,3 ;*TLON SHOULD SKIP AND + 5772 ;PLACE 123457,,701234 INTO THE AC + 5773 STOP^ + 5774 034051 254 04 0 00 034052 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5775 034052 324 00 0 00 034053 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5776 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5777 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5778 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5779 034053 312 03 0 00 034463 CAME 3,[123457,,701234] ;PASS IF C(AC)=123457,,701234 + 5780 STOP^ + 5781 034054 254 04 0 00 034055 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5782 034055 324 00 0 00 034056 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5783 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5784 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5785 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5786 + 5787 ;******* + 5788 + 5789 ;THIS TEST VERIFIES THAT TLON SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5790 ;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. + 5791 ;THESE MASKED AC BITS ARE THEN CHANGED TO ONES + 5792 ;IN THIS CASE, C(AC)=123456,,701234 AND E=300 + 5793 ;HENCE, TLON SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION + 5794 ;AND THE RESULT IN THE AC SHOULD BE 123756,,701234 + 5795 + 5796 034056 200 02 0 00 034414 C75410: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5797 034057 667 02 0 00 000300 TLON 2,300 ;*TLON SHOULD NOT SKIP AND + 5798 ;PLACE 123756,,701234 INTO THE AC + 5799 034060 334 00 0 00 000000 SKIPA ;PASS IF TLON DID NOT SKIP + 5800 STOP^ + 5801 034061 254 04 0 00 034062 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5802 034062 324 00 0 00 034063 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5803 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5804 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5805 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5806 034063 312 02 0 00 034450 CAME 2,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + 5807 STOP^ + 5808 034064 254 04 0 00 034065 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5809 034065 324 00 0 00 034066 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5810 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5811 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5812 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5813 + 5814 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 97 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0143 + + 5815 ;THIS TEST VERIFIES THAT TDOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5816 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5817 ;C(E)ARE ZERO. THESE MASKED + 5818 ;AC BITS ARE THEN CHANGED TO ONES + 5819 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 + 5820 ;HENCE, TDOE SHOULD SKIP AND THE RESULT IN AC + 5821 ;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + 5822 + 5823 034066 200 01 0 00 034414 C75500: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5824 034067 200 02 0 00 034433 MOVE 2,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + 5825 034070 672 01 0 00 000002 TDOE 1,2 ;*TDOE SHOULD SKIP AND + 5826 ;PLACE -1,,-1 INTO THE AC + 5827 STOP^ + 5828 034071 254 04 0 00 034072 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5829 034072 324 00 0 00 034073 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5830 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5831 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5832 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5833 034073 312 01 0 00 034301 CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + 5834 STOP^ + 5835 034074 254 04 0 00 034075 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5836 034075 324 00 0 00 034076 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5837 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5838 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5839 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5840 034076 312 02 0 00 034433 CAME 2,[654321,,76543] ;PASS IF C(E) UNCHANGED + 5841 STOP^ + 5842 034077 254 04 0 00 034100 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5843 034100 324 00 0 00 034101 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5844 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5845 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5846 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5847 + 5848 ;********** + 5849 + 5850 ;THIS TEST VERIFIES THAT TDOE SKIPS THE NEXT SEQUENTAIL INSTRUCTION + 5851 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5852 ;C(E) ARE ZERO. THESE MASKED + 5853 ;AC BITS ARE THEN CHANGED TO ONES + 5854 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=754321,,076543 + 5855 ;HENCE, TDOE SHOULD NOT SKIP AND THE RESULT IN AC + 5856 ;SHOULD BE -1,,-1 C(E) IS NOT AFFECTD + 5857 + 5858 034101 200 00 0 00 034414 C75510: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5859 034102 200 01 0 00 034434 MOVE 1,[754321,,76543] ;PRELOAD E WITH 754321,,076543 + 5860 034103 672 00 0 00 000001 TDOE 0,1 ;*TDOE SHOULD NOT SKIP AND + 5861 ;PLACE -1,,-1 INTO THE AC + 5862 034104 334 00 0 00 000000 SKIPA ;PASS IF TDOE DOES NOT SKIP + 5863 STOP^ + 5864 034105 254 04 0 00 034106 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5865 034106 324 00 0 00 034107 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5866 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5867 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5868 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5869 034107 312 00 0 00 034301 CAME 0,[-1] ;PASS IF C(AC)=-1,,-1 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 97-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0144 + + 5870 STOP^ + 5871 034110 254 04 0 00 034111 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5872 034111 324 00 0 00 034112 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5873 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5874 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5875 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5876 034112 312 01 0 00 034434 CAME 1,[754321,,76543] ;PASS IF C(E) UNCHANGED + 5877 STOP^ + 5878 034113 254 04 0 00 034114 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5879 034114 324 00 0 00 034115 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5880 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5881 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5882 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5883 + 5884 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 98 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0145 + + 5885 ;THIS TEST VERIFIES THAT TSOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5886 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5887 ;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 5888 ;AC BITS ARE THEN CHANGED TO ONES. + 5889 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 + 5890 ;HENCE, TSOE SHOULD SKIP AND THE RESULT IN AC + 5891 ;SHOULD BE -1,,-1. C(E) IS NOT AFFECTED + 5892 + 5893 034115 200 17 0 00 034414 C75600: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5894 034116 200 00 0 00 034424 MOVE 0,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + 5895 034117 673 17 0 00 000000 TSOE 17,0 ;*TSOE SHOULD SKIP AND + 5896 ;PLACE -1,,-1 INTO THE AC + 5897 STOP^ + 5898 034120 254 04 0 00 034121 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5899 034121 324 00 0 00 034122 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5900 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5901 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5902 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5903 034122 312 17 0 00 034301 CAME 17,[-1] ;PASS IF C(AC)=-1,,-1 + 5904 STOP^ + 5905 034123 254 04 0 00 034124 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5906 034124 324 00 0 00 034125 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5907 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5908 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5909 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5910 034125 312 00 0 00 034424 CAME 0,[76543,,654321] ;PASS IF C(E) UNCHANGED + 5911 STOP^ + 5912 034126 254 04 0 00 034127 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5913 034127 324 00 0 00 034130 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5914 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5915 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5916 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5917 + 5918 ;********** + 5919 + 5920 ;THIS TEST VERIFIES THAT TSOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 5921 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 5922 ;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 5923 ;AC BITS ARE THEN CHANGED TO ONES. + 5924 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,657321 + 5925 ;HENCE, TSOE SHOULD NOT SKIP AND THE RESULT IN THE AC + 5926 ;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED. + 5927 + 5928 034130 200 16 0 00 034414 C75610: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,701234 + 5929 034131 200 17 0 00 034436 MOVE 17,[76543,,657321] ;PRELOAD E WITH 076543,,657321 + 5930 034132 673 16 0 00 000017 TSOE 16,17 ;*TSOE SHOULD NOT SKIP AND + 5931 ;*TSOE SHOULD NOT SKIP AND + 5932 ;PLACE -1,,-1 INTO THE AC + 5933 034133 334 00 0 00 000000 SKIPA ;PASS IF SKIP + 5934 STOP^ + 5935 034134 254 04 0 00 034135 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5936 034135 324 00 0 00 034136 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5937 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5938 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5939 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 98-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0146 + + 5940 034136 312 16 0 00 034301 CAME 16,[-1] ;PASS IF C(AC)=-1,,-1 + 5941 STOP^ + 5942 034137 254 04 0 00 034140 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5943 034140 324 00 0 00 034141 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5944 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5945 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5946 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5947 034141 312 17 0 00 034436 CAME 17,[76543,,657321] ;PASS IF C(E) UNCHANGED + 5948 STOP^ + 5949 034142 254 04 0 00 034143 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5950 034143 324 00 0 00 034144 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5951 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5952 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5953 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5954 + 5955 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 99 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0147 + + 5956 ;THIS TEST VERIFIES THAT TDOA PLACES ONES INTO ALL BITS OF THE AC WHICH + 5957 ;CORRRESPOND TO 1'S IN C(E) AND ALWAYS + 5958 ;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED + 5959 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)= 654321,,076543 + 5960 ;HENCE, TDOA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + 5961 + 5962 034144 200 15 0 00 034414 C75700: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5963 034145 200 16 0 00 034433 MOVE 16,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + 5964 034146 674 15 0 00 000016 TDOA 15,16 ;*TDOA SHOULD SKIP AND + 5965 ;PLACE -1,,-1 INTO THE AC + 5966 STOP^ + 5967 034147 254 04 0 00 034150 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5968 034150 324 00 0 00 034151 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5969 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5970 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5971 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5972 034151 312 15 0 00 034301 CAME 15,[-1] ;PASS IF C(AC)=-1,,-1 + 5973 STOP^ + 5974 034152 254 04 0 00 034153 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5975 034153 324 00 0 00 034154 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5976 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5977 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5978 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5979 034154 312 16 0 00 034433 CAME 16,[654321,,076543] ;PASS IF C(E) UNCHANGED + 5980 STOP^ + 5981 034155 254 04 0 00 034156 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 5982 034156 324 00 0 00 034157 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 5983 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 5984 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 5985 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 5986 + 5987 ;********** + 5988 + 5989 ;THIS TEST VERIFIES THAT TDOA PLACE ONES ALL BIT OF THE AC WHICH + 5990 ;CORRESPOND TO 1'S IN C(E) AND ALWAYS + 5991 ;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED + 5992 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 + 5993 ;HENCE, TDOA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 373577,,707274 + 5994 + 5995 034157 200 14 0 00 034414 C75710: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 5996 034160 200 15 0 00 034431 MOVE 15,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + 5997 034161 674 14 0 00 000015 TDOA 14,15 ;*TDOA SHOULD SKIP AND + 5998 ;PLACE 373577,707274 ONTO THE AC + 5999 STOP^ + 6000 034162 254 04 0 00 034163 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6001 034163 324 00 0 00 034164 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6002 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6003 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6004 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6005 034164 312 14 0 00 034464 CAME 14,[373577,,707274] ;PASS IF C(AC)=373577,,707274 + 6006 STOP^ + 6007 034165 254 04 0 00 034166 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6008 034166 324 00 0 00 034167 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6009 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6010 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 99-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0148 + + 6011 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6012 034167 312 15 0 00 034431 CAME 15,[252525,,707070] ;PASS IF C(E) UNCHANGED + 6013 STOP^ + 6014 034170 254 04 0 00 034171 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6015 034171 324 00 0 00 034172 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6016 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6017 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6018 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6019 + 6020 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 100 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0149 + + 6021 ;THIS TEST VERIFIES THAT TSOA PLACE ONES INTO ALL BITS OF THE AC WHICH + 6022 ;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS + 6023 ;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED + 6024 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 + 6025 ;HENCE, TSOA SHOULD SLAWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + 6026 + 6027 034172 200 13 0 00 034414 C76000: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 6028 034173 200 14 0 00 034465 MOVE 14,[176543,,654321] ;PRELOAD E WITH 076543,,654321 + 6029 034174 675 13 0 00 000014 TSOA 13,14 ;*TSOA SHOULD SKIP AND + 6030 ;PLACE -1,,-1 ONTO THE AC + 6031 STOP^ + 6032 034175 254 04 0 00 034176 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6033 034176 324 00 0 00 034177 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6034 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6035 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6036 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6037 034177 312 13 0 00 034301 CAME 13,[-1] ;PASS IF C(AC)=-1,,-1 + 6038 STOP^ + 6039 034200 254 04 0 00 034201 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6040 034201 324 00 0 00 034202 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6041 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6042 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6043 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6044 034202 312 14 0 00 034465 CAME 14,[176543,,654321] ;PASS IF C(E) UNCHANGED + 6045 STOP^ + 6046 034203 254 04 0 00 034204 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6047 034204 324 00 0 00 034205 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6048 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6049 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6050 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6051 + 6052 ;********** + 6053 + 6054 ;THIS TEST VERIFIES THAT TSOA PLACES ONES INTO ALL BITS OF THE AC WHICH + 6055 ;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS + 6056 ;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED + 6057 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=701234,,123456 + 6058 ;HENCE, TSOA SHOULD SLWAYS SKIP AND C(AC) SHOULD BE 123456,,701234 + 6059 + 6060 034205 200 12 0 00 034414 C76010: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 6061 034206 200 13 0 00 034441 MOVE 13,[701234,,123456] ;PRELOAD E WITH 701234,123456 + 6062 034207 675 12 0 00 000013 TSOA 12,13 ;*TSOA SHOULD SKIP AND + 6063 ;PLACE 123456,,701234 INTO THE AC + 6064 STOP^ + 6065 034210 254 04 0 00 034211 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6066 034211 324 00 0 00 034212 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6067 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6068 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6069 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6070 034212 312 12 0 00 034414 CAME 12,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + 6071 STOP^ + 6072 034213 254 04 0 00 034214 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6073 034214 324 00 0 00 034215 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6074 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6075 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 100-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0150 + + 6076 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6077 034215 312 13 0 00 034441 CAME 13,[701234,,123456] ;PASS IF C(E) UNCHANGED + 6078 STOP^ + 6079 034216 254 04 0 00 034217 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6080 034217 324 00 0 00 034220 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6081 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6082 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6083 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6084 + 6085 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 101 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0151 + + 6086 ;THIS TEST VERIFIES THAT TDON SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 6087 ;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 6088 ;C(E) ARE ZERO. THESE MASKED + 6089 ;AC BITS ARE THEN CHANGED TO ONES + 6090 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076547 + 6091 ;HENCE, TDON SHOULD SKIP AND THE RESULT IN AC + 6092 ;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + 6093 + 6094 034220 200 11 0 00 034414 C76100: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 6095 034221 200 12 0 00 034442 MOVE 12,[654321,,076547] ;PRELOAD E WITH 654321,,076547 + 6096 034222 676 11 0 00 000012 TDON 11,12 ;*TDON SHOULD SKIP AND + 6097 ;PLACE -1,,-1 INTO THE AC + 6098 STOP^ + 6099 034223 254 04 0 00 034224 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6100 034224 324 00 0 00 034225 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6101 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6102 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6103 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6104 034225 312 11 0 00 034301 CAME 11,[-1] ;PASS IF C(AC)=-1,,-1 + 6105 STOP^ + 6106 034226 254 04 0 00 034227 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6107 034227 324 00 0 00 034230 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6108 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6109 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6110 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6111 034230 312 12 0 00 034442 CAME 12,[654321,,076547] ;PASS IF C(E) UNCHANGED + 6112 STOP^ + 6113 034231 254 04 0 00 034232 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6114 034232 324 00 0 00 034233 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6115 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6116 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6117 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6118 + 6119 ;********** + 6120 + 6121 ;THIS TEST VERIFIES THAT TDON SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 6122 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 6123 ;C(E) ARE ZERO. THESE MASKED + 6124 ;AC BITS ARE THEN CHANGED TO ONES. + 6125 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 + 6126 ;THENC, TDON SHOULD NOT SKIP AND THE RESULT IN TH AC + 6127 ;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + 6128 + 6129 034233 200 10 0 00 034414 C76110: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 6130 034234 200 11 0 00 034433 MOVE 11,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + 6131 034235 676 10 0 00 000011 TDON 10,11 ;*TDON SHOULD NOT SKIP AND + 6132 ;PLACE -1,,-1 INTO THE AC + 6133 034236 334 00 0 00 000000 SKIPA ;PASS IF TDON DOES NOT SKIP + 6134 STOP ^ + 6135 034237 254 04 0 00 034240 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6136 034240 324 00 0 00 034241 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6137 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6138 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6139 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6140 034241 312 10 0 00 034301 CAME 10,[-1] ;PASS IF C(AC)=-1,,-1 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 101-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0152 + + 6141 STOP^ + 6142 034242 254 04 0 00 034243 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6143 034243 324 00 0 00 034244 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6144 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6145 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6146 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6147 034244 312 11 0 00 034433 CAME 11,[654321,,076543] ;PASS IF C(E) UNCHANGED + 6148 STOP^ + 6149 034245 254 04 0 00 034246 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6150 034246 324 00 0 00 034247 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6151 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6152 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6153 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6154 + 6155 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 102 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0153 + + 6156 ;THIS TEST VERIFIES THAT TSON SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 6157 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 6158 ;C(E) WITH BOTH HALVE SWAPPED ARE ZERO. THESE MASKED + 6159 ;AC BITS ARE THEN CHANGED TO ONES + 6160 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=077543,,654321 + 6161 ;HENCE, TSON SHOULD SKIP AND THE RESULT IN AC + 6162 ;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + 6163 + 6164 034247 200 07 0 00 034414 C76200: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 6165 034250 200 10 0 00 034444 MOVE 10,[77543,,654321] ;PRELOAD E WITH 077543,,654321] + 6166 034251 677 07 0 00 000010 TSON 7,10 ;*TSON HOULD SKIP AND + 6167 ;PLACE -1,,-1 INTO THE AC + 6168 STOP^ + 6169 034252 254 04 0 00 034253 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6170 034253 324 00 0 00 034254 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6171 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6172 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6173 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6174 034254 312 07 0 00 034301 CAME 7,[-1] ;PASS IF C(AC)=-1,,-1 + 6175 STOP^ + 6176 034255 254 04 0 00 034256 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6177 034256 324 00 0 00 034257 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6178 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6179 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6180 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6181 034257 312 10 0 00 034444 CAME 10,[77543,,654321] ;PASS IF C(E) UNCHANGED + 6182 STOP^ + 6183 034260 254 04 0 00 034261 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6184 034261 324 00 0 00 034262 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6185 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6186 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6187 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6188 + 6189 ;********** + 6190 + 6191 ;THIS TEST VERIFIES THAT TSON SKIPS THE NEXT SEQUENTIAL INSTRUCTION + 6192 ;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN + 6193 ;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED + 6194 ;AC BITS ARE THEN CHANGED TO ONES. + 6195 ;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 + 6196 ;HENCE, TSON SHOULD NOT SKIP AND THE RESULT IN AC + 6197 ;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + 6198 + 6199 034262 200 06 0 00 034414 C76210: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + 6200 034263 200 07 0 00 034424 MOVE 7,[76543,,654321] ;PRELOAD E WITH 076543MM654321 + 6201 034264 677 06 0 00 000007 TSON 6,7 ;*TSON SHOULD NOT SKIP AND + 6202 ;PLACE -1,,-1 INTO THE AC + 6203 034265 334 00 0 00 000000 SKIPA ;PASS IF TSON DOES NOT SKIP + 6204 STOP^ + 6205 034266 254 04 0 00 034267 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6206 034267 324 00 0 00 034270 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6207 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6208 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6209 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6210 034270 312 06 0 00 034301 CAME 6,[-1] ;PASS IF C(AC)-=1,,-1 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 102-1 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0154 + + 6211 STOP^ + 6212 034271 254 04 0 00 034272 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6213 034272 324 00 0 00 034273 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6214 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6215 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6216 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6217 034273 312 07 0 00 034424 CAME 7,[76543,,654321] ;PASS IF C(E) UNCHANGED + 6218 STOP^ + 6219 034274 254 04 0 00 034275 HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + 6220 034275 324 00 0 00 034276 JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + 6221 ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + 6222 ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + 6223 ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1^ + 6224 + 6225 ;********** +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 103 +DAKAFM MAC 19-JAN-77 17:08 TEST OF MSCL LOGICAL TEST INSTRUCTIONS SEQ 0155 + + 6226 034276 254 00 0 00 030057 JRST BEGEND + 6227 SUBTTL *STOR* RESERVED STORAGE, JAN 18,1977 + 6228 + 6229 ;PROGRAM LITERALS + 6230 + 6231 XLIST + 6232 IFNDEF $LPAPER, + 6233 034277 LIT + 6234 034277 000001 000001 + 6235 034300 254 00 0 00 030741 + 6236 034301 777777 777777 + 6237 034302 777000 707070 + 6238 034303 777000 000777 + 6239 034304 123456 123456 + 6240 034305 123000 000456 + 6241 034306 121212 000000 + 6242 034307 777350 777776 + 6243 034310 000767 777777 + 6244 034311 777010 000000 + 6245 034312 000777 770077 + 6246 034313 123456 246123 + 6247 034314 123000 006100 + 6248 034315 000100 777600 + 6249 034316 123456 246135 + 6250 034317 123456 040104 + 6251 034320 123321 456654 + 6252 034321 770077 007770 + 6253 034322 003300 450004 + 6254 034323 123456 663322 + 6255 034324 777000 700770 + 6256 034325 000456 063002 + 6257 034326 123456 777776 + 6258 034327 010203 123450 + 6259 034330 123456 000000 + 6260 034331 000777 123456 + 6261 034332 000777 517067 + 6262 034333 707077 555666 + 6263 034334 123456 765432 + 6264 034335 624421 230254 + 6265 034336 707070 123456 + 6266 034337 707070 767577 + 6267 034340 123456 777666 + 6268 034341 777001 123470 + 6269 034342 777457 777676 + 6270 034343 777000 123456 + 6271 034344 000777 050321 + 6272 034345 777007 771100 + 6273 034346 063202 123477 + 6274 034347 000570 004200 + 6275 034350 707070 123426 + 6276 034351 070707 777032 + 6277 034352 123456 123457 + 6278 034353 707633 121212 + 6279 034354 153512 775132 + 6280 034355 000777 654321 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 1 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0156 + + 6281 034356 654321 012345 + 6282 034357 777000 123477 + 6283 034360 000777 775701 + 6284 034361 707070 707072 + 6285 034362 707777 757372 + 6286 034363 777777 070707 + 6287 034364 777777 133777 + 6288 034365 707070 070706 + 6289 034366 777777 707777 + 6290 034367 123456 770077 + 6291 034370 777001 123324 + 6292 034371 654777 657753 + 6293 034372 123456 707070 + 6294 034373 707070 707070 + 6295 034374 123456 123422 + 6296 034375 707070 717171 + 6297 034376 123422 000000 + 6298 034377 123456 707076 + 6299 034400 707076 000000 + 6300 034401 123456 777777 + 6301 034402 123456 135724 + 6302 034403 765432 246135 + 6303 034404 246135 777777 + 6304 034405 123123 456765 + 6305 034406 456765 777777 + 6306 034407 000000 000000 + 6307 034410 707076 777777 + 6308 034411 765432 777777 + 6309 034412 365432 123456 + 6310 034413 365432 000000 + 6311 034414 123456 701234 + 6312 034415 123123 246135 + 6313 034416 123123 123123 + 6314 034417 777777 701234 + 6315 034420 765432 107654 + 6316 034421 777777 765432 + 6317 034422 777777 000000 + 6318 034423 777777 123456 + 6319 034424 076543 654321 + 6320 034425 076543 654323 + 6321 034426 076547 654321 + 6322 034427 123456 701034 + 6323 034430 123454 701234 + 6324 034431 252525 707070 + 6325 034432 020406 501210 + 6326 034433 654321 076543 + 6327 034434 754321 076543 + 6328 034435 023456 701234 + 6329 034436 076543 657321 + 6330 034437 120456 701234 + 6331 034440 121052 000204 + 6332 034441 701234 123456 + 6333 034442 654321 076547 + 6334 034443 123456 701230 + 6335 034444 077543 654321 +DAKAF PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) 0,2 MACRO %52(537) 17:12 19-JAN-77 PAGE 1-1 +STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0157 + + 6336 034445 123456 700234 + 6337 034446 123456 701237 + 6338 034447 123456 701134 + 6339 034450 123756 701234 + 6340 034451 123455 701234 + 6341 034452 624426 553711 + 6342 034453 677777 777777 + 6343 034454 774777 777777 + 6344 034455 371173 006244 + 6345 034456 777777 777773 + 6346 034457 777777 776777 + 6347 034460 123456 701334 + 6348 034461 123456 070234 + 6349 034462 123457 070234 + 6350 034463 123457 701234 + 6351 034464 373577 707274 + 6352 034465 176543 654321 + 6353 LIST + 6354 034466 000000 000000 ENDSLD: 0 + 6355 + 6356 IFDEF DEBUG,< + 6357 034467 PATCH: BLOCK DEBUG ;PATCHING AREA + 6358 > + 6359 + 6360 ;PROGRAM VARIABLES + 6361 034567 VAR + 6362 + 6363 IFDEF PGMEND,< + 6364 034567 000000 000000 END: 0 + 6365 030000 END BEGIN > + +NO ERRORS DETECTED + +PROGRAM BREAK IS 000000 +ABSLUTE BREAK IS 034570 +CPU TIME USED 00:27.392 + +11K CORE USED diff --git a/apps/pdp10/diags/klad/dakaf/DAKAF.MAC.txt b/apps/pdp10/diags/klad/dakaf/DAKAF.MAC.txt new file mode 100644 index 000000000..477d093a6 --- /dev/null +++ b/apps/pdp10/diags/klad/dakaf/DAKAF.MAC.txt @@ -0,0 +1,3219 @@ +;MACROS + +; STOP - USED FOR SCOPE LOOP, IF INSTRUCTION FAILS, CHANGE (JUMPA .+1) +; TO A (JUMPA X) TO CYCLE ON FAILING INSTRUCTION + +DEFINE STOP (A)< + HALT .+1 ;TEST FAILED IF PROGRAM HALTS HERE + JUMPA .+1 ;IF TEST FAILS, CHANGE THIS INSTRUCTION (JUMPA .+1) + ;TO JUMPA X(X IS THE ADDRESS OF THE FIRST + ;INSTRUCTION IN THE SUBTEST) TO LOOP ON ERROR + ;AND CHANGE HALT INSTRUCTION TO JUMPA .+1> + +SUBTTL DIAGNOSTIC SECTION + +START: ;SETZM USER# ;CLEAR USER CONTROL WORD + ;JSP 0,.+1 ;GET FLAGS + ;TLNE USERF ;IN USER MODE? + ;SETOM USER ;YES, SET USER CONTROL WORD + ;SKIPN MONFLG ;SPECIAL USER MODE? + ;SETZM USER ;YES, CLEAR USER CONTROL WORD + ;SKIPN USER + ;JRST STARTA + ;SKIPL MONCTL + ;TTCALL 3,PGMNAM ;MENTION OUR NAME + JRST STARTA + +PGMNAM: ASCIZ/ +PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) [DAKAF] +/ + +STARTA: JRST .+1 +SUBTTL TEST OF MSCL BOOLEAN INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT SETZI CLEARS THE AC AND DOES NOT AFFECT E. +;FIRST, AC AND E ARE PRELOADED WITH -1,,-1, THEN, SETZI IS EXECUTED. +;AC IS THEN CHECKED FOR 0 AND E IS CHECKED FOR -1,,-1 + +C56100: SETO 1, ;PRELOAD AC WITH -1,,-1 + SETO 2, ;PRELOAD E WITH -1,,-1 + SETZI 1,2 ;*SETZI SHOULD CLEAR THE AC + SKIPE 1 ;PASS IF C(AC)=0 + STOP + CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETZM CLEARS C(E) AND DOES NOT AFFECT C(AC) +;FIRST, AC AND E ARE PRELOADED WITH -1,,-1; THEN SETZM IS EXECUTED. +;AC IS THEN CHECKED FOR -1,,-1 AND E IS CHECKED FOR 0. + +C56200: SETO 1, ;PRELOAD AC WITH -1,,-1 + SETO 2, ;PRELOAD E WITH -1,,-1 + SETZM 1,2 ;*SETZM SHOULD CLEAR E + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + SKIPE 2 ;PASS IF C(E)=0 + STOP + +;********** +;THIS TEST VERIFIES THAT SETOI PLACES ALL ONES INTO THE AC. +;FIRST, THE AC AND E ARE CLEARED; THEN, SETOI IS EXECUTED. +;AC AND E ARE CHECKED FOR -1,,-1 AND 0 RESPECTIVELY + +C56300: SETZB 1,2 ;CLEAR AC,E + SETOI 1,2 ;*SETOI SHOULD PLACE -1,,-1 INTO THE AC + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + SKIPE 2 ;PASS IF C(E)=0 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETOM PLACES ALL ONES INTO E +;FIRST, THE AC AND E ARE CLEARED, THEN SETOM IS EXECUTED. +;AC AND E ARE THEN CHECKED FOR 0 AND -1,,-1 RESPECTIVELY. + +C56400: SETZB 1,2 ;CLEAR AC,E + SETOM 1,2 ;*SETOM SHOULD PLACE -1,,-1 INTO E + SKIPE 1 ;PASS IF C(AC)=0 + STOP + CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT SETOB PLACES ALL ONES INTO BOTH AC AND E. +;FIRST, BOTH AC AND E ARE CLEARED; THEN, SETOB IS EXECUTED. +;AC AND E ARE BOTH CHECKED FOR -1,,-1 + +C56500: SETZB 1,2 ;CLEAR AC,E + SETOB 1,2 ;*SETOB SHOULD PUT -1,,-1 INTO BOTH AC AND E + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDI PLACES THE LOGICAL AND FUNCTION +;OF C(AC) AND 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=777000,,707070 AND E=0,,123123. +;HENCE, THE RESULT IN THE AC SHOULD BE 0,,103103 + +C56600: MOVE 1,[777000,,707070] ;PRELOAD AC WITH 777000,,707070 + ANDI 1,123123 ;*ANDI SHOULD PLACE 0,,103103 INTO THE AC + CAIE 1,103020 ;PASS IF C(AC)=103103 + STOP + +;********** +;THIS TEST VERIFIES THAT ANDM PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND C(E) INTO E. +;IN THIS CASE, C(AC)=777000,,000777 AND C(E)=123456,,123456. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 777000,,000777 AND +;123000,,00456 RESPECTIVELY + +C56700: MOVE 1,[777000,,777] ;PRELOAD E WITH 777000,,000777 + MOVE 2,[123456,,123456] ;PRELOAD AC WITH 123456,,123456 + ANDM 2,1 ;*ANDM SHOULD PLACE 123000,,000456 INTO E + CAME 2,[123456,,123456] ;PASS IF C(AC) NOT MODIFIED + STOP + CAME 1,[123000,,000456] ;PASS IF C(E)=123000,,000456 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDM PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND C(E) INTO E. +;IN THIS CASE, C(AC)=777000,,000777 AND C(E)=123456,,123456. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 777000,,000777 AND +;123000,,00456 RESPECTIVELY + +C56701: MOVE 1,[777000,,777] ;PRELOAD E WITH 777000,,000777 + MOVEM 1,E56701 + MOVE 2,[123456,,123456] ;PRELOAD AC WITH 123456,,123456 + ANDM 2,E56701 ;*ANDM SHOULD PLACE 123000,,000456 INTO E + CAME 2,[123456,,123456] ;PASS IF C(AC) NOT MODIFIED + STOP + MOVE 1,E56701 + CAME 1,[123000,,000456] ;PASS IF C(E)=123000,,000456 + STOP + + SKIPA ;GO TO NEXT TEST +E56701: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT ANDCB PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND C(E) INTO BOTH AC AND E +;IN THIS CASE, C(AC)=-1,,0 AND C(E)=121212,,-1 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 121212,,0, + +C57000: HRROI 3,0 ;PRELOAD AC WITH -1,,0 + HRLOI 6,121212 ;PRELOAD E WITH 121212,,-1 + ANDB 3,6 ;*ANDB SHOULD PLACE 121212,,0 INTO BOTH AC AND E + CAME 3,[121212,,0] ;PASS IF C(AC)=121212,,0 + STOP + CAME 6,[121212,,0] ;PASS IF C(E)=121212,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDCB PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND C(E) INTO BOTH AC AND E +;IN THIS CASE, C(AC)=-1,,0 AND C(E)=121212,,-1 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 121212,,0, + +C57001: HRROI 3,0 ;PRELOAD AC WITH -1,,0 + HRLOI 6,121212 ;PRELOAD E WITH 121212,,-1 + MOVEM 6,E57001 + ANDB 3,E57001 ;*ANDB SHOULD PLACE 121212,,0 INTO BOTH AC AND E + CAME 3,[121212,,0] ;PASS IF C(AC)=121212,,0 + STOP + MOVE 6,E57001 + CAME 6,[121212,,0] ;PASS IF C(E)=121212,,0 + STOP + + SKIPA ;GO TO NEXT TEST +E57001: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT ANDCAI PLACES THE LOGICAL AND FUNCTION +;OF THE WORD 0,E AND THE COMPLEMENT OF C(AC) INTO THE AC +;IN THIS CASE, C(AC)=777,000,,707070 AND E=0,135246 +;HENCE, THE RESULT IN THE AC SHOULD BE 0,,030206 + +C57100: MOVE 5,[777000,,707070] ;PRELOAD AC WITH 777000,,707070 + ANDCAI 5,135246 ;*ANDCAI SHOULD PLACE 0,,30206 INTO THE AC + CAIE 5,030206 ;PASS IF C(AC)=030206 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDCAM PLACES THE LOGICAL AND FUNCTION OF +;C(E) AND THE COMPLEMENT OF C(AC) INTO E. +;IN THIS CASE, C(AC)=000767,,-1 AND C(E)=777350,,-2 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 000767,,-1 AND +;777010,,0 RESPECTIVELY. + +C57200: HRLOI 4,767 ;PRELOAD AC WITH 000767,,-1 + MOVE 6,[777350,,-2] ;PRELOAD E WITH 777350,,-2 + ANDCAM 4,6 ;*ANDCAM SHOULD PLACE 777010,,0 + ;INTO E + CAME 4,[767,,-1] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 6,[777010,,0] ;PASS IF C(E)=777010,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT ANDCAB PLACES THE LOGICAN AND FUNCTION OF +;C(E) AND THE COMPLEMENT OF C(AC) INTO BOTH AC AND E. +;IN THIS CASE, C(AC)=000777,,770077 AND C(E)=123456,246123 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 123000,,006100 + +C57300: MOVE 1,[000777,,770077] ;PRELOAD AC WITH 000777,770077 + MOVE 2,[123456,,246123] ;PRELOAD E WITH 123456,246123 + ANDCAB 1,2 ;*ANDCAB SHOULD PLACE 123000,006100 + ;INTO BOTH AC AND E + CAME 1,[123000,,006100] ;PASS IF C(AC)=123000,006100 + STOP + CAME 2,[123000,,006100] ;PASS IF C(E)=123000,006100 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETMI MOVES THE WORD 0,,E INTO THE AC +;IN THIS CASE, C(AC)=-1,,-1 AND E=0,,123456. HENCE, THE RESULT +;IN THE AC SHOULD BE 0,,123456 + +C57400: SETO 5, ;PRELOAD AC WITH -1,,-1 + SETMI 5,123456 ;*SETMI SHOULD PLACE 0,,123456 INTO THE AC + CAIE 5,123456 ;PASS IF C(AC)=0,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT SETMM IS A NO-OP. HENCE, IT SHOULD +;NOT MODIFY AC OR E. +;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-1; AND NEITHER SHOULD NOT BE CHANGED + +C57500: SETZ 16, ;CLEAR C(AC) + SETO 17, ;PRELOAD E WITH -1,,-1 + SETMM 16,17 ;*SETMM IS A NO-OP + SKIPE 16 ;PASS IF C(AC) UNCHANGED + STOP + CAME 17,[-1] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT SETMB PLACES C(E) INTO THE AC +;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=100,,-200 HENCE, THE RESULT +;IN BOTH AC AND E SHOULD BE 000100,,-200. + +C57600: SETO 0, ;CLEAR AC + MOVE 1,[100,,-200] ;PRELOAD E WITH 100,,-200 + SETMB 0,1 ;*SETMB SHOULD PLACE 100,,-200 INTO THE AC + CAME 0,[100,,-200] ;PASS IF C(AC)=100,,-200 + STOP + CAME 1,[100,,-200] ;PASS IF C(E)=100,,-200 + STOP + +;********** +;THIS TEST VERIFIES THAT ANDCMI PLACES THE LOGICAL AND FUNCTION +;OF C(AC) AND THE COMPLEMENT OF THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=123456,,246135 AND E=0,,717273. +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,040104. + +C57700: MOVE 15,[123456,,246135] ;PRELOAD AC WITH 123456,,246135 + ANDCMI 15,717273 ;*ANDCMI SHOULD PLACE 123456,,040104 + ;INTO THE AC + CAME 15,[123456,,040104] ;PASS IF C(AC)=123456,,040104 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDCMM PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND THE COMPLEMENT OF C(E) INTO E. +;IN THIS CASE,C(AC)=12321,,456654 AND C(E)= 770077,,007770 +;HENCE, THE RESULT IN E SHOULD BE 003300,,450004 + +C60000: MOVE 14,[123321,,456654] ;PRELOAD AC WITH 123321,,456654 + MOVE 15,[770077,,007770] ;PRELOAD E WITH 77007770 + ANDCMM 14,15 ;*ANDCMM SHOULD PLACE 003300,,450004 INTO THE AC + CAME 14,[123321,,456654] ;PASS IF C(AC) UNCHANGED + STOP + CAME 15,[3300,,450004] ;PASS IF C(E) = 003300,,450004 + STOP + +;********** +;THIS TEST VERIFIES THAT ANDCMB PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND THE COMPLEMENT OF C(E) INTO BOTH AC AND E. +;IN THIS CASE, C(AC)123456,,663322 AND C(E) = 777000,,700770 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 000456,,063002 + +C60100: MOVE 13,[123456,,663322] ;PRELOAD AC WITH 123456,,663322 + MOVE 14,[777000,,700770] ;PRELOAD E WITH 777000,,700770 + ANDCMB 13,14 ;*ANDCMB SHOULD PLACE 000456,,063002 + ;INTO BOTH AC AND E + CAME 13,[456,,63002] ;PASS IF C(AC)=000456,,063002 + STOP + CAME 14,[456,,63002] ;PASS IF C(E)=000456,,063002 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETA IS A NO-OP. IT AFFECTS NEITHER +;AC OR E. IN THIS CASE, C(AC)=123456,,777776 AND C(E)=010203,,123450. +;SETA SHOULD NOT MODIFY C(AC) OR C(E) + +C60200: MOVE 12,[123456,,777776] ;PRELOAD AC WITH 123456,,-2 + MOVE 13,[010203,,123450] ;PRELOAD E WITH 010203,,123450 + SETA 12,13 ;*SETA IS A NO-OP + CAME 12,[123456,,-2] ;PASS IF C(AC) UNCHANGED + STOP + CAME 13,[010203,,123450] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT SETAI IS A NO-OP. IT DOES NOT AFFECT THE AC. +;IN THIS CASE, C(AC)=123456,,777776 AND E=0,,123450 +;SETA SHOULD NOT MODIFY C(AC) + +C60300: MOVE 12,[123456,,777776] ;PRELOAD AC WITH 123456,,-2 + SETAI 12,123450 ;*SETAI IS A NO-OP + CAME 12,[123456,,-2] ;PASS IF C(AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT SETAM PLACES C(AC) INTO E. +;IN THIS CASE, C(AC)=123456,,0 AND C(E)=-1,,-1. HENCE, THE +;RESULT IN E SHOULD BE 123456,,0 + +C60400: HRLZI 11,123456 ;PRELOAD AC WITH 123456,,0 + SETO 12, ;PRELOAD E WITH -1,,-1 + SETAM 11,12 ;SETAM SHOULD PLACE 123456,,0 INTO E + CAME 11,[123456,,0] ;PASS IF C(AC) UNCHANGED + STOP + CAME 12,[123456,,0] ;PASS IF C(E)=123456,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT XORI PLACES THE LOGICAL EXCLUSIVE OR FUNCTION +;OF C(AC) AND THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=000777,,123456 AND E=0,,434431 +;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,517067. + +C60500: MOVE 10,[777,,123456] ;PRELOAD AC WITH 000777,,123456 + XORI 10,434431 ;*XORI SHOULD PLACE 000777,,517067 INTO THE AC + CAME 10,[777,,517067] ;PASS IF C(AC)=000777,,517067 + STOP + +;********** + +;THIS TEST VERIFIES THAT XORB PLACES THE LOGICAL EXCLUSIVE OR FUNCTION +;OF C(AC) AND C(E) INTO BOTH AC AND E. +;IN THIS CASE, C(AC)=707077,,555666 AND C(E)=123456,,765432 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 624421,,230254 + +C60600: MOVE 7,[707077,,555666] ;PRELOAD AC WITH 707077,,555666 + MOVE 10,[123456,,765432] ;PRELOAD E WITH 123456,,765432 + XORB 7,10 ;*XORB SHOULD PLACE 624421,,230254 + ;INTO BOTH AC AND E + CAME 7,[624421,,230254] ;PASS IF C(AC)=624421,,230254 + STOP + CAME 10,[624421,,230254] ;PASS IF C(E)=624421,,230254 + STOP + +;********** +;THIS TEST VERIFIES THAT IORI PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=707070,,123456 AND E=0,,765567 +;HENCE, THE RESULT IN THE AC SHOULD BE 707070,,767577 + +C60700: MOVE 6,[707070,,123456] ;PRELOAD AC WITH 707070,,123456 + IORI 6,765567 ;*IORI SHOULD PLACE 707070,,767577 INTO THE AC + CAME 6,[707070,,767577] ;PASS IF C(AC)=707070,,767577 + STOP + +;********** + +;THIS TEST VERIFIES THAT IORM PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND C(E) INTO E. +;IN THIS CASE, C(AC)=123456,,777666 AND C(E)=777001,,123470 +;HENCE, THE RESULT IN E SHOULD BE 777457,,777676 + +C61000: MOVE 5,[123456,,777666] ;PRELOAD AC WITH 123456,777666 + MOVE 6,[777001,,123470] ;PRELOAD E WITH 777001,,123470 + IORM 5,6 ;*IORM SHOULD PLACE + ;777457,777676 INTO E + CAME 5,[123456,,777666] ;PASS IF C(AC) UNMODIFIED + STOP + CAME 6,[777457,,777676] ;PASS IF C(E)=777457,777676 + STOP + +;********** +;THIS TEST VERIFIES THAT IORB PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND C(E) INTO E. +;IN THIS CASE, C(AC)=123456,,777666 AND C(E)=777001,,123470 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 777457,,777676 + +C61100: MOVE 5,[123456,,777666] ;PRELOAD AC WITH 123456,777666 + MOVE 6,[777001,,123470] ;PRELOAD E WITH 777001,,123470 + IORB 5,6 ;*IORB SHOULD PLACE + ;777457,,777676 INTO + CAME 5,[777457,,777676] ;PASS IF C(AC)=777457,,777676 + STOP + CAME 6,[777457,,777676] ;PASS IF C(E)=777457,,777676 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDCBI PLACES THE LOGICAL AND FUNCTION +;OF THE COMPLEMENTS OF BOTH C(AC) AND THE WORD 0,,E INTO THE AC +;IN THIS CASE, C(AC)=777000,,123456 AND E=0,,706050. +;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,050321. + +C61200: MOVE 4,[777000,,123456] ;PRELOAD AC WITH 777000,,123456 + ANDCBI 4,706050 ;*ANDCBI SHOULD PLACE 000777,,050321 + ;INTO THE AC + CAME 4,[777,,50321] ;PASS IF C(AC)=000777,,050321 + STOP + +;********** +;THIS TEST VERIFIES THAT ANDCBM PLACES THE LOGICAL AND FUNCTION +;OF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO +;IN THE CASE, C(AC)=777007,,771100 AND C(E)=063202,,123477 +;HENCE, THE RESULT IN E SHOULD BE 000570,,004200 + +C61300: MOVE 3,[777007,,771100] ;PRELOAD AC WITH 777007,,771100 + MOVE 4,[63202,,123477] ;PRELOAD E WITH 063202,,123477 + ANDCBM 3,4 ;*ANDCBM SHOULD PLACE + ;000570,,004200 INTO E. + CAME 3,[777007,,771100] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 4,[570,,4200] ;PASS IF C(E)=000570,,004200 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDCBB PLACES THE LOGICAL AND FUNCTION +;OF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO BOTH AC AND E +;IN THIS CASE, C(AC)=777007,,771100 AND C(E)=063202,,123477 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 000570,,004200 + +C61400: MOVE 3,[777007,,771100] ;PRELOAD WITH 777007,,771100 + MOVE 4,[63202,,123477] ;PRELOAD E WITH 063202,,123477 + ANDCBB 3,4 ;*ANDCBB SHOULD PLACE + ;000570,,004200 INTO BOTH AC AND E + CAME 3,[570,,4200] ;PASS IF C(AC)=000570,,004200 + STOP + CAME 4,[570,,4200] ;PASS IF C(E)=000570,,004200 + STOP + +;********** +;THIS TEST VERIFIES THAT EQVI PLACES THE LOGICAL EQUIVALENCE FUNCTION +;OF C(AC) AND THE WORD 0,,E INTO THE AC +;IN THIS CASE, C(AC)=707070,,123426 AND E=0,,123363 +;HENCE, THE RESULT IN THE AC SHOULD BE 070707,,777032 + +C61500: MOVE 2,[707070,,123426] ;PRELOAD AC WITH 707070,,123426 + EQVI 2,123363 ;*EQVI SHOULD PLACE + ;070707,,777032 INTO THE AC + CAME 2,[70707,,777032] ;PASS IF C(AC)=070707,,777032 + STOP + +;********** + +;THIS TEST VERIFIES THAT EQVM PLACES THE LOGICAL EQUIVALENCE FUNCTION +;OF C(AC) AND C(E) INTO E. +;IN THIS CASE, C(AC)= 123456,,123457 AND C(E) = 707633,,121212 +;HENCE, THE RESULT IN E SHOULD BE 153512,,775132 + +C61600: MOVE 1,[123456,,123457] ;PRELOAD AC WITH 123456,,123457 + MOVE 2,[707633,,121212] ;PRELOAD AC WITH 707633,,121212 + EQVM 1,2 ;*EQVM SHOULD PLACE 153512,,775132 INTO E. + CAME 1,[123456,,123457] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[153512,,775132];PASS IF C(E) = 153512,,775132 + STOP + +;********** +;THIS TEST VERIFIES THAT EQVB PLACES THE LOGICAL EQUIVALENCE FUNCTION +;OF C(AC)AND C(E) INTO BOTH AC AND E. +;IN THIS CASE, C(AC) = 123456,,123457 AND C(E) = 707633,,121212 +;HENSE, THE RSULT IN BOTH AC AND E SHOULD BE 153512,,775132 + +C61700: MOVE 1,[123456,,123457] ;PRELOAD AC WITH 123456,,12345 + MOVE 2,[707633,,121212] ;PRELOAD AC WITH 707633,,121212 + EQVB 1,2 ;*EQVB SHOULD PLACE 153512,,775132 + ;INTO BOTHE AC AND E. + CAME 1,[153512,,775132] ;PASS IC C(AC)=153512,,775132 + STOP + CAME 2,[153512,,775132] ;PASS IF C(E)=153512,,775132 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETCAI PLACES THE COMPLEMENT OF C(AC) +;INTO THE AC. +;IN THIS CASE, C(AC)=777000,,123456 AND E=0,,707070 +;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,654321 + +C62000: MOVE 0,[777000,,123456] ;PRELOAD AC WITH 777000,,123456 + SETCAI 0,707070 ;*SETCAI SHOULD PLACE 000777,,654321 + ;INTO THE AC + CAME 0,[777,,654321] ;PASS IF C(AC)=000777,,654321 + STOP + +;********** +;THIS TEST VERIFIES THAT SETCAM PLACES THE COMPLEMENT OF C(AC) +;INTO E. +;IN THIS CASE, C(AC)=123456,,765432 AND C(E)=-1,,-1. +;HENCE, THE RESULT IN E SHOULD BE 654321,,012345 + +C62100: MOVE 17,[123456,,765432] ;PRELOAD AC WITH 123456,,765432 + SETO 0, ;PRELOAD E WITH -1,,-1 + SETCAM 17,0 ;*SETCAM SHOULD PLACE + ;654321,,012345 INTO E + CAME 17,[123456,,765432] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 0,[654321,,12345] ;PASS IF C(E)=654321,,012345 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETCAB PLACES THE COMPLEMENT OF C(AC) +;INTO BOTH AC AND E. +;IN THIS CASE, C(AC)=123456,,765432 AND C(E)=-1,,-1. +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 654321,,012345 + +C62200: MOVE 17,[123456,,765432] ;PRELOAD AC WITH 123456,,76543 + SETO 0, ;PRELOAD E WITH -1,,-1 + SETCAB 17,0 ;*SETCAB SHOULD PLACE + ;654321,,012345 INTO BOTH AC AND E + CAME 17,[654321,,12345] ;PASS IF C(AC)=654321,,012345 + STOP + CAME 0,[654321,,12345] ;PASS IF C(E)=654321,,012345 + STOP + +;********** +;THIS TEST VERIFIES THAT ORCAI PLACES THE INCLUSIVE OR FUNCTION +;OF THE WORD 0,,E AND THE COMPLEMENT OF C(AC) INTO THE AC. +;IN THIS CASE, C(AC)=777000,,123477 AND E=0,,765401 +;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,775701 + +C62300: MOVE 16,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + ORCAI 16,765401 ;*ORCAI SHOULD PLACE 000777,,767477 + ;INTO THE AC + CAME 16,[777,,775701] ;PASS IF C(AC)=000777,,775701 + STOP + +;********** + +;THIS TEST VERIFIES THAT ORCAM PLACES THE INCLUSIVE OR FUNCTION +;OF C(E) AND THE COMPLEMENT OF C(AC) INTO +;IN THIS CASE, C(AC)=777000,,123477 AND C(E)=707070,,707072 +;HENCE, THE RESULT IN E SHOULD BE 707777,,757372 + +C62400: MOVE 15,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + MOVE 16,[707070,,707072] ;PRELOAD E WITH 707070,,707072 + ORCAM 15,16 ;*ORCAM SHOULD PLACE 707777,,757372 + ;INTO E + CAME 15,[777000,,123477] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 16,[707777,,757372] ;PASS IF C(E)=707777,,757372 + STOP + +;********** +;THIS TEST VERIFIES THAT ORCAB PLACES THE INCLUSIVE OR FUNCTION +;OF C(E) AND THE COMPLEMENT OF C(AC) INTO BOTH AC AND E. +;IN THIS CASE, C(AC)=777000,,123477 AND C(E)=707070,,707072 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 707777,,757372 + +C62500: MOVE 15,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + MOVE 16,[707070,,707072] ;PRELOAD E WITH 707070,,707072 + ORCAB 15,16 ;*ORCAB SHOULD PLACE 707777,,757372 + ;INTO BOTHE AC AND E + CAME 15,[707777,,757372] ;PASS IF C(AC)=707777,,757372 + STOP + CAME 16,[707777,,757372] ;PASS IF C(E)=707777,,757372 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETCMI PLACES THE COMPLEMENT OF THE +;WORD 0,,E INTO THE AC +;IN THIS CASE, C(AC)=777000,,123456 AND E=0,,707070 +;HENCE, THE RESULT IN THE AC SHOULD BE -1,,070707 + +C62600: MOVE 0,[777000,,123456] ;PRELOAD AC WITH 777000,,123456 + SETCMI 0,707070 ;*SETCMI SHOULD PLACE -1,,070707 + ;INTO THE AC + CAME 0,[-1,,070707] ;PASS IF C(AC)=-1,,070707 + STOP + +;********** +;THIS TEST VERIFIES THAT SETCMM PLACES THE COMPLEMENT OF C(E) +;INTO E. +;IN THIS CASE, C(E)=123456,,765432 AND C(AC)=-1,,-1. +;HENCE, THE RESULT IN E SHOULD BE 654321,,012345 + +C62700: MOVE 17,[123456,,765432] ;PRELOAD E WITH 123456,,76543 + SETO 0, ;PRELOAD AC WITH -1,,-1 + SETCMM 0,17 ;*SETCMM SHOULD PLACE + ;654321,012345 INTO E + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAME 17,[654321,,12345] ;PASS IF C(E)=654321,,012345 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETCMB PLACES THE COMPLEMENT OF C(E) +;INTO BOTH AC AND E. +;IN THIS CASE, C(E)=123456,,765432 AND C(AC)=-1,,-1. +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 654321,,012345 + +C63000: MOVE 17,[123456,,765432] ;PRELOAD E WITH 123456,,76543 + SETO 0, ;PRELOAD AC WITH -1,,-1 + SETCMB 0,17 ;*SETCMB SHOULD PLACE + ;654321,,012345 INTO BOTH AC AND E + CAME 0,[654321,,12345] ;PASS IF C(AC)=654321,,012345 + STOP + CAME 17,[654321,,12345] ;PASS IF C(E)=654321,,012345 + STOP + +;********** +;THIS TEST VERIFIES THAT ORCMI PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND THE COMPLEMENT OF THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=777000,,123477 AND E=0,,765401 +;HENCE, THE RESULT IN THE AC SHOULD BE -1,,133777 + +C63100: MOVE 16,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + ORCMI 16,765401 ;*ORCMI SHOULD PLACE -1,,133777 + ;INTO THE AC + CAME 16,[-1,,133777] ;PASS IF C(AC)=-1,,133777 + STOP + +;********** + +;THIS TEST VERIFIES THAT ORCMM PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND THE COMPLEMENT OC C(E) INTO +;IN THIS CASE, C(E)=777000,,123477 AND C (AC)=707070,,707072 +;HENCE, THE RESULT IN E SHOULD BE 707777,,757372 + +C63200: MOVE 15,[777000,,123477] ;PRELOAD E WITH 777000,,123477 + MOVE 16,[707070,,707072] ;PRELOAD AC WITH 707070,,707072 + ORCMM 16,15 ;*ORCMM SHOULD PLACE 707777,,757372 + ;INTO E + CAME 16,[707070,,707072] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 15,[707777,,757372] ;PASS IF C(E)=707777,,757372 + STOP + +;********** +;THIS TEST VERIFIES THAT ORCMB PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND THE COMPLEMENT OF C(E) INTO BOTH AC AND E. +;IN THIS CASE, C(E)=777000,,123477 AND C(AC)=707070,,707072 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 707777,,757372 + +C63300: MOVE 15,[777000,,123477] ;PRELOAD E WITH 777000,,123477 + MOVE 16,[707070,,707072] ;PRELOAD AC WITH 707070,,707072 + ORCMB 16,15 ;*ORCMB SHOULD PLACE 707777,,757372 + ;INTO BOTH AC AND E + CAME 16,[707777,,757372] ;PASS IF C(AC)=707777,,757372 + STOP + CAME 15,[707777,,757372] ;PASS OF C(E)=707777,,757372 + STOP + +;********** + +;THIS TEST VERIFIES THAT ORCBI PLACES THE LOGICAL INCLUSIVE OR +;FUNCTION OF THE COMPLEMENTS OF BOTH C(AC) AND THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=707070,,070706 AND E=0,,770011. +;HENCE, THE RESULT IN THE AC SHOULD BE -1,,707777 + +C63400: MOVE 15,[707070,,070706] ;PRELOAD AC WITH 707070,,070706 + ORCBI 15,770011 ;*ORCBI SHOULD PLACE -1,,707777 INTO THE AC + CAME 15,[-1,,707777] ;PASS IF C(AC)=-1,707777 + STOP + +;********** +;THIS TEST VERIFIES THAT ORCBM PLACES THE LOGICAL INCLUSIVE OR +;FUNCTION OF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO +;IN THIS CASE, C(AC)=123456,,770077 AND C(E)=777001,,123324 +;HENCE, THE RESULT IN E SHOULD BE 654777,,657753 + +C63500: MOVE 14,[123456,,770077] ;PRELOAD AC WITH 123456,,770077 + MOVE 15,[777001,,123324] ;PRELOAD E WITH 777001,,123324 + ORCBM 14,15 ;*ORCBM SHOULD PLACE 654777,,657753 + ;INTO E + CAME 14,[123456,,770077] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 15,[654777,,657753] ;PASS IF C(E)=654777,,657753 + STOP + +;********** + +;THIS TEST VERIFIES THAT ORCBB PLACES THE LOGICAL INCLUSIVE OR +;FUNCTIONOF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO BOTH AC AND E +;IN THIS CASE, C(AC)=123456,,770077 AND C(E)=777001,,657753 + +C63600: MOVE 14,[123456,,770077] ;PRELOAD AC WITH 123456,,770077 + MOVE 15,[777001,,123324] ;PRELOAD E WITH 777001,,123324 + ORCBB 14,15 ;*ORCBB SHOULD PLACE 654777,,657753 + ;INTO BOTH AC AND E + CAME 14,[654777,,657753] ;PASS IF C(AC)=654777,,657753 + STOP + CAME 15,[654777,,657753] ;PASS IF C(E)=654777,,657753 + STOP + +;********** +SUBTTL TEST OF MSCL HWT INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT HLLI CLEARS AC LEFT +;IN THIS CASE, C(AC)=707070,,123456 AND E=777000 +;HENCE, THE RESULT IN THE AC SHOULD BE 0,,123456 + +C63700: MOVE 17,[707070,,123456] ;PRELOAD AC WITH 707070,,123456 + HLLI 17,777000 ;*HLLI SHOULD PLACE 0,,123456 INTO THHE AC + CAIE 17,123456 ;PASS IF C(AC)=0,,123456 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLLS PLACES C(E) INTO THE AC IF AC IS NON-ZERO +;AND IS A NO-OP IF AC=0 +;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E)=123456,,765432 +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 +;AND 123456,,765432 RESPECTIVELY + +C64000: SETO 0 ;PRELOAD AC WITH -1,,-1 + MOVE 2,[123456,,765432] ;PRELOAD E WITH 123456,,765432 + HLLS 0,2 ;*HLLS SHOULD NOT AFFECT AC OR E + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[123456,,765432] ;PASS IF C(C) IS UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT HLLS PLACES C(E) INTO THE AC IF AC IS NON-ZERO? +;AND IS A NO-OP IF AC=0 +;IN THIS CASE, AC=1, C(AC)=1,,-1 AND C(E)=123456,,765432 +;HENCE, THE RESULTS IN AC AND E WHOULD BE 123456,,765432 +;AND 123456,,765432 RESPECTVIELY + +C64010: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 2,[123456,,765432] ;PRELOAD E WITH 123456,,765432 + HLLS 1,2 ;*HLLS SHOULD PLACE 123456,,765432 INTO THE AC + CAME 1,[123456,,765432] ;PASS IF C(AC)=123456,,765432 + STOP + CAME 2,[123456,,765432] ;PASS IF C(C) IS UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT HRLS PLACES C(E-RIGHT) INTO E-LEFT, BUT +;DOES NOT AFFECT E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=1,,-1 AND C(E)=123456,707070 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE -1,,-1 +;AND 707070,,707070. + +C64100: SETO 0, ;PRELOAD AC WITH -1,,-1 + MOVE 3,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + HRLS 0,3 ;*HRLS SHOULD PLACE 707070,,707070 + ;INTO E. + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAME 3,[707070,,707070] ;PASS IF C(E)=707070,,707070 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLS PLACES C(E-RIGHT) INTO E-LEFT, BUT +;DOES NOT AFFECT E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E)=123456,,707070 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 707070,,707070 +;AND 707070,,707070. + +C64110: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 3,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + HRLS 1,3 ;*HRLS SHOULD PLACE 707070,,707070 + ;INTO BOTH AC AND E. + CAME 1,[707070,,707070] ;PASS IF C(AC)=707070,,707070 + STOP + CAME 3,[707070,,707070] ;PASS IF C(E)=707070,,707070 + STOP + +;********** + +;THIS TEST VERIFIES THAN HLLZM PLACES C(AC-LEFT) INTO E-LEFT AND +;PLACES 0 INTO E-RIGHT +;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,717171 +;HENCE, THE RESULT IN E SHOULD BE 123456,,0 + +C64200: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + HLLZM 1,2 ;*HLLZM SHOULD PLACE 123456,,0 INTO E + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[123456,,0] ;PASS IF C(E)=123456,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT HLLZS CLEARS THE RIGHT HALF OF E, BUT DOESN'T +;AFFECT THE LEFT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E)=123456,,707070 +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 +;AND 123456,,0 RESPECTIVELY + +C64300: SETO 0, ;PRELOAD AC WITH -1,,-1 + MOVE 17,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + HLLZS 0,17 ;*HLLZS SHOULD PLACE 123456,,0 INTO E. + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAME 17,[123456,,0] ;PASS IF C(E)=123456,,0 + STOP + + +;********** + +;THIS TEST VERIFIES THAT HLLZS CLEARS THE RIGHT HALF OF E, BUT DOESN'T +;AFFECT THE LEFT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E)=123456,,707070 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 123456,,0 +;AND 123456,,0 RESPECTIVELY. + +C64310: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 17,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + HLLZS 1,17 ;*HLLZS SHOULD PLACE 123456,,0 INTO + ;BOTH AC AND E + CAME 1,[123456,,0] ;PASS IF C(AC)=123456,,0 + STOP + CAME 17,[123456,,0] ;PASS IF C(E)=123456,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLZM PLACES C(AC-RIGHT) INTO E-LEFT AND +;PLACES O INTO E-RIGHT. +;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,,717171 +;HENCE, THE RESULT IN E SHOULD BE 123422,,0 + +C64400: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + HRLZM 1,2 ;*HRLZM SHOULD PLACE 123422,,0 INTO E + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[123422,,0] ;PASS IF C(E)=123422,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT HRLZS PLACES C(E-RIGHT) INTO E-LEFT AND +;CLEARS E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALSO +;PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E)=123456,,707076 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE -1,,-1 +;AND 707076,,0 + +C64500: SETO 0, ;PRELOAD AC WITH -1,,-1 + MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + HRLZS 0,16 ;*HRLZS SHOULD PLACE 707076,,0 + ;INTO E. + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAME 16,[707076,,0] ;PASS IF C(AC)=707076,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLZS PLACES C(E-RIGHT) INTO E-LEFT AND +;CLEARS E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALSO +;PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E)=123456,,707076 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 707076,,0 +;AND 707076,,0 + +C64510: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + HRLZS 1,16 ;*HRLZS SHOULD PLACE 707076,,0 + ;INTO BOTH AC AND E. + CAME 1,[707076,,0] ;PASS IF C(AC)=707076,,0 + STOP + CAME 16,[707076,,0] ;PASS IF C(AC)=707076,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLLOM PLACES C(AC-LEFT) INTO E-LEFT AND +;PLACES -1 INTO E-RIGHT. +;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,,717171 +;HENCE, THE RESULT IN E SHOULD BE 123456,,-1. + +C64600: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + HLLOM 1,2 ;*HLLOM SHOULD PLACE 123456,,-1 INTO E + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[123456,,-1] ;PASS IF C(E)=123456,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLO, C(E-RIGHT) INTO AC=LEFT AND +;PLACES -1 INTO AC-RIGHT. IN THIS CASE, C(AC)=123456,,135724 AND +;C(E)=765432,,246135. HENCE, THE RESULT IN THE AC SHOULD BE 246135,,-1 + +C64700: MOVE 15,[123456,,135724] ;PRELOAD AC WITH 123456,,135724 + MOVE 16,[765432,,246135] ;PRELOAD E WITH 765432,,246135 + HRLO 15,16 ;*HRLO SHOULD PLACE 246135,,-1 INTO AC + CAME 15,[246135,,-1] ;PASS IF C(AC)=246135,,-1 + STOP + CAME 16,[765432,,246135] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT HRLOI PLACES 0,,E INTO AC-LEFT AND +;PLACES ONES INTO AC-RIGHT. IN THIS CASE, C(AC)=0 AND E=0,,123456. +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,-1 + +C65000: SETZ 14, ;CLEAR AC + HRLOI 14,123456 ;*HRLOI SHOULD PLACE 123456,,-1 INTO THE AC + CAME 14,[123456,,-1] ;PASS IF C(AC)=123456,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLOM PLACES C(AC-RIGHT) INTO E-LEFT +;AND PLACES -1 INTO E-RIGHT. IN THIS CASE, C(E)=0 AND C(AC)=123123,,456765 +;HENCE, THE RESULT IN E SHOULD BE 456765,,-1. + +C65100: SETZM 14 ;CLEAR E + MOVE 13,[123123,,456765] ;PRELOAD AC WITH 123123,,456765 + HRLOM 13,14 ;*HRLOM SHOULD PLACE 456765,,-1 INTO E + CAME 13,[123123,,456765] ;PASS IF C(AC) UNCHANGED + + STOP + CAME 14,[456765,,-1] ;PASS IF C(E)=456765,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT HRLOS PLACES C(E-RIGHT) INTO E-LEFT AND +;PLACES -1 INTO E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALOS +;PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,707076 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 0 +;AND 707076,,0 + +C65200: SETZ 0, ;PRELOAD AC WITH 0 + MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + HRLOS 0,16 ;*HRLZS SHOULD PLACE 707076,,-1 + ;INTO E. + CAME 0,[0] ;PASS IF C(AC) UNCHANGED + STOP + CAME 16,[707076,,-1] ;PASS IF C(AC)=707076,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLOS PLACES C(E-RIGHT) INTO E-LEFT AND +;PLACES -1 INTO E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALSO +;PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123456,,707076 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 707076,,-1 +;AND 707076,,-1 + +C65210: SETZ 1, ;PRELOAD AC WITH 0 + MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + HRLOS 1,16 ;*HRLZS SHOULD PLACE 707076,,-1 + ;INTO BOTH AC AND E + CAME 1,[707076,,-1] ;PASS IF C(AC)=707076,,-1 + STOP + CAME 16,[707076,,-1] ;PASS IF C(AC)=707076,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLLEM PLACES C(AC-LEFT) INTO E-LEFT +;AND PLACES BIT 0 OF THE AC INTO BITS 18 THRU 35 OF E. IN THIS CASE, +;C(AC)=123456,,707076 AND C(E)=-1,,-1. HENCE, THE RESULT IN E +;SHOULD BE 123456,,0. + +C65300: MOVE 12,[123456,,707076] ;PRELOAD AC WITH 123456,,707076 + SETOM 13 ;PRELOAD E WITH -1,,-1 + HLLEM 12,13 ;*HLLEM SHOULD PLACE 123456,,0 INTO E + CAME 12,[123456,,707076] ;PASS IF C(AC) UNCHANGED + STOP + CAME 13,[123456,,0] ;PASS IF C(E)=123456,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT HLLES PLACES C(E-LEFT) INTO E-LEFT AND +;PLACES BIT 0 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=765432,,0. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 +;AND 765432,,-1 RESPECTIVELY. + +C65400: SETZ 0, ;CLEAR AC + HRLZI 2,765432 ;PRELOAD E WITH 765432,,0 + HLLES 0,2 ;*HLLES SHOULD PLACE 765432,,-1 + ;INTO E + CAME 0,[0] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLLES PLACES C(E-LEFT) INTO E-LEFT AND +;PLACES BIT 0 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO, +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=765432,,0 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 765432,,-1 +;AND 765432,,-1 RESPECTIVELY + +C65410: SETZ 1, ;CLEAR AC + HRLZI 2,765432 ;PRELOAD E WITH 765432,,0 + HLLES 1,2 ;*HLLES SHOULD PLACE 765432,,-1 + ;INTO BOTH AC AND E + CAME 1,[765432,,-1] ;PASS IF C(AC)=765432,,-1 + STOP + CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT HLLEM PLACES C(AC-RIGHT) INTO E-LEFT +;AND PLACES BIT 18 OF THE AC INTO BITS 18 THRU 35 OF E. IN THIS CASE, +;C(AC)=365432,123456 AND C(E)=-1,,-1. HENCE, THE RESULT IN E +;SHOULD BE 365432,,0. + +C65500: MOVE 12,[365432,,123456] ;PRELOAD AC WITH 365432,,123456 + SETOM 13 ;PRELOAD E WITH -1,,-1 + HLLEM 12,13 ;*HLLEM SHOULD PLACE 365432,,0 INTO E + CAME 12,[365432,,123456] ;PASS IF C(AC) UNCHANGED + STOP + CAME 13,[365432,,0] ;PASS IF C(E)=365432,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT HRLES PLACES C(E-RIGHT) INTO E-LEFT AND +;PLACES BIT 18 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO, +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=0,,765432 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 +;AND 765432,,-1 RESPECTIVELY + +C65600: SETZ 0, ;CLEAR AC + HRRZI 2,765432 ;PRELOAD E WITH 0,,765432 + HRLES 0,2 ;*HLLES SHOULD PLACE 765432,,-1 + ;INTO + CAME 0,[0] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLES PLACES C(E-RIGHT) INTO E-LEFT AND +;PLACES BIT 18 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO, +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=0,,765432 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 765432,,-1 +;AND 765432,,-1 RESPECTIVELY. + +C65610: SETZ 1, ;CLEAR AC + HRRZI 2,765432 ;PRELOAD E WITH 0,765432 + HRLES 1,2 ;*HLLES SHOULD PLACE 765432,,-1 + ;INTO BOTH AC AND E + CAME 1,[765432,,-1] ;PASS IF C(AC)=765442,,-1 + STOP + CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + STOP + + +;********** + +;THIS TEST VERIFIES THAT HLRM SHOULD PLACE C(AC-LEFT) INTO E-RIGHT +;AND NOT AFFECT E-LEFT. IN THIS CASE, C(AC)=123456,,701234 +;AND C(E)=0. HENCE, THE RESULT IN E SHOULD BE 0,,123456 + +C65700: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + SETZM 12 ;CLEAR E + HLRM 11,12 ;*HLRM SHOULD PLACE 0,,123456 INTO E + CAME 11,[123456,,701234] ;PASS IF C(AC) UNCHANGE + STOP + CAIE 12,123456 ;PASS IF C(E)=0,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT HLRS PLACES C(E-LEFT) INTO E-RIGHT AND +;DOES NOT AFFECT E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123123,,246135 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 +;AND 123123,,123123 RESPECTIVELY. + +C66000: SETZ 0, ;CLEAR AC + MOVE 12,[123123,,246135] ;PRELOAD E WITH 123123,,246135 + HLRS 0,12 ;*HLRS SHOULD PLACE 123123,,123123 + ;INTO E. + CAME 0,[0] ;PASS IF C(AC) UNCHANGED + STOP + CAME 12,[123123,,123123] ;PASS IF C(E)=123123,,123123 + STOP + + +;********** + +;THIS TEST VERIFIES THAT HLRS PLACES C(E-LEFT) INTO E-RIGHT AND +;DOES NOT AFFECT E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123123,,246135 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 123123,,123123 +;AND 123123,,123123 RESPECTIVELY. + +C66010: SETZ 1, ;CLEAR AC + MOVE 12,[123123,,246135] ;PRELOAD E WITH 123123,,246135 + HLRS 1,12 ;*HLRS SHOULD PLACE 123123,,123123 + ;INTO BOTH AC AND E. + CAME 1,[123123,,123123] ;PASS IF C(AC)=123123,,123123 + STOP + CAME 12,[123123,,123123] ;PASS IF C(E)=123123,,123123 + STOP + +;********** +;THIS TEST VERIFIES THAT HRRZS CLEARS THE LEFT HALF OF E, BUT DOES NOT +;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC = 0, C(AC) = -1,,-1 AND C(E) = 123456,,701234 +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 AND 0,,701234 +;RESPECTIVELY. + +C66100: SETO 0 ;PRELOAD AC WITH -1,,-1 + MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HRRZS 0,17 ;HRRZS SHOULD PLACE 0,,701234 INTO E + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAIE 17,701234 ;PASS IF C(E) = 0,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT HRRZS CLEARS THE LEFT HALF OF E, BUT DOES NOT +;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC = 1, C(AC) = -1,,-1 AND C(E) = 123456,,701234 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,701234 AND 0,,701234 +;RESPECTIVELY. + +C66110: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HRRZS 1,17 ;HRRZS SHOULD PLACE 0,,701234 INTO + ;BOTH AC AND E + CAIE 1,701234 ;PASS IF C(AC) = 0,,701234 + STOP + CAIE 17,701234 ;PASS IF C(E) = 0,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT HLRZI CLEARS THE AC +;IN THIS CASE, C(AC) = -1,,-1 AND E = 0,,-1. HENCE, THE +;RESULT IN THE AC SHOULD BE 0. + +C66200: SETO 7 ;PRELOAD AC WITH -1,,-1 + HLRZI 7,-1 ;*HLRZI SHOULD CLEAR THE AC + SKIPE 7 ;PASS IF C(AC) = 0 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLRZM PLACES C(AC-LEFT) INTO E-RIGHT AND +;PLACES 0 INTO E-LEFT. +;IN THIS CASE, C(AC) = 123456,,123422 AND C(E) = 707070,,717171 +;HENCE, THE RESULT IN E SHOULD BE 0,,123456. + +C66300: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + HLRZM 1,2 ;*HLRZM SHOULD PLACE 0,,123456 INTO E. + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + CAIE 2,123456 ;PASS IF C(E) = 0,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT HLRZM PLACES C(AC-LEFT) INTO E-RIGHT AND +;PLACES 0 INTO E-LEFT. +;IN THIS CASE, C(AC) = 123456,,123422 AND C(E) = 707070,,717171 +;HENCE, THE RESULT IN E SHOULD BE 0,,123456. + +C66301: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + MOVEM 2,E66301 + HLRZM 1,E66301 ;*HLRZM SHOULD PLACE 0,,123456 INTO E. + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + MOVE 2,E66301 + CAIE 2,123456 ;PASS IF C(E) = 0,,123456 + STOP + + SKIPA ;GO TO NEXT TEST +E66301: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT HLRZS PLACES C(E-LEFT) INTO E-RIGHT AND +;PLACES 0 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC = 0, C(AC) = -1,,-1 AND C(E) = 123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 AND 0,,123456 +;RESPECTIVELY. + +C66400: SETO 0, ;PRELOAD AC WITH -1,,-1 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLRZS 0,7 ;*HLRZS SHOULD PLACE 0,,123456 INTO E + CAME 0,[-1] ;PASS IF C(AC) IS UNCHANGED + STOP + CAIE 7,123456 ;PASS IF C(E) = 0,,123456 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLRZS PLACES C(E-LEFT) INTO E-RIGHT AND +;PLACES 0 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC = 6, C(AC) = -1,,-1 AND C(E) = 123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,123456 AND 0123456 +;RESPECTIVELY. + +C66410: SETO 6, ;PRELOAD AC WITH -1,,-1 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLRZS 6,7 ;*HLRZS SHOULD PLACE 0,,123456 INTO + ;BOTH AC AND E + CAIE 6,123456 ;PASS IF C(AC) = 0,,123456 + STOP + CAIE 7,123456 ;PASS IF C(E) = 0,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT HLRZS PLACES C(E-LEFT) INTO E-RIGHT AND +;PLACES 0 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC = 6, C(AC) = -1,,-1 AND C(E) = 123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,123456 AND 0123456 +;RESPECTIVELY. + +C66411: SETO 6, ;PRELOAD AC WITH -1,,-1 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + MOVEM 7,E66411 + HLRZS 6,E66411 ;*HLRZS SHOULD PLACE 0,,123456 INTO + ;BOTH AC AND E + CAIE 6,123456 ;PASS IF C(AC) = 0,,123456 + STOP + MOVE 7,E66411 + CAIE 7,123456 ;PASS IF C(E) = 0,,123456 + STOP + + SKIPA ;GO TO NEXT TEST +E66411: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT HRROM PLACES C(AC-RIGHT) INTO E-RIGHT AND +;PLACES -1 INTO E-LEFT. IN THIS CASE, C(AC) = 123456,,701234 AND +;C(E) = 0. HENCE, THE RESULT IN E SHOULD BE -1,,601234. + +C66500: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + SETZM 6 ;CLEAR E + HRROM 5,6 ;*HRROM SHOULD PLACE -1,,701234 INTO E + CAME 5,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 6,[-1,,701234] ;PASS IF C(E) = -1,,701234 + STOP + + +;********** + +;THIS TEST VERIFIES THAT HRROS PLACES -1 INTO THE LEFT HALF OF E, BUT DOES NOT +;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,701234 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 +;AND -1,,701234 RESPECTIVELY. + +C66600: SETZ 0 ;PRELOAD AC WITH 0 + MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HRROS 0,17 ;HRROS SHOULD PLACE -1,,701234 INTO E + CAME 0,[0] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 17,[-1,,701234] ;PASS IF C(E)=-1,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT HRROS PLACES -1 INTO THE LEFT HALF OF E, BUT DOES NOT +;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=16, C(AC)=0 AND C(E)=123456,,701234 +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,701234 +;AND -1,,701234 RESPECTIVELY. + +C66610: SETZ 16, ;PRELOAD AC WITH 0 + MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HRROS 16,17 ;*HRROS SHOULD PLACE -1,,701234 INTO + ;BOTH AC AND E + CAME 16,[-1,,701234] ;PASS IF C(AC)=-1,,701234 + STOP + CAME 17,[-1,,701234] ;PASS IF C(E)=-1,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLRO PLACES C(E-LEFT) INTO AC-RIGHT AND +;PLACES -1 INTO AC-LEFT. IN THIS CASE, C(AC)=0 +;C(E)=765432,,107654. HENCE, THE RESULT IN THE AC SHOULD BE -1,,765432. + +C66700: SETZ 4, ;CLEAR AC + MOVE 5,[765432,,107654] ;PRELOAD E WITH 765432,,107654 + HLRO 4,5 ;*HLRO SHOULD PLACE -1,,765432 INTO THE AC + CAME 4,[-1,,765432] ;PASS IF C(AC)=-1,,765432 + STOP + CAME 5,[765432,,107654] ;PASS IF C(E) IS UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT HLROI PLACES -1,,0 INTO THE AC. +;IN THIS CASE, C(AC)=123456,,765432 AND E=070707. HENCE, THE +;RESULT IN THE AC SHOULD BE -1,,0 + +C67000: MOVE 3,[123456,,765432] ;PRELOAD AC WITH 123456,,765432 + HLROI 3,070707 ;*HLROI SHOULD PLACE -1,,0 INTO THE AC + CAME 3,[-1,,0] ;PASS IF C(AC)=-1,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLROM PLACES C(AC-LEFT) INTO E RIGHT AND +;PLACES -1 INTO E-LEFT +;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,,717171 +;HENCE, THE RESULT IN E SHOULD BE -1,,123456 + +C67100: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + HLROM 1,2 ;*HLROM SHOULD PLACE -1,,123456 INTO E + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[-1,,123456] ;PASS IF C(E)=-1,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT HLROS PLACES C(E-LEFT) INTO E-RIGHT AND +;PLACES -1 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 +;AND -1,,123456 RESPECTIVELY + +C67200: SETZ 0 ;PRELOAD AC WITH 0 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLROS 0,7 ;*HLROS SHOULD PLACE -1,,123456 INTO E + ; + CAIE 0,0 ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 7,[-1,,123456] ;PASS IF C(E)=-1,,123456 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLROS PLACES C(E-LEFT) INTO E-RIGHT AND +;PLACES -1 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123456,,701234. +;HENCE, THE RESULT IN AC AND E SHOULD BE -1,,123456 +;AND -1,,123456 RESPECTIVELY. + +C67210: SETZ 1, ;PRELOAD AC WITH 0 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLROS 1,7 ;*HLROS SHOULD PLACE -1,,123456 INTO + ;BOTH AC AND E + CAME 1,[-1,,123456] ;PASS IF C(AC)=-1,,123456 + STOP + CAME 7,[-1,,123456] ;PASS IF C(E)=-1,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT HRRES PLACES C(E-RIGHT) INTO E-RIGHT +;AND PLACES BIT 18 OF E INTO BITS 0 THRU 17 OF E. IF AC IS NON-ZERO, +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,701234 +;HENCE, THE RESULT IN AC AND E SHOULD BE 0 +;AND -1,,701234 RESPECTIVELY. + +C67300: SETZ 0, ;PRELOAD AC WITH 0 + MOVE 3,[123456,,701234] ;PRELOAD WITH 123456,,701234 + HRRES 0,3 ;HRRES SHOULD PLACE -1,,701234 INTO E + + SKIPE ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 3,[-1,,701234] ;PASS IF C(E)=-1,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT HRRES, PLACES C(E-RIGHT) INTO E-RIGHT +;AND PLACES BIT 18 OF E INTO BITS 0 THRU 17 OF E. IF AC IS NON-ZERO, +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,701234 +;AND -1,,701234 RESPECTIVELY. + +C67310: SETZ 1, ;PRELOAD AC WITH 0 + MOVE 3,[123456,,701234] ;PRELOAD WITH 123456,,701234 + HRRES 1,3 ;HRRES SHOULD PLACE -1,,701234 INTO + ;BOTH AC AND E + CAME 1,[-1,,701234] ;PASS IF C(AC)=-1,,701234 + STOP + CAME 3,[-1,,701234] ;PASS IF C(E)=-1,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT HLRES PLACES C(E-LEFT) INTO E-RIGHT +;AND PLACES BIT 0 OF E INTO BITS 0 THRU 17 OF E. IF AC IS +;NON-ZERO, THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E) 123456,,701234 +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 +;AND 0,,123456 RESPECTIVELY. + +C67400: SETO 0, ;PRELOAD AC WITH -1,,-1 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLRES 0,7 ;*HLRES SHOULD PLACE 0,,123456 INTO E + + CAME 0,[-1] ;PASS IF C(AC) IS UNCHANGED + STOP + CAIE 7,123456 ;PASS IF C(E)=0,,123456 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLRES PLACES C(E-LEFT) INTO E-RIGHT +;AND PLACES BIT 0 OF E INTO BITS 0 THRU 17 OF E. IF AC IS +;NON-ZERO, THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E) 123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,123456 +;AND 0,,123456 RESPECTIVELY. + +C67410: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLRES 1,7 ;*HLRES SHOULD PLACE 0,,123456 INTO + ;BOTH AC AND E + CAIE 1,123456 ;PASS IF C(AC)=0,,123456 + STOP + CAIE 7,123456 ;PASS IF C(E)=0,,123456 + STOP + +;********** +SUBTTL TEST OF MSCL LOGICAL TEST INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT TRNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TRNE SHOULD SKIP THE NEXT INSTRUCTION. THE AC IS ALSO +;CHECKED FOR NO MODIFICATION. + +C67500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNE 17,3 ;*TRNE SHOULD SKIP THE NEXT INSTRUCTION + STOP + CAME 17,[123456,,701234] ;PASS IF C AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TRNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRNE SHOULD NOT SKIP THE NEXT INSTRUCTION. THE AC IS ALSO +;CHECKED FOR NO MODIFICATION. + +C67510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNE 16,300 ;*TRNE SHOULD NOT SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF TRNE DID NOT SKIP + STOP + CAME 16,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TLNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLNE SHOULD SKIP THE NEXT INSTRUCTION, THE AC IS ALSO +;CHECKED FOR NO MODIFICATION. + +C67600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNE 15,300 ;*TLNE CHOULD SKIP + STOP + CAME 15,[123456,,701234] ;PASS IF C(AC) IS UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TLNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLNE SHOULD NOT SKIP THE NEXT INSTRUCTION, THE AC IS ALSO +;CHECKED FOR NO MODIFICATION + +C67610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNE 14,3 ;*TLNE SHOULD NOT SKIP + SKIPA ;PASS IF TLNE DID NOT SKIP + STOP + CAME 14,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TRNA ALWAYS SKIPS THE NEXT SEQUENTIAL +;INSTRUCTION. HENCE, TRNA IS INDEPENDENT OF BOTH C(A) AND E +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRNA SHOULD SKIP THENEXT INSTRUCTION AND NOT ALTER C(AC). + +C67700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNA 13,3 ;*TRNA SHOULD ALWAYS SKIP + STOP + CAME 13,[123456,,701234] ;PASS IFC(AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFhES THAT TRNA ALWAYS SKIPS THE NEXT SEQUENTIAL +;INSTRUCTION. HENCE, TRNA IS INDEPENDENT OF BOTH C(A) AND E. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRNA SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C67710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNA 12,300 ;*TRNA SHOQLD ALWAYS SKIP + STOP + CAME 12,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIaS THAT TLNA ALWAYS SKIPS THE NEXT SEQUENTIAL +;INSTRUCTION. HENCE, TLNA IS INDEPENDENt OF BOTH C(AC) AND E. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLNA SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNA 11,3 ;*TLNA SHOULD ALWAYS SKIP + STOP + CAME 11,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TLNA ALWAYS SKIPS THE NEXT SEQUENTIAL +;INSTRUCTION. HENCE, TLNA IS INDEPENDENT OF BOTH C(AC) AND E. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TLNA SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70010: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNA 10,300 ;*TLNA SHOULD ALWAYS SKIP + STOP + CAME 10,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TRNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN +;E ARE ZERO. IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TRNN SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNN 7,300 ;*TRNN SHOULD SKIP + SToP + CAME 7,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TRNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN +;E ARE ZERO. IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRNN SHoULD NOT SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNN 6,3 ;*TRNN SHOULD NOT SKIP + SKIPA ;PASS IF TRNN DID NOT SKIP + STOP + CAME 6,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TLNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLNN SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNN 5,3 ;*TLNN SHOULD SKIP + STOP + CAME 5,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES thAT TLNN SkIPS THE NEXT SEQUENTIAL INSTRUcTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TLNN SHOULD NOT SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNN 4,300 ;*TLNN SHOULD NOT SKIP + SKIPA ;PASS IF TLNN DOES NOT SKIP + STOP + CAME 4,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH +;BOTH HALVES SNAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSNE SHOULD SKIP THE NEXT INSTRUCtION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED. + +C70300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 4,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSNE 3,4 ;*TSNE SHOULD SKIP + STOP + CAME 3,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 4,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH +;BOTH HALVES SNAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654323 +;HENCE, TSNE SHOULD NOT SKIP THE NEXT INSTRUCTION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED. + +C70310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 3,[76543,,654323] ;PRELOAD E WITH 076543,,654323 + TSNE 2,3 ;*TSNE SHOULD NOT SKIP + SKIPA ;PASS IF TSOE DId NOT SKIP + STOP + CAME 2,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 3,[76543,,654323] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSNA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;NEITHER AC NOR E ARE AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSNA SHOULD SKIP THE NEXT INSTRUCTION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + +C70400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 2,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSNA 1,2 ;*TSNA SHOULD SKIP + STOP + CAME 1,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSNA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;NEITHER AC NOR E ARE EFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654323 +;HENCE, TSNA SHOULD SKIP THE NEXT INSTRUCTION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + +C70410: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 1,[76543,,654323] ;PRELOAD E WITH 076543,,654323 + TSNA 0,1 ;*TSNA SHOULD SKIP + STOP + CAME 1,[76543,,654323] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL HITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH +;BOTH HALVES SWAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076547,,654321 +;HENCE, TSNN SHOULD SKIP THE NEXT INSTRUCTION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + +C70500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 0,[76547,,654321] ;PRELOAD E WITH 076547,,654321 + TSNN 17,0 ;*TSNN SHOULD SKIP + STOP + CAME 17,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 0,[76547,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH +;BOTH HALVES SWAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSNN SHOULD NOT SKIP THE NEXT INSTRUCTION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + +C70510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 17,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSNN 16,17 ;*TSNN SHOULD NOT SKIP + SKIPA ;PASS IF TSNN DID NOT SKIP + STOP + CAME 16,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 17,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TRZ CHANGES ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701234 + +C70600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234] + TRZ 12,3 ;*TRZ SHOULD PLACE 123456,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TRZ DOES NOT SKIP + STOP + CAME 15,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRZ CHANGES ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701034 + +C70610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRZ 14,300 ;*TRZ SHOULD PLACE 123456,,701234 INTO + ;THE ACAND NOT SKIP + SKIPA ;PASS IF TRX DOES NOT SKIP + STOP + CAME 14,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + STOP + +;********** +;THIS TEST VERIFIES THAT TLZ CHANGES ALL BITS IN THE AC-LEFT WHICH +;CORRESPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. +;IN THIS CACE, C(AC)=123456,,701234 AND E=300 +;HENCE, THE RESULT IN THE AC SHOUL BE 123456,,701234 + +C70700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZ 13,300 ;*TLZ SHOULD PLACE 123456,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TLZ DOES NOT SKIP + STOP + CAME 13,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLZ CHANGES ALL BITS IN THE AC-LEFT WHICH +;CORRSPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, THE RESULT IN THE AC SHOULD BE 123454,,701234 + +C70710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZ 12,3 ;*TLZ SHOULD PLACE 123454,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TLZ DOES NOT SKIP + STOP + CAME 12,[123454,,701234] ;PASS IF C(AC)=123454,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TRZE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701234 + +C71000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRZE 11,3 ;*TRZE SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 11,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRSPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRZE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOUDL BE 123456,,701034 + +C71010: MOVE 10,[123456,,701234] ;PRELOAD AC WIT@ 123456,,701234 + TRZE 10,300 ;*TRZE SHOULD PLACE 123456,,701034 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TRZE DOES NOT SKIP + STOP + CAME 10,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + STOP + +;********** +;THIS TEST VERIFIES THAT TLZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLZE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701234 + +C71100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZE 7,300 ;*TLZE SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 7,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TLZE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123454,,701234 + +C71110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZE 6,3 ;*TLZE SHOULD PLACE 123454,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TLZE DOES NOT SKIP + STOP + CAME 6,[123454,,701234] ;PASS IF C(AC)=123454,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701234 + +C71200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRZA 5,3 ;*TRZA SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 5,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TRZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701234. + +C71210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRZA 4,300 ;*TRZA SHOULD SKIP AND + ;PLACE 123456,,701034 INTO THE AC + STOP + CAME 4,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + STOP + +;********** +;THIS TEST VERIFIES THAT TLZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRQCTION +;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123454,,701234. + +C71300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZA 3,3 ;*TLZA SHOULD SKIP AND + ;PLACE 123454,,701234 INTO THE AC + STOP + CAME 3,[123454,,701234] ;PASS IF C(AC)=123454,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TLZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701234. + +C71310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZA 2,300 ;*TLZA SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 2,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TRZN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701034. + +C71400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRZN 1,300 ;*TRZN SHOULD SKIP AND + ;PLACE 123456,,701034 INTO THE AC + STOP + CAME 1,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRZN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701234. + +C71410: MOVE 0,[123456,,701234] ;PRELOAD AC WATH 123456,,701234 + TRZN 0,3 ;*TRZN SHOULD PLACE 123456,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TRZN DOES NOT SKIP + STOP + CAME 0,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TLZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLZN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123454,,701234. + +C71500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZN 17,3 ;TLZN SHOULD SKIP AND + ;PLACE 123454,,701234 INTO THE AC + STOP + CAME 17,[123454,,701234] ;PASS IF C(AC)=123454,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BIPS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TLZN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701234. + +C71510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZN 16,300 ;*TLZN SHOULD PLACE 123456,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TLZN DOES NOT SKIP + STOP + CAME 16,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TSZ CLEARS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES +;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321. +;HENCE, TSZ SHOULD NOT SKIP AND C(AC) SHOULD BE 123456,,701234. + +C71600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 16,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + TSZ 15,16 ;*TSZ SHOULD NOT SKIP AND + ;PLACE 123456,,701234 INTO THE AC + SKIPA ;PASS IF TSZ DID NOT SKIP + STOP + CAME 15,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + CAME 16,[76543,,654321] ;PASS IF C(E) UNCHANCED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSZ CLEARS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES +;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070. +;HENCE, TSZ SHOULD NOT SKIP AND C(AC) SHOULD BE 020406,,501210. + +C71610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 15,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + TSZ 14,15 ;*TSZ SHOULD NOT SKIP AND + ;PLACE 020406,,501210 INTO THE AC + SKIPA ;PASS IF TSZ DID NOT SKIP + STOP + CAME 14,[020406,,501210] ;PASS IF C(AC)=020406,,501210 + STOP + CAME 15,[252525,,707070] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E). +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543. +;HENCE, TDZE SHOULD SKIP AND THE RESULT IN THE AC +;SHOULD BE 123456,,701234. C(E) IS NOT AFFECTED. + +C71700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 14,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDZE 13,14 ;*TDZE SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 13,[123456,,701234] ;PASS IF C(AC)=123456,,701234] + STOP + CAME 14,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)= 123456,,701234 AND C(E)= 754321,,076543 +;HENCE, TDZE SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE 023456,,701234 C(E) IS NOT AFFECTED + +C71710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 13,[754321,,076543] ;PRELOAD E WITH 754321,,076543 + TDZE 12,13 ;*TDZE SHOULD NOT SKIP AND + ;PLACE 023456,,701234 INTO THE AC + SKIPA ;PASS IF TDZE DOES NOT SKIP + STOP + CAME 12,[023456,,701234] ;PASS IF C(AC)= 023456,,701234 + STOP + CAME 13,[754321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRECPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)= 123456,,701234 AND C(E)= 076543,,654321 +;HENCE, TSZE SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE 123456,,701234 C(E) IS NOT AFFECTED + +C72000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 12,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + TSZE 11,12 ;*TSZE SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 11,[123456,,701234] ;PASS IF C(AC)= 123456,,701234 + STOP + CAME 12,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C (E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO +;IN THIS CASE, C(AC)= 123456,,701234 AND C(E)= 076543,,657321 +;HENCE, TSZE SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE 120456,,701234 C(E) IS NOT AFFECTED + +C72010: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 11,[76543,,657321] ;PRELOAD E WITH 076543,,654321 + TSZE 10,11 ;*TSZE SHOULD NOT SKIP AND + ;PLACE 120456,,701234 INTO THE AC + SKIPA ;PASS IF TSZE DID NOT SKIP + STOP + CAME 10,[120456,,701234] ;PASS IF C(AC)= 120456,,701234 + STOP + CAME 11,[76543,,657321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDZA CLEARS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) AND ALWAYS +;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)= 654321,,076543 +;HENCE, TD2A SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 123456,,701234 + +C72100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 10,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDZA 7,10 ;*TDZA SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 7,[123456,,701234] ;PASS IF C(AC)= 123456,,701234 + STOP + CAME 10,[654321,,076543] ;PASS IF C(AC)=123456,,701234 + STOP + CAME 10,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDZA CLEARS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 +;HENCE, TDZA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 121052,,000204 + +C72110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 7,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + TDZA 6,7 ;*TDZA SHOULD SKIP AND + ;PLACE 121052,,000204 INTO THE AC + STOP + CAME 6,[121052,,000204] ;PASS IF C(AC)=121052,,000204 + STOP + CAME 7,[252525,,707070] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES TH`T TSZA CLEARS AHL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSZA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 123456,,701234 + +C72200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 6,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + TSZA 5,6 ;*TSZA SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 5,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + CAME 6,[076543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSZA CLEARS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=701234,,123456 +;HENCE, TSZA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 0 + +C72210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 5,[701234,,123456] ;PRELOAD E WITH 701234,,123456 + TSZA 4,5 ;*TSZA SHOULD SKIP AND + ;PLACE 0 INTO THE AC + STOP + CAME 4,[0] ;PASS IF C(AC)=0 + STOP + CAME 5,[701234,,123456] ;PASS IF C(E) UNCHANGED + SToP + +;********** +;THIS TEST VERIFIES THAT TDZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGEDTO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076547 +;HENCE, TDZN SHOULD SKIP AND THE RESULT IN THE AC +;SHOULD BE 123456(,701230. C(E) IS NOT AFFECTED. + +C72300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 4,[654321,,76547] ;PRELOAD E WITH 654321,,076547 + TDZN 3,4 ;*TDZN SHoULD SKIP AND + ;PLACE 123456,,701230 INTO THE AC + STOP + CAME 3,[123456,,701230] ;PASS IF C(AC)=123456,,701230 + STOP + CAME 4,[654321,,076547] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;HENCE, TDZN SHOULD NOT SKIP AND THE RESULT IN THE AC +;SHOULD BE 123456,,701234. C(E) IS NOT AFFECTED. + +C72310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 3,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDZN 2,3 ;*TDZN SHOULD NOT SKIP AND + ;PLACE 123456,,701234 INTO THE AC + SKIPA ;PASS IF TDZN DOES NOT SKIP + STOP + CAME 2,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + CAME 3,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THaT TSZN SKIPS THE NEXT SEQQENPIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=077543,,654321. +;HENCE, TSZN SHOULD SKIP AND THE RESULT IN THE AC +;SHOULD BE 123456,,700234. C(E) IS NOT AFFECTED. + +C72400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 2,[077543,,654321] ;PRELOAD E WITH 077543,,654321 + TSZN 1,2 ;*TSZN SHOULD SKIP AND + ;PLACE 123456,,700234 INTO THE AC + STOP + CAME 1,[123456,,700234] ;PASS IF C(AC)=123456,,700234 + STOP + CAME 2,[77543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321.- +;HENCE, TSZN SHOULD NOT SKIP AND THE RESULT IN THE AC +;SHOULD BE 123456,,701234. C(E) IS NOT AFFECTED. + +C72410: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 1,[76543,,654321] ;PRElOAD E WITH 076543,,654321 + TSZN 0,1 ;*TSZN SHOULD NOT SKIP AND + ;PLACE 123456,,701234 INTO THE AC + SKIPA ;PASS IF TSZN DOES NOT SKIP + STOP + CAME 0,[123456,,701234] ;PASS IF C(AC)=123456,,701234] + STOP + CAME 1,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TRC COMPLEMENTS ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, THE RESULT IN THE AC SHOUHD BE 123456,,701237 + +C72500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRC 17,3 ;*TRC SHOULD NOT SKIP AND + ;PLACE 123456,,701237 INTO THE AC + SKIPA ;PASS IF TRC DID NOT SKIP + STOP + CAME 17,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRC COMPLEMENTS ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701134 + +C72510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRC 16,300 ;*TRC SHOULD NOT SKIP AND + ;PLACE 123456,,701134 INTO THE AC + SKIPA ;PASS IF TRC DID NOT SKIP + STOP + CAME 16,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + STOP + +;********** +;THIS TEST VERIFIES THAT TLC COMPLEMENTS ALL BITS IN THE AC-LEFT WHICH +;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, ThE RESULT IN THE AC SHOULD BE 123756,,701234. + +C72600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLC 15,300 ;*TLC SHOULD NOT SKIP AND + ;PLACE 123756,,701234 INTO THE AC + SKIPA ;PASS IF TLC DID NOT SKIP + STOP + CAME 15,[123756,,701234] ;PASS IF A(AC)=123756,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLC COMPLEMENTS ALL BITS IN THE AC-LEFT WHICH +;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, THE RESULT IN THE AC SHOULD BE 123455,,701234. + +C72610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLC 14,3 ;*TLC SHOULD NOT SKIP AND + ;PLACE 123455,,701234 INTO THE AC + SKIPA ;PASS IF TLC DID NOT SKIP + STOP + CAME 14,[123455,,701234] ;PASS IF C(AC)=123455,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRCE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701237. + +C72700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCE 13,3 ;*TRCE SHOULD SKIP AND + ;PLACE 123456,,701237 INTO ThE AC + STOP + CAME 13,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TRCE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701134 + +C72710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCE 12,300 ;*TRCE SHOULD NOT SKIP AND + ;PLACE 123456,,701134 INTO THE AC + SKIPA ;PASS IF TRCE DID NOT SKIP + STOP + CAME 12,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + STOP + +;********** +;THIS TEST VERIFIES THAT TLCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TLCE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123756,,701234. + +C73000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCE 11,300 ;*TLCE SHOULD SKIP AND + ;PLACE 123756,,701234 INTO THE AC + STOP + CAME 11,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLCE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123455,,701234. + +C73010: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCE 10,3 ;*TLCE SHOULD NOT SKIP AND + ;PLACE 123455,,701234 INTO THE AC + SKIPA ;PASS IF TLCE DID NOT SKIP + STOP + CAME 10,[123455,,701234] ;PASS IF C(AC)=123455,,701234] + STOP + +;********** +;THIS TEST VERIFIES THAT TRCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND COMPLEMENTS ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701237. + +C73100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCA 7,3 ;*TRCA SHOULD SKIP AND + ;PLACE 123456,,701237 INTO THE AC + STOP + CAME 7,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND COMPLEMENTS ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701134 + +C73110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCA 6,300 ;*TRCA SHOULD SKIP AND + ;PLACE 123456,,701134 INTO THE AC + STOP + CAME 6,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + STOP + +;********** +;THIS TEST VERIFIES THAT TLCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND COMPLEMENTS ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TLCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD 123456,,701234 + +C73200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCA 5,3 ;*TLCA SHOULD SKIP AND + ;PLACE 12345,,701234 INTO THE AC + STOP + CAME 5,[123455,,701234] ;PASS IF C(AC)=123455,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND COMPLEMENTS ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123756,,701234 + +C73210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCA 4,300 ;*TLCA SHOULD SKIP AND + ;PLACE 123756,,701234 INTO THE AC + STOP + CAME 4,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRCN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND RESULT IN THE AC SHOULD BE 123456,,701134 + +C73300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCN 3,300 ;*SHOULD SKIP AND + ;PLACE 123456,,701134 INTO THE AC + STOP + CAME 3,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TRCN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701237 + +C73310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCN 2,3 ;*TRCN SHOULD NOT SKIP AND + ;PLACE 123456,,701237 INTO THE AC + SKIPA ;PASS IF TRCN DID NOT SKIP + STOP + CAME 2,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** +;THIS TEST VERIFIES THAT TLCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED +;IN THE CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TLCN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701234 + +C73400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCN 1,3 ;*TLCN SHOULD SKIP AND + ;PLACE 123455,701234 INTO THE AC + STOP + CAME 1,[123455,,701234] ;PASS IF C(AC)=123455,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZER. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLCN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123756,,701234 + +C73410: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCN 0,300 ;*TLCN SHOULD NOT SKIP AND + ;PLACE 123756,,701234 INTO THE AC + SKIPA ;PASS IF TLCN DID NOT SKIP + STOP + CAME 0,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TSL COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES +;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)6543,,654321 +;HENCE, TSC SHOULD NOT SKIP AND C(AC) SHOULD BE -1,,-1 + +C73500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 0,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + TSC 17,0 ;*TSC SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TSC DOES NOT SKIP + STOP + CAME 17,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 0,[076543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSC COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES +;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 +;HENCE, TSC SHOULD NOT SKIP AND C(AC) SHOULD BE 624426,,553711 + +C73510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 17,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + TSC 16,17 ;*TSC SHOULD NOT SKIP AND + ;PLACE 624426,,553711 INTO THE AC + SKIPA ;PASS IF TSC DOES NOT SKIP + STOP + CAME 16,[624426,,553711] ;PASS IF C(AC)=624426,,553711 + STOP + CAME 17,[252525,,707070] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;HENCE, TDCE SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C73600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 16,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDCE 15,16 ;*TDCE SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 15,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 16,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E) 754321,,076543 +;HENCE, TDCE SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE 677777,,-1 C(E) IS NOT AFFECTED. + +C73610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 15,[754321,,076543] ;PRELOAD E WITH 754321,,076543 + TDCE 14,15 ;*TDCE SHOULD NOT SKIP AND + ;PLACE 677777,,-1 INTO THE AC + SKIPA ;PASS IF TDCE DOES NOT SKIP + STOP + CAME 14,[677777,,-1] ;PASS IF C(AC)=677777,,-1 + STOP + CAME 15,[754321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSCE SHOULD SKIP AND THE RESULT IN THE AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C73700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 14,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSCE 13,14 ;*TSCE SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 13,[-1] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,701234 AND C(E)=076543,,657321 +;HENCE, TSCE SHOULD NOT SKIP AND THE RESULT IN THE AC +;SHOULD BE 774777,,-1. C(E) IS NOT AFFECTED. + +C73710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 13,[76543,,657321] ;PRELOAD E WITH 076543,,657321 + TSCE 12,13 ;*TSCE HOULD NOT SKIP AND + ;PLACE 774777,,-1 INTO THE AC + SKIPA ;PASS IF TSCE DOES NOT SKIP + STOP + CAME 12,[774777,,-1] ;PASS IF C(AC)=774777,,-1 + STOP + CAME 13,[76543,,657321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDCA COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;HENCE, TDCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + +C74000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 12,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDCA 11,12 ;*TDCA SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 11,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 12,[654321,,76543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDCA COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) AND SLWAYS +;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 +;HENCE, TDCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 371173,,006244 + +C74100: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 11,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + TDCA 10,11 ;*TDCA SHOULD SKP AND + ;PLACE 371173,,006244 INTO THE AC + STOP + CAME 10,[371173,,6244] ;PASS IF C(AC)=371173,,006244 + STOP + CAME 11,[252525,,707070] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSCA COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + +C74200: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 10,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + TSCA 7,10 ;*TSCA CHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 7,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 10,[076543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSCA COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=701234,,123456 +;HENCE, TSCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 0 + +C74210: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 7,[701234,,123456] ;PRELOAD E WITH 701234,,123456 + TSCA 6,7 ;*TSCA SHOULD SKIP AND + ;PLACE 0 INTO THE AC + STOP + CAME 6,[0] ;PASS IF C(AC)=0 + STOP + CAME 7,[701234,,123456] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THE CASE, C(AC)=123456,,701234 AND C(E)=654321,,076547 +;HENCE, TDCN SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,777773 C(E) IS NOT AFFECTED + +C74300: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 6,[654321,,76547] ;PRELOAD E WITH 654321,,076547 + TDCN 5,6 ;*TDCN SHOULD SKIP AND + ;PLACE -1,,777773 INTO THE AC + STOP + CAME 5,[-1,,777773] ;PASS IF C(AC)=-1,777773 + STOP + CAME 6,[654321,,76547] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;HENCE, TDCN SHOULD NOT SKIP AND THE REUSLT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C74310: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 5,[654321,,76543] ;PRELOAD E WITH 654321,,076543 + TDCN 4,5 ;*TDCN SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TDCN DOES NOT SKIP + STOP + CAME 4,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 5,[654321,,76543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=077543,,654321 +;HENCE, TSCN SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,776777. C(E) IS NOT AFFECTED + +C74400: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 4,[77543,,654321] ;PRELOAD E WITH 077543,,654321 + TSCN 3,4 ;*TSCN SHOULD SKIP AND + ;PLACE -1,,776777 INTO THE AC + STOP + CAME 3,[-1,,776777] ;PASS IF C(AC)=-1,776777 + STOP + CAME 4,[77543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTD +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSCN SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1. C(E) IS NOT AFFECTED. + +C74410: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 3,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSCN 2,3 ;*TSCN SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TSCN DOES NOT SKIP + STOP + CAME 2,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 3,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TRO CHANGES ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E TO ONES AND DOES ANT SKIP +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701237 + +C74500: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRO 1,3 ;*TRO SHOULD NOT SKIP AND + ;PLACE 123456,,701237 INTO THE AC + SKIPA ;PASS IF TRO DID NOT SKIP + STOP + CAME 1,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRO CHANGES ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E TO ONES AND DOES NOT SKIP +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701224 + +C74510: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRO 0,300 ;*TRO SHOULD NOT SKIP AND + ;PLACE 123456,,701334 INTO THE AC + SKIPA ;PASS IF TRO DID NOT SKIP + STOP + CAME 0,[123456,,701334] ;PASS IF C(AC)=123456,,701334 + STOP + +;********** +;THIS TEST VERIFIES THAT TLO CHANGES ALL BITS IN THE AC-LEFT WHICH +;CORRESPOND TO 1'S IN E TO ONES AND DOES NOT SKIP +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, THE RESULT IN THE AC SHOULD BE 123756,,701234 + +C74600: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLO 17,300 ;*TLO SHOULD NOT SKIP AND + ;PLACE 123756,,701234 INTO THE AC + SKIPA ;PASS IF TLO DID NOT SKIP + STOP + CAME 17,[123756,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLO CHANGES ALL BITS IN THE AC-LEFT WHICH +;CORRESPOND TO 1'S IN E TO ONES AND DOES NOT SKIP +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, THE RESULT IN THE AC SHOULD BE 123457,,701234 + +C74610: MOVE 16,[123456,,70234] ;PRELOAD AC WITH 123456,,701234 + TLO 16,3 ;*TLO SHOULD NOT SKIP AND + ;PLACE 123457,,701234 INTO THE AC + SKIPA ;PASS IF DID NOT SKIP + STOP + CAME 16,[123457,,70234] ;PASS IF C(AC)=123457,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TROE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TROE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND RESULT IN THE AC SHOUD BE 123456,,701237 + +C74700: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TROE 15,3 ;TROE SHOULD SKIP AND + ;PLACE 123456,,701237 IN TO THE AC + STOP + CAME 15,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TROE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TROE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701334 + +C74710: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TROE 14,300 ;*TROE SHOULD NOT SKIP AND + ;PLACE 123456,,701224 INTO THE AC + SKIPA ;PASS IF DID NOT SKIP + STOP + CAME 14,[123456,,701334] ;PASS IF C(AC)=123456,,701334 + STOP + +;********** +;THIS TEST VERIFIES THAT TLOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE TEN CHANGED TO ONES +;IN THES CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLOE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123756,,701234 + +C75000: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLOE 13,300 ;*TLOE SOULD SKIP AND + ;PLAND 123756,,701234 INTO THE AC + STOP + CAME 13,[123756,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;******** + +;THIS TEST VERIFIES THAT TLOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TLOE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123457,,701234 + +C75010: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLOE 12,3 ;*TLOE SHOULD NOT SKIP AND + ;PLACE 123457,,701234 INTO THE AC + SKIPA ;PASS IF TLOE DID NOT SKIP + STOP + CAME 12,[123457,,701234] ;PASS IF C(AC)=123457,,701234 + STOP + +;******* +;THIS TEST VERIFIES THAT TROA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTUCTION +;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TROA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701237 + +C75100: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TROA 11,3 ;*TROA SHOULD SKIP AND + ;PLACE 123456,,701237 + STOP + CAME 11,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TROA ALWAYS SKIPS THE NEXT SEQUENTAIL INSTRUCTION +;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TROA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701334 + +C75110: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TROA 10,300 ;*TROA SHOULD SKIP AND + ;PLACE 123456,,701334 INTO THE AC + STOP + CAME 10,[123456,,701334] ;PASS IF C (AC)=123456,,701334 + STOP + +;********** +;THIS TEST VERIFIES THAT TLOA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTUCTION +;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND 1'S IN E TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TLOA SHOULD SKIP THE NEXT INSTRUCTION AND RESULT IN +;THE AC SHOULD BE 123457,,701234 + +C75200: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLOA 7,3 ;*TLOA SHOULD SKIP AND + ;PLACE 123457,,701234 INTO THE AC + STOP + CAME 7,[123457,,701234] ;PASS IF C(AC)=123457,,701234] + STOP + +;********** + +;THIS TEST VERIFIES THAT TLOA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLOA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123756,,701234 + +C75210: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLOA 6,300 ;*TLOA SHOULD SKIP AND + ;PLACE 123756,,701234 INTO THE AC + STOP + CAME 6,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRON SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701334 + +C75300: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRON 5,300 ;*TRON SHOULD SKIP AND + ;PLACE 123456,,701334 INTO THE AC + STOP + CAME 5,[123456,,701334] ;PASS IF C(AC)=123456,,701334 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRON SKIPS THE NEXT SEQUENTIAL INSTUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TRON SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701237 + +C75310: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRON 4,3 ;*TRON SHOULD NOT SKIP AND + ;PLACE 123456,,701237 INTO THE AC + SKIPA ;PASS IF TRON DID NOT SKIP + STOP + CAME 4,[123456,,701237] ;PASS IF C(AC)=123456,701237 + STOP + +;********** +;THIS TEST VERIFIES THAT TLON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)-123456,,701234 AND E=3 +;HENCE, TLON SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123457,,701234 + +C75400: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLON 3,3 ;*TLON SHOULD SKIP AND + ;PLACE 123457,,701234 INTO THE AC + STOP + CAME 3,[123457,,701234] ;PASS IF C(AC)=123457,,701234 + STOP + +;******* + +;THIS TEST VERIFIES THAT TLON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLON SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123756,,701234 + +C75410: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLON 2,300 ;*TLON SHOULD NOT SKIP AND + ;PLACE 123756,,701234 INTO THE AC + SKIPA ;PASS IF TLON DID NOT SKIP + STOP + CAME 2,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TDOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E)ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;HENCE, TDOE SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C75500: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 2,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDOE 1,2 ;*TDOE SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 2,[654321,,76543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDOE SKIPS THE NEXT SEQUENTAIL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=754321,,076543 +;HENCE, TDOE SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTD + +C75510: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 1,[754321,,76543] ;PRELOAD E WITH 754321,,076543 + TDOE 0,1 ;*TDOE SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TDOE DOES NOT SKIP + STOP + CAME 0,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 1,[754321,,76543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSOE SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1. C(E) IS NOT AFFECTED + +C75600: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 0,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSOE 17,0 ;*TSOE SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 17,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 0,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,657321 +;HENCE, TSOE SHOULD NOT SKIP AND THE RESULT IN THE AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED. + +C75610: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,701234 + MOVE 17,[76543,,657321] ;PRELOAD E WITH 076543,,657321 + TSOE 16,17 ;*TSOE SHOULD NOT SKIP AND + ;*TSOE SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF SKIP + STOP + CAME 16,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 17,[76543,,657321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDOA PLACES ONES INTO ALL BITS OF THE AC WHICH +;CORRRESPOND TO 1'S IN C(E) AND ALWAYS +;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)= 654321,,076543 +;HENCE, TDOA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + +C75700: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 16,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDOA 15,16 ;*TDOA SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 15,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 16,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDOA PLACE ONES ALL BIT OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) AND ALWAYS +;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 +;HENCE, TDOA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 373577,,707274 + +C75710: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 15,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + TDOA 14,15 ;*TDOA SHOULD SKIP AND + ;PLACE 373577,707274 ONTO THE AC + STOP + CAME 14,[373577,,707274] ;PASS IF C(AC)=373577,,707274 + STOP + CAME 15,[252525,,707070] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSOA PLACE ONES INTO ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSOA SHOULD SLAWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + +C76000: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 14,[176543,,654321] ;PRELOAD E WITH 076543,,654321 + TSOA 13,14 ;*TSOA SHOULD SKIP AND + ;PLACE -1,,-1 ONTO THE AC + STOP + CAME 13,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 14,[176543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSOA PLACES ONES INTO ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=701234,,123456 +;HENCE, TSOA SHOULD SLWAYS SKIP AND C(AC) SHOULD BE 123456,,701234 + +C76010: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 13,[701234,,123456] ;PRELOAD E WITH 701234,123456 + TSOA 12,13 ;*TSOA SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 12,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + CAME 13,[701234,,123456] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076547 +;HENCE, TDON SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C76100: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 12,[654321,,076547] ;PRELOAD E WITH 654321,,076547 + TDON 11,12 ;*TDON SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 11,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 12,[654321,,076547] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;THENC, TDON SHOULD NOT SKIP AND THE RESULT IN TH AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C76110: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 11,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDON 10,11 ;*TDON SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TDON DOES NOT SKIP + STOP + CAME 10,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 11,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVE SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=077543,,654321 +;HENCE, TSON SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C76200: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 10,[77543,,654321] ;PRELOAD E WITH 077543,,654321] + TSON 7,10 ;*TSON HOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 7,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 10,[77543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSON SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C76210: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 7,[76543,,654321] ;PRELOAD E WITH 076543MM654321 + TSON 6,7 ;*TSON SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TSON DOES NOT SKIP + STOP + CAME 6,[-1] ;PASS IF C(AC)-=1,,-1 + STOP + CAME 7,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + ;JRST BEGEND diff --git a/apps/pdp10/diags/klad/dakaf/DAKAFM.MAC.txt b/apps/pdp10/diags/klad/dakaf/DAKAFM.MAC.txt new file mode 100644 index 000000000..6874af270 --- /dev/null +++ b/apps/pdp10/diags/klad/dakaf/DAKAFM.MAC.txt @@ -0,0 +1,3207 @@ +SUBTTL DIAGNOSTIC SECTION + +START: SETZM USER# ;CLEAR USER CONTROL WORD + JSP 0,.+1 ;GET FLAGS + TLNE USERF ;IN USER MODE? + SETOM USER ;YES, SET USER CONTROL WORD + SKIPN MONFLG ;SPECIAL USER MODE? + SETZM USER ;YES, CLEAR USER CONTROL WORD + SKIPN USER + JRST STARTA + SKIPL MONCTL + TTCALL 3,PGMNAM ;MENTION OUR NAME + JRST STARTA + +PGMNAM: ASCIZ/ +PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (6) [DAKAF] +/ + +STARTA: JRST .+1 +SUBTTL TEST OF MSCL BOOLEAN INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT SETZI CLEARS THE AC AND DOES NOT AFFECT E. +;FIRST, AC AND E ARE PRELOADED WITH -1,,-1, THEN, SETZI IS EXECUTED. +;AC IS THEN CHECKED FOR 0 AND E IS CHECKED FOR -1,,-1 + +C56100: SETO 1, ;PRELOAD AC WITH -1,,-1 + SETO 2, ;PRELOAD E WITH -1,,-1 + SETZI 1,2 ;*SETZI SHOULD CLEAR THE AC + SKIPE 1 ;PASS IF C(AC)=0 + STOP + CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETZM CLEARS C(E) AND DOES NOT AFFECT C(AC) +;FIRST, AC AND E ARE PRELOADED WITH -1,,-1; THEN SETZM IS EXECUTED. +;AC IS THEN CHECKED FOR -1,,-1 AND E IS CHECKED FOR 0. + +C56200: SETO 1, ;PRELOAD AC WITH -1,,-1 + SETO 2, ;PRELOAD E WITH -1,,-1 + SETZM 1,2 ;*SETZM SHOULD CLEAR E + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + SKIPE 2 ;PASS IF C(E)=0 + STOP + +;********** +;THIS TEST VERIFIES THAT SETOI PLACES ALL ONES INTO THE AC. +;FIRST, THE AC AND E ARE CLEARED; THEN, SETOI IS EXECUTED. +;AC AND E ARE CHECKED FOR -1,,-1 AND 0 RESPECTIVELY + +C56300: SETZB 1,2 ;CLEAR AC,E + SETOI 1,2 ;*SETOI SHOULD PLACE -1,,-1 INTO THE AC + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + SKIPE 2 ;PASS IF C(E)=0 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETOM PLACES ALL ONES INTO E +;FIRST, THE AC AND E ARE CLEARED, THEN SETOM IS EXECUTED. +;AC AND E ARE THEN CHECKED FOR 0 AND -1,,-1 RESPECTIVELY. + +C56400: SETZB 1,2 ;CLEAR AC,E + SETOM 1,2 ;*SETOM SHOULD PLACE -1,,-1 INTO E + SKIPE 1 ;PASS IF C(AC)=0 + STOP + CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT SETOB PLACES ALL ONES INTO BOTH AC AND E. +;FIRST, BOTH AC AND E ARE CLEARED; THEN, SETOB IS EXECUTED. +;AC AND E ARE BOTH CHECKED FOR -1,,-1 + +C56500: SETZB 1,2 ;CLEAR AC,E + SETOB 1,2 ;*SETOB SHOULD PUT -1,,-1 INTO BOTH AC AND E + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 2,[-1] ;PASS IF C(E)=-1,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDI PLACES THE LOGICAL AND FUNCTION +;OF C(AC) AND 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=777000,,707070 AND E=0,,123123. +;HENCE, THE RESULT IN THE AC SHOULD BE 0,,103103 + +C56600: MOVE 1,[777000,,707070] ;PRELOAD AC WITH 777000,,707070 + ANDI 1,123123 ;*ANDI SHOULD PLACE 0,,103103 INTO THE AC + CAIE 1,103020 ;PASS IF C(AC)=103103 + STOP + +;********** +;THIS TEST VERIFIES THAT ANDM PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND C(E) INTO E. +;IN THIS CASE, C(AC)=777000,,000777 AND C(E)=123456,,123456. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 777000,,000777 AND +;123000,,00456 RESPECTIVELY + +C56700: MOVE 1,[777000,,777] ;PRELOAD E WITH 777000,,000777 + MOVE 2,[123456,,123456] ;PRELOAD AC WITH 123456,,123456 + ANDM 2,1 ;*ANDM SHOULD PLACE 123000,,000456 INTO E + CAME 2,[123456,,123456] ;PASS IF C(AC) NOT MODIFIED + STOP + CAME 1,[123000,,000456] ;PASS IF C(E)=123000,,000456 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDM PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND C(E) INTO E. +;IN THIS CASE, C(AC)=777000,,000777 AND C(E)=123456,,123456. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 777000,,000777 AND +;123000,,00456 RESPECTIVELY + +C56701: MOVE 1,[777000,,777] ;PRELOAD E WITH 777000,,000777 + MOVEM 1,E56701 + MOVE 2,[123456,,123456] ;PRELOAD AC WITH 123456,,123456 + ANDM 2,E56701 ;*ANDM SHOULD PLACE 123000,,000456 INTO E + CAME 2,[123456,,123456] ;PASS IF C(AC) NOT MODIFIED + STOP + MOVE 1,E56701 + CAME 1,[123000,,000456] ;PASS IF C(E)=123000,,000456 + STOP + + SKIPA ;GO TO NEXT TEST +E56701: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT ANDCB PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND C(E) INTO BOTH AC AND E +;IN THIS CASE, C(AC)=-1,,0 AND C(E)=121212,,-1 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 121212,,0, + +C57000: HRROI 3,0 ;PRELOAD AC WITH -1,,0 + HRLOI 6,121212 ;PRELOAD E WITH 121212,,-1 + ANDB 3,6 ;*ANDB SHOULD PLACE 121212,,0 INTO BOTH AC AND E + CAME 3,[121212,,0] ;PASS IF C(AC)=121212,,0 + STOP + CAME 6,[121212,,0] ;PASS IF C(E)=121212,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDCB PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND C(E) INTO BOTH AC AND E +;IN THIS CASE, C(AC)=-1,,0 AND C(E)=121212,,-1 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 121212,,0, + +C57001: HRROI 3,0 ;PRELOAD AC WITH -1,,0 + HRLOI 6,121212 ;PRELOAD E WITH 121212,,-1 + MOVEM 6,E57001 + ANDB 3,E57001 ;*ANDB SHOULD PLACE 121212,,0 INTO BOTH AC AND E + CAME 3,[121212,,0] ;PASS IF C(AC)=121212,,0 + STOP + MOVE 6,E57001 + CAME 6,[121212,,0] ;PASS IF C(E)=121212,,0 + STOP + + SKIPA ;GO TO NEXT TEST +E57001: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT ANDCAI PLACES THE LOGICAL AND FUNCTION +;OF THE WORD 0,E AND THE COMPLEMENT OF C(AC) INTO THE AC +;IN THIS CASE, C(AC)=777,000,,707070 AND E=0,135246 +;HENCE, THE RESULT IN THE AC SHOULD BE 0,,030206 + +C57100: MOVE 5,[777000,,707070] ;PRELOAD AC WITH 777000,,707070 + ANDCAI 5,135246 ;*ANDCAI SHOULD PLACE 0,,30206 INTO THE AC + CAIE 5,030206 ;PASS IF C(AC)=030206 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDCAM PLACES THE LOGICAL AND FUNCTION OF +;C(E) AND THE COMPLEMENT OF C(AC) INTO E. +;IN THIS CASE, C(AC)=000767,,-1 AND C(E)=777350,,-2 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 000767,,-1 AND +;777010,,0 RESPECTIVELY. + +C57200: HRLOI 4,767 ;PRELOAD AC WITH 000767,,-1 + MOVE 6,[777350,,-2] ;PRELOAD E WITH 777350,,-2 + ANDCAM 4,6 ;*ANDCAM SHOULD PLACE 777010,,0 + ;INTO E + CAME 4,[767,,-1] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 6,[777010,,0] ;PASS IF C(E)=777010,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT ANDCAB PLACES THE LOGICAN AND FUNCTION OF +;C(E) AND THE COMPLEMENT OF C(AC) INTO BOTH AC AND E. +;IN THIS CASE, C(AC)=000777,,770077 AND C(E)=123456,246123 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 123000,,006100 + +C57300: MOVE 1,[000777,,770077] ;PRELOAD AC WITH 000777,770077 + MOVE 2,[123456,,246123] ;PRELOAD E WITH 123456,246123 + ANDCAB 1,2 ;*ANDCAB SHOULD PLACE 123000,006100 + ;INTO BOTH AC AND E + CAME 1,[123000,,006100] ;PASS IF C(AC)=123000,006100 + STOP + CAME 2,[123000,,006100] ;PASS IF C(E)=123000,006100 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETMI MOVES THE WORD 0,,E INTO THE AC +;IN THIS CASE, C(AC)=-1,,-1 AND E=0,,123456. HENCE, THE RESULT +;IN THE AC SHOULD BE 0,,123456 + +C57400: SETO 5, ;PRELOAD AC WITH -1,,-1 + SETMI 5,123456 ;*SETMI SHOULD PLACE 0,,123456 INTO THE AC + CAIE 5,123456 ;PASS IF C(AC)=0,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT SETMM IS A NO-OP. HENCE, IT SHOULD +;NOT MODIFY AC OR E. +;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-1; AND NEITHER SHOULD NOT BE CHANGED + +C57500: SETZ 16, ;CLEAR C(AC) + SETO 17, ;PRELOAD E WITH -1,,-1 + SETMM 16,17 ;*SETMM IS A NO-OP + SKIPE 16 ;PASS IF C(AC) UNCHANGED + STOP + CAME 17,[-1] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT SETMB PLACES C(E) INTO THE AC +;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=100,,-200 HENCE, THE RESULT +;IN BOTH AC AND E SHOULD BE 000100,,-200. + +C57600: SETO 0, ;CLEAR AC + MOVE 1,[100,,-200] ;PRELOAD E WITH 100,,-200 + SETMB 0,1 ;*SETMB SHOULD PLACE 100,,-200 INTO THE AC + CAME 0,[100,,-200] ;PASS IF C(AC)=100,,-200 + STOP + CAME 1,[100,,-200] ;PASS IF C(E)=100,,-200 + STOP + +;********** +;THIS TEST VERIFIES THAT ANDCMI PLACES THE LOGICAL AND FUNCTION +;OF C(AC) AND THE COMPLEMENT OF THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=123456,,246135 AND E=0,,717273. +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,040104. + +C57700: MOVE 15,[123456,,246135] ;PRELOAD AC WITH 123456,,246135 + ANDCMI 15,717273 ;*ANDCMI SHOULD PLACE 123456,,040104 + ;INTO THE AC + CAME 15,[123456,,040104] ;PASS IF C(AC)=123456,,040104 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDCMM PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND THE COMPLEMENT OF C(E) INTO E. +;IN THIS CASE,C(AC)=12321,,456654 AND C(E)= 770077,,007770 +;HENCE, THE RESULT IN E SHOULD BE 003300,,450004 + +C60000: MOVE 14,[123321,,456654] ;PRELOAD AC WITH 123321,,456654 + MOVE 15,[770077,,007770] ;PRELOAD E WITH 77007770 + ANDCMM 14,15 ;*ANDCMM SHOULD PLACE 003300,,450004 INTO THE AC + CAME 14,[123321,,456654] ;PASS IF C(AC) UNCHANGED + STOP + CAME 15,[3300,,450004] ;PASS IF C(E) = 003300,,450004 + STOP + +;********** +;THIS TEST VERIFIES THAT ANDCMB PLACES THE LOGICAL AND FUNCTION OF +;C(AC) AND THE COMPLEMENT OF C(E) INTO BOTH AC AND E. +;IN THIS CASE, C(AC)123456,,663322 AND C(E) = 777000,,700770 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 000456,,063002 + +C60100: MOVE 13,[123456,,663322] ;PRELOAD AC WITH 123456,,663322 + MOVE 14,[777000,,700770] ;PRELOAD E WITH 777000,,700770 + ANDCMB 13,14 ;*ANDCMB SHOULD PLACE 000456,,063002 + ;INTO BOTH AC AND E + CAME 13,[456,,63002] ;PASS IF C(AC)=000456,,063002 + STOP + CAME 14,[456,,63002] ;PASS IF C(E)=000456,,063002 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETA IS A NO-OP. IT AFFECTS NEITHER +;AC OR E. IN THIS CASE, C(AC)=123456,,777776 AND C(E)=010203,,123450. +;SETA SHOULD NOT MODIFY C(AC) OR C(E) + +C60200: MOVE 12,[123456,,777776] ;PRELOAD AC WITH 123456,,-2 + MOVE 13,[010203,,123450] ;PRELOAD E WITH 010203,,123450 + SETA 12,13 ;*SETA IS A NO-OP + CAME 12,[123456,,-2] ;PASS IF C(AC) UNCHANGED + STOP + CAME 13,[010203,,123450] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT SETAI IS A NO-OP. IT DOES NOT AFFECT THE AC. +;IN THIS CASE, C(AC)=123456,,777776 AND E=0,,123450 +;SETA SHOULD NOT MODIFY C(AC) + +C60300: MOVE 12,[123456,,777776] ;PRELOAD AC WITH 123456,,-2 + SETAI 12,123450 ;*SETAI IS A NO-OP + CAME 12,[123456,,-2] ;PASS IF C(AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT SETAM PLACES C(AC) INTO E. +;IN THIS CASE, C(AC)=123456,,0 AND C(E)=-1,,-1. HENCE, THE +;RESULT IN E SHOULD BE 123456,,0 + +C60400: HRLZI 11,123456 ;PRELOAD AC WITH 123456,,0 + SETO 12, ;PRELOAD E WITH -1,,-1 + SETAM 11,12 ;SETAM SHOULD PLACE 123456,,0 INTO E + CAME 11,[123456,,0] ;PASS IF C(AC) UNCHANGED + STOP + CAME 12,[123456,,0] ;PASS IF C(E)=123456,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT XORI PLACES THE LOGICAL EXCLUSIVE OR FUNCTION +;OF C(AC) AND THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=000777,,123456 AND E=0,,434431 +;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,517067. + +C60500: MOVE 10,[777,,123456] ;PRELOAD AC WITH 000777,,123456 + XORI 10,434431 ;*XORI SHOULD PLACE 000777,,517067 INTO THE AC + CAME 10,[777,,517067] ;PASS IF C(AC)=000777,,517067 + STOP + +;********** + +;THIS TEST VERIFIES THAT XORB PLACES THE LOGICAL EXCLUSIVE OR FUNCTION +;OF C(AC) AND C(E) INTO BOTH AC AND E. +;IN THIS CASE, C(AC)=707077,,555666 AND C(E)=123456,,765432 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 624421,,230254 + +C60600: MOVE 7,[707077,,555666] ;PRELOAD AC WITH 707077,,555666 + MOVE 10,[123456,,765432] ;PRELOAD E WITH 123456,,765432 + XORB 7,10 ;*XORB SHOULD PLACE 624421,,230254 + ;INTO BOTH AC AND E + CAME 7,[624421,,230254] ;PASS IF C(AC)=624421,,230254 + STOP + CAME 10,[624421,,230254] ;PASS IF C(E)=624421,,230254 + STOP + +;********** +;THIS TEST VERIFIES THAT IORI PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=707070,,123456 AND E=0,,765567 +;HENCE, THE RESULT IN THE AC SHOULD BE 707070,,767577 + +C60700: MOVE 6,[707070,,123456] ;PRELOAD AC WITH 707070,,123456 + IORI 6,765567 ;*IORI SHOULD PLACE 707070,,767577 INTO THE AC + CAME 6,[707070,,767577] ;PASS IF C(AC)=707070,,767577 + STOP + +;********** + +;THIS TEST VERIFIES THAT IORM PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND C(E) INTO E. +;IN THIS CASE, C(AC)=123456,,777666 AND C(E)=777001,,123470 +;HENCE, THE RESULT IN E SHOULD BE 777457,,777676 + +C61000: MOVE 5,[123456,,777666] ;PRELOAD AC WITH 123456,777666 + MOVE 6,[777001,,123470] ;PRELOAD E WITH 777001,,123470 + IORM 5,6 ;*IORM SHOULD PLACE + ;777457,777676 INTO E + CAME 5,[123456,,777666] ;PASS IF C(AC) UNMODIFIED + STOP + CAME 6,[777457,,777676] ;PASS IF C(E)=777457,777676 + STOP + +;********** +;THIS TEST VERIFIES THAT IORB PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND C(E) INTO E. +;IN THIS CASE, C(AC)=123456,,777666 AND C(E)=777001,,123470 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 777457,,777676 + +C61100: MOVE 5,[123456,,777666] ;PRELOAD AC WITH 123456,777666 + MOVE 6,[777001,,123470] ;PRELOAD E WITH 777001,,123470 + IORB 5,6 ;*IORB SHOULD PLACE + ;777457,,777676 INTO + CAME 5,[777457,,777676] ;PASS IF C(AC)=777457,,777676 + STOP + CAME 6,[777457,,777676] ;PASS IF C(E)=777457,,777676 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDCBI PLACES THE LOGICAL AND FUNCTION +;OF THE COMPLEMENTS OF BOTH C(AC) AND THE WORD 0,,E INTO THE AC +;IN THIS CASE, C(AC)=777000,,123456 AND E=0,,706050. +;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,050321. + +C61200: MOVE 4,[777000,,123456] ;PRELOAD AC WITH 777000,,123456 + ANDCBI 4,706050 ;*ANDCBI SHOULD PLACE 000777,,050321 + ;INTO THE AC + CAME 4,[777,,50321] ;PASS IF C(AC)=000777,,050321 + STOP + +;********** +;THIS TEST VERIFIES THAT ANDCBM PLACES THE LOGICAL AND FUNCTION +;OF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO +;IN THE CASE, C(AC)=777007,,771100 AND C(E)=063202,,123477 +;HENCE, THE RESULT IN E SHOULD BE 000570,,004200 + +C61300: MOVE 3,[777007,,771100] ;PRELOAD AC WITH 777007,,771100 + MOVE 4,[63202,,123477] ;PRELOAD E WITH 063202,,123477 + ANDCBM 3,4 ;*ANDCBM SHOULD PLACE + ;000570,,004200 INTO E. + CAME 3,[777007,,771100] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 4,[570,,4200] ;PASS IF C(E)=000570,,004200 + STOP + +;********** + +;THIS TEST VERIFIES THAT ANDCBB PLACES THE LOGICAL AND FUNCTION +;OF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO BOTH AC AND E +;IN THIS CASE, C(AC)=777007,,771100 AND C(E)=063202,,123477 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 000570,,004200 + +C61400: MOVE 3,[777007,,771100] ;PRELOAD WITH 777007,,771100 + MOVE 4,[63202,,123477] ;PRELOAD E WITH 063202,,123477 + ANDCBB 3,4 ;*ANDCBB SHOULD PLACE + ;000570,,004200 INTO BOTH AC AND E + CAME 3,[570,,4200] ;PASS IF C(AC)=000570,,004200 + STOP + CAME 4,[570,,4200] ;PASS IF C(E)=000570,,004200 + STOP + +;********** +;THIS TEST VERIFIES THAT EQVI PLACES THE LOGICAL EQUIVALENCE FUNCTION +;OF C(AC) AND THE WORD 0,,E INTO THE AC +;IN THIS CASE, C(AC)=707070,,123426 AND E=0,,123363 +;HENCE, THE RESULT IN THE AC SHOULD BE 070707,,777032 + +C61500: MOVE 2,[707070,,123426] ;PRELOAD AC WITH 707070,,123426 + EQVI 2,123363 ;*EQVI SHOULD PLACE + ;070707,,777032 INTO THE AC + CAME 2,[70707,,777032] ;PASS IF C(AC)=070707,,777032 + STOP + +;********** + +;THIS TEST VERIFIES THAT EQVM PLACES THE LOGICAL EQUIVALENCE FUNCTION +;OF C(AC) AND C(E) INTO E. +;IN THIS CASE, C(AC)= 123456,,123457 AND C(E) = 707633,,121212 +;HENCE, THE RESULT IN E SHOULD BE 153512,,775132 + +C61600: MOVE 1,[123456,,123457] ;PRELOAD AC WITH 123456,,123457 + MOVE 2,[707633,,121212] ;PRELOAD AC WITH 707633,,121212 + EQVM 1,2 ;*EQVM SHOULD PLACE 153512,,775132 INTO E. + CAME 1,[123456,,123457] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[153512,,775132];PASS IF C(E) = 153512,,775132 + STOP + +;********** +;THIS TEST VERIFIES THAT EQVB PLACES THE LOGICAL EQUIVALENCE FUNCTION +;OF C(AC)AND C(E) INTO BOTH AC AND E. +;IN THIS CASE, C(AC) = 123456,,123457 AND C(E) = 707633,,121212 +;HENSE, THE RSULT IN BOTH AC AND E SHOULD BE 153512,,775132 + +C61700: MOVE 1,[123456,,123457] ;PRELOAD AC WITH 123456,,12345 + MOVE 2,[707633,,121212] ;PRELOAD AC WITH 707633,,121212 + EQVB 1,2 ;*EQVB SHOULD PLACE 153512,,775132 + ;INTO BOTHE AC AND E. + CAME 1,[153512,,775132] ;PASS IC C(AC)=153512,,775132 + STOP + CAME 2,[153512,,775132] ;PASS IF C(E)=153512,,775132 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETCAI PLACES THE COMPLEMENT OF C(AC) +;INTO THE AC. +;IN THIS CASE, C(AC)=777000,,123456 AND E=0,,707070 +;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,654321 + +C62000: MOVE 0,[777000,,123456] ;PRELOAD AC WITH 777000,,123456 + SETCAI 0,707070 ;*SETCAI SHOULD PLACE 000777,,654321 + ;INTO THE AC + CAME 0,[777,,654321] ;PASS IF C(AC)=000777,,654321 + STOP + +;********** +;THIS TEST VERIFIES THAT SETCAM PLACES THE COMPLEMENT OF C(AC) +;INTO E. +;IN THIS CASE, C(AC)=123456,,765432 AND C(E)=-1,,-1. +;HENCE, THE RESULT IN E SHOULD BE 654321,,012345 + +C62100: MOVE 17,[123456,,765432] ;PRELOAD AC WITH 123456,,765432 + SETO 0, ;PRELOAD E WITH -1,,-1 + SETCAM 17,0 ;*SETCAM SHOULD PLACE + ;654321,,012345 INTO E + CAME 17,[123456,,765432] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 0,[654321,,12345] ;PASS IF C(E)=654321,,012345 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETCAB PLACES THE COMPLEMENT OF C(AC) +;INTO BOTH AC AND E. +;IN THIS CASE, C(AC)=123456,,765432 AND C(E)=-1,,-1. +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 654321,,012345 + +C62200: MOVE 17,[123456,,765432] ;PRELOAD AC WITH 123456,,76543 + SETO 0, ;PRELOAD E WITH -1,,-1 + SETCAB 17,0 ;*SETCAB SHOULD PLACE + ;654321,,012345 INTO BOTH AC AND E + CAME 17,[654321,,12345] ;PASS IF C(AC)=654321,,012345 + STOP + CAME 0,[654321,,12345] ;PASS IF C(E)=654321,,012345 + STOP + +;********** +;THIS TEST VERIFIES THAT ORCAI PLACES THE INCLUSIVE OR FUNCTION +;OF THE WORD 0,,E AND THE COMPLEMENT OF C(AC) INTO THE AC. +;IN THIS CASE, C(AC)=777000,,123477 AND E=0,,765401 +;HENCE, THE RESULT IN THE AC SHOULD BE 000777,,775701 + +C62300: MOVE 16,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + ORCAI 16,765401 ;*ORCAI SHOULD PLACE 000777,,767477 + ;INTO THE AC + CAME 16,[777,,775701] ;PASS IF C(AC)=000777,,775701 + STOP + +;********** + +;THIS TEST VERIFIES THAT ORCAM PLACES THE INCLUSIVE OR FUNCTION +;OF C(E) AND THE COMPLEMENT OF C(AC) INTO +;IN THIS CASE, C(AC)=777000,,123477 AND C(E)=707070,,707072 +;HENCE, THE RESULT IN E SHOULD BE 707777,,757372 + +C62400: MOVE 15,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + MOVE 16,[707070,,707072] ;PRELOAD E WITH 707070,,707072 + ORCAM 15,16 ;*ORCAM SHOULD PLACE 707777,,757372 + ;INTO E + CAME 15,[777000,,123477] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 16,[707777,,757372] ;PASS IF C(E)=707777,,757372 + STOP + +;********** +;THIS TEST VERIFIES THAT ORCAB PLACES THE INCLUSIVE OR FUNCTION +;OF C(E) AND THE COMPLEMENT OF C(AC) INTO BOTH AC AND E. +;IN THIS CASE, C(AC)=777000,,123477 AND C(E)=707070,,707072 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 707777,,757372 + +C62500: MOVE 15,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + MOVE 16,[707070,,707072] ;PRELOAD E WITH 707070,,707072 + ORCAB 15,16 ;*ORCAB SHOULD PLACE 707777,,757372 + ;INTO BOTHE AC AND E + CAME 15,[707777,,757372] ;PASS IF C(AC)=707777,,757372 + STOP + CAME 16,[707777,,757372] ;PASS IF C(E)=707777,,757372 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETCMI PLACES THE COMPLEMENT OF THE +;WORD 0,,E INTO THE AC +;IN THIS CASE, C(AC)=777000,,123456 AND E=0,,707070 +;HENCE, THE RESULT IN THE AC SHOULD BE -1,,070707 + +C62600: MOVE 0,[777000,,123456] ;PRELOAD AC WITH 777000,,123456 + SETCMI 0,707070 ;*SETCMI SHOULD PLACE -1,,070707 + ;INTO THE AC + CAME 0,[-1,,070707] ;PASS IF C(AC)=-1,,070707 + STOP + +;********** +;THIS TEST VERIFIES THAT SETCMM PLACES THE COMPLEMENT OF C(E) +;INTO E. +;IN THIS CASE, C(E)=123456,,765432 AND C(AC)=-1,,-1. +;HENCE, THE RESULT IN E SHOULD BE 654321,,012345 + +C62700: MOVE 17,[123456,,765432] ;PRELOAD E WITH 123456,,76543 + SETO 0, ;PRELOAD AC WITH -1,,-1 + SETCMM 0,17 ;*SETCMM SHOULD PLACE + ;654321,012345 INTO E + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAME 17,[654321,,12345] ;PASS IF C(E)=654321,,012345 + STOP + +;********** + +;THIS TEST VERIFIES THAT SETCMB PLACES THE COMPLEMENT OF C(E) +;INTO BOTH AC AND E. +;IN THIS CASE, C(E)=123456,,765432 AND C(AC)=-1,,-1. +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 654321,,012345 + +C63000: MOVE 17,[123456,,765432] ;PRELOAD E WITH 123456,,76543 + SETO 0, ;PRELOAD AC WITH -1,,-1 + SETCMB 0,17 ;*SETCMB SHOULD PLACE + ;654321,,012345 INTO BOTH AC AND E + CAME 0,[654321,,12345] ;PASS IF C(AC)=654321,,012345 + STOP + CAME 17,[654321,,12345] ;PASS IF C(E)=654321,,012345 + STOP + +;********** +;THIS TEST VERIFIES THAT ORCMI PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND THE COMPLEMENT OF THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=777000,,123477 AND E=0,,765401 +;HENCE, THE RESULT IN THE AC SHOULD BE -1,,133777 + +C63100: MOVE 16,[777000,,123477] ;PRELOAD AC WITH 777000,,123477 + ORCMI 16,765401 ;*ORCMI SHOULD PLACE -1,,133777 + ;INTO THE AC + CAME 16,[-1,,133777] ;PASS IF C(AC)=-1,,133777 + STOP + +;********** + +;THIS TEST VERIFIES THAT ORCMM PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND THE COMPLEMENT OC C(E) INTO +;IN THIS CASE, C(E)=777000,,123477 AND C (AC)=707070,,707072 +;HENCE, THE RESULT IN E SHOULD BE 707777,,757372 + +C63200: MOVE 15,[777000,,123477] ;PRELOAD E WITH 777000,,123477 + MOVE 16,[707070,,707072] ;PRELOAD AC WITH 707070,,707072 + ORCMM 16,15 ;*ORCMM SHOULD PLACE 707777,,757372 + ;INTO E + CAME 16,[707070,,707072] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 15,[707777,,757372] ;PASS IF C(E)=707777,,757372 + STOP + +;********** +;THIS TEST VERIFIES THAT ORCMB PLACES THE INCLUSIVE OR FUNCTION +;OF C(AC) AND THE COMPLEMENT OF C(E) INTO BOTH AC AND E. +;IN THIS CASE, C(E)=777000,,123477 AND C(AC)=707070,,707072 +;HENCE, THE RESULT IN BOTH AC AND E SHOULD BE 707777,,757372 + +C63300: MOVE 15,[777000,,123477] ;PRELOAD E WITH 777000,,123477 + MOVE 16,[707070,,707072] ;PRELOAD AC WITH 707070,,707072 + ORCMB 16,15 ;*ORCMB SHOULD PLACE 707777,,757372 + ;INTO BOTH AC AND E + CAME 16,[707777,,757372] ;PASS IF C(AC)=707777,,757372 + STOP + CAME 15,[707777,,757372] ;PASS OF C(E)=707777,,757372 + STOP + +;********** + +;THIS TEST VERIFIES THAT ORCBI PLACES THE LOGICAL INCLUSIVE OR +;FUNCTION OF THE COMPLEMENTS OF BOTH C(AC) AND THE WORD 0,,E INTO THE AC. +;IN THIS CASE, C(AC)=707070,,070706 AND E=0,,770011. +;HENCE, THE RESULT IN THE AC SHOULD BE -1,,707777 + +C63400: MOVE 15,[707070,,070706] ;PRELOAD AC WITH 707070,,070706 + ORCBI 15,770011 ;*ORCBI SHOULD PLACE -1,,707777 INTO THE AC + CAME 15,[-1,,707777] ;PASS IF C(AC)=-1,707777 + STOP + +;********** +;THIS TEST VERIFIES THAT ORCBM PLACES THE LOGICAL INCLUSIVE OR +;FUNCTION OF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO +;IN THIS CASE, C(AC)=123456,,770077 AND C(E)=777001,,123324 +;HENCE, THE RESULT IN E SHOULD BE 654777,,657753 + +C63500: MOVE 14,[123456,,770077] ;PRELOAD AC WITH 123456,,770077 + MOVE 15,[777001,,123324] ;PRELOAD E WITH 777001,,123324 + ORCBM 14,15 ;*ORCBM SHOULD PLACE 654777,,657753 + ;INTO E + CAME 14,[123456,,770077] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 15,[654777,,657753] ;PASS IF C(E)=654777,,657753 + STOP + +;********** + +;THIS TEST VERIFIES THAT ORCBB PLACES THE LOGICAL INCLUSIVE OR +;FUNCTIONOF THE COMPLEMENTS OF BOTH C(AC) AND C(E) INTO BOTH AC AND E +;IN THIS CASE, C(AC)=123456,,770077 AND C(E)=777001,,657753 + +C63600: MOVE 14,[123456,,770077] ;PRELOAD AC WITH 123456,,770077 + MOVE 15,[777001,,123324] ;PRELOAD E WITH 777001,,123324 + ORCBB 14,15 ;*ORCBB SHOULD PLACE 654777,,657753 + ;INTO BOTH AC AND E + CAME 14,[654777,,657753] ;PASS IF C(AC)=654777,,657753 + STOP + CAME 15,[654777,,657753] ;PASS IF C(E)=654777,,657753 + STOP + +;********** +SUBTTL TEST OF MSCL HWT INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT HLLI CLEARS AC LEFT +;IN THIS CASE, C(AC)=707070,,123456 AND E=777000 +;HENCE, THE RESULT IN THE AC SHOULD BE 0,,123456 + +C63700: MOVE 17,[707070,,123456] ;PRELOAD AC WITH 707070,,123456 + HLLI 17,777000 ;*HLLI SHOULD PLACE 0,,123456 INTO THHE AC + CAIE 17,123456 ;PASS IF C(AC)=0,,123456 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLLS PLACES C(E) INTO THE AC IF AC IS NON-ZERO +;AND IS A NO-OP IF AC=0 +;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E)=123456,,765432 +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 +;AND 123456,,765432 RESPECTIVELY + +C64000: SETO 0 ;PRELOAD AC WITH -1,,-1 + MOVE 2,[123456,,765432] ;PRELOAD E WITH 123456,,765432 + HLLS 0,2 ;*HLLS SHOULD NOT AFFECT AC OR E + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[123456,,765432] ;PASS IF C(C) IS UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT HLLS PLACES C(E) INTO THE AC IF AC IS NON-ZERO? +;AND IS A NO-OP IF AC=0 +;IN THIS CASE, AC=1, C(AC)=1,,-1 AND C(E)=123456,,765432 +;HENCE, THE RESULTS IN AC AND E WHOULD BE 123456,,765432 +;AND 123456,,765432 RESPECTVIELY + +C64010: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 2,[123456,,765432] ;PRELOAD E WITH 123456,,765432 + HLLS 1,2 ;*HLLS SHOULD PLACE 123456,,765432 INTO THE AC + CAME 1,[123456,,765432] ;PASS IF C(AC)=123456,,765432 + STOP + CAME 2,[123456,,765432] ;PASS IF C(C) IS UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT HRLS PLACES C(E-RIGHT) INTO E-LEFT, BUT +;DOES NOT AFFECT E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=1,,-1 AND C(E)=123456,707070 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE -1,,-1 +;AND 707070,,707070. + +C64100: SETO 0, ;PRELOAD AC WITH -1,,-1 + MOVE 3,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + HRLS 0,3 ;*HRLS SHOULD PLACE 707070,,707070 + ;INTO E. + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAME 3,[707070,,707070] ;PASS IF C(E)=707070,,707070 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLS PLACES C(E-RIGHT) INTO E-LEFT, BUT +;DOES NOT AFFECT E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E)=123456,,707070 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 707070,,707070 +;AND 707070,,707070. + +C64110: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 3,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + HRLS 1,3 ;*HRLS SHOULD PLACE 707070,,707070 + ;INTO BOTH AC AND E. + CAME 1,[707070,,707070] ;PASS IF C(AC)=707070,,707070 + STOP + CAME 3,[707070,,707070] ;PASS IF C(E)=707070,,707070 + STOP + +;********** + +;THIS TEST VERIFIES THAN HLLZM PLACES C(AC-LEFT) INTO E-LEFT AND +;PLACES 0 INTO E-RIGHT +;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,717171 +;HENCE, THE RESULT IN E SHOULD BE 123456,,0 + +C64200: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + HLLZM 1,2 ;*HLLZM SHOULD PLACE 123456,,0 INTO E + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[123456,,0] ;PASS IF C(E)=123456,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT HLLZS CLEARS THE RIGHT HALF OF E, BUT DOESN'T +;AFFECT THE LEFT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E)=123456,,707070 +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 +;AND 123456,,0 RESPECTIVELY + +C64300: SETO 0, ;PRELOAD AC WITH -1,,-1 + MOVE 17,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + HLLZS 0,17 ;*HLLZS SHOULD PLACE 123456,,0 INTO E. + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAME 17,[123456,,0] ;PASS IF C(E)=123456,,0 + STOP + + +;********** + +;THIS TEST VERIFIES THAT HLLZS CLEARS THE RIGHT HALF OF E, BUT DOESN'T +;AFFECT THE LEFT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E)=123456,,707070 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 123456,,0 +;AND 123456,,0 RESPECTIVELY. + +C64310: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 17,[123456,,707070] ;PRELOAD E WITH 123456,,707070 + HLLZS 1,17 ;*HLLZS SHOULD PLACE 123456,,0 INTO + ;BOTH AC AND E + CAME 1,[123456,,0] ;PASS IF C(AC)=123456,,0 + STOP + CAME 17,[123456,,0] ;PASS IF C(E)=123456,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLZM PLACES C(AC-RIGHT) INTO E-LEFT AND +;PLACES O INTO E-RIGHT. +;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,,717171 +;HENCE, THE RESULT IN E SHOULD BE 123422,,0 + +C64400: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + HRLZM 1,2 ;*HRLZM SHOULD PLACE 123422,,0 INTO E + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[123422,,0] ;PASS IF C(E)=123422,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT HRLZS PLACES C(E-RIGHT) INTO E-LEFT AND +;CLEARS E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALSO +;PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E)=123456,,707076 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE -1,,-1 +;AND 707076,,0 + +C64500: SETO 0, ;PRELOAD AC WITH -1,,-1 + MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + HRLZS 0,16 ;*HRLZS SHOULD PLACE 707076,,0 + ;INTO E. + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAME 16,[707076,,0] ;PASS IF C(AC)=707076,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLZS PLACES C(E-RIGHT) INTO E-LEFT AND +;CLEARS E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALSO +;PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E)=123456,,707076 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 707076,,0 +;AND 707076,,0 + +C64510: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + HRLZS 1,16 ;*HRLZS SHOULD PLACE 707076,,0 + ;INTO BOTH AC AND E. + CAME 1,[707076,,0] ;PASS IF C(AC)=707076,,0 + STOP + CAME 16,[707076,,0] ;PASS IF C(AC)=707076,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLLOM PLACES C(AC-LEFT) INTO E-LEFT AND +;PLACES -1 INTO E-RIGHT. +;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,,717171 +;HENCE, THE RESULT IN E SHOULD BE 123456,,-1. + +C64600: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + HLLOM 1,2 ;*HLLOM SHOULD PLACE 123456,,-1 INTO E + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[123456,,-1] ;PASS IF C(E)=123456,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLO, C(E-RIGHT) INTO AC=LEFT AND +;PLACES -1 INTO AC-RIGHT. IN THIS CASE, C(AC)=123456,,135724 AND +;C(E)=765432,,246135. HENCE, THE RESULT IN THE AC SHOULD BE 246135,,-1 + +C64700: MOVE 15,[123456,,135724] ;PRELOAD AC WITH 123456,,135724 + MOVE 16,[765432,,246135] ;PRELOAD E WITH 765432,,246135 + HRLO 15,16 ;*HRLO SHOULD PLACE 246135,,-1 INTO AC + CAME 15,[246135,,-1] ;PASS IF C(AC)=246135,,-1 + STOP + CAME 16,[765432,,246135] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT HRLOI PLACES 0,,E INTO AC-LEFT AND +;PLACES ONES INTO AC-RIGHT. IN THIS CASE, C(AC)=0 AND E=0,,123456. +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,-1 + +C65000: SETZ 14, ;CLEAR AC + HRLOI 14,123456 ;*HRLOI SHOULD PLACE 123456,,-1 INTO THE AC + CAME 14,[123456,,-1] ;PASS IF C(AC)=123456,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLOM PLACES C(AC-RIGHT) INTO E-LEFT +;AND PLACES -1 INTO E-RIGHT. IN THIS CASE, C(E)=0 AND C(AC)=123123,,456765 +;HENCE, THE RESULT IN E SHOULD BE 456765,,-1. + +C65100: SETZM 14 ;CLEAR E + MOVE 13,[123123,,456765] ;PRELOAD AC WITH 123123,,456765 + HRLOM 13,14 ;*HRLOM SHOULD PLACE 456765,,-1 INTO E + CAME 13,[123123,,456765] ;PASS IF C(AC) UNCHANGED + + STOP + CAME 14,[456765,,-1] ;PASS IF C(E)=456765,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT HRLOS PLACES C(E-RIGHT) INTO E-LEFT AND +;PLACES -1 INTO E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALOS +;PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,707076 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 0 +;AND 707076,,0 + +C65200: SETZ 0, ;PRELOAD AC WITH 0 + MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + HRLOS 0,16 ;*HRLZS SHOULD PLACE 707076,,-1 + ;INTO E. + CAME 0,[0] ;PASS IF C(AC) UNCHANGED + STOP + CAME 16,[707076,,-1] ;PASS IF C(AC)=707076,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLOS PLACES C(E-RIGHT) INTO E-LEFT AND +;PLACES -1 INTO E-RIGHT. IF AC IS NON-ZERO, THE RESULT IN E IS ALSO +;PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123456,,707076 +;HENCE, THE RESULTS IN AC AND E RESPECTIVELY SHOULD BE 707076,,-1 +;AND 707076,,-1 + +C65210: SETZ 1, ;PRELOAD AC WITH 0 + MOVE 16,[123456,,707076] ;PRELOAD E WITH 123456,,707076 + HRLOS 1,16 ;*HRLZS SHOULD PLACE 707076,,-1 + ;INTO BOTH AC AND E + CAME 1,[707076,,-1] ;PASS IF C(AC)=707076,,-1 + STOP + CAME 16,[707076,,-1] ;PASS IF C(AC)=707076,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLLEM PLACES C(AC-LEFT) INTO E-LEFT +;AND PLACES BIT 0 OF THE AC INTO BITS 18 THRU 35 OF E. IN THIS CASE, +;C(AC)=123456,,707076 AND C(E)=-1,,-1. HENCE, THE RESULT IN E +;SHOULD BE 123456,,0. + +C65300: MOVE 12,[123456,,707076] ;PRELOAD AC WITH 123456,,707076 + SETOM 13 ;PRELOAD E WITH -1,,-1 + HLLEM 12,13 ;*HLLEM SHOULD PLACE 123456,,0 INTO E + CAME 12,[123456,,707076] ;PASS IF C(AC) UNCHANGED + STOP + CAME 13,[123456,,0] ;PASS IF C(E)=123456,,0 + STOP + +;********** +;THIS TEST VERIFIES THAT HLLES PLACES C(E-LEFT) INTO E-LEFT AND +;PLACES BIT 0 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=765432,,0. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 +;AND 765432,,-1 RESPECTIVELY. + +C65400: SETZ 0, ;CLEAR AC + HRLZI 2,765432 ;PRELOAD E WITH 765432,,0 + HLLES 0,2 ;*HLLES SHOULD PLACE 765432,,-1 + ;INTO E + CAME 0,[0] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLLES PLACES C(E-LEFT) INTO E-LEFT AND +;PLACES BIT 0 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO, +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=765432,,0 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 765432,,-1 +;AND 765432,,-1 RESPECTIVELY + +C65410: SETZ 1, ;CLEAR AC + HRLZI 2,765432 ;PRELOAD E WITH 765432,,0 + HLLES 1,2 ;*HLLES SHOULD PLACE 765432,,-1 + ;INTO BOTH AC AND E + CAME 1,[765432,,-1] ;PASS IF C(AC)=765432,,-1 + STOP + CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT HLLEM PLACES C(AC-RIGHT) INTO E-LEFT +;AND PLACES BIT 18 OF THE AC INTO BITS 18 THRU 35 OF E. IN THIS CASE, +;C(AC)=365432,123456 AND C(E)=-1,,-1. HENCE, THE RESULT IN E +;SHOULD BE 365432,,0. + +C65500: MOVE 12,[365432,,123456] ;PRELOAD AC WITH 365432,,123456 + SETOM 13 ;PRELOAD E WITH -1,,-1 + HLLEM 12,13 ;*HLLEM SHOULD PLACE 365432,,0 INTO E + CAME 12,[365432,,123456] ;PASS IF C(AC) UNCHANGED + STOP + CAME 13,[365432,,0] ;PASS IF C(E)=365432,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT HRLES PLACES C(E-RIGHT) INTO E-LEFT AND +;PLACES BIT 18 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO, +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=0,,765432 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 +;AND 765432,,-1 RESPECTIVELY + +C65600: SETZ 0, ;CLEAR AC + HRRZI 2,765432 ;PRELOAD E WITH 0,,765432 + HRLES 0,2 ;*HLLES SHOULD PLACE 765432,,-1 + ;INTO + CAME 0,[0] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + STOP + +;********** +;THIS TEST VERIFIES THAT HRLES PLACES C(E-RIGHT) INTO E-LEFT AND +;PLACES BIT 18 OF E INTO BITS 18 THRU 35 OF E. IF AC IS NON-ZERO, +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=0,,765432 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 765432,,-1 +;AND 765432,,-1 RESPECTIVELY. + +C65610: SETZ 1, ;CLEAR AC + HRRZI 2,765432 ;PRELOAD E WITH 0,765432 + HRLES 1,2 ;*HLLES SHOULD PLACE 765432,,-1 + ;INTO BOTH AC AND E + CAME 1,[765432,,-1] ;PASS IF C(AC)=765442,,-1 + STOP + CAME 2,[765432,,-1] ;PASS IF C(E)=765432,,-1 + STOP + + +;********** + +;THIS TEST VERIFIES THAT HLRM SHOULD PLACE C(AC-LEFT) INTO E-RIGHT +;AND NOT AFFECT E-LEFT. IN THIS CASE, C(AC)=123456,,701234 +;AND C(E)=0. HENCE, THE RESULT IN E SHOULD BE 0,,123456 + +C65700: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + SETZM 12 ;CLEAR E + HLRM 11,12 ;*HLRM SHOULD PLACE 0,,123456 INTO E + CAME 11,[123456,,701234] ;PASS IF C(AC) UNCHANGE + STOP + CAIE 12,123456 ;PASS IF C(E)=0,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT HLRS PLACES C(E-LEFT) INTO E-RIGHT AND +;DOES NOT AFFECT E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123123,,246135 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 +;AND 123123,,123123 RESPECTIVELY. + +C66000: SETZ 0, ;CLEAR AC + MOVE 12,[123123,,246135] ;PRELOAD E WITH 123123,,246135 + HLRS 0,12 ;*HLRS SHOULD PLACE 123123,,123123 + ;INTO E. + CAME 0,[0] ;PASS IF C(AC) UNCHANGED + STOP + CAME 12,[123123,,123123] ;PASS IF C(E)=123123,,123123 + STOP + + +;********** + +;THIS TEST VERIFIES THAT HLRS PLACES C(E-LEFT) INTO E-RIGHT AND +;DOES NOT AFFECT E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123123,,246135 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 123123,,123123 +;AND 123123,,123123 RESPECTIVELY. + +C66010: SETZ 1, ;CLEAR AC + MOVE 12,[123123,,246135] ;PRELOAD E WITH 123123,,246135 + HLRS 1,12 ;*HLRS SHOULD PLACE 123123,,123123 + ;INTO BOTH AC AND E. + CAME 1,[123123,,123123] ;PASS IF C(AC)=123123,,123123 + STOP + CAME 12,[123123,,123123] ;PASS IF C(E)=123123,,123123 + STOP + +;********** +;THIS TEST VERIFIES THAT HRRZS CLEARS THE LEFT HALF OF E, BUT DOES NOT +;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC = 0, C(AC) = -1,,-1 AND C(E) = 123456,,701234 +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 AND 0,,701234 +;RESPECTIVELY. + +C66100: SETO 0 ;PRELOAD AC WITH -1,,-1 + MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HRRZS 0,17 ;HRRZS SHOULD PLACE 0,,701234 INTO E + CAME 0,[-1] ;PASS IF C(AC) UNCHANGED + STOP + CAIE 17,701234 ;PASS IF C(E) = 0,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT HRRZS CLEARS THE LEFT HALF OF E, BUT DOES NOT +;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO, THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC = 1, C(AC) = -1,,-1 AND C(E) = 123456,,701234 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,701234 AND 0,,701234 +;RESPECTIVELY. + +C66110: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HRRZS 1,17 ;HRRZS SHOULD PLACE 0,,701234 INTO + ;BOTH AC AND E + CAIE 1,701234 ;PASS IF C(AC) = 0,,701234 + STOP + CAIE 17,701234 ;PASS IF C(E) = 0,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT HLRZI CLEARS THE AC +;IN THIS CASE, C(AC) = -1,,-1 AND E = 0,,-1. HENCE, THE +;RESULT IN THE AC SHOULD BE 0. + +C66200: SETO 7 ;PRELOAD AC WITH -1,,-1 + HLRZI 7,-1 ;*HLRZI SHOULD CLEAR THE AC + SKIPE 7 ;PASS IF C(AC) = 0 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLRZM PLACES C(AC-LEFT) INTO E-RIGHT AND +;PLACES 0 INTO E-LEFT. +;IN THIS CASE, C(AC) = 123456,,123422 AND C(E) = 707070,,717171 +;HENCE, THE RESULT IN E SHOULD BE 0,,123456. + +C66300: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + HLRZM 1,2 ;*HLRZM SHOULD PLACE 0,,123456 INTO E. + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + CAIE 2,123456 ;PASS IF C(E) = 0,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT HLRZM PLACES C(AC-LEFT) INTO E-RIGHT AND +;PLACES 0 INTO E-LEFT. +;IN THIS CASE, C(AC) = 123456,,123422 AND C(E) = 707070,,717171 +;HENCE, THE RESULT IN E SHOULD BE 0,,123456. + +C66301: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + MOVEM 2,E66301 + HLRZM 1,E66301 ;*HLRZM SHOULD PLACE 0,,123456 INTO E. + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + MOVE 2,E66301 + CAIE 2,123456 ;PASS IF C(E) = 0,,123456 + STOP + + SKIPA ;GO TO NEXT TEST +E66301: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT HLRZS PLACES C(E-LEFT) INTO E-RIGHT AND +;PLACES 0 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC = 0, C(AC) = -1,,-1 AND C(E) = 123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 AND 0,,123456 +;RESPECTIVELY. + +C66400: SETO 0, ;PRELOAD AC WITH -1,,-1 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLRZS 0,7 ;*HLRZS SHOULD PLACE 0,,123456 INTO E + CAME 0,[-1] ;PASS IF C(AC) IS UNCHANGED + STOP + CAIE 7,123456 ;PASS IF C(E) = 0,,123456 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLRZS PLACES C(E-LEFT) INTO E-RIGHT AND +;PLACES 0 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC = 6, C(AC) = -1,,-1 AND C(E) = 123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,123456 AND 0123456 +;RESPECTIVELY. + +C66410: SETO 6, ;PRELOAD AC WITH -1,,-1 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLRZS 6,7 ;*HLRZS SHOULD PLACE 0,,123456 INTO + ;BOTH AC AND E + CAIE 6,123456 ;PASS IF C(AC) = 0,,123456 + STOP + CAIE 7,123456 ;PASS IF C(E) = 0,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT HLRZS PLACES C(E-LEFT) INTO E-RIGHT AND +;PLACES 0 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC = 6, C(AC) = -1,,-1 AND C(E) = 123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,123456 AND 0123456 +;RESPECTIVELY. + +C66411: SETO 6, ;PRELOAD AC WITH -1,,-1 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + MOVEM 7,E66411 + HLRZS 6,E66411 ;*HLRZS SHOULD PLACE 0,,123456 INTO + ;BOTH AC AND E + CAIE 6,123456 ;PASS IF C(AC) = 0,,123456 + STOP + MOVE 7,E66411 + CAIE 7,123456 ;PASS IF C(E) = 0,,123456 + STOP + + SKIPA ;GO TO NEXT TEST +E66411: 0 ;TEST WORD MEMORY + +;********** +;THIS TEST VERIFIES THAT HRROM PLACES C(AC-RIGHT) INTO E-RIGHT AND +;PLACES -1 INTO E-LEFT. IN THIS CASE, C(AC) = 123456,,701234 AND +;C(E) = 0. HENCE, THE RESULT IN E SHOULD BE -1,,601234. + +C66500: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + SETZM 6 ;CLEAR E + HRROM 5,6 ;*HRROM SHOULD PLACE -1,,701234 INTO E + CAME 5,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 6,[-1,,701234] ;PASS IF C(E) = -1,,701234 + STOP + + +;********** + +;THIS TEST VERIFIES THAT HRROS PLACES -1 INTO THE LEFT HALF OF E, BUT DOES NOT +;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,701234 +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 +;AND -1,,701234 RESPECTIVELY. + +C66600: SETZ 0 ;PRELOAD AC WITH 0 + MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HRROS 0,17 ;HRROS SHOULD PLACE -1,,701234 INTO E + CAME 0,[0] ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 17,[-1,,701234] ;PASS IF C(E)=-1,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT HRROS PLACES -1 INTO THE LEFT HALF OF E, BUT DOES NOT +;AFFECT THE RIGHT HALF OF E. IF AC IS NON-ZERO THE RESULT IN E IS +;ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=16, C(AC)=0 AND C(E)=123456,,701234 +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,701234 +;AND -1,,701234 RESPECTIVELY. + +C66610: SETZ 16, ;PRELOAD AC WITH 0 + MOVE 17,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HRROS 16,17 ;*HRROS SHOULD PLACE -1,,701234 INTO + ;BOTH AC AND E + CAME 16,[-1,,701234] ;PASS IF C(AC)=-1,,701234 + STOP + CAME 17,[-1,,701234] ;PASS IF C(E)=-1,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLRO PLACES C(E-LEFT) INTO AC-RIGHT AND +;PLACES -1 INTO AC-LEFT. IN THIS CASE, C(AC)=0 +;C(E)=765432,,107654. HENCE, THE RESULT IN THE AC SHOULD BE -1,,765432. + +C66700: SETZ 4, ;CLEAR AC + MOVE 5,[765432,,107654] ;PRELOAD E WITH 765432,,107654 + HLRO 4,5 ;*HLRO SHOULD PLACE -1,,765432 INTO THE AC + CAME 4,[-1,,765432] ;PASS IF C(AC)=-1,,765432 + STOP + CAME 5,[765432,,107654] ;PASS IF C(E) IS UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT HLROI PLACES -1,,0 INTO THE AC. +;IN THIS CASE, C(AC)=123456,,765432 AND E=070707. HENCE, THE +;RESULT IN THE AC SHOULD BE -1,,0 + +C67000: MOVE 3,[123456,,765432] ;PRELOAD AC WITH 123456,,765432 + HLROI 3,070707 ;*HLROI SHOULD PLACE -1,,0 INTO THE AC + CAME 3,[-1,,0] ;PASS IF C(AC)=-1,,0 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLROM PLACES C(AC-LEFT) INTO E RIGHT AND +;PLACES -1 INTO E-LEFT +;IN THIS CASE, C(AC)=123456,,123422 AND C(E)=707070,,717171 +;HENCE, THE RESULT IN E SHOULD BE -1,,123456 + +C67100: MOVE 1,[123456,,123422] ;PRELOAD AC WITH 123456,,123422 + MOVE 2,[707070,,717171] ;PRELOAD AC WITH 707070,,717171 + HLROM 1,2 ;*HLROM SHOULD PLACE -1,,123456 INTO E + CAME 1,[123456,,123422] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[-1,,123456] ;PASS IF C(E)=-1,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT HLROS PLACES C(E-LEFT) INTO E-RIGHT AND +;PLACES -1 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0 +;AND -1,,123456 RESPECTIVELY + +C67200: SETZ 0 ;PRELOAD AC WITH 0 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLROS 0,7 ;*HLROS SHOULD PLACE -1,,123456 INTO E + ; + CAIE 0,0 ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 7,[-1,,123456] ;PASS IF C(E)=-1,,123456 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLROS PLACES C(E-LEFT) INTO E-RIGHT AND +;PLACES -1 INTO E-LEFT. IF AC IS NON-ZERO, THE RESULT IN E +;IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123456,,701234. +;HENCE, THE RESULT IN AC AND E SHOULD BE -1,,123456 +;AND -1,,123456 RESPECTIVELY. + +C67210: SETZ 1, ;PRELOAD AC WITH 0 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLROS 1,7 ;*HLROS SHOULD PLACE -1,,123456 INTO + ;BOTH AC AND E + CAME 1,[-1,,123456] ;PASS IF C(AC)=-1,,123456 + STOP + CAME 7,[-1,,123456] ;PASS IF C(E)=-1,,123456 + STOP + +;********** +;THIS TEST VERIFIES THAT HRRES PLACES C(E-RIGHT) INTO E-RIGHT +;AND PLACES BIT 18 OF E INTO BITS 0 THRU 17 OF E. IF AC IS NON-ZERO, +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=0 AND C(E)=123456,,701234 +;HENCE, THE RESULT IN AC AND E SHOULD BE 0 +;AND -1,,701234 RESPECTIVELY. + +C67300: SETZ 0, ;PRELOAD AC WITH 0 + MOVE 3,[123456,,701234] ;PRELOAD WITH 123456,,701234 + HRRES 0,3 ;HRRES SHOULD PLACE -1,,701234 INTO E + + SKIPE ;PASS IF C(AC) IS UNCHANGED + STOP + CAME 3,[-1,,701234] ;PASS IF C(E)=-1,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT HRRES, PLACES C(E-RIGHT) INTO E-RIGHT +;AND PLACES BIT 18 OF E INTO BITS 0 THRU 17 OF E. IF AC IS NON-ZERO, +;THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=0 AND C(E)=123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,701234 +;AND -1,,701234 RESPECTIVELY. + +C67310: SETZ 1, ;PRELOAD AC WITH 0 + MOVE 3,[123456,,701234] ;PRELOAD WITH 123456,,701234 + HRRES 1,3 ;HRRES SHOULD PLACE -1,,701234 INTO + ;BOTH AC AND E + CAME 1,[-1,,701234] ;PASS IF C(AC)=-1,,701234 + STOP + CAME 3,[-1,,701234] ;PASS IF C(E)=-1,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT HLRES PLACES C(E-LEFT) INTO E-RIGHT +;AND PLACES BIT 0 OF E INTO BITS 0 THRU 17 OF E. IF AC IS +;NON-ZERO, THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=0, C(AC)=-1,,-1 AND C(E) 123456,,701234 +;HENCE, THE RESULTS IN AC AND E SHOULD BE -1,,-1 +;AND 0,,123456 RESPECTIVELY. + +C67400: SETO 0, ;PRELOAD AC WITH -1,,-1 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLRES 0,7 ;*HLRES SHOULD PLACE 0,,123456 INTO E + + CAME 0,[-1] ;PASS IF C(AC) IS UNCHANGED + STOP + CAIE 7,123456 ;PASS IF C(E)=0,,123456 + STOP + +;********** + +;THIS TEST VERIFIES THAT HLRES PLACES C(E-LEFT) INTO E-RIGHT +;AND PLACES BIT 0 OF E INTO BITS 0 THRU 17 OF E. IF AC IS +;NON-ZERO, THE RESULT IN E IS ALSO PLACED INTO THE AC. +;IN THIS CASE, AC=1, C(AC)=-1,,-1 AND C(E) 123456,,701234. +;HENCE, THE RESULTS IN AC AND E SHOULD BE 0,,123456 +;AND 0,,123456 RESPECTIVELY. + +C67410: SETO 1, ;PRELOAD AC WITH -1,,-1 + MOVE 7,[123456,,701234] ;PRELOAD E WITH 123456,,701234 + HLRES 1,7 ;*HLRES SHOULD PLACE 0,,123456 INTO + ;BOTH AC AND E + CAIE 1,123456 ;PASS IF C(AC)=0,,123456 + STOP + CAIE 7,123456 ;PASS IF C(E)=0,,123456 + STOP + +;********** +SUBTTL TEST OF MSCL LOGICAL TEST INSTRUCTIONS + +;********** + +;THIS TEST VERIFIES THAT TRNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TRNE SHOULD SKIP THE NEXT INSTRUCTION. THE AC IS ALSO +;CHECKED FOR NO MODIFICATION. + +C67500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNE 17,3 ;*TRNE SHOULD SKIP THE NEXT INSTRUCTION + STOP + CAME 17,[123456,,701234] ;PASS IF C AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TRNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRNE SHOULD NOT SKIP THE NEXT INSTRUCTION. THE AC IS ALSO +;CHECKED FOR NO MODIFICATION. + +C67510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNE 16,300 ;*TRNE SHOULD NOT SKIP THE NEXT INSTRUCTION + SKIPA ;PASS IF TRNE DID NOT SKIP + STOP + CAME 16,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TLNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLNE SHOULD SKIP THE NEXT INSTRUCTION, THE AC IS ALSO +;CHECKED FOR NO MODIFICATION. + +C67600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNE 15,300 ;*TLNE CHOULD SKIP + STOP + CAME 15,[123456,,701234] ;PASS IF C(AC) IS UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TLNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLNE SHOULD NOT SKIP THE NEXT INSTRUCTION, THE AC IS ALSO +;CHECKED FOR NO MODIFICATION + +C67610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNE 14,3 ;*TLNE SHOULD NOT SKIP + SKIPA ;PASS IF TLNE DID NOT SKIP + STOP + CAME 14,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TRNA ALWAYS SKIPS THE NEXT SEQUENTIAL +;INSTRUCTION. HENCE, TRNA IS INDEPENDENT OF BOTH C(A) AND E +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRNA SHOULD SKIP THENEXT INSTRUCTION AND NOT ALTER C(AC). + +C67700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNA 13,3 ;*TRNA SHOULD ALWAYS SKIP + STOP + CAME 13,[123456,,701234] ;PASS IFC(AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFhES THAT TRNA ALWAYS SKIPS THE NEXT SEQUENTIAL +;INSTRUCTION. HENCE, TRNA IS INDEPENDENT OF BOTH C(A) AND E. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRNA SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C67710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNA 12,300 ;*TRNA SHOQLD ALWAYS SKIP + STOP + CAME 12,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIaS THAT TLNA ALWAYS SKIPS THE NEXT SEQUENTIAL +;INSTRUCTION. HENCE, TLNA IS INDEPENDENt OF BOTH C(AC) AND E. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLNA SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNA 11,3 ;*TLNA SHOULD ALWAYS SKIP + STOP + CAME 11,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TLNA ALWAYS SKIPS THE NEXT SEQUENTIAL +;INSTRUCTION. HENCE, TLNA IS INDEPENDENT OF BOTH C(AC) AND E. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TLNA SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70010: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNA 10,300 ;*TLNA SHOULD ALWAYS SKIP + STOP + CAME 10,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TRNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN +;E ARE ZERO. IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TRNN SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNN 7,300 ;*TRNN SHOULD SKIP + SToP + CAME 7,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TRNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN +;E ARE ZERO. IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRNN SHoULD NOT SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRNN 6,3 ;*TRNN SHOULD NOT SKIP + SKIPA ;PASS IF TRNN DID NOT SKIP + STOP + CAME 6,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TLNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLNN SHOULD SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNN 5,3 ;*TLNN SHOULD SKIP + STOP + CAME 5,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES thAT TLNN SkIPS THE NEXT SEQUENTIAL INSTRUcTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TLNN SHOULD NOT SKIP THE NEXT INSTRUCTION AND NOT ALTER C(AC). + +C70210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLNN 4,300 ;*TLNN SHOULD NOT SKIP + SKIPA ;PASS IF TLNN DOES NOT SKIP + STOP + CAME 4,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH +;BOTH HALVES SNAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSNE SHOULD SKIP THE NEXT INSTRUCtION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED. + +C70300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 4,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSNE 3,4 ;*TSNE SHOULD SKIP + STOP + CAME 3,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 4,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH +;BOTH HALVES SNAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654323 +;HENCE, TSNE SHOULD NOT SKIP THE NEXT INSTRUCTION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED. + +C70310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 3,[76543,,654323] ;PRELOAD E WITH 076543,,654323 + TSNE 2,3 ;*TSNE SHOULD NOT SKIP + SKIPA ;PASS IF TSOE DId NOT SKIP + STOP + CAME 2,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 3,[76543,,654323] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSNA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;NEITHER AC NOR E ARE AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSNA SHOULD SKIP THE NEXT INSTRUCTION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + +C70400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 2,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSNA 1,2 ;*TSNA SHOULD SKIP + STOP + CAME 1,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 2,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSNA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;NEITHER AC NOR E ARE EFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654323 +;HENCE, TSNA SHOULD SKIP THE NEXT INSTRUCTION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + +C70410: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 1,[76543,,654323] ;PRELOAD E WITH 076543,,654323 + TSNA 0,1 ;*TSNA SHOULD SKIP + STOP + CAME 1,[76543,,654323] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL HITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH +;BOTH HALVES SWAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076547,,654321 +;HENCE, TSNN SHOULD SKIP THE NEXT INSTRUCTION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + +C70500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 0,[76547,,654321] ;PRELOAD E WITH 076547,,654321 + TSNN 17,0 ;*TSNN SHOULD SKIP + STOP + CAME 17,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 0,[76547,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN C(E) WITH +;BOTH HALVES SWAPPED ARE ZERO. NEITHER AC NOR E ARE AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSNN SHOULD NOT SKIP THE NEXT INSTRUCTION AND +;BOTH C(AC) AND C(E) SHOULD BE UNMODIFIED + +C70510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 17,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSNN 16,17 ;*TSNN SHOULD NOT SKIP + SKIPA ;PASS IF TSNN DID NOT SKIP + STOP + CAME 16,[123456,,701234] ;PASS IF C(AC) UNCHANGED + STOP + CAME 17,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TRZ CHANGES ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701234 + +C70600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234] + TRZ 12,3 ;*TRZ SHOULD PLACE 123456,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TRZ DOES NOT SKIP + STOP + CAME 15,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRZ CHANGES ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701034 + +C70610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRZ 14,300 ;*TRZ SHOULD PLACE 123456,,701234 INTO + ;THE ACAND NOT SKIP + SKIPA ;PASS IF TRX DOES NOT SKIP + STOP + CAME 14,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + STOP + +;********** +;THIS TEST VERIFIES THAT TLZ CHANGES ALL BITS IN THE AC-LEFT WHICH +;CORRESPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. +;IN THIS CACE, C(AC)=123456,,701234 AND E=300 +;HENCE, THE RESULT IN THE AC SHOUL BE 123456,,701234 + +C70700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZ 13,300 ;*TLZ SHOULD PLACE 123456,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TLZ DOES NOT SKIP + STOP + CAME 13,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLZ CHANGES ALL BITS IN THE AC-LEFT WHICH +;CORRSPOND TO 1'S IN E TO ZERO AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, THE RESULT IN THE AC SHOULD BE 123454,,701234 + +C70710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZ 12,3 ;*TLZ SHOULD PLACE 123454,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TLZ DOES NOT SKIP + STOP + CAME 12,[123454,,701234] ;PASS IF C(AC)=123454,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TRZE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701234 + +C71000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRZE 11,3 ;*TRZE SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 11,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRSPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRZE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOUDL BE 123456,,701034 + +C71010: MOVE 10,[123456,,701234] ;PRELOAD AC WIT@ 123456,,701234 + TRZE 10,300 ;*TRZE SHOULD PLACE 123456,,701034 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TRZE DOES NOT SKIP + STOP + CAME 10,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + STOP + +;********** +;THIS TEST VERIFIES THAT TLZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLZE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701234 + +C71100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZE 7,300 ;*TLZE SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 7,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TLZE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123454,,701234 + +C71110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZE 6,3 ;*TLZE SHOULD PLACE 123454,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TLZE DOES NOT SKIP + STOP + CAME 6,[123454,,701234] ;PASS IF C(AC)=123454,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701234 + +C71200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRZA 5,3 ;*TRZA SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 5,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TRZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701234. + +C71210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRZA 4,300 ;*TRZA SHOULD SKIP AND + ;PLACE 123456,,701034 INTO THE AC + STOP + CAME 4,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + STOP + +;********** +;THIS TEST VERIFIES THAT TLZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRQCTION +;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123454,,701234. + +C71300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZA 3,3 ;*TLZA SHOULD SKIP AND + ;PLACE 123454,,701234 INTO THE AC + STOP + CAME 3,[123454,,701234] ;PASS IF C(AC)=123454,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLZA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TLZA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701234. + +C71310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZA 2,300 ;*TLZA SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 2,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TRZN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701034. + +C71400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRZN 1,300 ;*TRZN SHOULD SKIP AND + ;PLACE 123456,,701034 INTO THE AC + STOP + CAME 1,[123456,,701034] ;PASS IF C(AC)=123456,,701034 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRZN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701234. + +C71410: MOVE 0,[123456,,701234] ;PRELOAD AC WATH 123456,,701234 + TRZN 0,3 ;*TRZN SHOULD PLACE 123456,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TRZN DOES NOT SKIP + STOP + CAME 0,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TLZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLZN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123454,,701234. + +C71500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZN 17,3 ;TLZN SHOULD SKIP AND + ;PLACE 123454,,701234 INTO THE AC + STOP + CAME 17,[123454,,701234] ;PASS IF C(AC)=123454,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BIPS ARE THEN CHANGED TO ZEROS. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TLZN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701234. + +C71510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLZN 16,300 ;*TLZN SHOULD PLACE 123456,,701234 INTO + ;THE AC AND NOT SKIP + SKIPA ;PASS IF TLZN DOES NOT SKIP + STOP + CAME 16,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TSZ CLEARS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES +;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321. +;HENCE, TSZ SHOULD NOT SKIP AND C(AC) SHOULD BE 123456,,701234. + +C71600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 16,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + TSZ 15,16 ;*TSZ SHOULD NOT SKIP AND + ;PLACE 123456,,701234 INTO THE AC + SKIPA ;PASS IF TSZ DID NOT SKIP + STOP + CAME 15,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + CAME 16,[76543,,654321] ;PASS IF C(E) UNCHANCED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSZ CLEARS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES +;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070. +;HENCE, TSZ SHOULD NOT SKIP AND C(AC) SHOULD BE 020406,,501210. + +C71610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 15,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + TSZ 14,15 ;*TSZ SHOULD NOT SKIP AND + ;PLACE 020406,,501210 INTO THE AC + SKIPA ;PASS IF TSZ DID NOT SKIP + STOP + CAME 14,[020406,,501210] ;PASS IF C(AC)=020406,,501210 + STOP + CAME 15,[252525,,707070] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E). +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543. +;HENCE, TDZE SHOULD SKIP AND THE RESULT IN THE AC +;SHOULD BE 123456,,701234. C(E) IS NOT AFFECTED. + +C71700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 14,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDZE 13,14 ;*TDZE SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 13,[123456,,701234] ;PASS IF C(AC)=123456,,701234] + STOP + CAME 14,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)= 123456,,701234 AND C(E)= 754321,,076543 +;HENCE, TDZE SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE 023456,,701234 C(E) IS NOT AFFECTED + +C71710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 13,[754321,,076543] ;PRELOAD E WITH 754321,,076543 + TDZE 12,13 ;*TDZE SHOULD NOT SKIP AND + ;PLACE 023456,,701234 INTO THE AC + SKIPA ;PASS IF TDZE DOES NOT SKIP + STOP + CAME 12,[023456,,701234] ;PASS IF C(AC)= 023456,,701234 + STOP + CAME 13,[754321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRECPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)= 123456,,701234 AND C(E)= 076543,,654321 +;HENCE, TSZE SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE 123456,,701234 C(E) IS NOT AFFECTED + +C72000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 12,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + TSZE 11,12 ;*TSZE SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 11,[123456,,701234] ;PASS IF C(AC)= 123456,,701234 + STOP + CAME 12,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSZE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C (E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO +;IN THIS CASE, C(AC)= 123456,,701234 AND C(E)= 076543,,657321 +;HENCE, TSZE SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE 120456,,701234 C(E) IS NOT AFFECTED + +C72010: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 11,[76543,,657321] ;PRELOAD E WITH 076543,,654321 + TSZE 10,11 ;*TSZE SHOULD NOT SKIP AND + ;PLACE 120456,,701234 INTO THE AC + SKIPA ;PASS IF TSZE DID NOT SKIP + STOP + CAME 10,[120456,,701234] ;PASS IF C(AC)= 120456,,701234 + STOP + CAME 11,[76543,,657321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDZA CLEARS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) AND ALWAYS +;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)= 654321,,076543 +;HENCE, TD2A SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 123456,,701234 + +C72100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 10,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDZA 7,10 ;*TDZA SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 7,[123456,,701234] ;PASS IF C(AC)= 123456,,701234 + STOP + CAME 10,[654321,,076543] ;PASS IF C(AC)=123456,,701234 + STOP + CAME 10,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDZA CLEARS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 +;HENCE, TDZA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 121052,,000204 + +C72110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 7,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + TDZA 6,7 ;*TDZA SHOULD SKIP AND + ;PLACE 121052,,000204 INTO THE AC + STOP + CAME 6,[121052,,000204] ;PASS IF C(AC)=121052,,000204 + STOP + CAME 7,[252525,,707070] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES TH`T TSZA CLEARS AHL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSZA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 123456,,701234 + +C72200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 6,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + TSZA 5,6 ;*TSZA SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 5,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + CAME 6,[076543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSZA CLEARS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=701234,,123456 +;HENCE, TSZA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 0 + +C72210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 5,[701234,,123456] ;PRELOAD E WITH 701234,,123456 + TSZA 4,5 ;*TSZA SHOULD SKIP AND + ;PLACE 0 INTO THE AC + STOP + CAME 4,[0] ;PASS IF C(AC)=0 + STOP + CAME 5,[701234,,123456] ;PASS IF C(E) UNCHANGED + SToP + +;********** +;THIS TEST VERIFIES THAT TDZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGEDTO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076547 +;HENCE, TDZN SHOULD SKIP AND THE RESULT IN THE AC +;SHOULD BE 123456(,701230. C(E) IS NOT AFFECTED. + +C72300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 4,[654321,,76547] ;PRELOAD E WITH 654321,,076547 + TDZN 3,4 ;*TDZN SHoULD SKIP AND + ;PLACE 123456,,701230 INTO THE AC + STOP + CAME 3,[123456,,701230] ;PASS IF C(AC)=123456,,701230 + STOP + CAME 4,[654321,,076547] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;HENCE, TDZN SHOULD NOT SKIP AND THE RESULT IN THE AC +;SHOULD BE 123456,,701234. C(E) IS NOT AFFECTED. + +C72310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 3,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDZN 2,3 ;*TDZN SHOULD NOT SKIP AND + ;PLACE 123456,,701234 INTO THE AC + SKIPA ;PASS IF TDZN DOES NOT SKIP + STOP + CAME 2,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + CAME 3,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THaT TSZN SKIPS THE NEXT SEQQENPIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=077543,,654321. +;HENCE, TSZN SHOULD SKIP AND THE RESULT IN THE AC +;SHOULD BE 123456,,700234. C(E) IS NOT AFFECTED. + +C72400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 2,[077543,,654321] ;PRELOAD E WITH 077543,,654321 + TSZN 1,2 ;*TSZN SHOULD SKIP AND + ;PLACE 123456,,700234 INTO THE AC + STOP + CAME 1,[123456,,700234] ;PASS IF C(AC)=123456,,700234 + STOP + CAME 2,[77543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSZN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ZERO. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321.- +;HENCE, TSZN SHOULD NOT SKIP AND THE RESULT IN THE AC +;SHOULD BE 123456,,701234. C(E) IS NOT AFFECTED. + +C72410: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 1,[76543,,654321] ;PRElOAD E WITH 076543,,654321 + TSZN 0,1 ;*TSZN SHOULD NOT SKIP AND + ;PLACE 123456,,701234 INTO THE AC + SKIPA ;PASS IF TSZN DOES NOT SKIP + STOP + CAME 0,[123456,,701234] ;PASS IF C(AC)=123456,,701234] + STOP + CAME 1,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TRC COMPLEMENTS ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, THE RESULT IN THE AC SHOUHD BE 123456,,701237 + +C72500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRC 17,3 ;*TRC SHOULD NOT SKIP AND + ;PLACE 123456,,701237 INTO THE AC + SKIPA ;PASS IF TRC DID NOT SKIP + STOP + CAME 17,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRC COMPLEMENTS ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701134 + +C72510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRC 16,300 ;*TRC SHOULD NOT SKIP AND + ;PLACE 123456,,701134 INTO THE AC + SKIPA ;PASS IF TRC DID NOT SKIP + STOP + CAME 16,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + STOP + +;********** +;THIS TEST VERIFIES THAT TLC COMPLEMENTS ALL BITS IN THE AC-LEFT WHICH +;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, ThE RESULT IN THE AC SHOULD BE 123756,,701234. + +C72600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLC 15,300 ;*TLC SHOULD NOT SKIP AND + ;PLACE 123756,,701234 INTO THE AC + SKIPA ;PASS IF TLC DID NOT SKIP + STOP + CAME 15,[123756,,701234] ;PASS IF A(AC)=123756,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLC COMPLEMENTS ALL BITS IN THE AC-LEFT WHICH +;CORRESPOND TO 1'S IN E AND DOES NOT SKIP. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, THE RESULT IN THE AC SHOULD BE 123455,,701234. + +C72610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLC 14,3 ;*TLC SHOULD NOT SKIP AND + ;PLACE 123455,,701234 INTO THE AC + SKIPA ;PASS IF TLC DID NOT SKIP + STOP + CAME 14,[123455,,701234] ;PASS IF C(AC)=123455,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRCE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701237. + +C72700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCE 13,3 ;*TRCE SHOULD SKIP AND + ;PLACE 123456,,701237 INTO ThE AC + STOP + CAME 13,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TRCE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701134 + +C72710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCE 12,300 ;*TRCE SHOULD NOT SKIP AND + ;PLACE 123456,,701134 INTO THE AC + SKIPA ;PASS IF TRCE DID NOT SKIP + STOP + CAME 12,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + STOP + +;********** +;THIS TEST VERIFIES THAT TLCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED. +;IN THIS CASE, C(AC)=123456,,701234 AND E=300. +;HENCE, TLCE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123756,,701234. + +C73000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCE 11,300 ;*TLCE SHOULD SKIP AND + ;PLACE 123756,,701234 INTO THE AC + STOP + CAME 11,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TLCE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123455,,701234. + +C73010: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCE 10,3 ;*TLCE SHOULD NOT SKIP AND + ;PLACE 123455,,701234 INTO THE AC + SKIPA ;PASS IF TLCE DID NOT SKIP + STOP + CAME 10,[123455,,701234] ;PASS IF C(AC)=123455,,701234] + STOP + +;********** +;THIS TEST VERIFIES THAT TRCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND COMPLEMENTS ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E. +;IN THIS CASE, C(AC)=123456,,701234 AND E=3. +;HENCE, TRCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701237. + +C73100: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCA 7,3 ;*TRCA SHOULD SKIP AND + ;PLACE 123456,,701237 INTO THE AC + STOP + CAME 7,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND COMPLEMENTS ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701134 + +C73110: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCA 6,300 ;*TRCA SHOULD SKIP AND + ;PLACE 123456,,701134 INTO THE AC + STOP + CAME 6,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + STOP + +;********** +;THIS TEST VERIFIES THAT TLCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND COMPLEMENTS ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TLCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD 123456,,701234 + +C73200: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCA 5,3 ;*TLCA SHOULD SKIP AND + ;PLACE 12345,,701234 INTO THE AC + STOP + CAME 5,[123455,,701234] ;PASS IF C(AC)=123455,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLCA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND COMPLEMENTS ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLCA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123756,,701234 + +C73210: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCA 4,300 ;*TLCA SHOULD SKIP AND + ;PLACE 123756,,701234 INTO THE AC + STOP + CAME 4,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRCN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND RESULT IN THE AC SHOULD BE 123456,,701134 + +C73300: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCN 3,300 ;*SHOULD SKIP AND + ;PLACE 123456,,701134 INTO THE AC + STOP + CAME 3,[123456,,701134] ;PASS IF C(AC)=123456,,701134 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TRCN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701237 + +C73310: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRCN 2,3 ;*TRCN SHOULD NOT SKIP AND + ;PLACE 123456,,701237 INTO THE AC + SKIPA ;PASS IF TRCN DID NOT SKIP + STOP + CAME 2,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** +;THIS TEST VERIFIES THAT TLCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED +;IN THE CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TLCN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701234 + +C73400: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCN 1,3 ;*TLCN SHOULD SKIP AND + ;PLACE 123455,701234 INTO THE AC + STOP + CAME 1,[123455,,701234] ;PASS IF C(AC)=123455,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZER. +;THESE MASKED AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLCN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123756,,701234 + +C73410: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLCN 0,300 ;*TLCN SHOULD NOT SKIP AND + ;PLACE 123756,,701234 INTO THE AC + SKIPA ;PASS IF TLCN DID NOT SKIP + STOP + CAME 0,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TSL COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES +;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)6543,,654321 +;HENCE, TSC SHOULD NOT SKIP AND C(AC) SHOULD BE -1,,-1 + +C73500: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 0,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + TSC 17,0 ;*TSC SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TSC DOES NOT SKIP + STOP + CAME 17,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 0,[076543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSC COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND DOES +;NOT SKIP THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 +;HENCE, TSC SHOULD NOT SKIP AND C(AC) SHOULD BE 624426,,553711 + +C73510: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 17,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + TSC 16,17 ;*TSC SHOULD NOT SKIP AND + ;PLACE 624426,,553711 INTO THE AC + SKIPA ;PASS IF TSC DOES NOT SKIP + STOP + CAME 16,[624426,,553711] ;PASS IF C(AC)=624426,,553711 + STOP + CAME 17,[252525,,707070] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;HENCE, TDCE SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C73600: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 16,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDCE 15,16 ;*TDCE SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 15,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 16,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E) 754321,,076543 +;HENCE, TDCE SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE 677777,,-1 C(E) IS NOT AFFECTED. + +C73610: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 15,[754321,,076543] ;PRELOAD E WITH 754321,,076543 + TDCE 14,15 ;*TDCE SHOULD NOT SKIP AND + ;PLACE 677777,,-1 INTO THE AC + SKIPA ;PASS IF TDCE DOES NOT SKIP + STOP + CAME 14,[677777,,-1] ;PASS IF C(AC)=677777,,-1 + STOP + CAME 15,[754321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSCE SHOULD SKIP AND THE RESULT IN THE AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C73700: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 14,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSCE 13,14 ;*TSCE SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 13,[-1] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSCE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,701234 AND C(E)=076543,,657321 +;HENCE, TSCE SHOULD NOT SKIP AND THE RESULT IN THE AC +;SHOULD BE 774777,,-1. C(E) IS NOT AFFECTED. + +C73710: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 13,[76543,,657321] ;PRELOAD E WITH 076543,,657321 + TSCE 12,13 ;*TSCE HOULD NOT SKIP AND + ;PLACE 774777,,-1 INTO THE AC + SKIPA ;PASS IF TSCE DOES NOT SKIP + STOP + CAME 12,[774777,,-1] ;PASS IF C(AC)=774777,,-1 + STOP + CAME 13,[76543,,657321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDCA COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;HENCE, TDCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + +C74000: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 12,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDCA 11,12 ;*TDCA SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 11,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 12,[654321,,76543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDCA COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) AND SLWAYS +;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 +;HENCE, TDCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 371173,,006244 + +C74100: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 11,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + TDCA 10,11 ;*TDCA SHOULD SKP AND + ;PLACE 371173,,006244 INTO THE AC + STOP + CAME 10,[371173,,6244] ;PASS IF C(AC)=371173,,006244 + STOP + CAME 11,[252525,,707070] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSCA COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + +C74200: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 10,[076543,,654321] ;PRELOAD E WITH 076543,,654321 + TSCA 7,10 ;*TSCA CHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 7,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 10,[076543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSCA COMPLEMENTS ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=701234,,123456 +;HENCE, TSCA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 0 + +C74210: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 7,[701234,,123456] ;PRELOAD E WITH 701234,,123456 + TSCA 6,7 ;*TSCA SHOULD SKIP AND + ;PLACE 0 INTO THE AC + STOP + CAME 6,[0] ;PASS IF C(AC)=0 + STOP + CAME 7,[701234,,123456] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THE CASE, C(AC)=123456,,701234 AND C(E)=654321,,076547 +;HENCE, TDCN SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,777773 C(E) IS NOT AFFECTED + +C74300: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 6,[654321,,76547] ;PRELOAD E WITH 654321,,076547 + TDCN 5,6 ;*TDCN SHOULD SKIP AND + ;PLACE -1,,777773 INTO THE AC + STOP + CAME 5,[-1,,777773] ;PASS IF C(AC)=-1,777773 + STOP + CAME 6,[654321,,76547] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;HENCE, TDCN SHOULD NOT SKIP AND THE REUSLT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C74310: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 5,[654321,,76543] ;PRELOAD E WITH 654321,,076543 + TDCN 4,5 ;*TDCN SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TDCN DOES NOT SKIP + STOP + CAME 4,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 5,[654321,,76543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=077543,,654321 +;HENCE, TSCN SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,776777. C(E) IS NOT AFFECTED + +C74400: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 4,[77543,,654321] ;PRELOAD E WITH 077543,,654321 + TSCN 3,4 ;*TSCN SHOULD SKIP AND + ;PLACE -1,,776777 INTO THE AC + STOP + CAME 3,[-1,,776777] ;PASS IF C(AC)=-1,776777 + STOP + CAME 4,[77543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSCN SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN COMPLEMENTD +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSCN SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1. C(E) IS NOT AFFECTED. + +C74410: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 3,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSCN 2,3 ;*TSCN SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TSCN DOES NOT SKIP + STOP + CAME 2,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 3,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TRO CHANGES ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E TO ONES AND DOES ANT SKIP +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701237 + +C74500: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRO 1,3 ;*TRO SHOULD NOT SKIP AND + ;PLACE 123456,,701237 INTO THE AC + SKIPA ;PASS IF TRO DID NOT SKIP + STOP + CAME 1,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRO CHANGES ALL BITS IN THE AC-RIGHT WHICH +;CORRESPOND TO 1'S IN E TO ONES AND DOES NOT SKIP +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, THE RESULT IN THE AC SHOULD BE 123456,,701224 + +C74510: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRO 0,300 ;*TRO SHOULD NOT SKIP AND + ;PLACE 123456,,701334 INTO THE AC + SKIPA ;PASS IF TRO DID NOT SKIP + STOP + CAME 0,[123456,,701334] ;PASS IF C(AC)=123456,,701334 + STOP + +;********** +;THIS TEST VERIFIES THAT TLO CHANGES ALL BITS IN THE AC-LEFT WHICH +;CORRESPOND TO 1'S IN E TO ONES AND DOES NOT SKIP +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, THE RESULT IN THE AC SHOULD BE 123756,,701234 + +C74600: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLO 17,300 ;*TLO SHOULD NOT SKIP AND + ;PLACE 123756,,701234 INTO THE AC + SKIPA ;PASS IF TLO DID NOT SKIP + STOP + CAME 17,[123756,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;********** + +;THIS TEST VERIFIES THAT TLO CHANGES ALL BITS IN THE AC-LEFT WHICH +;CORRESPOND TO 1'S IN E TO ONES AND DOES NOT SKIP +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, THE RESULT IN THE AC SHOULD BE 123457,,701234 + +C74610: MOVE 16,[123456,,70234] ;PRELOAD AC WITH 123456,,701234 + TLO 16,3 ;*TLO SHOULD NOT SKIP AND + ;PLACE 123457,,701234 INTO THE AC + SKIPA ;PASS IF DID NOT SKIP + STOP + CAME 16,[123457,,70234] ;PASS IF C(AC)=123457,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TROE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TROE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND RESULT IN THE AC SHOUD BE 123456,,701237 + +C74700: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TROE 15,3 ;TROE SHOULD SKIP AND + ;PLACE 123456,,701237 IN TO THE AC + STOP + CAME 15,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TROE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TROE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701334 + +C74710: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TROE 14,300 ;*TROE SHOULD NOT SKIP AND + ;PLACE 123456,,701224 INTO THE AC + SKIPA ;PASS IF DID NOT SKIP + STOP + CAME 14,[123456,,701334] ;PASS IF C(AC)=123456,,701334 + STOP + +;********** +;THIS TEST VERIFIES THAT TLOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE TEN CHANGED TO ONES +;IN THES CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLOE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123756,,701234 + +C75000: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLOE 13,300 ;*TLOE SOULD SKIP AND + ;PLAND 123756,,701234 INTO THE AC + STOP + CAME 13,[123756,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + +;******** + +;THIS TEST VERIFIES THAT TLOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TLOE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123457,,701234 + +C75010: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLOE 12,3 ;*TLOE SHOULD NOT SKIP AND + ;PLACE 123457,,701234 INTO THE AC + SKIPA ;PASS IF TLOE DID NOT SKIP + STOP + CAME 12,[123457,,701234] ;PASS IF C(AC)=123457,,701234 + STOP + +;******* +;THIS TEST VERIFIES THAT TROA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTUCTION +;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TROA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701237 + +C75100: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TROA 11,3 ;*TROA SHOULD SKIP AND + ;PLACE 123456,,701237 + STOP + CAME 11,[123456,,701237] ;PASS IF C(AC)=123456,,701237 + STOP + +;********** + +;THIS TEST VERIFIES THAT TROA ALWAYS SKIPS THE NEXT SEQUENTAIL INSTRUCTION +;AND CHANGES ALL BITS IN AC-RIGHT WHICH CORRESPOND TO 1'S IN E TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TROA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123456,,701334 + +C75110: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TROA 10,300 ;*TROA SHOULD SKIP AND + ;PLACE 123456,,701334 INTO THE AC + STOP + CAME 10,[123456,,701334] ;PASS IF C (AC)=123456,,701334 + STOP + +;********** +;THIS TEST VERIFIES THAT TLOA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTUCTION +;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND 1'S IN E TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TLOA SHOULD SKIP THE NEXT INSTRUCTION AND RESULT IN +;THE AC SHOULD BE 123457,,701234 + +C75200: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLOA 7,3 ;*TLOA SHOULD SKIP AND + ;PLACE 123457,,701234 INTO THE AC + STOP + CAME 7,[123457,,701234] ;PASS IF C(AC)=123457,,701234] + STOP + +;********** + +;THIS TEST VERIFIES THAT TLOA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;AND CHANGES ALL BITS IN AC-LEFT WHICH CORRESPOND TO 1'S IN E TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLOA SHOULD SKIP THE NEXT INSTRUCTION AND THE RESULT IN +;THE AC SHOULD BE 123756,,701234 + +C75210: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLOA 6,300 ;*TLOA SHOULD SKIP AND + ;PLACE 123756,,701234 INTO THE AC + STOP + CAME 6,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TRON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TRON SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701334 + +C75300: MOVE 5,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRON 5,300 ;*TRON SHOULD SKIP AND + ;PLACE 123456,,701334 INTO THE AC + STOP + CAME 5,[123456,,701334] ;PASS IF C(AC)=123456,,701334 + STOP + +;********** + +;THIS TEST VERIFIES THAT TRON SKIPS THE NEXT SEQUENTIAL INSTUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-RIGHT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=3 +;HENCE, TRON SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123456,,701237 + +C75310: MOVE 4,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TRON 4,3 ;*TRON SHOULD NOT SKIP AND + ;PLACE 123456,,701237 INTO THE AC + SKIPA ;PASS IF TRON DID NOT SKIP + STOP + CAME 4,[123456,,701237] ;PASS IF C(AC)=123456,701237 + STOP + +;********** +;THIS TEST VERIFIES THAT TLON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)-123456,,701234 AND E=3 +;HENCE, TLON SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123457,,701234 + +C75400: MOVE 3,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLON 3,3 ;*TLON SHOULD SKIP AND + ;PLACE 123457,,701234 INTO THE AC + STOP + CAME 3,[123457,,701234] ;PASS IF C(AC)=123457,,701234 + STOP + +;******* + +;THIS TEST VERIFIES THAT TLON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN AC-LEFT CORRESPONDING TO 1'S IN E ARE ZERO. +;THESE MASKED AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND E=300 +;HENCE, TLON SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION +;AND THE RESULT IN THE AC SHOULD BE 123756,,701234 + +C75410: MOVE 2,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + TLON 2,300 ;*TLON SHOULD NOT SKIP AND + ;PLACE 123756,,701234 INTO THE AC + SKIPA ;PASS IF TLON DID NOT SKIP + STOP + CAME 2,[123756,,701234] ;PASS IF C(AC)=123756,,701234 + STOP + +;********** +;THIS TEST VERIFIES THAT TDOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E)ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;HENCE, TDOE SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C75500: MOVE 1,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 2,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDOE 1,2 ;*TDOE SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 1,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 2,[654321,,76543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDOE SKIPS THE NEXT SEQUENTAIL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=754321,,076543 +;HENCE, TDOE SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTD + +C75510: MOVE 0,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 1,[754321,,76543] ;PRELOAD E WITH 754321,,076543 + TDOE 0,1 ;*TDOE SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TDOE DOES NOT SKIP + STOP + CAME 0,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 1,[754321,,76543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSOE SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1. C(E) IS NOT AFFECTED + +C75600: MOVE 17,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 0,[76543,,654321] ;PRELOAD E WITH 076543,,654321 + TSOE 17,0 ;*TSOE SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 17,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 0,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSOE SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,657321 +;HENCE, TSOE SHOULD NOT SKIP AND THE RESULT IN THE AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED. + +C75610: MOVE 16,[123456,,701234] ;PRELOAD AC WITH 123456,701234 + MOVE 17,[76543,,657321] ;PRELOAD E WITH 076543,,657321 + TSOE 16,17 ;*TSOE SHOULD NOT SKIP AND + ;*TSOE SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF SKIP + STOP + CAME 16,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 17,[76543,,657321] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDOA PLACES ONES INTO ALL BITS OF THE AC WHICH +;CORRRESPOND TO 1'S IN C(E) AND ALWAYS +;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)= 654321,,076543 +;HENCE, TDOA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + +C75700: MOVE 15,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 16,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDOA 15,16 ;*TDOA SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 15,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 16,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDOA PLACE ONES ALL BIT OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) AND ALWAYS +;SKIPS THE NEXT INSTRUCTION C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=252525,,707070 +;HENCE, TDOA SHOULD ALWAYS SKIP AND C(AC) SHOULD BE 373577,,707274 + +C75710: MOVE 14,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 15,[252525,,707070] ;PRELOAD E WITH 252525,,707070 + TDOA 14,15 ;*TDOA SHOULD SKIP AND + ;PLACE 373577,707274 ONTO THE AC + STOP + CAME 14,[373577,,707274] ;PASS IF C(AC)=373577,,707274 + STOP + CAME 15,[252525,,707070] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSOA PLACE ONES INTO ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSOA SHOULD SLAWAYS SKIP AND C(AC) SHOULD BE -1,,-1 + +C76000: MOVE 13,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 14,[176543,,654321] ;PRELOAD E WITH 076543,,654321 + TSOA 13,14 ;*TSOA SHOULD SKIP AND + ;PLACE -1,,-1 ONTO THE AC + STOP + CAME 13,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 14,[176543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSOA PLACES ONES INTO ALL BITS OF THE AC WHICH +;CORRESPOND TO 1'S IN C(E) WITH BOTH HALVES SWAPPED AND ALWAYS +;SKIPS THE NEXT INSTRUCTION. C(E) IS NOT AFFECTED +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=701234,,123456 +;HENCE, TSOA SHOULD SLWAYS SKIP AND C(AC) SHOULD BE 123456,,701234 + +C76010: MOVE 12,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 13,[701234,,123456] ;PRELOAD E WITH 701234,123456 + TSOA 12,13 ;*TSOA SHOULD SKIP AND + ;PLACE 123456,,701234 INTO THE AC + STOP + CAME 12,[123456,,701234] ;PASS IF C(AC)=123456,,701234 + STOP + CAME 13,[701234,,123456] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TDON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076547 +;HENCE, TDON SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C76100: MOVE 11,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 12,[654321,,076547] ;PRELOAD E WITH 654321,,076547 + TDON 11,12 ;*TDON SHOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 11,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 12,[654321,,076547] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TDON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=654321,,076543 +;THENC, TDON SHOULD NOT SKIP AND THE RESULT IN TH AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C76110: MOVE 10,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 11,[654321,,076543] ;PRELOAD E WITH 654321,,076543 + TDON 10,11 ;*TDON SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TDON DOES NOT SKIP + STOP + CAME 10,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 11,[654321,,076543] ;PASS IF C(E) UNCHANGED + STOP + +;********** +;THIS TEST VERIFIES THAT TSON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVE SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=077543,,654321 +;HENCE, TSON SHOULD SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C76200: MOVE 7,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 10,[77543,,654321] ;PRELOAD E WITH 077543,,654321] + TSON 7,10 ;*TSON HOULD SKIP AND + ;PLACE -1,,-1 INTO THE AC + STOP + CAME 7,[-1] ;PASS IF C(AC)=-1,,-1 + STOP + CAME 10,[77543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + +;THIS TEST VERIFIES THAT TSON SKIPS THE NEXT SEQUENTIAL INSTRUCTION +;IF AND ONLY IF NOT ALL BITS IN THE AC CORRESPONDING TO 1'S IN +;C(E) WITH BOTH HALVES SWAPPED ARE ZERO. THESE MASKED +;AC BITS ARE THEN CHANGED TO ONES. +;IN THIS CASE, C(AC)=123456,,701234 AND C(E)=076543,,654321 +;HENCE, TSON SHOULD NOT SKIP AND THE RESULT IN AC +;SHOULD BE -1,,-1 C(E) IS NOT AFFECTED + +C76210: MOVE 6,[123456,,701234] ;PRELOAD AC WITH 123456,,701234 + MOVE 7,[76543,,654321] ;PRELOAD E WITH 076543MM654321 + TSON 6,7 ;*TSON SHOULD NOT SKIP AND + ;PLACE -1,,-1 INTO THE AC + SKIPA ;PASS IF TSON DOES NOT SKIP + STOP + CAME 6,[-1] ;PASS IF C(AC)-=1,,-1 + STOP + CAME 7,[76543,,654321] ;PASS IF C(E) UNCHANGED + STOP + +;********** + JRST BEGEND diff --git a/apps/pdp10/diags/klad/dakaf/README.md b/apps/pdp10/diags/klad/dakaf/README.md new file mode 100644 index 000000000..7cbbc5b55 --- /dev/null +++ b/apps/pdp10/diags/klad/dakaf/README.md @@ -0,0 +1,276 @@ +--- +layout: page +title: PDP-10 KA10 Basic Instruction Diagnostic #6 +permalink: /apps/pdp10/diags/klad/dakaf/ +machines: + - id: testka10 + type: pdp10 + config: /devices/pdp10/machine/ka10/test/debugger/machine.xml + debugger: true + commands: a 30724 DAKAF.MAC +--- + +PDP-10 KA10 Basic Instruction Diagnostic #6 +------------------------------------------- + +The *PDP-10 KA10 Basic Instruction Diagnostic #6* (MAINDEC-10-DAKAF) test code has been extracted from +[DAKAFM.MAC](DAKAFM.MAC.txt) [[original](http://pdp-10.trailing-edge.com/klad_sources/01/klad.sources/dakafm.mac.html)] +for use with the [PDP-10 Test Machine with Debugger](/devices/pdp10/machine/ka10/test/debugger/) below. + +Resources for this test include: + +- [Instructions](#dakaftxt) +- [History](#dakafhst) +- [Source Code](#dakafmac) +- [MACRO-10 Listing](DAKAF.LST.txt) +- [Additional Information](http://archive.pcjs.org/apps/pdp10/diags/klad/dakaf/DAKAF.SEQ.txt) + +{% include machine.html id="testka10" %} + +The Debugger's assemble ("a") command can be used to test the new built-in +[MACRO-10 Mini-Assembler](/modules/pdp10/lib/macro10.js), which supports a subset +of the [MACRO-10](http://archive.pcjs.org/pubs/dec/pdp10/tops10/02_1973AsmRef_macro.pdf) assembly language. +This command: + + a 30724 DAKAF.MAC + +will automatically read the [DAKAF.MAC](DAKAF.MAC.txt) source file (a slightly modified copy of [DAKAFM.MAC](DAKAFM.MAC.txt)), +assemble it, and then load the binary output at the specified address. + +--- + +DAKAF.TXT +--------- + +``` +MAINDEC-10-DAKAF.TXT + + + + + + + IDENTIFICATION + -------------- + + PRODUCT CODE: MAINDEC-10-DAKAF-B-D + + PRODUCT NAME: DECSYSTEM10 PDP-10 KA10 BASIC + INSTRUCTION DIAGNOSTIC (6) + + FUNCTION: BOOLE, HWT, TEST + + VERSION: 0.2 + + DATE RELEASED: JANUARY 1977 + + MAINTAINED BY: DIAGNOSTIC ENGINEERING GROUP + + AUTHOR: JOHN R. KIRCHOFF + +COPYRIGHT(C) 1976,1977 +DIGITAL EQUIPMENT CORPORATION +MARLBORO, MASS. 01752 + +THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY +ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH +THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, +OR ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE +MADE AVAILABLE TO ANY OTHER PERSON EXECPT FOR USE ON SUCH SYSTEM +AND TO ONE WHO AGREES TO THESE LICENSE TERMS. TITLE TO AND +OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. + +THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT +NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL +EQUIPMENT CORPORATION. + +DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS +SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. + + MAINDEC-10-DAKAF.TXT + PAGE 2 + + + TABLE OF CONTENTS + ----------------- + +1.0 ABSTRACT + +2.0 REQUIREMENTS + +2.1 EQUIPMENT + +2.2 STORAGE + +2.3 PRELIMINARY PROGRAMS + +3.0 PROGRAM PROCEDURES + +3.1 LOADING PROCEDURE + +3.2 STARTING PROCEDURE + +3.3 OPERATING PROCEDURE + +4.0 ERRORS + +5.0 ITERATION COUNTER + +6.0 CYCLE TIME + +7.0 OPERATIONAL VARIATIONS + +8.0 MISCELLANEOUS + +9.0 LISTING + + MAINDEC-10-DAKAF.TXT + PAGE 3 + + +1.0 ABSTRACT + + THIS PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC IS THE + SIXTH IN A SERIES OF PDP-10 KA10 PROCESSOR DIAGNOSTICS. + THE DIAGNOSTIC TESTS THE BOOLE, HWT AND TEST INSTRUCTIONS. + +2.0 REQUIREMENTS + +2.1 EQUIPMENT + + A PDP-10 KA10 WITH A MINIMUM OF 32K OF MEMORY + + PAPER TAPE READER + DECTAPE (OPTIONAL) + CONSOLE TELETYPE + +2.2 STORAGE + + THE PROGRAM RUNS WITHIN 32K OF MEMORY. + +2.3 PRELIMINARY PROGRAMS + + CONSOLE FUNCTIONS WORKING PROPERLY + PAPER TAPE OR DECTAPE READ-IN WORKING PROPERLY + PREVIOUS PROCESSOR DIAGNOSTICS + + MAINDEC-10-DAKAF.TXT + PAGE 4 + + +3.0 PROGRAM PROCEDURES + +3.1 LOADING PROCEDURE + + PAPER TAPE - HARDWARE READ-IN (READER DEVICE CODE 104) + DECTAPE - LOAD WITH DIAMON (DECTAPE DEVICE CODE 320) + +3.2 STARTING PROCEDURE + + STAND-ALONE STARTING ADDRESS IS 30000. + + IF THE DIAGNOSTIC FAILS TO START CORRECTLY TRY STARTING AT THE + FIRST TEST INSTEAD OF AT THE BEGINNING OF THE CONTROL SEQUENCE. + (SEE LISTING). + +3.3 OPERATING PROCEDURE + + ONCE STARTED THE PROGRAM WILL CYCLE CONTINUALLY UNTIL STOPPED + OR AN ERROR OCCURS. + +4.0 ERRORS + + ERRORS ARE IN THE FORM OF HALT INSTRUCTIONS. THE LISTING + SHOULD BE CONSULTED TO DETERMINE THE CAUSE OF THE ERROR. A + NO OPERATION (JUMP) INSTRUCTION FOLLOWS EACH HALT. THIS + MAY BE USEFUL IN CONSTRUCTING A SCOPE LOOP TO CYCLE ON THE + FAILING INSTRUCTION. + +5.0 ITERATION COUNTER + + THE ITERATION COUNT OF THE PROGRAM IS DISPLAYED IN THE MEM- + ORY INDICATORS (MI). THIS COUNT IS A DECREMENTING COUNT AND + INITIALLY STARTS AT -1 IN STAND-ALONE OPERATION. + +6.0 CYCLE TIME + + THE CYCLE TIME OF THE PROGRAM IS IN THE MILLISECOND RANGE AND + IS THEREFORE SUITABLE FOR TAKING MARGINS, VIBRATION TESTS, ETC. + + MAINDEC-10-DAKAF.TXT + PAGE 5 + + +7.0 OPERATIONAL VARIATIONS + + A. DIAGNOSTIC MONITOR + + THE PROGRAM IS USABLE WITH THE DIAGNOSTIC MONITOR TO PRO- + VIDE RELIABILITY TESTS, ACCEPTANCE TESTS, AND/OR TO PRO- + VIDE A QUICK METHOD OF ISOLATION OF A FAULT TO A PARTICULAR + AREA OF THE PROCESSOR. CERTAIN PROCEDURES ARE USED WHEN + THE PROGRAM IS USED IN THIS MANNER. THEY ARE: + + 1. THE DIAGNOSTIC MONITOR TRANSFERS CONTROL TO THE PRO- + GRAM AND STARTS IT AT LOCATION 30002. + + 2. MONCTL - LOCATION 30043 IS USED AS THE DIAGNOSTIC MON- + ITOR CONTROL FLAG WORD. + + B. USER MODE + + THE PROGRAM WILL OPERATE IN USER MODE AND AS SUCH PROVIDES + ASSURANCE THAT THE PROCESSOR IS PERFORMING ALL FUNCTIONS + CORRECTLY. USER MODE STARTING ADDRESS IS 30000. + + C. SYSTEM EXERCISER + + STARTING ADDRESS IS 30003. NO DATA SWITCHES ARE USED BY + THIS PROGRAM. + +8.0 MISCELLANEOUS + + NONE + +9.0 LISTING +``` + +DAKAF.HST +--------- + + THIS IS A HISTORY OF THE DEVELOPMENT OF MAINDEC-10-DAKAF + + ************************************************************************ + + PRODUCT CODE: MAINDEC-10-DAKAF + + PRODUCT NAME: BASIC INSTRUCTION DIAGNOSTIC #6 + + DATE RELEASED: JANUARY 1977 + + VERSION: 0.2 + + UPDATE AUTHOR: JOHN R. KIRCHOFF + + CHANGES MADE: + + 1. UPGRADE TO ALLOW COMPATABILITY WITH THE SUBROUTINE PACKAGE. + + ************************************************************************ + + ORIGINAL VERSION: 0.1 + + ORIGINAL AUTHOR: RICHARD MALISKA + + ORIGINAL RELEASE: 16-MAR-72 + + ************************************************************************ + +DAKAF.MAC +--------- + +[[Download](DAKAF.MAC.txt)] + +{% highlight text %} +{% include_relative DAKAF.MAC.txt %} +{% endhighlight %} diff --git a/modules/pdp10/lib/debugger.js b/modules/pdp10/lib/debugger.js index 141a96758..db3b5bd69 100644 --- a/modules/pdp10/lib/debugger.js +++ b/modules/pdp10/lib/debugger.js @@ -2637,7 +2637,7 @@ class DebuggerPDP10 extends Debugger { } var sOptions = asArgs[0].substr(1); - var match = sOpcode.match(/^(['"]?)(.*\.mac|.*\.html)\1$/i); + var match = sOpcode.match(/^(['"]?)(.*\.mac|.*\.html|.*\.txt)\1$/i); if (match) { var dbg = this; if (this.macro10) {