DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1 DAKAKT MAC 20-JAN-77 11:00 DIAGNOSTIC PARAMETERS SEQ 0011 1 ;DAKAK 2 3 000000 MCNVER==0 4 000002 DECVER==2 5 6 7 XLIST 8 LIST 9 LALL 10 11 NAME \MCNVER,\DECVER^ 12 13 TITLE DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 14 ^ 15 16 ;(MULTIPY, INTERGER MULTIPLY, DIVIDE, INTERGER DIVIDE) 17 18 ;COPYRIGHT 1975,1977 19 ;DIGITAL EQUIPMENT CORPORATION 20 ;MARLBORO, MASS. 01752 21 22 ;JOHN R. KIRCHOFF 23 24 000137 LOC 137 25 000137 000000 000002 MCNVER,,DECVER 26 27 NOSYM DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2 DAKAKT MAC 20-JAN-77 11:00 DIAGNOSTIC PARAMETERS SEQ 0012 28 SUBTTL DIAGNOSTIC PARAMETERS 29 30 ;OPERATOR DEFINITIONS 31 32 001000 000000 OPDEF ER1 [1B8] 33 002000 000000 OPDEF ER2 [2B8] 34 003000 000000 OPDEF ER3 [3B8] 35 004000 000000 OPDEF ER4 [4B8] 36 005000 000000 OPDEF ER5 [5B8] 37 006000 000000 OPDEF ER6 [6B8] 38 007000 000000 OPDEF ER7 [7B8] 39 010000 000000 OPDEF ER10 [10B8] 40 011000 000000 OPDEF ER11 [11B8] 41 012000 000000 OPDEF ER12 [12B8] 42 013000 000000 OPDEF ER13 [13B8] 43 44 043570 LUUO1=ERRMES 45 043570 LUUO2=ERRMES 46 043570 LUUO3=ERRMES 47 043570 LUUO4=ERRMES 48 043570 LUUO5=ERRMES 49 043570 LUUO6=ERRMES 50 043570 LUUO7=ERRMES 51 043570 LUUO10=ERRMES 52 043570 LUUO11=ERRMES 53 043570 LUUO12=ERRMES 54 043570 LUUO13=ERRMES DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3 DAKAKT MAC 20-JAN-77 11:00 DIAGNOSTIC PARAMETERS SEQ 0013 55 ;SUBROUTINE ASSEMBLY DEFINITIONS 56 57 000040 DEBUG=40 58 000001 EXCASB=1 59 000001 USRASB=1 60 000001 KI10=1 61 000001 KA10=1 62 000001 KLOLD==1 63 000001 PGMEND=1 64 000001 ERDIAG=1 65 66 ;SPECIAL FEATURE DEFINITIONS 67 68 030000 SADR1=BEGIN 69 030000 SADR2=BEGIN 70 030000 SADR3=BEGIN 71 030000 SADR4=BEGIN 72 254000 030000 SADR5=JRST BEGIN 73 254000 030000 SADR6=JRST BEGIN 74 254000 030000 SADR7=JRST BEGIN 75 254000 030000 SADR8=JRST BEGIN 76 254000 030000 SADR9=JRST BEGIN 77 254000 030000 SADR10=JRST BEGIN 78 254000 030000 SADR11=JRST BEGIN 79 80 ;SPECIAL FEATURE PARAMETERS 81 82 000000 PAREA0=0 83 000000 PAREA1=0 84 000000 PAREA2=0 85 444153 415300 PAREA3=SIXBIT/DAKAK/ 86 645560 000000 PAREA4=SIXBIT/TMP/ 87 000000 PAREA5=0 88 000000 PAREA6=0 89 001000 ITERAT==1000 90 91 ;MACROS 92 93 DEFINE SAVEAC (A,B)< 94 MOVEI AC+2,. ;SAVE TEST PC 95 MOVEM AC+2,TESTPC 96 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH 97 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION> DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 4 DAKAKT MAC 20-JAN-77 11:00 DIAGNOSTIC PARAMETERS SEQ 0014 98 DEFINE MOP1 (T,A1,A2,EE,R1,R2)< 99 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [A1],[A2] AND 100 ;[EE] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 101 ;AND E AGAINST [R1], [R2] AND [EE] RESPECTIVELY. 102 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 103 104 F'T'0: AA1=A1 ;INITIAL C(AC) 105 MOVE AC,[A1] ;PRELOAD AC (MULTIPLIER) 106 AA2=A2 ;INITIAL C(AC+1) 107 MOVE AC+1,[A2] ;PRELOAD AC+1 108 AEE=EE ;INITIAL C(E) 109 MOVE E,[EE] ;PRELOAD E (MULTIPLICAND) 110 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 111 AR1=R1 ;EXPECTED RESULT IN AC 112 CAME AC,[R1] ;IS HIGH PRODUCT CORRECT? 113 ER3 AC,T'1 ;HIGH PRODUCT FAILED 114 AR2=R2 ;EXPECTED RESULT IN AC+1 115 CAME AC+1,[R2] ;IS LOW PRODUCT CORRECT? 116 ER4 AC+1,T'2 ;LOW PRODUCT FAILED 117 AEE=EE ;INITIAL C(E) 118 CAME E,[EE] ;WAS C(E) CLOBBERED? 119 ER5 E,T'3 ;C(E) WAS CLOBBERED 120 JUMPL AC+2,F'T'0 ;LOOP ON ERROR SWITCH> DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1 PARAM KLM 18-JAN-77 11:38 *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 SEQ 0015 121 SUBTTL *PARAM* CONSOLE DATA SWITCH ASSIGNMENTS, JAN 18,1977 122 123 DEFINE S,<;*********************************************************************> 124 125 S^;*********************************************************************^ 126 ;*DATA SWITCHES (READ FROM CONSOLE IN EXEC MODE OR TYPED IN IN USER MODE) 127 ;*LEFT HALF SWITCHES ARE PRE-ASSIGNED FOR SUBROUTINE PACKAGE USE 128 ;*AND CONTROL LOOPING, PRINTING (TTY OR OTHER DEVICE) AND MISC. FUNCTIONS 129 S^;*********************************************************************^ 130 131 400000 ABORT== 400000 ;ABORT PROGRAM ON PASS COMPLETION 132 200000 RSTART==200000 ;RESTART TEST, PRINT TOTALS 133 100000 TOTALS==100000 ;PRINT TOTALS, CONTINUE 134 135 040000 NOPNT== 040000 ;INHIBIT ALL PRINT/TYPE OUT (EXCEPT FORCED) 136 020000 PNTLPT==020000 ;PRINT ALL DATA ON LPT (LOGICAL DEVICE, USER MODE) 137 010000 DING== 010000 ;RING BELL ON ERROR 138 139 004000 LOOPER==004000 ;ENTER EXERCISE/CHECK LOOP ON ERROR 140 002000 ERSTOP==002000 ;HALT ON TEST ERROR 141 001000 PALERS==001000 ;PRINT ALL ERRORS 142 143 000400 RELIAB==000400 ;RELIABILITY MODE 144 000200 TXTINH==000200 ;INHIBIT ERROR TEXT 145 000100 INHPAG==000100 ;INHIBIT PAGING 146 147 000040 MODDVC==000040 ;MODIFY DEVICE CODE 148 000020 INHCSH==000020 ;INHIBIT CACHE 149 000010 OPRSEL==000010 ;OPERATOR SELECTION 150 151 000004 CHAIN== 000004 ;CHAIN CONTROL SWITCH 152 153 000002 KAHZ50==000002 ;KA10 50 HERTZ POWER 154 155 ;SWITCH 17 RESERVED !!! DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2 PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0016 156 SUBTTL *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 157 158 S^;*********************************************************************^ 159 ;*SPECIAL SUBPROGRAM LINKAGES 160 S^;*********************************************************************^ 161 162 027772 FSELNK= 27772 ;FILE SELECT LINK 163 027773 FRDLNK= 27773 ;FILE READ LINK 164 027774 LDLNK= 27774 ;LOAD LINKAGE ADDRESS 165 027775 DDTLNK= 27775 ;DDT LINKAGE ADDRESS 166 027776 MODLNK= 27776 ;OPERATIONAL MODE CHECK LINKAGE ADDRESS 167 027777 SUBLNK= 27777 ;SUBROUTINE LINKAGE ADDRESS 168 169 S^;*********************************************************************^ 170 ;*SPECIAL SUBROUTINE FATAL HALTS 171 ;*USED TO REPORT ERRORS THAT CAUSE THE SUBROUTINES TO BE UNUSABLE 172 S^;*********************************************************************^ 173 174 ;ADDRESS TAG REASON 175 ;--------------------- 176 177 ; 1010 NOEXEC ;PROGRAM NOT CODED FOR EXEC MODE OPERATION 178 ; 1011 PLERR ;FATAL PUSH LIST POINTER ERROR 179 ; 1012 PLERR1 ;INITIAL PUSH LIST POINTER ERROR 180 ; 1013 MUOERR ;MUUO WITH LUUO HANDLER WIPED OUT 181 ; 1014 DTEBER ;DTE20 INTERRUPT WITHOUT DOORBELL 182 ; 1015 DTECER ;DTE20 CLOCK INTERRUPT WITHOUT FLAG SET 183 ; 1016 CPIERR ;CPU INITIALIZATION ERROR 184 ; 1017 EOPERR ;END OF PROGRAM ERROR 185 ; 1020 LUOERR ;INTERRUPT WITH LUUO HANDLER WIPED OUT 186 187 S^;*********************************************************************^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3 PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0017 188 S^;*********************************************************************^ 189 ;OPERATOR DEFINITIONS (NON-UUO'S) 190 S^;*********************************************************************^ 191 192 260740 000000 OPDEF GO [PUSHJ P,] ;SUBROUTINE CALL 193 263740 000000 OPDEF RTN [POPJ P,] ;SUBROUTINE RETURN 194 261740 000000 OPDEF PUT [PUSH P,] ;PUT DATA ON PUSH LIST 195 262740 000000 OPDEF GET [POP P,] ;GET DATA FROM PUSH LIST 196 254000 000000 OPDEF PJRST [JRST ] ;JRST TO ROUTINE THAT RTN'S 197 254200 000000 OPDEF HALT [JRST 4,] ;DEFINITION FOR DDT 198 254100 000000 OPDEF JRSTF [JRST 2,] ;DEFINITION FOR DDT 199 254500 000000 OPDEF JEN [JRST 12,] ;DEFINITION FOR DDT 200 201 S^;*********************************************************************^ 202 ;*SUBROUTINE INITIALIZATION CALL 203 S^;*********************************************************************^ 204 205 265000 030011 OPDEF PGMINT [JSP 0,SBINIT] ;SUBROUTINE INITIALIZATION 206 207 S^;*********************************************************************^ 208 ;*HALTING UUO'S (A MORE GRACEFUL HALT THAN SIMPLY USING THE HALT INSTRUCTION). 209 S^;*********************************************************************^ 210 211 037640 000004 OPDEF FATAL [37B8!15B12!4] ;FATAL PROGRAMMING HALT 212 037600 000004 OPDEF ERRHLT [37B8!14B12!4] ;PROGRAM ERROR HALT 213 214 S^;*********************************************************************^ 215 ;*TERMINAL INPUT UUO'S 216 ;*ALWAYS COME FROM THE CONSOLE TERMINAL IN EXEC MODE OR THE 217 ;*CONTROLLING TERMINAL (REAL TERMINAL OR PTY) IN USER MODE. 218 S^;*********************************************************************^ 219 220 037000 000003 OPDEF TTICHR [37B8!0B12!3] ;TTY, INPUT ANY CHARACTER 221 037040 000003 OPDEF TTIYES [37B8!1B12!3] ;TTY, NORMAL RETURN Y 222 037100 000003 OPDEF TTINO [37B8!2B12!3] ;TTY, NORMAL RETURN N 223 037140 000003 OPDEF TTIOCT [37B8!3B12!3] ;TTY, INPUT OCTAL WORD 224 037200 000003 OPDEF TTIDEC [37B8!4B12!3] ;TTY, INPUT DECIMAL WORD 225 037240 000003 OPDEF TTICNV [37B8!5B12!3] ;TTY, INPUT CONVERTABLE WORD 226 037300 000003 OPDEF TTLOOK [37B8!6B12!3] ;TTY, KEYBOARD CHECK 227 037340 000003 OPDEF TTALTM [37B8!7B12!3] ;TTY, ALT-MODE CHECK 228 037400 000003 OPDEF TTSIXB [37B8!10B12!3] ;TTY, INPUT SIXBIT WORD 229 037440 000003 OPDEF TTYINP [37B8!11B12!3] ;TTY, IMAGE MODE INPUT DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 4 PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0018 230 ;*TERMINAL OUTPUT UUO'S. 231 232 037000 000000 OPDEF PNTA [37B8!0B12!0] ;PRINT ASCII WORD 233 037000 000001 OPDEF PNTAF [37B8!0B12!1] ;PRINT ASCII WORD FORCED 234 037740 000000 OPDEF PNTAL [37B8!17B12!0] ;PRINT ASCIZ LINE 235 037740 000001 OPDEF PNTALF [37B8!17B12!1] ;PRINT ASCIZ LINE FORCED 236 037600 000003 OPDEF PSIXL [37B8!14B12!3] ;PRINT SIXBIT'Z LINE 237 037640 000003 OPDEF PSIXLF [37B8!15B12!3] ;PRINT SIXBIT'Z LINE FORCED 238 037000 000000 OPDEF PNTMSG [37B8!0B12!0] ;PRINT MESSAGE IMMEDIATE 239 037040 000000 OPDEF PNTMSF [37B8!1B12!0] ;PRINT MESSAGE IMMEDIATE FORCED 240 037100 000000 OPDEF PSIXM [37B8!2B12!0] ;PRINT SIXBIT'Z MSG IMMEDIATE 241 037200 000000 OPDEF PSIXMF [37B8!4B12!0] ;PRINT SIXBIT'Z MSG IMM FORCED 242 037000 000000 OPDEF PNTCI [37B8!0B12!0] ;PRINT CHARACTER IMMEDIATE 243 037040 000000 OPDEF PNTCIF [37B8!1B12!0] ;PRINT CHARACTER IMMEDIATE FORCED 244 037500 000000 OPDEF PNTCHR [37B8!12B12!0] ;PRINT CHARACTER 245 037500 000001 OPDEF PNTCHF [37B8!12B12!1] ;PRINT CHARACTER FORCED 246 037040 000000 OPDEF PNT1 [37B8!1B12!0] ;PRINT ONE OCTAL DIGIT 247 037040 000001 OPDEF PNT1F [37B8!1B12!1] ;PRINT 1 OCTAL DIGIT FORCED 248 037100 000000 OPDEF PNT2 [37B8!2B12!0] ;PRINT TWO OCTAL DIGITS 249 037100 000001 OPDEF PNT2F [37B8!2B12!1] ;PRINT 2 OCTAL DIGITS FORCED 250 037140 000000 OPDEF PNT3 [37B8!3B12!0] ;PRINT THREE OCTAL DIGITS 251 037140 000001 OPDEF PNT3F [37B8!3B12!1] ;PRINT THREE OCTAL DIGITS FORCED 252 037200 000000 OPDEF PNT4 [37B8!4B12!0] ;PRINT FOUR OCTAL DIGITS 253 037200 000001 OPDEF PNT4F [37B8!4B12!1] ;PRINT FOUR OCTAL DIGITS FORCED 254 037240 000000 OPDEF PNT5 [37B8!5B12!0] ;PRINT FIVE OCTAL DIGITS 255 037240 000001 OPDEF PNT5F [37B8!5B12!1] ;PRINT FIVE OCTAL DIGITS FORCED 256 037300 000000 OPDEF PNT6 [37B8!6B12!0] ;PRINT SIX OCTAL DIGITS 257 037300 000001 OPDEF PNT6F [37B8!6B12!1] ;PRINT SIX OCTAL DIGITS FORCED 258 037340 000000 OPDEF PNT7 [37B8!7B12!0] ;PRINT 7 OCTAL DIGITS 259 037340 000001 OPDEF PNT7F [37B8!7B12!1] ;PRINT 7 OCTAL DIGITS FORCED 260 037440 000000 OPDEF PNT11 [37B8!11B12!0] ;PRINT 11 OCTAL DIGITS 261 037440 000001 OPDEF PNT11F [37B8!11B12!1] ;PRINT 11 OCTAL DIGITS FORCED. 262 037400 000000 OPDEF PNTADR [37B8!10B12!0] ;PRINT PHYSICAL ADDRESS 263 037400 000001 OPDEF PNTADF [37B8!10B12!1] ;PRINT PHYSICAL ADDRESS FORCED 264 037600 000000 OPDEF PNTOCT [37B8!14B12!0] ;PRINT FULL WORD OCTAL 265 037600 000001 OPDEF PNTOTF [37B8!14B12!1] ;PRINT FULL WORD OCTAL FORCED 266 037540 000000 OPDEF PNTHW [37B8!13B12!0] ;PRINT OCTAL HALF WORDS, 6 SP 6 267 037540 000001 OPDEF PNTHWF [37B8!13B12!1] ;PRINT OCTAL HALF WORDS, 6 SP 6 FORCED 268 037700 000003 OPDEF PNTOCS [37B8!16B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S 269 037740 000003 OPDEF PNTOCF [37B8!17B12!3] ;PRINT OCTAL, SUPPRESS LEADING 0'S FORCED 270 037640 000000 OPDEF PNTDEC [37B8!15B12!0] ;PRINT DECIMAL, SUPRESS LEADING 0'S 271 037640 000001 OPDEF PNTDCF [37B8!15B12!1] ;PRINT DECIMAL, SUPRESS LEADING 0'S FORCED 272 037700 000000 OPDEF PNTDS [37B8!16B12!0] ;PRINT DECIMAL, SPACES FOR LD 0'S 273 037700 000001 OPDEF PNTDSF [37B8!16B12!1] ;PRINT DECIMAL, SPACES FOR LD 0'S FORCED 274 037200 000002 OPDEF PNTNM [37B8!4B12!2] ;PRINT PROGRAM NAME 275 037000 000002 OPDEF PNTSIX [37B8!0B12!2] ;PRINT SIXBIT WORD 276 037040 000002 OPDEF PNTSXF [37B8!1B12!2] ;PRINT SIXBIT WORD FORCED 277 037240 000002 OPDEF DROPDV [37B8!5B12!2] ;CLOSE LOGICAL FILE, USER MODE 278 037100 000002 OPDEF PNTCW [37B8!2B12!2] ;PRINT DF10 CONTROL WORD 279 037140 000002 OPDEF PNTCWF [37B8!3B12!2] ;PRINT DF10 CONTROL WORD FORCED 280 037000 030242 OPDEF PCRL [37B8!0B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED 281 037040 030242 OPDEF PCRLF [37B8!1B12!CRLF] ;PRINT CARRIAGE RETURN/LINE FEED FORCED 282 037000 000040 OPDEF PSP [37B8!0B12!40] ;PRINT SPACE 283 037040 000040 OPDEF PSPF [37B8!1B12!40] ;PRINT SPACE FORCED 284 037000 030243 OPDEF PCRL2 [37B8!0B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 4-1 PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0019 285 037040 030243 OPDEF PCRL2F [37B8!1B12!CRLF2] ;PRINT CARRIAGE RETURN/LINE FEED (TWICE) FORCED 286 037040 000007 OPDEF PBELL [37B8!1B12!7] ;PRINT TTY BELL 287 288 037040 000026 OPDEF PFORCE [37B8!1B12!26] ;PRINT FORCE, CONTROL O OVERRIDE 289 290 DEFINE PMSG (ARG),< 291 PSIXM [SIXBIT\ARG'_\]> 292 293 DEFINE PMSGF (ARG),< 294 PSIXMF [SIXBIT\ARG'_\]> 295 296 ;*SIXBTZ -- MACRO TO GENERATE SIXBIT DATA FOR PRINTING 297 ;* CONSERVES CORE OVER ASCIZ 298 299 DEFINE SIXBTZ (ARG),< [SIXBIT\ARG'_\]> 300 301 ;*CONSOLE SWITCH INPUT UUO. 302 ;*READS CONSOLE SWITCHES IF IN EXEC MODE OR ASKS FOR THEM IF 303 ;* USER MODE. 304 305 037400 000002 OPDEF SWITCH [37B8!10B12!2] ;INPUT CONSOLE SWITCHES 306 307 ;*CLOCK INITIALIZATION UUO - TO SET DESIRED CLOCK OPERATION 308 ;*EITHER IGNORE CLOCK, ONLY LET IT TICK OR CAUSE INTERRUPT TO OCCUR. 309 310 037540 000004 OPDEF CLOKOP [37B8!13B12!4] ;CLOCK OPERATION UUO - PDP-11 CLOCK 311 037200 000004 OPDEF MTROP [37B8!4B12!4] ;CLOCK OPERATION UUO - DK20 METER 312 313 ;*KL10 ONLY CACHE OPERATION UUO'S 314 315 037040 000004 OPDEF CINVAL [37B8!1B12!4] ;CACHE INVALIDATE 316 037100 000004 OPDEF CFLUSH [37B8!2B12!4] ;CACHE FLUSH 317 037140 000004 OPDEF CWRTBI [37B8!3B12!4] ;CACHE WRITE-BACK & INVALIDATE DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5 PARAM KLM 18-JAN-77 11:38 *PARAM* PROGRAM/SUBROUTINE PARAMETERS, JAN 18,1977 SEQ 0020 318 ;*END OF PASS/PROGRAM UUOS 319 320 ;PERFORMS THE END OF PASS FUNCTIONS. INCREMENT PASS COUNT, 321 ;*DECREMENT ITERATION COUNT, CHECK IF FINISHED WITH THIS PROGRAM ETC. 322 323 037500 000004 OPDEF ENDUUO [37B8!12B12!4] ;UUO TO DISPLAY LIGHTS 324 037700 000004 OPDEF EOPUUO [37B8!16B12!4] ;END OF PROGRAM UUO 325 326 ;*MEMORY MANAGEMENT UUO'S 327 ;*UUO'S TO PERFORM VARIOUS MEMORY FUNCTIONS. MAPPING, ZEROING, PAGING, 328 ;*ADDRESS CONVERSION, ETC... 329 330 037000 000004 OPDEF MAPMEM [37B8!0B12!4] ;MAP MEMORY 331 037500 000002 OPDEF MEMZRO [37B8!12B12!2] ;ZERO MEMORY 332 037440 000002 OPDEF MEMSEG [37B8!11B12!2] ;SETUP MEMORY SEGMENT 333 037540 000002 OPDEF MAPADR [37B8!13B12!2] ;VIRTUAL TO PHYSICAL ADR CONVERT 334 037640 000002 OPDEF MAPCNK [37B8!15B12!2] ;MAP MEMORY CHUNK 335 037600 000002 OPDEF MAPSET [37B8!14B12!2] ;SET KI10 EXEC PAGE MAP 336 037740 000002 OPDEF MAPPNT [37B8!17B12!2] ;PRINT MEMORY MAP 337 338 ;*DEVICE CODE MODIFICATION UUO 339 ;*ALLOWS THE MODIFICATION OF IOT'S TO ONE DEVICE TO BE CHANGED TO 340 ;*IOT'S TO A DIFFERENT DEVICE CODE. 341 342 037340 000002 OPDEF MODPCU [37B8!7B12!2] ;MODIFY PERHIPERAL CODE, USER 343 037300 000002 OPDEF MODPCP [37B8!6B12!2] ;MODIFY PERHIPERAL CODE, PROGRAM 344 345 030000 IFNDEF MODDVL, 346 030000 IFNDEF MODDVU, 347 348 ;*"DIAMON" FILE SELECTION AND READ UUOS 349 350 037240 000004 OPDEF FSELECT [37B8!5B12!4] ;FILE SELECTION 351 037300 000004 OPDEF FREAD [37B8!6B12!4] ;FILE READ - ASCII DATA 352 037340 000004 OPDEF FRD36 [37B8!7B12!4] ;FILE READ - 36 BIT DATA 353 037400 000004 OPDEF FRD8 [37B8!10B12!4] ;FILE READ - 8 BIT DATA 354 355 ;*KI10 ONLY UUO FOR PRINTING MARGIN VALUES 356 357 037700 000002 OPDEF PNTMGN [37B8!16B12!2] ;PRINT MARGIN VALUE 358 359 XLIST 360 LIST DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1 FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0021 361 SUBTTL *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 362 363 030000 LOC 30000 364 365 S^;*********************************************************************^ 366 ;*PROGRAM STARTING ADDRESSES 367 ;*THESE ADDRESSES CALL VARIOUS SPECIAL START ROUTINES AND OR OPTIONS 368 ;*NORMAL START ADDRESS IS 30000 ALL OTHERS ARE SPECIAL. INVOKED BECAUSE 369 ;*OF END OF PASS, POWER FAILURE, DDT START, RE-ENTERING(TYPICALLY USER 370 ;*MODE), OR ANY NUMBER OF SPECIAL FEATURE TESTS. 371 S^;*********************************************************************^ 372 373 030000 254 00 1 00 027776 BEGIN: JRST @MODLNK ;STAND-ALONE START 374 030001 254 00 0 00 030616 $START: JRST START ;MODE CHECK STARTING ADDRESS 375 376 030002 254 00 1 00 027774 DIAGMN: JRST @LDLNK ;DIAGNOSTIC MONITOR START 377 378 030003 254 00 1 00 027774 SYSEXR: JRST @LDLNK ;SYSTEM EXERCISER START 379 380 030004 254 00 0 00 030000 SFSTRT: JRST SADR1 ;SPECIAL FEATURE START 381 382 030005 254 00 0 00 030000 PFSTRT: JRST SADR2 ;POWER FAIL RESTART 383 384 030006 254 00 0 00 030000 REENTR: JRST SADR3 ;REENTER START(USUALLY USER MODE ONLY) 385 386 030007 SRTDDT: ;COMMONLY MISTAKEN NAME FOR "DDTSRT" 387 030007 254 00 1 00 027775 DDTSRT: JRST @DDTLNK ;DDT START 388 389 030010 254 00 0 00 030621 BEGIN1: JRST STARTA ;LOOP START(END OF PASS COMES HERE) 390 030011 254 00 1 00 027777 SBINIT: JRST @SUBLNK ;PMGINT LINKAGE 391 030012 000000 000000 RETURN: 0 ;RETURN ADDRESS STORAGE 392 393 030013 254000 030000 START1: SADR7 ;OPTIONAL STARTING ADR/INSTRUCTIONS 394 030014 254000 030000 START2: SADR8 ; " 395 030015 254000 030000 START3: SADR9 ; " 396 030016 254000 030000 START4: SADR10 ; " 397 030017 254000 030000 START5: SADR11 ; " DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2 FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0022 398 S^;*********************************************************************^ 399 ;*PROGRAM FIXED PARAMETER AREA 400 S^;*********************************************************************^ 401 402 030020 444153 415300 PNTNAM: PAREA3 ;SIXBIT PROGRAM NAME 403 030021 645560 000000 PNTEXT: PAREA4 ;SIXBIT PROGRAM EXTENSION 404 030022 000000 000000 RANDBS: PAREA1 ;RANDOM BASE NUMBER 405 030023 000000 000000 SWTEXR: PAREA2 ;SYSTEM EXERCISER SWITCHES 406 030024 000000 001000 ITRCNT: ITERAT ;PROGRAM ITERATIONS 407 030025 000000 030602 $PNAME: PGMNAM ;POINTER TO PROGRAMS NAME 408 030026 000000 000002 $PVER: MCNVER,,DECVER ;MCN & DEC VERSION LEVEL 409 030027 000000 030000 $MODVL: MODDVL ;DEVICE CODE CHANGE LOWER LIMIT 410 030030 000000 030000 $MODVU: MODDVU ;DEVICE CODE CHANGE UPPER LIMIT 411 030031 777777 777777 $EMODE: IFNDEF EXCASB,<0> IFDEF EXCASB,<-1> ;EXEC ALLOWED 412 030032 777777 777777 $UMODE: IFNDEF USRASB,<0> IFDEF USRASB,<-1> ;USER ALLOWED 413 030033 000000 000000 $DSKUP: IFNDEF DSKUPD,<0> IFDEF DSKUPD,<-1> ;DISK UPDATE MODE 414 030034 000000 000000 $MMAP: IFNDEF MEMMAP,<0> IFDEF MEMMAP,<-1> ;ALLOW MEMORY RTNS 415 030035 000000 000000 PAREA7: PAREA5 ;OPTIONAL PARAMETER 416 030036 000000 000000 PAREA8: PAREA6 ;OPTIONAL PARAMETER 417 418 S^;*********************************************************************^ 419 ;*PROGRAM VARIABLE PARAMETER AREA 420 S^;*********************************************************************^ 421 422 030037 000000 000000 USER: 0 ; 0 = EXEC, -1 = USER MODE FLAG 423 030040 000000 000000 KAIFLG: 0 ;PROCESSOR TYPE, 0 = KA10, -1 = KI10 424 030041 000000 000000 KLFLG: 0 ;PROCESSOR TYPE, 0 = KA/KI, -1 = KL10 425 030042 777777 777777 MONFLG: -1 ;DIAG MONITOR SPECIAL USER FLAG 426 030043 000000 000000 MONCTL: 0 ;DIAG MON/SYS EXR FLAG 427 030044 000000 000000 MONTEN: 0 ;-1= LOADED BY 10 428 030045 000000 000000 CLOCKF: 0 ;CLOCK TICKED FLAG 429 030046 000000 000000 CONSW: 0 ;CONSOLE SWITCH SETTINGS 430 030047 000000 000000 PASCNT: 0 ;PROGRAM PASS COUNT 431 030050 000000 000000 RUNFLG: 0 ;PROGRAM RUN FLAG 432 030051 000000 000000 TESTPC: 0 ;SUBTEST PC 433 030052 000000 000000 ERRPC: 0 ;ERROR PC 434 030053 000000 000000 ERRTLS: 0 ;ERROR TOTALS 435 030054 000000 000000 TICKS: 0 ;PROGRAM RUNNING TIME 436 030055 000000 000000 MARGIN: 0 ;KI10 MARGIN WORD VALUE 437 030056 000000 000000 $ONETM: 0 ;SUBROUTINE INITIALIZATION FLAG DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3 FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0023 438 S^;*********************************************************************^ 439 ;*SPECIAL PROGRAM DISPATCH ADDRESSES 440 S^;*********************************************************************^ 441 442 030057 037 12 0 00 000004 BEGEND: ENDUUO ;END OF PASS 443 030060 254 00 0 00 030010 $BEND1: JRST BEGIN1 ;KEEP RUNNING PROGRAM 444 030061 037 16 0 00 000004 $BEND2: EOPUUO ;END OF PROGRAM - NO RETURN 445 030062 254000 030000 CNTLC: SADR5 ;CONTROL C XFER ADDRESS 446 030063 254000 030000 ALTMGO: SADR6 ;ALTMODE XFER ADDRESS 447 030064 CPOPJ1: ;SKIP RETURN 448 030064 350 00 0 17 000000 UUOSKP: AOS (P) ;SKIP RETURN FROM UUO 449 030065 CPOPJ: ;NON-SKIP REGULAR RETURN 450 030065 263 17 0 00 000000 UUOEXT: RTN ;UUO RETURN 451 030066 255 00 0 00 000000 UUORTN: JFCL ;ADDITIONAL USERS UUO ROUTINE 452 030067 255 00 0 00 000000 $UORTX: JFCL ;ADDITIONAL UUO LINKAGE 453 030070 255 00 0 00 000000 $UUOER: JFCL ;INITED AS (JRST $UOERX) 454 030071 255 00 0 00 000000 $ITRHL: JFCL ;ADDITIONAL INTERRUPT LINKAGE 455 030072 255 00 0 00 000000 $ITRX1: JFCL ; " 456 030073 255 00 0 00 000000 $USRHL: JFCL ; " 457 030074 255 00 0 00 000000 $RSRTX: JFCL ;ADDITIONAL POWER FAIL LINKAGE 458 030075 255 00 0 00 000000 $RSRTY: JFCL ; " 459 030076 255 00 0 00 000000 RESRT1: JFCL ; INITED AS (JRST RESRTX) 460 030077 255 00 0 00 000000 RESRT2: JFCL ; " 461 030100 255 00 0 00 000000 $PARER: JFCL ;ADDITIONAL PARITY ERROR LINKAGE 462 030101 255 00 0 00 000000 ERMORE: JFCL ;ADDITIONAL ERROR HANDLER LINKAGE 463 030102 254 04 0 00 030102 HALT . ;IMPROPER TRANSFER HALT 464 465 030103 000000 000000 $PSHER: 0 ;INITED AS (JRST PSHERR) 466 030104 000000 000000 ITRCH1: 0 ;PC & FLAGS OF CURRENT INTERRUPT 467 030105 000000 000000 0 ;INITED AS (JRST $ITRC1) 468 469 S^;*********************************************************************^ 470 ;*PROCESSOR CONTROL STORAGE 471 S^;*********************************************************************^ 472 473 030106 000000 000000 $ACC0: 0 ;INTERRUPT SAVED AC0 474 030107 000000 000000 $SVPI: 0 ;INTERRUPT SAVED PI 475 030110 000000 000000 $SVAPR: 0 ;INTERRUPT SAVED APR 476 030111 000000 000000 $SVPAG: 0 ;INTERRUPT SAVED PAG (DATAI) 477 030112 000000 000000 $SPAG1: 0 ;INTERRUPT SAVED PAG (CONI) 478 479 030113 000000 000000 $SVUUO: 0 ;CURRENT USERS UUO 480 030114 000000 000000 $SVUPC: 0 ;PC OF CURRENT USERS UUO 481 482 030115 000000 000000 REPTU: 0 ;REPEAT UUO ITERATIONS 483 030116 000000 000000 SCOPE: 0 ;ERROR HANDLER SCOPE LOOP FLAG 484 030117 000000 000000 %CORFLG:0 ; " CORRECT FLAG 485 030120 000000 000000 %COREC: 0 ; " CORRECT DATA 486 030121 000000 000000 %ACTFL: 0 ; " ACTUAL FLAG 487 030122 000000 000000 %ACTUL: 0 ; " ACTUAL DATA 488 030123 000000 000000 %DISCR: 0 ; " DISCREPENCY DATA DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 4 FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0024 489 S^;*********************************************************************^ 490 ;*UUO DISPATCH TABLE 491 S^;*********************************************************************^ 492 XLIST 493 LIST 494 030124 043570 030070 UUODIS: LUUO1,,$UUOER 495 030125 043570 043570 LUUO3,,LUUO2 496 030126 043570 043570 LUUO5,,LUUO4 497 030127 043570 043570 LUUO7,,LUUO6 498 030130 043570 043570 LUUO11,,LUUO10 499 030131 043570 043570 LUUO13,,LUUO12 500 030132 030070 030070 LUUO15,,LUUO14 501 030133 030070 030070 LUUO17,,LUUO16 502 030134 030070 030070 LUUO21,,LUUO20 503 030135 030070 030070 LUUO23,,LUUO22 504 030136 030070 030070 LUUO25,,LUUO24 505 030137 030070 030070 LUUO27,,LUUO26 506 030140 030070 030070 LUUO31,,LUUO30 507 030141 030070 030070 LUUO33,,LUUO32 508 509 S^;*********************************************************************^ 510 ;*MEMORY MANAGMENT STORAGE 511 S^;*********************************************************************^ 512 513 030142 000000 000000 DF22F: 0 ;DF10 CONTROL FLAG, 0 = 18, -1 = 22 BIT 514 030143 000000 000000 MAPNEW: 0 ;MEMORY MAPPING CONTROL FLAG, -1 = 4096K MAPPING 515 030144 000000 000000 MEMTOT: 0 ;TOTAL MEMORY SIZE IN K (1024.) 516 030145 000000 000000 MEMLOW: 0 ;LOWEST USABLE MEMORY 517 030146 MEMSIZ: BLOCK ^D41 ;MEMORY SEGMENT POINTER TABLE 518 519 S^;*********************************************************************^ 520 ;*PRINT CONTROL STORAGE 521 S^;*********************************************************************^ 522 523 030217 000000 000000 PNTFLG: 0 ;PRINT FLAG, -1 WHILE IN PRINT ROUTINE 524 030220 000000 000000 PNTENB: 0 ;PRINT ENABLE 525 030221 000000 000000 PDISF: 0 ;PRINT DISABLED FLAG 526 030222 000000 000000 PNTINH: 0 ;INHIBIT PRINT INPUT CHECKS 527 030223 000000 000000 PNTSPC: 0 ;PRINT SPACE CONTROL 528 030224 000000 000000 OPTIME: 0 ;TYPE-IN WAIT TIME 529 030225 000000 000000 $TWCNT: 0 ;TIME WAITED 530 030226 000000 000000 $DVOFF: 0 ;LOGICAL DEVICE INITED FLAG 531 030227 000000 000000 TTYFIL: 0 ;TTY EXEC FILLERS FLAG 532 030230 000000 000000 TTYSPD: 0 ;TTY EXEC BAUD RATE 533 030231 000000 000000 $TTCHR: 0 ;ACTUAL TYPED IN CHAR 534 030232 000000 000000 $CHRIN: 0 ;UPPER CASED & PARITY STRIPPED CHAR 535 030233 000000 000000 $TYPNB: 0 ;TYPED IN NUMBER 536 030234 000000 000000 $CRLF: 0 ;FREE CR/LF FLAG 537 030235 000000 000000 $TABF: 0 ;TAB CONVERSION FLAG 538 030236 000000 000000 $FFF: 0 ;FORM FEED CONVERSION FLAG 539 030237 000000 000000 $VTF: 0 ;VERTICAL TAB CONVERSION FLAG 540 030240 000000 000000 USRLFF: 0 ;USER LF FILLERS 541 030241 000000 000000 USRCRF: 0 ;USER CR FILLERS DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5 FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0025 542 S^;*********************************************************************^ 543 ;*THE FOLLOWING MISCELLANEOUS PRINT CHARACTERS ARE INCLUDED 544 ;*TO FACILITATE PRINTING AND ARE CALLED AS FOLLOWS: 545 ;* MOVEI NAME 546 ;* PNTA ;OR PNTAF 547 S^;*********************************************************************^ 548 549 030242 CRLF: ASCII/ 550 030242 015 012 000 000 000 / 551 030243 CRLF2: ASCII/ 552 553 030243 015 012 015 012 000 / 554 030244 054 000 000 000 000 COMMA: ASCII/,/ 555 030245 056 000 000 000 000 PERIOD: ASCII/./ 556 030246 040 000 000 000 000 SPACE: ASCII/ / 557 030247 011 000 000 000 000 TAB: ASCII/ / 558 030250 MINUS: 559 030250 055 000 000 000 000 HYPEN: ASCII/-/ 560 030251 053 000 000 000 000 PLUS: ASCII/+/ 561 030252 052 000 000 000 000 AST: ASCII/*/ 562 030253 100 000 000 000 000 ATSIN: ASCII/@/ 563 030254 050 000 000 000 000 LFP: ASCII/(/ 564 030255 051 000 000 000 000 RTP: ASCII/)/ 565 030256 007 0000000000 BELL: BYTE (7) 007 566 030257 077 000 000 000 000 QUEST: ASCII/?/ 567 030260 057 000 000 000 000 SLASH: ASCII!/! 568 030261 044 000 000 000 000 DOLLAR: ASCII/$/ 569 030262 000000 000012 RADIX: ^D10 ;DECIMAL PRINT RADIX 570 030263 000000 000040 RADLSP: 40 ;DECIMAL PRINT LEADING CHAR 571 030264 000000 000012 RADLSC: ^D10 ;DECIMAL PRINT LEADING CHAR COUNT 572 573 S^;*********************************************************************^ 574 ;*USER MODE OUTPUT FILE INFORMATION 575 S^;*********************************************************************^ 576 577 030265 $OBUF: BLOCK 3 ;LOGICAL FILE OUTPUT BUFFER HEADER 578 030270 60 62 51 56 64 00 $OUTNM: SIXBIT /PRINT/ ;FILE NAME 579 030271 60 56 64 00 00 00 $OUTEX: SIXBIT /PNT/ ;FILE NAME EXTENSION 580 030272 BLOCK 2 581 582 S^;*********************************************************************^ 583 ;*DISK UPDATE MODE FILE INFORMATION 584 S^;*********************************************************************^ 585 586 030274 $IBUF: BLOCK 3 587 030277 60 62 51 56 64 00 $INNM: SIXBIT /PRINT/ 588 030300 60 56 64 00 00 00 $INEXT: SIXBIT /PNT/ 589 030301 BLOCK 2 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6 FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0026 590 S^;*********************************************************************^ 591 ;*PUSHDOWN LIST CONTROL INFORMATION 592 S^;*********************************************************************^ 593 594 030303 777577 030303 PLIST: PLIST-PLISTE,,PLIST 595 030304 PLISTS: BLOCK 200 596 030504 000000 000000 PLISTE: 0 ;END OF PUSHDOWN LIST 597 598 S^;*********************************************************************^ 599 ;*POWER LINE CLOCK FREQUENCY FLAG 600 S^;*********************************************************************^ 601 602 030505 000000 000000 CYCL60: 0 ;0 = 60, -1 = 50 CYCLE 603 604 S^;*********************************************************************^ 605 ;*KL10 CACHE CONTROL FLAGS 606 S^;*********************************************************************^ 607 608 030506 000000 000000 CSHFLG: 0 ;ALLOW CACHE IF 0 609 030507 000000 000000 CSHMEM: 0 ;CACHE MEMORY SEGMENTS IF 0 610 611 S^;*********************************************************************^ 612 ;*NUMBER INPUT DIGIT FLAG 613 S^;*********************************************************************^ 614 615 030510 000000 000000 TTNBRF: 0 ;-1 IF ANY DIGIT TYPED 616 617 S^;*********************************************************************^ 618 ;*KL10 & KI10 "INHPAG" SWITCH PAGING PREVENTION 619 S^;*********************************************************************^ 620 621 030511 000000 000000 PVPAGI: 0 ;IF NON-ZERO, OVERRIDE "INHPAG" SWITCH ACTION 622 623 S^;*********************************************************************^ 624 ;*ERROR REPORTING ROUTINE ADDITIONAL USERS CONTROL INSTRUCTIONS 625 S^;*********************************************************************^ 626 627 030512 000000 000000 %ERHI1: 0 ;IF NON-ZERO, XCT'D AT START OF %ERUUO 628 030513 000000 000000 %ERHI2: 0 ;IF NON-ZERO, XCT'D AT END OF %ERUUO 629 030514 000000 000000 %ERHI3: 0 ;IF NON-ZERO, XCT'D AFTER "PC" OF %ERUUO 630 631 S^;*********************************************************************^ 632 ;*SPECIAL USERS UUO INTERCEPT INSTRUCTION 633 S^;*********************************************************************^ 634 635 030515 000000 000000 $$UUO: 0 ;IF NON-ZERO, XCT'D AT START OF $UORTN DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7 FIXED KLM 18-JAN-77 11:39 *FIXED* FIXED CONTROL AND DISPATCH STORAGE, JAN 18,1977 SEQ 0027 636 S^;*********************************************************************^ 637 ;*KL10 PROCESSOR TYPE FLAG, 0=P0, 1=BBD NEW, 2=BBD OLD 638 S^;*********************************************************************^ 639 640 030516 000000 000000 KLTYP: 0 641 642 S^;*********************************************************************^ 643 ;*SPECIAL USERS MUUO INTERCEPT INSTRUCTION 644 S^;*********************************************************************^ 645 646 030517 000000 000000 $$MUUO: 0 ;IF NON-ZERO, XCT'D AT START OF MUUOER 647 648 S^;*********************************************************************^ 649 ;*SPECIAL USERS USER MODE OUTPUT ERROR INTERCEPT INSTUCTION 650 S^;*********************************************************************^ 651 652 030520 000000 000000 $$OUTER:0 ;IF NON-ZERO, XCT'D AT END OF USER MODE ERROR 653 654 S^;*********************************************************************^ 655 ;*"SWITCH" CALL USAGE CONTROL 656 S^;*********************************************************************^ 657 658 030521 000000 000000 $$TOGGLE:0 ;IF NON-ZERO, USE C(CONSW) FOR SWITCHES 659 660 S^;*********************************************************************^ 661 ;*SPECIAL USERS ALTMODE SWITCH CALL INTERCEPT INSTRUCTIONS 662 S^;*********************************************************************^ 663 664 030522 000000 000000 $$TAX1: 0 ;IF NON-ZERO, XCT'D AT START OF ALTMODE SWITCH CALL 665 030523 000000 000000 $$TAX2: 0 ;IF NON-ZERO, XCT'D AT END OF ALTMODE SWITCH CALL 666 667 S^;*********************************************************************^ 668 ;*SPECIAL FUTURE EXPANSION ROOM 669 ;*IF ANY FIXED AREA TAGS ARE ADDED, REDUCE THE SIZE OF 670 ;*THIS BLOCK STATEMENT ACCORDINGLY. THIS MUST BE DONE 671 ;*SO THAT PREVIOUS FIXED ASSIGNMENTS DO NOT CHANGE. 672 S^;*********************************************************************^ 673 674 030524 BLOCK 53 ;HOPEFULLY THIS IS ENOUGH FOREVER 675 676 S^;*********************************************************************^ 677 ;*END OF FIXED STORAGE 678 S^;*********************************************************************^ 679 680 030577 $ENDFX=&<777700>-1 681 030577 LOC $ENDFX 682 030577 000000 000000 ENDFIX: 0 ;END OF FIXED STORAGE DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION SEQ 0028 683 SUBTTL DIAGNOSTIC SECTION 684 685 030600 037 05 0 00 000002 EXIT: DROPDV ;CLOSE LOGICAL OUTPUT FILE 686 030601 000000 030600 EXIT 687 688 030602 PGMNAM: ASCIZ/ 689 030602 015 012 120 104 120 PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) [DAKAK] 690 030603 055 061 060 040 040 691 030604 113 101 061 060 040 692 030605 102 101 123 111 103 693 030606 040 111 116 123 124 694 030607 122 125 103 124 111 695 030610 117 116 040 104 111 696 030611 101 107 116 117 123 697 030612 124 111 103 040 050 698 030613 061 061 051 040 133 699 030614 104 101 113 101 113 700 030615 135 015 012 000 000 / 701 702 ;INITIALIZE 703 704 030616 265 00 0 00 030011 START: PGMINT 705 030617 200 00 0 00 043775 MOVE [ASCIZ/AK/] 706 030620 202 00 0 00 043711 MOVEM TLET ;INITIALIZE TEST LETTER 707 708 030621 254 00 0 00 030622 STARTA: JRST F00 ;GO PERFORM DIAGNOSTIC DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0029 709 SUBTTL DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT 710 711 003000 ADR=3000 712 000014 AC=14 713 000012 E=&17 714 715 030622 F00: SAVEAC (1,1)^ 716 030622 201 16 0 00 030622 MOVEI AC+2,. ;SAVE TEST PC 717 030623 202 16 0 00 030051 MOVEM AC+2,TESTPC 718 030624 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH 719 030625 202 16 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ 720 721 ;MULTIPLY 0 BY 0 TO GET PRODUCT OF 0 722 MOP1 (\ADR,0,-1,0,0,0)^ 723 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 724 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 725 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 726 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 727 728 000000 F30000: AA1=0 ;INITIAL C(AC) 729 030626 200 14 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 730 777777 777777 AA2=-1 ;INITIAL C(AC+1) 731 030627 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 732 000000 AEE=0 ;INITIAL C(E) 733 030630 200 12 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 734 030631 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 735 000000 AR1=0 ;EXPECTED RESULT IN AC 736 030632 312 14 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 737 030633 003 14 0 00 030001 ER3 AC,30001 ;HIGH PRODUCT FAILED 738 000000 AR2=0 ;EXPECTED RESULT IN AC+1 739 030634 312 15 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 740 030635 004 15 0 00 030002 ER4 AC+1,30002 ;LOW PRODUCT FAILED 741 000000 AEE=0 ;INITIAL C(E) 742 030636 312 12 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 743 030637 005 12 0 00 030003 ER5 E,30003 ;C(E) WAS CLOBBERED 744 030640 321 16 0 00 030626 JUMPL AC+2,F30000 ;LOOP ON ERROR SWITCH^ 745 746 000013 AC=13 747 000011 E=&17 748 SAVEAC (1,1)^ 749 030641 201 15 0 00 030641 MOVEI AC+2,. ;SAVE TEST PC 750 030642 202 15 0 00 030051 MOVEM AC+2,TESTPC 751 030643 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH 752 030644 202 15 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ 753 000000 XX=0 754 755 REPEAT ^D36, < 756 ADR=ADR+1 757 XX=XX+XX 758 IFE XX, 759 760 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 761 MOP1 (\ADR,0,-1,XX,0,0)> 762 763 003001 ADR=ADR+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-1 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0030 764 000000 XX=XX+XX 765 000001 IFE XX, 766 767 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 768 MOP1 (\ADR,0,-1,XX,0,0)^ 769 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 770 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 771 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 772 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 773 774 000000 F30010: AA1=0 ;INITIAL C(AC) 775 030645 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 776 777777 777777 AA2=-1 ;INITIAL C(AC+1) 777 030646 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 778 000001 AEE=XX ;INITIAL C(E) 779 030647 200 11 0 00 044000 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 780 030650 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 781 000000 AR1=0 ;EXPECTED RESULT IN AC 782 030651 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 783 030652 003 13 0 00 030011 ER3 AC,30011 ;HIGH PRODUCT FAILED 784 000000 AR2=0 ;EXPECTED RESULT IN AC+1 785 030653 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 786 030654 004 14 0 00 030012 ER4 AC+1,30012 ;LOW PRODUCT FAILED 787 000001 AEE=XX ;INITIAL C(E) 788 030655 312 11 0 00 044000 CAME E,[XX] ;WAS C(E) CLOBBERED? 789 030656 005 11 0 00 030013 ER5 E,30013 ;C(E) WAS CLOBBERED 790 030657 321 15 0 00 030645 JUMPL AC+2,F30010 ;LOOP ON ERROR SWITCH^ 791 792 003002 ADR=ADR+1 793 000002 XX=XX+XX 794 IFE XX, 795 796 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 797 MOP1 (\ADR,0,-1,XX,0,0)^ 798 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 799 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 800 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 801 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 802 803 000000 F30020: AA1=0 ;INITIAL C(AC) 804 030660 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 805 777777 777777 AA2=-1 ;INITIAL C(AC+1) 806 030661 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 807 000002 AEE=XX ;INITIAL C(E) 808 030662 200 11 0 00 044001 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 809 030663 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 810 000000 AR1=0 ;EXPECTED RESULT IN AC 811 030664 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 812 030665 003 13 0 00 030021 ER3 AC,30021 ;HIGH PRODUCT FAILED 813 000000 AR2=0 ;EXPECTED RESULT IN AC+1 814 030666 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 815 030667 004 14 0 00 030022 ER4 AC+1,30022 ;LOW PRODUCT FAILED 816 000002 AEE=XX ;INITIAL C(E) 817 030670 312 11 0 00 044001 CAME E,[XX] ;WAS C(E) CLOBBERED? 818 030671 005 11 0 00 030023 ER5 E,30023 ;C(E) WAS CLOBBERED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-2 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0031 819 030672 321 15 0 00 030660 JUMPL AC+2,F30020 ;LOOP ON ERROR SWITCH^ 820 821 003003 ADR=ADR+1 822 000004 XX=XX+XX 823 IFE XX, 824 825 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 826 MOP1 (\ADR,0,-1,XX,0,0)^ 827 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 828 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 829 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 830 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 831 832 000000 F30030: AA1=0 ;INITIAL C(AC) 833 030673 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 834 777777 777777 AA2=-1 ;INITIAL C(AC+1) 835 030674 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 836 000004 AEE=XX ;INITIAL C(E) 837 030675 200 11 0 00 044002 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 838 030676 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 839 000000 AR1=0 ;EXPECTED RESULT IN AC 840 030677 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 841 030700 003 13 0 00 030031 ER3 AC,30031 ;HIGH PRODUCT FAILED 842 000000 AR2=0 ;EXPECTED RESULT IN AC+1 843 030701 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 844 030702 004 14 0 00 030032 ER4 AC+1,30032 ;LOW PRODUCT FAILED 845 000004 AEE=XX ;INITIAL C(E) 846 030703 312 11 0 00 044002 CAME E,[XX] ;WAS C(E) CLOBBERED? 847 030704 005 11 0 00 030033 ER5 E,30033 ;C(E) WAS CLOBBERED 848 030705 321 15 0 00 030673 JUMPL AC+2,F30030 ;LOOP ON ERROR SWITCH^ 849 850 003004 ADR=ADR+1 851 000010 XX=XX+XX 852 IFE XX, 853 854 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 855 MOP1 (\ADR,0,-1,XX,0,0)^ 856 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 857 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 858 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 859 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 860 861 000000 F30040: AA1=0 ;INITIAL C(AC) 862 030706 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 863 777777 777777 AA2=-1 ;INITIAL C(AC+1) 864 030707 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 865 000010 AEE=XX ;INITIAL C(E) 866 030710 200 11 0 00 044003 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 867 030711 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 868 000000 AR1=0 ;EXPECTED RESULT IN AC 869 030712 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 870 030713 003 13 0 00 030041 ER3 AC,30041 ;HIGH PRODUCT FAILED 871 000000 AR2=0 ;EXPECTED RESULT IN AC+1 872 030714 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 873 030715 004 14 0 00 030042 ER4 AC+1,30042 ;LOW PRODUCT FAILED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-3 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0032 874 000010 AEE=XX ;INITIAL C(E) 875 030716 312 11 0 00 044003 CAME E,[XX] ;WAS C(E) CLOBBERED? 876 030717 005 11 0 00 030043 ER5 E,30043 ;C(E) WAS CLOBBERED 877 030720 321 15 0 00 030706 JUMPL AC+2,F30040 ;LOOP ON ERROR SWITCH^ 878 879 003005 ADR=ADR+1 880 000020 XX=XX+XX 881 IFE XX, 882 883 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 884 MOP1 (\ADR,0,-1,XX,0,0)^ 885 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 886 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 887 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 888 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 889 890 000000 F30050: AA1=0 ;INITIAL C(AC) 891 030721 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 892 777777 777777 AA2=-1 ;INITIAL C(AC+1) 893 030722 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 894 000020 AEE=XX ;INITIAL C(E) 895 030723 200 11 0 00 044004 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 896 030724 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 897 000000 AR1=0 ;EXPECTED RESULT IN AC 898 030725 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 899 030726 003 13 0 00 030051 ER3 AC,30051 ;HIGH PRODUCT FAILED 900 000000 AR2=0 ;EXPECTED RESULT IN AC+1 901 030727 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 902 030730 004 14 0 00 030052 ER4 AC+1,30052 ;LOW PRODUCT FAILED 903 000020 AEE=XX ;INITIAL C(E) 904 030731 312 11 0 00 044004 CAME E,[XX] ;WAS C(E) CLOBBERED? 905 030732 005 11 0 00 030053 ER5 E,30053 ;C(E) WAS CLOBBERED 906 030733 321 15 0 00 030721 JUMPL AC+2,F30050 ;LOOP ON ERROR SWITCH^ 907 908 003006 ADR=ADR+1 909 000040 XX=XX+XX 910 IFE XX, 911 912 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 913 MOP1 (\ADR,0,-1,XX,0,0)^ 914 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 915 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 916 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 917 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 918 919 000000 F30060: AA1=0 ;INITIAL C(AC) 920 030734 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 921 777777 777777 AA2=-1 ;INITIAL C(AC+1) 922 030735 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 923 000040 AEE=XX ;INITIAL C(E) 924 030736 200 11 0 00 044005 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 925 030737 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 926 000000 AR1=0 ;EXPECTED RESULT IN AC 927 030740 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 928 030741 003 13 0 00 030061 ER3 AC,30061 ;HIGH PRODUCT FAILED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-4 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0033 929 000000 AR2=0 ;EXPECTED RESULT IN AC+1 930 030742 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 931 030743 004 14 0 00 030062 ER4 AC+1,30062 ;LOW PRODUCT FAILED 932 000040 AEE=XX ;INITIAL C(E) 933 030744 312 11 0 00 044005 CAME E,[XX] ;WAS C(E) CLOBBERED? 934 030745 005 11 0 00 030063 ER5 E,30063 ;C(E) WAS CLOBBERED 935 030746 321 15 0 00 030734 JUMPL AC+2,F30060 ;LOOP ON ERROR SWITCH^ 936 937 003007 ADR=ADR+1 938 000100 XX=XX+XX 939 IFE XX, 940 941 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 942 MOP1 (\ADR,0,-1,XX,0,0)^ 943 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 944 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 945 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 946 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 947 948 000000 F30070: AA1=0 ;INITIAL C(AC) 949 030747 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 950 777777 777777 AA2=-1 ;INITIAL C(AC+1) 951 030750 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 952 000100 AEE=XX ;INITIAL C(E) 953 030751 200 11 0 00 044006 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 954 030752 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 955 000000 AR1=0 ;EXPECTED RESULT IN AC 956 030753 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 957 030754 003 13 0 00 030071 ER3 AC,30071 ;HIGH PRODUCT FAILED 958 000000 AR2=0 ;EXPECTED RESULT IN AC+1 959 030755 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 960 030756 004 14 0 00 030072 ER4 AC+1,30072 ;LOW PRODUCT FAILED 961 000100 AEE=XX ;INITIAL C(E) 962 030757 312 11 0 00 044006 CAME E,[XX] ;WAS C(E) CLOBBERED? 963 030760 005 11 0 00 030073 ER5 E,30073 ;C(E) WAS CLOBBERED 964 030761 321 15 0 00 030747 JUMPL AC+2,F30070 ;LOOP ON ERROR SWITCH^ 965 966 003010 ADR=ADR+1 967 000200 XX=XX+XX 968 IFE XX, 969 970 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 971 MOP1 (\ADR,0,-1,XX,0,0)^ 972 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 973 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 974 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 975 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 976 977 000000 F30100: AA1=0 ;INITIAL C(AC) 978 030762 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 979 777777 777777 AA2=-1 ;INITIAL C(AC+1) 980 030763 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 981 000200 AEE=XX ;INITIAL C(E) 982 030764 200 11 0 00 044007 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 983 030765 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-5 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0034 984 000000 AR1=0 ;EXPECTED RESULT IN AC 985 030766 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 986 030767 003 13 0 00 030101 ER3 AC,30101 ;HIGH PRODUCT FAILED 987 000000 AR2=0 ;EXPECTED RESULT IN AC+1 988 030770 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 989 030771 004 14 0 00 030102 ER4 AC+1,30102 ;LOW PRODUCT FAILED 990 000200 AEE=XX ;INITIAL C(E) 991 030772 312 11 0 00 044007 CAME E,[XX] ;WAS C(E) CLOBBERED? 992 030773 005 11 0 00 030103 ER5 E,30103 ;C(E) WAS CLOBBERED 993 030774 321 15 0 00 030762 JUMPL AC+2,F30100 ;LOOP ON ERROR SWITCH^ 994 995 003011 ADR=ADR+1 996 000400 XX=XX+XX 997 IFE XX, 998 999 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1000 MOP1 (\ADR,0,-1,XX,0,0)^ 1001 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1002 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1003 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1004 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1005 1006 000000 F30110: AA1=0 ;INITIAL C(AC) 1007 030775 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1008 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1009 030776 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1010 000400 AEE=XX ;INITIAL C(E) 1011 030777 200 11 0 00 044010 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1012 031000 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1013 000000 AR1=0 ;EXPECTED RESULT IN AC 1014 031001 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1015 031002 003 13 0 00 030111 ER3 AC,30111 ;HIGH PRODUCT FAILED 1016 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1017 031003 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1018 031004 004 14 0 00 030112 ER4 AC+1,30112 ;LOW PRODUCT FAILED 1019 000400 AEE=XX ;INITIAL C(E) 1020 031005 312 11 0 00 044010 CAME E,[XX] ;WAS C(E) CLOBBERED? 1021 031006 005 11 0 00 030113 ER5 E,30113 ;C(E) WAS CLOBBERED 1022 031007 321 15 0 00 030775 JUMPL AC+2,F30110 ;LOOP ON ERROR SWITCH^ 1023 1024 003012 ADR=ADR+1 1025 001000 XX=XX+XX 1026 IFE XX, 1027 1028 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1029 MOP1 (\ADR,0,-1,XX,0,0)^ 1030 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1031 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1032 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1033 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1034 1035 000000 F30120: AA1=0 ;INITIAL C(AC) 1036 031010 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1037 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1038 031011 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-6 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0035 1039 001000 AEE=XX ;INITIAL C(E) 1040 031012 200 11 0 00 044011 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1041 031013 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1042 000000 AR1=0 ;EXPECTED RESULT IN AC 1043 031014 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1044 031015 003 13 0 00 030121 ER3 AC,30121 ;HIGH PRODUCT FAILED 1045 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1046 031016 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1047 031017 004 14 0 00 030122 ER4 AC+1,30122 ;LOW PRODUCT FAILED 1048 001000 AEE=XX ;INITIAL C(E) 1049 031020 312 11 0 00 044011 CAME E,[XX] ;WAS C(E) CLOBBERED? 1050 031021 005 11 0 00 030123 ER5 E,30123 ;C(E) WAS CLOBBERED 1051 031022 321 15 0 00 031010 JUMPL AC+2,F30120 ;LOOP ON ERROR SWITCH^ 1052 1053 003013 ADR=ADR+1 1054 002000 XX=XX+XX 1055 IFE XX, 1056 1057 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1058 MOP1 (\ADR,0,-1,XX,0,0)^ 1059 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1060 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1061 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1062 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1063 1064 000000 F30130: AA1=0 ;INITIAL C(AC) 1065 031023 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1066 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1067 031024 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1068 002000 AEE=XX ;INITIAL C(E) 1069 031025 200 11 0 00 044012 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1070 031026 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1071 000000 AR1=0 ;EXPECTED RESULT IN AC 1072 031027 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1073 031030 003 13 0 00 030131 ER3 AC,30131 ;HIGH PRODUCT FAILED 1074 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1075 031031 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1076 031032 004 14 0 00 030132 ER4 AC+1,30132 ;LOW PRODUCT FAILED 1077 002000 AEE=XX ;INITIAL C(E) 1078 031033 312 11 0 00 044012 CAME E,[XX] ;WAS C(E) CLOBBERED? 1079 031034 005 11 0 00 030133 ER5 E,30133 ;C(E) WAS CLOBBERED 1080 031035 321 15 0 00 031023 JUMPL AC+2,F30130 ;LOOP ON ERROR SWITCH^ 1081 1082 003014 ADR=ADR+1 1083 004000 XX=XX+XX 1084 IFE XX, 1085 1086 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1087 MOP1 (\ADR,0,-1,XX,0,0)^ 1088 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1089 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1090 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1091 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1092 1093 000000 F30140: AA1=0 ;INITIAL C(AC) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-7 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0036 1094 031036 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1095 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1096 031037 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1097 004000 AEE=XX ;INITIAL C(E) 1098 031040 200 11 0 00 044013 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1099 031041 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1100 000000 AR1=0 ;EXPECTED RESULT IN AC 1101 031042 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1102 031043 003 13 0 00 030141 ER3 AC,30141 ;HIGH PRODUCT FAILED 1103 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1104 031044 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1105 031045 004 14 0 00 030142 ER4 AC+1,30142 ;LOW PRODUCT FAILED 1106 004000 AEE=XX ;INITIAL C(E) 1107 031046 312 11 0 00 044013 CAME E,[XX] ;WAS C(E) CLOBBERED? 1108 031047 005 11 0 00 030143 ER5 E,30143 ;C(E) WAS CLOBBERED 1109 031050 321 15 0 00 031036 JUMPL AC+2,F30140 ;LOOP ON ERROR SWITCH^ 1110 1111 003015 ADR=ADR+1 1112 010000 XX=XX+XX 1113 IFE XX, 1114 1115 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1116 MOP1 (\ADR,0,-1,XX,0,0)^ 1117 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1118 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1119 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1120 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1121 1122 000000 F30150: AA1=0 ;INITIAL C(AC) 1123 031051 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1124 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1125 031052 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1126 010000 AEE=XX ;INITIAL C(E) 1127 031053 200 11 0 00 044014 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1128 031054 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1129 000000 AR1=0 ;EXPECTED RESULT IN AC 1130 031055 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1131 031056 003 13 0 00 030151 ER3 AC,30151 ;HIGH PRODUCT FAILED 1132 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1133 031057 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1134 031060 004 14 0 00 030152 ER4 AC+1,30152 ;LOW PRODUCT FAILED 1135 010000 AEE=XX ;INITIAL C(E) 1136 031061 312 11 0 00 044014 CAME E,[XX] ;WAS C(E) CLOBBERED? 1137 031062 005 11 0 00 030153 ER5 E,30153 ;C(E) WAS CLOBBERED 1138 031063 321 15 0 00 031051 JUMPL AC+2,F30150 ;LOOP ON ERROR SWITCH^ 1139 1140 003016 ADR=ADR+1 1141 020000 XX=XX+XX 1142 IFE XX, 1143 1144 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1145 MOP1 (\ADR,0,-1,XX,0,0)^ 1146 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1147 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1148 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-8 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0037 1149 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1150 1151 000000 F30160: AA1=0 ;INITIAL C(AC) 1152 031064 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1153 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1154 031065 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1155 020000 AEE=XX ;INITIAL C(E) 1156 031066 200 11 0 00 044015 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1157 031067 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1158 000000 AR1=0 ;EXPECTED RESULT IN AC 1159 031070 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1160 031071 003 13 0 00 030161 ER3 AC,30161 ;HIGH PRODUCT FAILED 1161 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1162 031072 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1163 031073 004 14 0 00 030162 ER4 AC+1,30162 ;LOW PRODUCT FAILED 1164 020000 AEE=XX ;INITIAL C(E) 1165 031074 312 11 0 00 044015 CAME E,[XX] ;WAS C(E) CLOBBERED? 1166 031075 005 11 0 00 030163 ER5 E,30163 ;C(E) WAS CLOBBERED 1167 031076 321 15 0 00 031064 JUMPL AC+2,F30160 ;LOOP ON ERROR SWITCH^ 1168 1169 003017 ADR=ADR+1 1170 040000 XX=XX+XX 1171 IFE XX, 1172 1173 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1174 MOP1 (\ADR,0,-1,XX,0,0)^ 1175 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1176 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1177 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1178 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1179 1180 000000 F30170: AA1=0 ;INITIAL C(AC) 1181 031077 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1182 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1183 031100 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1184 040000 AEE=XX ;INITIAL C(E) 1185 031101 200 11 0 00 044016 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1186 031102 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1187 000000 AR1=0 ;EXPECTED RESULT IN AC 1188 031103 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1189 031104 003 13 0 00 030171 ER3 AC,30171 ;HIGH PRODUCT FAILED 1190 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1191 031105 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1192 031106 004 14 0 00 030172 ER4 AC+1,30172 ;LOW PRODUCT FAILED 1193 040000 AEE=XX ;INITIAL C(E) 1194 031107 312 11 0 00 044016 CAME E,[XX] ;WAS C(E) CLOBBERED? 1195 031110 005 11 0 00 030173 ER5 E,30173 ;C(E) WAS CLOBBERED 1196 031111 321 15 0 00 031077 JUMPL AC+2,F30170 ;LOOP ON ERROR SWITCH^ 1197 1198 003020 ADR=ADR+1 1199 100000 XX=XX+XX 1200 IFE XX, 1201 1202 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1203 MOP1 (\ADR,0,-1,XX,0,0)^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-9 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0038 1204 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1205 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1206 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1207 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1208 1209 000000 F30200: AA1=0 ;INITIAL C(AC) 1210 031112 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1211 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1212 031113 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1213 100000 AEE=XX ;INITIAL C(E) 1214 031114 200 11 0 00 044017 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1215 031115 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1216 000000 AR1=0 ;EXPECTED RESULT IN AC 1217 031116 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1218 031117 003 13 0 00 030201 ER3 AC,30201 ;HIGH PRODUCT FAILED 1219 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1220 031120 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1221 031121 004 14 0 00 030202 ER4 AC+1,30202 ;LOW PRODUCT FAILED 1222 100000 AEE=XX ;INITIAL C(E) 1223 031122 312 11 0 00 044017 CAME E,[XX] ;WAS C(E) CLOBBERED? 1224 031123 005 11 0 00 030203 ER5 E,30203 ;C(E) WAS CLOBBERED 1225 031124 321 15 0 00 031112 JUMPL AC+2,F30200 ;LOOP ON ERROR SWITCH^ 1226 1227 003021 ADR=ADR+1 1228 200000 XX=XX+XX 1229 IFE XX, 1230 1231 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1232 MOP1 (\ADR,0,-1,XX,0,0)^ 1233 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1234 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1235 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1236 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1237 1238 000000 F30210: AA1=0 ;INITIAL C(AC) 1239 031125 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1240 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1241 031126 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1242 200000 AEE=XX ;INITIAL C(E) 1243 031127 200 11 0 00 044020 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1244 031130 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1245 000000 AR1=0 ;EXPECTED RESULT IN AC 1246 031131 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1247 031132 003 13 0 00 030211 ER3 AC,30211 ;HIGH PRODUCT FAILED 1248 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1249 031133 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1250 031134 004 14 0 00 030212 ER4 AC+1,30212 ;LOW PRODUCT FAILED 1251 200000 AEE=XX ;INITIAL C(E) 1252 031135 312 11 0 00 044020 CAME E,[XX] ;WAS C(E) CLOBBERED? 1253 031136 005 11 0 00 030213 ER5 E,30213 ;C(E) WAS CLOBBERED 1254 031137 321 15 0 00 031125 JUMPL AC+2,F30210 ;LOOP ON ERROR SWITCH^ 1255 1256 003022 ADR=ADR+1 1257 400000 XX=XX+XX 1258 IFE XX, DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-10 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0039 1259 1260 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1261 MOP1 (\ADR,0,-1,XX,0,0)^ 1262 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1263 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1264 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1265 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1266 1267 000000 F30220: AA1=0 ;INITIAL C(AC) 1268 031140 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1269 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1270 031141 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1271 400000 AEE=XX ;INITIAL C(E) 1272 031142 200 11 0 00 044021 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1273 031143 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1274 000000 AR1=0 ;EXPECTED RESULT IN AC 1275 031144 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1276 031145 003 13 0 00 030221 ER3 AC,30221 ;HIGH PRODUCT FAILED 1277 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1278 031146 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1279 031147 004 14 0 00 030222 ER4 AC+1,30222 ;LOW PRODUCT FAILED 1280 400000 AEE=XX ;INITIAL C(E) 1281 031150 312 11 0 00 044021 CAME E,[XX] ;WAS C(E) CLOBBERED? 1282 031151 005 11 0 00 030223 ER5 E,30223 ;C(E) WAS CLOBBERED 1283 031152 321 15 0 00 031140 JUMPL AC+2,F30220 ;LOOP ON ERROR SWITCH^ 1284 1285 003023 ADR=ADR+1 1286 000001 000000 XX=XX+XX 1287 IFE XX, 1288 1289 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1290 MOP1 (\ADR,0,-1,XX,0,0)^ 1291 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1292 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1293 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1294 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1295 1296 000000 F30230: AA1=0 ;INITIAL C(AC) 1297 031153 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1298 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1299 031154 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1300 000001 000000 AEE=XX ;INITIAL C(E) 1301 031155 200 11 0 00 044022 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1302 031156 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1303 000000 AR1=0 ;EXPECTED RESULT IN AC 1304 031157 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1305 031160 003 13 0 00 030231 ER3 AC,30231 ;HIGH PRODUCT FAILED 1306 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1307 031161 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1308 031162 004 14 0 00 030232 ER4 AC+1,30232 ;LOW PRODUCT FAILED 1309 000001 000000 AEE=XX ;INITIAL C(E) 1310 031163 312 11 0 00 044022 CAME E,[XX] ;WAS C(E) CLOBBERED? 1311 031164 005 11 0 00 030233 ER5 E,30233 ;C(E) WAS CLOBBERED 1312 031165 321 15 0 00 031153 JUMPL AC+2,F30230 ;LOOP ON ERROR SWITCH^ 1313 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-11 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0040 1314 003024 ADR=ADR+1 1315 000002 000000 XX=XX+XX 1316 IFE XX, 1317 1318 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1319 MOP1 (\ADR,0,-1,XX,0,0)^ 1320 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1321 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1322 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1323 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1324 1325 000000 F30240: AA1=0 ;INITIAL C(AC) 1326 031166 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1327 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1328 031167 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1329 000002 000000 AEE=XX ;INITIAL C(E) 1330 031170 200 11 0 00 044023 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1331 031171 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1332 000000 AR1=0 ;EXPECTED RESULT IN AC 1333 031172 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1334 031173 003 13 0 00 030241 ER3 AC,30241 ;HIGH PRODUCT FAILED 1335 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1336 031174 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1337 031175 004 14 0 00 030242 ER4 AC+1,30242 ;LOW PRODUCT FAILED 1338 000002 000000 AEE=XX ;INITIAL C(E) 1339 031176 312 11 0 00 044023 CAME E,[XX] ;WAS C(E) CLOBBERED? 1340 031177 005 11 0 00 030243 ER5 E,30243 ;C(E) WAS CLOBBERED 1341 031200 321 15 0 00 031166 JUMPL AC+2,F30240 ;LOOP ON ERROR SWITCH^ 1342 1343 003025 ADR=ADR+1 1344 000004 000000 XX=XX+XX 1345 IFE XX, 1346 1347 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1348 MOP1 (\ADR,0,-1,XX,0,0)^ 1349 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1350 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1351 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1352 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1353 1354 000000 F30250: AA1=0 ;INITIAL C(AC) 1355 031201 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1356 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1357 031202 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1358 000004 000000 AEE=XX ;INITIAL C(E) 1359 031203 200 11 0 00 044024 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1360 031204 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1361 000000 AR1=0 ;EXPECTED RESULT IN AC 1362 031205 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1363 031206 003 13 0 00 030251 ER3 AC,30251 ;HIGH PRODUCT FAILED 1364 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1365 031207 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1366 031210 004 14 0 00 030252 ER4 AC+1,30252 ;LOW PRODUCT FAILED 1367 000004 000000 AEE=XX ;INITIAL C(E) 1368 031211 312 11 0 00 044024 CAME E,[XX] ;WAS C(E) CLOBBERED? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-12 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0041 1369 031212 005 11 0 00 030253 ER5 E,30253 ;C(E) WAS CLOBBERED 1370 031213 321 15 0 00 031201 JUMPL AC+2,F30250 ;LOOP ON ERROR SWITCH^ 1371 1372 003026 ADR=ADR+1 1373 000010 000000 XX=XX+XX 1374 IFE XX, 1375 1376 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1377 MOP1 (\ADR,0,-1,XX,0,0)^ 1378 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1379 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1380 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1381 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1382 1383 000000 F30260: AA1=0 ;INITIAL C(AC) 1384 031214 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1385 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1386 031215 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1387 000010 000000 AEE=XX ;INITIAL C(E) 1388 031216 200 11 0 00 044025 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1389 031217 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1390 000000 AR1=0 ;EXPECTED RESULT IN AC 1391 031220 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1392 031221 003 13 0 00 030261 ER3 AC,30261 ;HIGH PRODUCT FAILED 1393 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1394 031222 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1395 031223 004 14 0 00 030262 ER4 AC+1,30262 ;LOW PRODUCT FAILED 1396 000010 000000 AEE=XX ;INITIAL C(E) 1397 031224 312 11 0 00 044025 CAME E,[XX] ;WAS C(E) CLOBBERED? 1398 031225 005 11 0 00 030263 ER5 E,30263 ;C(E) WAS CLOBBERED 1399 031226 321 15 0 00 031214 JUMPL AC+2,F30260 ;LOOP ON ERROR SWITCH^ 1400 1401 003027 ADR=ADR+1 1402 000020 000000 XX=XX+XX 1403 IFE XX, 1404 1405 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1406 MOP1 (\ADR,0,-1,XX,0,0)^ 1407 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1408 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1409 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1410 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1411 1412 000000 F30270: AA1=0 ;INITIAL C(AC) 1413 031227 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1414 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1415 031230 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1416 000020 000000 AEE=XX ;INITIAL C(E) 1417 031231 200 11 0 00 044026 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1418 031232 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1419 000000 AR1=0 ;EXPECTED RESULT IN AC 1420 031233 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1421 031234 003 13 0 00 030271 ER3 AC,30271 ;HIGH PRODUCT FAILED 1422 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1423 031235 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-13 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0042 1424 031236 004 14 0 00 030272 ER4 AC+1,30272 ;LOW PRODUCT FAILED 1425 000020 000000 AEE=XX ;INITIAL C(E) 1426 031237 312 11 0 00 044026 CAME E,[XX] ;WAS C(E) CLOBBERED? 1427 031240 005 11 0 00 030273 ER5 E,30273 ;C(E) WAS CLOBBERED 1428 031241 321 15 0 00 031227 JUMPL AC+2,F30270 ;LOOP ON ERROR SWITCH^ 1429 1430 003030 ADR=ADR+1 1431 000040 000000 XX=XX+XX 1432 IFE XX, 1433 1434 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1435 MOP1 (\ADR,0,-1,XX,0,0)^ 1436 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1437 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1438 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1439 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1440 1441 000000 F30300: AA1=0 ;INITIAL C(AC) 1442 031242 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1443 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1444 031243 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1445 000040 000000 AEE=XX ;INITIAL C(E) 1446 031244 200 11 0 00 044027 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1447 031245 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1448 000000 AR1=0 ;EXPECTED RESULT IN AC 1449 031246 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1450 031247 003 13 0 00 030301 ER3 AC,30301 ;HIGH PRODUCT FAILED 1451 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1452 031250 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1453 031251 004 14 0 00 030302 ER4 AC+1,30302 ;LOW PRODUCT FAILED 1454 000040 000000 AEE=XX ;INITIAL C(E) 1455 031252 312 11 0 00 044027 CAME E,[XX] ;WAS C(E) CLOBBERED? 1456 031253 005 11 0 00 030303 ER5 E,30303 ;C(E) WAS CLOBBERED 1457 031254 321 15 0 00 031242 JUMPL AC+2,F30300 ;LOOP ON ERROR SWITCH^ 1458 1459 003031 ADR=ADR+1 1460 000100 000000 XX=XX+XX 1461 IFE XX, 1462 1463 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1464 MOP1 (\ADR,0,-1,XX,0,0)^ 1465 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1466 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1467 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1468 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1469 1470 000000 F30310: AA1=0 ;INITIAL C(AC) 1471 031255 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1472 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1473 031256 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1474 000100 000000 AEE=XX ;INITIAL C(E) 1475 031257 200 11 0 00 044030 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1476 031260 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1477 000000 AR1=0 ;EXPECTED RESULT IN AC 1478 031261 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-14 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0043 1479 031262 003 13 0 00 030311 ER3 AC,30311 ;HIGH PRODUCT FAILED 1480 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1481 031263 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1482 031264 004 14 0 00 030312 ER4 AC+1,30312 ;LOW PRODUCT FAILED 1483 000100 000000 AEE=XX ;INITIAL C(E) 1484 031265 312 11 0 00 044030 CAME E,[XX] ;WAS C(E) CLOBBERED? 1485 031266 005 11 0 00 030313 ER5 E,30313 ;C(E) WAS CLOBBERED 1486 031267 321 15 0 00 031255 JUMPL AC+2,F30310 ;LOOP ON ERROR SWITCH^ 1487 1488 003032 ADR=ADR+1 1489 000200 000000 XX=XX+XX 1490 IFE XX, 1491 1492 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1493 MOP1 (\ADR,0,-1,XX,0,0)^ 1494 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1495 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1496 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1497 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1498 1499 000000 F30320: AA1=0 ;INITIAL C(AC) 1500 031270 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1501 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1502 031271 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1503 000200 000000 AEE=XX ;INITIAL C(E) 1504 031272 200 11 0 00 044031 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1505 031273 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1506 000000 AR1=0 ;EXPECTED RESULT IN AC 1507 031274 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1508 031275 003 13 0 00 030321 ER3 AC,30321 ;HIGH PRODUCT FAILED 1509 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1510 031276 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1511 031277 004 14 0 00 030322 ER4 AC+1,30322 ;LOW PRODUCT FAILED 1512 000200 000000 AEE=XX ;INITIAL C(E) 1513 031300 312 11 0 00 044031 CAME E,[XX] ;WAS C(E) CLOBBERED? 1514 031301 005 11 0 00 030323 ER5 E,30323 ;C(E) WAS CLOBBERED 1515 031302 321 15 0 00 031270 JUMPL AC+2,F30320 ;LOOP ON ERROR SWITCH^ 1516 1517 003033 ADR=ADR+1 1518 000400 000000 XX=XX+XX 1519 IFE XX, 1520 1521 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1522 MOP1 (\ADR,0,-1,XX,0,0)^ 1523 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1524 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1525 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1526 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1527 1528 000000 F30330: AA1=0 ;INITIAL C(AC) 1529 031303 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1530 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1531 031304 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1532 000400 000000 AEE=XX ;INITIAL C(E) 1533 031305 200 11 0 00 044032 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-15 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0044 1534 031306 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1535 000000 AR1=0 ;EXPECTED RESULT IN AC 1536 031307 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1537 031310 003 13 0 00 030331 ER3 AC,30331 ;HIGH PRODUCT FAILED 1538 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1539 031311 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1540 031312 004 14 0 00 030332 ER4 AC+1,30332 ;LOW PRODUCT FAILED 1541 000400 000000 AEE=XX ;INITIAL C(E) 1542 031313 312 11 0 00 044032 CAME E,[XX] ;WAS C(E) CLOBBERED? 1543 031314 005 11 0 00 030333 ER5 E,30333 ;C(E) WAS CLOBBERED 1544 031315 321 15 0 00 031303 JUMPL AC+2,F30330 ;LOOP ON ERROR SWITCH^ 1545 1546 003034 ADR=ADR+1 1547 001000 000000 XX=XX+XX 1548 IFE XX, 1549 1550 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1551 MOP1 (\ADR,0,-1,XX,0,0)^ 1552 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1553 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1554 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1555 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1556 1557 000000 F30340: AA1=0 ;INITIAL C(AC) 1558 031316 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1559 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1560 031317 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1561 001000 000000 AEE=XX ;INITIAL C(E) 1562 031320 200 11 0 00 044033 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1563 031321 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1564 000000 AR1=0 ;EXPECTED RESULT IN AC 1565 031322 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1566 031323 003 13 0 00 030341 ER3 AC,30341 ;HIGH PRODUCT FAILED 1567 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1568 031324 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1569 031325 004 14 0 00 030342 ER4 AC+1,30342 ;LOW PRODUCT FAILED 1570 001000 000000 AEE=XX ;INITIAL C(E) 1571 031326 312 11 0 00 044033 CAME E,[XX] ;WAS C(E) CLOBBERED? 1572 031327 005 11 0 00 030343 ER5 E,30343 ;C(E) WAS CLOBBERED 1573 031330 321 15 0 00 031316 JUMPL AC+2,F30340 ;LOOP ON ERROR SWITCH^ 1574 1575 003035 ADR=ADR+1 1576 002000 000000 XX=XX+XX 1577 IFE XX, 1578 1579 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1580 MOP1 (\ADR,0,-1,XX,0,0)^ 1581 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1582 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1583 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1584 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1585 1586 000000 F30350: AA1=0 ;INITIAL C(AC) 1587 031331 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1588 777777 777777 AA2=-1 ;INITIAL C(AC+1) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-16 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0045 1589 031332 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1590 002000 000000 AEE=XX ;INITIAL C(E) 1591 031333 200 11 0 00 044034 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1592 031334 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1593 000000 AR1=0 ;EXPECTED RESULT IN AC 1594 031335 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1595 031336 003 13 0 00 030351 ER3 AC,30351 ;HIGH PRODUCT FAILED 1596 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1597 031337 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1598 031340 004 14 0 00 030352 ER4 AC+1,30352 ;LOW PRODUCT FAILED 1599 002000 000000 AEE=XX ;INITIAL C(E) 1600 031341 312 11 0 00 044034 CAME E,[XX] ;WAS C(E) CLOBBERED? 1601 031342 005 11 0 00 030353 ER5 E,30353 ;C(E) WAS CLOBBERED 1602 031343 321 15 0 00 031331 JUMPL AC+2,F30350 ;LOOP ON ERROR SWITCH^ 1603 1604 003036 ADR=ADR+1 1605 004000 000000 XX=XX+XX 1606 IFE XX, 1607 1608 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1609 MOP1 (\ADR,0,-1,XX,0,0)^ 1610 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1611 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1612 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1613 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1614 1615 000000 F30360: AA1=0 ;INITIAL C(AC) 1616 031344 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1617 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1618 031345 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1619 004000 000000 AEE=XX ;INITIAL C(E) 1620 031346 200 11 0 00 044035 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1621 031347 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1622 000000 AR1=0 ;EXPECTED RESULT IN AC 1623 031350 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1624 031351 003 13 0 00 030361 ER3 AC,30361 ;HIGH PRODUCT FAILED 1625 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1626 031352 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1627 031353 004 14 0 00 030362 ER4 AC+1,30362 ;LOW PRODUCT FAILED 1628 004000 000000 AEE=XX ;INITIAL C(E) 1629 031354 312 11 0 00 044035 CAME E,[XX] ;WAS C(E) CLOBBERED? 1630 031355 005 11 0 00 030363 ER5 E,30363 ;C(E) WAS CLOBBERED 1631 031356 321 15 0 00 031344 JUMPL AC+2,F30360 ;LOOP ON ERROR SWITCH^ 1632 1633 003037 ADR=ADR+1 1634 010000 000000 XX=XX+XX 1635 IFE XX, 1636 1637 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1638 MOP1 (\ADR,0,-1,XX,0,0)^ 1639 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1640 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1641 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1642 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1643 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-17 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0046 1644 000000 F30370: AA1=0 ;INITIAL C(AC) 1645 031357 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1646 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1647 031360 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1648 010000 000000 AEE=XX ;INITIAL C(E) 1649 031361 200 11 0 00 044036 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1650 031362 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1651 000000 AR1=0 ;EXPECTED RESULT IN AC 1652 031363 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1653 031364 003 13 0 00 030371 ER3 AC,30371 ;HIGH PRODUCT FAILED 1654 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1655 031365 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1656 031366 004 14 0 00 030372 ER4 AC+1,30372 ;LOW PRODUCT FAILED 1657 010000 000000 AEE=XX ;INITIAL C(E) 1658 031367 312 11 0 00 044036 CAME E,[XX] ;WAS C(E) CLOBBERED? 1659 031370 005 11 0 00 030373 ER5 E,30373 ;C(E) WAS CLOBBERED 1660 031371 321 15 0 00 031357 JUMPL AC+2,F30370 ;LOOP ON ERROR SWITCH^ 1661 1662 003040 ADR=ADR+1 1663 020000 000000 XX=XX+XX 1664 IFE XX, 1665 1666 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1667 MOP1 (\ADR,0,-1,XX,0,0)^ 1668 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1669 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1670 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1671 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1672 1673 000000 F30400: AA1=0 ;INITIAL C(AC) 1674 031372 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1675 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1676 031373 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1677 020000 000000 AEE=XX ;INITIAL C(E) 1678 031374 200 11 0 00 044037 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1679 031375 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1680 000000 AR1=0 ;EXPECTED RESULT IN AC 1681 031376 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1682 031377 003 13 0 00 030401 ER3 AC,30401 ;HIGH PRODUCT FAILED 1683 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1684 031400 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1685 031401 004 14 0 00 030402 ER4 AC+1,30402 ;LOW PRODUCT FAILED 1686 020000 000000 AEE=XX ;INITIAL C(E) 1687 031402 312 11 0 00 044037 CAME E,[XX] ;WAS C(E) CLOBBERED? 1688 031403 005 11 0 00 030403 ER5 E,30403 ;C(E) WAS CLOBBERED 1689 031404 321 15 0 00 031372 JUMPL AC+2,F30400 ;LOOP ON ERROR SWITCH^ 1690 1691 003041 ADR=ADR+1 1692 040000 000000 XX=XX+XX 1693 IFE XX, 1694 1695 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1696 MOP1 (\ADR,0,-1,XX,0,0)^ 1697 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1698 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-18 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0047 1699 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1700 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1701 1702 000000 F30410: AA1=0 ;INITIAL C(AC) 1703 031405 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1704 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1705 031406 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1706 040000 000000 AEE=XX ;INITIAL C(E) 1707 031407 200 11 0 00 044040 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1708 031410 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1709 000000 AR1=0 ;EXPECTED RESULT IN AC 1710 031411 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1711 031412 003 13 0 00 030411 ER3 AC,30411 ;HIGH PRODUCT FAILED 1712 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1713 031413 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1714 031414 004 14 0 00 030412 ER4 AC+1,30412 ;LOW PRODUCT FAILED 1715 040000 000000 AEE=XX ;INITIAL C(E) 1716 031415 312 11 0 00 044040 CAME E,[XX] ;WAS C(E) CLOBBERED? 1717 031416 005 11 0 00 030413 ER5 E,30413 ;C(E) WAS CLOBBERED 1718 031417 321 15 0 00 031405 JUMPL AC+2,F30410 ;LOOP ON ERROR SWITCH^ 1719 1720 003042 ADR=ADR+1 1721 100000 000000 XX=XX+XX 1722 IFE XX, 1723 1724 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1725 MOP1 (\ADR,0,-1,XX,0,0)^ 1726 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1727 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1728 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1729 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1730 1731 000000 F30420: AA1=0 ;INITIAL C(AC) 1732 031420 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1733 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1734 031421 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1735 100000 000000 AEE=XX ;INITIAL C(E) 1736 031422 200 11 0 00 044041 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1737 031423 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1738 000000 AR1=0 ;EXPECTED RESULT IN AC 1739 031424 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1740 031425 003 13 0 00 030421 ER3 AC,30421 ;HIGH PRODUCT FAILED 1741 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1742 031426 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1743 031427 004 14 0 00 030422 ER4 AC+1,30422 ;LOW PRODUCT FAILED 1744 100000 000000 AEE=XX ;INITIAL C(E) 1745 031430 312 11 0 00 044041 CAME E,[XX] ;WAS C(E) CLOBBERED? 1746 031431 005 11 0 00 030423 ER5 E,30423 ;C(E) WAS CLOBBERED 1747 031432 321 15 0 00 031420 JUMPL AC+2,F30420 ;LOOP ON ERROR SWITCH^ 1748 1749 003043 ADR=ADR+1 1750 200000 000000 XX=XX+XX 1751 IFE XX, 1752 1753 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 2-19 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0048 1754 MOP1 (\ADR,0,-1,XX,0,0)^ 1755 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1756 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1757 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1758 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1759 1760 000000 F30430: AA1=0 ;INITIAL C(AC) 1761 031433 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1762 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1763 031434 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1764 200000 000000 AEE=XX ;INITIAL C(E) 1765 031435 200 11 0 00 044042 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1766 031436 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1767 000000 AR1=0 ;EXPECTED RESULT IN AC 1768 031437 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1769 031440 003 13 0 00 030431 ER3 AC,30431 ;HIGH PRODUCT FAILED 1770 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1771 031441 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1772 031442 004 14 0 00 030432 ER4 AC+1,30432 ;LOW PRODUCT FAILED 1773 200000 000000 AEE=XX ;INITIAL C(E) 1774 031443 312 11 0 00 044042 CAME E,[XX] ;WAS C(E) CLOBBERED? 1775 031444 005 11 0 00 030433 ER5 E,30433 ;C(E) WAS CLOBBERED 1776 031445 321 15 0 00 031433 JUMPL AC+2,F30430 ;LOOP ON ERROR SWITCH^ 1777 1778 003044 ADR=ADR+1 1779 400000 000000 XX=XX+XX 1780 IFE XX, 1781 1782 ;MULTIPLY RIPPLED 1 BY 0 TO GET PRODUCT OF 0 1783 MOP1 (\ADR,0,-1,XX,0,0)^ 1784 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1785 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1786 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1787 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1788 1789 000000 F30440: AA1=0 ;INITIAL C(AC) 1790 031446 200 13 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1791 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1792 031447 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1793 400000 000000 AEE=XX ;INITIAL C(E) 1794 031450 200 11 0 00 044043 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1795 031451 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1796 000000 AR1=0 ;EXPECTED RESULT IN AC 1797 031452 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1798 031453 003 13 0 00 030441 ER3 AC,30441 ;HIGH PRODUCT FAILED 1799 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1800 031454 312 14 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1801 031455 004 14 0 00 030442 ER4 AC+1,30442 ;LOW PRODUCT FAILED 1802 400000 000000 AEE=XX ;INITIAL C(E) 1803 031456 312 11 0 00 044043 CAME E,[XX] ;WAS C(E) CLOBBERED? 1804 031457 005 11 0 00 030443 ER5 E,30443 ;C(E) WAS CLOBBERED 1805 031460 321 15 0 00 031446 JUMPL AC+2,F30440 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0049 1806 000012 AC=12 1807 000010 E=&17 1808 SAVEAC (1,1)^ 1809 031461 201 14 0 00 031461 MOVEI AC+2,. ;SAVE TEST PC 1810 031462 202 14 0 00 030051 MOVEM AC+2,TESTPC 1811 031463 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH 1812 031464 202 14 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ 1813 000000 XX=0 1814 1815 REPEAT ^D36, < 1816 ADR=ADR+1 1817 XX=XX+XX+1 1818 IFE , 1819 1820 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 1821 MOP1 (\ADR,0,-1,XX,0,0)> 1822 1823 003045 ADR=ADR+1 1824 000001 XX=XX+XX+1 1825 777777 777776 IFE , 1826 1827 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 1828 MOP1 (\ADR,0,-1,XX,0,0)^ 1829 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1830 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1831 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1832 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1833 1834 000000 F30450: AA1=0 ;INITIAL C(AC) 1835 031465 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1836 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1837 031466 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1838 777777 777776 AEE=XX ;INITIAL C(E) 1839 031467 200 10 0 00 044044 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1840 031470 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1841 000000 AR1=0 ;EXPECTED RESULT IN AC 1842 031471 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1843 031472 003 12 0 00 030451 ER3 AC,30451 ;HIGH PRODUCT FAILED 1844 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1845 031473 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1846 031474 004 13 0 00 030452 ER4 AC+1,30452 ;LOW PRODUCT FAILED 1847 777777 777776 AEE=XX ;INITIAL C(E) 1848 031475 312 10 0 00 044044 CAME E,[XX] ;WAS C(E) CLOBBERED? 1849 031476 005 10 0 00 030453 ER5 E,30453 ;C(E) WAS CLOBBERED 1850 031477 321 14 0 00 031465 JUMPL AC+2,F30450 ;LOOP ON ERROR SWITCH^ 1851 1852 003046 ADR=ADR+1 1853 777777 777775 XX=XX+XX+1 1854 IFE , 1855 1856 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 1857 MOP1 (\ADR,0,-1,XX,0,0)^ 1858 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1859 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1860 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-1 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0050 1861 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1862 1863 000000 F30460: AA1=0 ;INITIAL C(AC) 1864 031500 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1865 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1866 031501 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1867 777777 777775 AEE=XX ;INITIAL C(E) 1868 031502 200 10 0 00 044045 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1869 031503 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1870 000000 AR1=0 ;EXPECTED RESULT IN AC 1871 031504 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1872 031505 003 12 0 00 030461 ER3 AC,30461 ;HIGH PRODUCT FAILED 1873 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1874 031506 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1875 031507 004 13 0 00 030462 ER4 AC+1,30462 ;LOW PRODUCT FAILED 1876 777777 777775 AEE=XX ;INITIAL C(E) 1877 031510 312 10 0 00 044045 CAME E,[XX] ;WAS C(E) CLOBBERED? 1878 031511 005 10 0 00 030463 ER5 E,30463 ;C(E) WAS CLOBBERED 1879 031512 321 14 0 00 031500 JUMPL AC+2,F30460 ;LOOP ON ERROR SWITCH^ 1880 1881 003047 ADR=ADR+1 1882 777777 777773 XX=XX+XX+1 1883 IFE , 1884 1885 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 1886 MOP1 (\ADR,0,-1,XX,0,0)^ 1887 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1888 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1889 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1890 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1891 1892 000000 F30470: AA1=0 ;INITIAL C(AC) 1893 031513 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1894 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1895 031514 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1896 777777 777773 AEE=XX ;INITIAL C(E) 1897 031515 200 10 0 00 044046 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1898 031516 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1899 000000 AR1=0 ;EXPECTED RESULT IN AC 1900 031517 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1901 031520 003 12 0 00 030471 ER3 AC,30471 ;HIGH PRODUCT FAILED 1902 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1903 031521 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1904 031522 004 13 0 00 030472 ER4 AC+1,30472 ;LOW PRODUCT FAILED 1905 777777 777773 AEE=XX ;INITIAL C(E) 1906 031523 312 10 0 00 044046 CAME E,[XX] ;WAS C(E) CLOBBERED? 1907 031524 005 10 0 00 030473 ER5 E,30473 ;C(E) WAS CLOBBERED 1908 031525 321 14 0 00 031513 JUMPL AC+2,F30470 ;LOOP ON ERROR SWITCH^ 1909 1910 003050 ADR=ADR+1 1911 777777 777767 XX=XX+XX+1 1912 IFE , 1913 1914 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 1915 MOP1 (\ADR,0,-1,XX,0,0)^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-2 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0051 1916 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1917 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1918 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1919 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1920 1921 000000 F30500: AA1=0 ;INITIAL C(AC) 1922 031526 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1923 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1924 031527 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1925 777777 777767 AEE=XX ;INITIAL C(E) 1926 031530 200 10 0 00 044047 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1927 031531 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1928 000000 AR1=0 ;EXPECTED RESULT IN AC 1929 031532 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1930 031533 003 12 0 00 030501 ER3 AC,30501 ;HIGH PRODUCT FAILED 1931 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1932 031534 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1933 031535 004 13 0 00 030502 ER4 AC+1,30502 ;LOW PRODUCT FAILED 1934 777777 777767 AEE=XX ;INITIAL C(E) 1935 031536 312 10 0 00 044047 CAME E,[XX] ;WAS C(E) CLOBBERED? 1936 031537 005 10 0 00 030503 ER5 E,30503 ;C(E) WAS CLOBBERED 1937 031540 321 14 0 00 031526 JUMPL AC+2,F30500 ;LOOP ON ERROR SWITCH^ 1938 1939 003051 ADR=ADR+1 1940 777777 777757 XX=XX+XX+1 1941 IFE , 1942 1943 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 1944 MOP1 (\ADR,0,-1,XX,0,0)^ 1945 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1946 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1947 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1948 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1949 1950 000000 F30510: AA1=0 ;INITIAL C(AC) 1951 031541 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1952 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1953 031542 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1954 777777 777757 AEE=XX ;INITIAL C(E) 1955 031543 200 10 0 00 044050 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1956 031544 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1957 000000 AR1=0 ;EXPECTED RESULT IN AC 1958 031545 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1959 031546 003 12 0 00 030511 ER3 AC,30511 ;HIGH PRODUCT FAILED 1960 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1961 031547 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1962 031550 004 13 0 00 030512 ER4 AC+1,30512 ;LOW PRODUCT FAILED 1963 777777 777757 AEE=XX ;INITIAL C(E) 1964 031551 312 10 0 00 044050 CAME E,[XX] ;WAS C(E) CLOBBERED? 1965 031552 005 10 0 00 030513 ER5 E,30513 ;C(E) WAS CLOBBERED 1966 031553 321 14 0 00 031541 JUMPL AC+2,F30510 ;LOOP ON ERROR SWITCH^ 1967 1968 003052 ADR=ADR+1 1969 777777 777737 XX=XX+XX+1 1970 IFE , DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-3 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0052 1971 1972 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 1973 MOP1 (\ADR,0,-1,XX,0,0)^ 1974 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 1975 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 1976 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 1977 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 1978 1979 000000 F30520: AA1=0 ;INITIAL C(AC) 1980 031554 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 1981 777777 777777 AA2=-1 ;INITIAL C(AC+1) 1982 031555 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 1983 777777 777737 AEE=XX ;INITIAL C(E) 1984 031556 200 10 0 00 044051 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 1985 031557 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 1986 000000 AR1=0 ;EXPECTED RESULT IN AC 1987 031560 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 1988 031561 003 12 0 00 030521 ER3 AC,30521 ;HIGH PRODUCT FAILED 1989 000000 AR2=0 ;EXPECTED RESULT IN AC+1 1990 031562 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 1991 031563 004 13 0 00 030522 ER4 AC+1,30522 ;LOW PRODUCT FAILED 1992 777777 777737 AEE=XX ;INITIAL C(E) 1993 031564 312 10 0 00 044051 CAME E,[XX] ;WAS C(E) CLOBBERED? 1994 031565 005 10 0 00 030523 ER5 E,30523 ;C(E) WAS CLOBBERED 1995 031566 321 14 0 00 031554 JUMPL AC+2,F30520 ;LOOP ON ERROR SWITCH^ 1996 1997 003053 ADR=ADR+1 1998 777777 777677 XX=XX+XX+1 1999 IFE , 2000 2001 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2002 MOP1 (\ADR,0,-1,XX,0,0)^ 2003 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2004 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2005 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2006 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2007 2008 000000 F30530: AA1=0 ;INITIAL C(AC) 2009 031567 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2010 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2011 031570 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2012 777777 777677 AEE=XX ;INITIAL C(E) 2013 031571 200 10 0 00 044052 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2014 031572 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2015 000000 AR1=0 ;EXPECTED RESULT IN AC 2016 031573 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2017 031574 003 12 0 00 030531 ER3 AC,30531 ;HIGH PRODUCT FAILED 2018 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2019 031575 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2020 031576 004 13 0 00 030532 ER4 AC+1,30532 ;LOW PRODUCT FAILED 2021 777777 777677 AEE=XX ;INITIAL C(E) 2022 031577 312 10 0 00 044052 CAME E,[XX] ;WAS C(E) CLOBBERED? 2023 031600 005 10 0 00 030533 ER5 E,30533 ;C(E) WAS CLOBBERED 2024 031601 321 14 0 00 031567 JUMPL AC+2,F30530 ;LOOP ON ERROR SWITCH^ 2025 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-4 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0053 2026 003054 ADR=ADR+1 2027 777777 777577 XX=XX+XX+1 2028 IFE , 2029 2030 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2031 MOP1 (\ADR,0,-1,XX,0,0)^ 2032 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2033 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2034 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2035 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2036 2037 000000 F30540: AA1=0 ;INITIAL C(AC) 2038 031602 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2039 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2040 031603 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2041 777777 777577 AEE=XX ;INITIAL C(E) 2042 031604 200 10 0 00 044053 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2043 031605 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2044 000000 AR1=0 ;EXPECTED RESULT IN AC 2045 031606 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2046 031607 003 12 0 00 030541 ER3 AC,30541 ;HIGH PRODUCT FAILED 2047 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2048 031610 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2049 031611 004 13 0 00 030542 ER4 AC+1,30542 ;LOW PRODUCT FAILED 2050 777777 777577 AEE=XX ;INITIAL C(E) 2051 031612 312 10 0 00 044053 CAME E,[XX] ;WAS C(E) CLOBBERED? 2052 031613 005 10 0 00 030543 ER5 E,30543 ;C(E) WAS CLOBBERED 2053 031614 321 14 0 00 031602 JUMPL AC+2,F30540 ;LOOP ON ERROR SWITCH^ 2054 2055 003055 ADR=ADR+1 2056 777777 777377 XX=XX+XX+1 2057 IFE , 2058 2059 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2060 MOP1 (\ADR,0,-1,XX,0,0)^ 2061 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2062 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2063 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2064 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2065 2066 000000 F30550: AA1=0 ;INITIAL C(AC) 2067 031615 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2068 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2069 031616 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2070 777777 777377 AEE=XX ;INITIAL C(E) 2071 031617 200 10 0 00 044054 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2072 031620 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2073 000000 AR1=0 ;EXPECTED RESULT IN AC 2074 031621 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2075 031622 003 12 0 00 030551 ER3 AC,30551 ;HIGH PRODUCT FAILED 2076 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2077 031623 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2078 031624 004 13 0 00 030552 ER4 AC+1,30552 ;LOW PRODUCT FAILED 2079 777777 777377 AEE=XX ;INITIAL C(E) 2080 031625 312 10 0 00 044054 CAME E,[XX] ;WAS C(E) CLOBBERED? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-5 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0054 2081 031626 005 10 0 00 030553 ER5 E,30553 ;C(E) WAS CLOBBERED 2082 031627 321 14 0 00 031615 JUMPL AC+2,F30550 ;LOOP ON ERROR SWITCH^ 2083 2084 003056 ADR=ADR+1 2085 777777 776777 XX=XX+XX+1 2086 IFE , 2087 2088 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2089 MOP1 (\ADR,0,-1,XX,0,0)^ 2090 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2091 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2092 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2093 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2094 2095 000000 F30560: AA1=0 ;INITIAL C(AC) 2096 031630 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2097 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2098 031631 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2099 777777 776777 AEE=XX ;INITIAL C(E) 2100 031632 200 10 0 00 044055 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2101 031633 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2102 000000 AR1=0 ;EXPECTED RESULT IN AC 2103 031634 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2104 031635 003 12 0 00 030561 ER3 AC,30561 ;HIGH PRODUCT FAILED 2105 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2106 031636 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2107 031637 004 13 0 00 030562 ER4 AC+1,30562 ;LOW PRODUCT FAILED 2108 777777 776777 AEE=XX ;INITIAL C(E) 2109 031640 312 10 0 00 044055 CAME E,[XX] ;WAS C(E) CLOBBERED? 2110 031641 005 10 0 00 030563 ER5 E,30563 ;C(E) WAS CLOBBERED 2111 031642 321 14 0 00 031630 JUMPL AC+2,F30560 ;LOOP ON ERROR SWITCH^ 2112 2113 003057 ADR=ADR+1 2114 777777 775777 XX=XX+XX+1 2115 IFE , 2116 2117 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2118 MOP1 (\ADR,0,-1,XX,0,0)^ 2119 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2120 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2121 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2122 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2123 2124 000000 F30570: AA1=0 ;INITIAL C(AC) 2125 031643 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2126 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2127 031644 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2128 777777 775777 AEE=XX ;INITIAL C(E) 2129 031645 200 10 0 00 044056 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2130 031646 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2131 000000 AR1=0 ;EXPECTED RESULT IN AC 2132 031647 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2133 031650 003 12 0 00 030571 ER3 AC,30571 ;HIGH PRODUCT FAILED 2134 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2135 031651 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-6 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0055 2136 031652 004 13 0 00 030572 ER4 AC+1,30572 ;LOW PRODUCT FAILED 2137 777777 775777 AEE=XX ;INITIAL C(E) 2138 031653 312 10 0 00 044056 CAME E,[XX] ;WAS C(E) CLOBBERED? 2139 031654 005 10 0 00 030573 ER5 E,30573 ;C(E) WAS CLOBBERED 2140 031655 321 14 0 00 031643 JUMPL AC+2,F30570 ;LOOP ON ERROR SWITCH^ 2141 2142 003060 ADR=ADR+1 2143 777777 773777 XX=XX+XX+1 2144 IFE , 2145 2146 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2147 MOP1 (\ADR,0,-1,XX,0,0)^ 2148 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2149 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2150 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2151 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2152 2153 000000 F30600: AA1=0 ;INITIAL C(AC) 2154 031656 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2155 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2156 031657 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2157 777777 773777 AEE=XX ;INITIAL C(E) 2158 031660 200 10 0 00 044057 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2159 031661 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2160 000000 AR1=0 ;EXPECTED RESULT IN AC 2161 031662 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2162 031663 003 12 0 00 030601 ER3 AC,30601 ;HIGH PRODUCT FAILED 2163 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2164 031664 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2165 031665 004 13 0 00 030602 ER4 AC+1,30602 ;LOW PRODUCT FAILED 2166 777777 773777 AEE=XX ;INITIAL C(E) 2167 031666 312 10 0 00 044057 CAME E,[XX] ;WAS C(E) CLOBBERED? 2168 031667 005 10 0 00 030603 ER5 E,30603 ;C(E) WAS CLOBBERED 2169 031670 321 14 0 00 031656 JUMPL AC+2,F30600 ;LOOP ON ERROR SWITCH^ 2170 2171 003061 ADR=ADR+1 2172 777777 767777 XX=XX+XX+1 2173 IFE , 2174 2175 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2176 MOP1 (\ADR,0,-1,XX,0,0)^ 2177 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2178 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2179 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2180 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2181 2182 000000 F30610: AA1=0 ;INITIAL C(AC) 2183 031671 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2184 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2185 031672 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2186 777777 767777 AEE=XX ;INITIAL C(E) 2187 031673 200 10 0 00 044060 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2188 031674 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2189 000000 AR1=0 ;EXPECTED RESULT IN AC 2190 031675 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-7 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0056 2191 031676 003 12 0 00 030611 ER3 AC,30611 ;HIGH PRODUCT FAILED 2192 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2193 031677 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2194 031700 004 13 0 00 030612 ER4 AC+1,30612 ;LOW PRODUCT FAILED 2195 777777 767777 AEE=XX ;INITIAL C(E) 2196 031701 312 10 0 00 044060 CAME E,[XX] ;WAS C(E) CLOBBERED? 2197 031702 005 10 0 00 030613 ER5 E,30613 ;C(E) WAS CLOBBERED 2198 031703 321 14 0 00 031671 JUMPL AC+2,F30610 ;LOOP ON ERROR SWITCH^ 2199 2200 003062 ADR=ADR+1 2201 777777 757777 XX=XX+XX+1 2202 IFE , 2203 2204 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2205 MOP1 (\ADR,0,-1,XX,0,0)^ 2206 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2207 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2208 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2209 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2210 2211 000000 F30620: AA1=0 ;INITIAL C(AC) 2212 031704 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2213 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2214 031705 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2215 777777 757777 AEE=XX ;INITIAL C(E) 2216 031706 200 10 0 00 044061 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2217 031707 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2218 000000 AR1=0 ;EXPECTED RESULT IN AC 2219 031710 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2220 031711 003 12 0 00 030621 ER3 AC,30621 ;HIGH PRODUCT FAILED 2221 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2222 031712 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2223 031713 004 13 0 00 030622 ER4 AC+1,30622 ;LOW PRODUCT FAILED 2224 777777 757777 AEE=XX ;INITIAL C(E) 2225 031714 312 10 0 00 044061 CAME E,[XX] ;WAS C(E) CLOBBERED? 2226 031715 005 10 0 00 030623 ER5 E,30623 ;C(E) WAS CLOBBERED 2227 031716 321 14 0 00 031704 JUMPL AC+2,F30620 ;LOOP ON ERROR SWITCH^ 2228 2229 003063 ADR=ADR+1 2230 777777 737777 XX=XX+XX+1 2231 IFE , 2232 2233 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2234 MOP1 (\ADR,0,-1,XX,0,0)^ 2235 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2236 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2237 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2238 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2239 2240 000000 F30630: AA1=0 ;INITIAL C(AC) 2241 031717 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2242 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2243 031720 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2244 777777 737777 AEE=XX ;INITIAL C(E) 2245 031721 200 10 0 00 044062 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-8 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0057 2246 031722 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2247 000000 AR1=0 ;EXPECTED RESULT IN AC 2248 031723 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2249 031724 003 12 0 00 030631 ER3 AC,30631 ;HIGH PRODUCT FAILED 2250 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2251 031725 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2252 031726 004 13 0 00 030632 ER4 AC+1,30632 ;LOW PRODUCT FAILED 2253 777777 737777 AEE=XX ;INITIAL C(E) 2254 031727 312 10 0 00 044062 CAME E,[XX] ;WAS C(E) CLOBBERED? 2255 031730 005 10 0 00 030633 ER5 E,30633 ;C(E) WAS CLOBBERED 2256 031731 321 14 0 00 031717 JUMPL AC+2,F30630 ;LOOP ON ERROR SWITCH^ 2257 2258 003064 ADR=ADR+1 2259 777777 677777 XX=XX+XX+1 2260 IFE , 2261 2262 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2263 MOP1 (\ADR,0,-1,XX,0,0)^ 2264 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2265 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2266 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2267 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2268 2269 000000 F30640: AA1=0 ;INITIAL C(AC) 2270 031732 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2271 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2272 031733 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2273 777777 677777 AEE=XX ;INITIAL C(E) 2274 031734 200 10 0 00 044063 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2275 031735 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2276 000000 AR1=0 ;EXPECTED RESULT IN AC 2277 031736 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2278 031737 003 12 0 00 030641 ER3 AC,30641 ;HIGH PRODUCT FAILED 2279 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2280 031740 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2281 031741 004 13 0 00 030642 ER4 AC+1,30642 ;LOW PRODUCT FAILED 2282 777777 677777 AEE=XX ;INITIAL C(E) 2283 031742 312 10 0 00 044063 CAME E,[XX] ;WAS C(E) CLOBBERED? 2284 031743 005 10 0 00 030643 ER5 E,30643 ;C(E) WAS CLOBBERED 2285 031744 321 14 0 00 031732 JUMPL AC+2,F30640 ;LOOP ON ERROR SWITCH^ 2286 2287 003065 ADR=ADR+1 2288 777777 577777 XX=XX+XX+1 2289 IFE , 2290 2291 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2292 MOP1 (\ADR,0,-1,XX,0,0)^ 2293 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2294 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2295 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2296 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2297 2298 000000 F30650: AA1=0 ;INITIAL C(AC) 2299 031745 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2300 777777 777777 AA2=-1 ;INITIAL C(AC+1) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-9 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0058 2301 031746 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2302 777777 577777 AEE=XX ;INITIAL C(E) 2303 031747 200 10 0 00 044064 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2304 031750 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2305 000000 AR1=0 ;EXPECTED RESULT IN AC 2306 031751 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2307 031752 003 12 0 00 030651 ER3 AC,30651 ;HIGH PRODUCT FAILED 2308 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2309 031753 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2310 031754 004 13 0 00 030652 ER4 AC+1,30652 ;LOW PRODUCT FAILED 2311 777777 577777 AEE=XX ;INITIAL C(E) 2312 031755 312 10 0 00 044064 CAME E,[XX] ;WAS C(E) CLOBBERED? 2313 031756 005 10 0 00 030653 ER5 E,30653 ;C(E) WAS CLOBBERED 2314 031757 321 14 0 00 031745 JUMPL AC+2,F30650 ;LOOP ON ERROR SWITCH^ 2315 2316 003066 ADR=ADR+1 2317 777777 377777 XX=XX+XX+1 2318 IFE , 2319 2320 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2321 MOP1 (\ADR,0,-1,XX,0,0)^ 2322 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2323 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2324 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2325 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2326 2327 000000 F30660: AA1=0 ;INITIAL C(AC) 2328 031760 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2329 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2330 031761 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2331 777777 377777 AEE=XX ;INITIAL C(E) 2332 031762 200 10 0 00 044065 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2333 031763 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2334 000000 AR1=0 ;EXPECTED RESULT IN AC 2335 031764 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2336 031765 003 12 0 00 030661 ER3 AC,30661 ;HIGH PRODUCT FAILED 2337 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2338 031766 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2339 031767 004 13 0 00 030662 ER4 AC+1,30662 ;LOW PRODUCT FAILED 2340 777777 377777 AEE=XX ;INITIAL C(E) 2341 031770 312 10 0 00 044065 CAME E,[XX] ;WAS C(E) CLOBBERED? 2342 031771 005 10 0 00 030663 ER5 E,30663 ;C(E) WAS CLOBBERED 2343 031772 321 14 0 00 031760 JUMPL AC+2,F30660 ;LOOP ON ERROR SWITCH^ 2344 2345 003067 ADR=ADR+1 2346 777776 777777 XX=XX+XX+1 2347 IFE , 2348 2349 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2350 MOP1 (\ADR,0,-1,XX,0,0)^ 2351 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2352 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2353 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2354 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2355 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-10 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0059 2356 000000 F30670: AA1=0 ;INITIAL C(AC) 2357 031773 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2358 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2359 031774 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2360 777776 777777 AEE=XX ;INITIAL C(E) 2361 031775 200 10 0 00 044066 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2362 031776 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2363 000000 AR1=0 ;EXPECTED RESULT IN AC 2364 031777 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2365 032000 003 12 0 00 030671 ER3 AC,30671 ;HIGH PRODUCT FAILED 2366 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2367 032001 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2368 032002 004 13 0 00 030672 ER4 AC+1,30672 ;LOW PRODUCT FAILED 2369 777776 777777 AEE=XX ;INITIAL C(E) 2370 032003 312 10 0 00 044066 CAME E,[XX] ;WAS C(E) CLOBBERED? 2371 032004 005 10 0 00 030673 ER5 E,30673 ;C(E) WAS CLOBBERED 2372 032005 321 14 0 00 031773 JUMPL AC+2,F30670 ;LOOP ON ERROR SWITCH^ 2373 2374 003070 ADR=ADR+1 2375 777775 777777 XX=XX+XX+1 2376 IFE , 2377 2378 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2379 MOP1 (\ADR,0,-1,XX,0,0)^ 2380 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2381 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2382 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2383 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2384 2385 000000 F30700: AA1=0 ;INITIAL C(AC) 2386 032006 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2387 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2388 032007 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2389 777775 777777 AEE=XX ;INITIAL C(E) 2390 032010 200 10 0 00 044067 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2391 032011 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2392 000000 AR1=0 ;EXPECTED RESULT IN AC 2393 032012 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2394 032013 003 12 0 00 030701 ER3 AC,30701 ;HIGH PRODUCT FAILED 2395 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2396 032014 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2397 032015 004 13 0 00 030702 ER4 AC+1,30702 ;LOW PRODUCT FAILED 2398 777775 777777 AEE=XX ;INITIAL C(E) 2399 032016 312 10 0 00 044067 CAME E,[XX] ;WAS C(E) CLOBBERED? 2400 032017 005 10 0 00 030703 ER5 E,30703 ;C(E) WAS CLOBBERED 2401 032020 321 14 0 00 032006 JUMPL AC+2,F30700 ;LOOP ON ERROR SWITCH^ 2402 2403 003071 ADR=ADR+1 2404 777773 777777 XX=XX+XX+1 2405 IFE , 2406 2407 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2408 MOP1 (\ADR,0,-1,XX,0,0)^ 2409 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2410 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-11 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0060 2411 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2412 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2413 2414 000000 F30710: AA1=0 ;INITIAL C(AC) 2415 032021 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2416 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2417 032022 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2418 777773 777777 AEE=XX ;INITIAL C(E) 2419 032023 200 10 0 00 044070 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2420 032024 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2421 000000 AR1=0 ;EXPECTED RESULT IN AC 2422 032025 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2423 032026 003 12 0 00 030711 ER3 AC,30711 ;HIGH PRODUCT FAILED 2424 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2425 032027 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2426 032030 004 13 0 00 030712 ER4 AC+1,30712 ;LOW PRODUCT FAILED 2427 777773 777777 AEE=XX ;INITIAL C(E) 2428 032031 312 10 0 00 044070 CAME E,[XX] ;WAS C(E) CLOBBERED? 2429 032032 005 10 0 00 030713 ER5 E,30713 ;C(E) WAS CLOBBERED 2430 032033 321 14 0 00 032021 JUMPL AC+2,F30710 ;LOOP ON ERROR SWITCH^ 2431 2432 003072 ADR=ADR+1 2433 777767 777777 XX=XX+XX+1 2434 IFE , 2435 2436 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2437 MOP1 (\ADR,0,-1,XX,0,0)^ 2438 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2439 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2440 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2441 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2442 2443 000000 F30720: AA1=0 ;INITIAL C(AC) 2444 032034 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2445 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2446 032035 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2447 777767 777777 AEE=XX ;INITIAL C(E) 2448 032036 200 10 0 00 044071 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2449 032037 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2450 000000 AR1=0 ;EXPECTED RESULT IN AC 2451 032040 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2452 032041 003 12 0 00 030721 ER3 AC,30721 ;HIGH PRODUCT FAILED 2453 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2454 032042 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2455 032043 004 13 0 00 030722 ER4 AC+1,30722 ;LOW PRODUCT FAILED 2456 777767 777777 AEE=XX ;INITIAL C(E) 2457 032044 312 10 0 00 044071 CAME E,[XX] ;WAS C(E) CLOBBERED? 2458 032045 005 10 0 00 030723 ER5 E,30723 ;C(E) WAS CLOBBERED 2459 032046 321 14 0 00 032034 JUMPL AC+2,F30720 ;LOOP ON ERROR SWITCH^ 2460 2461 003073 ADR=ADR+1 2462 777757 777777 XX=XX+XX+1 2463 IFE , 2464 2465 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-12 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0061 2466 MOP1 (\ADR,0,-1,XX,0,0)^ 2467 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2468 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2469 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2470 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2471 2472 000000 F30730: AA1=0 ;INITIAL C(AC) 2473 032047 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2474 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2475 032050 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2476 777757 777777 AEE=XX ;INITIAL C(E) 2477 032051 200 10 0 00 044072 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2478 032052 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2479 000000 AR1=0 ;EXPECTED RESULT IN AC 2480 032053 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2481 032054 003 12 0 00 030731 ER3 AC,30731 ;HIGH PRODUCT FAILED 2482 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2483 032055 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2484 032056 004 13 0 00 030732 ER4 AC+1,30732 ;LOW PRODUCT FAILED 2485 777757 777777 AEE=XX ;INITIAL C(E) 2486 032057 312 10 0 00 044072 CAME E,[XX] ;WAS C(E) CLOBBERED? 2487 032060 005 10 0 00 030733 ER5 E,30733 ;C(E) WAS CLOBBERED 2488 032061 321 14 0 00 032047 JUMPL AC+2,F30730 ;LOOP ON ERROR SWITCH^ 2489 2490 003074 ADR=ADR+1 2491 777737 777777 XX=XX+XX+1 2492 IFE , 2493 2494 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2495 MOP1 (\ADR,0,-1,XX,0,0)^ 2496 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2497 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2498 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2499 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2500 2501 000000 F30740: AA1=0 ;INITIAL C(AC) 2502 032062 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2503 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2504 032063 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2505 777737 777777 AEE=XX ;INITIAL C(E) 2506 032064 200 10 0 00 044073 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2507 032065 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2508 000000 AR1=0 ;EXPECTED RESULT IN AC 2509 032066 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2510 032067 003 12 0 00 030741 ER3 AC,30741 ;HIGH PRODUCT FAILED 2511 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2512 032070 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2513 032071 004 13 0 00 030742 ER4 AC+1,30742 ;LOW PRODUCT FAILED 2514 777737 777777 AEE=XX ;INITIAL C(E) 2515 032072 312 10 0 00 044073 CAME E,[XX] ;WAS C(E) CLOBBERED? 2516 032073 005 10 0 00 030743 ER5 E,30743 ;C(E) WAS CLOBBERED 2517 032074 321 14 0 00 032062 JUMPL AC+2,F30740 ;LOOP ON ERROR SWITCH^ 2518 2519 003075 ADR=ADR+1 2520 777677 777777 XX=XX+XX+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-13 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0062 2521 IFE , 2522 2523 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2524 MOP1 (\ADR,0,-1,XX,0,0)^ 2525 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2526 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2527 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2528 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2529 2530 000000 F30750: AA1=0 ;INITIAL C(AC) 2531 032075 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2532 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2533 032076 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2534 777677 777777 AEE=XX ;INITIAL C(E) 2535 032077 200 10 0 00 044074 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2536 032100 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2537 000000 AR1=0 ;EXPECTED RESULT IN AC 2538 032101 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2539 032102 003 12 0 00 030751 ER3 AC,30751 ;HIGH PRODUCT FAILED 2540 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2541 032103 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2542 032104 004 13 0 00 030752 ER4 AC+1,30752 ;LOW PRODUCT FAILED 2543 777677 777777 AEE=XX ;INITIAL C(E) 2544 032105 312 10 0 00 044074 CAME E,[XX] ;WAS C(E) CLOBBERED? 2545 032106 005 10 0 00 030753 ER5 E,30753 ;C(E) WAS CLOBBERED 2546 032107 321 14 0 00 032075 JUMPL AC+2,F30750 ;LOOP ON ERROR SWITCH^ 2547 2548 003076 ADR=ADR+1 2549 777577 777777 XX=XX+XX+1 2550 IFE , 2551 2552 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2553 MOP1 (\ADR,0,-1,XX,0,0)^ 2554 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2555 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2556 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2557 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2558 2559 000000 F30760: AA1=0 ;INITIAL C(AC) 2560 032110 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2561 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2562 032111 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2563 777577 777777 AEE=XX ;INITIAL C(E) 2564 032112 200 10 0 00 044075 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2565 032113 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2566 000000 AR1=0 ;EXPECTED RESULT IN AC 2567 032114 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2568 032115 003 12 0 00 030761 ER3 AC,30761 ;HIGH PRODUCT FAILED 2569 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2570 032116 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2571 032117 004 13 0 00 030762 ER4 AC+1,30762 ;LOW PRODUCT FAILED 2572 777577 777777 AEE=XX ;INITIAL C(E) 2573 032120 312 10 0 00 044075 CAME E,[XX] ;WAS C(E) CLOBBERED? 2574 032121 005 10 0 00 030763 ER5 E,30763 ;C(E) WAS CLOBBERED 2575 032122 321 14 0 00 032110 JUMPL AC+2,F30760 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-14 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0063 2576 2577 003077 ADR=ADR+1 2578 777377 777777 XX=XX+XX+1 2579 IFE , 2580 2581 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2582 MOP1 (\ADR,0,-1,XX,0,0)^ 2583 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2584 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2585 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2586 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2587 2588 000000 F30770: AA1=0 ;INITIAL C(AC) 2589 032123 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2590 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2591 032124 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2592 777377 777777 AEE=XX ;INITIAL C(E) 2593 032125 200 10 0 00 044076 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2594 032126 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2595 000000 AR1=0 ;EXPECTED RESULT IN AC 2596 032127 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2597 032130 003 12 0 00 030771 ER3 AC,30771 ;HIGH PRODUCT FAILED 2598 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2599 032131 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2600 032132 004 13 0 00 030772 ER4 AC+1,30772 ;LOW PRODUCT FAILED 2601 777377 777777 AEE=XX ;INITIAL C(E) 2602 032133 312 10 0 00 044076 CAME E,[XX] ;WAS C(E) CLOBBERED? 2603 032134 005 10 0 00 030773 ER5 E,30773 ;C(E) WAS CLOBBERED 2604 032135 321 14 0 00 032123 JUMPL AC+2,F30770 ;LOOP ON ERROR SWITCH^ 2605 2606 003100 ADR=ADR+1 2607 776777 777777 XX=XX+XX+1 2608 IFE , 2609 2610 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2611 MOP1 (\ADR,0,-1,XX,0,0)^ 2612 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2613 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2614 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2615 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2616 2617 000000 F31000: AA1=0 ;INITIAL C(AC) 2618 032136 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2619 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2620 032137 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2621 776777 777777 AEE=XX ;INITIAL C(E) 2622 032140 200 10 0 00 044077 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2623 032141 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2624 000000 AR1=0 ;EXPECTED RESULT IN AC 2625 032142 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2626 032143 003 12 0 00 031001 ER3 AC,31001 ;HIGH PRODUCT FAILED 2627 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2628 032144 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2629 032145 004 13 0 00 031002 ER4 AC+1,31002 ;LOW PRODUCT FAILED 2630 776777 777777 AEE=XX ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-15 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0064 2631 032146 312 10 0 00 044077 CAME E,[XX] ;WAS C(E) CLOBBERED? 2632 032147 005 10 0 00 031003 ER5 E,31003 ;C(E) WAS CLOBBERED 2633 032150 321 14 0 00 032136 JUMPL AC+2,F31000 ;LOOP ON ERROR SWITCH^ 2634 2635 003101 ADR=ADR+1 2636 775777 777777 XX=XX+XX+1 2637 IFE , 2638 2639 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2640 MOP1 (\ADR,0,-1,XX,0,0)^ 2641 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2642 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2643 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2644 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2645 2646 000000 F31010: AA1=0 ;INITIAL C(AC) 2647 032151 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2648 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2649 032152 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2650 775777 777777 AEE=XX ;INITIAL C(E) 2651 032153 200 10 0 00 044100 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2652 032154 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2653 000000 AR1=0 ;EXPECTED RESULT IN AC 2654 032155 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2655 032156 003 12 0 00 031011 ER3 AC,31011 ;HIGH PRODUCT FAILED 2656 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2657 032157 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2658 032160 004 13 0 00 031012 ER4 AC+1,31012 ;LOW PRODUCT FAILED 2659 775777 777777 AEE=XX ;INITIAL C(E) 2660 032161 312 10 0 00 044100 CAME E,[XX] ;WAS C(E) CLOBBERED? 2661 032162 005 10 0 00 031013 ER5 E,31013 ;C(E) WAS CLOBBERED 2662 032163 321 14 0 00 032151 JUMPL AC+2,F31010 ;LOOP ON ERROR SWITCH^ 2663 2664 003102 ADR=ADR+1 2665 773777 777777 XX=XX+XX+1 2666 IFE , 2667 2668 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2669 MOP1 (\ADR,0,-1,XX,0,0)^ 2670 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2671 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2672 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2673 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2674 2675 000000 F31020: AA1=0 ;INITIAL C(AC) 2676 032164 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2677 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2678 032165 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2679 773777 777777 AEE=XX ;INITIAL C(E) 2680 032166 200 10 0 00 044101 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2681 032167 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2682 000000 AR1=0 ;EXPECTED RESULT IN AC 2683 032170 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2684 032171 003 12 0 00 031021 ER3 AC,31021 ;HIGH PRODUCT FAILED 2685 000000 AR2=0 ;EXPECTED RESULT IN AC+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-16 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0065 2686 032172 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2687 032173 004 13 0 00 031022 ER4 AC+1,31022 ;LOW PRODUCT FAILED 2688 773777 777777 AEE=XX ;INITIAL C(E) 2689 032174 312 10 0 00 044101 CAME E,[XX] ;WAS C(E) CLOBBERED? 2690 032175 005 10 0 00 031023 ER5 E,31023 ;C(E) WAS CLOBBERED 2691 032176 321 14 0 00 032164 JUMPL AC+2,F31020 ;LOOP ON ERROR SWITCH^ 2692 2693 003103 ADR=ADR+1 2694 767777 777777 XX=XX+XX+1 2695 IFE , 2696 2697 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2698 MOP1 (\ADR,0,-1,XX,0,0)^ 2699 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2700 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2701 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2702 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2703 2704 000000 F31030: AA1=0 ;INITIAL C(AC) 2705 032177 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2706 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2707 032200 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2708 767777 777777 AEE=XX ;INITIAL C(E) 2709 032201 200 10 0 00 044102 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2710 032202 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2711 000000 AR1=0 ;EXPECTED RESULT IN AC 2712 032203 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2713 032204 003 12 0 00 031031 ER3 AC,31031 ;HIGH PRODUCT FAILED 2714 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2715 032205 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2716 032206 004 13 0 00 031032 ER4 AC+1,31032 ;LOW PRODUCT FAILED 2717 767777 777777 AEE=XX ;INITIAL C(E) 2718 032207 312 10 0 00 044102 CAME E,[XX] ;WAS C(E) CLOBBERED? 2719 032210 005 10 0 00 031033 ER5 E,31033 ;C(E) WAS CLOBBERED 2720 032211 321 14 0 00 032177 JUMPL AC+2,F31030 ;LOOP ON ERROR SWITCH^ 2721 2722 003104 ADR=ADR+1 2723 757777 777777 XX=XX+XX+1 2724 IFE , 2725 2726 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2727 MOP1 (\ADR,0,-1,XX,0,0)^ 2728 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2729 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2730 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2731 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2732 2733 000000 F31040: AA1=0 ;INITIAL C(AC) 2734 032212 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2735 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2736 032213 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2737 757777 777777 AEE=XX ;INITIAL C(E) 2738 032214 200 10 0 00 044103 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2739 032215 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2740 000000 AR1=0 ;EXPECTED RESULT IN AC DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-17 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0066 2741 032216 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2742 032217 003 12 0 00 031041 ER3 AC,31041 ;HIGH PRODUCT FAILED 2743 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2744 032220 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2745 032221 004 13 0 00 031042 ER4 AC+1,31042 ;LOW PRODUCT FAILED 2746 757777 777777 AEE=XX ;INITIAL C(E) 2747 032222 312 10 0 00 044103 CAME E,[XX] ;WAS C(E) CLOBBERED? 2748 032223 005 10 0 00 031043 ER5 E,31043 ;C(E) WAS CLOBBERED 2749 032224 321 14 0 00 032212 JUMPL AC+2,F31040 ;LOOP ON ERROR SWITCH^ 2750 2751 003105 ADR=ADR+1 2752 737777 777777 XX=XX+XX+1 2753 IFE , 2754 2755 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2756 MOP1 (\ADR,0,-1,XX,0,0)^ 2757 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2758 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2759 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2760 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2761 2762 000000 F31050: AA1=0 ;INITIAL C(AC) 2763 032225 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2764 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2765 032226 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2766 737777 777777 AEE=XX ;INITIAL C(E) 2767 032227 200 10 0 00 044104 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2768 032230 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2769 000000 AR1=0 ;EXPECTED RESULT IN AC 2770 032231 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2771 032232 003 12 0 00 031051 ER3 AC,31051 ;HIGH PRODUCT FAILED 2772 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2773 032233 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2774 032234 004 13 0 00 031052 ER4 AC+1,31052 ;LOW PRODUCT FAILED 2775 737777 777777 AEE=XX ;INITIAL C(E) 2776 032235 312 10 0 00 044104 CAME E,[XX] ;WAS C(E) CLOBBERED? 2777 032236 005 10 0 00 031053 ER5 E,31053 ;C(E) WAS CLOBBERED 2778 032237 321 14 0 00 032225 JUMPL AC+2,F31050 ;LOOP ON ERROR SWITCH^ 2779 2780 003106 ADR=ADR+1 2781 677777 777777 XX=XX+XX+1 2782 IFE , 2783 2784 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2785 MOP1 (\ADR,0,-1,XX,0,0)^ 2786 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2787 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2788 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2789 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2790 2791 000000 F31060: AA1=0 ;INITIAL C(AC) 2792 032240 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2793 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2794 032241 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2795 677777 777777 AEE=XX ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-18 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0067 2796 032242 200 10 0 00 044105 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2797 032243 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2798 000000 AR1=0 ;EXPECTED RESULT IN AC 2799 032244 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2800 032245 003 12 0 00 031061 ER3 AC,31061 ;HIGH PRODUCT FAILED 2801 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2802 032246 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2803 032247 004 13 0 00 031062 ER4 AC+1,31062 ;LOW PRODUCT FAILED 2804 677777 777777 AEE=XX ;INITIAL C(E) 2805 032250 312 10 0 00 044105 CAME E,[XX] ;WAS C(E) CLOBBERED? 2806 032251 005 10 0 00 031063 ER5 E,31063 ;C(E) WAS CLOBBERED 2807 032252 321 14 0 00 032240 JUMPL AC+2,F31060 ;LOOP ON ERROR SWITCH^ 2808 2809 003107 ADR=ADR+1 2810 577777 777777 XX=XX+XX+1 2811 IFE , 2812 2813 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2814 MOP1 (\ADR,0,-1,XX,0,0)^ 2815 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2816 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2817 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2818 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2819 2820 000000 F31070: AA1=0 ;INITIAL C(AC) 2821 032253 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2822 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2823 032254 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2824 577777 777777 AEE=XX ;INITIAL C(E) 2825 032255 200 10 0 00 044106 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2826 032256 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2827 000000 AR1=0 ;EXPECTED RESULT IN AC 2828 032257 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2829 032260 003 12 0 00 031071 ER3 AC,31071 ;HIGH PRODUCT FAILED 2830 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2831 032261 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2832 032262 004 13 0 00 031072 ER4 AC+1,31072 ;LOW PRODUCT FAILED 2833 577777 777777 AEE=XX ;INITIAL C(E) 2834 032263 312 10 0 00 044106 CAME E,[XX] ;WAS C(E) CLOBBERED? 2835 032264 005 10 0 00 031073 ER5 E,31073 ;C(E) WAS CLOBBERED 2836 032265 321 14 0 00 032253 JUMPL AC+2,F31070 ;LOOP ON ERROR SWITCH^ 2837 2838 003110 ADR=ADR+1 2839 377777 777777 XX=XX+XX+1 2840 IFE , 2841 2842 ;MULTIPLY RIPPLED 0 BY 0 TO GET PRODUCT OF 0 2843 MOP1 (\ADR,0,-1,XX,0,0)^ 2844 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2845 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2846 ;AND E AGAINST [0], [0] AND [XX] RESPECTIVELY. 2847 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2848 2849 000000 F31100: AA1=0 ;INITIAL C(AC) 2850 032266 200 12 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3-19 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0068 2851 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2852 032267 200 13 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2853 377777 777777 AEE=XX ;INITIAL C(E) 2854 032270 200 10 0 00 044107 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 2855 032271 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2856 000000 AR1=0 ;EXPECTED RESULT IN AC 2857 032272 312 12 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2858 032273 003 12 0 00 031101 ER3 AC,31101 ;HIGH PRODUCT FAILED 2859 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2860 032274 312 13 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2861 032275 004 13 0 00 031102 ER4 AC+1,31102 ;LOW PRODUCT FAILED 2862 377777 777777 AEE=XX ;INITIAL C(E) 2863 032276 312 10 0 00 044107 CAME E,[XX] ;WAS C(E) CLOBBERED? 2864 032277 005 10 0 00 031103 ER5 E,31103 ;C(E) WAS CLOBBERED 2865 032300 321 14 0 00 032266 JUMPL AC+2,F31100 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 4 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0069 2866 003111 ADR=ADR+1 2867 000014 AC=14 2868 000012 E=&17 2869 SAVEAC (1,1)^ 2870 032301 201 16 0 00 032301 MOVEI AC+2,. ;SAVE TEST PC 2871 032302 202 16 0 00 030051 MOVEM AC+2,TESTPC 2872 032303 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH 2873 032304 202 16 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ 2874 2875 ;MULTIPLY -1 BY 0 TO GET PRODUCT OF 0 2876 MOP1 (\ADR,0,-1,-1,0,0)^ 2877 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [0],[-1] AND 2878 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2879 ;AND E AGAINST [0], [0] AND [-1] RESPECTIVELY. 2880 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2881 2882 000000 F31110: AA1=0 ;INITIAL C(AC) 2883 032305 200 14 0 00 043776 MOVE AC,[0] ;PRELOAD AC (MULTIPLIER) 2884 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2885 032306 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2886 777777 777777 AEE=-1 ;INITIAL C(E) 2887 032307 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 2888 032310 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2889 000000 AR1=0 ;EXPECTED RESULT IN AC 2890 032311 312 14 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2891 032312 003 14 0 00 031111 ER3 AC,31111 ;HIGH PRODUCT FAILED 2892 000000 AR2=0 ;EXPECTED RESULT IN AC+1 2893 032313 312 15 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 2894 032314 004 15 0 00 031112 ER4 AC+1,31112 ;LOW PRODUCT FAILED 2895 777777 777777 AEE=-1 ;INITIAL C(E) 2896 032315 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 2897 032316 005 12 0 00 031113 ER5 E,31113 ;C(E) WAS CLOBBERED 2898 032317 321 16 0 00 032305 JUMPL AC+2,F31110 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0070 2899 SUBTTL DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM 2900 2901 000013 AC=13 2902 000011 E=&17 2903 SAVEAC (1,1)^ 2904 032320 201 15 0 00 032320 MOVEI AC+2,. ;SAVE TEST PC 2905 032321 202 15 0 00 030051 MOVEM AC+2,TESTPC 2906 032322 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH 2907 032323 202 15 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ 2908 2909 777777 777777 XX=-1 2910 2911 ;MULTIPLICAND=1 2912 REPEAT ^D16,< 2913 ;TEST MULTIPLICATION ALGORITHM 2914 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 2915 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST 2916 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 2917 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 2918 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 2919 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 2920 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND 2921 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 2922 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 2923 ;OF C(E). 2924 2925 ADR=ADR+1 2926 XX=XX+1 2927 2928 MOP1 (\ADR,XX,-1,1,0,XX)> 2929 2930 ;TEST MULTIPLICATION ALGORITHM 2931 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 2932 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST 2933 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 2934 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 2935 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 2936 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 2937 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND 2938 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 2939 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 2940 ;OF C(E). 2941 2942 003112 ADR=ADR+1 2943 000000 XX=XX+1 2944 2945 MOP1 (\ADR,XX,-1,1,0,XX)^ 2946 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 2947 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2948 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. 2949 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2950 2951 000000 F31120: AA1=XX ;INITIAL C(AC) 2952 032324 200 13 0 00 043776 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 2953 777777 777777 AA2=-1 ;INITIAL C(AC+1) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-1 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0071 2954 032325 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2955 000001 AEE=1 ;INITIAL C(E) 2956 032326 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 2957 032327 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2958 000000 AR1=0 ;EXPECTED RESULT IN AC 2959 032330 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2960 032331 003 13 0 00 031121 ER3 AC,31121 ;HIGH PRODUCT FAILED 2961 000000 AR2=XX ;EXPECTED RESULT IN AC+1 2962 032332 312 14 0 00 043776 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 2963 032333 004 14 0 00 031122 ER4 AC+1,31122 ;LOW PRODUCT FAILED 2964 000001 AEE=1 ;INITIAL C(E) 2965 032334 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 2966 032335 005 11 0 00 031123 ER5 E,31123 ;C(E) WAS CLOBBERED 2967 032336 321 15 0 00 032324 JUMPL AC+2,F31120 ;LOOP ON ERROR SWITCH^ 2968 2969 ;TEST MULTIPLICATION ALGORITHM 2970 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 2971 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST 2972 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 2973 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 2974 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 2975 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 2976 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND 2977 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 2978 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 2979 ;OF C(E). 2980 2981 003113 ADR=ADR+1 2982 000001 XX=XX+1 2983 2984 MOP1 (\ADR,XX,-1,1,0,XX)^ 2985 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 2986 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 2987 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. 2988 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 2989 2990 000001 F31130: AA1=XX ;INITIAL C(AC) 2991 032337 200 13 0 00 044000 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 2992 777777 777777 AA2=-1 ;INITIAL C(AC+1) 2993 032340 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 2994 000001 AEE=1 ;INITIAL C(E) 2995 032341 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 2996 032342 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 2997 000000 AR1=0 ;EXPECTED RESULT IN AC 2998 032343 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 2999 032344 003 13 0 00 031131 ER3 AC,31131 ;HIGH PRODUCT FAILED 3000 000001 AR2=XX ;EXPECTED RESULT IN AC+1 3001 032345 312 14 0 00 044000 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 3002 032346 004 14 0 00 031132 ER4 AC+1,31132 ;LOW PRODUCT FAILED 3003 000001 AEE=1 ;INITIAL C(E) 3004 032347 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 3005 032350 005 11 0 00 031133 ER5 E,31133 ;C(E) WAS CLOBBERED 3006 032351 321 15 0 00 032337 JUMPL AC+2,F31130 ;LOOP ON ERROR SWITCH^ 3007 3008 ;TEST MULTIPLICATION ALGORITHM DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-2 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0072 3009 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3010 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST 3011 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3012 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3013 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3014 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3015 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND 3016 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3017 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3018 ;OF C(E). 3019 3020 003114 ADR=ADR+1 3021 000002 XX=XX+1 3022 3023 MOP1 (\ADR,XX,-1,1,0,XX)^ 3024 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 3025 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3026 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. 3027 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3028 3029 000002 F31140: AA1=XX ;INITIAL C(AC) 3030 032352 200 13 0 00 044001 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3031 777777 777777 AA2=-1 ;INITIAL C(AC+1) 3032 032353 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 3033 000001 AEE=1 ;INITIAL C(E) 3034 032354 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 3035 032355 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3036 000000 AR1=0 ;EXPECTED RESULT IN AC 3037 032356 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 3038 032357 003 13 0 00 031141 ER3 AC,31141 ;HIGH PRODUCT FAILED 3039 000002 AR2=XX ;EXPECTED RESULT IN AC+1 3040 032360 312 14 0 00 044001 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 3041 032361 004 14 0 00 031142 ER4 AC+1,31142 ;LOW PRODUCT FAILED 3042 000001 AEE=1 ;INITIAL C(E) 3043 032362 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 3044 032363 005 11 0 00 031143 ER5 E,31143 ;C(E) WAS CLOBBERED 3045 032364 321 15 0 00 032352 JUMPL AC+2,F31140 ;LOOP ON ERROR SWITCH^ 3046 3047 ;TEST MULTIPLICATION ALGORITHM 3048 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3049 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST 3050 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3051 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3052 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3053 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3054 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND 3055 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3056 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3057 ;OF C(E). 3058 3059 003115 ADR=ADR+1 3060 000003 XX=XX+1 3061 3062 MOP1 (\ADR,XX,-1,1,0,XX)^ 3063 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-3 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0073 3064 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3065 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. 3066 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3067 3068 000003 F31150: AA1=XX ;INITIAL C(AC) 3069 032365 200 13 0 00 044110 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3070 777777 777777 AA2=-1 ;INITIAL C(AC+1) 3071 032366 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 3072 000001 AEE=1 ;INITIAL C(E) 3073 032367 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 3074 032370 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3075 000000 AR1=0 ;EXPECTED RESULT IN AC 3076 032371 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 3077 032372 003 13 0 00 031151 ER3 AC,31151 ;HIGH PRODUCT FAILED 3078 000003 AR2=XX ;EXPECTED RESULT IN AC+1 3079 032373 312 14 0 00 044110 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 3080 032374 004 14 0 00 031152 ER4 AC+1,31152 ;LOW PRODUCT FAILED 3081 000001 AEE=1 ;INITIAL C(E) 3082 032375 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 3083 032376 005 11 0 00 031153 ER5 E,31153 ;C(E) WAS CLOBBERED 3084 032377 321 15 0 00 032365 JUMPL AC+2,F31150 ;LOOP ON ERROR SWITCH^ 3085 3086 ;TEST MULTIPLICATION ALGORITHM 3087 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3088 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST 3089 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3090 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3091 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3092 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3093 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND 3094 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3095 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3096 ;OF C(E). 3097 3098 003116 ADR=ADR+1 3099 000004 XX=XX+1 3100 3101 MOP1 (\ADR,XX,-1,1,0,XX)^ 3102 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 3103 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3104 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. 3105 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3106 3107 000004 F31160: AA1=XX ;INITIAL C(AC) 3108 032400 200 13 0 00 044002 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3109 777777 777777 AA2=-1 ;INITIAL C(AC+1) 3110 032401 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 3111 000001 AEE=1 ;INITIAL C(E) 3112 032402 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 3113 032403 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3114 000000 AR1=0 ;EXPECTED RESULT IN AC 3115 032404 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 3116 032405 003 13 0 00 031161 ER3 AC,31161 ;HIGH PRODUCT FAILED 3117 000004 AR2=XX ;EXPECTED RESULT IN AC+1 3118 032406 312 14 0 00 044002 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-4 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0074 3119 032407 004 14 0 00 031162 ER4 AC+1,31162 ;LOW PRODUCT FAILED 3120 000001 AEE=1 ;INITIAL C(E) 3121 032410 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 3122 032411 005 11 0 00 031163 ER5 E,31163 ;C(E) WAS CLOBBERED 3123 032412 321 15 0 00 032400 JUMPL AC+2,F31160 ;LOOP ON ERROR SWITCH^ 3124 3125 ;TEST MULTIPLICATION ALGORITHM 3126 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3127 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST 3128 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3129 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3130 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3131 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3132 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND 3133 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3134 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3135 ;OF C(E). 3136 3137 003117 ADR=ADR+1 3138 000005 XX=XX+1 3139 3140 MOP1 (\ADR,XX,-1,1,0,XX)^ 3141 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 3142 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3143 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. 3144 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3145 3146 000005 F31170: AA1=XX ;INITIAL C(AC) 3147 032413 200 13 0 00 044111 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3148 777777 777777 AA2=-1 ;INITIAL C(AC+1) 3149 032414 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 3150 000001 AEE=1 ;INITIAL C(E) 3151 032415 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 3152 032416 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3153 000000 AR1=0 ;EXPECTED RESULT IN AC 3154 032417 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 3155 032420 003 13 0 00 031171 ER3 AC,31171 ;HIGH PRODUCT FAILED 3156 000005 AR2=XX ;EXPECTED RESULT IN AC+1 3157 032421 312 14 0 00 044111 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 3158 032422 004 14 0 00 031172 ER4 AC+1,31172 ;LOW PRODUCT FAILED 3159 000001 AEE=1 ;INITIAL C(E) 3160 032423 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 3161 032424 005 11 0 00 031173 ER5 E,31173 ;C(E) WAS CLOBBERED 3162 032425 321 15 0 00 032413 JUMPL AC+2,F31170 ;LOOP ON ERROR SWITCH^ 3163 3164 ;TEST MULTIPLICATION ALGORITHM 3165 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3166 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST 3167 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3168 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3169 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3170 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3171 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND 3172 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3173 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-5 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0075 3174 ;OF C(E). 3175 3176 003120 ADR=ADR+1 3177 000006 XX=XX+1 3178 3179 MOP1 (\ADR,XX,-1,1,0,XX)^ 3180 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 3181 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3182 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. 3183 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3184 3185 000006 F31200: AA1=XX ;INITIAL C(AC) 3186 032426 200 13 0 00 044112 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3187 777777 777777 AA2=-1 ;INITIAL C(AC+1) 3188 032427 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 3189 000001 AEE=1 ;INITIAL C(E) 3190 032430 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 3191 032431 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3192 000000 AR1=0 ;EXPECTED RESULT IN AC 3193 032432 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 3194 032433 003 13 0 00 031201 ER3 AC,31201 ;HIGH PRODUCT FAILED 3195 000006 AR2=XX ;EXPECTED RESULT IN AC+1 3196 032434 312 14 0 00 044112 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 3197 032435 004 14 0 00 031202 ER4 AC+1,31202 ;LOW PRODUCT FAILED 3198 000001 AEE=1 ;INITIAL C(E) 3199 032436 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 3200 032437 005 11 0 00 031203 ER5 E,31203 ;C(E) WAS CLOBBERED 3201 032440 321 15 0 00 032426 JUMPL AC+2,F31200 ;LOOP ON ERROR SWITCH^ 3202 3203 ;TEST MULTIPLICATION ALGORITHM 3204 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3205 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST 3206 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3207 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3208 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3209 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3210 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND 3211 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3212 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3213 ;OF C(E). 3214 3215 003121 ADR=ADR+1 3216 000007 XX=XX+1 3217 3218 MOP1 (\ADR,XX,-1,1,0,XX)^ 3219 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 3220 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3221 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. 3222 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3223 3224 000007 F31210: AA1=XX ;INITIAL C(AC) 3225 032441 200 13 0 00 044113 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3226 777777 777777 AA2=-1 ;INITIAL C(AC+1) 3227 032442 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 3228 000001 AEE=1 ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-6 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0076 3229 032443 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 3230 032444 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3231 000000 AR1=0 ;EXPECTED RESULT IN AC 3232 032445 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 3233 032446 003 13 0 00 031211 ER3 AC,31211 ;HIGH PRODUCT FAILED 3234 000007 AR2=XX ;EXPECTED RESULT IN AC+1 3235 032447 312 14 0 00 044113 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 3236 032450 004 14 0 00 031212 ER4 AC+1,31212 ;LOW PRODUCT FAILED 3237 000001 AEE=1 ;INITIAL C(E) 3238 032451 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 3239 032452 005 11 0 00 031213 ER5 E,31213 ;C(E) WAS CLOBBERED 3240 032453 321 15 0 00 032441 JUMPL AC+2,F31210 ;LOOP ON ERROR SWITCH^ 3241 3242 ;TEST MULTIPLICATION ALGORITHM 3243 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3244 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST 3245 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3246 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3247 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3248 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3249 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND 3250 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3251 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3252 ;OF C(E). 3253 3254 003122 ADR=ADR+1 3255 000010 XX=XX+1 3256 3257 MOP1 (\ADR,XX,-1,1,0,XX)^ 3258 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 3259 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3260 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. 3261 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3262 3263 000010 F31220: AA1=XX ;INITIAL C(AC) 3264 032454 200 13 0 00 044003 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3265 777777 777777 AA2=-1 ;INITIAL C(AC+1) 3266 032455 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 3267 000001 AEE=1 ;INITIAL C(E) 3268 032456 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 3269 032457 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3270 000000 AR1=0 ;EXPECTED RESULT IN AC 3271 032460 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 3272 032461 003 13 0 00 031221 ER3 AC,31221 ;HIGH PRODUCT FAILED 3273 000010 AR2=XX ;EXPECTED RESULT IN AC+1 3274 032462 312 14 0 00 044003 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 3275 032463 004 14 0 00 031222 ER4 AC+1,31222 ;LOW PRODUCT FAILED 3276 000001 AEE=1 ;INITIAL C(E) 3277 032464 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 3278 032465 005 11 0 00 031223 ER5 E,31223 ;C(E) WAS CLOBBERED 3279 032466 321 15 0 00 032454 JUMPL AC+2,F31220 ;LOOP ON ERROR SWITCH^ 3280 3281 ;TEST MULTIPLICATION ALGORITHM 3282 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3283 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-7 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0077 3284 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3285 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3286 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3287 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3288 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND 3289 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3290 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3291 ;OF C(E). 3292 3293 003123 ADR=ADR+1 3294 000011 XX=XX+1 3295 3296 MOP1 (\ADR,XX,-1,1,0,XX)^ 3297 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 3298 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3299 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. 3300 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3301 3302 000011 F31230: AA1=XX ;INITIAL C(AC) 3303 032467 200 13 0 00 044114 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3304 777777 777777 AA2=-1 ;INITIAL C(AC+1) 3305 032470 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 3306 000001 AEE=1 ;INITIAL C(E) 3307 032471 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 3308 032472 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3309 000000 AR1=0 ;EXPECTED RESULT IN AC 3310 032473 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 3311 032474 003 13 0 00 031231 ER3 AC,31231 ;HIGH PRODUCT FAILED 3312 000011 AR2=XX ;EXPECTED RESULT IN AC+1 3313 032475 312 14 0 00 044114 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 3314 032476 004 14 0 00 031232 ER4 AC+1,31232 ;LOW PRODUCT FAILED 3315 000001 AEE=1 ;INITIAL C(E) 3316 032477 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 3317 032500 005 11 0 00 031233 ER5 E,31233 ;C(E) WAS CLOBBERED 3318 032501 321 15 0 00 032467 JUMPL AC+2,F31230 ;LOOP ON ERROR SWITCH^ 3319 3320 ;TEST MULTIPLICATION ALGORITHM 3321 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3322 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST 3323 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3324 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3325 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3326 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3327 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND 3328 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3329 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3330 ;OF C(E). 3331 3332 003124 ADR=ADR+1 3333 000012 XX=XX+1 3334 3335 MOP1 (\ADR,XX,-1,1,0,XX)^ 3336 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 3337 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3338 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-8 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0078 3339 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3340 3341 000012 F31240: AA1=XX ;INITIAL C(AC) 3342 032502 200 13 0 00 044115 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3343 777777 777777 AA2=-1 ;INITIAL C(AC+1) 3344 032503 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 3345 000001 AEE=1 ;INITIAL C(E) 3346 032504 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 3347 032505 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3348 000000 AR1=0 ;EXPECTED RESULT IN AC 3349 032506 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 3350 032507 003 13 0 00 031241 ER3 AC,31241 ;HIGH PRODUCT FAILED 3351 000012 AR2=XX ;EXPECTED RESULT IN AC+1 3352 032510 312 14 0 00 044115 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 3353 032511 004 14 0 00 031242 ER4 AC+1,31242 ;LOW PRODUCT FAILED 3354 000001 AEE=1 ;INITIAL C(E) 3355 032512 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 3356 032513 005 11 0 00 031243 ER5 E,31243 ;C(E) WAS CLOBBERED 3357 032514 321 15 0 00 032502 JUMPL AC+2,F31240 ;LOOP ON ERROR SWITCH^ 3358 3359 ;TEST MULTIPLICATION ALGORITHM 3360 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3361 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST 3362 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3363 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3364 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3365 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3366 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND 3367 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3368 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3369 ;OF C(E). 3370 3371 003125 ADR=ADR+1 3372 000013 XX=XX+1 3373 3374 MOP1 (\ADR,XX,-1,1,0,XX)^ 3375 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 3376 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3377 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. 3378 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3379 3380 000013 F31250: AA1=XX ;INITIAL C(AC) 3381 032515 200 13 0 00 044116 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3382 777777 777777 AA2=-1 ;INITIAL C(AC+1) 3383 032516 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 3384 000001 AEE=1 ;INITIAL C(E) 3385 032517 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 3386 032520 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3387 000000 AR1=0 ;EXPECTED RESULT IN AC 3388 032521 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 3389 032522 003 13 0 00 031251 ER3 AC,31251 ;HIGH PRODUCT FAILED 3390 000013 AR2=XX ;EXPECTED RESULT IN AC+1 3391 032523 312 14 0 00 044116 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 3392 032524 004 14 0 00 031252 ER4 AC+1,31252 ;LOW PRODUCT FAILED 3393 000001 AEE=1 ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-9 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0079 3394 032525 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 3395 032526 005 11 0 00 031253 ER5 E,31253 ;C(E) WAS CLOBBERED 3396 032527 321 15 0 00 032515 JUMPL AC+2,F31250 ;LOOP ON ERROR SWITCH^ 3397 3398 ;TEST MULTIPLICATION ALGORITHM 3399 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3400 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST 3401 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3402 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3403 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3404 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3405 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND 3406 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3407 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3408 ;OF C(E). 3409 3410 003126 ADR=ADR+1 3411 000014 XX=XX+1 3412 3413 MOP1 (\ADR,XX,-1,1,0,XX)^ 3414 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 3415 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3416 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. 3417 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3418 3419 000014 F31260: AA1=XX ;INITIAL C(AC) 3420 032530 200 13 0 00 044117 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3421 777777 777777 AA2=-1 ;INITIAL C(AC+1) 3422 032531 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 3423 000001 AEE=1 ;INITIAL C(E) 3424 032532 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 3425 032533 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3426 000000 AR1=0 ;EXPECTED RESULT IN AC 3427 032534 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 3428 032535 003 13 0 00 031261 ER3 AC,31261 ;HIGH PRODUCT FAILED 3429 000014 AR2=XX ;EXPECTED RESULT IN AC+1 3430 032536 312 14 0 00 044117 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 3431 032537 004 14 0 00 031262 ER4 AC+1,31262 ;LOW PRODUCT FAILED 3432 000001 AEE=1 ;INITIAL C(E) 3433 032540 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 3434 032541 005 11 0 00 031263 ER5 E,31263 ;C(E) WAS CLOBBERED 3435 032542 321 15 0 00 032530 JUMPL AC+2,F31260 ;LOOP ON ERROR SWITCH^ 3436 3437 ;TEST MULTIPLICATION ALGORITHM 3438 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3439 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST 3440 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3441 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3442 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3443 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3444 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND 3445 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3446 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3447 ;OF C(E). 3448 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-10 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0080 3449 003127 ADR=ADR+1 3450 000015 XX=XX+1 3451 3452 MOP1 (\ADR,XX,-1,1,0,XX)^ 3453 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 3454 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3455 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. 3456 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3457 3458 000015 F31270: AA1=XX ;INITIAL C(AC) 3459 032543 200 13 0 00 044120 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3460 777777 777777 AA2=-1 ;INITIAL C(AC+1) 3461 032544 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 3462 000001 AEE=1 ;INITIAL C(E) 3463 032545 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 3464 032546 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3465 000000 AR1=0 ;EXPECTED RESULT IN AC 3466 032547 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 3467 032550 003 13 0 00 031271 ER3 AC,31271 ;HIGH PRODUCT FAILED 3468 000015 AR2=XX ;EXPECTED RESULT IN AC+1 3469 032551 312 14 0 00 044120 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 3470 032552 004 14 0 00 031272 ER4 AC+1,31272 ;LOW PRODUCT FAILED 3471 000001 AEE=1 ;INITIAL C(E) 3472 032553 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 3473 032554 005 11 0 00 031273 ER5 E,31273 ;C(E) WAS CLOBBERED 3474 032555 321 15 0 00 032543 JUMPL AC+2,F31270 ;LOOP ON ERROR SWITCH^ 3475 3476 ;TEST MULTIPLICATION ALGORITHM 3477 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3478 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST 3479 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3480 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3481 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3482 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3483 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND 3484 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3485 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3486 ;OF C(E). 3487 3488 003130 ADR=ADR+1 3489 000016 XX=XX+1 3490 3491 MOP1 (\ADR,XX,-1,1,0,XX)^ 3492 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 3493 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3494 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. 3495 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3496 3497 000016 F31300: AA1=XX ;INITIAL C(AC) 3498 032556 200 13 0 00 044121 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3499 777777 777777 AA2=-1 ;INITIAL C(AC+1) 3500 032557 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 3501 000001 AEE=1 ;INITIAL C(E) 3502 032560 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 3503 032561 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 5-11 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0081 3504 000000 AR1=0 ;EXPECTED RESULT IN AC 3505 032562 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 3506 032563 003 13 0 00 031301 ER3 AC,31301 ;HIGH PRODUCT FAILED 3507 000016 AR2=XX ;EXPECTED RESULT IN AC+1 3508 032564 312 14 0 00 044121 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 3509 032565 004 14 0 00 031302 ER4 AC+1,31302 ;LOW PRODUCT FAILED 3510 000001 AEE=1 ;INITIAL C(E) 3511 032566 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 3512 032567 005 11 0 00 031303 ER5 E,31303 ;C(E) WAS CLOBBERED 3513 032570 321 15 0 00 032556 JUMPL AC+2,F31300 ;LOOP ON ERROR SWITCH^ 3514 3515 ;TEST MULTIPLICATION ALGORITHM 3516 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3517 ;KI10 MULTIPLICATION ALGORITHM. I.E., THE TWO LEAST 3518 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3519 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3520 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3521 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3522 ;EXECUTED 16 TIMES WITH C(AC)=0,1,3,4,..., 17 AND 3523 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3524 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3525 ;OF C(E). 3526 3527 003131 ADR=ADR+1 3528 000017 XX=XX+1 3529 3530 MOP1 (\ADR,XX,-1,1,0,XX)^ 3531 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 3532 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3533 ;AND E AGAINST [0], [XX] AND [1] RESPECTIVELY. 3534 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3535 3536 000017 F31310: AA1=XX ;INITIAL C(AC) 3537 032571 200 13 0 00 044122 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3538 777777 777777 AA2=-1 ;INITIAL C(AC+1) 3539 032572 200 14 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 3540 000001 AEE=1 ;INITIAL C(E) 3541 032573 200 11 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 3542 032574 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3543 000000 AR1=0 ;EXPECTED RESULT IN AC 3544 032575 312 13 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 3545 032576 003 13 0 00 031311 ER3 AC,31311 ;HIGH PRODUCT FAILED 3546 000017 AR2=XX ;EXPECTED RESULT IN AC+1 3547 032577 312 14 0 00 044122 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 3548 032600 004 14 0 00 031312 ER4 AC+1,31312 ;LOW PRODUCT FAILED 3549 000001 AEE=1 ;INITIAL C(E) 3550 032601 312 11 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 3551 032602 005 11 0 00 031313 ER5 E,31313 ;C(E) WAS CLOBBERED 3552 032603 321 15 0 00 032571 JUMPL AC+2,F31310 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0082 3553 000012 AC=12 3554 000010 E=&17 3555 SAVEAC (1,1)^ 3556 032604 201 14 0 00 032604 MOVEI AC+2,. ;SAVE TEST PC 3557 032605 202 14 0 00 030051 MOVEM AC+2,TESTPC 3558 032606 201 14 0 00 000014 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH 3559 032607 202 14 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ 3560 3561 777777 777777 XX=-1 3562 3563 ;MULTIPLICAND=-1 3564 REPEAT ^D16,< 3565 ;TEST MULTIPLICATION ALGORITHM 3566 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3567 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST 3568 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3569 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3570 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3571 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3572 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND 3573 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3574 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3575 ;OF C(E). 3576 3577 ADR=ADR+1 3578 XX=XX+1 3579 MX=-XX 3580 IFE XX,< 3581 V1=-1 3582 V2=0> 3583 IFN XX,< 3584 V1=0 3585 V2=-1> 3586 MOP1 (\ADR,XX,V1,-1,V2,MX)> 3587 3588 ;TEST MULTIPLICATION ALGORITHM 3589 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3590 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST 3591 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3592 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3593 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3594 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3595 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND 3596 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3597 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3598 ;OF C(E). 3599 3600 003132 ADR=ADR+1 3601 000000 XX=XX+1 3602 000000 MX=-XX 3603 IFE XX,< 3604 777777 777777 V1=-1 3605 000000 V2=0> 3606 IFN XX,< 3607 V1=0 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-1 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0083 3608 V2=-1> 3609 MOP1 (\ADR,XX,V1,-1,V2,MX)^ 3610 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND 3611 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3612 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. 3613 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3614 3615 000000 F31320: AA1=XX ;INITIAL C(AC) 3616 032610 200 12 0 00 043776 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3617 777777 777777 AA2=V1 ;INITIAL C(AC+1) 3618 032611 200 13 0 00 043777 MOVE AC+1,[V1] ;PRELOAD AC+1 3619 777777 777777 AEE=-1 ;INITIAL C(E) 3620 032612 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 3621 032613 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3622 000000 AR1=V2 ;EXPECTED RESULT IN AC 3623 032614 312 12 0 00 043776 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? 3624 032615 003 12 0 00 031321 ER3 AC,31321 ;HIGH PRODUCT FAILED 3625 000000 AR2=MX ;EXPECTED RESULT IN AC+1 3626 032616 312 13 0 00 043776 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 3627 032617 004 13 0 00 031322 ER4 AC+1,31322 ;LOW PRODUCT FAILED 3628 777777 777777 AEE=-1 ;INITIAL C(E) 3629 032620 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 3630 032621 005 10 0 00 031323 ER5 E,31323 ;C(E) WAS CLOBBERED 3631 032622 321 14 0 00 032610 JUMPL AC+2,F31320 ;LOOP ON ERROR SWITCH^ 3632 3633 ;TEST MULTIPLICATION ALGORITHM 3634 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3635 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST 3636 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3637 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3638 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3639 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3640 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND 3641 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3642 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3643 ;OF C(E). 3644 3645 003133 ADR=ADR+1 3646 000001 XX=XX+1 3647 777777 777777 MX=-XX 3648 IFE XX,< 3649 V1=-1 3650 V2=0> 3651 IFN XX,< 3652 000000 V1=0 3653 777777 777777 V2=-1> 3654 MOP1 (\ADR,XX,V1,-1,V2,MX)^ 3655 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND 3656 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3657 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. 3658 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3659 3660 000001 F31330: AA1=XX ;INITIAL C(AC) 3661 032623 200 12 0 00 044000 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3662 000000 AA2=V1 ;INITIAL C(AC+1) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-2 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0084 3663 032624 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 3664 777777 777777 AEE=-1 ;INITIAL C(E) 3665 032625 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 3666 032626 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3667 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC 3668 032627 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? 3669 032630 003 12 0 00 031331 ER3 AC,31331 ;HIGH PRODUCT FAILED 3670 777777 777777 AR2=MX ;EXPECTED RESULT IN AC+1 3671 032631 312 13 0 00 043777 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 3672 032632 004 13 0 00 031332 ER4 AC+1,31332 ;LOW PRODUCT FAILED 3673 777777 777777 AEE=-1 ;INITIAL C(E) 3674 032633 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 3675 032634 005 10 0 00 031333 ER5 E,31333 ;C(E) WAS CLOBBERED 3676 032635 321 14 0 00 032623 JUMPL AC+2,F31330 ;LOOP ON ERROR SWITCH^ 3677 3678 ;TEST MULTIPLICATION ALGORITHM 3679 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3680 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST 3681 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3682 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3683 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3684 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3685 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND 3686 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3687 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3688 ;OF C(E). 3689 3690 003134 ADR=ADR+1 3691 000002 XX=XX+1 3692 777777 777776 MX=-XX 3693 IFE XX,< 3694 V1=-1 3695 V2=0> 3696 IFN XX,< 3697 000000 V1=0 3698 777777 777777 V2=-1> 3699 MOP1 (\ADR,XX,V1,-1,V2,MX)^ 3700 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND 3701 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3702 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. 3703 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3704 3705 000002 F31340: AA1=XX ;INITIAL C(AC) 3706 032636 200 12 0 00 044001 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3707 000000 AA2=V1 ;INITIAL C(AC+1) 3708 032637 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 3709 777777 777777 AEE=-1 ;INITIAL C(E) 3710 032640 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 3711 032641 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3712 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC 3713 032642 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? 3714 032643 003 12 0 00 031341 ER3 AC,31341 ;HIGH PRODUCT FAILED 3715 777777 777776 AR2=MX ;EXPECTED RESULT IN AC+1 3716 032644 312 13 0 00 044044 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 3717 032645 004 13 0 00 031342 ER4 AC+1,31342 ;LOW PRODUCT FAILED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-3 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0085 3718 777777 777777 AEE=-1 ;INITIAL C(E) 3719 032646 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 3720 032647 005 10 0 00 031343 ER5 E,31343 ;C(E) WAS CLOBBERED 3721 032650 321 14 0 00 032636 JUMPL AC+2,F31340 ;LOOP ON ERROR SWITCH^ 3722 3723 ;TEST MULTIPLICATION ALGORITHM 3724 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3725 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST 3726 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3727 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3728 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3729 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3730 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND 3731 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3732 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3733 ;OF C(E). 3734 3735 003135 ADR=ADR+1 3736 000003 XX=XX+1 3737 777777 777775 MX=-XX 3738 IFE XX,< 3739 V1=-1 3740 V2=0> 3741 IFN XX,< 3742 000000 V1=0 3743 777777 777777 V2=-1> 3744 MOP1 (\ADR,XX,V1,-1,V2,MX)^ 3745 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND 3746 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3747 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. 3748 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3749 3750 000003 F31350: AA1=XX ;INITIAL C(AC) 3751 032651 200 12 0 00 044110 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3752 000000 AA2=V1 ;INITIAL C(AC+1) 3753 032652 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 3754 777777 777777 AEE=-1 ;INITIAL C(E) 3755 032653 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 3756 032654 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3757 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC 3758 032655 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? 3759 032656 003 12 0 00 031351 ER3 AC,31351 ;HIGH PRODUCT FAILED 3760 777777 777775 AR2=MX ;EXPECTED RESULT IN AC+1 3761 032657 312 13 0 00 044045 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 3762 032660 004 13 0 00 031352 ER4 AC+1,31352 ;LOW PRODUCT FAILED 3763 777777 777777 AEE=-1 ;INITIAL C(E) 3764 032661 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 3765 032662 005 10 0 00 031353 ER5 E,31353 ;C(E) WAS CLOBBERED 3766 032663 321 14 0 00 032651 JUMPL AC+2,F31350 ;LOOP ON ERROR SWITCH^ 3767 3768 ;TEST MULTIPLICATION ALGORITHM 3769 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3770 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST 3771 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3772 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-4 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0086 3773 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3774 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3775 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND 3776 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3777 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3778 ;OF C(E). 3779 3780 003136 ADR=ADR+1 3781 000004 XX=XX+1 3782 777777 777774 MX=-XX 3783 IFE XX,< 3784 V1=-1 3785 V2=0> 3786 IFN XX,< 3787 000000 V1=0 3788 777777 777777 V2=-1> 3789 MOP1 (\ADR,XX,V1,-1,V2,MX)^ 3790 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND 3791 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3792 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. 3793 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3794 3795 000004 F31360: AA1=XX ;INITIAL C(AC) 3796 032664 200 12 0 00 044002 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3797 000000 AA2=V1 ;INITIAL C(AC+1) 3798 032665 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 3799 777777 777777 AEE=-1 ;INITIAL C(E) 3800 032666 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 3801 032667 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3802 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC 3803 032670 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? 3804 032671 003 12 0 00 031361 ER3 AC,31361 ;HIGH PRODUCT FAILED 3805 777777 777774 AR2=MX ;EXPECTED RESULT IN AC+1 3806 032672 312 13 0 00 044123 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 3807 032673 004 13 0 00 031362 ER4 AC+1,31362 ;LOW PRODUCT FAILED 3808 777777 777777 AEE=-1 ;INITIAL C(E) 3809 032674 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 3810 032675 005 10 0 00 031363 ER5 E,31363 ;C(E) WAS CLOBBERED 3811 032676 321 14 0 00 032664 JUMPL AC+2,F31360 ;LOOP ON ERROR SWITCH^ 3812 3813 ;TEST MULTIPLICATION ALGORITHM 3814 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3815 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST 3816 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3817 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3818 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3819 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3820 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND 3821 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3822 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3823 ;OF C(E). 3824 3825 003137 ADR=ADR+1 3826 000005 XX=XX+1 3827 777777 777773 MX=-XX DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-5 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0087 3828 IFE XX,< 3829 V1=-1 3830 V2=0> 3831 IFN XX,< 3832 000000 V1=0 3833 777777 777777 V2=-1> 3834 MOP1 (\ADR,XX,V1,-1,V2,MX)^ 3835 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND 3836 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3837 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. 3838 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3839 3840 000005 F31370: AA1=XX ;INITIAL C(AC) 3841 032677 200 12 0 00 044111 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3842 000000 AA2=V1 ;INITIAL C(AC+1) 3843 032700 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 3844 777777 777777 AEE=-1 ;INITIAL C(E) 3845 032701 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 3846 032702 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3847 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC 3848 032703 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? 3849 032704 003 12 0 00 031371 ER3 AC,31371 ;HIGH PRODUCT FAILED 3850 777777 777773 AR2=MX ;EXPECTED RESULT IN AC+1 3851 032705 312 13 0 00 044046 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 3852 032706 004 13 0 00 031372 ER4 AC+1,31372 ;LOW PRODUCT FAILED 3853 777777 777777 AEE=-1 ;INITIAL C(E) 3854 032707 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 3855 032710 005 10 0 00 031373 ER5 E,31373 ;C(E) WAS CLOBBERED 3856 032711 321 14 0 00 032677 JUMPL AC+2,F31370 ;LOOP ON ERROR SWITCH^ 3857 3858 ;TEST MULTIPLICATION ALGORITHM 3859 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3860 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST 3861 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3862 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3863 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3864 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3865 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND 3866 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3867 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3868 ;OF C(E). 3869 3870 003140 ADR=ADR+1 3871 000006 XX=XX+1 3872 777777 777772 MX=-XX 3873 IFE XX,< 3874 V1=-1 3875 V2=0> 3876 IFN XX,< 3877 000000 V1=0 3878 777777 777777 V2=-1> 3879 MOP1 (\ADR,XX,V1,-1,V2,MX)^ 3880 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND 3881 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3882 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-6 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0088 3883 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3884 3885 000006 F31400: AA1=XX ;INITIAL C(AC) 3886 032712 200 12 0 00 044112 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3887 000000 AA2=V1 ;INITIAL C(AC+1) 3888 032713 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 3889 777777 777777 AEE=-1 ;INITIAL C(E) 3890 032714 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 3891 032715 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3892 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC 3893 032716 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? 3894 032717 003 12 0 00 031401 ER3 AC,31401 ;HIGH PRODUCT FAILED 3895 777777 777772 AR2=MX ;EXPECTED RESULT IN AC+1 3896 032720 312 13 0 00 044124 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 3897 032721 004 13 0 00 031402 ER4 AC+1,31402 ;LOW PRODUCT FAILED 3898 777777 777777 AEE=-1 ;INITIAL C(E) 3899 032722 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 3900 032723 005 10 0 00 031403 ER5 E,31403 ;C(E) WAS CLOBBERED 3901 032724 321 14 0 00 032712 JUMPL AC+2,F31400 ;LOOP ON ERROR SWITCH^ 3902 3903 ;TEST MULTIPLICATION ALGORITHM 3904 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3905 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST 3906 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3907 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3908 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3909 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3910 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND 3911 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3912 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3913 ;OF C(E). 3914 3915 003141 ADR=ADR+1 3916 000007 XX=XX+1 3917 777777 777771 MX=-XX 3918 IFE XX,< 3919 V1=-1 3920 V2=0> 3921 IFN XX,< 3922 000000 V1=0 3923 777777 777777 V2=-1> 3924 MOP1 (\ADR,XX,V1,-1,V2,MX)^ 3925 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND 3926 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3927 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. 3928 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3929 3930 000007 F31410: AA1=XX ;INITIAL C(AC) 3931 032725 200 12 0 00 044113 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3932 000000 AA2=V1 ;INITIAL C(AC+1) 3933 032726 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 3934 777777 777777 AEE=-1 ;INITIAL C(E) 3935 032727 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 3936 032730 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3937 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-7 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0089 3938 032731 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? 3939 032732 003 12 0 00 031411 ER3 AC,31411 ;HIGH PRODUCT FAILED 3940 777777 777771 AR2=MX ;EXPECTED RESULT IN AC+1 3941 032733 312 13 0 00 044125 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 3942 032734 004 13 0 00 031412 ER4 AC+1,31412 ;LOW PRODUCT FAILED 3943 777777 777777 AEE=-1 ;INITIAL C(E) 3944 032735 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 3945 032736 005 10 0 00 031413 ER5 E,31413 ;C(E) WAS CLOBBERED 3946 032737 321 14 0 00 032725 JUMPL AC+2,F31410 ;LOOP ON ERROR SWITCH^ 3947 3948 ;TEST MULTIPLICATION ALGORITHM 3949 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3950 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST 3951 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3952 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3953 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3954 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 3955 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND 3956 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 3957 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 3958 ;OF C(E). 3959 3960 003142 ADR=ADR+1 3961 000010 XX=XX+1 3962 777777 777770 MX=-XX 3963 IFE XX,< 3964 V1=-1 3965 V2=0> 3966 IFN XX,< 3967 000000 V1=0 3968 777777 777777 V2=-1> 3969 MOP1 (\ADR,XX,V1,-1,V2,MX)^ 3970 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND 3971 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 3972 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. 3973 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 3974 3975 000010 F31420: AA1=XX ;INITIAL C(AC) 3976 032740 200 12 0 00 044003 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 3977 000000 AA2=V1 ;INITIAL C(AC+1) 3978 032741 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 3979 777777 777777 AEE=-1 ;INITIAL C(E) 3980 032742 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 3981 032743 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 3982 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC 3983 032744 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? 3984 032745 003 12 0 00 031421 ER3 AC,31421 ;HIGH PRODUCT FAILED 3985 777777 777770 AR2=MX ;EXPECTED RESULT IN AC+1 3986 032746 312 13 0 00 044126 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 3987 032747 004 13 0 00 031422 ER4 AC+1,31422 ;LOW PRODUCT FAILED 3988 777777 777777 AEE=-1 ;INITIAL C(E) 3989 032750 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 3990 032751 005 10 0 00 031423 ER5 E,31423 ;C(E) WAS CLOBBERED 3991 032752 321 14 0 00 032740 JUMPL AC+2,F31420 ;LOOP ON ERROR SWITCH^ 3992 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-8 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0090 3993 ;TEST MULTIPLICATION ALGORITHM 3994 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 3995 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST 3996 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 3997 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 3998 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 3999 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 4000 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND 4001 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 4002 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 4003 ;OF C(E). 4004 4005 003143 ADR=ADR+1 4006 000011 XX=XX+1 4007 777777 777767 MX=-XX 4008 IFE XX,< 4009 V1=-1 4010 V2=0> 4011 IFN XX,< 4012 000000 V1=0 4013 777777 777777 V2=-1> 4014 MOP1 (\ADR,XX,V1,-1,V2,MX)^ 4015 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND 4016 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4017 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. 4018 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4019 4020 000011 F31430: AA1=XX ;INITIAL C(AC) 4021 032753 200 12 0 00 044114 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4022 000000 AA2=V1 ;INITIAL C(AC+1) 4023 032754 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 4024 777777 777777 AEE=-1 ;INITIAL C(E) 4025 032755 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 4026 032756 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4027 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC 4028 032757 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? 4029 032760 003 12 0 00 031431 ER3 AC,31431 ;HIGH PRODUCT FAILED 4030 777777 777767 AR2=MX ;EXPECTED RESULT IN AC+1 4031 032761 312 13 0 00 044047 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 4032 032762 004 13 0 00 031432 ER4 AC+1,31432 ;LOW PRODUCT FAILED 4033 777777 777777 AEE=-1 ;INITIAL C(E) 4034 032763 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 4035 032764 005 10 0 00 031433 ER5 E,31433 ;C(E) WAS CLOBBERED 4036 032765 321 14 0 00 032753 JUMPL AC+2,F31430 ;LOOP ON ERROR SWITCH^ 4037 4038 ;TEST MULTIPLICATION ALGORITHM 4039 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 4040 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST 4041 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 4042 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 4043 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 4044 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 4045 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND 4046 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 4047 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-9 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0091 4048 ;OF C(E). 4049 4050 003144 ADR=ADR+1 4051 000012 XX=XX+1 4052 777777 777766 MX=-XX 4053 IFE XX,< 4054 V1=-1 4055 V2=0> 4056 IFN XX,< 4057 000000 V1=0 4058 777777 777777 V2=-1> 4059 MOP1 (\ADR,XX,V1,-1,V2,MX)^ 4060 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND 4061 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4062 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. 4063 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4064 4065 000012 F31440: AA1=XX ;INITIAL C(AC) 4066 032766 200 12 0 00 044115 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4067 000000 AA2=V1 ;INITIAL C(AC+1) 4068 032767 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 4069 777777 777777 AEE=-1 ;INITIAL C(E) 4070 032770 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 4071 032771 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4072 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC 4073 032772 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? 4074 032773 003 12 0 00 031441 ER3 AC,31441 ;HIGH PRODUCT FAILED 4075 777777 777766 AR2=MX ;EXPECTED RESULT IN AC+1 4076 032774 312 13 0 00 044127 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 4077 032775 004 13 0 00 031442 ER4 AC+1,31442 ;LOW PRODUCT FAILED 4078 777777 777777 AEE=-1 ;INITIAL C(E) 4079 032776 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 4080 032777 005 10 0 00 031443 ER5 E,31443 ;C(E) WAS CLOBBERED 4081 033000 321 14 0 00 032766 JUMPL AC+2,F31440 ;LOOP ON ERROR SWITCH^ 4082 4083 ;TEST MULTIPLICATION ALGORITHM 4084 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 4085 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST 4086 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 4087 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 4088 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 4089 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 4090 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND 4091 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 4092 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 4093 ;OF C(E). 4094 4095 003145 ADR=ADR+1 4096 000013 XX=XX+1 4097 777777 777765 MX=-XX 4098 IFE XX,< 4099 V1=-1 4100 V2=0> 4101 IFN XX,< 4102 000000 V1=0 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-10 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0092 4103 777777 777777 V2=-1> 4104 MOP1 (\ADR,XX,V1,-1,V2,MX)^ 4105 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND 4106 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4107 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. 4108 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4109 4110 000013 F31450: AA1=XX ;INITIAL C(AC) 4111 033001 200 12 0 00 044116 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4112 000000 AA2=V1 ;INITIAL C(AC+1) 4113 033002 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 4114 777777 777777 AEE=-1 ;INITIAL C(E) 4115 033003 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 4116 033004 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4117 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC 4118 033005 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? 4119 033006 003 12 0 00 031451 ER3 AC,31451 ;HIGH PRODUCT FAILED 4120 777777 777765 AR2=MX ;EXPECTED RESULT IN AC+1 4121 033007 312 13 0 00 044130 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 4122 033010 004 13 0 00 031452 ER4 AC+1,31452 ;LOW PRODUCT FAILED 4123 777777 777777 AEE=-1 ;INITIAL C(E) 4124 033011 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 4125 033012 005 10 0 00 031453 ER5 E,31453 ;C(E) WAS CLOBBERED 4126 033013 321 14 0 00 033001 JUMPL AC+2,F31450 ;LOOP ON ERROR SWITCH^ 4127 4128 ;TEST MULTIPLICATION ALGORITHM 4129 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 4130 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST 4131 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 4132 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 4133 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 4134 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 4135 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND 4136 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 4137 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 4138 ;OF C(E). 4139 4140 003146 ADR=ADR+1 4141 000014 XX=XX+1 4142 777777 777764 MX=-XX 4143 IFE XX,< 4144 V1=-1 4145 V2=0> 4146 IFN XX,< 4147 000000 V1=0 4148 777777 777777 V2=-1> 4149 MOP1 (\ADR,XX,V1,-1,V2,MX)^ 4150 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND 4151 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4152 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. 4153 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4154 4155 000014 F31460: AA1=XX ;INITIAL C(AC) 4156 033014 200 12 0 00 044117 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4157 000000 AA2=V1 ;INITIAL C(AC+1) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-11 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0093 4158 033015 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 4159 777777 777777 AEE=-1 ;INITIAL C(E) 4160 033016 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 4161 033017 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4162 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC 4163 033020 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? 4164 033021 003 12 0 00 031461 ER3 AC,31461 ;HIGH PRODUCT FAILED 4165 777777 777764 AR2=MX ;EXPECTED RESULT IN AC+1 4166 033022 312 13 0 00 044131 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 4167 033023 004 13 0 00 031462 ER4 AC+1,31462 ;LOW PRODUCT FAILED 4168 777777 777777 AEE=-1 ;INITIAL C(E) 4169 033024 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 4170 033025 005 10 0 00 031463 ER5 E,31463 ;C(E) WAS CLOBBERED 4171 033026 321 14 0 00 033014 JUMPL AC+2,F31460 ;LOOP ON ERROR SWITCH^ 4172 4173 ;TEST MULTIPLICATION ALGORITHM 4174 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 4175 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST 4176 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 4177 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 4178 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 4179 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 4180 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND 4181 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 4182 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 4183 ;OF C(E). 4184 4185 003147 ADR=ADR+1 4186 000015 XX=XX+1 4187 777777 777763 MX=-XX 4188 IFE XX,< 4189 V1=-1 4190 V2=0> 4191 IFN XX,< 4192 000000 V1=0 4193 777777 777777 V2=-1> 4194 MOP1 (\ADR,XX,V1,-1,V2,MX)^ 4195 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND 4196 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4197 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. 4198 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4199 4200 000015 F31470: AA1=XX ;INITIAL C(AC) 4201 033027 200 12 0 00 044120 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4202 000000 AA2=V1 ;INITIAL C(AC+1) 4203 033030 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 4204 777777 777777 AEE=-1 ;INITIAL C(E) 4205 033031 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 4206 033032 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4207 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC 4208 033033 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? 4209 033034 003 12 0 00 031471 ER3 AC,31471 ;HIGH PRODUCT FAILED 4210 777777 777763 AR2=MX ;EXPECTED RESULT IN AC+1 4211 033035 312 13 0 00 044132 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 4212 033036 004 13 0 00 031472 ER4 AC+1,31472 ;LOW PRODUCT FAILED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-12 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0094 4213 777777 777777 AEE=-1 ;INITIAL C(E) 4214 033037 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 4215 033040 005 10 0 00 031473 ER5 E,31473 ;C(E) WAS CLOBBERED 4216 033041 321 14 0 00 033027 JUMPL AC+2,F31470 ;LOOP ON ERROR SWITCH^ 4217 4218 ;TEST MULTIPLICATION ALGORITHM 4219 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 4220 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST 4221 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 4222 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. 4223 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 4224 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 4225 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND 4226 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 4227 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 4228 ;OF C(E). 4229 4230 003150 ADR=ADR+1 4231 000016 XX=XX+1 4232 777777 777762 MX=-XX 4233 IFE XX,< 4234 V1=-1 4235 V2=0> 4236 IFN XX,< 4237 000000 V1=0 4238 777777 777777 V2=-1> 4239 MOP1 (\ADR,XX,V1,-1,V2,MX)^ 4240 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND 4241 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4242 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. 4243 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4244 4245 000016 F31500: AA1=XX ;INITIAL C(AC) 4246 033042 200 12 0 00 044121 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4247 000000 AA2=V1 ;INITIAL C(AC+1) 4248 033043 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 4249 777777 777777 AEE=-1 ;INITIAL C(E) 4250 033044 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 4251 033045 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4252 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC 4253 033046 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? 4254 033047 003 12 0 00 031501 ER3 AC,31501 ;HIGH PRODUCT FAILED 4255 777777 777762 AR2=MX ;EXPECTED RESULT IN AC+1 4256 033050 312 13 0 00 044133 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 4257 033051 004 13 0 00 031502 ER4 AC+1,31502 ;LOW PRODUCT FAILED 4258 777777 777777 AEE=-1 ;INITIAL C(E) 4259 033052 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 4260 033053 005 10 0 00 031503 ER5 E,31503 ;C(E) WAS CLOBBERED 4261 033054 321 14 0 00 033042 JUMPL AC+2,F31500 ;LOOP ON ERROR SWITCH^ 4262 4263 ;TEST MULTIPLICATION ALGORITHM 4264 ;VERIFY THAT (-MPY SHIFT) WORKS AS SPECIFIED IN THE 4265 ;KI10 MULTIPLICATION ALGORITHM, I.E., THE TWO LEAST 4266 ;SIGNIFICANT BITS OF THE MULTIPLIER (C(AC)) ARE 4267 ;EXAMINED AND THEN THE MULTIPLICAND (C(E)) IS MULTIPLIED BY THEM. DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 6-13 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MULTIPLICATION ALGORITHM SEQ 0095 4268 ;THIS PROCESS IS REPEATED 18 TIMES IN ORDER 4269 ;TO MULTIPLY ALL 36 BITS OF THE AC. THIS TEST IS 4270 ;EXECUTED 16 TIMES WITH C(AC)=0, 1,2,3,4, . . ., 17 AND 4271 ;C(E)=1. IT IS EXECUTED ANOTHER 16 TIMES AS ABOVE 4272 ;EXCEPT C(E)=-1 TO VERIFY THAT THE ALGORITHM IS INDEPENDENT 4273 ;OF C(E). 4274 4275 003151 ADR=ADR+1 4276 000017 XX=XX+1 4277 777777 777761 MX=-XX 4278 IFE XX,< 4279 V1=-1 4280 V2=0> 4281 IFN XX,< 4282 000000 V1=0 4283 777777 777777 V2=-1> 4284 MOP1 (\ADR,XX,V1,-1,V2,MX)^ 4285 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[V1] AND 4286 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4287 ;AND E AGAINST [V2], [MX] AND [-1] RESPECTIVELY. 4288 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4289 4290 000017 F31510: AA1=XX ;INITIAL C(AC) 4291 033055 200 12 0 00 044122 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4292 000000 AA2=V1 ;INITIAL C(AC+1) 4293 033056 200 13 0 00 043776 MOVE AC+1,[V1] ;PRELOAD AC+1 4294 777777 777777 AEE=-1 ;INITIAL C(E) 4295 033057 200 10 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 4296 033060 224 12 0 00 000010 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4297 777777 777777 AR1=V2 ;EXPECTED RESULT IN AC 4298 033061 312 12 0 00 043777 CAME AC,[V2] ;IS HIGH PRODUCT CORRECT? 4299 033062 003 12 0 00 031511 ER3 AC,31511 ;HIGH PRODUCT FAILED 4300 777777 777761 AR2=MX ;EXPECTED RESULT IN AC+1 4301 033063 312 13 0 00 044134 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 4302 033064 004 13 0 00 031512 ER4 AC+1,31512 ;LOW PRODUCT FAILED 4303 777777 777777 AEE=-1 ;INITIAL C(E) 4304 033065 312 10 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 4305 033066 005 10 0 00 031513 ER5 E,31513 ;C(E) WAS CLOBBERED 4306 033067 321 14 0 00 033055 JUMPL AC+2,F31510 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0096 4307 SUBTTL DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT 4308 4309 000011 AC=11 4310 000007 E=&17 4311 SAVEAC (1,1)^ 4312 033070 201 13 0 00 033070 MOVEI AC+2,. ;SAVE TEST PC 4313 033071 202 13 0 00 030051 MOVEM AC+2,TESTPC 4314 033072 201 13 0 00 000013 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH 4315 033073 202 13 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ 4316 000000 XX=0 4317 4318 REPEAT ^D36, < 4319 ADR=ADR+1 4320 XX=XX+XX 4321 IFE XX, 4322 4323 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4324 MOP1 (\ADR,XX,-1,0,0,0)> 4325 4326 003152 ADR=ADR+1 4327 000000 XX=XX+XX 4328 000001 IFE XX, 4329 4330 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4331 MOP1 (\ADR,XX,-1,0,0,0)^ 4332 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4333 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4334 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4335 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4336 4337 000001 F31520: AA1=XX ;INITIAL C(AC) 4338 033074 200 11 0 00 044000 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4339 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4340 033075 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4341 000000 AEE=0 ;INITIAL C(E) 4342 033076 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4343 033077 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4344 000000 AR1=0 ;EXPECTED RESULT IN AC 4345 033100 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4346 033101 003 11 0 00 031521 ER3 AC,31521 ;HIGH PRODUCT FAILED 4347 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4348 033102 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4349 033103 004 12 0 00 031522 ER4 AC+1,31522 ;LOW PRODUCT FAILED 4350 000000 AEE=0 ;INITIAL C(E) 4351 033104 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4352 033105 005 07 0 00 031523 ER5 E,31523 ;C(E) WAS CLOBBERED 4353 033106 321 13 0 00 033074 JUMPL AC+2,F31520 ;LOOP ON ERROR SWITCH^ 4354 4355 003153 ADR=ADR+1 4356 000002 XX=XX+XX 4357 IFE XX, 4358 4359 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4360 MOP1 (\ADR,XX,-1,0,0,0)^ 4361 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-1 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0097 4362 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4363 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4364 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4365 4366 000002 F31530: AA1=XX ;INITIAL C(AC) 4367 033107 200 11 0 00 044001 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4368 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4369 033110 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4370 000000 AEE=0 ;INITIAL C(E) 4371 033111 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4372 033112 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4373 000000 AR1=0 ;EXPECTED RESULT IN AC 4374 033113 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4375 033114 003 11 0 00 031531 ER3 AC,31531 ;HIGH PRODUCT FAILED 4376 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4377 033115 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4378 033116 004 12 0 00 031532 ER4 AC+1,31532 ;LOW PRODUCT FAILED 4379 000000 AEE=0 ;INITIAL C(E) 4380 033117 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4381 033120 005 07 0 00 031533 ER5 E,31533 ;C(E) WAS CLOBBERED 4382 033121 321 13 0 00 033107 JUMPL AC+2,F31530 ;LOOP ON ERROR SWITCH^ 4383 4384 003154 ADR=ADR+1 4385 000004 XX=XX+XX 4386 IFE XX, 4387 4388 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4389 MOP1 (\ADR,XX,-1,0,0,0)^ 4390 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4391 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4392 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4393 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4394 4395 000004 F31540: AA1=XX ;INITIAL C(AC) 4396 033122 200 11 0 00 044002 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4397 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4398 033123 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4399 000000 AEE=0 ;INITIAL C(E) 4400 033124 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4401 033125 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4402 000000 AR1=0 ;EXPECTED RESULT IN AC 4403 033126 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4404 033127 003 11 0 00 031541 ER3 AC,31541 ;HIGH PRODUCT FAILED 4405 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4406 033130 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4407 033131 004 12 0 00 031542 ER4 AC+1,31542 ;LOW PRODUCT FAILED 4408 000000 AEE=0 ;INITIAL C(E) 4409 033132 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4410 033133 005 07 0 00 031543 ER5 E,31543 ;C(E) WAS CLOBBERED 4411 033134 321 13 0 00 033122 JUMPL AC+2,F31540 ;LOOP ON ERROR SWITCH^ 4412 4413 003155 ADR=ADR+1 4414 000010 XX=XX+XX 4415 IFE XX, 4416 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-2 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0098 4417 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4418 MOP1 (\ADR,XX,-1,0,0,0)^ 4419 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4420 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4421 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4422 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4423 4424 000010 F31550: AA1=XX ;INITIAL C(AC) 4425 033135 200 11 0 00 044003 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4426 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4427 033136 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4428 000000 AEE=0 ;INITIAL C(E) 4429 033137 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4430 033140 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4431 000000 AR1=0 ;EXPECTED RESULT IN AC 4432 033141 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4433 033142 003 11 0 00 031551 ER3 AC,31551 ;HIGH PRODUCT FAILED 4434 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4435 033143 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4436 033144 004 12 0 00 031552 ER4 AC+1,31552 ;LOW PRODUCT FAILED 4437 000000 AEE=0 ;INITIAL C(E) 4438 033145 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4439 033146 005 07 0 00 031553 ER5 E,31553 ;C(E) WAS CLOBBERED 4440 033147 321 13 0 00 033135 JUMPL AC+2,F31550 ;LOOP ON ERROR SWITCH^ 4441 4442 003156 ADR=ADR+1 4443 000020 XX=XX+XX 4444 IFE XX, 4445 4446 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4447 MOP1 (\ADR,XX,-1,0,0,0)^ 4448 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4449 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4450 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4451 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4452 4453 000020 F31560: AA1=XX ;INITIAL C(AC) 4454 033150 200 11 0 00 044004 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4455 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4456 033151 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4457 000000 AEE=0 ;INITIAL C(E) 4458 033152 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4459 033153 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4460 000000 AR1=0 ;EXPECTED RESULT IN AC 4461 033154 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4462 033155 003 11 0 00 031561 ER3 AC,31561 ;HIGH PRODUCT FAILED 4463 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4464 033156 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4465 033157 004 12 0 00 031562 ER4 AC+1,31562 ;LOW PRODUCT FAILED 4466 000000 AEE=0 ;INITIAL C(E) 4467 033160 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4468 033161 005 07 0 00 031563 ER5 E,31563 ;C(E) WAS CLOBBERED 4469 033162 321 13 0 00 033150 JUMPL AC+2,F31560 ;LOOP ON ERROR SWITCH^ 4470 4471 003157 ADR=ADR+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-3 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0099 4472 000040 XX=XX+XX 4473 IFE XX, 4474 4475 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4476 MOP1 (\ADR,XX,-1,0,0,0)^ 4477 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4478 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4479 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4480 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4481 4482 000040 F31570: AA1=XX ;INITIAL C(AC) 4483 033163 200 11 0 00 044005 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4484 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4485 033164 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4486 000000 AEE=0 ;INITIAL C(E) 4487 033165 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4488 033166 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4489 000000 AR1=0 ;EXPECTED RESULT IN AC 4490 033167 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4491 033170 003 11 0 00 031571 ER3 AC,31571 ;HIGH PRODUCT FAILED 4492 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4493 033171 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4494 033172 004 12 0 00 031572 ER4 AC+1,31572 ;LOW PRODUCT FAILED 4495 000000 AEE=0 ;INITIAL C(E) 4496 033173 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4497 033174 005 07 0 00 031573 ER5 E,31573 ;C(E) WAS CLOBBERED 4498 033175 321 13 0 00 033163 JUMPL AC+2,F31570 ;LOOP ON ERROR SWITCH^ 4499 4500 003160 ADR=ADR+1 4501 000100 XX=XX+XX 4502 IFE XX, 4503 4504 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4505 MOP1 (\ADR,XX,-1,0,0,0)^ 4506 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4507 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4508 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4509 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4510 4511 000100 F31600: AA1=XX ;INITIAL C(AC) 4512 033176 200 11 0 00 044006 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4513 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4514 033177 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4515 000000 AEE=0 ;INITIAL C(E) 4516 033200 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4517 033201 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4518 000000 AR1=0 ;EXPECTED RESULT IN AC 4519 033202 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4520 033203 003 11 0 00 031601 ER3 AC,31601 ;HIGH PRODUCT FAILED 4521 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4522 033204 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4523 033205 004 12 0 00 031602 ER4 AC+1,31602 ;LOW PRODUCT FAILED 4524 000000 AEE=0 ;INITIAL C(E) 4525 033206 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4526 033207 005 07 0 00 031603 ER5 E,31603 ;C(E) WAS CLOBBERED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-4 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0100 4527 033210 321 13 0 00 033176 JUMPL AC+2,F31600 ;LOOP ON ERROR SWITCH^ 4528 4529 003161 ADR=ADR+1 4530 000200 XX=XX+XX 4531 IFE XX, 4532 4533 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4534 MOP1 (\ADR,XX,-1,0,0,0)^ 4535 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4536 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4537 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4538 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4539 4540 000200 F31610: AA1=XX ;INITIAL C(AC) 4541 033211 200 11 0 00 044007 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4542 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4543 033212 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4544 000000 AEE=0 ;INITIAL C(E) 4545 033213 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4546 033214 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4547 000000 AR1=0 ;EXPECTED RESULT IN AC 4548 033215 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4549 033216 003 11 0 00 031611 ER3 AC,31611 ;HIGH PRODUCT FAILED 4550 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4551 033217 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4552 033220 004 12 0 00 031612 ER4 AC+1,31612 ;LOW PRODUCT FAILED 4553 000000 AEE=0 ;INITIAL C(E) 4554 033221 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4555 033222 005 07 0 00 031613 ER5 E,31613 ;C(E) WAS CLOBBERED 4556 033223 321 13 0 00 033211 JUMPL AC+2,F31610 ;LOOP ON ERROR SWITCH^ 4557 4558 003162 ADR=ADR+1 4559 000400 XX=XX+XX 4560 IFE XX, 4561 4562 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4563 MOP1 (\ADR,XX,-1,0,0,0)^ 4564 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4565 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4566 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4567 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4568 4569 000400 F31620: AA1=XX ;INITIAL C(AC) 4570 033224 200 11 0 00 044010 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4571 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4572 033225 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4573 000000 AEE=0 ;INITIAL C(E) 4574 033226 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4575 033227 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4576 000000 AR1=0 ;EXPECTED RESULT IN AC 4577 033230 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4578 033231 003 11 0 00 031621 ER3 AC,31621 ;HIGH PRODUCT FAILED 4579 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4580 033232 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4581 033233 004 12 0 00 031622 ER4 AC+1,31622 ;LOW PRODUCT FAILED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-5 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0101 4582 000000 AEE=0 ;INITIAL C(E) 4583 033234 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4584 033235 005 07 0 00 031623 ER5 E,31623 ;C(E) WAS CLOBBERED 4585 033236 321 13 0 00 033224 JUMPL AC+2,F31620 ;LOOP ON ERROR SWITCH^ 4586 4587 003163 ADR=ADR+1 4588 001000 XX=XX+XX 4589 IFE XX, 4590 4591 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4592 MOP1 (\ADR,XX,-1,0,0,0)^ 4593 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4594 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4595 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4596 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4597 4598 001000 F31630: AA1=XX ;INITIAL C(AC) 4599 033237 200 11 0 00 044011 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4600 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4601 033240 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4602 000000 AEE=0 ;INITIAL C(E) 4603 033241 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4604 033242 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4605 000000 AR1=0 ;EXPECTED RESULT IN AC 4606 033243 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4607 033244 003 11 0 00 031631 ER3 AC,31631 ;HIGH PRODUCT FAILED 4608 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4609 033245 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4610 033246 004 12 0 00 031632 ER4 AC+1,31632 ;LOW PRODUCT FAILED 4611 000000 AEE=0 ;INITIAL C(E) 4612 033247 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4613 033250 005 07 0 00 031633 ER5 E,31633 ;C(E) WAS CLOBBERED 4614 033251 321 13 0 00 033237 JUMPL AC+2,F31630 ;LOOP ON ERROR SWITCH^ 4615 4616 003164 ADR=ADR+1 4617 002000 XX=XX+XX 4618 IFE XX, 4619 4620 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4621 MOP1 (\ADR,XX,-1,0,0,0)^ 4622 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4623 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4624 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4625 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4626 4627 002000 F31640: AA1=XX ;INITIAL C(AC) 4628 033252 200 11 0 00 044012 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4629 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4630 033253 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4631 000000 AEE=0 ;INITIAL C(E) 4632 033254 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4633 033255 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4634 000000 AR1=0 ;EXPECTED RESULT IN AC 4635 033256 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4636 033257 003 11 0 00 031641 ER3 AC,31641 ;HIGH PRODUCT FAILED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-6 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0102 4637 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4638 033260 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4639 033261 004 12 0 00 031642 ER4 AC+1,31642 ;LOW PRODUCT FAILED 4640 000000 AEE=0 ;INITIAL C(E) 4641 033262 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4642 033263 005 07 0 00 031643 ER5 E,31643 ;C(E) WAS CLOBBERED 4643 033264 321 13 0 00 033252 JUMPL AC+2,F31640 ;LOOP ON ERROR SWITCH^ 4644 4645 003165 ADR=ADR+1 4646 004000 XX=XX+XX 4647 IFE XX, 4648 4649 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4650 MOP1 (\ADR,XX,-1,0,0,0)^ 4651 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4652 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4653 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4654 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4655 4656 004000 F31650: AA1=XX ;INITIAL C(AC) 4657 033265 200 11 0 00 044013 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4658 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4659 033266 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4660 000000 AEE=0 ;INITIAL C(E) 4661 033267 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4662 033270 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4663 000000 AR1=0 ;EXPECTED RESULT IN AC 4664 033271 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4665 033272 003 11 0 00 031651 ER3 AC,31651 ;HIGH PRODUCT FAILED 4666 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4667 033273 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4668 033274 004 12 0 00 031652 ER4 AC+1,31652 ;LOW PRODUCT FAILED 4669 000000 AEE=0 ;INITIAL C(E) 4670 033275 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4671 033276 005 07 0 00 031653 ER5 E,31653 ;C(E) WAS CLOBBERED 4672 033277 321 13 0 00 033265 JUMPL AC+2,F31650 ;LOOP ON ERROR SWITCH^ 4673 4674 003166 ADR=ADR+1 4675 010000 XX=XX+XX 4676 IFE XX, 4677 4678 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4679 MOP1 (\ADR,XX,-1,0,0,0)^ 4680 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4681 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4682 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4683 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4684 4685 010000 F31660: AA1=XX ;INITIAL C(AC) 4686 033300 200 11 0 00 044014 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4687 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4688 033301 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4689 000000 AEE=0 ;INITIAL C(E) 4690 033302 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4691 033303 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-7 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0103 4692 000000 AR1=0 ;EXPECTED RESULT IN AC 4693 033304 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4694 033305 003 11 0 00 031661 ER3 AC,31661 ;HIGH PRODUCT FAILED 4695 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4696 033306 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4697 033307 004 12 0 00 031662 ER4 AC+1,31662 ;LOW PRODUCT FAILED 4698 000000 AEE=0 ;INITIAL C(E) 4699 033310 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4700 033311 005 07 0 00 031663 ER5 E,31663 ;C(E) WAS CLOBBERED 4701 033312 321 13 0 00 033300 JUMPL AC+2,F31660 ;LOOP ON ERROR SWITCH^ 4702 4703 003167 ADR=ADR+1 4704 020000 XX=XX+XX 4705 IFE XX, 4706 4707 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4708 MOP1 (\ADR,XX,-1,0,0,0)^ 4709 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4710 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4711 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4712 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4713 4714 020000 F31670: AA1=XX ;INITIAL C(AC) 4715 033313 200 11 0 00 044015 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4716 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4717 033314 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4718 000000 AEE=0 ;INITIAL C(E) 4719 033315 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4720 033316 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4721 000000 AR1=0 ;EXPECTED RESULT IN AC 4722 033317 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4723 033320 003 11 0 00 031671 ER3 AC,31671 ;HIGH PRODUCT FAILED 4724 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4725 033321 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4726 033322 004 12 0 00 031672 ER4 AC+1,31672 ;LOW PRODUCT FAILED 4727 000000 AEE=0 ;INITIAL C(E) 4728 033323 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4729 033324 005 07 0 00 031673 ER5 E,31673 ;C(E) WAS CLOBBERED 4730 033325 321 13 0 00 033313 JUMPL AC+2,F31670 ;LOOP ON ERROR SWITCH^ 4731 4732 003170 ADR=ADR+1 4733 040000 XX=XX+XX 4734 IFE XX, 4735 4736 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4737 MOP1 (\ADR,XX,-1,0,0,0)^ 4738 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4739 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4740 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4741 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4742 4743 040000 F31700: AA1=XX ;INITIAL C(AC) 4744 033326 200 11 0 00 044016 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4745 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4746 033327 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-8 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0104 4747 000000 AEE=0 ;INITIAL C(E) 4748 033330 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4749 033331 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4750 000000 AR1=0 ;EXPECTED RESULT IN AC 4751 033332 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4752 033333 003 11 0 00 031701 ER3 AC,31701 ;HIGH PRODUCT FAILED 4753 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4754 033334 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4755 033335 004 12 0 00 031702 ER4 AC+1,31702 ;LOW PRODUCT FAILED 4756 000000 AEE=0 ;INITIAL C(E) 4757 033336 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4758 033337 005 07 0 00 031703 ER5 E,31703 ;C(E) WAS CLOBBERED 4759 033340 321 13 0 00 033326 JUMPL AC+2,F31700 ;LOOP ON ERROR SWITCH^ 4760 4761 003171 ADR=ADR+1 4762 100000 XX=XX+XX 4763 IFE XX, 4764 4765 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4766 MOP1 (\ADR,XX,-1,0,0,0)^ 4767 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4768 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4769 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4770 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4771 4772 100000 F31710: AA1=XX ;INITIAL C(AC) 4773 033341 200 11 0 00 044017 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4774 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4775 033342 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4776 000000 AEE=0 ;INITIAL C(E) 4777 033343 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4778 033344 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4779 000000 AR1=0 ;EXPECTED RESULT IN AC 4780 033345 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4781 033346 003 11 0 00 031711 ER3 AC,31711 ;HIGH PRODUCT FAILED 4782 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4783 033347 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4784 033350 004 12 0 00 031712 ER4 AC+1,31712 ;LOW PRODUCT FAILED 4785 000000 AEE=0 ;INITIAL C(E) 4786 033351 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4787 033352 005 07 0 00 031713 ER5 E,31713 ;C(E) WAS CLOBBERED 4788 033353 321 13 0 00 033341 JUMPL AC+2,F31710 ;LOOP ON ERROR SWITCH^ 4789 4790 003172 ADR=ADR+1 4791 200000 XX=XX+XX 4792 IFE XX, 4793 4794 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4795 MOP1 (\ADR,XX,-1,0,0,0)^ 4796 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4797 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4798 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4799 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4800 4801 200000 F31720: AA1=XX ;INITIAL C(AC) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-9 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0105 4802 033354 200 11 0 00 044020 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4803 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4804 033355 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4805 000000 AEE=0 ;INITIAL C(E) 4806 033356 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4807 033357 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4808 000000 AR1=0 ;EXPECTED RESULT IN AC 4809 033360 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4810 033361 003 11 0 00 031721 ER3 AC,31721 ;HIGH PRODUCT FAILED 4811 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4812 033362 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4813 033363 004 12 0 00 031722 ER4 AC+1,31722 ;LOW PRODUCT FAILED 4814 000000 AEE=0 ;INITIAL C(E) 4815 033364 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4816 033365 005 07 0 00 031723 ER5 E,31723 ;C(E) WAS CLOBBERED 4817 033366 321 13 0 00 033354 JUMPL AC+2,F31720 ;LOOP ON ERROR SWITCH^ 4818 4819 003173 ADR=ADR+1 4820 400000 XX=XX+XX 4821 IFE XX, 4822 4823 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4824 MOP1 (\ADR,XX,-1,0,0,0)^ 4825 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4826 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4827 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4828 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4829 4830 400000 F31730: AA1=XX ;INITIAL C(AC) 4831 033367 200 11 0 00 044021 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4832 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4833 033370 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4834 000000 AEE=0 ;INITIAL C(E) 4835 033371 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4836 033372 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4837 000000 AR1=0 ;EXPECTED RESULT IN AC 4838 033373 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4839 033374 003 11 0 00 031731 ER3 AC,31731 ;HIGH PRODUCT FAILED 4840 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4841 033375 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4842 033376 004 12 0 00 031732 ER4 AC+1,31732 ;LOW PRODUCT FAILED 4843 000000 AEE=0 ;INITIAL C(E) 4844 033377 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4845 033400 005 07 0 00 031733 ER5 E,31733 ;C(E) WAS CLOBBERED 4846 033401 321 13 0 00 033367 JUMPL AC+2,F31730 ;LOOP ON ERROR SWITCH^ 4847 4848 003174 ADR=ADR+1 4849 000001 000000 XX=XX+XX 4850 IFE XX, 4851 4852 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4853 MOP1 (\ADR,XX,-1,0,0,0)^ 4854 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4855 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4856 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-10 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0106 4857 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4858 4859 000001 000000 F31740: AA1=XX ;INITIAL C(AC) 4860 033402 200 11 0 00 044022 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4861 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4862 033403 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4863 000000 AEE=0 ;INITIAL C(E) 4864 033404 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4865 033405 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4866 000000 AR1=0 ;EXPECTED RESULT IN AC 4867 033406 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4868 033407 003 11 0 00 031741 ER3 AC,31741 ;HIGH PRODUCT FAILED 4869 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4870 033410 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4871 033411 004 12 0 00 031742 ER4 AC+1,31742 ;LOW PRODUCT FAILED 4872 000000 AEE=0 ;INITIAL C(E) 4873 033412 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4874 033413 005 07 0 00 031743 ER5 E,31743 ;C(E) WAS CLOBBERED 4875 033414 321 13 0 00 033402 JUMPL AC+2,F31740 ;LOOP ON ERROR SWITCH^ 4876 4877 003175 ADR=ADR+1 4878 000002 000000 XX=XX+XX 4879 IFE XX, 4880 4881 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4882 MOP1 (\ADR,XX,-1,0,0,0)^ 4883 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4884 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4885 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4886 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4887 4888 000002 000000 F31750: AA1=XX ;INITIAL C(AC) 4889 033415 200 11 0 00 044023 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4890 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4891 033416 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4892 000000 AEE=0 ;INITIAL C(E) 4893 033417 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4894 033420 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4895 000000 AR1=0 ;EXPECTED RESULT IN AC 4896 033421 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4897 033422 003 11 0 00 031751 ER3 AC,31751 ;HIGH PRODUCT FAILED 4898 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4899 033423 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4900 033424 004 12 0 00 031752 ER4 AC+1,31752 ;LOW PRODUCT FAILED 4901 000000 AEE=0 ;INITIAL C(E) 4902 033425 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4903 033426 005 07 0 00 031753 ER5 E,31753 ;C(E) WAS CLOBBERED 4904 033427 321 13 0 00 033415 JUMPL AC+2,F31750 ;LOOP ON ERROR SWITCH^ 4905 4906 003176 ADR=ADR+1 4907 000004 000000 XX=XX+XX 4908 IFE XX, 4909 4910 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4911 MOP1 (\ADR,XX,-1,0,0,0)^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-11 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0107 4912 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4913 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4914 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4915 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4916 4917 000004 000000 F31760: AA1=XX ;INITIAL C(AC) 4918 033430 200 11 0 00 044024 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4919 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4920 033431 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4921 000000 AEE=0 ;INITIAL C(E) 4922 033432 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4923 033433 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4924 000000 AR1=0 ;EXPECTED RESULT IN AC 4925 033434 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4926 033435 003 11 0 00 031761 ER3 AC,31761 ;HIGH PRODUCT FAILED 4927 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4928 033436 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4929 033437 004 12 0 00 031762 ER4 AC+1,31762 ;LOW PRODUCT FAILED 4930 000000 AEE=0 ;INITIAL C(E) 4931 033440 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4932 033441 005 07 0 00 031763 ER5 E,31763 ;C(E) WAS CLOBBERED 4933 033442 321 13 0 00 033430 JUMPL AC+2,F31760 ;LOOP ON ERROR SWITCH^ 4934 4935 003177 ADR=ADR+1 4936 000010 000000 XX=XX+XX 4937 IFE XX, 4938 4939 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4940 MOP1 (\ADR,XX,-1,0,0,0)^ 4941 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4942 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4943 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4944 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4945 4946 000010 000000 F31770: AA1=XX ;INITIAL C(AC) 4947 033443 200 11 0 00 044025 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4948 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4949 033444 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4950 000000 AEE=0 ;INITIAL C(E) 4951 033445 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4952 033446 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4953 000000 AR1=0 ;EXPECTED RESULT IN AC 4954 033447 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4955 033450 003 11 0 00 031771 ER3 AC,31771 ;HIGH PRODUCT FAILED 4956 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4957 033451 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4958 033452 004 12 0 00 031772 ER4 AC+1,31772 ;LOW PRODUCT FAILED 4959 000000 AEE=0 ;INITIAL C(E) 4960 033453 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4961 033454 005 07 0 00 031773 ER5 E,31773 ;C(E) WAS CLOBBERED 4962 033455 321 13 0 00 033443 JUMPL AC+2,F31770 ;LOOP ON ERROR SWITCH^ 4963 4964 003200 ADR=ADR+1 4965 000020 000000 XX=XX+XX 4966 IFE XX, DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-12 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0108 4967 4968 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4969 MOP1 (\ADR,XX,-1,0,0,0)^ 4970 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 4971 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 4972 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 4973 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 4974 4975 000020 000000 F32000: AA1=XX ;INITIAL C(AC) 4976 033456 200 11 0 00 044026 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 4977 777777 777777 AA2=-1 ;INITIAL C(AC+1) 4978 033457 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 4979 000000 AEE=0 ;INITIAL C(E) 4980 033460 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 4981 033461 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 4982 000000 AR1=0 ;EXPECTED RESULT IN AC 4983 033462 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 4984 033463 003 11 0 00 032001 ER3 AC,32001 ;HIGH PRODUCT FAILED 4985 000000 AR2=0 ;EXPECTED RESULT IN AC+1 4986 033464 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 4987 033465 004 12 0 00 032002 ER4 AC+1,32002 ;LOW PRODUCT FAILED 4988 000000 AEE=0 ;INITIAL C(E) 4989 033466 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 4990 033467 005 07 0 00 032003 ER5 E,32003 ;C(E) WAS CLOBBERED 4991 033470 321 13 0 00 033456 JUMPL AC+2,F32000 ;LOOP ON ERROR SWITCH^ 4992 4993 003201 ADR=ADR+1 4994 000040 000000 XX=XX+XX 4995 IFE XX, 4996 4997 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 4998 MOP1 (\ADR,XX,-1,0,0,0)^ 4999 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5000 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5001 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5002 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5003 5004 000040 000000 F32010: AA1=XX ;INITIAL C(AC) 5005 033471 200 11 0 00 044027 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5006 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5007 033472 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5008 000000 AEE=0 ;INITIAL C(E) 5009 033473 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5010 033474 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5011 000000 AR1=0 ;EXPECTED RESULT IN AC 5012 033475 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5013 033476 003 11 0 00 032011 ER3 AC,32011 ;HIGH PRODUCT FAILED 5014 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5015 033477 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5016 033500 004 12 0 00 032012 ER4 AC+1,32012 ;LOW PRODUCT FAILED 5017 000000 AEE=0 ;INITIAL C(E) 5018 033501 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5019 033502 005 07 0 00 032013 ER5 E,32013 ;C(E) WAS CLOBBERED 5020 033503 321 13 0 00 033471 JUMPL AC+2,F32010 ;LOOP ON ERROR SWITCH^ 5021 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-13 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0109 5022 003202 ADR=ADR+1 5023 000100 000000 XX=XX+XX 5024 IFE XX, 5025 5026 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 5027 MOP1 (\ADR,XX,-1,0,0,0)^ 5028 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5029 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5030 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5031 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5032 5033 000100 000000 F32020: AA1=XX ;INITIAL C(AC) 5034 033504 200 11 0 00 044030 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5035 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5036 033505 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5037 000000 AEE=0 ;INITIAL C(E) 5038 033506 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5039 033507 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5040 000000 AR1=0 ;EXPECTED RESULT IN AC 5041 033510 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5042 033511 003 11 0 00 032021 ER3 AC,32021 ;HIGH PRODUCT FAILED 5043 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5044 033512 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5045 033513 004 12 0 00 032022 ER4 AC+1,32022 ;LOW PRODUCT FAILED 5046 000000 AEE=0 ;INITIAL C(E) 5047 033514 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5048 033515 005 07 0 00 032023 ER5 E,32023 ;C(E) WAS CLOBBERED 5049 033516 321 13 0 00 033504 JUMPL AC+2,F32020 ;LOOP ON ERROR SWITCH^ 5050 5051 003203 ADR=ADR+1 5052 000200 000000 XX=XX+XX 5053 IFE XX, 5054 5055 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 5056 MOP1 (\ADR,XX,-1,0,0,0)^ 5057 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5058 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5059 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5060 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5061 5062 000200 000000 F32030: AA1=XX ;INITIAL C(AC) 5063 033517 200 11 0 00 044031 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5064 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5065 033520 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5066 000000 AEE=0 ;INITIAL C(E) 5067 033521 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5068 033522 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5069 000000 AR1=0 ;EXPECTED RESULT IN AC 5070 033523 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5071 033524 003 11 0 00 032031 ER3 AC,32031 ;HIGH PRODUCT FAILED 5072 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5073 033525 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5074 033526 004 12 0 00 032032 ER4 AC+1,32032 ;LOW PRODUCT FAILED 5075 000000 AEE=0 ;INITIAL C(E) 5076 033527 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-14 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0110 5077 033530 005 07 0 00 032033 ER5 E,32033 ;C(E) WAS CLOBBERED 5078 033531 321 13 0 00 033517 JUMPL AC+2,F32030 ;LOOP ON ERROR SWITCH^ 5079 5080 003204 ADR=ADR+1 5081 000400 000000 XX=XX+XX 5082 IFE XX, 5083 5084 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 5085 MOP1 (\ADR,XX,-1,0,0,0)^ 5086 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5087 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5088 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5089 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5090 5091 000400 000000 F32040: AA1=XX ;INITIAL C(AC) 5092 033532 200 11 0 00 044032 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5093 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5094 033533 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5095 000000 AEE=0 ;INITIAL C(E) 5096 033534 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5097 033535 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5098 000000 AR1=0 ;EXPECTED RESULT IN AC 5099 033536 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5100 033537 003 11 0 00 032041 ER3 AC,32041 ;HIGH PRODUCT FAILED 5101 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5102 033540 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5103 033541 004 12 0 00 032042 ER4 AC+1,32042 ;LOW PRODUCT FAILED 5104 000000 AEE=0 ;INITIAL C(E) 5105 033542 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5106 033543 005 07 0 00 032043 ER5 E,32043 ;C(E) WAS CLOBBERED 5107 033544 321 13 0 00 033532 JUMPL AC+2,F32040 ;LOOP ON ERROR SWITCH^ 5108 5109 003205 ADR=ADR+1 5110 001000 000000 XX=XX+XX 5111 IFE XX, 5112 5113 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 5114 MOP1 (\ADR,XX,-1,0,0,0)^ 5115 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5116 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5117 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5118 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5119 5120 001000 000000 F32050: AA1=XX ;INITIAL C(AC) 5121 033545 200 11 0 00 044033 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5122 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5123 033546 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5124 000000 AEE=0 ;INITIAL C(E) 5125 033547 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5126 033550 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5127 000000 AR1=0 ;EXPECTED RESULT IN AC 5128 033551 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5129 033552 003 11 0 00 032051 ER3 AC,32051 ;HIGH PRODUCT FAILED 5130 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5131 033553 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-15 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0111 5132 033554 004 12 0 00 032052 ER4 AC+1,32052 ;LOW PRODUCT FAILED 5133 000000 AEE=0 ;INITIAL C(E) 5134 033555 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5135 033556 005 07 0 00 032053 ER5 E,32053 ;C(E) WAS CLOBBERED 5136 033557 321 13 0 00 033545 JUMPL AC+2,F32050 ;LOOP ON ERROR SWITCH^ 5137 5138 003206 ADR=ADR+1 5139 002000 000000 XX=XX+XX 5140 IFE XX, 5141 5142 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 5143 MOP1 (\ADR,XX,-1,0,0,0)^ 5144 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5145 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5146 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5147 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5148 5149 002000 000000 F32060: AA1=XX ;INITIAL C(AC) 5150 033560 200 11 0 00 044034 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5151 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5152 033561 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5153 000000 AEE=0 ;INITIAL C(E) 5154 033562 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5155 033563 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5156 000000 AR1=0 ;EXPECTED RESULT IN AC 5157 033564 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5158 033565 003 11 0 00 032061 ER3 AC,32061 ;HIGH PRODUCT FAILED 5159 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5160 033566 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5161 033567 004 12 0 00 032062 ER4 AC+1,32062 ;LOW PRODUCT FAILED 5162 000000 AEE=0 ;INITIAL C(E) 5163 033570 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5164 033571 005 07 0 00 032063 ER5 E,32063 ;C(E) WAS CLOBBERED 5165 033572 321 13 0 00 033560 JUMPL AC+2,F32060 ;LOOP ON ERROR SWITCH^ 5166 5167 003207 ADR=ADR+1 5168 004000 000000 XX=XX+XX 5169 IFE XX, 5170 5171 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 5172 MOP1 (\ADR,XX,-1,0,0,0)^ 5173 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5174 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5175 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5176 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5177 5178 004000 000000 F32070: AA1=XX ;INITIAL C(AC) 5179 033573 200 11 0 00 044035 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5180 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5181 033574 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5182 000000 AEE=0 ;INITIAL C(E) 5183 033575 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5184 033576 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5185 000000 AR1=0 ;EXPECTED RESULT IN AC 5186 033577 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-16 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0112 5187 033600 003 11 0 00 032071 ER3 AC,32071 ;HIGH PRODUCT FAILED 5188 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5189 033601 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5190 033602 004 12 0 00 032072 ER4 AC+1,32072 ;LOW PRODUCT FAILED 5191 000000 AEE=0 ;INITIAL C(E) 5192 033603 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5193 033604 005 07 0 00 032073 ER5 E,32073 ;C(E) WAS CLOBBERED 5194 033605 321 13 0 00 033573 JUMPL AC+2,F32070 ;LOOP ON ERROR SWITCH^ 5195 5196 003210 ADR=ADR+1 5197 010000 000000 XX=XX+XX 5198 IFE XX, 5199 5200 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 5201 MOP1 (\ADR,XX,-1,0,0,0)^ 5202 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5203 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5204 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5205 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5206 5207 010000 000000 F32100: AA1=XX ;INITIAL C(AC) 5208 033606 200 11 0 00 044036 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5209 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5210 033607 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5211 000000 AEE=0 ;INITIAL C(E) 5212 033610 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5213 033611 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5214 000000 AR1=0 ;EXPECTED RESULT IN AC 5215 033612 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5216 033613 003 11 0 00 032101 ER3 AC,32101 ;HIGH PRODUCT FAILED 5217 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5218 033614 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5219 033615 004 12 0 00 032102 ER4 AC+1,32102 ;LOW PRODUCT FAILED 5220 000000 AEE=0 ;INITIAL C(E) 5221 033616 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5222 033617 005 07 0 00 032103 ER5 E,32103 ;C(E) WAS CLOBBERED 5223 033620 321 13 0 00 033606 JUMPL AC+2,F32100 ;LOOP ON ERROR SWITCH^ 5224 5225 003211 ADR=ADR+1 5226 020000 000000 XX=XX+XX 5227 IFE XX, 5228 5229 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 5230 MOP1 (\ADR,XX,-1,0,0,0)^ 5231 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5232 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5233 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5234 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5235 5236 020000 000000 F32110: AA1=XX ;INITIAL C(AC) 5237 033621 200 11 0 00 044037 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5238 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5239 033622 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5240 000000 AEE=0 ;INITIAL C(E) 5241 033623 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-17 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0113 5242 033624 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5243 000000 AR1=0 ;EXPECTED RESULT IN AC 5244 033625 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5245 033626 003 11 0 00 032111 ER3 AC,32111 ;HIGH PRODUCT FAILED 5246 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5247 033627 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5248 033630 004 12 0 00 032112 ER4 AC+1,32112 ;LOW PRODUCT FAILED 5249 000000 AEE=0 ;INITIAL C(E) 5250 033631 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5251 033632 005 07 0 00 032113 ER5 E,32113 ;C(E) WAS CLOBBERED 5252 033633 321 13 0 00 033621 JUMPL AC+2,F32110 ;LOOP ON ERROR SWITCH^ 5253 5254 003212 ADR=ADR+1 5255 040000 000000 XX=XX+XX 5256 IFE XX, 5257 5258 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 5259 MOP1 (\ADR,XX,-1,0,0,0)^ 5260 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5261 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5262 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5263 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5264 5265 040000 000000 F32120: AA1=XX ;INITIAL C(AC) 5266 033634 200 11 0 00 044040 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5267 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5268 033635 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5269 000000 AEE=0 ;INITIAL C(E) 5270 033636 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5271 033637 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5272 000000 AR1=0 ;EXPECTED RESULT IN AC 5273 033640 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5274 033641 003 11 0 00 032121 ER3 AC,32121 ;HIGH PRODUCT FAILED 5275 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5276 033642 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5277 033643 004 12 0 00 032122 ER4 AC+1,32122 ;LOW PRODUCT FAILED 5278 000000 AEE=0 ;INITIAL C(E) 5279 033644 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5280 033645 005 07 0 00 032123 ER5 E,32123 ;C(E) WAS CLOBBERED 5281 033646 321 13 0 00 033634 JUMPL AC+2,F32120 ;LOOP ON ERROR SWITCH^ 5282 5283 003213 ADR=ADR+1 5284 100000 000000 XX=XX+XX 5285 IFE XX, 5286 5287 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 5288 MOP1 (\ADR,XX,-1,0,0,0)^ 5289 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5290 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5291 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5292 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5293 5294 100000 000000 F32130: AA1=XX ;INITIAL C(AC) 5295 033647 200 11 0 00 044041 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5296 777777 777777 AA2=-1 ;INITIAL C(AC+1) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-18 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0114 5297 033650 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5298 000000 AEE=0 ;INITIAL C(E) 5299 033651 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5300 033652 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5301 000000 AR1=0 ;EXPECTED RESULT IN AC 5302 033653 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5303 033654 003 11 0 00 032131 ER3 AC,32131 ;HIGH PRODUCT FAILED 5304 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5305 033655 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5306 033656 004 12 0 00 032132 ER4 AC+1,32132 ;LOW PRODUCT FAILED 5307 000000 AEE=0 ;INITIAL C(E) 5308 033657 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5309 033660 005 07 0 00 032133 ER5 E,32133 ;C(E) WAS CLOBBERED 5310 033661 321 13 0 00 033647 JUMPL AC+2,F32130 ;LOOP ON ERROR SWITCH^ 5311 5312 003214 ADR=ADR+1 5313 200000 000000 XX=XX+XX 5314 IFE XX, 5315 5316 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 5317 MOP1 (\ADR,XX,-1,0,0,0)^ 5318 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5319 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5320 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5321 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5322 5323 200000 000000 F32140: AA1=XX ;INITIAL C(AC) 5324 033662 200 11 0 00 044042 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5325 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5326 033663 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5327 000000 AEE=0 ;INITIAL C(E) 5328 033664 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5329 033665 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5330 000000 AR1=0 ;EXPECTED RESULT IN AC 5331 033666 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5332 033667 003 11 0 00 032141 ER3 AC,32141 ;HIGH PRODUCT FAILED 5333 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5334 033670 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5335 033671 004 12 0 00 032142 ER4 AC+1,32142 ;LOW PRODUCT FAILED 5336 000000 AEE=0 ;INITIAL C(E) 5337 033672 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5338 033673 005 07 0 00 032143 ER5 E,32143 ;C(E) WAS CLOBBERED 5339 033674 321 13 0 00 033662 JUMPL AC+2,F32140 ;LOOP ON ERROR SWITCH^ 5340 5341 003215 ADR=ADR+1 5342 400000 000000 XX=XX+XX 5343 IFE XX, 5344 5345 ;MULTIPLY 0 BY RIPPLED 1 TO GET PRODUCT OF ZERO 5346 MOP1 (\ADR,XX,-1,0,0,0)^ 5347 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5348 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5349 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5350 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5351 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 7-19 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0115 5352 400000 000000 F32150: AA1=XX ;INITIAL C(AC) 5353 033675 200 11 0 00 044043 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5354 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5355 033676 200 12 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5356 000000 AEE=0 ;INITIAL C(E) 5357 033677 200 07 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5358 033700 224 11 0 00 000007 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5359 000000 AR1=0 ;EXPECTED RESULT IN AC 5360 033701 312 11 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5361 033702 003 11 0 00 032151 ER3 AC,32151 ;HIGH PRODUCT FAILED 5362 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5363 033703 312 12 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5364 033704 004 12 0 00 032152 ER4 AC+1,32152 ;LOW PRODUCT FAILED 5365 000000 AEE=0 ;INITIAL C(E) 5366 033705 312 07 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5367 033706 005 07 0 00 032153 ER5 E,32153 ;C(E) WAS CLOBBERED 5368 033707 321 13 0 00 033675 JUMPL AC+2,F32150 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0116 5369 000010 AC=10 5370 000006 E=&17 5371 SAVEAC (1,1)^ 5372 033710 201 12 0 00 033710 MOVEI AC+2,. ;SAVE TEST PC 5373 033711 202 12 0 00 030051 MOVEM AC+2,TESTPC 5374 033712 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH 5375 033713 202 12 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ 5376 000000 XX=0 5377 5378 REPEAT ^D36,< 5379 ADR=ADR+1 5380 XX=XX+XX+1 5381 IFE , 5382 5383 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5384 MOP1 (\ADR,XX,-1,0,0,0)> 5385 5386 003216 ADR=ADR+1 5387 000001 XX=XX+XX+1 5388 777777 777776 IFE , 5389 5390 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5391 MOP1 (\ADR,XX,-1,0,0,0)^ 5392 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5393 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5394 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5395 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5396 5397 777777 777776 F32160: AA1=XX ;INITIAL C(AC) 5398 033714 200 10 0 00 044044 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5399 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5400 033715 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5401 000000 AEE=0 ;INITIAL C(E) 5402 033716 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5403 033717 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5404 000000 AR1=0 ;EXPECTED RESULT IN AC 5405 033720 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5406 033721 003 10 0 00 032161 ER3 AC,32161 ;HIGH PRODUCT FAILED 5407 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5408 033722 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5409 033723 004 11 0 00 032162 ER4 AC+1,32162 ;LOW PRODUCT FAILED 5410 000000 AEE=0 ;INITIAL C(E) 5411 033724 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5412 033725 005 06 0 00 032163 ER5 E,32163 ;C(E) WAS CLOBBERED 5413 033726 321 12 0 00 033714 JUMPL AC+2,F32160 ;LOOP ON ERROR SWITCH^ 5414 5415 003217 ADR=ADR+1 5416 777777 777775 XX=XX+XX+1 5417 IFE , 5418 5419 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5420 MOP1 (\ADR,XX,-1,0,0,0)^ 5421 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5422 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5423 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-1 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0117 5424 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5425 5426 777777 777775 F32170: AA1=XX ;INITIAL C(AC) 5427 033727 200 10 0 00 044045 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5428 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5429 033730 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5430 000000 AEE=0 ;INITIAL C(E) 5431 033731 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5432 033732 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5433 000000 AR1=0 ;EXPECTED RESULT IN AC 5434 033733 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5435 033734 003 10 0 00 032171 ER3 AC,32171 ;HIGH PRODUCT FAILED 5436 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5437 033735 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5438 033736 004 11 0 00 032172 ER4 AC+1,32172 ;LOW PRODUCT FAILED 5439 000000 AEE=0 ;INITIAL C(E) 5440 033737 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5441 033740 005 06 0 00 032173 ER5 E,32173 ;C(E) WAS CLOBBERED 5442 033741 321 12 0 00 033727 JUMPL AC+2,F32170 ;LOOP ON ERROR SWITCH^ 5443 5444 003220 ADR=ADR+1 5445 777777 777773 XX=XX+XX+1 5446 IFE , 5447 5448 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5449 MOP1 (\ADR,XX,-1,0,0,0)^ 5450 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5451 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5452 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5453 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5454 5455 777777 777773 F32200: AA1=XX ;INITIAL C(AC) 5456 033742 200 10 0 00 044046 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5457 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5458 033743 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5459 000000 AEE=0 ;INITIAL C(E) 5460 033744 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5461 033745 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5462 000000 AR1=0 ;EXPECTED RESULT IN AC 5463 033746 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5464 033747 003 10 0 00 032201 ER3 AC,32201 ;HIGH PRODUCT FAILED 5465 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5466 033750 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5467 033751 004 11 0 00 032202 ER4 AC+1,32202 ;LOW PRODUCT FAILED 5468 000000 AEE=0 ;INITIAL C(E) 5469 033752 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5470 033753 005 06 0 00 032203 ER5 E,32203 ;C(E) WAS CLOBBERED 5471 033754 321 12 0 00 033742 JUMPL AC+2,F32200 ;LOOP ON ERROR SWITCH^ 5472 5473 003221 ADR=ADR+1 5474 777777 777767 XX=XX+XX+1 5475 IFE , 5476 5477 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5478 MOP1 (\ADR,XX,-1,0,0,0)^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-2 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0118 5479 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5480 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5481 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5482 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5483 5484 777777 777767 F32210: AA1=XX ;INITIAL C(AC) 5485 033755 200 10 0 00 044047 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5486 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5487 033756 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5488 000000 AEE=0 ;INITIAL C(E) 5489 033757 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5490 033760 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5491 000000 AR1=0 ;EXPECTED RESULT IN AC 5492 033761 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5493 033762 003 10 0 00 032211 ER3 AC,32211 ;HIGH PRODUCT FAILED 5494 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5495 033763 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5496 033764 004 11 0 00 032212 ER4 AC+1,32212 ;LOW PRODUCT FAILED 5497 000000 AEE=0 ;INITIAL C(E) 5498 033765 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5499 033766 005 06 0 00 032213 ER5 E,32213 ;C(E) WAS CLOBBERED 5500 033767 321 12 0 00 033755 JUMPL AC+2,F32210 ;LOOP ON ERROR SWITCH^ 5501 5502 003222 ADR=ADR+1 5503 777777 777757 XX=XX+XX+1 5504 IFE , 5505 5506 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5507 MOP1 (\ADR,XX,-1,0,0,0)^ 5508 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5509 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5510 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5511 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5512 5513 777777 777757 F32220: AA1=XX ;INITIAL C(AC) 5514 033770 200 10 0 00 044050 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5515 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5516 033771 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5517 000000 AEE=0 ;INITIAL C(E) 5518 033772 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5519 033773 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5520 000000 AR1=0 ;EXPECTED RESULT IN AC 5521 033774 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5522 033775 003 10 0 00 032221 ER3 AC,32221 ;HIGH PRODUCT FAILED 5523 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5524 033776 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5525 033777 004 11 0 00 032222 ER4 AC+1,32222 ;LOW PRODUCT FAILED 5526 000000 AEE=0 ;INITIAL C(E) 5527 034000 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5528 034001 005 06 0 00 032223 ER5 E,32223 ;C(E) WAS CLOBBERED 5529 034002 321 12 0 00 033770 JUMPL AC+2,F32220 ;LOOP ON ERROR SWITCH^ 5530 5531 003223 ADR=ADR+1 5532 777777 777737 XX=XX+XX+1 5533 IFE , DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-3 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0119 5534 5535 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5536 MOP1 (\ADR,XX,-1,0,0,0)^ 5537 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5538 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5539 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5540 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5541 5542 777777 777737 F32230: AA1=XX ;INITIAL C(AC) 5543 034003 200 10 0 00 044051 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5544 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5545 034004 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5546 000000 AEE=0 ;INITIAL C(E) 5547 034005 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5548 034006 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5549 000000 AR1=0 ;EXPECTED RESULT IN AC 5550 034007 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5551 034010 003 10 0 00 032231 ER3 AC,32231 ;HIGH PRODUCT FAILED 5552 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5553 034011 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5554 034012 004 11 0 00 032232 ER4 AC+1,32232 ;LOW PRODUCT FAILED 5555 000000 AEE=0 ;INITIAL C(E) 5556 034013 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5557 034014 005 06 0 00 032233 ER5 E,32233 ;C(E) WAS CLOBBERED 5558 034015 321 12 0 00 034003 JUMPL AC+2,F32230 ;LOOP ON ERROR SWITCH^ 5559 5560 003224 ADR=ADR+1 5561 777777 777677 XX=XX+XX+1 5562 IFE , 5563 5564 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5565 MOP1 (\ADR,XX,-1,0,0,0)^ 5566 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5567 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5568 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5569 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5570 5571 777777 777677 F32240: AA1=XX ;INITIAL C(AC) 5572 034016 200 10 0 00 044052 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5573 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5574 034017 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5575 000000 AEE=0 ;INITIAL C(E) 5576 034020 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5577 034021 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5578 000000 AR1=0 ;EXPECTED RESULT IN AC 5579 034022 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5580 034023 003 10 0 00 032241 ER3 AC,32241 ;HIGH PRODUCT FAILED 5581 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5582 034024 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5583 034025 004 11 0 00 032242 ER4 AC+1,32242 ;LOW PRODUCT FAILED 5584 000000 AEE=0 ;INITIAL C(E) 5585 034026 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5586 034027 005 06 0 00 032243 ER5 E,32243 ;C(E) WAS CLOBBERED 5587 034030 321 12 0 00 034016 JUMPL AC+2,F32240 ;LOOP ON ERROR SWITCH^ 5588 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-4 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0120 5589 003225 ADR=ADR+1 5590 777777 777577 XX=XX+XX+1 5591 IFE , 5592 5593 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5594 MOP1 (\ADR,XX,-1,0,0,0)^ 5595 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5596 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5597 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5598 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5599 5600 777777 777577 F32250: AA1=XX ;INITIAL C(AC) 5601 034031 200 10 0 00 044053 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5602 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5603 034032 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5604 000000 AEE=0 ;INITIAL C(E) 5605 034033 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5606 034034 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5607 000000 AR1=0 ;EXPECTED RESULT IN AC 5608 034035 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5609 034036 003 10 0 00 032251 ER3 AC,32251 ;HIGH PRODUCT FAILED 5610 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5611 034037 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5612 034040 004 11 0 00 032252 ER4 AC+1,32252 ;LOW PRODUCT FAILED 5613 000000 AEE=0 ;INITIAL C(E) 5614 034041 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5615 034042 005 06 0 00 032253 ER5 E,32253 ;C(E) WAS CLOBBERED 5616 034043 321 12 0 00 034031 JUMPL AC+2,F32250 ;LOOP ON ERROR SWITCH^ 5617 5618 003226 ADR=ADR+1 5619 777777 777377 XX=XX+XX+1 5620 IFE , 5621 5622 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5623 MOP1 (\ADR,XX,-1,0,0,0)^ 5624 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5625 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5626 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5627 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5628 5629 777777 777377 F32260: AA1=XX ;INITIAL C(AC) 5630 034044 200 10 0 00 044054 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5631 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5632 034045 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5633 000000 AEE=0 ;INITIAL C(E) 5634 034046 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5635 034047 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5636 000000 AR1=0 ;EXPECTED RESULT IN AC 5637 034050 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5638 034051 003 10 0 00 032261 ER3 AC,32261 ;HIGH PRODUCT FAILED 5639 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5640 034052 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5641 034053 004 11 0 00 032262 ER4 AC+1,32262 ;LOW PRODUCT FAILED 5642 000000 AEE=0 ;INITIAL C(E) 5643 034054 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-5 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0121 5644 034055 005 06 0 00 032263 ER5 E,32263 ;C(E) WAS CLOBBERED 5645 034056 321 12 0 00 034044 JUMPL AC+2,F32260 ;LOOP ON ERROR SWITCH^ 5646 5647 003227 ADR=ADR+1 5648 777777 776777 XX=XX+XX+1 5649 IFE , 5650 5651 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5652 MOP1 (\ADR,XX,-1,0,0,0)^ 5653 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5654 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5655 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5656 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5657 5658 777777 776777 F32270: AA1=XX ;INITIAL C(AC) 5659 034057 200 10 0 00 044055 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5660 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5661 034060 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5662 000000 AEE=0 ;INITIAL C(E) 5663 034061 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5664 034062 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5665 000000 AR1=0 ;EXPECTED RESULT IN AC 5666 034063 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5667 034064 003 10 0 00 032271 ER3 AC,32271 ;HIGH PRODUCT FAILED 5668 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5669 034065 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5670 034066 004 11 0 00 032272 ER4 AC+1,32272 ;LOW PRODUCT FAILED 5671 000000 AEE=0 ;INITIAL C(E) 5672 034067 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5673 034070 005 06 0 00 032273 ER5 E,32273 ;C(E) WAS CLOBBERED 5674 034071 321 12 0 00 034057 JUMPL AC+2,F32270 ;LOOP ON ERROR SWITCH^ 5675 5676 003230 ADR=ADR+1 5677 777777 775777 XX=XX+XX+1 5678 IFE , 5679 5680 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5681 MOP1 (\ADR,XX,-1,0,0,0)^ 5682 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5683 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5684 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5685 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5686 5687 777777 775777 F32300: AA1=XX ;INITIAL C(AC) 5688 034072 200 10 0 00 044056 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5689 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5690 034073 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5691 000000 AEE=0 ;INITIAL C(E) 5692 034074 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5693 034075 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5694 000000 AR1=0 ;EXPECTED RESULT IN AC 5695 034076 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5696 034077 003 10 0 00 032301 ER3 AC,32301 ;HIGH PRODUCT FAILED 5697 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5698 034100 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-6 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0122 5699 034101 004 11 0 00 032302 ER4 AC+1,32302 ;LOW PRODUCT FAILED 5700 000000 AEE=0 ;INITIAL C(E) 5701 034102 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5702 034103 005 06 0 00 032303 ER5 E,32303 ;C(E) WAS CLOBBERED 5703 034104 321 12 0 00 034072 JUMPL AC+2,F32300 ;LOOP ON ERROR SWITCH^ 5704 5705 003231 ADR=ADR+1 5706 777777 773777 XX=XX+XX+1 5707 IFE , 5708 5709 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5710 MOP1 (\ADR,XX,-1,0,0,0)^ 5711 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5712 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5713 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5714 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5715 5716 777777 773777 F32310: AA1=XX ;INITIAL C(AC) 5717 034105 200 10 0 00 044057 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5718 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5719 034106 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5720 000000 AEE=0 ;INITIAL C(E) 5721 034107 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5722 034110 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5723 000000 AR1=0 ;EXPECTED RESULT IN AC 5724 034111 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5725 034112 003 10 0 00 032311 ER3 AC,32311 ;HIGH PRODUCT FAILED 5726 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5727 034113 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5728 034114 004 11 0 00 032312 ER4 AC+1,32312 ;LOW PRODUCT FAILED 5729 000000 AEE=0 ;INITIAL C(E) 5730 034115 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5731 034116 005 06 0 00 032313 ER5 E,32313 ;C(E) WAS CLOBBERED 5732 034117 321 12 0 00 034105 JUMPL AC+2,F32310 ;LOOP ON ERROR SWITCH^ 5733 5734 003232 ADR=ADR+1 5735 777777 767777 XX=XX+XX+1 5736 IFE , 5737 5738 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5739 MOP1 (\ADR,XX,-1,0,0,0)^ 5740 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5741 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5742 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5743 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5744 5745 777777 767777 F32320: AA1=XX ;INITIAL C(AC) 5746 034120 200 10 0 00 044060 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5747 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5748 034121 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5749 000000 AEE=0 ;INITIAL C(E) 5750 034122 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5751 034123 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5752 000000 AR1=0 ;EXPECTED RESULT IN AC 5753 034124 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-7 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0123 5754 034125 003 10 0 00 032321 ER3 AC,32321 ;HIGH PRODUCT FAILED 5755 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5756 034126 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5757 034127 004 11 0 00 032322 ER4 AC+1,32322 ;LOW PRODUCT FAILED 5758 000000 AEE=0 ;INITIAL C(E) 5759 034130 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5760 034131 005 06 0 00 032323 ER5 E,32323 ;C(E) WAS CLOBBERED 5761 034132 321 12 0 00 034120 JUMPL AC+2,F32320 ;LOOP ON ERROR SWITCH^ 5762 5763 003233 ADR=ADR+1 5764 777777 757777 XX=XX+XX+1 5765 IFE , 5766 5767 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5768 MOP1 (\ADR,XX,-1,0,0,0)^ 5769 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5770 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5771 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5772 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5773 5774 777777 757777 F32330: AA1=XX ;INITIAL C(AC) 5775 034133 200 10 0 00 044061 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5776 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5777 034134 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5778 000000 AEE=0 ;INITIAL C(E) 5779 034135 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5780 034136 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5781 000000 AR1=0 ;EXPECTED RESULT IN AC 5782 034137 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5783 034140 003 10 0 00 032331 ER3 AC,32331 ;HIGH PRODUCT FAILED 5784 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5785 034141 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5786 034142 004 11 0 00 032332 ER4 AC+1,32332 ;LOW PRODUCT FAILED 5787 000000 AEE=0 ;INITIAL C(E) 5788 034143 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5789 034144 005 06 0 00 032333 ER5 E,32333 ;C(E) WAS CLOBBERED 5790 034145 321 12 0 00 034133 JUMPL AC+2,F32330 ;LOOP ON ERROR SWITCH^ 5791 5792 003234 ADR=ADR+1 5793 777777 737777 XX=XX+XX+1 5794 IFE , 5795 5796 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5797 MOP1 (\ADR,XX,-1,0,0,0)^ 5798 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5799 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5800 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5801 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5802 5803 777777 737777 F32340: AA1=XX ;INITIAL C(AC) 5804 034146 200 10 0 00 044062 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5805 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5806 034147 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5807 000000 AEE=0 ;INITIAL C(E) 5808 034150 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-8 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0124 5809 034151 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5810 000000 AR1=0 ;EXPECTED RESULT IN AC 5811 034152 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5812 034153 003 10 0 00 032341 ER3 AC,32341 ;HIGH PRODUCT FAILED 5813 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5814 034154 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5815 034155 004 11 0 00 032342 ER4 AC+1,32342 ;LOW PRODUCT FAILED 5816 000000 AEE=0 ;INITIAL C(E) 5817 034156 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5818 034157 005 06 0 00 032343 ER5 E,32343 ;C(E) WAS CLOBBERED 5819 034160 321 12 0 00 034146 JUMPL AC+2,F32340 ;LOOP ON ERROR SWITCH^ 5820 5821 003235 ADR=ADR+1 5822 777777 677777 XX=XX+XX+1 5823 IFE , 5824 5825 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5826 MOP1 (\ADR,XX,-1,0,0,0)^ 5827 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5828 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5829 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5830 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5831 5832 777777 677777 F32350: AA1=XX ;INITIAL C(AC) 5833 034161 200 10 0 00 044063 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5834 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5835 034162 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5836 000000 AEE=0 ;INITIAL C(E) 5837 034163 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5838 034164 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5839 000000 AR1=0 ;EXPECTED RESULT IN AC 5840 034165 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5841 034166 003 10 0 00 032351 ER3 AC,32351 ;HIGH PRODUCT FAILED 5842 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5843 034167 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5844 034170 004 11 0 00 032352 ER4 AC+1,32352 ;LOW PRODUCT FAILED 5845 000000 AEE=0 ;INITIAL C(E) 5846 034171 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5847 034172 005 06 0 00 032353 ER5 E,32353 ;C(E) WAS CLOBBERED 5848 034173 321 12 0 00 034161 JUMPL AC+2,F32350 ;LOOP ON ERROR SWITCH^ 5849 5850 003236 ADR=ADR+1 5851 777777 577777 XX=XX+XX+1 5852 IFE , 5853 5854 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5855 MOP1 (\ADR,XX,-1,0,0,0)^ 5856 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5857 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5858 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5859 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5860 5861 777777 577777 F32360: AA1=XX ;INITIAL C(AC) 5862 034174 200 10 0 00 044064 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5863 777777 777777 AA2=-1 ;INITIAL C(AC+1) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-9 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0125 5864 034175 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5865 000000 AEE=0 ;INITIAL C(E) 5866 034176 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5867 034177 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5868 000000 AR1=0 ;EXPECTED RESULT IN AC 5869 034200 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5870 034201 003 10 0 00 032361 ER3 AC,32361 ;HIGH PRODUCT FAILED 5871 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5872 034202 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5873 034203 004 11 0 00 032362 ER4 AC+1,32362 ;LOW PRODUCT FAILED 5874 000000 AEE=0 ;INITIAL C(E) 5875 034204 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5876 034205 005 06 0 00 032363 ER5 E,32363 ;C(E) WAS CLOBBERED 5877 034206 321 12 0 00 034174 JUMPL AC+2,F32360 ;LOOP ON ERROR SWITCH^ 5878 5879 003237 ADR=ADR+1 5880 777777 377777 XX=XX+XX+1 5881 IFE , 5882 5883 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5884 MOP1 (\ADR,XX,-1,0,0,0)^ 5885 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5886 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5887 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5888 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5889 5890 777777 377777 F32370: AA1=XX ;INITIAL C(AC) 5891 034207 200 10 0 00 044065 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5892 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5893 034210 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5894 000000 AEE=0 ;INITIAL C(E) 5895 034211 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5896 034212 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5897 000000 AR1=0 ;EXPECTED RESULT IN AC 5898 034213 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5899 034214 003 10 0 00 032371 ER3 AC,32371 ;HIGH PRODUCT FAILED 5900 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5901 034215 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5902 034216 004 11 0 00 032372 ER4 AC+1,32372 ;LOW PRODUCT FAILED 5903 000000 AEE=0 ;INITIAL C(E) 5904 034217 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5905 034220 005 06 0 00 032373 ER5 E,32373 ;C(E) WAS CLOBBERED 5906 034221 321 12 0 00 034207 JUMPL AC+2,F32370 ;LOOP ON ERROR SWITCH^ 5907 5908 003240 ADR=ADR+1 5909 777776 777777 XX=XX+XX+1 5910 IFE , 5911 5912 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5913 MOP1 (\ADR,XX,-1,0,0,0)^ 5914 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5915 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5916 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5917 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5918 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-10 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0126 5919 777776 777777 F32400: AA1=XX ;INITIAL C(AC) 5920 034222 200 10 0 00 044066 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5921 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5922 034223 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5923 000000 AEE=0 ;INITIAL C(E) 5924 034224 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5925 034225 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5926 000000 AR1=0 ;EXPECTED RESULT IN AC 5927 034226 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5928 034227 003 10 0 00 032401 ER3 AC,32401 ;HIGH PRODUCT FAILED 5929 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5930 034230 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5931 034231 004 11 0 00 032402 ER4 AC+1,32402 ;LOW PRODUCT FAILED 5932 000000 AEE=0 ;INITIAL C(E) 5933 034232 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5934 034233 005 06 0 00 032403 ER5 E,32403 ;C(E) WAS CLOBBERED 5935 034234 321 12 0 00 034222 JUMPL AC+2,F32400 ;LOOP ON ERROR SWITCH^ 5936 5937 003241 ADR=ADR+1 5938 777775 777777 XX=XX+XX+1 5939 IFE , 5940 5941 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5942 MOP1 (\ADR,XX,-1,0,0,0)^ 5943 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5944 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 5945 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5946 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5947 5948 777775 777777 F32410: AA1=XX ;INITIAL C(AC) 5949 034235 200 10 0 00 044067 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5950 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5951 034236 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5952 000000 AEE=0 ;INITIAL C(E) 5953 034237 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5954 034240 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5955 000000 AR1=0 ;EXPECTED RESULT IN AC 5956 034241 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5957 034242 003 10 0 00 032411 ER3 AC,32411 ;HIGH PRODUCT FAILED 5958 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5959 034243 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5960 034244 004 11 0 00 032412 ER4 AC+1,32412 ;LOW PRODUCT FAILED 5961 000000 AEE=0 ;INITIAL C(E) 5962 034245 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5963 034246 005 06 0 00 032413 ER5 E,32413 ;C(E) WAS CLOBBERED 5964 034247 321 12 0 00 034235 JUMPL AC+2,F32410 ;LOOP ON ERROR SWITCH^ 5965 5966 003242 ADR=ADR+1 5967 777773 777777 XX=XX+XX+1 5968 IFE , 5969 5970 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 5971 MOP1 (\ADR,XX,-1,0,0,0)^ 5972 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 5973 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-11 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0127 5974 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 5975 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 5976 5977 777773 777777 F32420: AA1=XX ;INITIAL C(AC) 5978 034250 200 10 0 00 044070 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 5979 777777 777777 AA2=-1 ;INITIAL C(AC+1) 5980 034251 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 5981 000000 AEE=0 ;INITIAL C(E) 5982 034252 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 5983 034253 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 5984 000000 AR1=0 ;EXPECTED RESULT IN AC 5985 034254 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 5986 034255 003 10 0 00 032421 ER3 AC,32421 ;HIGH PRODUCT FAILED 5987 000000 AR2=0 ;EXPECTED RESULT IN AC+1 5988 034256 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 5989 034257 004 11 0 00 032422 ER4 AC+1,32422 ;LOW PRODUCT FAILED 5990 000000 AEE=0 ;INITIAL C(E) 5991 034260 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 5992 034261 005 06 0 00 032423 ER5 E,32423 ;C(E) WAS CLOBBERED 5993 034262 321 12 0 00 034250 JUMPL AC+2,F32420 ;LOOP ON ERROR SWITCH^ 5994 5995 003243 ADR=ADR+1 5996 777767 777777 XX=XX+XX+1 5997 IFE , 5998 5999 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 6000 MOP1 (\ADR,XX,-1,0,0,0)^ 6001 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 6002 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6003 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 6004 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6005 6006 777767 777777 F32430: AA1=XX ;INITIAL C(AC) 6007 034263 200 10 0 00 044071 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 6008 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6009 034264 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6010 000000 AEE=0 ;INITIAL C(E) 6011 034265 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 6012 034266 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6013 000000 AR1=0 ;EXPECTED RESULT IN AC 6014 034267 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 6015 034270 003 10 0 00 032431 ER3 AC,32431 ;HIGH PRODUCT FAILED 6016 000000 AR2=0 ;EXPECTED RESULT IN AC+1 6017 034271 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 6018 034272 004 11 0 00 032432 ER4 AC+1,32432 ;LOW PRODUCT FAILED 6019 000000 AEE=0 ;INITIAL C(E) 6020 034273 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 6021 034274 005 06 0 00 032433 ER5 E,32433 ;C(E) WAS CLOBBERED 6022 034275 321 12 0 00 034263 JUMPL AC+2,F32430 ;LOOP ON ERROR SWITCH^ 6023 6024 003244 ADR=ADR+1 6025 777757 777777 XX=XX+XX+1 6026 IFE , 6027 6028 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-12 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0128 6029 MOP1 (\ADR,XX,-1,0,0,0)^ 6030 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 6031 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6032 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 6033 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6034 6035 777757 777777 F32440: AA1=XX ;INITIAL C(AC) 6036 034276 200 10 0 00 044072 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 6037 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6038 034277 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6039 000000 AEE=0 ;INITIAL C(E) 6040 034300 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 6041 034301 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6042 000000 AR1=0 ;EXPECTED RESULT IN AC 6043 034302 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 6044 034303 003 10 0 00 032441 ER3 AC,32441 ;HIGH PRODUCT FAILED 6045 000000 AR2=0 ;EXPECTED RESULT IN AC+1 6046 034304 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 6047 034305 004 11 0 00 032442 ER4 AC+1,32442 ;LOW PRODUCT FAILED 6048 000000 AEE=0 ;INITIAL C(E) 6049 034306 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 6050 034307 005 06 0 00 032443 ER5 E,32443 ;C(E) WAS CLOBBERED 6051 034310 321 12 0 00 034276 JUMPL AC+2,F32440 ;LOOP ON ERROR SWITCH^ 6052 6053 003245 ADR=ADR+1 6054 777737 777777 XX=XX+XX+1 6055 IFE , 6056 6057 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 6058 MOP1 (\ADR,XX,-1,0,0,0)^ 6059 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 6060 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6061 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 6062 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6063 6064 777737 777777 F32450: AA1=XX ;INITIAL C(AC) 6065 034311 200 10 0 00 044073 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 6066 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6067 034312 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6068 000000 AEE=0 ;INITIAL C(E) 6069 034313 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 6070 034314 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6071 000000 AR1=0 ;EXPECTED RESULT IN AC 6072 034315 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 6073 034316 003 10 0 00 032451 ER3 AC,32451 ;HIGH PRODUCT FAILED 6074 000000 AR2=0 ;EXPECTED RESULT IN AC+1 6075 034317 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 6076 034320 004 11 0 00 032452 ER4 AC+1,32452 ;LOW PRODUCT FAILED 6077 000000 AEE=0 ;INITIAL C(E) 6078 034321 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 6079 034322 005 06 0 00 032453 ER5 E,32453 ;C(E) WAS CLOBBERED 6080 034323 321 12 0 00 034311 JUMPL AC+2,F32450 ;LOOP ON ERROR SWITCH^ 6081 6082 003246 ADR=ADR+1 6083 777677 777777 XX=XX+XX+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-13 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0129 6084 IFE , 6085 6086 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 6087 MOP1 (\ADR,XX,-1,0,0,0)^ 6088 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 6089 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6090 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 6091 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6092 6093 777677 777777 F32460: AA1=XX ;INITIAL C(AC) 6094 034324 200 10 0 00 044074 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 6095 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6096 034325 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6097 000000 AEE=0 ;INITIAL C(E) 6098 034326 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 6099 034327 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6100 000000 AR1=0 ;EXPECTED RESULT IN AC 6101 034330 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 6102 034331 003 10 0 00 032461 ER3 AC,32461 ;HIGH PRODUCT FAILED 6103 000000 AR2=0 ;EXPECTED RESULT IN AC+1 6104 034332 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 6105 034333 004 11 0 00 032462 ER4 AC+1,32462 ;LOW PRODUCT FAILED 6106 000000 AEE=0 ;INITIAL C(E) 6107 034334 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 6108 034335 005 06 0 00 032463 ER5 E,32463 ;C(E) WAS CLOBBERED 6109 034336 321 12 0 00 034324 JUMPL AC+2,F32460 ;LOOP ON ERROR SWITCH^ 6110 6111 003247 ADR=ADR+1 6112 777577 777777 XX=XX+XX+1 6113 IFE , 6114 6115 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 6116 MOP1 (\ADR,XX,-1,0,0,0)^ 6117 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 6118 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6119 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 6120 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6121 6122 777577 777777 F32470: AA1=XX ;INITIAL C(AC) 6123 034337 200 10 0 00 044075 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 6124 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6125 034340 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6126 000000 AEE=0 ;INITIAL C(E) 6127 034341 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 6128 034342 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6129 000000 AR1=0 ;EXPECTED RESULT IN AC 6130 034343 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 6131 034344 003 10 0 00 032471 ER3 AC,32471 ;HIGH PRODUCT FAILED 6132 000000 AR2=0 ;EXPECTED RESULT IN AC+1 6133 034345 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 6134 034346 004 11 0 00 032472 ER4 AC+1,32472 ;LOW PRODUCT FAILED 6135 000000 AEE=0 ;INITIAL C(E) 6136 034347 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 6137 034350 005 06 0 00 032473 ER5 E,32473 ;C(E) WAS CLOBBERED 6138 034351 321 12 0 00 034337 JUMPL AC+2,F32470 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-14 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0130 6139 6140 003250 ADR=ADR+1 6141 777377 777777 XX=XX+XX+1 6142 IFE , 6143 6144 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 6145 MOP1 (\ADR,XX,-1,0,0,0)^ 6146 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 6147 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6148 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 6149 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6150 6151 777377 777777 F32500: AA1=XX ;INITIAL C(AC) 6152 034352 200 10 0 00 044076 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 6153 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6154 034353 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6155 000000 AEE=0 ;INITIAL C(E) 6156 034354 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 6157 034355 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6158 000000 AR1=0 ;EXPECTED RESULT IN AC 6159 034356 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 6160 034357 003 10 0 00 032501 ER3 AC,32501 ;HIGH PRODUCT FAILED 6161 000000 AR2=0 ;EXPECTED RESULT IN AC+1 6162 034360 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 6163 034361 004 11 0 00 032502 ER4 AC+1,32502 ;LOW PRODUCT FAILED 6164 000000 AEE=0 ;INITIAL C(E) 6165 034362 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 6166 034363 005 06 0 00 032503 ER5 E,32503 ;C(E) WAS CLOBBERED 6167 034364 321 12 0 00 034352 JUMPL AC+2,F32500 ;LOOP ON ERROR SWITCH^ 6168 6169 003251 ADR=ADR+1 6170 776777 777777 XX=XX+XX+1 6171 IFE , 6172 6173 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 6174 MOP1 (\ADR,XX,-1,0,0,0)^ 6175 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 6176 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6177 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 6178 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6179 6180 776777 777777 F32510: AA1=XX ;INITIAL C(AC) 6181 034365 200 10 0 00 044077 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 6182 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6183 034366 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6184 000000 AEE=0 ;INITIAL C(E) 6185 034367 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 6186 034370 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6187 000000 AR1=0 ;EXPECTED RESULT IN AC 6188 034371 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 6189 034372 003 10 0 00 032511 ER3 AC,32511 ;HIGH PRODUCT FAILED 6190 000000 AR2=0 ;EXPECTED RESULT IN AC+1 6191 034373 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 6192 034374 004 11 0 00 032512 ER4 AC+1,32512 ;LOW PRODUCT FAILED 6193 000000 AEE=0 ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-15 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0131 6194 034375 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 6195 034376 005 06 0 00 032513 ER5 E,32513 ;C(E) WAS CLOBBERED 6196 034377 321 12 0 00 034365 JUMPL AC+2,F32510 ;LOOP ON ERROR SWITCH^ 6197 6198 003252 ADR=ADR+1 6199 775777 777777 XX=XX+XX+1 6200 IFE , 6201 6202 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 6203 MOP1 (\ADR,XX,-1,0,0,0)^ 6204 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 6205 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6206 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 6207 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6208 6209 775777 777777 F32520: AA1=XX ;INITIAL C(AC) 6210 034400 200 10 0 00 044100 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 6211 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6212 034401 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6213 000000 AEE=0 ;INITIAL C(E) 6214 034402 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 6215 034403 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6216 000000 AR1=0 ;EXPECTED RESULT IN AC 6217 034404 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 6218 034405 003 10 0 00 032521 ER3 AC,32521 ;HIGH PRODUCT FAILED 6219 000000 AR2=0 ;EXPECTED RESULT IN AC+1 6220 034406 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 6221 034407 004 11 0 00 032522 ER4 AC+1,32522 ;LOW PRODUCT FAILED 6222 000000 AEE=0 ;INITIAL C(E) 6223 034410 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 6224 034411 005 06 0 00 032523 ER5 E,32523 ;C(E) WAS CLOBBERED 6225 034412 321 12 0 00 034400 JUMPL AC+2,F32520 ;LOOP ON ERROR SWITCH^ 6226 6227 003253 ADR=ADR+1 6228 773777 777777 XX=XX+XX+1 6229 IFE , 6230 6231 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 6232 MOP1 (\ADR,XX,-1,0,0,0)^ 6233 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 6234 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6235 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 6236 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6237 6238 773777 777777 F32530: AA1=XX ;INITIAL C(AC) 6239 034413 200 10 0 00 044101 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 6240 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6241 034414 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6242 000000 AEE=0 ;INITIAL C(E) 6243 034415 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 6244 034416 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6245 000000 AR1=0 ;EXPECTED RESULT IN AC 6246 034417 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 6247 034420 003 10 0 00 032531 ER3 AC,32531 ;HIGH PRODUCT FAILED 6248 000000 AR2=0 ;EXPECTED RESULT IN AC+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-16 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0132 6249 034421 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 6250 034422 004 11 0 00 032532 ER4 AC+1,32532 ;LOW PRODUCT FAILED 6251 000000 AEE=0 ;INITIAL C(E) 6252 034423 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 6253 034424 005 06 0 00 032533 ER5 E,32533 ;C(E) WAS CLOBBERED 6254 034425 321 12 0 00 034413 JUMPL AC+2,F32530 ;LOOP ON ERROR SWITCH^ 6255 6256 003254 ADR=ADR+1 6257 767777 777777 XX=XX+XX+1 6258 IFE , 6259 6260 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 6261 MOP1 (\ADR,XX,-1,0,0,0)^ 6262 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 6263 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6264 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 6265 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6266 6267 767777 777777 F32540: AA1=XX ;INITIAL C(AC) 6268 034426 200 10 0 00 044102 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 6269 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6270 034427 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6271 000000 AEE=0 ;INITIAL C(E) 6272 034430 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 6273 034431 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6274 000000 AR1=0 ;EXPECTED RESULT IN AC 6275 034432 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 6276 034433 003 10 0 00 032541 ER3 AC,32541 ;HIGH PRODUCT FAILED 6277 000000 AR2=0 ;EXPECTED RESULT IN AC+1 6278 034434 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 6279 034435 004 11 0 00 032542 ER4 AC+1,32542 ;LOW PRODUCT FAILED 6280 000000 AEE=0 ;INITIAL C(E) 6281 034436 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 6282 034437 005 06 0 00 032543 ER5 E,32543 ;C(E) WAS CLOBBERED 6283 034440 321 12 0 00 034426 JUMPL AC+2,F32540 ;LOOP ON ERROR SWITCH^ 6284 6285 003255 ADR=ADR+1 6286 757777 777777 XX=XX+XX+1 6287 IFE , 6288 6289 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 6290 MOP1 (\ADR,XX,-1,0,0,0)^ 6291 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 6292 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6293 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 6294 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6295 6296 757777 777777 F32550: AA1=XX ;INITIAL C(AC) 6297 034441 200 10 0 00 044103 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 6298 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6299 034442 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6300 000000 AEE=0 ;INITIAL C(E) 6301 034443 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 6302 034444 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6303 000000 AR1=0 ;EXPECTED RESULT IN AC DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-17 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0133 6304 034445 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 6305 034446 003 10 0 00 032551 ER3 AC,32551 ;HIGH PRODUCT FAILED 6306 000000 AR2=0 ;EXPECTED RESULT IN AC+1 6307 034447 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 6308 034450 004 11 0 00 032552 ER4 AC+1,32552 ;LOW PRODUCT FAILED 6309 000000 AEE=0 ;INITIAL C(E) 6310 034451 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 6311 034452 005 06 0 00 032553 ER5 E,32553 ;C(E) WAS CLOBBERED 6312 034453 321 12 0 00 034441 JUMPL AC+2,F32550 ;LOOP ON ERROR SWITCH^ 6313 6314 003256 ADR=ADR+1 6315 737777 777777 XX=XX+XX+1 6316 IFE , 6317 6318 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 6319 MOP1 (\ADR,XX,-1,0,0,0)^ 6320 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 6321 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6322 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 6323 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6324 6325 737777 777777 F32560: AA1=XX ;INITIAL C(AC) 6326 034454 200 10 0 00 044104 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 6327 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6328 034455 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6329 000000 AEE=0 ;INITIAL C(E) 6330 034456 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 6331 034457 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6332 000000 AR1=0 ;EXPECTED RESULT IN AC 6333 034460 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 6334 034461 003 10 0 00 032561 ER3 AC,32561 ;HIGH PRODUCT FAILED 6335 000000 AR2=0 ;EXPECTED RESULT IN AC+1 6336 034462 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 6337 034463 004 11 0 00 032562 ER4 AC+1,32562 ;LOW PRODUCT FAILED 6338 000000 AEE=0 ;INITIAL C(E) 6339 034464 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 6340 034465 005 06 0 00 032563 ER5 E,32563 ;C(E) WAS CLOBBERED 6341 034466 321 12 0 00 034454 JUMPL AC+2,F32560 ;LOOP ON ERROR SWITCH^ 6342 6343 003257 ADR=ADR+1 6344 677777 777777 XX=XX+XX+1 6345 IFE , 6346 6347 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 6348 MOP1 (\ADR,XX,-1,0,0,0)^ 6349 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 6350 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6351 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 6352 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6353 6354 677777 777777 F32570: AA1=XX ;INITIAL C(AC) 6355 034467 200 10 0 00 044105 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 6356 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6357 034470 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6358 000000 AEE=0 ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-18 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0134 6359 034471 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 6360 034472 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6361 000000 AR1=0 ;EXPECTED RESULT IN AC 6362 034473 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 6363 034474 003 10 0 00 032571 ER3 AC,32571 ;HIGH PRODUCT FAILED 6364 000000 AR2=0 ;EXPECTED RESULT IN AC+1 6365 034475 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 6366 034476 004 11 0 00 032572 ER4 AC+1,32572 ;LOW PRODUCT FAILED 6367 000000 AEE=0 ;INITIAL C(E) 6368 034477 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 6369 034500 005 06 0 00 032573 ER5 E,32573 ;C(E) WAS CLOBBERED 6370 034501 321 12 0 00 034467 JUMPL AC+2,F32570 ;LOOP ON ERROR SWITCH^ 6371 6372 003260 ADR=ADR+1 6373 577777 777777 XX=XX+XX+1 6374 IFE , 6375 6376 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 6377 MOP1 (\ADR,XX,-1,0,0,0)^ 6378 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 6379 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6380 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 6381 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6382 6383 577777 777777 F32600: AA1=XX ;INITIAL C(AC) 6384 034502 200 10 0 00 044106 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 6385 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6386 034503 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6387 000000 AEE=0 ;INITIAL C(E) 6388 034504 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 6389 034505 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6390 000000 AR1=0 ;EXPECTED RESULT IN AC 6391 034506 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 6392 034507 003 10 0 00 032601 ER3 AC,32601 ;HIGH PRODUCT FAILED 6393 000000 AR2=0 ;EXPECTED RESULT IN AC+1 6394 034510 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 6395 034511 004 11 0 00 032602 ER4 AC+1,32602 ;LOW PRODUCT FAILED 6396 000000 AEE=0 ;INITIAL C(E) 6397 034512 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 6398 034513 005 06 0 00 032603 ER5 E,32603 ;C(E) WAS CLOBBERED 6399 034514 321 12 0 00 034502 JUMPL AC+2,F32600 ;LOOP ON ERROR SWITCH^ 6400 6401 003261 ADR=ADR+1 6402 377777 777777 XX=XX+XX+1 6403 IFE , 6404 6405 ;MULTIPLY 0 BY RIPPLED 0 TO GET PRODUCT OF 0 6406 MOP1 (\ADR,XX,-1,0,0,0)^ 6407 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 6408 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6409 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 6410 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6411 6412 377777 777777 F32610: AA1=XX ;INITIAL C(AC) 6413 034515 200 10 0 00 044107 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8-19 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0135 6414 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6415 034516 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6416 000000 AEE=0 ;INITIAL C(E) 6417 034517 200 06 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 6418 034520 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6419 000000 AR1=0 ;EXPECTED RESULT IN AC 6420 034521 312 10 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 6421 034522 003 10 0 00 032611 ER3 AC,32611 ;HIGH PRODUCT FAILED 6422 000000 AR2=0 ;EXPECTED RESULT IN AC+1 6423 034523 312 11 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 6424 034524 004 11 0 00 032612 ER4 AC+1,32612 ;LOW PRODUCT FAILED 6425 000000 AEE=0 ;INITIAL C(E) 6426 034525 312 06 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 6427 034526 005 06 0 00 032613 ER5 E,32613 ;C(E) WAS CLOBBERED 6428 034527 321 12 0 00 034515 JUMPL AC+2,F32610 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 9 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - ZERO PRODUCT SEQ 0136 6429 000007 AC=7 6430 000005 E=&17 6431 SAVEAC (1,1)^ 6432 034530 201 11 0 00 034530 MOVEI AC+2,. ;SAVE TEST PC 6433 034531 202 11 0 00 030051 MOVEM AC+2,TESTPC 6434 034532 201 11 0 00 000011 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH 6435 034533 202 11 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ 6436 003262 ADR=ADR+1 6437 6438 ;MULTIPLY 0 BY -1 TO GET PRODUCT OF 0 6439 MOP1 (\ADR,-1,-1,0,0,0)^ 6440 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 6441 ;[0] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6442 ;AND E AGAINST [0], [0] AND [0] RESPECTIVELY. 6443 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6444 6445 777777 777777 F32620: AA1=-1 ;INITIAL C(AC) 6446 034534 200 07 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 6447 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6448 034535 200 10 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6449 000000 AEE=0 ;INITIAL C(E) 6450 034536 200 05 0 00 043776 MOVE E,[0] ;PRELOAD E (MULTIPLICAND) 6451 034537 224 07 0 00 000005 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6452 000000 AR1=0 ;EXPECTED RESULT IN AC 6453 034540 312 07 0 00 043776 CAME AC,[0] ;IS HIGH PRODUCT CORRECT? 6454 034541 003 07 0 00 032621 ER3 AC,32621 ;HIGH PRODUCT FAILED 6455 000000 AR2=0 ;EXPECTED RESULT IN AC+1 6456 034542 312 10 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 6457 034543 004 10 0 00 032622 ER4 AC+1,32622 ;LOW PRODUCT FAILED 6458 000000 AEE=0 ;INITIAL C(E) 6459 034544 312 05 0 00 043776 CAME E,[0] ;WAS C(E) CLOBBERED? 6460 034545 005 05 0 00 032623 ER5 E,32623 ;C(E) WAS CLOBBERED 6461 034546 321 11 0 00 034534 JUMPL AC+2,F32620 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0137 6462 SUBTTL DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT 6463 6464 000006 AC=6 6465 000004 E=&17 6466 SAVEAC (1,1)^ 6467 034547 201 10 0 00 034547 MOVEI AC+2,. ;SAVE TEST PC 6468 034550 202 10 0 00 030051 MOVEM AC+2,TESTPC 6469 034551 201 10 0 00 000010 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH 6470 034552 202 10 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ 6471 6472 000000 XX=0 6473 6474 REPEAT ^D36, < 6475 ADR=ADR+1 6476 XX=XX+XX 6477 IFE XX, 6478 6479 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 6480 IFG XX, 6481 IFL XX, 6482 MOP1 (\ADR,1,-1,XX,V1,XX)> 6483 6484 003263 ADR=ADR+1 6485 000000 XX=XX+XX 6486 000001 IFE XX, 6487 6488 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 6489 000000 IFG XX, 6490 IFL XX, 6491 MOP1 (\ADR,1,-1,XX,V1,XX)^ 6492 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 6493 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6494 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 6495 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6496 6497 000001 F32630: AA1=1 ;INITIAL C(AC) 6498 034553 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 6499 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6500 034554 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6501 000001 AEE=XX ;INITIAL C(E) 6502 034555 200 04 0 00 044000 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 6503 034556 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6504 000000 AR1=V1 ;EXPECTED RESULT IN AC 6505 034557 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 6506 034560 003 06 0 00 032631 ER3 AC,32631 ;HIGH PRODUCT FAILED 6507 000001 AR2=XX ;EXPECTED RESULT IN AC+1 6508 034561 312 07 0 00 044000 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 6509 034562 004 07 0 00 032632 ER4 AC+1,32632 ;LOW PRODUCT FAILED 6510 000001 AEE=XX ;INITIAL C(E) 6511 034563 312 04 0 00 044000 CAME E,[XX] ;WAS C(E) CLOBBERED? 6512 034564 005 04 0 00 032633 ER5 E,32633 ;C(E) WAS CLOBBERED 6513 034565 321 10 0 00 034553 JUMPL AC+2,F32630 ;LOOP ON ERROR SWITCH^ 6514 6515 003264 ADR=ADR+1 6516 000002 XX=XX+XX DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-1 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0138 6517 IFE XX, 6518 6519 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 6520 000000 IFG XX, 6521 IFL XX, 6522 MOP1 (\ADR,1,-1,XX,V1,XX)^ 6523 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 6524 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6525 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 6526 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6527 6528 000001 F32640: AA1=1 ;INITIAL C(AC) 6529 034566 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 6530 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6531 034567 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6532 000002 AEE=XX ;INITIAL C(E) 6533 034570 200 04 0 00 044001 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 6534 034571 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6535 000000 AR1=V1 ;EXPECTED RESULT IN AC 6536 034572 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 6537 034573 003 06 0 00 032641 ER3 AC,32641 ;HIGH PRODUCT FAILED 6538 000002 AR2=XX ;EXPECTED RESULT IN AC+1 6539 034574 312 07 0 00 044001 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 6540 034575 004 07 0 00 032642 ER4 AC+1,32642 ;LOW PRODUCT FAILED 6541 000002 AEE=XX ;INITIAL C(E) 6542 034576 312 04 0 00 044001 CAME E,[XX] ;WAS C(E) CLOBBERED? 6543 034577 005 04 0 00 032643 ER5 E,32643 ;C(E) WAS CLOBBERED 6544 034600 321 10 0 00 034566 JUMPL AC+2,F32640 ;LOOP ON ERROR SWITCH^ 6545 6546 003265 ADR=ADR+1 6547 000004 XX=XX+XX 6548 IFE XX, 6549 6550 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 6551 000000 IFG XX, 6552 IFL XX, 6553 MOP1 (\ADR,1,-1,XX,V1,XX)^ 6554 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 6555 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6556 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 6557 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6558 6559 000001 F32650: AA1=1 ;INITIAL C(AC) 6560 034601 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 6561 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6562 034602 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6563 000004 AEE=XX ;INITIAL C(E) 6564 034603 200 04 0 00 044002 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 6565 034604 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6566 000000 AR1=V1 ;EXPECTED RESULT IN AC 6567 034605 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 6568 034606 003 06 0 00 032651 ER3 AC,32651 ;HIGH PRODUCT FAILED 6569 000004 AR2=XX ;EXPECTED RESULT IN AC+1 6570 034607 312 07 0 00 044002 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 6571 034610 004 07 0 00 032652 ER4 AC+1,32652 ;LOW PRODUCT FAILED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-2 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0139 6572 000004 AEE=XX ;INITIAL C(E) 6573 034611 312 04 0 00 044002 CAME E,[XX] ;WAS C(E) CLOBBERED? 6574 034612 005 04 0 00 032653 ER5 E,32653 ;C(E) WAS CLOBBERED 6575 034613 321 10 0 00 034601 JUMPL AC+2,F32650 ;LOOP ON ERROR SWITCH^ 6576 6577 003266 ADR=ADR+1 6578 000010 XX=XX+XX 6579 IFE XX, 6580 6581 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 6582 000000 IFG XX, 6583 IFL XX, 6584 MOP1 (\ADR,1,-1,XX,V1,XX)^ 6585 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 6586 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6587 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 6588 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6589 6590 000001 F32660: AA1=1 ;INITIAL C(AC) 6591 034614 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 6592 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6593 034615 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6594 000010 AEE=XX ;INITIAL C(E) 6595 034616 200 04 0 00 044003 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 6596 034617 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6597 000000 AR1=V1 ;EXPECTED RESULT IN AC 6598 034620 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 6599 034621 003 06 0 00 032661 ER3 AC,32661 ;HIGH PRODUCT FAILED 6600 000010 AR2=XX ;EXPECTED RESULT IN AC+1 6601 034622 312 07 0 00 044003 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 6602 034623 004 07 0 00 032662 ER4 AC+1,32662 ;LOW PRODUCT FAILED 6603 000010 AEE=XX ;INITIAL C(E) 6604 034624 312 04 0 00 044003 CAME E,[XX] ;WAS C(E) CLOBBERED? 6605 034625 005 04 0 00 032663 ER5 E,32663 ;C(E) WAS CLOBBERED 6606 034626 321 10 0 00 034614 JUMPL AC+2,F32660 ;LOOP ON ERROR SWITCH^ 6607 6608 003267 ADR=ADR+1 6609 000020 XX=XX+XX 6610 IFE XX, 6611 6612 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 6613 000000 IFG XX, 6614 IFL XX, 6615 MOP1 (\ADR,1,-1,XX,V1,XX)^ 6616 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 6617 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6618 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 6619 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6620 6621 000001 F32670: AA1=1 ;INITIAL C(AC) 6622 034627 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 6623 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6624 034630 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6625 000020 AEE=XX ;INITIAL C(E) 6626 034631 200 04 0 00 044004 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-3 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0140 6627 034632 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6628 000000 AR1=V1 ;EXPECTED RESULT IN AC 6629 034633 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 6630 034634 003 06 0 00 032671 ER3 AC,32671 ;HIGH PRODUCT FAILED 6631 000020 AR2=XX ;EXPECTED RESULT IN AC+1 6632 034635 312 07 0 00 044004 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 6633 034636 004 07 0 00 032672 ER4 AC+1,32672 ;LOW PRODUCT FAILED 6634 000020 AEE=XX ;INITIAL C(E) 6635 034637 312 04 0 00 044004 CAME E,[XX] ;WAS C(E) CLOBBERED? 6636 034640 005 04 0 00 032673 ER5 E,32673 ;C(E) WAS CLOBBERED 6637 034641 321 10 0 00 034627 JUMPL AC+2,F32670 ;LOOP ON ERROR SWITCH^ 6638 6639 003270 ADR=ADR+1 6640 000040 XX=XX+XX 6641 IFE XX, 6642 6643 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 6644 000000 IFG XX, 6645 IFL XX, 6646 MOP1 (\ADR,1,-1,XX,V1,XX)^ 6647 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 6648 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6649 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 6650 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6651 6652 000001 F32700: AA1=1 ;INITIAL C(AC) 6653 034642 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 6654 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6655 034643 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6656 000040 AEE=XX ;INITIAL C(E) 6657 034644 200 04 0 00 044005 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 6658 034645 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6659 000000 AR1=V1 ;EXPECTED RESULT IN AC 6660 034646 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 6661 034647 003 06 0 00 032701 ER3 AC,32701 ;HIGH PRODUCT FAILED 6662 000040 AR2=XX ;EXPECTED RESULT IN AC+1 6663 034650 312 07 0 00 044005 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 6664 034651 004 07 0 00 032702 ER4 AC+1,32702 ;LOW PRODUCT FAILED 6665 000040 AEE=XX ;INITIAL C(E) 6666 034652 312 04 0 00 044005 CAME E,[XX] ;WAS C(E) CLOBBERED? 6667 034653 005 04 0 00 032703 ER5 E,32703 ;C(E) WAS CLOBBERED 6668 034654 321 10 0 00 034642 JUMPL AC+2,F32700 ;LOOP ON ERROR SWITCH^ 6669 6670 003271 ADR=ADR+1 6671 000100 XX=XX+XX 6672 IFE XX, 6673 6674 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 6675 000000 IFG XX, 6676 IFL XX, 6677 MOP1 (\ADR,1,-1,XX,V1,XX)^ 6678 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 6679 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6680 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 6681 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-4 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0141 6682 6683 000001 F32710: AA1=1 ;INITIAL C(AC) 6684 034655 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 6685 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6686 034656 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6687 000100 AEE=XX ;INITIAL C(E) 6688 034657 200 04 0 00 044006 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 6689 034660 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6690 000000 AR1=V1 ;EXPECTED RESULT IN AC 6691 034661 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 6692 034662 003 06 0 00 032711 ER3 AC,32711 ;HIGH PRODUCT FAILED 6693 000100 AR2=XX ;EXPECTED RESULT IN AC+1 6694 034663 312 07 0 00 044006 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 6695 034664 004 07 0 00 032712 ER4 AC+1,32712 ;LOW PRODUCT FAILED 6696 000100 AEE=XX ;INITIAL C(E) 6697 034665 312 04 0 00 044006 CAME E,[XX] ;WAS C(E) CLOBBERED? 6698 034666 005 04 0 00 032713 ER5 E,32713 ;C(E) WAS CLOBBERED 6699 034667 321 10 0 00 034655 JUMPL AC+2,F32710 ;LOOP ON ERROR SWITCH^ 6700 6701 003272 ADR=ADR+1 6702 000200 XX=XX+XX 6703 IFE XX, 6704 6705 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 6706 000000 IFG XX, 6707 IFL XX, 6708 MOP1 (\ADR,1,-1,XX,V1,XX)^ 6709 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 6710 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6711 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 6712 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6713 6714 000001 F32720: AA1=1 ;INITIAL C(AC) 6715 034670 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 6716 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6717 034671 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6718 000200 AEE=XX ;INITIAL C(E) 6719 034672 200 04 0 00 044007 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 6720 034673 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6721 000000 AR1=V1 ;EXPECTED RESULT IN AC 6722 034674 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 6723 034675 003 06 0 00 032721 ER3 AC,32721 ;HIGH PRODUCT FAILED 6724 000200 AR2=XX ;EXPECTED RESULT IN AC+1 6725 034676 312 07 0 00 044007 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 6726 034677 004 07 0 00 032722 ER4 AC+1,32722 ;LOW PRODUCT FAILED 6727 000200 AEE=XX ;INITIAL C(E) 6728 034700 312 04 0 00 044007 CAME E,[XX] ;WAS C(E) CLOBBERED? 6729 034701 005 04 0 00 032723 ER5 E,32723 ;C(E) WAS CLOBBERED 6730 034702 321 10 0 00 034670 JUMPL AC+2,F32720 ;LOOP ON ERROR SWITCH^ 6731 6732 003273 ADR=ADR+1 6733 000400 XX=XX+XX 6734 IFE XX, 6735 6736 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-5 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0142 6737 000000 IFG XX, 6738 IFL XX, 6739 MOP1 (\ADR,1,-1,XX,V1,XX)^ 6740 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 6741 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6742 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 6743 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6744 6745 000001 F32730: AA1=1 ;INITIAL C(AC) 6746 034703 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 6747 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6748 034704 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6749 000400 AEE=XX ;INITIAL C(E) 6750 034705 200 04 0 00 044010 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 6751 034706 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6752 000000 AR1=V1 ;EXPECTED RESULT IN AC 6753 034707 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 6754 034710 003 06 0 00 032731 ER3 AC,32731 ;HIGH PRODUCT FAILED 6755 000400 AR2=XX ;EXPECTED RESULT IN AC+1 6756 034711 312 07 0 00 044010 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 6757 034712 004 07 0 00 032732 ER4 AC+1,32732 ;LOW PRODUCT FAILED 6758 000400 AEE=XX ;INITIAL C(E) 6759 034713 312 04 0 00 044010 CAME E,[XX] ;WAS C(E) CLOBBERED? 6760 034714 005 04 0 00 032733 ER5 E,32733 ;C(E) WAS CLOBBERED 6761 034715 321 10 0 00 034703 JUMPL AC+2,F32730 ;LOOP ON ERROR SWITCH^ 6762 6763 003274 ADR=ADR+1 6764 001000 XX=XX+XX 6765 IFE XX, 6766 6767 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 6768 000000 IFG XX, 6769 IFL XX, 6770 MOP1 (\ADR,1,-1,XX,V1,XX)^ 6771 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 6772 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6773 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 6774 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6775 6776 000001 F32740: AA1=1 ;INITIAL C(AC) 6777 034716 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 6778 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6779 034717 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6780 001000 AEE=XX ;INITIAL C(E) 6781 034720 200 04 0 00 044011 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 6782 034721 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6783 000000 AR1=V1 ;EXPECTED RESULT IN AC 6784 034722 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 6785 034723 003 06 0 00 032741 ER3 AC,32741 ;HIGH PRODUCT FAILED 6786 001000 AR2=XX ;EXPECTED RESULT IN AC+1 6787 034724 312 07 0 00 044011 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 6788 034725 004 07 0 00 032742 ER4 AC+1,32742 ;LOW PRODUCT FAILED 6789 001000 AEE=XX ;INITIAL C(E) 6790 034726 312 04 0 00 044011 CAME E,[XX] ;WAS C(E) CLOBBERED? 6791 034727 005 04 0 00 032743 ER5 E,32743 ;C(E) WAS CLOBBERED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-6 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0143 6792 034730 321 10 0 00 034716 JUMPL AC+2,F32740 ;LOOP ON ERROR SWITCH^ 6793 6794 003275 ADR=ADR+1 6795 002000 XX=XX+XX 6796 IFE XX, 6797 6798 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 6799 000000 IFG XX, 6800 IFL XX, 6801 MOP1 (\ADR,1,-1,XX,V1,XX)^ 6802 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 6803 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6804 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 6805 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6806 6807 000001 F32750: AA1=1 ;INITIAL C(AC) 6808 034731 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 6809 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6810 034732 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6811 002000 AEE=XX ;INITIAL C(E) 6812 034733 200 04 0 00 044012 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 6813 034734 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6814 000000 AR1=V1 ;EXPECTED RESULT IN AC 6815 034735 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 6816 034736 003 06 0 00 032751 ER3 AC,32751 ;HIGH PRODUCT FAILED 6817 002000 AR2=XX ;EXPECTED RESULT IN AC+1 6818 034737 312 07 0 00 044012 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 6819 034740 004 07 0 00 032752 ER4 AC+1,32752 ;LOW PRODUCT FAILED 6820 002000 AEE=XX ;INITIAL C(E) 6821 034741 312 04 0 00 044012 CAME E,[XX] ;WAS C(E) CLOBBERED? 6822 034742 005 04 0 00 032753 ER5 E,32753 ;C(E) WAS CLOBBERED 6823 034743 321 10 0 00 034731 JUMPL AC+2,F32750 ;LOOP ON ERROR SWITCH^ 6824 6825 003276 ADR=ADR+1 6826 004000 XX=XX+XX 6827 IFE XX, 6828 6829 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 6830 000000 IFG XX, 6831 IFL XX, 6832 MOP1 (\ADR,1,-1,XX,V1,XX)^ 6833 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 6834 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6835 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 6836 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6837 6838 000001 F32760: AA1=1 ;INITIAL C(AC) 6839 034744 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 6840 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6841 034745 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6842 004000 AEE=XX ;INITIAL C(E) 6843 034746 200 04 0 00 044013 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 6844 034747 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6845 000000 AR1=V1 ;EXPECTED RESULT IN AC 6846 034750 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-7 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0144 6847 034751 003 06 0 00 032761 ER3 AC,32761 ;HIGH PRODUCT FAILED 6848 004000 AR2=XX ;EXPECTED RESULT IN AC+1 6849 034752 312 07 0 00 044013 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 6850 034753 004 07 0 00 032762 ER4 AC+1,32762 ;LOW PRODUCT FAILED 6851 004000 AEE=XX ;INITIAL C(E) 6852 034754 312 04 0 00 044013 CAME E,[XX] ;WAS C(E) CLOBBERED? 6853 034755 005 04 0 00 032763 ER5 E,32763 ;C(E) WAS CLOBBERED 6854 034756 321 10 0 00 034744 JUMPL AC+2,F32760 ;LOOP ON ERROR SWITCH^ 6855 6856 003277 ADR=ADR+1 6857 010000 XX=XX+XX 6858 IFE XX, 6859 6860 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 6861 000000 IFG XX, 6862 IFL XX, 6863 MOP1 (\ADR,1,-1,XX,V1,XX)^ 6864 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 6865 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6866 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 6867 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6868 6869 000001 F32770: AA1=1 ;INITIAL C(AC) 6870 034757 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 6871 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6872 034760 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6873 010000 AEE=XX ;INITIAL C(E) 6874 034761 200 04 0 00 044014 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 6875 034762 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6876 000000 AR1=V1 ;EXPECTED RESULT IN AC 6877 034763 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 6878 034764 003 06 0 00 032771 ER3 AC,32771 ;HIGH PRODUCT FAILED 6879 010000 AR2=XX ;EXPECTED RESULT IN AC+1 6880 034765 312 07 0 00 044014 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 6881 034766 004 07 0 00 032772 ER4 AC+1,32772 ;LOW PRODUCT FAILED 6882 010000 AEE=XX ;INITIAL C(E) 6883 034767 312 04 0 00 044014 CAME E,[XX] ;WAS C(E) CLOBBERED? 6884 034770 005 04 0 00 032773 ER5 E,32773 ;C(E) WAS CLOBBERED 6885 034771 321 10 0 00 034757 JUMPL AC+2,F32770 ;LOOP ON ERROR SWITCH^ 6886 6887 003300 ADR=ADR+1 6888 020000 XX=XX+XX 6889 IFE XX, 6890 6891 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 6892 000000 IFG XX, 6893 IFL XX, 6894 MOP1 (\ADR,1,-1,XX,V1,XX)^ 6895 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 6896 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6897 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 6898 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6899 6900 000001 F33000: AA1=1 ;INITIAL C(AC) 6901 034772 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-8 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0145 6902 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6903 034773 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6904 020000 AEE=XX ;INITIAL C(E) 6905 034774 200 04 0 00 044015 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 6906 034775 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6907 000000 AR1=V1 ;EXPECTED RESULT IN AC 6908 034776 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 6909 034777 003 06 0 00 033001 ER3 AC,33001 ;HIGH PRODUCT FAILED 6910 020000 AR2=XX ;EXPECTED RESULT IN AC+1 6911 035000 312 07 0 00 044015 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 6912 035001 004 07 0 00 033002 ER4 AC+1,33002 ;LOW PRODUCT FAILED 6913 020000 AEE=XX ;INITIAL C(E) 6914 035002 312 04 0 00 044015 CAME E,[XX] ;WAS C(E) CLOBBERED? 6915 035003 005 04 0 00 033003 ER5 E,33003 ;C(E) WAS CLOBBERED 6916 035004 321 10 0 00 034772 JUMPL AC+2,F33000 ;LOOP ON ERROR SWITCH^ 6917 6918 003301 ADR=ADR+1 6919 040000 XX=XX+XX 6920 IFE XX, 6921 6922 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 6923 000000 IFG XX, 6924 IFL XX, 6925 MOP1 (\ADR,1,-1,XX,V1,XX)^ 6926 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 6927 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6928 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 6929 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6930 6931 000001 F33010: AA1=1 ;INITIAL C(AC) 6932 035005 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 6933 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6934 035006 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6935 040000 AEE=XX ;INITIAL C(E) 6936 035007 200 04 0 00 044016 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 6937 035010 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6938 000000 AR1=V1 ;EXPECTED RESULT IN AC 6939 035011 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 6940 035012 003 06 0 00 033011 ER3 AC,33011 ;HIGH PRODUCT FAILED 6941 040000 AR2=XX ;EXPECTED RESULT IN AC+1 6942 035013 312 07 0 00 044016 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 6943 035014 004 07 0 00 033012 ER4 AC+1,33012 ;LOW PRODUCT FAILED 6944 040000 AEE=XX ;INITIAL C(E) 6945 035015 312 04 0 00 044016 CAME E,[XX] ;WAS C(E) CLOBBERED? 6946 035016 005 04 0 00 033013 ER5 E,33013 ;C(E) WAS CLOBBERED 6947 035017 321 10 0 00 035005 JUMPL AC+2,F33010 ;LOOP ON ERROR SWITCH^ 6948 6949 003302 ADR=ADR+1 6950 100000 XX=XX+XX 6951 IFE XX, 6952 6953 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 6954 000000 IFG XX, 6955 IFL XX, 6956 MOP1 (\ADR,1,-1,XX,V1,XX)^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-9 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0146 6957 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 6958 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6959 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 6960 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6961 6962 000001 F33020: AA1=1 ;INITIAL C(AC) 6963 035020 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 6964 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6965 035021 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6966 100000 AEE=XX ;INITIAL C(E) 6967 035022 200 04 0 00 044017 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 6968 035023 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 6969 000000 AR1=V1 ;EXPECTED RESULT IN AC 6970 035024 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 6971 035025 003 06 0 00 033021 ER3 AC,33021 ;HIGH PRODUCT FAILED 6972 100000 AR2=XX ;EXPECTED RESULT IN AC+1 6973 035026 312 07 0 00 044017 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 6974 035027 004 07 0 00 033022 ER4 AC+1,33022 ;LOW PRODUCT FAILED 6975 100000 AEE=XX ;INITIAL C(E) 6976 035030 312 04 0 00 044017 CAME E,[XX] ;WAS C(E) CLOBBERED? 6977 035031 005 04 0 00 033023 ER5 E,33023 ;C(E) WAS CLOBBERED 6978 035032 321 10 0 00 035020 JUMPL AC+2,F33020 ;LOOP ON ERROR SWITCH^ 6979 6980 003303 ADR=ADR+1 6981 200000 XX=XX+XX 6982 IFE XX, 6983 6984 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 6985 000000 IFG XX, 6986 IFL XX, 6987 MOP1 (\ADR,1,-1,XX,V1,XX)^ 6988 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 6989 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 6990 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 6991 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 6992 6993 000001 F33030: AA1=1 ;INITIAL C(AC) 6994 035033 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 6995 777777 777777 AA2=-1 ;INITIAL C(AC+1) 6996 035034 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 6997 200000 AEE=XX ;INITIAL C(E) 6998 035035 200 04 0 00 044020 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 6999 035036 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7000 000000 AR1=V1 ;EXPECTED RESULT IN AC 7001 035037 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7002 035040 003 06 0 00 033031 ER3 AC,33031 ;HIGH PRODUCT FAILED 7003 200000 AR2=XX ;EXPECTED RESULT IN AC+1 7004 035041 312 07 0 00 044020 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7005 035042 004 07 0 00 033032 ER4 AC+1,33032 ;LOW PRODUCT FAILED 7006 200000 AEE=XX ;INITIAL C(E) 7007 035043 312 04 0 00 044020 CAME E,[XX] ;WAS C(E) CLOBBERED? 7008 035044 005 04 0 00 033033 ER5 E,33033 ;C(E) WAS CLOBBERED 7009 035045 321 10 0 00 035033 JUMPL AC+2,F33030 ;LOOP ON ERROR SWITCH^ 7010 7011 003304 ADR=ADR+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-10 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0147 7012 400000 XX=XX+XX 7013 IFE XX, 7014 7015 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 7016 000000 IFG XX, 7017 IFL XX, 7018 MOP1 (\ADR,1,-1,XX,V1,XX)^ 7019 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 7020 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7021 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 7022 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7023 7024 000001 F33040: AA1=1 ;INITIAL C(AC) 7025 035046 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 7026 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7027 035047 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7028 400000 AEE=XX ;INITIAL C(E) 7029 035050 200 04 0 00 044021 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 7030 035051 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7031 000000 AR1=V1 ;EXPECTED RESULT IN AC 7032 035052 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7033 035053 003 06 0 00 033041 ER3 AC,33041 ;HIGH PRODUCT FAILED 7034 400000 AR2=XX ;EXPECTED RESULT IN AC+1 7035 035054 312 07 0 00 044021 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7036 035055 004 07 0 00 033042 ER4 AC+1,33042 ;LOW PRODUCT FAILED 7037 400000 AEE=XX ;INITIAL C(E) 7038 035056 312 04 0 00 044021 CAME E,[XX] ;WAS C(E) CLOBBERED? 7039 035057 005 04 0 00 033043 ER5 E,33043 ;C(E) WAS CLOBBERED 7040 035060 321 10 0 00 035046 JUMPL AC+2,F33040 ;LOOP ON ERROR SWITCH^ 7041 7042 003305 ADR=ADR+1 7043 000001 000000 XX=XX+XX 7044 IFE XX, 7045 7046 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 7047 000000 IFG XX, 7048 IFL XX, 7049 MOP1 (\ADR,1,-1,XX,V1,XX)^ 7050 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 7051 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7052 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 7053 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7054 7055 000001 F33050: AA1=1 ;INITIAL C(AC) 7056 035061 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 7057 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7058 035062 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7059 000001 000000 AEE=XX ;INITIAL C(E) 7060 035063 200 04 0 00 044022 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 7061 035064 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7062 000000 AR1=V1 ;EXPECTED RESULT IN AC 7063 035065 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7064 035066 003 06 0 00 033051 ER3 AC,33051 ;HIGH PRODUCT FAILED 7065 000001 000000 AR2=XX ;EXPECTED RESULT IN AC+1 7066 035067 312 07 0 00 044022 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-11 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0148 7067 035070 004 07 0 00 033052 ER4 AC+1,33052 ;LOW PRODUCT FAILED 7068 000001 000000 AEE=XX ;INITIAL C(E) 7069 035071 312 04 0 00 044022 CAME E,[XX] ;WAS C(E) CLOBBERED? 7070 035072 005 04 0 00 033053 ER5 E,33053 ;C(E) WAS CLOBBERED 7071 035073 321 10 0 00 035061 JUMPL AC+2,F33050 ;LOOP ON ERROR SWITCH^ 7072 7073 003306 ADR=ADR+1 7074 000002 000000 XX=XX+XX 7075 IFE XX, 7076 7077 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 7078 000000 IFG XX, 7079 IFL XX, 7080 MOP1 (\ADR,1,-1,XX,V1,XX)^ 7081 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 7082 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7083 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 7084 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7085 7086 000001 F33060: AA1=1 ;INITIAL C(AC) 7087 035074 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 7088 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7089 035075 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7090 000002 000000 AEE=XX ;INITIAL C(E) 7091 035076 200 04 0 00 044023 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 7092 035077 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7093 000000 AR1=V1 ;EXPECTED RESULT IN AC 7094 035100 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7095 035101 003 06 0 00 033061 ER3 AC,33061 ;HIGH PRODUCT FAILED 7096 000002 000000 AR2=XX ;EXPECTED RESULT IN AC+1 7097 035102 312 07 0 00 044023 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7098 035103 004 07 0 00 033062 ER4 AC+1,33062 ;LOW PRODUCT FAILED 7099 000002 000000 AEE=XX ;INITIAL C(E) 7100 035104 312 04 0 00 044023 CAME E,[XX] ;WAS C(E) CLOBBERED? 7101 035105 005 04 0 00 033063 ER5 E,33063 ;C(E) WAS CLOBBERED 7102 035106 321 10 0 00 035074 JUMPL AC+2,F33060 ;LOOP ON ERROR SWITCH^ 7103 7104 003307 ADR=ADR+1 7105 000004 000000 XX=XX+XX 7106 IFE XX, 7107 7108 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 7109 000000 IFG XX, 7110 IFL XX, 7111 MOP1 (\ADR,1,-1,XX,V1,XX)^ 7112 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 7113 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7114 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 7115 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7116 7117 000001 F33070: AA1=1 ;INITIAL C(AC) 7118 035107 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 7119 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7120 035110 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7121 000004 000000 AEE=XX ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-12 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0149 7122 035111 200 04 0 00 044024 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 7123 035112 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7124 000000 AR1=V1 ;EXPECTED RESULT IN AC 7125 035113 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7126 035114 003 06 0 00 033071 ER3 AC,33071 ;HIGH PRODUCT FAILED 7127 000004 000000 AR2=XX ;EXPECTED RESULT IN AC+1 7128 035115 312 07 0 00 044024 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7129 035116 004 07 0 00 033072 ER4 AC+1,33072 ;LOW PRODUCT FAILED 7130 000004 000000 AEE=XX ;INITIAL C(E) 7131 035117 312 04 0 00 044024 CAME E,[XX] ;WAS C(E) CLOBBERED? 7132 035120 005 04 0 00 033073 ER5 E,33073 ;C(E) WAS CLOBBERED 7133 035121 321 10 0 00 035107 JUMPL AC+2,F33070 ;LOOP ON ERROR SWITCH^ 7134 7135 003310 ADR=ADR+1 7136 000010 000000 XX=XX+XX 7137 IFE XX, 7138 7139 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 7140 000000 IFG XX, 7141 IFL XX, 7142 MOP1 (\ADR,1,-1,XX,V1,XX)^ 7143 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 7144 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7145 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 7146 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7147 7148 000001 F33100: AA1=1 ;INITIAL C(AC) 7149 035122 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 7150 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7151 035123 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7152 000010 000000 AEE=XX ;INITIAL C(E) 7153 035124 200 04 0 00 044025 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 7154 035125 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7155 000000 AR1=V1 ;EXPECTED RESULT IN AC 7156 035126 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7157 035127 003 06 0 00 033101 ER3 AC,33101 ;HIGH PRODUCT FAILED 7158 000010 000000 AR2=XX ;EXPECTED RESULT IN AC+1 7159 035130 312 07 0 00 044025 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7160 035131 004 07 0 00 033102 ER4 AC+1,33102 ;LOW PRODUCT FAILED 7161 000010 000000 AEE=XX ;INITIAL C(E) 7162 035132 312 04 0 00 044025 CAME E,[XX] ;WAS C(E) CLOBBERED? 7163 035133 005 04 0 00 033103 ER5 E,33103 ;C(E) WAS CLOBBERED 7164 035134 321 10 0 00 035122 JUMPL AC+2,F33100 ;LOOP ON ERROR SWITCH^ 7165 7166 003311 ADR=ADR+1 7167 000020 000000 XX=XX+XX 7168 IFE XX, 7169 7170 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 7171 000000 IFG XX, 7172 IFL XX, 7173 MOP1 (\ADR,1,-1,XX,V1,XX)^ 7174 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 7175 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7176 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-13 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0150 7177 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7178 7179 000001 F33110: AA1=1 ;INITIAL C(AC) 7180 035135 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 7181 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7182 035136 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7183 000020 000000 AEE=XX ;INITIAL C(E) 7184 035137 200 04 0 00 044026 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 7185 035140 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7186 000000 AR1=V1 ;EXPECTED RESULT IN AC 7187 035141 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7188 035142 003 06 0 00 033111 ER3 AC,33111 ;HIGH PRODUCT FAILED 7189 000020 000000 AR2=XX ;EXPECTED RESULT IN AC+1 7190 035143 312 07 0 00 044026 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7191 035144 004 07 0 00 033112 ER4 AC+1,33112 ;LOW PRODUCT FAILED 7192 000020 000000 AEE=XX ;INITIAL C(E) 7193 035145 312 04 0 00 044026 CAME E,[XX] ;WAS C(E) CLOBBERED? 7194 035146 005 04 0 00 033113 ER5 E,33113 ;C(E) WAS CLOBBERED 7195 035147 321 10 0 00 035135 JUMPL AC+2,F33110 ;LOOP ON ERROR SWITCH^ 7196 7197 003312 ADR=ADR+1 7198 000040 000000 XX=XX+XX 7199 IFE XX, 7200 7201 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 7202 000000 IFG XX, 7203 IFL XX, 7204 MOP1 (\ADR,1,-1,XX,V1,XX)^ 7205 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 7206 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7207 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 7208 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7209 7210 000001 F33120: AA1=1 ;INITIAL C(AC) 7211 035150 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 7212 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7213 035151 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7214 000040 000000 AEE=XX ;INITIAL C(E) 7215 035152 200 04 0 00 044027 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 7216 035153 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7217 000000 AR1=V1 ;EXPECTED RESULT IN AC 7218 035154 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7219 035155 003 06 0 00 033121 ER3 AC,33121 ;HIGH PRODUCT FAILED 7220 000040 000000 AR2=XX ;EXPECTED RESULT IN AC+1 7221 035156 312 07 0 00 044027 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7222 035157 004 07 0 00 033122 ER4 AC+1,33122 ;LOW PRODUCT FAILED 7223 000040 000000 AEE=XX ;INITIAL C(E) 7224 035160 312 04 0 00 044027 CAME E,[XX] ;WAS C(E) CLOBBERED? 7225 035161 005 04 0 00 033123 ER5 E,33123 ;C(E) WAS CLOBBERED 7226 035162 321 10 0 00 035150 JUMPL AC+2,F33120 ;LOOP ON ERROR SWITCH^ 7227 7228 003313 ADR=ADR+1 7229 000100 000000 XX=XX+XX 7230 IFE XX, 7231 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-14 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0151 7232 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 7233 000000 IFG XX, 7234 IFL XX, 7235 MOP1 (\ADR,1,-1,XX,V1,XX)^ 7236 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 7237 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7238 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 7239 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7240 7241 000001 F33130: AA1=1 ;INITIAL C(AC) 7242 035163 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 7243 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7244 035164 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7245 000100 000000 AEE=XX ;INITIAL C(E) 7246 035165 200 04 0 00 044030 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 7247 035166 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7248 000000 AR1=V1 ;EXPECTED RESULT IN AC 7249 035167 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7250 035170 003 06 0 00 033131 ER3 AC,33131 ;HIGH PRODUCT FAILED 7251 000100 000000 AR2=XX ;EXPECTED RESULT IN AC+1 7252 035171 312 07 0 00 044030 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7253 035172 004 07 0 00 033132 ER4 AC+1,33132 ;LOW PRODUCT FAILED 7254 000100 000000 AEE=XX ;INITIAL C(E) 7255 035173 312 04 0 00 044030 CAME E,[XX] ;WAS C(E) CLOBBERED? 7256 035174 005 04 0 00 033133 ER5 E,33133 ;C(E) WAS CLOBBERED 7257 035175 321 10 0 00 035163 JUMPL AC+2,F33130 ;LOOP ON ERROR SWITCH^ 7258 7259 003314 ADR=ADR+1 7260 000200 000000 XX=XX+XX 7261 IFE XX, 7262 7263 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 7264 000000 IFG XX, 7265 IFL XX, 7266 MOP1 (\ADR,1,-1,XX,V1,XX)^ 7267 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 7268 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7269 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 7270 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7271 7272 000001 F33140: AA1=1 ;INITIAL C(AC) 7273 035176 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 7274 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7275 035177 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7276 000200 000000 AEE=XX ;INITIAL C(E) 7277 035200 200 04 0 00 044031 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 7278 035201 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7279 000000 AR1=V1 ;EXPECTED RESULT IN AC 7280 035202 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7281 035203 003 06 0 00 033141 ER3 AC,33141 ;HIGH PRODUCT FAILED 7282 000200 000000 AR2=XX ;EXPECTED RESULT IN AC+1 7283 035204 312 07 0 00 044031 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7284 035205 004 07 0 00 033142 ER4 AC+1,33142 ;LOW PRODUCT FAILED 7285 000200 000000 AEE=XX ;INITIAL C(E) 7286 035206 312 04 0 00 044031 CAME E,[XX] ;WAS C(E) CLOBBERED? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-15 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0152 7287 035207 005 04 0 00 033143 ER5 E,33143 ;C(E) WAS CLOBBERED 7288 035210 321 10 0 00 035176 JUMPL AC+2,F33140 ;LOOP ON ERROR SWITCH^ 7289 7290 003315 ADR=ADR+1 7291 000400 000000 XX=XX+XX 7292 IFE XX, 7293 7294 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 7295 000000 IFG XX, 7296 IFL XX, 7297 MOP1 (\ADR,1,-1,XX,V1,XX)^ 7298 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 7299 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7300 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 7301 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7302 7303 000001 F33150: AA1=1 ;INITIAL C(AC) 7304 035211 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 7305 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7306 035212 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7307 000400 000000 AEE=XX ;INITIAL C(E) 7308 035213 200 04 0 00 044032 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 7309 035214 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7310 000000 AR1=V1 ;EXPECTED RESULT IN AC 7311 035215 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7312 035216 003 06 0 00 033151 ER3 AC,33151 ;HIGH PRODUCT FAILED 7313 000400 000000 AR2=XX ;EXPECTED RESULT IN AC+1 7314 035217 312 07 0 00 044032 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7315 035220 004 07 0 00 033152 ER4 AC+1,33152 ;LOW PRODUCT FAILED 7316 000400 000000 AEE=XX ;INITIAL C(E) 7317 035221 312 04 0 00 044032 CAME E,[XX] ;WAS C(E) CLOBBERED? 7318 035222 005 04 0 00 033153 ER5 E,33153 ;C(E) WAS CLOBBERED 7319 035223 321 10 0 00 035211 JUMPL AC+2,F33150 ;LOOP ON ERROR SWITCH^ 7320 7321 003316 ADR=ADR+1 7322 001000 000000 XX=XX+XX 7323 IFE XX, 7324 7325 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 7326 000000 IFG XX, 7327 IFL XX, 7328 MOP1 (\ADR,1,-1,XX,V1,XX)^ 7329 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 7330 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7331 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 7332 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7333 7334 000001 F33160: AA1=1 ;INITIAL C(AC) 7335 035224 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 7336 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7337 035225 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7338 001000 000000 AEE=XX ;INITIAL C(E) 7339 035226 200 04 0 00 044033 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 7340 035227 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7341 000000 AR1=V1 ;EXPECTED RESULT IN AC DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-16 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0153 7342 035230 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7343 035231 003 06 0 00 033161 ER3 AC,33161 ;HIGH PRODUCT FAILED 7344 001000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 7345 035232 312 07 0 00 044033 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7346 035233 004 07 0 00 033162 ER4 AC+1,33162 ;LOW PRODUCT FAILED 7347 001000 000000 AEE=XX ;INITIAL C(E) 7348 035234 312 04 0 00 044033 CAME E,[XX] ;WAS C(E) CLOBBERED? 7349 035235 005 04 0 00 033163 ER5 E,33163 ;C(E) WAS CLOBBERED 7350 035236 321 10 0 00 035224 JUMPL AC+2,F33160 ;LOOP ON ERROR SWITCH^ 7351 7352 003317 ADR=ADR+1 7353 002000 000000 XX=XX+XX 7354 IFE XX, 7355 7356 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 7357 000000 IFG XX, 7358 IFL XX, 7359 MOP1 (\ADR,1,-1,XX,V1,XX)^ 7360 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 7361 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7362 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 7363 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7364 7365 000001 F33170: AA1=1 ;INITIAL C(AC) 7366 035237 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 7367 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7368 035240 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7369 002000 000000 AEE=XX ;INITIAL C(E) 7370 035241 200 04 0 00 044034 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 7371 035242 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7372 000000 AR1=V1 ;EXPECTED RESULT IN AC 7373 035243 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7374 035244 003 06 0 00 033171 ER3 AC,33171 ;HIGH PRODUCT FAILED 7375 002000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 7376 035245 312 07 0 00 044034 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7377 035246 004 07 0 00 033172 ER4 AC+1,33172 ;LOW PRODUCT FAILED 7378 002000 000000 AEE=XX ;INITIAL C(E) 7379 035247 312 04 0 00 044034 CAME E,[XX] ;WAS C(E) CLOBBERED? 7380 035250 005 04 0 00 033173 ER5 E,33173 ;C(E) WAS CLOBBERED 7381 035251 321 10 0 00 035237 JUMPL AC+2,F33170 ;LOOP ON ERROR SWITCH^ 7382 7383 003320 ADR=ADR+1 7384 004000 000000 XX=XX+XX 7385 IFE XX, 7386 7387 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 7388 000000 IFG XX, 7389 IFL XX, 7390 MOP1 (\ADR,1,-1,XX,V1,XX)^ 7391 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 7392 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7393 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 7394 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7395 7396 000001 F33200: AA1=1 ;INITIAL C(AC) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-17 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0154 7397 035252 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 7398 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7399 035253 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7400 004000 000000 AEE=XX ;INITIAL C(E) 7401 035254 200 04 0 00 044035 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 7402 035255 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7403 000000 AR1=V1 ;EXPECTED RESULT IN AC 7404 035256 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7405 035257 003 06 0 00 033201 ER3 AC,33201 ;HIGH PRODUCT FAILED 7406 004000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 7407 035260 312 07 0 00 044035 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7408 035261 004 07 0 00 033202 ER4 AC+1,33202 ;LOW PRODUCT FAILED 7409 004000 000000 AEE=XX ;INITIAL C(E) 7410 035262 312 04 0 00 044035 CAME E,[XX] ;WAS C(E) CLOBBERED? 7411 035263 005 04 0 00 033203 ER5 E,33203 ;C(E) WAS CLOBBERED 7412 035264 321 10 0 00 035252 JUMPL AC+2,F33200 ;LOOP ON ERROR SWITCH^ 7413 7414 003321 ADR=ADR+1 7415 010000 000000 XX=XX+XX 7416 IFE XX, 7417 7418 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 7419 000000 IFG XX, 7420 IFL XX, 7421 MOP1 (\ADR,1,-1,XX,V1,XX)^ 7422 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 7423 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7424 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 7425 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7426 7427 000001 F33210: AA1=1 ;INITIAL C(AC) 7428 035265 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 7429 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7430 035266 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7431 010000 000000 AEE=XX ;INITIAL C(E) 7432 035267 200 04 0 00 044036 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 7433 035270 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7434 000000 AR1=V1 ;EXPECTED RESULT IN AC 7435 035271 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7436 035272 003 06 0 00 033211 ER3 AC,33211 ;HIGH PRODUCT FAILED 7437 010000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 7438 035273 312 07 0 00 044036 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7439 035274 004 07 0 00 033212 ER4 AC+1,33212 ;LOW PRODUCT FAILED 7440 010000 000000 AEE=XX ;INITIAL C(E) 7441 035275 312 04 0 00 044036 CAME E,[XX] ;WAS C(E) CLOBBERED? 7442 035276 005 04 0 00 033213 ER5 E,33213 ;C(E) WAS CLOBBERED 7443 035277 321 10 0 00 035265 JUMPL AC+2,F33210 ;LOOP ON ERROR SWITCH^ 7444 7445 003322 ADR=ADR+1 7446 020000 000000 XX=XX+XX 7447 IFE XX, 7448 7449 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 7450 000000 IFG XX, 7451 IFL XX, DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-18 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0155 7452 MOP1 (\ADR,1,-1,XX,V1,XX)^ 7453 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 7454 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7455 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 7456 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7457 7458 000001 F33220: AA1=1 ;INITIAL C(AC) 7459 035300 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 7460 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7461 035301 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7462 020000 000000 AEE=XX ;INITIAL C(E) 7463 035302 200 04 0 00 044037 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 7464 035303 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7465 000000 AR1=V1 ;EXPECTED RESULT IN AC 7466 035304 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7467 035305 003 06 0 00 033221 ER3 AC,33221 ;HIGH PRODUCT FAILED 7468 020000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 7469 035306 312 07 0 00 044037 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7470 035307 004 07 0 00 033222 ER4 AC+1,33222 ;LOW PRODUCT FAILED 7471 020000 000000 AEE=XX ;INITIAL C(E) 7472 035310 312 04 0 00 044037 CAME E,[XX] ;WAS C(E) CLOBBERED? 7473 035311 005 04 0 00 033223 ER5 E,33223 ;C(E) WAS CLOBBERED 7474 035312 321 10 0 00 035300 JUMPL AC+2,F33220 ;LOOP ON ERROR SWITCH^ 7475 7476 003323 ADR=ADR+1 7477 040000 000000 XX=XX+XX 7478 IFE XX, 7479 7480 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 7481 000000 IFG XX, 7482 IFL XX, 7483 MOP1 (\ADR,1,-1,XX,V1,XX)^ 7484 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 7485 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7486 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 7487 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7488 7489 000001 F33230: AA1=1 ;INITIAL C(AC) 7490 035313 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 7491 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7492 035314 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7493 040000 000000 AEE=XX ;INITIAL C(E) 7494 035315 200 04 0 00 044040 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 7495 035316 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7496 000000 AR1=V1 ;EXPECTED RESULT IN AC 7497 035317 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7498 035320 003 06 0 00 033231 ER3 AC,33231 ;HIGH PRODUCT FAILED 7499 040000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 7500 035321 312 07 0 00 044040 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7501 035322 004 07 0 00 033232 ER4 AC+1,33232 ;LOW PRODUCT FAILED 7502 040000 000000 AEE=XX ;INITIAL C(E) 7503 035323 312 04 0 00 044040 CAME E,[XX] ;WAS C(E) CLOBBERED? 7504 035324 005 04 0 00 033233 ER5 E,33233 ;C(E) WAS CLOBBERED 7505 035325 321 10 0 00 035313 JUMPL AC+2,F33230 ;LOOP ON ERROR SWITCH^ 7506 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-19 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0156 7507 003324 ADR=ADR+1 7508 100000 000000 XX=XX+XX 7509 IFE XX, 7510 7511 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 7512 000000 IFG XX, 7513 IFL XX, 7514 MOP1 (\ADR,1,-1,XX,V1,XX)^ 7515 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 7516 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7517 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 7518 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7519 7520 000001 F33240: AA1=1 ;INITIAL C(AC) 7521 035326 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 7522 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7523 035327 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7524 100000 000000 AEE=XX ;INITIAL C(E) 7525 035330 200 04 0 00 044041 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 7526 035331 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7527 000000 AR1=V1 ;EXPECTED RESULT IN AC 7528 035332 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7529 035333 003 06 0 00 033241 ER3 AC,33241 ;HIGH PRODUCT FAILED 7530 100000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 7531 035334 312 07 0 00 044041 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7532 035335 004 07 0 00 033242 ER4 AC+1,33242 ;LOW PRODUCT FAILED 7533 100000 000000 AEE=XX ;INITIAL C(E) 7534 035336 312 04 0 00 044041 CAME E,[XX] ;WAS C(E) CLOBBERED? 7535 035337 005 04 0 00 033243 ER5 E,33243 ;C(E) WAS CLOBBERED 7536 035340 321 10 0 00 035326 JUMPL AC+2,F33240 ;LOOP ON ERROR SWITCH^ 7537 7538 003325 ADR=ADR+1 7539 200000 000000 XX=XX+XX 7540 IFE XX, 7541 7542 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 7543 000000 IFG XX, 7544 IFL XX, 7545 MOP1 (\ADR,1,-1,XX,V1,XX)^ 7546 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 7547 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7548 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 7549 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7550 7551 000001 F33250: AA1=1 ;INITIAL C(AC) 7552 035341 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 7553 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7554 035342 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7555 200000 000000 AEE=XX ;INITIAL C(E) 7556 035343 200 04 0 00 044042 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 7557 035344 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7558 000000 AR1=V1 ;EXPECTED RESULT IN AC 7559 035345 312 06 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7560 035346 003 06 0 00 033251 ER3 AC,33251 ;HIGH PRODUCT FAILED 7561 200000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 10-20 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0157 7562 035347 312 07 0 00 044042 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7563 035350 004 07 0 00 033252 ER4 AC+1,33252 ;LOW PRODUCT FAILED 7564 200000 000000 AEE=XX ;INITIAL C(E) 7565 035351 312 04 0 00 044042 CAME E,[XX] ;WAS C(E) CLOBBERED? 7566 035352 005 04 0 00 033253 ER5 E,33253 ;C(E) WAS CLOBBERED 7567 035353 321 10 0 00 035341 JUMPL AC+2,F33250 ;LOOP ON ERROR SWITCH^ 7568 7569 003326 ADR=ADR+1 7570 400000 000000 XX=XX+XX 7571 IFE XX, 7572 7573 ;MULTIPLY A RIPPLED 1 BY 1 TO GET A PRODUCT OF RIPPLED 1 7574 IFG XX, 7575 777777 777777 IFL XX, 7576 MOP1 (\ADR,1,-1,XX,V1,XX)^ 7577 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[-1] AND 7578 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7579 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 7580 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7581 7582 000001 F33260: AA1=1 ;INITIAL C(AC) 7583 035354 200 06 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 7584 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7585 035355 200 07 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7586 400000 000000 AEE=XX ;INITIAL C(E) 7587 035356 200 04 0 00 044043 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 7588 035357 224 06 0 00 000004 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7589 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 7590 035360 312 06 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7591 035361 003 06 0 00 033261 ER3 AC,33261 ;HIGH PRODUCT FAILED 7592 400000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 7593 035362 312 07 0 00 044043 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7594 035363 004 07 0 00 033262 ER4 AC+1,33262 ;LOW PRODUCT FAILED 7595 400000 000000 AEE=XX ;INITIAL C(E) 7596 035364 312 04 0 00 044043 CAME E,[XX] ;WAS C(E) CLOBBERED? 7597 035365 005 04 0 00 033263 ER5 E,33263 ;C(E) WAS CLOBBERED 7598 035366 321 10 0 00 035354 JUMPL AC+2,F33260 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0158 7599 000005 AC=5 7600 000003 E=&17 7601 SAVEAC (1,1)^ 7602 035367 201 07 0 00 035367 MOVEI AC+2,. ;SAVE TEST PC 7603 035370 202 07 0 00 030051 MOVEM AC+2,TESTPC 7604 035371 201 07 0 00 000007 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH 7605 035372 202 07 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ 7606 000000 XX=0 7607 7608 REPEAT ^D35,< ;LAST CASE IS DIFFERENT 7609 ADR=ADR+1 7610 XX=XX+XX 7611 IFE XX, 7612 7613 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 7614 IFG XX, 7615 IFL XX, 7616 MOP1 (\ADR,XX,-1,1,V1,XX)> 7617 ;LAST CASE IS DIFFERENT 7618 003327 ADR=ADR+1 7619 000000 XX=XX+XX 7620 000001 IFE XX, 7621 7622 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 7623 000000 IFG XX, 7624 IFL XX, 7625 MOP1 (\ADR,XX,-1,1,V1,XX)^ 7626 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 7627 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7628 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 7629 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7630 7631 000001 F33270: AA1=XX ;INITIAL C(AC) 7632 035373 200 05 0 00 044000 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 7633 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7634 035374 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7635 000001 AEE=1 ;INITIAL C(E) 7636 035375 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 7637 035376 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7638 000000 AR1=V1 ;EXPECTED RESULT IN AC 7639 035377 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7640 035400 003 05 0 00 033271 ER3 AC,33271 ;HIGH PRODUCT FAILED 7641 000001 AR2=XX ;EXPECTED RESULT IN AC+1 7642 035401 312 06 0 00 044000 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7643 035402 004 06 0 00 033272 ER4 AC+1,33272 ;LOW PRODUCT FAILED 7644 000001 AEE=1 ;INITIAL C(E) 7645 035403 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 7646 035404 005 03 0 00 033273 ER5 E,33273 ;C(E) WAS CLOBBERED 7647 035405 321 07 0 00 035373 JUMPL AC+2,F33270 ;LOOP ON ERROR SWITCH^ 7648 ;LAST CASE IS DIFFERENT 7649 003330 ADR=ADR+1 7650 000002 XX=XX+XX 7651 IFE XX, 7652 7653 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-1 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0159 7654 000000 IFG XX, 7655 IFL XX, 7656 MOP1 (\ADR,XX,-1,1,V1,XX)^ 7657 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 7658 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7659 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 7660 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7661 7662 000002 F33300: AA1=XX ;INITIAL C(AC) 7663 035406 200 05 0 00 044001 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 7664 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7665 035407 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7666 000001 AEE=1 ;INITIAL C(E) 7667 035410 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 7668 035411 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7669 000000 AR1=V1 ;EXPECTED RESULT IN AC 7670 035412 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7671 035413 003 05 0 00 033301 ER3 AC,33301 ;HIGH PRODUCT FAILED 7672 000002 AR2=XX ;EXPECTED RESULT IN AC+1 7673 035414 312 06 0 00 044001 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7674 035415 004 06 0 00 033302 ER4 AC+1,33302 ;LOW PRODUCT FAILED 7675 000001 AEE=1 ;INITIAL C(E) 7676 035416 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 7677 035417 005 03 0 00 033303 ER5 E,33303 ;C(E) WAS CLOBBERED 7678 035420 321 07 0 00 035406 JUMPL AC+2,F33300 ;LOOP ON ERROR SWITCH^ 7679 ;LAST CASE IS DIFFERENT 7680 003331 ADR=ADR+1 7681 000004 XX=XX+XX 7682 IFE XX, 7683 7684 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 7685 000000 IFG XX, 7686 IFL XX, 7687 MOP1 (\ADR,XX,-1,1,V1,XX)^ 7688 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 7689 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7690 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 7691 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7692 7693 000004 F33310: AA1=XX ;INITIAL C(AC) 7694 035421 200 05 0 00 044002 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 7695 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7696 035422 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7697 000001 AEE=1 ;INITIAL C(E) 7698 035423 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 7699 035424 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7700 000000 AR1=V1 ;EXPECTED RESULT IN AC 7701 035425 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7702 035426 003 05 0 00 033311 ER3 AC,33311 ;HIGH PRODUCT FAILED 7703 000004 AR2=XX ;EXPECTED RESULT IN AC+1 7704 035427 312 06 0 00 044002 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7705 035430 004 06 0 00 033312 ER4 AC+1,33312 ;LOW PRODUCT FAILED 7706 000001 AEE=1 ;INITIAL C(E) 7707 035431 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 7708 035432 005 03 0 00 033313 ER5 E,33313 ;C(E) WAS CLOBBERED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-2 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0160 7709 035433 321 07 0 00 035421 JUMPL AC+2,F33310 ;LOOP ON ERROR SWITCH^ 7710 ;LAST CASE IS DIFFERENT 7711 003332 ADR=ADR+1 7712 000010 XX=XX+XX 7713 IFE XX, 7714 7715 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 7716 000000 IFG XX, 7717 IFL XX, 7718 MOP1 (\ADR,XX,-1,1,V1,XX)^ 7719 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 7720 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7721 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 7722 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7723 7724 000010 F33320: AA1=XX ;INITIAL C(AC) 7725 035434 200 05 0 00 044003 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 7726 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7727 035435 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7728 000001 AEE=1 ;INITIAL C(E) 7729 035436 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 7730 035437 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7731 000000 AR1=V1 ;EXPECTED RESULT IN AC 7732 035440 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7733 035441 003 05 0 00 033321 ER3 AC,33321 ;HIGH PRODUCT FAILED 7734 000010 AR2=XX ;EXPECTED RESULT IN AC+1 7735 035442 312 06 0 00 044003 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7736 035443 004 06 0 00 033322 ER4 AC+1,33322 ;LOW PRODUCT FAILED 7737 000001 AEE=1 ;INITIAL C(E) 7738 035444 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 7739 035445 005 03 0 00 033323 ER5 E,33323 ;C(E) WAS CLOBBERED 7740 035446 321 07 0 00 035434 JUMPL AC+2,F33320 ;LOOP ON ERROR SWITCH^ 7741 ;LAST CASE IS DIFFERENT 7742 003333 ADR=ADR+1 7743 000020 XX=XX+XX 7744 IFE XX, 7745 7746 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 7747 000000 IFG XX, 7748 IFL XX, 7749 MOP1 (\ADR,XX,-1,1,V1,XX)^ 7750 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 7751 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7752 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 7753 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7754 7755 000020 F33330: AA1=XX ;INITIAL C(AC) 7756 035447 200 05 0 00 044004 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 7757 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7758 035450 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7759 000001 AEE=1 ;INITIAL C(E) 7760 035451 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 7761 035452 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7762 000000 AR1=V1 ;EXPECTED RESULT IN AC 7763 035453 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-3 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0161 7764 035454 003 05 0 00 033331 ER3 AC,33331 ;HIGH PRODUCT FAILED 7765 000020 AR2=XX ;EXPECTED RESULT IN AC+1 7766 035455 312 06 0 00 044004 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7767 035456 004 06 0 00 033332 ER4 AC+1,33332 ;LOW PRODUCT FAILED 7768 000001 AEE=1 ;INITIAL C(E) 7769 035457 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 7770 035460 005 03 0 00 033333 ER5 E,33333 ;C(E) WAS CLOBBERED 7771 035461 321 07 0 00 035447 JUMPL AC+2,F33330 ;LOOP ON ERROR SWITCH^ 7772 ;LAST CASE IS DIFFERENT 7773 003334 ADR=ADR+1 7774 000040 XX=XX+XX 7775 IFE XX, 7776 7777 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 7778 000000 IFG XX, 7779 IFL XX, 7780 MOP1 (\ADR,XX,-1,1,V1,XX)^ 7781 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 7782 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7783 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 7784 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7785 7786 000040 F33340: AA1=XX ;INITIAL C(AC) 7787 035462 200 05 0 00 044005 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 7788 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7789 035463 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7790 000001 AEE=1 ;INITIAL C(E) 7791 035464 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 7792 035465 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7793 000000 AR1=V1 ;EXPECTED RESULT IN AC 7794 035466 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7795 035467 003 05 0 00 033341 ER3 AC,33341 ;HIGH PRODUCT FAILED 7796 000040 AR2=XX ;EXPECTED RESULT IN AC+1 7797 035470 312 06 0 00 044005 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7798 035471 004 06 0 00 033342 ER4 AC+1,33342 ;LOW PRODUCT FAILED 7799 000001 AEE=1 ;INITIAL C(E) 7800 035472 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 7801 035473 005 03 0 00 033343 ER5 E,33343 ;C(E) WAS CLOBBERED 7802 035474 321 07 0 00 035462 JUMPL AC+2,F33340 ;LOOP ON ERROR SWITCH^ 7803 ;LAST CASE IS DIFFERENT 7804 003335 ADR=ADR+1 7805 000100 XX=XX+XX 7806 IFE XX, 7807 7808 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 7809 000000 IFG XX, 7810 IFL XX, 7811 MOP1 (\ADR,XX,-1,1,V1,XX)^ 7812 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 7813 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7814 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 7815 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7816 7817 000100 F33350: AA1=XX ;INITIAL C(AC) 7818 035475 200 05 0 00 044006 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-4 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0162 7819 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7820 035476 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7821 000001 AEE=1 ;INITIAL C(E) 7822 035477 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 7823 035500 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7824 000000 AR1=V1 ;EXPECTED RESULT IN AC 7825 035501 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7826 035502 003 05 0 00 033351 ER3 AC,33351 ;HIGH PRODUCT FAILED 7827 000100 AR2=XX ;EXPECTED RESULT IN AC+1 7828 035503 312 06 0 00 044006 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7829 035504 004 06 0 00 033352 ER4 AC+1,33352 ;LOW PRODUCT FAILED 7830 000001 AEE=1 ;INITIAL C(E) 7831 035505 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 7832 035506 005 03 0 00 033353 ER5 E,33353 ;C(E) WAS CLOBBERED 7833 035507 321 07 0 00 035475 JUMPL AC+2,F33350 ;LOOP ON ERROR SWITCH^ 7834 ;LAST CASE IS DIFFERENT 7835 003336 ADR=ADR+1 7836 000200 XX=XX+XX 7837 IFE XX, 7838 7839 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 7840 000000 IFG XX, 7841 IFL XX, 7842 MOP1 (\ADR,XX,-1,1,V1,XX)^ 7843 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 7844 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7845 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 7846 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7847 7848 000200 F33360: AA1=XX ;INITIAL C(AC) 7849 035510 200 05 0 00 044007 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 7850 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7851 035511 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7852 000001 AEE=1 ;INITIAL C(E) 7853 035512 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 7854 035513 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7855 000000 AR1=V1 ;EXPECTED RESULT IN AC 7856 035514 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7857 035515 003 05 0 00 033361 ER3 AC,33361 ;HIGH PRODUCT FAILED 7858 000200 AR2=XX ;EXPECTED RESULT IN AC+1 7859 035516 312 06 0 00 044007 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7860 035517 004 06 0 00 033362 ER4 AC+1,33362 ;LOW PRODUCT FAILED 7861 000001 AEE=1 ;INITIAL C(E) 7862 035520 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 7863 035521 005 03 0 00 033363 ER5 E,33363 ;C(E) WAS CLOBBERED 7864 035522 321 07 0 00 035510 JUMPL AC+2,F33360 ;LOOP ON ERROR SWITCH^ 7865 ;LAST CASE IS DIFFERENT 7866 003337 ADR=ADR+1 7867 000400 XX=XX+XX 7868 IFE XX, 7869 7870 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 7871 000000 IFG XX, 7872 IFL XX, 7873 MOP1 (\ADR,XX,-1,1,V1,XX)^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-5 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0163 7874 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 7875 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7876 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 7877 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7878 7879 000400 F33370: AA1=XX ;INITIAL C(AC) 7880 035523 200 05 0 00 044010 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 7881 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7882 035524 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7883 000001 AEE=1 ;INITIAL C(E) 7884 035525 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 7885 035526 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7886 000000 AR1=V1 ;EXPECTED RESULT IN AC 7887 035527 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7888 035530 003 05 0 00 033371 ER3 AC,33371 ;HIGH PRODUCT FAILED 7889 000400 AR2=XX ;EXPECTED RESULT IN AC+1 7890 035531 312 06 0 00 044010 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7891 035532 004 06 0 00 033372 ER4 AC+1,33372 ;LOW PRODUCT FAILED 7892 000001 AEE=1 ;INITIAL C(E) 7893 035533 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 7894 035534 005 03 0 00 033373 ER5 E,33373 ;C(E) WAS CLOBBERED 7895 035535 321 07 0 00 035523 JUMPL AC+2,F33370 ;LOOP ON ERROR SWITCH^ 7896 ;LAST CASE IS DIFFERENT 7897 003340 ADR=ADR+1 7898 001000 XX=XX+XX 7899 IFE XX, 7900 7901 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 7902 000000 IFG XX, 7903 IFL XX, 7904 MOP1 (\ADR,XX,-1,1,V1,XX)^ 7905 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 7906 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7907 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 7908 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7909 7910 001000 F33400: AA1=XX ;INITIAL C(AC) 7911 035536 200 05 0 00 044011 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 7912 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7913 035537 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7914 000001 AEE=1 ;INITIAL C(E) 7915 035540 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 7916 035541 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7917 000000 AR1=V1 ;EXPECTED RESULT IN AC 7918 035542 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7919 035543 003 05 0 00 033401 ER3 AC,33401 ;HIGH PRODUCT FAILED 7920 001000 AR2=XX ;EXPECTED RESULT IN AC+1 7921 035544 312 06 0 00 044011 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7922 035545 004 06 0 00 033402 ER4 AC+1,33402 ;LOW PRODUCT FAILED 7923 000001 AEE=1 ;INITIAL C(E) 7924 035546 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 7925 035547 005 03 0 00 033403 ER5 E,33403 ;C(E) WAS CLOBBERED 7926 035550 321 07 0 00 035536 JUMPL AC+2,F33400 ;LOOP ON ERROR SWITCH^ 7927 ;LAST CASE IS DIFFERENT 7928 003341 ADR=ADR+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-6 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0164 7929 002000 XX=XX+XX 7930 IFE XX, 7931 7932 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 7933 000000 IFG XX, 7934 IFL XX, 7935 MOP1 (\ADR,XX,-1,1,V1,XX)^ 7936 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 7937 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7938 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 7939 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7940 7941 002000 F33410: AA1=XX ;INITIAL C(AC) 7942 035551 200 05 0 00 044012 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 7943 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7944 035552 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7945 000001 AEE=1 ;INITIAL C(E) 7946 035553 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 7947 035554 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7948 000000 AR1=V1 ;EXPECTED RESULT IN AC 7949 035555 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7950 035556 003 05 0 00 033411 ER3 AC,33411 ;HIGH PRODUCT FAILED 7951 002000 AR2=XX ;EXPECTED RESULT IN AC+1 7952 035557 312 06 0 00 044012 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 7953 035560 004 06 0 00 033412 ER4 AC+1,33412 ;LOW PRODUCT FAILED 7954 000001 AEE=1 ;INITIAL C(E) 7955 035561 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 7956 035562 005 03 0 00 033413 ER5 E,33413 ;C(E) WAS CLOBBERED 7957 035563 321 07 0 00 035551 JUMPL AC+2,F33410 ;LOOP ON ERROR SWITCH^ 7958 ;LAST CASE IS DIFFERENT 7959 003342 ADR=ADR+1 7960 004000 XX=XX+XX 7961 IFE XX, 7962 7963 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 7964 000000 IFG XX, 7965 IFL XX, 7966 MOP1 (\ADR,XX,-1,1,V1,XX)^ 7967 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 7968 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 7969 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 7970 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 7971 7972 004000 F33420: AA1=XX ;INITIAL C(AC) 7973 035564 200 05 0 00 044013 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 7974 777777 777777 AA2=-1 ;INITIAL C(AC+1) 7975 035565 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 7976 000001 AEE=1 ;INITIAL C(E) 7977 035566 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 7978 035567 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 7979 000000 AR1=V1 ;EXPECTED RESULT IN AC 7980 035570 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 7981 035571 003 05 0 00 033421 ER3 AC,33421 ;HIGH PRODUCT FAILED 7982 004000 AR2=XX ;EXPECTED RESULT IN AC+1 7983 035572 312 06 0 00 044013 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-7 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0165 7984 035573 004 06 0 00 033422 ER4 AC+1,33422 ;LOW PRODUCT FAILED 7985 000001 AEE=1 ;INITIAL C(E) 7986 035574 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 7987 035575 005 03 0 00 033423 ER5 E,33423 ;C(E) WAS CLOBBERED 7988 035576 321 07 0 00 035564 JUMPL AC+2,F33420 ;LOOP ON ERROR SWITCH^ 7989 ;LAST CASE IS DIFFERENT 7990 003343 ADR=ADR+1 7991 010000 XX=XX+XX 7992 IFE XX, 7993 7994 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 7995 000000 IFG XX, 7996 IFL XX, 7997 MOP1 (\ADR,XX,-1,1,V1,XX)^ 7998 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 7999 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8000 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8001 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8002 8003 010000 F33430: AA1=XX ;INITIAL C(AC) 8004 035577 200 05 0 00 044014 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8005 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8006 035600 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8007 000001 AEE=1 ;INITIAL C(E) 8008 035601 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8009 035602 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8010 000000 AR1=V1 ;EXPECTED RESULT IN AC 8011 035603 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8012 035604 003 05 0 00 033431 ER3 AC,33431 ;HIGH PRODUCT FAILED 8013 010000 AR2=XX ;EXPECTED RESULT IN AC+1 8014 035605 312 06 0 00 044014 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8015 035606 004 06 0 00 033432 ER4 AC+1,33432 ;LOW PRODUCT FAILED 8016 000001 AEE=1 ;INITIAL C(E) 8017 035607 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8018 035610 005 03 0 00 033433 ER5 E,33433 ;C(E) WAS CLOBBERED 8019 035611 321 07 0 00 035577 JUMPL AC+2,F33430 ;LOOP ON ERROR SWITCH^ 8020 ;LAST CASE IS DIFFERENT 8021 003344 ADR=ADR+1 8022 020000 XX=XX+XX 8023 IFE XX, 8024 8025 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8026 000000 IFG XX, 8027 IFL XX, 8028 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8029 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8030 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8031 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8032 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8033 8034 020000 F33440: AA1=XX ;INITIAL C(AC) 8035 035612 200 05 0 00 044015 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8036 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8037 035613 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8038 000001 AEE=1 ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-8 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0166 8039 035614 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8040 035615 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8041 000000 AR1=V1 ;EXPECTED RESULT IN AC 8042 035616 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8043 035617 003 05 0 00 033441 ER3 AC,33441 ;HIGH PRODUCT FAILED 8044 020000 AR2=XX ;EXPECTED RESULT IN AC+1 8045 035620 312 06 0 00 044015 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8046 035621 004 06 0 00 033442 ER4 AC+1,33442 ;LOW PRODUCT FAILED 8047 000001 AEE=1 ;INITIAL C(E) 8048 035622 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8049 035623 005 03 0 00 033443 ER5 E,33443 ;C(E) WAS CLOBBERED 8050 035624 321 07 0 00 035612 JUMPL AC+2,F33440 ;LOOP ON ERROR SWITCH^ 8051 ;LAST CASE IS DIFFERENT 8052 003345 ADR=ADR+1 8053 040000 XX=XX+XX 8054 IFE XX, 8055 8056 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8057 000000 IFG XX, 8058 IFL XX, 8059 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8060 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8061 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8062 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8063 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8064 8065 040000 F33450: AA1=XX ;INITIAL C(AC) 8066 035625 200 05 0 00 044016 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8067 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8068 035626 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8069 000001 AEE=1 ;INITIAL C(E) 8070 035627 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8071 035630 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8072 000000 AR1=V1 ;EXPECTED RESULT IN AC 8073 035631 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8074 035632 003 05 0 00 033451 ER3 AC,33451 ;HIGH PRODUCT FAILED 8075 040000 AR2=XX ;EXPECTED RESULT IN AC+1 8076 035633 312 06 0 00 044016 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8077 035634 004 06 0 00 033452 ER4 AC+1,33452 ;LOW PRODUCT FAILED 8078 000001 AEE=1 ;INITIAL C(E) 8079 035635 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8080 035636 005 03 0 00 033453 ER5 E,33453 ;C(E) WAS CLOBBERED 8081 035637 321 07 0 00 035625 JUMPL AC+2,F33450 ;LOOP ON ERROR SWITCH^ 8082 ;LAST CASE IS DIFFERENT 8083 003346 ADR=ADR+1 8084 100000 XX=XX+XX 8085 IFE XX, 8086 8087 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8088 000000 IFG XX, 8089 IFL XX, 8090 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8091 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8092 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8093 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-9 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0167 8094 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8095 8096 100000 F33460: AA1=XX ;INITIAL C(AC) 8097 035640 200 05 0 00 044017 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8098 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8099 035641 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8100 000001 AEE=1 ;INITIAL C(E) 8101 035642 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8102 035643 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8103 000000 AR1=V1 ;EXPECTED RESULT IN AC 8104 035644 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8105 035645 003 05 0 00 033461 ER3 AC,33461 ;HIGH PRODUCT FAILED 8106 100000 AR2=XX ;EXPECTED RESULT IN AC+1 8107 035646 312 06 0 00 044017 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8108 035647 004 06 0 00 033462 ER4 AC+1,33462 ;LOW PRODUCT FAILED 8109 000001 AEE=1 ;INITIAL C(E) 8110 035650 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8111 035651 005 03 0 00 033463 ER5 E,33463 ;C(E) WAS CLOBBERED 8112 035652 321 07 0 00 035640 JUMPL AC+2,F33460 ;LOOP ON ERROR SWITCH^ 8113 ;LAST CASE IS DIFFERENT 8114 003347 ADR=ADR+1 8115 200000 XX=XX+XX 8116 IFE XX, 8117 8118 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8119 000000 IFG XX, 8120 IFL XX, 8121 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8122 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8123 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8124 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8125 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8126 8127 200000 F33470: AA1=XX ;INITIAL C(AC) 8128 035653 200 05 0 00 044020 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8129 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8130 035654 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8131 000001 AEE=1 ;INITIAL C(E) 8132 035655 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8133 035656 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8134 000000 AR1=V1 ;EXPECTED RESULT IN AC 8135 035657 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8136 035660 003 05 0 00 033471 ER3 AC,33471 ;HIGH PRODUCT FAILED 8137 200000 AR2=XX ;EXPECTED RESULT IN AC+1 8138 035661 312 06 0 00 044020 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8139 035662 004 06 0 00 033472 ER4 AC+1,33472 ;LOW PRODUCT FAILED 8140 000001 AEE=1 ;INITIAL C(E) 8141 035663 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8142 035664 005 03 0 00 033473 ER5 E,33473 ;C(E) WAS CLOBBERED 8143 035665 321 07 0 00 035653 JUMPL AC+2,F33470 ;LOOP ON ERROR SWITCH^ 8144 ;LAST CASE IS DIFFERENT 8145 003350 ADR=ADR+1 8146 400000 XX=XX+XX 8147 IFE XX, 8148 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-10 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0168 8149 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8150 000000 IFG XX, 8151 IFL XX, 8152 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8153 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8154 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8155 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8156 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8157 8158 400000 F33500: AA1=XX ;INITIAL C(AC) 8159 035666 200 05 0 00 044021 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8160 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8161 035667 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8162 000001 AEE=1 ;INITIAL C(E) 8163 035670 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8164 035671 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8165 000000 AR1=V1 ;EXPECTED RESULT IN AC 8166 035672 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8167 035673 003 05 0 00 033501 ER3 AC,33501 ;HIGH PRODUCT FAILED 8168 400000 AR2=XX ;EXPECTED RESULT IN AC+1 8169 035674 312 06 0 00 044021 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8170 035675 004 06 0 00 033502 ER4 AC+1,33502 ;LOW PRODUCT FAILED 8171 000001 AEE=1 ;INITIAL C(E) 8172 035676 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8173 035677 005 03 0 00 033503 ER5 E,33503 ;C(E) WAS CLOBBERED 8174 035700 321 07 0 00 035666 JUMPL AC+2,F33500 ;LOOP ON ERROR SWITCH^ 8175 ;LAST CASE IS DIFFERENT 8176 003351 ADR=ADR+1 8177 000001 000000 XX=XX+XX 8178 IFE XX, 8179 8180 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8181 000000 IFG XX, 8182 IFL XX, 8183 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8184 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8185 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8186 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8187 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8188 8189 000001 000000 F33510: AA1=XX ;INITIAL C(AC) 8190 035701 200 05 0 00 044022 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8191 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8192 035702 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8193 000001 AEE=1 ;INITIAL C(E) 8194 035703 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8195 035704 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8196 000000 AR1=V1 ;EXPECTED RESULT IN AC 8197 035705 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8198 035706 003 05 0 00 033511 ER3 AC,33511 ;HIGH PRODUCT FAILED 8199 000001 000000 AR2=XX ;EXPECTED RESULT IN AC+1 8200 035707 312 06 0 00 044022 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8201 035710 004 06 0 00 033512 ER4 AC+1,33512 ;LOW PRODUCT FAILED 8202 000001 AEE=1 ;INITIAL C(E) 8203 035711 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-11 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0169 8204 035712 005 03 0 00 033513 ER5 E,33513 ;C(E) WAS CLOBBERED 8205 035713 321 07 0 00 035701 JUMPL AC+2,F33510 ;LOOP ON ERROR SWITCH^ 8206 ;LAST CASE IS DIFFERENT 8207 003352 ADR=ADR+1 8208 000002 000000 XX=XX+XX 8209 IFE XX, 8210 8211 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8212 000000 IFG XX, 8213 IFL XX, 8214 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8215 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8216 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8217 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8218 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8219 8220 000002 000000 F33520: AA1=XX ;INITIAL C(AC) 8221 035714 200 05 0 00 044023 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8222 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8223 035715 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8224 000001 AEE=1 ;INITIAL C(E) 8225 035716 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8226 035717 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8227 000000 AR1=V1 ;EXPECTED RESULT IN AC 8228 035720 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8229 035721 003 05 0 00 033521 ER3 AC,33521 ;HIGH PRODUCT FAILED 8230 000002 000000 AR2=XX ;EXPECTED RESULT IN AC+1 8231 035722 312 06 0 00 044023 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8232 035723 004 06 0 00 033522 ER4 AC+1,33522 ;LOW PRODUCT FAILED 8233 000001 AEE=1 ;INITIAL C(E) 8234 035724 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8235 035725 005 03 0 00 033523 ER5 E,33523 ;C(E) WAS CLOBBERED 8236 035726 321 07 0 00 035714 JUMPL AC+2,F33520 ;LOOP ON ERROR SWITCH^ 8237 ;LAST CASE IS DIFFERENT 8238 003353 ADR=ADR+1 8239 000004 000000 XX=XX+XX 8240 IFE XX, 8241 8242 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8243 000000 IFG XX, 8244 IFL XX, 8245 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8246 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8247 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8248 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8249 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8250 8251 000004 000000 F33530: AA1=XX ;INITIAL C(AC) 8252 035727 200 05 0 00 044024 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8253 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8254 035730 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8255 000001 AEE=1 ;INITIAL C(E) 8256 035731 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8257 035732 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8258 000000 AR1=V1 ;EXPECTED RESULT IN AC DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-12 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0170 8259 035733 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8260 035734 003 05 0 00 033531 ER3 AC,33531 ;HIGH PRODUCT FAILED 8261 000004 000000 AR2=XX ;EXPECTED RESULT IN AC+1 8262 035735 312 06 0 00 044024 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8263 035736 004 06 0 00 033532 ER4 AC+1,33532 ;LOW PRODUCT FAILED 8264 000001 AEE=1 ;INITIAL C(E) 8265 035737 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8266 035740 005 03 0 00 033533 ER5 E,33533 ;C(E) WAS CLOBBERED 8267 035741 321 07 0 00 035727 JUMPL AC+2,F33530 ;LOOP ON ERROR SWITCH^ 8268 ;LAST CASE IS DIFFERENT 8269 003354 ADR=ADR+1 8270 000010 000000 XX=XX+XX 8271 IFE XX, 8272 8273 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8274 000000 IFG XX, 8275 IFL XX, 8276 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8277 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8278 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8279 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8280 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8281 8282 000010 000000 F33540: AA1=XX ;INITIAL C(AC) 8283 035742 200 05 0 00 044025 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8284 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8285 035743 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8286 000001 AEE=1 ;INITIAL C(E) 8287 035744 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8288 035745 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8289 000000 AR1=V1 ;EXPECTED RESULT IN AC 8290 035746 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8291 035747 003 05 0 00 033541 ER3 AC,33541 ;HIGH PRODUCT FAILED 8292 000010 000000 AR2=XX ;EXPECTED RESULT IN AC+1 8293 035750 312 06 0 00 044025 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8294 035751 004 06 0 00 033542 ER4 AC+1,33542 ;LOW PRODUCT FAILED 8295 000001 AEE=1 ;INITIAL C(E) 8296 035752 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8297 035753 005 03 0 00 033543 ER5 E,33543 ;C(E) WAS CLOBBERED 8298 035754 321 07 0 00 035742 JUMPL AC+2,F33540 ;LOOP ON ERROR SWITCH^ 8299 ;LAST CASE IS DIFFERENT 8300 003355 ADR=ADR+1 8301 000020 000000 XX=XX+XX 8302 IFE XX, 8303 8304 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8305 000000 IFG XX, 8306 IFL XX, 8307 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8308 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8309 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8310 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8311 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8312 8313 000020 000000 F33550: AA1=XX ;INITIAL C(AC) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-13 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0171 8314 035755 200 05 0 00 044026 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8315 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8316 035756 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8317 000001 AEE=1 ;INITIAL C(E) 8318 035757 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8319 035760 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8320 000000 AR1=V1 ;EXPECTED RESULT IN AC 8321 035761 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8322 035762 003 05 0 00 033551 ER3 AC,33551 ;HIGH PRODUCT FAILED 8323 000020 000000 AR2=XX ;EXPECTED RESULT IN AC+1 8324 035763 312 06 0 00 044026 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8325 035764 004 06 0 00 033552 ER4 AC+1,33552 ;LOW PRODUCT FAILED 8326 000001 AEE=1 ;INITIAL C(E) 8327 035765 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8328 035766 005 03 0 00 033553 ER5 E,33553 ;C(E) WAS CLOBBERED 8329 035767 321 07 0 00 035755 JUMPL AC+2,F33550 ;LOOP ON ERROR SWITCH^ 8330 ;LAST CASE IS DIFFERENT 8331 003356 ADR=ADR+1 8332 000040 000000 XX=XX+XX 8333 IFE XX, 8334 8335 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8336 000000 IFG XX, 8337 IFL XX, 8338 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8339 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8340 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8341 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8342 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8343 8344 000040 000000 F33560: AA1=XX ;INITIAL C(AC) 8345 035770 200 05 0 00 044027 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8346 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8347 035771 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8348 000001 AEE=1 ;INITIAL C(E) 8349 035772 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8350 035773 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8351 000000 AR1=V1 ;EXPECTED RESULT IN AC 8352 035774 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8353 035775 003 05 0 00 033561 ER3 AC,33561 ;HIGH PRODUCT FAILED 8354 000040 000000 AR2=XX ;EXPECTED RESULT IN AC+1 8355 035776 312 06 0 00 044027 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8356 035777 004 06 0 00 033562 ER4 AC+1,33562 ;LOW PRODUCT FAILED 8357 000001 AEE=1 ;INITIAL C(E) 8358 036000 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8359 036001 005 03 0 00 033563 ER5 E,33563 ;C(E) WAS CLOBBERED 8360 036002 321 07 0 00 035770 JUMPL AC+2,F33560 ;LOOP ON ERROR SWITCH^ 8361 ;LAST CASE IS DIFFERENT 8362 003357 ADR=ADR+1 8363 000100 000000 XX=XX+XX 8364 IFE XX, 8365 8366 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8367 000000 IFG XX, 8368 IFL XX, DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-14 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0172 8369 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8370 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8371 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8372 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8373 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8374 8375 000100 000000 F33570: AA1=XX ;INITIAL C(AC) 8376 036003 200 05 0 00 044030 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8377 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8378 036004 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8379 000001 AEE=1 ;INITIAL C(E) 8380 036005 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8381 036006 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8382 000000 AR1=V1 ;EXPECTED RESULT IN AC 8383 036007 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8384 036010 003 05 0 00 033571 ER3 AC,33571 ;HIGH PRODUCT FAILED 8385 000100 000000 AR2=XX ;EXPECTED RESULT IN AC+1 8386 036011 312 06 0 00 044030 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8387 036012 004 06 0 00 033572 ER4 AC+1,33572 ;LOW PRODUCT FAILED 8388 000001 AEE=1 ;INITIAL C(E) 8389 036013 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8390 036014 005 03 0 00 033573 ER5 E,33573 ;C(E) WAS CLOBBERED 8391 036015 321 07 0 00 036003 JUMPL AC+2,F33570 ;LOOP ON ERROR SWITCH^ 8392 ;LAST CASE IS DIFFERENT 8393 003360 ADR=ADR+1 8394 000200 000000 XX=XX+XX 8395 IFE XX, 8396 8397 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8398 000000 IFG XX, 8399 IFL XX, 8400 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8401 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8402 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8403 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8404 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8405 8406 000200 000000 F33600: AA1=XX ;INITIAL C(AC) 8407 036016 200 05 0 00 044031 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8408 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8409 036017 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8410 000001 AEE=1 ;INITIAL C(E) 8411 036020 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8412 036021 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8413 000000 AR1=V1 ;EXPECTED RESULT IN AC 8414 036022 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8415 036023 003 05 0 00 033601 ER3 AC,33601 ;HIGH PRODUCT FAILED 8416 000200 000000 AR2=XX ;EXPECTED RESULT IN AC+1 8417 036024 312 06 0 00 044031 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8418 036025 004 06 0 00 033602 ER4 AC+1,33602 ;LOW PRODUCT FAILED 8419 000001 AEE=1 ;INITIAL C(E) 8420 036026 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8421 036027 005 03 0 00 033603 ER5 E,33603 ;C(E) WAS CLOBBERED 8422 036030 321 07 0 00 036016 JUMPL AC+2,F33600 ;LOOP ON ERROR SWITCH^ 8423 ;LAST CASE IS DIFFERENT DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-15 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0173 8424 003361 ADR=ADR+1 8425 000400 000000 XX=XX+XX 8426 IFE XX, 8427 8428 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8429 000000 IFG XX, 8430 IFL XX, 8431 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8432 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8433 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8434 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8435 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8436 8437 000400 000000 F33610: AA1=XX ;INITIAL C(AC) 8438 036031 200 05 0 00 044032 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8439 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8440 036032 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8441 000001 AEE=1 ;INITIAL C(E) 8442 036033 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8443 036034 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8444 000000 AR1=V1 ;EXPECTED RESULT IN AC 8445 036035 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8446 036036 003 05 0 00 033611 ER3 AC,33611 ;HIGH PRODUCT FAILED 8447 000400 000000 AR2=XX ;EXPECTED RESULT IN AC+1 8448 036037 312 06 0 00 044032 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8449 036040 004 06 0 00 033612 ER4 AC+1,33612 ;LOW PRODUCT FAILED 8450 000001 AEE=1 ;INITIAL C(E) 8451 036041 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8452 036042 005 03 0 00 033613 ER5 E,33613 ;C(E) WAS CLOBBERED 8453 036043 321 07 0 00 036031 JUMPL AC+2,F33610 ;LOOP ON ERROR SWITCH^ 8454 ;LAST CASE IS DIFFERENT 8455 003362 ADR=ADR+1 8456 001000 000000 XX=XX+XX 8457 IFE XX, 8458 8459 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8460 000000 IFG XX, 8461 IFL XX, 8462 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8463 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8464 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8465 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8466 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8467 8468 001000 000000 F33620: AA1=XX ;INITIAL C(AC) 8469 036044 200 05 0 00 044033 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8470 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8471 036045 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8472 000001 AEE=1 ;INITIAL C(E) 8473 036046 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8474 036047 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8475 000000 AR1=V1 ;EXPECTED RESULT IN AC 8476 036050 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8477 036051 003 05 0 00 033621 ER3 AC,33621 ;HIGH PRODUCT FAILED 8478 001000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-16 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0174 8479 036052 312 06 0 00 044033 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8480 036053 004 06 0 00 033622 ER4 AC+1,33622 ;LOW PRODUCT FAILED 8481 000001 AEE=1 ;INITIAL C(E) 8482 036054 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8483 036055 005 03 0 00 033623 ER5 E,33623 ;C(E) WAS CLOBBERED 8484 036056 321 07 0 00 036044 JUMPL AC+2,F33620 ;LOOP ON ERROR SWITCH^ 8485 ;LAST CASE IS DIFFERENT 8486 003363 ADR=ADR+1 8487 002000 000000 XX=XX+XX 8488 IFE XX, 8489 8490 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8491 000000 IFG XX, 8492 IFL XX, 8493 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8494 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8495 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8496 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8497 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8498 8499 002000 000000 F33630: AA1=XX ;INITIAL C(AC) 8500 036057 200 05 0 00 044034 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8501 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8502 036060 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8503 000001 AEE=1 ;INITIAL C(E) 8504 036061 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8505 036062 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8506 000000 AR1=V1 ;EXPECTED RESULT IN AC 8507 036063 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8508 036064 003 05 0 00 033631 ER3 AC,33631 ;HIGH PRODUCT FAILED 8509 002000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 8510 036065 312 06 0 00 044034 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8511 036066 004 06 0 00 033632 ER4 AC+1,33632 ;LOW PRODUCT FAILED 8512 000001 AEE=1 ;INITIAL C(E) 8513 036067 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8514 036070 005 03 0 00 033633 ER5 E,33633 ;C(E) WAS CLOBBERED 8515 036071 321 07 0 00 036057 JUMPL AC+2,F33630 ;LOOP ON ERROR SWITCH^ 8516 ;LAST CASE IS DIFFERENT 8517 003364 ADR=ADR+1 8518 004000 000000 XX=XX+XX 8519 IFE XX, 8520 8521 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8522 000000 IFG XX, 8523 IFL XX, 8524 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8525 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8526 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8527 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8528 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8529 8530 004000 000000 F33640: AA1=XX ;INITIAL C(AC) 8531 036072 200 05 0 00 044035 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8532 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8533 036073 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-17 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0175 8534 000001 AEE=1 ;INITIAL C(E) 8535 036074 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8536 036075 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8537 000000 AR1=V1 ;EXPECTED RESULT IN AC 8538 036076 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8539 036077 003 05 0 00 033641 ER3 AC,33641 ;HIGH PRODUCT FAILED 8540 004000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 8541 036100 312 06 0 00 044035 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8542 036101 004 06 0 00 033642 ER4 AC+1,33642 ;LOW PRODUCT FAILED 8543 000001 AEE=1 ;INITIAL C(E) 8544 036102 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8545 036103 005 03 0 00 033643 ER5 E,33643 ;C(E) WAS CLOBBERED 8546 036104 321 07 0 00 036072 JUMPL AC+2,F33640 ;LOOP ON ERROR SWITCH^ 8547 ;LAST CASE IS DIFFERENT 8548 003365 ADR=ADR+1 8549 010000 000000 XX=XX+XX 8550 IFE XX, 8551 8552 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8553 000000 IFG XX, 8554 IFL XX, 8555 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8556 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8557 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8558 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8559 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8560 8561 010000 000000 F33650: AA1=XX ;INITIAL C(AC) 8562 036105 200 05 0 00 044036 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8563 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8564 036106 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8565 000001 AEE=1 ;INITIAL C(E) 8566 036107 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8567 036110 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8568 000000 AR1=V1 ;EXPECTED RESULT IN AC 8569 036111 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8570 036112 003 05 0 00 033651 ER3 AC,33651 ;HIGH PRODUCT FAILED 8571 010000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 8572 036113 312 06 0 00 044036 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8573 036114 004 06 0 00 033652 ER4 AC+1,33652 ;LOW PRODUCT FAILED 8574 000001 AEE=1 ;INITIAL C(E) 8575 036115 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8576 036116 005 03 0 00 033653 ER5 E,33653 ;C(E) WAS CLOBBERED 8577 036117 321 07 0 00 036105 JUMPL AC+2,F33650 ;LOOP ON ERROR SWITCH^ 8578 ;LAST CASE IS DIFFERENT 8579 003366 ADR=ADR+1 8580 020000 000000 XX=XX+XX 8581 IFE XX, 8582 8583 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8584 000000 IFG XX, 8585 IFL XX, 8586 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8587 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8588 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-18 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0176 8589 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8590 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8591 8592 020000 000000 F33660: AA1=XX ;INITIAL C(AC) 8593 036120 200 05 0 00 044037 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8594 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8595 036121 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8596 000001 AEE=1 ;INITIAL C(E) 8597 036122 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8598 036123 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8599 000000 AR1=V1 ;EXPECTED RESULT IN AC 8600 036124 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8601 036125 003 05 0 00 033661 ER3 AC,33661 ;HIGH PRODUCT FAILED 8602 020000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 8603 036126 312 06 0 00 044037 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8604 036127 004 06 0 00 033662 ER4 AC+1,33662 ;LOW PRODUCT FAILED 8605 000001 AEE=1 ;INITIAL C(E) 8606 036130 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8607 036131 005 03 0 00 033663 ER5 E,33663 ;C(E) WAS CLOBBERED 8608 036132 321 07 0 00 036120 JUMPL AC+2,F33660 ;LOOP ON ERROR SWITCH^ 8609 ;LAST CASE IS DIFFERENT 8610 003367 ADR=ADR+1 8611 040000 000000 XX=XX+XX 8612 IFE XX, 8613 8614 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8615 000000 IFG XX, 8616 IFL XX, 8617 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8618 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8619 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8620 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8621 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8622 8623 040000 000000 F33670: AA1=XX ;INITIAL C(AC) 8624 036133 200 05 0 00 044040 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8625 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8626 036134 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8627 000001 AEE=1 ;INITIAL C(E) 8628 036135 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8629 036136 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8630 000000 AR1=V1 ;EXPECTED RESULT IN AC 8631 036137 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8632 036140 003 05 0 00 033671 ER3 AC,33671 ;HIGH PRODUCT FAILED 8633 040000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 8634 036141 312 06 0 00 044040 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8635 036142 004 06 0 00 033672 ER4 AC+1,33672 ;LOW PRODUCT FAILED 8636 000001 AEE=1 ;INITIAL C(E) 8637 036143 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8638 036144 005 03 0 00 033673 ER5 E,33673 ;C(E) WAS CLOBBERED 8639 036145 321 07 0 00 036133 JUMPL AC+2,F33670 ;LOOP ON ERROR SWITCH^ 8640 ;LAST CASE IS DIFFERENT 8641 003370 ADR=ADR+1 8642 100000 000000 XX=XX+XX 8643 IFE XX, DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-19 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0177 8644 8645 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8646 000000 IFG XX, 8647 IFL XX, 8648 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8649 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8650 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8651 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8652 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8653 8654 100000 000000 F33700: AA1=XX ;INITIAL C(AC) 8655 036146 200 05 0 00 044041 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8656 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8657 036147 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8658 000001 AEE=1 ;INITIAL C(E) 8659 036150 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8660 036151 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8661 000000 AR1=V1 ;EXPECTED RESULT IN AC 8662 036152 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8663 036153 003 05 0 00 033701 ER3 AC,33701 ;HIGH PRODUCT FAILED 8664 100000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 8665 036154 312 06 0 00 044041 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8666 036155 004 06 0 00 033702 ER4 AC+1,33702 ;LOW PRODUCT FAILED 8667 000001 AEE=1 ;INITIAL C(E) 8668 036156 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8669 036157 005 03 0 00 033703 ER5 E,33703 ;C(E) WAS CLOBBERED 8670 036160 321 07 0 00 036146 JUMPL AC+2,F33700 ;LOOP ON ERROR SWITCH^ 8671 ;LAST CASE IS DIFFERENT 8672 003371 ADR=ADR+1 8673 200000 000000 XX=XX+XX 8674 IFE XX, 8675 8676 ;MULTIPLY A 1 BY A RIPPLED 1 TO GET PRODUCT OF RIPPLED 1 8677 000000 IFG XX, 8678 IFL XX, 8679 MOP1 (\ADR,XX,-1,1,V1,XX)^ 8680 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8681 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8682 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 8683 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8684 8685 200000 000000 F33710: AA1=XX ;INITIAL C(AC) 8686 036161 200 05 0 00 044042 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8687 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8688 036162 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8689 000001 AEE=1 ;INITIAL C(E) 8690 036163 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8691 036164 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8692 000000 AR1=V1 ;EXPECTED RESULT IN AC 8693 036165 312 05 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8694 036166 003 05 0 00 033711 ER3 AC,33711 ;HIGH PRODUCT FAILED 8695 200000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 8696 036167 312 06 0 00 044042 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 8697 036170 004 06 0 00 033712 ER4 AC+1,33712 ;LOW PRODUCT FAILED 8698 000001 AEE=1 ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 11-20 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0178 8699 036171 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8700 036172 005 03 0 00 033713 ER5 E,33713 ;C(E) WAS CLOBBERED 8701 036173 321 07 0 00 036161 JUMPL AC+2,F33710 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 12 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0179 8702 ;MULTIPLY A 1 BY 400000,,0 8703 400000 000000 XX=400000000000 8704 003372 ADR=ADR+1 8705 8706 MOP1 (\ADR,XX,-1,1,1,0)^ 8707 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 8708 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8709 ;AND E AGAINST [1], [0] AND [1] RESPECTIVELY. 8710 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8711 8712 400000 000000 F33720: AA1=XX ;INITIAL C(AC) 8713 036174 200 05 0 00 044043 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 8714 777777 777777 AA2=-1 ;INITIAL C(AC+1) 8715 036175 200 06 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 8716 000001 AEE=1 ;INITIAL C(E) 8717 036176 200 03 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 8718 036177 224 05 0 00 000003 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8719 000001 AR1=1 ;EXPECTED RESULT IN AC 8720 036200 312 05 0 00 044000 CAME AC,[1] ;IS HIGH PRODUCT CORRECT? 8721 036201 003 05 0 00 033721 ER3 AC,33721 ;HIGH PRODUCT FAILED 8722 000000 AR2=0 ;EXPECTED RESULT IN AC+1 8723 036202 312 06 0 00 043776 CAME AC+1,[0] ;IS LOW PRODUCT CORRECT? 8724 036203 004 06 0 00 033722 ER4 AC+1,33722 ;LOW PRODUCT FAILED 8725 000001 AEE=1 ;INITIAL C(E) 8726 036204 312 03 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 8727 036205 005 03 0 00 033723 ER5 E,33723 ;C(E) WAS CLOBBERED 8728 036206 321 07 0 00 036174 JUMPL AC+2,F33720 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0180 8729 000004 AC=4 8730 000002 E=&17 8731 SAVEAC (1,1)^ 8732 036207 201 06 0 00 036207 MOVEI AC+2,. ;SAVE TEST PC 8733 036210 202 06 0 00 030051 MOVEM AC+2,TESTPC 8734 036211 201 06 0 00 000006 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH 8735 036212 202 06 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ 8736 000000 XX=0 8737 8738 REPEAT ^D36,< 8739 ADR=ADR+1 8740 XX=XX+XX 8741 IFE XX, 8742 8743 ;MULTIPLY A RIPPLED ONE BY -1 8744 IFG XX,< 8745 V1=-1 8746 V2=-XX> 8747 IFL XX,< 8748 V1=1 8749 V2=0> 8750 MOP1 (\ADR,-1,0,XX,V1,V2)> 8751 8752 003373 ADR=ADR+1 8753 000000 XX=XX+XX 8754 000001 IFE XX, 8755 8756 ;MULTIPLY A RIPPLED ONE BY -1 8757 IFG XX,< 8758 777777 777777 V1=-1 8759 777777 777777 V2=-XX> 8760 IFL XX,< 8761 V1=1 8762 V2=0> 8763 MOP1 (\ADR,-1,0,XX,V1,V2)^ 8764 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 8765 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8766 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 8767 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8768 8769 777777 777777 F33730: AA1=-1 ;INITIAL C(AC) 8770 036213 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 8771 000000 AA2=0 ;INITIAL C(AC+1) 8772 036214 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 8773 000001 AEE=XX ;INITIAL C(E) 8774 036215 200 02 0 00 044000 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 8775 036216 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8776 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 8777 036217 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8778 036220 003 04 0 00 033731 ER3 AC,33731 ;HIGH PRODUCT FAILED 8779 777777 777777 AR2=V2 ;EXPECTED RESULT IN AC+1 8780 036221 312 05 0 00 043777 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 8781 036222 004 05 0 00 033732 ER4 AC+1,33732 ;LOW PRODUCT FAILED 8782 000001 AEE=XX ;INITIAL C(E) 8783 036223 312 02 0 00 044000 CAME E,[XX] ;WAS C(E) CLOBBERED? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-1 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0181 8784 036224 005 02 0 00 033733 ER5 E,33733 ;C(E) WAS CLOBBERED 8785 036225 321 06 0 00 036213 JUMPL AC+2,F33730 ;LOOP ON ERROR SWITCH^ 8786 8787 003374 ADR=ADR+1 8788 000002 XX=XX+XX 8789 IFE XX, 8790 8791 ;MULTIPLY A RIPPLED ONE BY -1 8792 IFG XX,< 8793 777777 777777 V1=-1 8794 777777 777776 V2=-XX> 8795 IFL XX,< 8796 V1=1 8797 V2=0> 8798 MOP1 (\ADR,-1,0,XX,V1,V2)^ 8799 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 8800 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8801 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 8802 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8803 8804 777777 777777 F33740: AA1=-1 ;INITIAL C(AC) 8805 036226 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 8806 000000 AA2=0 ;INITIAL C(AC+1) 8807 036227 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 8808 000002 AEE=XX ;INITIAL C(E) 8809 036230 200 02 0 00 044001 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 8810 036231 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8811 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 8812 036232 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8813 036233 003 04 0 00 033741 ER3 AC,33741 ;HIGH PRODUCT FAILED 8814 777777 777776 AR2=V2 ;EXPECTED RESULT IN AC+1 8815 036234 312 05 0 00 044044 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 8816 036235 004 05 0 00 033742 ER4 AC+1,33742 ;LOW PRODUCT FAILED 8817 000002 AEE=XX ;INITIAL C(E) 8818 036236 312 02 0 00 044001 CAME E,[XX] ;WAS C(E) CLOBBERED? 8819 036237 005 02 0 00 033743 ER5 E,33743 ;C(E) WAS CLOBBERED 8820 036240 321 06 0 00 036226 JUMPL AC+2,F33740 ;LOOP ON ERROR SWITCH^ 8821 8822 003375 ADR=ADR+1 8823 000004 XX=XX+XX 8824 IFE XX, 8825 8826 ;MULTIPLY A RIPPLED ONE BY -1 8827 IFG XX,< 8828 777777 777777 V1=-1 8829 777777 777774 V2=-XX> 8830 IFL XX,< 8831 V1=1 8832 V2=0> 8833 MOP1 (\ADR,-1,0,XX,V1,V2)^ 8834 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 8835 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8836 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 8837 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8838 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-2 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0182 8839 777777 777777 F33750: AA1=-1 ;INITIAL C(AC) 8840 036241 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 8841 000000 AA2=0 ;INITIAL C(AC+1) 8842 036242 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 8843 000004 AEE=XX ;INITIAL C(E) 8844 036243 200 02 0 00 044002 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 8845 036244 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8846 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 8847 036245 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8848 036246 003 04 0 00 033751 ER3 AC,33751 ;HIGH PRODUCT FAILED 8849 777777 777774 AR2=V2 ;EXPECTED RESULT IN AC+1 8850 036247 312 05 0 00 044123 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 8851 036250 004 05 0 00 033752 ER4 AC+1,33752 ;LOW PRODUCT FAILED 8852 000004 AEE=XX ;INITIAL C(E) 8853 036251 312 02 0 00 044002 CAME E,[XX] ;WAS C(E) CLOBBERED? 8854 036252 005 02 0 00 033753 ER5 E,33753 ;C(E) WAS CLOBBERED 8855 036253 321 06 0 00 036241 JUMPL AC+2,F33750 ;LOOP ON ERROR SWITCH^ 8856 8857 003376 ADR=ADR+1 8858 000010 XX=XX+XX 8859 IFE XX, 8860 8861 ;MULTIPLY A RIPPLED ONE BY -1 8862 IFG XX,< 8863 777777 777777 V1=-1 8864 777777 777770 V2=-XX> 8865 IFL XX,< 8866 V1=1 8867 V2=0> 8868 MOP1 (\ADR,-1,0,XX,V1,V2)^ 8869 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 8870 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8871 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 8872 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8873 8874 777777 777777 F33760: AA1=-1 ;INITIAL C(AC) 8875 036254 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 8876 000000 AA2=0 ;INITIAL C(AC+1) 8877 036255 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 8878 000010 AEE=XX ;INITIAL C(E) 8879 036256 200 02 0 00 044003 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 8880 036257 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8881 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 8882 036260 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8883 036261 003 04 0 00 033761 ER3 AC,33761 ;HIGH PRODUCT FAILED 8884 777777 777770 AR2=V2 ;EXPECTED RESULT IN AC+1 8885 036262 312 05 0 00 044126 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 8886 036263 004 05 0 00 033762 ER4 AC+1,33762 ;LOW PRODUCT FAILED 8887 000010 AEE=XX ;INITIAL C(E) 8888 036264 312 02 0 00 044003 CAME E,[XX] ;WAS C(E) CLOBBERED? 8889 036265 005 02 0 00 033763 ER5 E,33763 ;C(E) WAS CLOBBERED 8890 036266 321 06 0 00 036254 JUMPL AC+2,F33760 ;LOOP ON ERROR SWITCH^ 8891 8892 003377 ADR=ADR+1 8893 000020 XX=XX+XX DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-3 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0183 8894 IFE XX, 8895 8896 ;MULTIPLY A RIPPLED ONE BY -1 8897 IFG XX,< 8898 777777 777777 V1=-1 8899 777777 777760 V2=-XX> 8900 IFL XX,< 8901 V1=1 8902 V2=0> 8903 MOP1 (\ADR,-1,0,XX,V1,V2)^ 8904 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 8905 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8906 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 8907 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8908 8909 777777 777777 F33770: AA1=-1 ;INITIAL C(AC) 8910 036267 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 8911 000000 AA2=0 ;INITIAL C(AC+1) 8912 036270 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 8913 000020 AEE=XX ;INITIAL C(E) 8914 036271 200 02 0 00 044004 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 8915 036272 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8916 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 8917 036273 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8918 036274 003 04 0 00 033771 ER3 AC,33771 ;HIGH PRODUCT FAILED 8919 777777 777760 AR2=V2 ;EXPECTED RESULT IN AC+1 8920 036275 312 05 0 00 044135 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 8921 036276 004 05 0 00 033772 ER4 AC+1,33772 ;LOW PRODUCT FAILED 8922 000020 AEE=XX ;INITIAL C(E) 8923 036277 312 02 0 00 044004 CAME E,[XX] ;WAS C(E) CLOBBERED? 8924 036300 005 02 0 00 033773 ER5 E,33773 ;C(E) WAS CLOBBERED 8925 036301 321 06 0 00 036267 JUMPL AC+2,F33770 ;LOOP ON ERROR SWITCH^ 8926 8927 003400 ADR=ADR+1 8928 000040 XX=XX+XX 8929 IFE XX, 8930 8931 ;MULTIPLY A RIPPLED ONE BY -1 8932 IFG XX,< 8933 777777 777777 V1=-1 8934 777777 777740 V2=-XX> 8935 IFL XX,< 8936 V1=1 8937 V2=0> 8938 MOP1 (\ADR,-1,0,XX,V1,V2)^ 8939 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 8940 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8941 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 8942 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8943 8944 777777 777777 F34000: AA1=-1 ;INITIAL C(AC) 8945 036302 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 8946 000000 AA2=0 ;INITIAL C(AC+1) 8947 036303 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 8948 000040 AEE=XX ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-4 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0184 8949 036304 200 02 0 00 044005 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 8950 036305 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8951 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 8952 036306 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8953 036307 003 04 0 00 034001 ER3 AC,34001 ;HIGH PRODUCT FAILED 8954 777777 777740 AR2=V2 ;EXPECTED RESULT IN AC+1 8955 036310 312 05 0 00 044136 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 8956 036311 004 05 0 00 034002 ER4 AC+1,34002 ;LOW PRODUCT FAILED 8957 000040 AEE=XX ;INITIAL C(E) 8958 036312 312 02 0 00 044005 CAME E,[XX] ;WAS C(E) CLOBBERED? 8959 036313 005 02 0 00 034003 ER5 E,34003 ;C(E) WAS CLOBBERED 8960 036314 321 06 0 00 036302 JUMPL AC+2,F34000 ;LOOP ON ERROR SWITCH^ 8961 8962 003401 ADR=ADR+1 8963 000100 XX=XX+XX 8964 IFE XX, 8965 8966 ;MULTIPLY A RIPPLED ONE BY -1 8967 IFG XX,< 8968 777777 777777 V1=-1 8969 777777 777700 V2=-XX> 8970 IFL XX,< 8971 V1=1 8972 V2=0> 8973 MOP1 (\ADR,-1,0,XX,V1,V2)^ 8974 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 8975 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 8976 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 8977 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 8978 8979 777777 777777 F34010: AA1=-1 ;INITIAL C(AC) 8980 036315 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 8981 000000 AA2=0 ;INITIAL C(AC+1) 8982 036316 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 8983 000100 AEE=XX ;INITIAL C(E) 8984 036317 200 02 0 00 044006 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 8985 036320 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 8986 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 8987 036321 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 8988 036322 003 04 0 00 034011 ER3 AC,34011 ;HIGH PRODUCT FAILED 8989 777777 777700 AR2=V2 ;EXPECTED RESULT IN AC+1 8990 036323 312 05 0 00 044137 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 8991 036324 004 05 0 00 034012 ER4 AC+1,34012 ;LOW PRODUCT FAILED 8992 000100 AEE=XX ;INITIAL C(E) 8993 036325 312 02 0 00 044006 CAME E,[XX] ;WAS C(E) CLOBBERED? 8994 036326 005 02 0 00 034013 ER5 E,34013 ;C(E) WAS CLOBBERED 8995 036327 321 06 0 00 036315 JUMPL AC+2,F34010 ;LOOP ON ERROR SWITCH^ 8996 8997 003402 ADR=ADR+1 8998 000200 XX=XX+XX 8999 IFE XX, 9000 9001 ;MULTIPLY A RIPPLED ONE BY -1 9002 IFG XX,< 9003 777777 777777 V1=-1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-5 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0185 9004 777777 777600 V2=-XX> 9005 IFL XX,< 9006 V1=1 9007 V2=0> 9008 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9009 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9010 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9011 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9012 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9013 9014 777777 777777 F34020: AA1=-1 ;INITIAL C(AC) 9015 036330 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9016 000000 AA2=0 ;INITIAL C(AC+1) 9017 036331 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9018 000200 AEE=XX ;INITIAL C(E) 9019 036332 200 02 0 00 044007 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9020 036333 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9021 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9022 036334 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9023 036335 003 04 0 00 034021 ER3 AC,34021 ;HIGH PRODUCT FAILED 9024 777777 777600 AR2=V2 ;EXPECTED RESULT IN AC+1 9025 036336 312 05 0 00 044140 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9026 036337 004 05 0 00 034022 ER4 AC+1,34022 ;LOW PRODUCT FAILED 9027 000200 AEE=XX ;INITIAL C(E) 9028 036340 312 02 0 00 044007 CAME E,[XX] ;WAS C(E) CLOBBERED? 9029 036341 005 02 0 00 034023 ER5 E,34023 ;C(E) WAS CLOBBERED 9030 036342 321 06 0 00 036330 JUMPL AC+2,F34020 ;LOOP ON ERROR SWITCH^ 9031 9032 003403 ADR=ADR+1 9033 000400 XX=XX+XX 9034 IFE XX, 9035 9036 ;MULTIPLY A RIPPLED ONE BY -1 9037 IFG XX,< 9038 777777 777777 V1=-1 9039 777777 777400 V2=-XX> 9040 IFL XX,< 9041 V1=1 9042 V2=0> 9043 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9044 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9045 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9046 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9047 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9048 9049 777777 777777 F34030: AA1=-1 ;INITIAL C(AC) 9050 036343 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9051 000000 AA2=0 ;INITIAL C(AC+1) 9052 036344 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9053 000400 AEE=XX ;INITIAL C(E) 9054 036345 200 02 0 00 044010 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9055 036346 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9056 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9057 036347 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9058 036350 003 04 0 00 034031 ER3 AC,34031 ;HIGH PRODUCT FAILED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-6 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0186 9059 777777 777400 AR2=V2 ;EXPECTED RESULT IN AC+1 9060 036351 312 05 0 00 044141 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9061 036352 004 05 0 00 034032 ER4 AC+1,34032 ;LOW PRODUCT FAILED 9062 000400 AEE=XX ;INITIAL C(E) 9063 036353 312 02 0 00 044010 CAME E,[XX] ;WAS C(E) CLOBBERED? 9064 036354 005 02 0 00 034033 ER5 E,34033 ;C(E) WAS CLOBBERED 9065 036355 321 06 0 00 036343 JUMPL AC+2,F34030 ;LOOP ON ERROR SWITCH^ 9066 9067 003404 ADR=ADR+1 9068 001000 XX=XX+XX 9069 IFE XX, 9070 9071 ;MULTIPLY A RIPPLED ONE BY -1 9072 IFG XX,< 9073 777777 777777 V1=-1 9074 777777 777000 V2=-XX> 9075 IFL XX,< 9076 V1=1 9077 V2=0> 9078 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9079 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9080 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9081 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9082 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9083 9084 777777 777777 F34040: AA1=-1 ;INITIAL C(AC) 9085 036356 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9086 000000 AA2=0 ;INITIAL C(AC+1) 9087 036357 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9088 001000 AEE=XX ;INITIAL C(E) 9089 036360 200 02 0 00 044011 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9090 036361 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9091 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9092 036362 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9093 036363 003 04 0 00 034041 ER3 AC,34041 ;HIGH PRODUCT FAILED 9094 777777 777000 AR2=V2 ;EXPECTED RESULT IN AC+1 9095 036364 312 05 0 00 044142 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9096 036365 004 05 0 00 034042 ER4 AC+1,34042 ;LOW PRODUCT FAILED 9097 001000 AEE=XX ;INITIAL C(E) 9098 036366 312 02 0 00 044011 CAME E,[XX] ;WAS C(E) CLOBBERED? 9099 036367 005 02 0 00 034043 ER5 E,34043 ;C(E) WAS CLOBBERED 9100 036370 321 06 0 00 036356 JUMPL AC+2,F34040 ;LOOP ON ERROR SWITCH^ 9101 9102 003405 ADR=ADR+1 9103 002000 XX=XX+XX 9104 IFE XX, 9105 9106 ;MULTIPLY A RIPPLED ONE BY -1 9107 IFG XX,< 9108 777777 777777 V1=-1 9109 777777 776000 V2=-XX> 9110 IFL XX,< 9111 V1=1 9112 V2=0> 9113 MOP1 (\ADR,-1,0,XX,V1,V2)^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-7 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0187 9114 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9115 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9116 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9117 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9118 9119 777777 777777 F34050: AA1=-1 ;INITIAL C(AC) 9120 036371 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9121 000000 AA2=0 ;INITIAL C(AC+1) 9122 036372 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9123 002000 AEE=XX ;INITIAL C(E) 9124 036373 200 02 0 00 044012 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9125 036374 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9126 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9127 036375 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9128 036376 003 04 0 00 034051 ER3 AC,34051 ;HIGH PRODUCT FAILED 9129 777777 776000 AR2=V2 ;EXPECTED RESULT IN AC+1 9130 036377 312 05 0 00 044143 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9131 036400 004 05 0 00 034052 ER4 AC+1,34052 ;LOW PRODUCT FAILED 9132 002000 AEE=XX ;INITIAL C(E) 9133 036401 312 02 0 00 044012 CAME E,[XX] ;WAS C(E) CLOBBERED? 9134 036402 005 02 0 00 034053 ER5 E,34053 ;C(E) WAS CLOBBERED 9135 036403 321 06 0 00 036371 JUMPL AC+2,F34050 ;LOOP ON ERROR SWITCH^ 9136 9137 003406 ADR=ADR+1 9138 004000 XX=XX+XX 9139 IFE XX, 9140 9141 ;MULTIPLY A RIPPLED ONE BY -1 9142 IFG XX,< 9143 777777 777777 V1=-1 9144 777777 774000 V2=-XX> 9145 IFL XX,< 9146 V1=1 9147 V2=0> 9148 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9149 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9150 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9151 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9152 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9153 9154 777777 777777 F34060: AA1=-1 ;INITIAL C(AC) 9155 036404 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9156 000000 AA2=0 ;INITIAL C(AC+1) 9157 036405 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9158 004000 AEE=XX ;INITIAL C(E) 9159 036406 200 02 0 00 044013 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9160 036407 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9161 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9162 036410 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9163 036411 003 04 0 00 034061 ER3 AC,34061 ;HIGH PRODUCT FAILED 9164 777777 774000 AR2=V2 ;EXPECTED RESULT IN AC+1 9165 036412 312 05 0 00 044144 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9166 036413 004 05 0 00 034062 ER4 AC+1,34062 ;LOW PRODUCT FAILED 9167 004000 AEE=XX ;INITIAL C(E) 9168 036414 312 02 0 00 044013 CAME E,[XX] ;WAS C(E) CLOBBERED? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-8 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0188 9169 036415 005 02 0 00 034063 ER5 E,34063 ;C(E) WAS CLOBBERED 9170 036416 321 06 0 00 036404 JUMPL AC+2,F34060 ;LOOP ON ERROR SWITCH^ 9171 9172 003407 ADR=ADR+1 9173 010000 XX=XX+XX 9174 IFE XX, 9175 9176 ;MULTIPLY A RIPPLED ONE BY -1 9177 IFG XX,< 9178 777777 777777 V1=-1 9179 777777 770000 V2=-XX> 9180 IFL XX,< 9181 V1=1 9182 V2=0> 9183 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9184 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9185 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9186 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9187 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9188 9189 777777 777777 F34070: AA1=-1 ;INITIAL C(AC) 9190 036417 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9191 000000 AA2=0 ;INITIAL C(AC+1) 9192 036420 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9193 010000 AEE=XX ;INITIAL C(E) 9194 036421 200 02 0 00 044014 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9195 036422 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9196 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9197 036423 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9198 036424 003 04 0 00 034071 ER3 AC,34071 ;HIGH PRODUCT FAILED 9199 777777 770000 AR2=V2 ;EXPECTED RESULT IN AC+1 9200 036425 312 05 0 00 044145 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9201 036426 004 05 0 00 034072 ER4 AC+1,34072 ;LOW PRODUCT FAILED 9202 010000 AEE=XX ;INITIAL C(E) 9203 036427 312 02 0 00 044014 CAME E,[XX] ;WAS C(E) CLOBBERED? 9204 036430 005 02 0 00 034073 ER5 E,34073 ;C(E) WAS CLOBBERED 9205 036431 321 06 0 00 036417 JUMPL AC+2,F34070 ;LOOP ON ERROR SWITCH^ 9206 9207 003410 ADR=ADR+1 9208 020000 XX=XX+XX 9209 IFE XX, 9210 9211 ;MULTIPLY A RIPPLED ONE BY -1 9212 IFG XX,< 9213 777777 777777 V1=-1 9214 777777 760000 V2=-XX> 9215 IFL XX,< 9216 V1=1 9217 V2=0> 9218 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9219 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9220 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9221 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9222 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9223 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-9 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0189 9224 777777 777777 F34100: AA1=-1 ;INITIAL C(AC) 9225 036432 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9226 000000 AA2=0 ;INITIAL C(AC+1) 9227 036433 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9228 020000 AEE=XX ;INITIAL C(E) 9229 036434 200 02 0 00 044015 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9230 036435 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9231 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9232 036436 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9233 036437 003 04 0 00 034101 ER3 AC,34101 ;HIGH PRODUCT FAILED 9234 777777 760000 AR2=V2 ;EXPECTED RESULT IN AC+1 9235 036440 312 05 0 00 044146 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9236 036441 004 05 0 00 034102 ER4 AC+1,34102 ;LOW PRODUCT FAILED 9237 020000 AEE=XX ;INITIAL C(E) 9238 036442 312 02 0 00 044015 CAME E,[XX] ;WAS C(E) CLOBBERED? 9239 036443 005 02 0 00 034103 ER5 E,34103 ;C(E) WAS CLOBBERED 9240 036444 321 06 0 00 036432 JUMPL AC+2,F34100 ;LOOP ON ERROR SWITCH^ 9241 9242 003411 ADR=ADR+1 9243 040000 XX=XX+XX 9244 IFE XX, 9245 9246 ;MULTIPLY A RIPPLED ONE BY -1 9247 IFG XX,< 9248 777777 777777 V1=-1 9249 777777 740000 V2=-XX> 9250 IFL XX,< 9251 V1=1 9252 V2=0> 9253 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9254 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9255 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9256 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9257 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9258 9259 777777 777777 F34110: AA1=-1 ;INITIAL C(AC) 9260 036445 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9261 000000 AA2=0 ;INITIAL C(AC+1) 9262 036446 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9263 040000 AEE=XX ;INITIAL C(E) 9264 036447 200 02 0 00 044016 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9265 036450 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9266 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9267 036451 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9268 036452 003 04 0 00 034111 ER3 AC,34111 ;HIGH PRODUCT FAILED 9269 777777 740000 AR2=V2 ;EXPECTED RESULT IN AC+1 9270 036453 312 05 0 00 044147 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9271 036454 004 05 0 00 034112 ER4 AC+1,34112 ;LOW PRODUCT FAILED 9272 040000 AEE=XX ;INITIAL C(E) 9273 036455 312 02 0 00 044016 CAME E,[XX] ;WAS C(E) CLOBBERED? 9274 036456 005 02 0 00 034113 ER5 E,34113 ;C(E) WAS CLOBBERED 9275 036457 321 06 0 00 036445 JUMPL AC+2,F34110 ;LOOP ON ERROR SWITCH^ 9276 9277 003412 ADR=ADR+1 9278 100000 XX=XX+XX DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-10 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0190 9279 IFE XX, 9280 9281 ;MULTIPLY A RIPPLED ONE BY -1 9282 IFG XX,< 9283 777777 777777 V1=-1 9284 777777 700000 V2=-XX> 9285 IFL XX,< 9286 V1=1 9287 V2=0> 9288 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9289 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9290 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9291 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9292 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9293 9294 777777 777777 F34120: AA1=-1 ;INITIAL C(AC) 9295 036460 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9296 000000 AA2=0 ;INITIAL C(AC+1) 9297 036461 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9298 100000 AEE=XX ;INITIAL C(E) 9299 036462 200 02 0 00 044017 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9300 036463 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9301 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9302 036464 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9303 036465 003 04 0 00 034121 ER3 AC,34121 ;HIGH PRODUCT FAILED 9304 777777 700000 AR2=V2 ;EXPECTED RESULT IN AC+1 9305 036466 312 05 0 00 044150 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9306 036467 004 05 0 00 034122 ER4 AC+1,34122 ;LOW PRODUCT FAILED 9307 100000 AEE=XX ;INITIAL C(E) 9308 036470 312 02 0 00 044017 CAME E,[XX] ;WAS C(E) CLOBBERED? 9309 036471 005 02 0 00 034123 ER5 E,34123 ;C(E) WAS CLOBBERED 9310 036472 321 06 0 00 036460 JUMPL AC+2,F34120 ;LOOP ON ERROR SWITCH^ 9311 9312 003413 ADR=ADR+1 9313 200000 XX=XX+XX 9314 IFE XX, 9315 9316 ;MULTIPLY A RIPPLED ONE BY -1 9317 IFG XX,< 9318 777777 777777 V1=-1 9319 777777 600000 V2=-XX> 9320 IFL XX,< 9321 V1=1 9322 V2=0> 9323 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9324 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9325 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9326 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9327 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9328 9329 777777 777777 F34130: AA1=-1 ;INITIAL C(AC) 9330 036473 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9331 000000 AA2=0 ;INITIAL C(AC+1) 9332 036474 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9333 200000 AEE=XX ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-11 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0191 9334 036475 200 02 0 00 044020 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9335 036476 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9336 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9337 036477 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9338 036500 003 04 0 00 034131 ER3 AC,34131 ;HIGH PRODUCT FAILED 9339 777777 600000 AR2=V2 ;EXPECTED RESULT IN AC+1 9340 036501 312 05 0 00 044151 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9341 036502 004 05 0 00 034132 ER4 AC+1,34132 ;LOW PRODUCT FAILED 9342 200000 AEE=XX ;INITIAL C(E) 9343 036503 312 02 0 00 044020 CAME E,[XX] ;WAS C(E) CLOBBERED? 9344 036504 005 02 0 00 034133 ER5 E,34133 ;C(E) WAS CLOBBERED 9345 036505 321 06 0 00 036473 JUMPL AC+2,F34130 ;LOOP ON ERROR SWITCH^ 9346 9347 003414 ADR=ADR+1 9348 400000 XX=XX+XX 9349 IFE XX, 9350 9351 ;MULTIPLY A RIPPLED ONE BY -1 9352 IFG XX,< 9353 777777 777777 V1=-1 9354 777777 400000 V2=-XX> 9355 IFL XX,< 9356 V1=1 9357 V2=0> 9358 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9359 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9360 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9361 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9362 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9363 9364 777777 777777 F34140: AA1=-1 ;INITIAL C(AC) 9365 036506 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9366 000000 AA2=0 ;INITIAL C(AC+1) 9367 036507 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9368 400000 AEE=XX ;INITIAL C(E) 9369 036510 200 02 0 00 044021 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9370 036511 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9371 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9372 036512 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9373 036513 003 04 0 00 034141 ER3 AC,34141 ;HIGH PRODUCT FAILED 9374 777777 400000 AR2=V2 ;EXPECTED RESULT IN AC+1 9375 036514 312 05 0 00 044152 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9376 036515 004 05 0 00 034142 ER4 AC+1,34142 ;LOW PRODUCT FAILED 9377 400000 AEE=XX ;INITIAL C(E) 9378 036516 312 02 0 00 044021 CAME E,[XX] ;WAS C(E) CLOBBERED? 9379 036517 005 02 0 00 034143 ER5 E,34143 ;C(E) WAS CLOBBERED 9380 036520 321 06 0 00 036506 JUMPL AC+2,F34140 ;LOOP ON ERROR SWITCH^ 9381 9382 003415 ADR=ADR+1 9383 000001 000000 XX=XX+XX 9384 IFE XX, 9385 9386 ;MULTIPLY A RIPPLED ONE BY -1 9387 IFG XX,< 9388 777777 777777 V1=-1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-12 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0192 9389 777777 000000 V2=-XX> 9390 IFL XX,< 9391 V1=1 9392 V2=0> 9393 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9394 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9395 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9396 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9397 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9398 9399 777777 777777 F34150: AA1=-1 ;INITIAL C(AC) 9400 036521 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9401 000000 AA2=0 ;INITIAL C(AC+1) 9402 036522 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9403 000001 000000 AEE=XX ;INITIAL C(E) 9404 036523 200 02 0 00 044022 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9405 036524 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9406 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9407 036525 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9408 036526 003 04 0 00 034151 ER3 AC,34151 ;HIGH PRODUCT FAILED 9409 777777 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 9410 036527 312 05 0 00 044153 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9411 036530 004 05 0 00 034152 ER4 AC+1,34152 ;LOW PRODUCT FAILED 9412 000001 000000 AEE=XX ;INITIAL C(E) 9413 036531 312 02 0 00 044022 CAME E,[XX] ;WAS C(E) CLOBBERED? 9414 036532 005 02 0 00 034153 ER5 E,34153 ;C(E) WAS CLOBBERED 9415 036533 321 06 0 00 036521 JUMPL AC+2,F34150 ;LOOP ON ERROR SWITCH^ 9416 9417 003416 ADR=ADR+1 9418 000002 000000 XX=XX+XX 9419 IFE XX, 9420 9421 ;MULTIPLY A RIPPLED ONE BY -1 9422 IFG XX,< 9423 777777 777777 V1=-1 9424 777776 000000 V2=-XX> 9425 IFL XX,< 9426 V1=1 9427 V2=0> 9428 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9429 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9430 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9431 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9432 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9433 9434 777777 777777 F34160: AA1=-1 ;INITIAL C(AC) 9435 036534 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9436 000000 AA2=0 ;INITIAL C(AC+1) 9437 036535 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9438 000002 000000 AEE=XX ;INITIAL C(E) 9439 036536 200 02 0 00 044023 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9440 036537 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9441 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9442 036540 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9443 036541 003 04 0 00 034161 ER3 AC,34161 ;HIGH PRODUCT FAILED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-13 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0193 9444 777776 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 9445 036542 312 05 0 00 044154 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9446 036543 004 05 0 00 034162 ER4 AC+1,34162 ;LOW PRODUCT FAILED 9447 000002 000000 AEE=XX ;INITIAL C(E) 9448 036544 312 02 0 00 044023 CAME E,[XX] ;WAS C(E) CLOBBERED? 9449 036545 005 02 0 00 034163 ER5 E,34163 ;C(E) WAS CLOBBERED 9450 036546 321 06 0 00 036534 JUMPL AC+2,F34160 ;LOOP ON ERROR SWITCH^ 9451 9452 003417 ADR=ADR+1 9453 000004 000000 XX=XX+XX 9454 IFE XX, 9455 9456 ;MULTIPLY A RIPPLED ONE BY -1 9457 IFG XX,< 9458 777777 777777 V1=-1 9459 777774 000000 V2=-XX> 9460 IFL XX,< 9461 V1=1 9462 V2=0> 9463 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9464 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9465 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9466 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9467 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9468 9469 777777 777777 F34170: AA1=-1 ;INITIAL C(AC) 9470 036547 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9471 000000 AA2=0 ;INITIAL C(AC+1) 9472 036550 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9473 000004 000000 AEE=XX ;INITIAL C(E) 9474 036551 200 02 0 00 044024 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9475 036552 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9476 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9477 036553 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9478 036554 003 04 0 00 034171 ER3 AC,34171 ;HIGH PRODUCT FAILED 9479 777774 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 9480 036555 312 05 0 00 044155 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9481 036556 004 05 0 00 034172 ER4 AC+1,34172 ;LOW PRODUCT FAILED 9482 000004 000000 AEE=XX ;INITIAL C(E) 9483 036557 312 02 0 00 044024 CAME E,[XX] ;WAS C(E) CLOBBERED? 9484 036560 005 02 0 00 034173 ER5 E,34173 ;C(E) WAS CLOBBERED 9485 036561 321 06 0 00 036547 JUMPL AC+2,F34170 ;LOOP ON ERROR SWITCH^ 9486 9487 003420 ADR=ADR+1 9488 000010 000000 XX=XX+XX 9489 IFE XX, 9490 9491 ;MULTIPLY A RIPPLED ONE BY -1 9492 IFG XX,< 9493 777777 777777 V1=-1 9494 777770 000000 V2=-XX> 9495 IFL XX,< 9496 V1=1 9497 V2=0> 9498 MOP1 (\ADR,-1,0,XX,V1,V2)^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-14 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0194 9499 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9500 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9501 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9502 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9503 9504 777777 777777 F34200: AA1=-1 ;INITIAL C(AC) 9505 036562 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9506 000000 AA2=0 ;INITIAL C(AC+1) 9507 036563 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9508 000010 000000 AEE=XX ;INITIAL C(E) 9509 036564 200 02 0 00 044025 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9510 036565 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9511 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9512 036566 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9513 036567 003 04 0 00 034201 ER3 AC,34201 ;HIGH PRODUCT FAILED 9514 777770 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 9515 036570 312 05 0 00 044156 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9516 036571 004 05 0 00 034202 ER4 AC+1,34202 ;LOW PRODUCT FAILED 9517 000010 000000 AEE=XX ;INITIAL C(E) 9518 036572 312 02 0 00 044025 CAME E,[XX] ;WAS C(E) CLOBBERED? 9519 036573 005 02 0 00 034203 ER5 E,34203 ;C(E) WAS CLOBBERED 9520 036574 321 06 0 00 036562 JUMPL AC+2,F34200 ;LOOP ON ERROR SWITCH^ 9521 9522 003421 ADR=ADR+1 9523 000020 000000 XX=XX+XX 9524 IFE XX, 9525 9526 ;MULTIPLY A RIPPLED ONE BY -1 9527 IFG XX,< 9528 777777 777777 V1=-1 9529 777760 000000 V2=-XX> 9530 IFL XX,< 9531 V1=1 9532 V2=0> 9533 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9534 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9535 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9536 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9537 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9538 9539 777777 777777 F34210: AA1=-1 ;INITIAL C(AC) 9540 036575 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9541 000000 AA2=0 ;INITIAL C(AC+1) 9542 036576 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9543 000020 000000 AEE=XX ;INITIAL C(E) 9544 036577 200 02 0 00 044026 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9545 036600 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9546 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9547 036601 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9548 036602 003 04 0 00 034211 ER3 AC,34211 ;HIGH PRODUCT FAILED 9549 777760 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 9550 036603 312 05 0 00 044157 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9551 036604 004 05 0 00 034212 ER4 AC+1,34212 ;LOW PRODUCT FAILED 9552 000020 000000 AEE=XX ;INITIAL C(E) 9553 036605 312 02 0 00 044026 CAME E,[XX] ;WAS C(E) CLOBBERED? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-15 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0195 9554 036606 005 02 0 00 034213 ER5 E,34213 ;C(E) WAS CLOBBERED 9555 036607 321 06 0 00 036575 JUMPL AC+2,F34210 ;LOOP ON ERROR SWITCH^ 9556 9557 003422 ADR=ADR+1 9558 000040 000000 XX=XX+XX 9559 IFE XX, 9560 9561 ;MULTIPLY A RIPPLED ONE BY -1 9562 IFG XX,< 9563 777777 777777 V1=-1 9564 777740 000000 V2=-XX> 9565 IFL XX,< 9566 V1=1 9567 V2=0> 9568 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9569 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9570 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9571 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9572 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9573 9574 777777 777777 F34220: AA1=-1 ;INITIAL C(AC) 9575 036610 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9576 000000 AA2=0 ;INITIAL C(AC+1) 9577 036611 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9578 000040 000000 AEE=XX ;INITIAL C(E) 9579 036612 200 02 0 00 044027 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9580 036613 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9581 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9582 036614 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9583 036615 003 04 0 00 034221 ER3 AC,34221 ;HIGH PRODUCT FAILED 9584 777740 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 9585 036616 312 05 0 00 044160 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9586 036617 004 05 0 00 034222 ER4 AC+1,34222 ;LOW PRODUCT FAILED 9587 000040 000000 AEE=XX ;INITIAL C(E) 9588 036620 312 02 0 00 044027 CAME E,[XX] ;WAS C(E) CLOBBERED? 9589 036621 005 02 0 00 034223 ER5 E,34223 ;C(E) WAS CLOBBERED 9590 036622 321 06 0 00 036610 JUMPL AC+2,F34220 ;LOOP ON ERROR SWITCH^ 9591 9592 003423 ADR=ADR+1 9593 000100 000000 XX=XX+XX 9594 IFE XX, 9595 9596 ;MULTIPLY A RIPPLED ONE BY -1 9597 IFG XX,< 9598 777777 777777 V1=-1 9599 777700 000000 V2=-XX> 9600 IFL XX,< 9601 V1=1 9602 V2=0> 9603 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9604 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9605 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9606 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9607 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9608 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-16 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0196 9609 777777 777777 F34230: AA1=-1 ;INITIAL C(AC) 9610 036623 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9611 000000 AA2=0 ;INITIAL C(AC+1) 9612 036624 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9613 000100 000000 AEE=XX ;INITIAL C(E) 9614 036625 200 02 0 00 044030 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9615 036626 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9616 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9617 036627 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9618 036630 003 04 0 00 034231 ER3 AC,34231 ;HIGH PRODUCT FAILED 9619 777700 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 9620 036631 312 05 0 00 044161 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9621 036632 004 05 0 00 034232 ER4 AC+1,34232 ;LOW PRODUCT FAILED 9622 000100 000000 AEE=XX ;INITIAL C(E) 9623 036633 312 02 0 00 044030 CAME E,[XX] ;WAS C(E) CLOBBERED? 9624 036634 005 02 0 00 034233 ER5 E,34233 ;C(E) WAS CLOBBERED 9625 036635 321 06 0 00 036623 JUMPL AC+2,F34230 ;LOOP ON ERROR SWITCH^ 9626 9627 003424 ADR=ADR+1 9628 000200 000000 XX=XX+XX 9629 IFE XX, 9630 9631 ;MULTIPLY A RIPPLED ONE BY -1 9632 IFG XX,< 9633 777777 777777 V1=-1 9634 777600 000000 V2=-XX> 9635 IFL XX,< 9636 V1=1 9637 V2=0> 9638 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9639 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9640 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9641 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9642 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9643 9644 777777 777777 F34240: AA1=-1 ;INITIAL C(AC) 9645 036636 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9646 000000 AA2=0 ;INITIAL C(AC+1) 9647 036637 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9648 000200 000000 AEE=XX ;INITIAL C(E) 9649 036640 200 02 0 00 044031 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9650 036641 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9651 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9652 036642 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9653 036643 003 04 0 00 034241 ER3 AC,34241 ;HIGH PRODUCT FAILED 9654 777600 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 9655 036644 312 05 0 00 044162 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9656 036645 004 05 0 00 034242 ER4 AC+1,34242 ;LOW PRODUCT FAILED 9657 000200 000000 AEE=XX ;INITIAL C(E) 9658 036646 312 02 0 00 044031 CAME E,[XX] ;WAS C(E) CLOBBERED? 9659 036647 005 02 0 00 034243 ER5 E,34243 ;C(E) WAS CLOBBERED 9660 036650 321 06 0 00 036636 JUMPL AC+2,F34240 ;LOOP ON ERROR SWITCH^ 9661 9662 003425 ADR=ADR+1 9663 000400 000000 XX=XX+XX DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-17 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0197 9664 IFE XX, 9665 9666 ;MULTIPLY A RIPPLED ONE BY -1 9667 IFG XX,< 9668 777777 777777 V1=-1 9669 777400 000000 V2=-XX> 9670 IFL XX,< 9671 V1=1 9672 V2=0> 9673 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9674 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9675 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9676 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9677 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9678 9679 777777 777777 F34250: AA1=-1 ;INITIAL C(AC) 9680 036651 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9681 000000 AA2=0 ;INITIAL C(AC+1) 9682 036652 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9683 000400 000000 AEE=XX ;INITIAL C(E) 9684 036653 200 02 0 00 044032 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9685 036654 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9686 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9687 036655 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9688 036656 003 04 0 00 034251 ER3 AC,34251 ;HIGH PRODUCT FAILED 9689 777400 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 9690 036657 312 05 0 00 044163 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9691 036660 004 05 0 00 034252 ER4 AC+1,34252 ;LOW PRODUCT FAILED 9692 000400 000000 AEE=XX ;INITIAL C(E) 9693 036661 312 02 0 00 044032 CAME E,[XX] ;WAS C(E) CLOBBERED? 9694 036662 005 02 0 00 034253 ER5 E,34253 ;C(E) WAS CLOBBERED 9695 036663 321 06 0 00 036651 JUMPL AC+2,F34250 ;LOOP ON ERROR SWITCH^ 9696 9697 003426 ADR=ADR+1 9698 001000 000000 XX=XX+XX 9699 IFE XX, 9700 9701 ;MULTIPLY A RIPPLED ONE BY -1 9702 IFG XX,< 9703 777777 777777 V1=-1 9704 777000 000000 V2=-XX> 9705 IFL XX,< 9706 V1=1 9707 V2=0> 9708 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9709 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9710 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9711 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9712 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9713 9714 777777 777777 F34260: AA1=-1 ;INITIAL C(AC) 9715 036664 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9716 000000 AA2=0 ;INITIAL C(AC+1) 9717 036665 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9718 001000 000000 AEE=XX ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-18 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0198 9719 036666 200 02 0 00 044033 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9720 036667 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9721 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9722 036670 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9723 036671 003 04 0 00 034261 ER3 AC,34261 ;HIGH PRODUCT FAILED 9724 777000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 9725 036672 312 05 0 00 044164 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9726 036673 004 05 0 00 034262 ER4 AC+1,34262 ;LOW PRODUCT FAILED 9727 001000 000000 AEE=XX ;INITIAL C(E) 9728 036674 312 02 0 00 044033 CAME E,[XX] ;WAS C(E) CLOBBERED? 9729 036675 005 02 0 00 034263 ER5 E,34263 ;C(E) WAS CLOBBERED 9730 036676 321 06 0 00 036664 JUMPL AC+2,F34260 ;LOOP ON ERROR SWITCH^ 9731 9732 003427 ADR=ADR+1 9733 002000 000000 XX=XX+XX 9734 IFE XX, 9735 9736 ;MULTIPLY A RIPPLED ONE BY -1 9737 IFG XX,< 9738 777777 777777 V1=-1 9739 776000 000000 V2=-XX> 9740 IFL XX,< 9741 V1=1 9742 V2=0> 9743 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9744 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9745 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9746 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9747 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9748 9749 777777 777777 F34270: AA1=-1 ;INITIAL C(AC) 9750 036677 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9751 000000 AA2=0 ;INITIAL C(AC+1) 9752 036700 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9753 002000 000000 AEE=XX ;INITIAL C(E) 9754 036701 200 02 0 00 044034 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9755 036702 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9756 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9757 036703 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9758 036704 003 04 0 00 034271 ER3 AC,34271 ;HIGH PRODUCT FAILED 9759 776000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 9760 036705 312 05 0 00 044165 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9761 036706 004 05 0 00 034272 ER4 AC+1,34272 ;LOW PRODUCT FAILED 9762 002000 000000 AEE=XX ;INITIAL C(E) 9763 036707 312 02 0 00 044034 CAME E,[XX] ;WAS C(E) CLOBBERED? 9764 036710 005 02 0 00 034273 ER5 E,34273 ;C(E) WAS CLOBBERED 9765 036711 321 06 0 00 036677 JUMPL AC+2,F34270 ;LOOP ON ERROR SWITCH^ 9766 9767 003430 ADR=ADR+1 9768 004000 000000 XX=XX+XX 9769 IFE XX, 9770 9771 ;MULTIPLY A RIPPLED ONE BY -1 9772 IFG XX,< 9773 777777 777777 V1=-1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-19 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0199 9774 774000 000000 V2=-XX> 9775 IFL XX,< 9776 V1=1 9777 V2=0> 9778 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9779 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9780 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9781 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9782 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9783 9784 777777 777777 F34300: AA1=-1 ;INITIAL C(AC) 9785 036712 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9786 000000 AA2=0 ;INITIAL C(AC+1) 9787 036713 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9788 004000 000000 AEE=XX ;INITIAL C(E) 9789 036714 200 02 0 00 044035 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9790 036715 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9791 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9792 036716 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9793 036717 003 04 0 00 034301 ER3 AC,34301 ;HIGH PRODUCT FAILED 9794 774000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 9795 036720 312 05 0 00 044166 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9796 036721 004 05 0 00 034302 ER4 AC+1,34302 ;LOW PRODUCT FAILED 9797 004000 000000 AEE=XX ;INITIAL C(E) 9798 036722 312 02 0 00 044035 CAME E,[XX] ;WAS C(E) CLOBBERED? 9799 036723 005 02 0 00 034303 ER5 E,34303 ;C(E) WAS CLOBBERED 9800 036724 321 06 0 00 036712 JUMPL AC+2,F34300 ;LOOP ON ERROR SWITCH^ 9801 9802 003431 ADR=ADR+1 9803 010000 000000 XX=XX+XX 9804 IFE XX, 9805 9806 ;MULTIPLY A RIPPLED ONE BY -1 9807 IFG XX,< 9808 777777 777777 V1=-1 9809 770000 000000 V2=-XX> 9810 IFL XX,< 9811 V1=1 9812 V2=0> 9813 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9814 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9815 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9816 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9817 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9818 9819 777777 777777 F34310: AA1=-1 ;INITIAL C(AC) 9820 036725 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9821 000000 AA2=0 ;INITIAL C(AC+1) 9822 036726 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9823 010000 000000 AEE=XX ;INITIAL C(E) 9824 036727 200 02 0 00 044036 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9825 036730 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9826 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9827 036731 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9828 036732 003 04 0 00 034311 ER3 AC,34311 ;HIGH PRODUCT FAILED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-20 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0200 9829 770000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 9830 036733 312 05 0 00 044167 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9831 036734 004 05 0 00 034312 ER4 AC+1,34312 ;LOW PRODUCT FAILED 9832 010000 000000 AEE=XX ;INITIAL C(E) 9833 036735 312 02 0 00 044036 CAME E,[XX] ;WAS C(E) CLOBBERED? 9834 036736 005 02 0 00 034313 ER5 E,34313 ;C(E) WAS CLOBBERED 9835 036737 321 06 0 00 036725 JUMPL AC+2,F34310 ;LOOP ON ERROR SWITCH^ 9836 9837 003432 ADR=ADR+1 9838 020000 000000 XX=XX+XX 9839 IFE XX, 9840 9841 ;MULTIPLY A RIPPLED ONE BY -1 9842 IFG XX,< 9843 777777 777777 V1=-1 9844 760000 000000 V2=-XX> 9845 IFL XX,< 9846 V1=1 9847 V2=0> 9848 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9849 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9850 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9851 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9852 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9853 9854 777777 777777 F34320: AA1=-1 ;INITIAL C(AC) 9855 036740 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9856 000000 AA2=0 ;INITIAL C(AC+1) 9857 036741 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9858 020000 000000 AEE=XX ;INITIAL C(E) 9859 036742 200 02 0 00 044037 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9860 036743 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9861 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9862 036744 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9863 036745 003 04 0 00 034321 ER3 AC,34321 ;HIGH PRODUCT FAILED 9864 760000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 9865 036746 312 05 0 00 044170 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9866 036747 004 05 0 00 034322 ER4 AC+1,34322 ;LOW PRODUCT FAILED 9867 020000 000000 AEE=XX ;INITIAL C(E) 9868 036750 312 02 0 00 044037 CAME E,[XX] ;WAS C(E) CLOBBERED? 9869 036751 005 02 0 00 034323 ER5 E,34323 ;C(E) WAS CLOBBERED 9870 036752 321 06 0 00 036740 JUMPL AC+2,F34320 ;LOOP ON ERROR SWITCH^ 9871 9872 003433 ADR=ADR+1 9873 040000 000000 XX=XX+XX 9874 IFE XX, 9875 9876 ;MULTIPLY A RIPPLED ONE BY -1 9877 IFG XX,< 9878 777777 777777 V1=-1 9879 740000 000000 V2=-XX> 9880 IFL XX,< 9881 V1=1 9882 V2=0> 9883 MOP1 (\ADR,-1,0,XX,V1,V2)^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-21 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0201 9884 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9885 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9886 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9887 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9888 9889 777777 777777 F34330: AA1=-1 ;INITIAL C(AC) 9890 036753 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9891 000000 AA2=0 ;INITIAL C(AC+1) 9892 036754 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9893 040000 000000 AEE=XX ;INITIAL C(E) 9894 036755 200 02 0 00 044040 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9895 036756 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9896 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9897 036757 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9898 036760 003 04 0 00 034331 ER3 AC,34331 ;HIGH PRODUCT FAILED 9899 740000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 9900 036761 312 05 0 00 044171 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9901 036762 004 05 0 00 034332 ER4 AC+1,34332 ;LOW PRODUCT FAILED 9902 040000 000000 AEE=XX ;INITIAL C(E) 9903 036763 312 02 0 00 044040 CAME E,[XX] ;WAS C(E) CLOBBERED? 9904 036764 005 02 0 00 034333 ER5 E,34333 ;C(E) WAS CLOBBERED 9905 036765 321 06 0 00 036753 JUMPL AC+2,F34330 ;LOOP ON ERROR SWITCH^ 9906 9907 003434 ADR=ADR+1 9908 100000 000000 XX=XX+XX 9909 IFE XX, 9910 9911 ;MULTIPLY A RIPPLED ONE BY -1 9912 IFG XX,< 9913 777777 777777 V1=-1 9914 700000 000000 V2=-XX> 9915 IFL XX,< 9916 V1=1 9917 V2=0> 9918 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9919 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9920 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9921 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9922 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9923 9924 777777 777777 F34340: AA1=-1 ;INITIAL C(AC) 9925 036766 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9926 000000 AA2=0 ;INITIAL C(AC+1) 9927 036767 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9928 100000 000000 AEE=XX ;INITIAL C(E) 9929 036770 200 02 0 00 044041 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9930 036771 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9931 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9932 036772 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9933 036773 003 04 0 00 034341 ER3 AC,34341 ;HIGH PRODUCT FAILED 9934 700000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 9935 036774 312 05 0 00 044172 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9936 036775 004 05 0 00 034342 ER4 AC+1,34342 ;LOW PRODUCT FAILED 9937 100000 000000 AEE=XX ;INITIAL C(E) 9938 036776 312 02 0 00 044041 CAME E,[XX] ;WAS C(E) CLOBBERED? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-22 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0202 9939 036777 005 02 0 00 034343 ER5 E,34343 ;C(E) WAS CLOBBERED 9940 037000 321 06 0 00 036766 JUMPL AC+2,F34340 ;LOOP ON ERROR SWITCH^ 9941 9942 003435 ADR=ADR+1 9943 200000 000000 XX=XX+XX 9944 IFE XX, 9945 9946 ;MULTIPLY A RIPPLED ONE BY -1 9947 IFG XX,< 9948 777777 777777 V1=-1 9949 600000 000000 V2=-XX> 9950 IFL XX,< 9951 V1=1 9952 V2=0> 9953 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9954 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9955 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9956 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9957 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9958 9959 777777 777777 F34350: AA1=-1 ;INITIAL C(AC) 9960 037001 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9961 000000 AA2=0 ;INITIAL C(AC+1) 9962 037002 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9963 200000 000000 AEE=XX ;INITIAL C(E) 9964 037003 200 02 0 00 044042 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 9965 037004 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 9966 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 9967 037005 312 04 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 9968 037006 003 04 0 00 034351 ER3 AC,34351 ;HIGH PRODUCT FAILED 9969 600000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 9970 037007 312 05 0 00 044173 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 9971 037010 004 05 0 00 034352 ER4 AC+1,34352 ;LOW PRODUCT FAILED 9972 200000 000000 AEE=XX ;INITIAL C(E) 9973 037011 312 02 0 00 044042 CAME E,[XX] ;WAS C(E) CLOBBERED? 9974 037012 005 02 0 00 034353 ER5 E,34353 ;C(E) WAS CLOBBERED 9975 037013 321 06 0 00 037001 JUMPL AC+2,F34350 ;LOOP ON ERROR SWITCH^ 9976 9977 003436 ADR=ADR+1 9978 400000 000000 XX=XX+XX 9979 IFE XX, 9980 9981 ;MULTIPLY A RIPPLED ONE BY -1 9982 IFG XX,< 9983 V1=-1 9984 V2=-XX> 9985 IFL XX,< 9986 000001 V1=1 9987 000000 V2=0> 9988 MOP1 (\ADR,-1,0,XX,V1,V2)^ 9989 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[0] AND 9990 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 9991 ;AND E AGAINST [V1], [V2] AND [XX] RESPECTIVELY. 9992 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 9993 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 13-23 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0203 9994 777777 777777 F34360: AA1=-1 ;INITIAL C(AC) 9995 037014 200 04 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 9996 000000 AA2=0 ;INITIAL C(AC+1) 9997 037015 200 05 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 9998 400000 000000 AEE=XX ;INITIAL C(E) 9999 037016 200 02 0 00 044043 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 10000 037017 224 04 0 00 000002 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10001 000001 AR1=V1 ;EXPECTED RESULT IN AC 10002 037020 312 04 0 00 044000 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10003 037021 003 04 0 00 034361 ER3 AC,34361 ;HIGH PRODUCT FAILED 10004 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 10005 037022 312 05 0 00 043776 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10006 037023 004 05 0 00 034362 ER4 AC+1,34362 ;LOW PRODUCT FAILED 10007 400000 000000 AEE=XX ;INITIAL C(E) 10008 037024 312 02 0 00 044043 CAME E,[XX] ;WAS C(E) CLOBBERED? 10009 037025 005 02 0 00 034363 ER5 E,34363 ;C(E) WAS CLOBBERED 10010 037026 321 06 0 00 037014 JUMPL AC+2,F34360 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0204 10011 000003 AC=3 10012 000001 E=&17 10013 SAVEAC (1,1)^ 10014 037027 201 05 0 00 037027 MOVEI AC+2,. ;SAVE TEST PC 10015 037030 202 05 0 00 030051 MOVEM AC+2,TESTPC 10016 037031 201 05 0 00 000005 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH 10017 037032 202 05 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ 10018 000000 XX=0 10019 10020 REPEAT ^D35,< ;LAST CASE IS DIFFERENT 10021 ADR=ADR+1 10022 XX=XX+XX 10023 IFE XX, 10024 10025 ;MULTIPLY -1 BY A RIPPLED 1 10026 IFG XX,< 10027 V1=-1 10028 V2=-XX> 10029 IFL XX,< 10030 V1=1 10031 V2=0> 10032 MOP1 (\ADR,XX,0,-1,V1,V2)> 10033 ;LAST CASE IS DIFFERENT 10034 003437 ADR=ADR+1 10035 000000 XX=XX+XX 10036 000001 IFE XX, 10037 10038 ;MULTIPLY -1 BY A RIPPLED 1 10039 IFG XX,< 10040 777777 777777 V1=-1 10041 777777 777777 V2=-XX> 10042 IFL XX,< 10043 V1=1 10044 V2=0> 10045 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10046 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10047 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10048 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10049 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10050 10051 000001 F34370: AA1=XX ;INITIAL C(AC) 10052 037033 200 03 0 00 044000 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10053 000000 AA2=0 ;INITIAL C(AC+1) 10054 037034 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10055 777777 777777 AEE=-1 ;INITIAL C(E) 10056 037035 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10057 037036 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10058 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10059 037037 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10060 037040 003 03 0 00 034371 ER3 AC,34371 ;HIGH PRODUCT FAILED 10061 777777 777777 AR2=V2 ;EXPECTED RESULT IN AC+1 10062 037041 312 04 0 00 043777 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10063 037042 004 04 0 00 034372 ER4 AC+1,34372 ;LOW PRODUCT FAILED 10064 777777 777777 AEE=-1 ;INITIAL C(E) 10065 037043 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-1 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0205 10066 037044 005 01 0 00 034373 ER5 E,34373 ;C(E) WAS CLOBBERED 10067 037045 321 05 0 00 037033 JUMPL AC+2,F34370 ;LOOP ON ERROR SWITCH^ 10068 ;LAST CASE IS DIFFERENT 10069 003440 ADR=ADR+1 10070 000002 XX=XX+XX 10071 IFE XX, 10072 10073 ;MULTIPLY -1 BY A RIPPLED 1 10074 IFG XX,< 10075 777777 777777 V1=-1 10076 777777 777776 V2=-XX> 10077 IFL XX,< 10078 V1=1 10079 V2=0> 10080 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10081 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10082 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10083 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10084 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10085 10086 000002 F34400: AA1=XX ;INITIAL C(AC) 10087 037046 200 03 0 00 044001 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10088 000000 AA2=0 ;INITIAL C(AC+1) 10089 037047 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10090 777777 777777 AEE=-1 ;INITIAL C(E) 10091 037050 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10092 037051 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10093 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10094 037052 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10095 037053 003 03 0 00 034401 ER3 AC,34401 ;HIGH PRODUCT FAILED 10096 777777 777776 AR2=V2 ;EXPECTED RESULT IN AC+1 10097 037054 312 04 0 00 044044 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10098 037055 004 04 0 00 034402 ER4 AC+1,34402 ;LOW PRODUCT FAILED 10099 777777 777777 AEE=-1 ;INITIAL C(E) 10100 037056 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10101 037057 005 01 0 00 034403 ER5 E,34403 ;C(E) WAS CLOBBERED 10102 037060 321 05 0 00 037046 JUMPL AC+2,F34400 ;LOOP ON ERROR SWITCH^ 10103 ;LAST CASE IS DIFFERENT 10104 003441 ADR=ADR+1 10105 000004 XX=XX+XX 10106 IFE XX, 10107 10108 ;MULTIPLY -1 BY A RIPPLED 1 10109 IFG XX,< 10110 777777 777777 V1=-1 10111 777777 777774 V2=-XX> 10112 IFL XX,< 10113 V1=1 10114 V2=0> 10115 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10116 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10117 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10118 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10119 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10120 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-2 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0206 10121 000004 F34410: AA1=XX ;INITIAL C(AC) 10122 037061 200 03 0 00 044002 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10123 000000 AA2=0 ;INITIAL C(AC+1) 10124 037062 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10125 777777 777777 AEE=-1 ;INITIAL C(E) 10126 037063 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10127 037064 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10128 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10129 037065 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10130 037066 003 03 0 00 034411 ER3 AC,34411 ;HIGH PRODUCT FAILED 10131 777777 777774 AR2=V2 ;EXPECTED RESULT IN AC+1 10132 037067 312 04 0 00 044123 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10133 037070 004 04 0 00 034412 ER4 AC+1,34412 ;LOW PRODUCT FAILED 10134 777777 777777 AEE=-1 ;INITIAL C(E) 10135 037071 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10136 037072 005 01 0 00 034413 ER5 E,34413 ;C(E) WAS CLOBBERED 10137 037073 321 05 0 00 037061 JUMPL AC+2,F34410 ;LOOP ON ERROR SWITCH^ 10138 ;LAST CASE IS DIFFERENT 10139 003442 ADR=ADR+1 10140 000010 XX=XX+XX 10141 IFE XX, 10142 10143 ;MULTIPLY -1 BY A RIPPLED 1 10144 IFG XX,< 10145 777777 777777 V1=-1 10146 777777 777770 V2=-XX> 10147 IFL XX,< 10148 V1=1 10149 V2=0> 10150 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10151 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10152 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10153 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10154 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10155 10156 000010 F34420: AA1=XX ;INITIAL C(AC) 10157 037074 200 03 0 00 044003 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10158 000000 AA2=0 ;INITIAL C(AC+1) 10159 037075 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10160 777777 777777 AEE=-1 ;INITIAL C(E) 10161 037076 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10162 037077 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10163 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10164 037100 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10165 037101 003 03 0 00 034421 ER3 AC,34421 ;HIGH PRODUCT FAILED 10166 777777 777770 AR2=V2 ;EXPECTED RESULT IN AC+1 10167 037102 312 04 0 00 044126 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10168 037103 004 04 0 00 034422 ER4 AC+1,34422 ;LOW PRODUCT FAILED 10169 777777 777777 AEE=-1 ;INITIAL C(E) 10170 037104 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10171 037105 005 01 0 00 034423 ER5 E,34423 ;C(E) WAS CLOBBERED 10172 037106 321 05 0 00 037074 JUMPL AC+2,F34420 ;LOOP ON ERROR SWITCH^ 10173 ;LAST CASE IS DIFFERENT 10174 003443 ADR=ADR+1 10175 000020 XX=XX+XX DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-3 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0207 10176 IFE XX, 10177 10178 ;MULTIPLY -1 BY A RIPPLED 1 10179 IFG XX,< 10180 777777 777777 V1=-1 10181 777777 777760 V2=-XX> 10182 IFL XX,< 10183 V1=1 10184 V2=0> 10185 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10186 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10187 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10188 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10189 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10190 10191 000020 F34430: AA1=XX ;INITIAL C(AC) 10192 037107 200 03 0 00 044004 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10193 000000 AA2=0 ;INITIAL C(AC+1) 10194 037110 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10195 777777 777777 AEE=-1 ;INITIAL C(E) 10196 037111 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10197 037112 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10198 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10199 037113 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10200 037114 003 03 0 00 034431 ER3 AC,34431 ;HIGH PRODUCT FAILED 10201 777777 777760 AR2=V2 ;EXPECTED RESULT IN AC+1 10202 037115 312 04 0 00 044135 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10203 037116 004 04 0 00 034432 ER4 AC+1,34432 ;LOW PRODUCT FAILED 10204 777777 777777 AEE=-1 ;INITIAL C(E) 10205 037117 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10206 037120 005 01 0 00 034433 ER5 E,34433 ;C(E) WAS CLOBBERED 10207 037121 321 05 0 00 037107 JUMPL AC+2,F34430 ;LOOP ON ERROR SWITCH^ 10208 ;LAST CASE IS DIFFERENT 10209 003444 ADR=ADR+1 10210 000040 XX=XX+XX 10211 IFE XX, 10212 10213 ;MULTIPLY -1 BY A RIPPLED 1 10214 IFG XX,< 10215 777777 777777 V1=-1 10216 777777 777740 V2=-XX> 10217 IFL XX,< 10218 V1=1 10219 V2=0> 10220 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10221 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10222 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10223 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10224 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10225 10226 000040 F34440: AA1=XX ;INITIAL C(AC) 10227 037122 200 03 0 00 044005 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10228 000000 AA2=0 ;INITIAL C(AC+1) 10229 037123 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10230 777777 777777 AEE=-1 ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-4 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0208 10231 037124 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10232 037125 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10233 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10234 037126 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10235 037127 003 03 0 00 034441 ER3 AC,34441 ;HIGH PRODUCT FAILED 10236 777777 777740 AR2=V2 ;EXPECTED RESULT IN AC+1 10237 037130 312 04 0 00 044136 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10238 037131 004 04 0 00 034442 ER4 AC+1,34442 ;LOW PRODUCT FAILED 10239 777777 777777 AEE=-1 ;INITIAL C(E) 10240 037132 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10241 037133 005 01 0 00 034443 ER5 E,34443 ;C(E) WAS CLOBBERED 10242 037134 321 05 0 00 037122 JUMPL AC+2,F34440 ;LOOP ON ERROR SWITCH^ 10243 ;LAST CASE IS DIFFERENT 10244 003445 ADR=ADR+1 10245 000100 XX=XX+XX 10246 IFE XX, 10247 10248 ;MULTIPLY -1 BY A RIPPLED 1 10249 IFG XX,< 10250 777777 777777 V1=-1 10251 777777 777700 V2=-XX> 10252 IFL XX,< 10253 V1=1 10254 V2=0> 10255 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10256 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10257 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10258 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10259 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10260 10261 000100 F34450: AA1=XX ;INITIAL C(AC) 10262 037135 200 03 0 00 044006 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10263 000000 AA2=0 ;INITIAL C(AC+1) 10264 037136 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10265 777777 777777 AEE=-1 ;INITIAL C(E) 10266 037137 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10267 037140 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10268 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10269 037141 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10270 037142 003 03 0 00 034451 ER3 AC,34451 ;HIGH PRODUCT FAILED 10271 777777 777700 AR2=V2 ;EXPECTED RESULT IN AC+1 10272 037143 312 04 0 00 044137 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10273 037144 004 04 0 00 034452 ER4 AC+1,34452 ;LOW PRODUCT FAILED 10274 777777 777777 AEE=-1 ;INITIAL C(E) 10275 037145 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10276 037146 005 01 0 00 034453 ER5 E,34453 ;C(E) WAS CLOBBERED 10277 037147 321 05 0 00 037135 JUMPL AC+2,F34450 ;LOOP ON ERROR SWITCH^ 10278 ;LAST CASE IS DIFFERENT 10279 003446 ADR=ADR+1 10280 000200 XX=XX+XX 10281 IFE XX, 10282 10283 ;MULTIPLY -1 BY A RIPPLED 1 10284 IFG XX,< 10285 777777 777777 V1=-1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-5 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0209 10286 777777 777600 V2=-XX> 10287 IFL XX,< 10288 V1=1 10289 V2=0> 10290 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10291 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10292 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10293 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10294 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10295 10296 000200 F34460: AA1=XX ;INITIAL C(AC) 10297 037150 200 03 0 00 044007 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10298 000000 AA2=0 ;INITIAL C(AC+1) 10299 037151 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10300 777777 777777 AEE=-1 ;INITIAL C(E) 10301 037152 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10302 037153 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10303 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10304 037154 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10305 037155 003 03 0 00 034461 ER3 AC,34461 ;HIGH PRODUCT FAILED 10306 777777 777600 AR2=V2 ;EXPECTED RESULT IN AC+1 10307 037156 312 04 0 00 044140 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10308 037157 004 04 0 00 034462 ER4 AC+1,34462 ;LOW PRODUCT FAILED 10309 777777 777777 AEE=-1 ;INITIAL C(E) 10310 037160 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10311 037161 005 01 0 00 034463 ER5 E,34463 ;C(E) WAS CLOBBERED 10312 037162 321 05 0 00 037150 JUMPL AC+2,F34460 ;LOOP ON ERROR SWITCH^ 10313 ;LAST CASE IS DIFFERENT 10314 003447 ADR=ADR+1 10315 000400 XX=XX+XX 10316 IFE XX, 10317 10318 ;MULTIPLY -1 BY A RIPPLED 1 10319 IFG XX,< 10320 777777 777777 V1=-1 10321 777777 777400 V2=-XX> 10322 IFL XX,< 10323 V1=1 10324 V2=0> 10325 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10326 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10327 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10328 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10329 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10330 10331 000400 F34470: AA1=XX ;INITIAL C(AC) 10332 037163 200 03 0 00 044010 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10333 000000 AA2=0 ;INITIAL C(AC+1) 10334 037164 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10335 777777 777777 AEE=-1 ;INITIAL C(E) 10336 037165 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10337 037166 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10338 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10339 037167 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10340 037170 003 03 0 00 034471 ER3 AC,34471 ;HIGH PRODUCT FAILED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-6 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0210 10341 777777 777400 AR2=V2 ;EXPECTED RESULT IN AC+1 10342 037171 312 04 0 00 044141 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10343 037172 004 04 0 00 034472 ER4 AC+1,34472 ;LOW PRODUCT FAILED 10344 777777 777777 AEE=-1 ;INITIAL C(E) 10345 037173 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10346 037174 005 01 0 00 034473 ER5 E,34473 ;C(E) WAS CLOBBERED 10347 037175 321 05 0 00 037163 JUMPL AC+2,F34470 ;LOOP ON ERROR SWITCH^ 10348 ;LAST CASE IS DIFFERENT 10349 003450 ADR=ADR+1 10350 001000 XX=XX+XX 10351 IFE XX, 10352 10353 ;MULTIPLY -1 BY A RIPPLED 1 10354 IFG XX,< 10355 777777 777777 V1=-1 10356 777777 777000 V2=-XX> 10357 IFL XX,< 10358 V1=1 10359 V2=0> 10360 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10361 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10362 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10363 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10364 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10365 10366 001000 F34500: AA1=XX ;INITIAL C(AC) 10367 037176 200 03 0 00 044011 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10368 000000 AA2=0 ;INITIAL C(AC+1) 10369 037177 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10370 777777 777777 AEE=-1 ;INITIAL C(E) 10371 037200 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10372 037201 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10373 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10374 037202 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10375 037203 003 03 0 00 034501 ER3 AC,34501 ;HIGH PRODUCT FAILED 10376 777777 777000 AR2=V2 ;EXPECTED RESULT IN AC+1 10377 037204 312 04 0 00 044142 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10378 037205 004 04 0 00 034502 ER4 AC+1,34502 ;LOW PRODUCT FAILED 10379 777777 777777 AEE=-1 ;INITIAL C(E) 10380 037206 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10381 037207 005 01 0 00 034503 ER5 E,34503 ;C(E) WAS CLOBBERED 10382 037210 321 05 0 00 037176 JUMPL AC+2,F34500 ;LOOP ON ERROR SWITCH^ 10383 ;LAST CASE IS DIFFERENT 10384 003451 ADR=ADR+1 10385 002000 XX=XX+XX 10386 IFE XX, 10387 10388 ;MULTIPLY -1 BY A RIPPLED 1 10389 IFG XX,< 10390 777777 777777 V1=-1 10391 777777 776000 V2=-XX> 10392 IFL XX,< 10393 V1=1 10394 V2=0> 10395 MOP1 (\ADR,XX,0,-1,V1,V2)^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-7 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0211 10396 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10397 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10398 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10399 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10400 10401 002000 F34510: AA1=XX ;INITIAL C(AC) 10402 037211 200 03 0 00 044012 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10403 000000 AA2=0 ;INITIAL C(AC+1) 10404 037212 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10405 777777 777777 AEE=-1 ;INITIAL C(E) 10406 037213 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10407 037214 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10408 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10409 037215 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10410 037216 003 03 0 00 034511 ER3 AC,34511 ;HIGH PRODUCT FAILED 10411 777777 776000 AR2=V2 ;EXPECTED RESULT IN AC+1 10412 037217 312 04 0 00 044143 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10413 037220 004 04 0 00 034512 ER4 AC+1,34512 ;LOW PRODUCT FAILED 10414 777777 777777 AEE=-1 ;INITIAL C(E) 10415 037221 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10416 037222 005 01 0 00 034513 ER5 E,34513 ;C(E) WAS CLOBBERED 10417 037223 321 05 0 00 037211 JUMPL AC+2,F34510 ;LOOP ON ERROR SWITCH^ 10418 ;LAST CASE IS DIFFERENT 10419 003452 ADR=ADR+1 10420 004000 XX=XX+XX 10421 IFE XX, 10422 10423 ;MULTIPLY -1 BY A RIPPLED 1 10424 IFG XX,< 10425 777777 777777 V1=-1 10426 777777 774000 V2=-XX> 10427 IFL XX,< 10428 V1=1 10429 V2=0> 10430 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10431 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10432 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10433 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10434 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10435 10436 004000 F34520: AA1=XX ;INITIAL C(AC) 10437 037224 200 03 0 00 044013 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10438 000000 AA2=0 ;INITIAL C(AC+1) 10439 037225 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10440 777777 777777 AEE=-1 ;INITIAL C(E) 10441 037226 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10442 037227 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10443 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10444 037230 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10445 037231 003 03 0 00 034521 ER3 AC,34521 ;HIGH PRODUCT FAILED 10446 777777 774000 AR2=V2 ;EXPECTED RESULT IN AC+1 10447 037232 312 04 0 00 044144 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10448 037233 004 04 0 00 034522 ER4 AC+1,34522 ;LOW PRODUCT FAILED 10449 777777 777777 AEE=-1 ;INITIAL C(E) 10450 037234 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-8 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0212 10451 037235 005 01 0 00 034523 ER5 E,34523 ;C(E) WAS CLOBBERED 10452 037236 321 05 0 00 037224 JUMPL AC+2,F34520 ;LOOP ON ERROR SWITCH^ 10453 ;LAST CASE IS DIFFERENT 10454 003453 ADR=ADR+1 10455 010000 XX=XX+XX 10456 IFE XX, 10457 10458 ;MULTIPLY -1 BY A RIPPLED 1 10459 IFG XX,< 10460 777777 777777 V1=-1 10461 777777 770000 V2=-XX> 10462 IFL XX,< 10463 V1=1 10464 V2=0> 10465 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10466 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10467 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10468 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10469 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10470 10471 010000 F34530: AA1=XX ;INITIAL C(AC) 10472 037237 200 03 0 00 044014 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10473 000000 AA2=0 ;INITIAL C(AC+1) 10474 037240 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10475 777777 777777 AEE=-1 ;INITIAL C(E) 10476 037241 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10477 037242 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10478 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10479 037243 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10480 037244 003 03 0 00 034531 ER3 AC,34531 ;HIGH PRODUCT FAILED 10481 777777 770000 AR2=V2 ;EXPECTED RESULT IN AC+1 10482 037245 312 04 0 00 044145 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10483 037246 004 04 0 00 034532 ER4 AC+1,34532 ;LOW PRODUCT FAILED 10484 777777 777777 AEE=-1 ;INITIAL C(E) 10485 037247 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10486 037250 005 01 0 00 034533 ER5 E,34533 ;C(E) WAS CLOBBERED 10487 037251 321 05 0 00 037237 JUMPL AC+2,F34530 ;LOOP ON ERROR SWITCH^ 10488 ;LAST CASE IS DIFFERENT 10489 003454 ADR=ADR+1 10490 020000 XX=XX+XX 10491 IFE XX, 10492 10493 ;MULTIPLY -1 BY A RIPPLED 1 10494 IFG XX,< 10495 777777 777777 V1=-1 10496 777777 760000 V2=-XX> 10497 IFL XX,< 10498 V1=1 10499 V2=0> 10500 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10501 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10502 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10503 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10504 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10505 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-9 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0213 10506 020000 F34540: AA1=XX ;INITIAL C(AC) 10507 037252 200 03 0 00 044015 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10508 000000 AA2=0 ;INITIAL C(AC+1) 10509 037253 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10510 777777 777777 AEE=-1 ;INITIAL C(E) 10511 037254 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10512 037255 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10513 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10514 037256 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10515 037257 003 03 0 00 034541 ER3 AC,34541 ;HIGH PRODUCT FAILED 10516 777777 760000 AR2=V2 ;EXPECTED RESULT IN AC+1 10517 037260 312 04 0 00 044146 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10518 037261 004 04 0 00 034542 ER4 AC+1,34542 ;LOW PRODUCT FAILED 10519 777777 777777 AEE=-1 ;INITIAL C(E) 10520 037262 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10521 037263 005 01 0 00 034543 ER5 E,34543 ;C(E) WAS CLOBBERED 10522 037264 321 05 0 00 037252 JUMPL AC+2,F34540 ;LOOP ON ERROR SWITCH^ 10523 ;LAST CASE IS DIFFERENT 10524 003455 ADR=ADR+1 10525 040000 XX=XX+XX 10526 IFE XX, 10527 10528 ;MULTIPLY -1 BY A RIPPLED 1 10529 IFG XX,< 10530 777777 777777 V1=-1 10531 777777 740000 V2=-XX> 10532 IFL XX,< 10533 V1=1 10534 V2=0> 10535 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10536 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10537 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10538 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10539 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10540 10541 040000 F34550: AA1=XX ;INITIAL C(AC) 10542 037265 200 03 0 00 044016 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10543 000000 AA2=0 ;INITIAL C(AC+1) 10544 037266 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10545 777777 777777 AEE=-1 ;INITIAL C(E) 10546 037267 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10547 037270 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10548 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10549 037271 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10550 037272 003 03 0 00 034551 ER3 AC,34551 ;HIGH PRODUCT FAILED 10551 777777 740000 AR2=V2 ;EXPECTED RESULT IN AC+1 10552 037273 312 04 0 00 044147 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10553 037274 004 04 0 00 034552 ER4 AC+1,34552 ;LOW PRODUCT FAILED 10554 777777 777777 AEE=-1 ;INITIAL C(E) 10555 037275 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10556 037276 005 01 0 00 034553 ER5 E,34553 ;C(E) WAS CLOBBERED 10557 037277 321 05 0 00 037265 JUMPL AC+2,F34550 ;LOOP ON ERROR SWITCH^ 10558 ;LAST CASE IS DIFFERENT 10559 003456 ADR=ADR+1 10560 100000 XX=XX+XX DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-10 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0214 10561 IFE XX, 10562 10563 ;MULTIPLY -1 BY A RIPPLED 1 10564 IFG XX,< 10565 777777 777777 V1=-1 10566 777777 700000 V2=-XX> 10567 IFL XX,< 10568 V1=1 10569 V2=0> 10570 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10571 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10572 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10573 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10574 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10575 10576 100000 F34560: AA1=XX ;INITIAL C(AC) 10577 037300 200 03 0 00 044017 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10578 000000 AA2=0 ;INITIAL C(AC+1) 10579 037301 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10580 777777 777777 AEE=-1 ;INITIAL C(E) 10581 037302 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10582 037303 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10583 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10584 037304 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10585 037305 003 03 0 00 034561 ER3 AC,34561 ;HIGH PRODUCT FAILED 10586 777777 700000 AR2=V2 ;EXPECTED RESULT IN AC+1 10587 037306 312 04 0 00 044150 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10588 037307 004 04 0 00 034562 ER4 AC+1,34562 ;LOW PRODUCT FAILED 10589 777777 777777 AEE=-1 ;INITIAL C(E) 10590 037310 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10591 037311 005 01 0 00 034563 ER5 E,34563 ;C(E) WAS CLOBBERED 10592 037312 321 05 0 00 037300 JUMPL AC+2,F34560 ;LOOP ON ERROR SWITCH^ 10593 ;LAST CASE IS DIFFERENT 10594 003457 ADR=ADR+1 10595 200000 XX=XX+XX 10596 IFE XX, 10597 10598 ;MULTIPLY -1 BY A RIPPLED 1 10599 IFG XX,< 10600 777777 777777 V1=-1 10601 777777 600000 V2=-XX> 10602 IFL XX,< 10603 V1=1 10604 V2=0> 10605 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10606 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10607 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10608 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10609 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10610 10611 200000 F34570: AA1=XX ;INITIAL C(AC) 10612 037313 200 03 0 00 044020 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10613 000000 AA2=0 ;INITIAL C(AC+1) 10614 037314 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10615 777777 777777 AEE=-1 ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-11 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0215 10616 037315 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10617 037316 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10618 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10619 037317 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10620 037320 003 03 0 00 034571 ER3 AC,34571 ;HIGH PRODUCT FAILED 10621 777777 600000 AR2=V2 ;EXPECTED RESULT IN AC+1 10622 037321 312 04 0 00 044151 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10623 037322 004 04 0 00 034572 ER4 AC+1,34572 ;LOW PRODUCT FAILED 10624 777777 777777 AEE=-1 ;INITIAL C(E) 10625 037323 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10626 037324 005 01 0 00 034573 ER5 E,34573 ;C(E) WAS CLOBBERED 10627 037325 321 05 0 00 037313 JUMPL AC+2,F34570 ;LOOP ON ERROR SWITCH^ 10628 ;LAST CASE IS DIFFERENT 10629 003460 ADR=ADR+1 10630 400000 XX=XX+XX 10631 IFE XX, 10632 10633 ;MULTIPLY -1 BY A RIPPLED 1 10634 IFG XX,< 10635 777777 777777 V1=-1 10636 777777 400000 V2=-XX> 10637 IFL XX,< 10638 V1=1 10639 V2=0> 10640 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10641 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10642 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10643 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10644 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10645 10646 400000 F34600: AA1=XX ;INITIAL C(AC) 10647 037326 200 03 0 00 044021 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10648 000000 AA2=0 ;INITIAL C(AC+1) 10649 037327 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10650 777777 777777 AEE=-1 ;INITIAL C(E) 10651 037330 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10652 037331 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10653 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10654 037332 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10655 037333 003 03 0 00 034601 ER3 AC,34601 ;HIGH PRODUCT FAILED 10656 777777 400000 AR2=V2 ;EXPECTED RESULT IN AC+1 10657 037334 312 04 0 00 044152 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10658 037335 004 04 0 00 034602 ER4 AC+1,34602 ;LOW PRODUCT FAILED 10659 777777 777777 AEE=-1 ;INITIAL C(E) 10660 037336 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10661 037337 005 01 0 00 034603 ER5 E,34603 ;C(E) WAS CLOBBERED 10662 037340 321 05 0 00 037326 JUMPL AC+2,F34600 ;LOOP ON ERROR SWITCH^ 10663 ;LAST CASE IS DIFFERENT 10664 003461 ADR=ADR+1 10665 000001 000000 XX=XX+XX 10666 IFE XX, 10667 10668 ;MULTIPLY -1 BY A RIPPLED 1 10669 IFG XX,< 10670 777777 777777 V1=-1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-12 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0216 10671 777777 000000 V2=-XX> 10672 IFL XX,< 10673 V1=1 10674 V2=0> 10675 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10676 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10677 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10678 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10679 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10680 10681 000001 000000 F34610: AA1=XX ;INITIAL C(AC) 10682 037341 200 03 0 00 044022 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10683 000000 AA2=0 ;INITIAL C(AC+1) 10684 037342 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10685 777777 777777 AEE=-1 ;INITIAL C(E) 10686 037343 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10687 037344 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10688 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10689 037345 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10690 037346 003 03 0 00 034611 ER3 AC,34611 ;HIGH PRODUCT FAILED 10691 777777 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 10692 037347 312 04 0 00 044153 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10693 037350 004 04 0 00 034612 ER4 AC+1,34612 ;LOW PRODUCT FAILED 10694 777777 777777 AEE=-1 ;INITIAL C(E) 10695 037351 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10696 037352 005 01 0 00 034613 ER5 E,34613 ;C(E) WAS CLOBBERED 10697 037353 321 05 0 00 037341 JUMPL AC+2,F34610 ;LOOP ON ERROR SWITCH^ 10698 ;LAST CASE IS DIFFERENT 10699 003462 ADR=ADR+1 10700 000002 000000 XX=XX+XX 10701 IFE XX, 10702 10703 ;MULTIPLY -1 BY A RIPPLED 1 10704 IFG XX,< 10705 777777 777777 V1=-1 10706 777776 000000 V2=-XX> 10707 IFL XX,< 10708 V1=1 10709 V2=0> 10710 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10711 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10712 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10713 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10714 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10715 10716 000002 000000 F34620: AA1=XX ;INITIAL C(AC) 10717 037354 200 03 0 00 044023 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10718 000000 AA2=0 ;INITIAL C(AC+1) 10719 037355 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10720 777777 777777 AEE=-1 ;INITIAL C(E) 10721 037356 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10722 037357 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10723 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10724 037360 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10725 037361 003 03 0 00 034621 ER3 AC,34621 ;HIGH PRODUCT FAILED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-13 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0217 10726 777776 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 10727 037362 312 04 0 00 044154 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10728 037363 004 04 0 00 034622 ER4 AC+1,34622 ;LOW PRODUCT FAILED 10729 777777 777777 AEE=-1 ;INITIAL C(E) 10730 037364 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10731 037365 005 01 0 00 034623 ER5 E,34623 ;C(E) WAS CLOBBERED 10732 037366 321 05 0 00 037354 JUMPL AC+2,F34620 ;LOOP ON ERROR SWITCH^ 10733 ;LAST CASE IS DIFFERENT 10734 003463 ADR=ADR+1 10735 000004 000000 XX=XX+XX 10736 IFE XX, 10737 10738 ;MULTIPLY -1 BY A RIPPLED 1 10739 IFG XX,< 10740 777777 777777 V1=-1 10741 777774 000000 V2=-XX> 10742 IFL XX,< 10743 V1=1 10744 V2=0> 10745 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10746 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10747 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10748 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10749 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10750 10751 000004 000000 F34630: AA1=XX ;INITIAL C(AC) 10752 037367 200 03 0 00 044024 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10753 000000 AA2=0 ;INITIAL C(AC+1) 10754 037370 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10755 777777 777777 AEE=-1 ;INITIAL C(E) 10756 037371 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10757 037372 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10758 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10759 037373 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10760 037374 003 03 0 00 034631 ER3 AC,34631 ;HIGH PRODUCT FAILED 10761 777774 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 10762 037375 312 04 0 00 044155 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10763 037376 004 04 0 00 034632 ER4 AC+1,34632 ;LOW PRODUCT FAILED 10764 777777 777777 AEE=-1 ;INITIAL C(E) 10765 037377 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10766 037400 005 01 0 00 034633 ER5 E,34633 ;C(E) WAS CLOBBERED 10767 037401 321 05 0 00 037367 JUMPL AC+2,F34630 ;LOOP ON ERROR SWITCH^ 10768 ;LAST CASE IS DIFFERENT 10769 003464 ADR=ADR+1 10770 000010 000000 XX=XX+XX 10771 IFE XX, 10772 10773 ;MULTIPLY -1 BY A RIPPLED 1 10774 IFG XX,< 10775 777777 777777 V1=-1 10776 777770 000000 V2=-XX> 10777 IFL XX,< 10778 V1=1 10779 V2=0> 10780 MOP1 (\ADR,XX,0,-1,V1,V2)^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-14 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0218 10781 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10782 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10783 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10784 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10785 10786 000010 000000 F34640: AA1=XX ;INITIAL C(AC) 10787 037402 200 03 0 00 044025 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10788 000000 AA2=0 ;INITIAL C(AC+1) 10789 037403 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10790 777777 777777 AEE=-1 ;INITIAL C(E) 10791 037404 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10792 037405 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10793 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10794 037406 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10795 037407 003 03 0 00 034641 ER3 AC,34641 ;HIGH PRODUCT FAILED 10796 777770 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 10797 037410 312 04 0 00 044156 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10798 037411 004 04 0 00 034642 ER4 AC+1,34642 ;LOW PRODUCT FAILED 10799 777777 777777 AEE=-1 ;INITIAL C(E) 10800 037412 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10801 037413 005 01 0 00 034643 ER5 E,34643 ;C(E) WAS CLOBBERED 10802 037414 321 05 0 00 037402 JUMPL AC+2,F34640 ;LOOP ON ERROR SWITCH^ 10803 ;LAST CASE IS DIFFERENT 10804 003465 ADR=ADR+1 10805 000020 000000 XX=XX+XX 10806 IFE XX, 10807 10808 ;MULTIPLY -1 BY A RIPPLED 1 10809 IFG XX,< 10810 777777 777777 V1=-1 10811 777760 000000 V2=-XX> 10812 IFL XX,< 10813 V1=1 10814 V2=0> 10815 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10816 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10817 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10818 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10819 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10820 10821 000020 000000 F34650: AA1=XX ;INITIAL C(AC) 10822 037415 200 03 0 00 044026 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10823 000000 AA2=0 ;INITIAL C(AC+1) 10824 037416 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10825 777777 777777 AEE=-1 ;INITIAL C(E) 10826 037417 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10827 037420 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10828 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10829 037421 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10830 037422 003 03 0 00 034651 ER3 AC,34651 ;HIGH PRODUCT FAILED 10831 777760 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 10832 037423 312 04 0 00 044157 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10833 037424 004 04 0 00 034652 ER4 AC+1,34652 ;LOW PRODUCT FAILED 10834 777777 777777 AEE=-1 ;INITIAL C(E) 10835 037425 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-15 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0219 10836 037426 005 01 0 00 034653 ER5 E,34653 ;C(E) WAS CLOBBERED 10837 037427 321 05 0 00 037415 JUMPL AC+2,F34650 ;LOOP ON ERROR SWITCH^ 10838 ;LAST CASE IS DIFFERENT 10839 003466 ADR=ADR+1 10840 000040 000000 XX=XX+XX 10841 IFE XX, 10842 10843 ;MULTIPLY -1 BY A RIPPLED 1 10844 IFG XX,< 10845 777777 777777 V1=-1 10846 777740 000000 V2=-XX> 10847 IFL XX,< 10848 V1=1 10849 V2=0> 10850 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10851 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10852 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10853 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10854 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10855 10856 000040 000000 F34660: AA1=XX ;INITIAL C(AC) 10857 037430 200 03 0 00 044027 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10858 000000 AA2=0 ;INITIAL C(AC+1) 10859 037431 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10860 777777 777777 AEE=-1 ;INITIAL C(E) 10861 037432 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10862 037433 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10863 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10864 037434 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10865 037435 003 03 0 00 034661 ER3 AC,34661 ;HIGH PRODUCT FAILED 10866 777740 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 10867 037436 312 04 0 00 044160 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10868 037437 004 04 0 00 034662 ER4 AC+1,34662 ;LOW PRODUCT FAILED 10869 777777 777777 AEE=-1 ;INITIAL C(E) 10870 037440 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10871 037441 005 01 0 00 034663 ER5 E,34663 ;C(E) WAS CLOBBERED 10872 037442 321 05 0 00 037430 JUMPL AC+2,F34660 ;LOOP ON ERROR SWITCH^ 10873 ;LAST CASE IS DIFFERENT 10874 003467 ADR=ADR+1 10875 000100 000000 XX=XX+XX 10876 IFE XX, 10877 10878 ;MULTIPLY -1 BY A RIPPLED 1 10879 IFG XX,< 10880 777777 777777 V1=-1 10881 777700 000000 V2=-XX> 10882 IFL XX,< 10883 V1=1 10884 V2=0> 10885 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10886 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10887 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10888 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10889 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10890 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-16 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0220 10891 000100 000000 F34670: AA1=XX ;INITIAL C(AC) 10892 037443 200 03 0 00 044030 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10893 000000 AA2=0 ;INITIAL C(AC+1) 10894 037444 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10895 777777 777777 AEE=-1 ;INITIAL C(E) 10896 037445 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10897 037446 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10898 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10899 037447 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10900 037450 003 03 0 00 034671 ER3 AC,34671 ;HIGH PRODUCT FAILED 10901 777700 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 10902 037451 312 04 0 00 044161 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10903 037452 004 04 0 00 034672 ER4 AC+1,34672 ;LOW PRODUCT FAILED 10904 777777 777777 AEE=-1 ;INITIAL C(E) 10905 037453 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10906 037454 005 01 0 00 034673 ER5 E,34673 ;C(E) WAS CLOBBERED 10907 037455 321 05 0 00 037443 JUMPL AC+2,F34670 ;LOOP ON ERROR SWITCH^ 10908 ;LAST CASE IS DIFFERENT 10909 003470 ADR=ADR+1 10910 000200 000000 XX=XX+XX 10911 IFE XX, 10912 10913 ;MULTIPLY -1 BY A RIPPLED 1 10914 IFG XX,< 10915 777777 777777 V1=-1 10916 777600 000000 V2=-XX> 10917 IFL XX,< 10918 V1=1 10919 V2=0> 10920 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10921 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10922 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10923 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10924 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10925 10926 000200 000000 F34700: AA1=XX ;INITIAL C(AC) 10927 037456 200 03 0 00 044031 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10928 000000 AA2=0 ;INITIAL C(AC+1) 10929 037457 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10930 777777 777777 AEE=-1 ;INITIAL C(E) 10931 037460 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10932 037461 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10933 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10934 037462 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10935 037463 003 03 0 00 034701 ER3 AC,34701 ;HIGH PRODUCT FAILED 10936 777600 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 10937 037464 312 04 0 00 044162 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10938 037465 004 04 0 00 034702 ER4 AC+1,34702 ;LOW PRODUCT FAILED 10939 777777 777777 AEE=-1 ;INITIAL C(E) 10940 037466 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10941 037467 005 01 0 00 034703 ER5 E,34703 ;C(E) WAS CLOBBERED 10942 037470 321 05 0 00 037456 JUMPL AC+2,F34700 ;LOOP ON ERROR SWITCH^ 10943 ;LAST CASE IS DIFFERENT 10944 003471 ADR=ADR+1 10945 000400 000000 XX=XX+XX DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-17 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0221 10946 IFE XX, 10947 10948 ;MULTIPLY -1 BY A RIPPLED 1 10949 IFG XX,< 10950 777777 777777 V1=-1 10951 777400 000000 V2=-XX> 10952 IFL XX,< 10953 V1=1 10954 V2=0> 10955 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10956 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10957 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10958 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10959 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10960 10961 000400 000000 F34710: AA1=XX ;INITIAL C(AC) 10962 037471 200 03 0 00 044032 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10963 000000 AA2=0 ;INITIAL C(AC+1) 10964 037472 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 10965 777777 777777 AEE=-1 ;INITIAL C(E) 10966 037473 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 10967 037474 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 10968 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 10969 037475 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 10970 037476 003 03 0 00 034711 ER3 AC,34711 ;HIGH PRODUCT FAILED 10971 777400 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 10972 037477 312 04 0 00 044163 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 10973 037500 004 04 0 00 034712 ER4 AC+1,34712 ;LOW PRODUCT FAILED 10974 777777 777777 AEE=-1 ;INITIAL C(E) 10975 037501 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 10976 037502 005 01 0 00 034713 ER5 E,34713 ;C(E) WAS CLOBBERED 10977 037503 321 05 0 00 037471 JUMPL AC+2,F34710 ;LOOP ON ERROR SWITCH^ 10978 ;LAST CASE IS DIFFERENT 10979 003472 ADR=ADR+1 10980 001000 000000 XX=XX+XX 10981 IFE XX, 10982 10983 ;MULTIPLY -1 BY A RIPPLED 1 10984 IFG XX,< 10985 777777 777777 V1=-1 10986 777000 000000 V2=-XX> 10987 IFL XX,< 10988 V1=1 10989 V2=0> 10990 MOP1 (\ADR,XX,0,-1,V1,V2)^ 10991 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 10992 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 10993 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 10994 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 10995 10996 001000 000000 F34720: AA1=XX ;INITIAL C(AC) 10997 037504 200 03 0 00 044033 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 10998 000000 AA2=0 ;INITIAL C(AC+1) 10999 037505 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11000 777777 777777 AEE=-1 ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-18 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0222 11001 037506 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 11002 037507 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11003 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11004 037510 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11005 037511 003 03 0 00 034721 ER3 AC,34721 ;HIGH PRODUCT FAILED 11006 777000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 11007 037512 312 04 0 00 044164 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 11008 037513 004 04 0 00 034722 ER4 AC+1,34722 ;LOW PRODUCT FAILED 11009 777777 777777 AEE=-1 ;INITIAL C(E) 11010 037514 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 11011 037515 005 01 0 00 034723 ER5 E,34723 ;C(E) WAS CLOBBERED 11012 037516 321 05 0 00 037504 JUMPL AC+2,F34720 ;LOOP ON ERROR SWITCH^ 11013 ;LAST CASE IS DIFFERENT 11014 003473 ADR=ADR+1 11015 002000 000000 XX=XX+XX 11016 IFE XX, 11017 11018 ;MULTIPLY -1 BY A RIPPLED 1 11019 IFG XX,< 11020 777777 777777 V1=-1 11021 776000 000000 V2=-XX> 11022 IFL XX,< 11023 V1=1 11024 V2=0> 11025 MOP1 (\ADR,XX,0,-1,V1,V2)^ 11026 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 11027 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11028 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 11029 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11030 11031 002000 000000 F34730: AA1=XX ;INITIAL C(AC) 11032 037517 200 03 0 00 044034 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 11033 000000 AA2=0 ;INITIAL C(AC+1) 11034 037520 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11035 777777 777777 AEE=-1 ;INITIAL C(E) 11036 037521 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 11037 037522 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11038 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11039 037523 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11040 037524 003 03 0 00 034731 ER3 AC,34731 ;HIGH PRODUCT FAILED 11041 776000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 11042 037525 312 04 0 00 044165 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 11043 037526 004 04 0 00 034732 ER4 AC+1,34732 ;LOW PRODUCT FAILED 11044 777777 777777 AEE=-1 ;INITIAL C(E) 11045 037527 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 11046 037530 005 01 0 00 034733 ER5 E,34733 ;C(E) WAS CLOBBERED 11047 037531 321 05 0 00 037517 JUMPL AC+2,F34730 ;LOOP ON ERROR SWITCH^ 11048 ;LAST CASE IS DIFFERENT 11049 003474 ADR=ADR+1 11050 004000 000000 XX=XX+XX 11051 IFE XX, 11052 11053 ;MULTIPLY -1 BY A RIPPLED 1 11054 IFG XX,< 11055 777777 777777 V1=-1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-19 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0223 11056 774000 000000 V2=-XX> 11057 IFL XX,< 11058 V1=1 11059 V2=0> 11060 MOP1 (\ADR,XX,0,-1,V1,V2)^ 11061 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 11062 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11063 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 11064 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11065 11066 004000 000000 F34740: AA1=XX ;INITIAL C(AC) 11067 037532 200 03 0 00 044035 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 11068 000000 AA2=0 ;INITIAL C(AC+1) 11069 037533 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11070 777777 777777 AEE=-1 ;INITIAL C(E) 11071 037534 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 11072 037535 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11073 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11074 037536 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11075 037537 003 03 0 00 034741 ER3 AC,34741 ;HIGH PRODUCT FAILED 11076 774000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 11077 037540 312 04 0 00 044166 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 11078 037541 004 04 0 00 034742 ER4 AC+1,34742 ;LOW PRODUCT FAILED 11079 777777 777777 AEE=-1 ;INITIAL C(E) 11080 037542 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 11081 037543 005 01 0 00 034743 ER5 E,34743 ;C(E) WAS CLOBBERED 11082 037544 321 05 0 00 037532 JUMPL AC+2,F34740 ;LOOP ON ERROR SWITCH^ 11083 ;LAST CASE IS DIFFERENT 11084 003475 ADR=ADR+1 11085 010000 000000 XX=XX+XX 11086 IFE XX, 11087 11088 ;MULTIPLY -1 BY A RIPPLED 1 11089 IFG XX,< 11090 777777 777777 V1=-1 11091 770000 000000 V2=-XX> 11092 IFL XX,< 11093 V1=1 11094 V2=0> 11095 MOP1 (\ADR,XX,0,-1,V1,V2)^ 11096 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 11097 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11098 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 11099 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11100 11101 010000 000000 F34750: AA1=XX ;INITIAL C(AC) 11102 037545 200 03 0 00 044036 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 11103 000000 AA2=0 ;INITIAL C(AC+1) 11104 037546 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11105 777777 777777 AEE=-1 ;INITIAL C(E) 11106 037547 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 11107 037550 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11108 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11109 037551 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11110 037552 003 03 0 00 034751 ER3 AC,34751 ;HIGH PRODUCT FAILED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-20 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0224 11111 770000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 11112 037553 312 04 0 00 044167 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 11113 037554 004 04 0 00 034752 ER4 AC+1,34752 ;LOW PRODUCT FAILED 11114 777777 777777 AEE=-1 ;INITIAL C(E) 11115 037555 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 11116 037556 005 01 0 00 034753 ER5 E,34753 ;C(E) WAS CLOBBERED 11117 037557 321 05 0 00 037545 JUMPL AC+2,F34750 ;LOOP ON ERROR SWITCH^ 11118 ;LAST CASE IS DIFFERENT 11119 003476 ADR=ADR+1 11120 020000 000000 XX=XX+XX 11121 IFE XX, 11122 11123 ;MULTIPLY -1 BY A RIPPLED 1 11124 IFG XX,< 11125 777777 777777 V1=-1 11126 760000 000000 V2=-XX> 11127 IFL XX,< 11128 V1=1 11129 V2=0> 11130 MOP1 (\ADR,XX,0,-1,V1,V2)^ 11131 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 11132 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11133 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 11134 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11135 11136 020000 000000 F34760: AA1=XX ;INITIAL C(AC) 11137 037560 200 03 0 00 044037 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 11138 000000 AA2=0 ;INITIAL C(AC+1) 11139 037561 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11140 777777 777777 AEE=-1 ;INITIAL C(E) 11141 037562 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 11142 037563 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11143 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11144 037564 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11145 037565 003 03 0 00 034761 ER3 AC,34761 ;HIGH PRODUCT FAILED 11146 760000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 11147 037566 312 04 0 00 044170 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 11148 037567 004 04 0 00 034762 ER4 AC+1,34762 ;LOW PRODUCT FAILED 11149 777777 777777 AEE=-1 ;INITIAL C(E) 11150 037570 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 11151 037571 005 01 0 00 034763 ER5 E,34763 ;C(E) WAS CLOBBERED 11152 037572 321 05 0 00 037560 JUMPL AC+2,F34760 ;LOOP ON ERROR SWITCH^ 11153 ;LAST CASE IS DIFFERENT 11154 003477 ADR=ADR+1 11155 040000 000000 XX=XX+XX 11156 IFE XX, 11157 11158 ;MULTIPLY -1 BY A RIPPLED 1 11159 IFG XX,< 11160 777777 777777 V1=-1 11161 740000 000000 V2=-XX> 11162 IFL XX,< 11163 V1=1 11164 V2=0> 11165 MOP1 (\ADR,XX,0,-1,V1,V2)^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-21 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0225 11166 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 11167 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11168 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 11169 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11170 11171 040000 000000 F34770: AA1=XX ;INITIAL C(AC) 11172 037573 200 03 0 00 044040 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 11173 000000 AA2=0 ;INITIAL C(AC+1) 11174 037574 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11175 777777 777777 AEE=-1 ;INITIAL C(E) 11176 037575 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 11177 037576 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11178 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11179 037577 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11180 037600 003 03 0 00 034771 ER3 AC,34771 ;HIGH PRODUCT FAILED 11181 740000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 11182 037601 312 04 0 00 044171 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 11183 037602 004 04 0 00 034772 ER4 AC+1,34772 ;LOW PRODUCT FAILED 11184 777777 777777 AEE=-1 ;INITIAL C(E) 11185 037603 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 11186 037604 005 01 0 00 034773 ER5 E,34773 ;C(E) WAS CLOBBERED 11187 037605 321 05 0 00 037573 JUMPL AC+2,F34770 ;LOOP ON ERROR SWITCH^ 11188 ;LAST CASE IS DIFFERENT 11189 003500 ADR=ADR+1 11190 100000 000000 XX=XX+XX 11191 IFE XX, 11192 11193 ;MULTIPLY -1 BY A RIPPLED 1 11194 IFG XX,< 11195 777777 777777 V1=-1 11196 700000 000000 V2=-XX> 11197 IFL XX,< 11198 V1=1 11199 V2=0> 11200 MOP1 (\ADR,XX,0,-1,V1,V2)^ 11201 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 11202 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11203 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 11204 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11205 11206 100000 000000 F35000: AA1=XX ;INITIAL C(AC) 11207 037606 200 03 0 00 044041 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 11208 000000 AA2=0 ;INITIAL C(AC+1) 11209 037607 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11210 777777 777777 AEE=-1 ;INITIAL C(E) 11211 037610 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 11212 037611 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11213 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11214 037612 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11215 037613 003 03 0 00 035001 ER3 AC,35001 ;HIGH PRODUCT FAILED 11216 700000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 11217 037614 312 04 0 00 044172 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 11218 037615 004 04 0 00 035002 ER4 AC+1,35002 ;LOW PRODUCT FAILED 11219 777777 777777 AEE=-1 ;INITIAL C(E) 11220 037616 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 14-22 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0226 11221 037617 005 01 0 00 035003 ER5 E,35003 ;C(E) WAS CLOBBERED 11222 037620 321 05 0 00 037606 JUMPL AC+2,F35000 ;LOOP ON ERROR SWITCH^ 11223 ;LAST CASE IS DIFFERENT 11224 003501 ADR=ADR+1 11225 200000 000000 XX=XX+XX 11226 IFE XX, 11227 11228 ;MULTIPLY -1 BY A RIPPLED 1 11229 IFG XX,< 11230 777777 777777 V1=-1 11231 600000 000000 V2=-XX> 11232 IFL XX,< 11233 V1=1 11234 V2=0> 11235 MOP1 (\ADR,XX,0,-1,V1,V2)^ 11236 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 11237 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11238 ;AND E AGAINST [V1], [V2] AND [-1] RESPECTIVELY. 11239 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11240 11241 200000 000000 F35010: AA1=XX ;INITIAL C(AC) 11242 037621 200 03 0 00 044042 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 11243 000000 AA2=0 ;INITIAL C(AC+1) 11244 037622 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11245 777777 777777 AEE=-1 ;INITIAL C(E) 11246 037623 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 11247 037624 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11248 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11249 037625 312 03 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11250 037626 003 03 0 00 035011 ER3 AC,35011 ;HIGH PRODUCT FAILED 11251 600000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 11252 037627 312 04 0 00 044173 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 11253 037630 004 04 0 00 035012 ER4 AC+1,35012 ;LOW PRODUCT FAILED 11254 777777 777777 AEE=-1 ;INITIAL C(E) 11255 037631 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 11256 037632 005 01 0 00 035013 ER5 E,35013 ;C(E) WAS CLOBBERED 11257 037633 321 05 0 00 037621 JUMPL AC+2,F35010 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 15 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0227 11258 ;MULTIPLY A -1 BY 400000,,0 11259 003502 ADR=ADR+1 11260 400000 000000 XX=400000000000 11261 11262 MOP1 (\ADR,XX,0,-1,-1,XX)^ 11263 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 11264 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11265 ;AND E AGAINST [-1], [XX] AND [-1] RESPECTIVELY. 11266 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11267 11268 400000 000000 F35020: AA1=XX ;INITIAL C(AC) 11269 037634 200 03 0 00 044043 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 11270 000000 AA2=0 ;INITIAL C(AC+1) 11271 037635 200 04 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11272 777777 777777 AEE=-1 ;INITIAL C(E) 11273 037636 200 01 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 11274 037637 224 03 0 00 000001 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11275 777777 777777 AR1=-1 ;EXPECTED RESULT IN AC 11276 037640 312 03 0 00 043777 CAME AC,[-1] ;IS HIGH PRODUCT CORRECT? 11277 037641 003 03 0 00 035021 ER3 AC,35021 ;HIGH PRODUCT FAILED 11278 400000 000000 AR2=XX ;EXPECTED RESULT IN AC+1 11279 037642 312 04 0 00 044043 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11280 037643 004 04 0 00 035022 ER4 AC+1,35022 ;LOW PRODUCT FAILED 11281 777777 777777 AEE=-1 ;INITIAL C(E) 11282 037644 312 01 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 11283 037645 005 01 0 00 035023 ER5 E,35023 ;C(E) WAS CLOBBERED 11284 037646 321 05 0 00 037634 JUMPL AC+2,F35020 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0228 11285 000002 AC=2 11286 000000 E=&17 11287 SAVEAC (1,1)^ 11288 037647 201 04 0 00 037647 MOVEI AC+2,. ;SAVE TEST PC 11289 037650 202 04 0 00 030051 MOVEM AC+2,TESTPC 11290 037651 201 04 0 00 000004 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH 11291 037652 202 04 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ 11292 000000 XX=0 11293 11294 REPEAT ^D36,< 11295 ADR=ADR+1 11296 XX=XX+XX+1 11297 IFE , 11298 11299 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11300 IFL XX, 11301 IFG XX, 11302 MOP1 (\ADR,1,0,XX,V1,XX)> 11303 11304 003503 ADR=ADR+1 11305 000001 XX=XX+XX+1 11306 777777 777776 IFE , 11307 11308 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11309 777777 777777 IFL XX, 11310 IFG XX, 11311 MOP1 (\ADR,1,0,XX,V1,XX)^ 11312 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11313 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11314 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11315 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11316 11317 000001 F35030: AA1=1 ;INITIAL C(AC) 11318 037653 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 11319 000000 AA2=0 ;INITIAL C(AC+1) 11320 037654 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11321 777777 777776 AEE=XX ;INITIAL C(E) 11322 037655 200 00 0 00 044044 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11323 037656 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11324 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11325 037657 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11326 037660 003 02 0 00 035031 ER3 AC,35031 ;HIGH PRODUCT FAILED 11327 777777 777776 AR2=XX ;EXPECTED RESULT IN AC+1 11328 037661 312 03 0 00 044044 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11329 037662 004 03 0 00 035032 ER4 AC+1,35032 ;LOW PRODUCT FAILED 11330 777777 777776 AEE=XX ;INITIAL C(E) 11331 037663 312 00 0 00 044044 CAME E,[XX] ;WAS C(E) CLOBBERED? 11332 037664 005 00 0 00 035033 ER5 E,35033 ;C(E) WAS CLOBBERED 11333 037665 321 04 0 00 037653 JUMPL AC+2,F35030 ;LOOP ON ERROR SWITCH^ 11334 11335 003504 ADR=ADR+1 11336 777777 777775 XX=XX+XX+1 11337 IFE , 11338 11339 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-1 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0229 11340 777777 777777 IFL XX, 11341 IFG XX, 11342 MOP1 (\ADR,1,0,XX,V1,XX)^ 11343 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11344 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11345 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11346 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11347 11348 000001 F35040: AA1=1 ;INITIAL C(AC) 11349 037666 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 11350 000000 AA2=0 ;INITIAL C(AC+1) 11351 037667 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11352 777777 777775 AEE=XX ;INITIAL C(E) 11353 037670 200 00 0 00 044045 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11354 037671 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11355 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11356 037672 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11357 037673 003 02 0 00 035041 ER3 AC,35041 ;HIGH PRODUCT FAILED 11358 777777 777775 AR2=XX ;EXPECTED RESULT IN AC+1 11359 037674 312 03 0 00 044045 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11360 037675 004 03 0 00 035042 ER4 AC+1,35042 ;LOW PRODUCT FAILED 11361 777777 777775 AEE=XX ;INITIAL C(E) 11362 037676 312 00 0 00 044045 CAME E,[XX] ;WAS C(E) CLOBBERED? 11363 037677 005 00 0 00 035043 ER5 E,35043 ;C(E) WAS CLOBBERED 11364 037700 321 04 0 00 037666 JUMPL AC+2,F35040 ;LOOP ON ERROR SWITCH^ 11365 11366 003505 ADR=ADR+1 11367 777777 777773 XX=XX+XX+1 11368 IFE , 11369 11370 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11371 777777 777777 IFL XX, 11372 IFG XX, 11373 MOP1 (\ADR,1,0,XX,V1,XX)^ 11374 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11375 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11376 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11377 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11378 11379 000001 F35050: AA1=1 ;INITIAL C(AC) 11380 037701 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 11381 000000 AA2=0 ;INITIAL C(AC+1) 11382 037702 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11383 777777 777773 AEE=XX ;INITIAL C(E) 11384 037703 200 00 0 00 044046 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11385 037704 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11386 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11387 037705 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11388 037706 003 02 0 00 035051 ER3 AC,35051 ;HIGH PRODUCT FAILED 11389 777777 777773 AR2=XX ;EXPECTED RESULT IN AC+1 11390 037707 312 03 0 00 044046 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11391 037710 004 03 0 00 035052 ER4 AC+1,35052 ;LOW PRODUCT FAILED 11392 777777 777773 AEE=XX ;INITIAL C(E) 11393 037711 312 00 0 00 044046 CAME E,[XX] ;WAS C(E) CLOBBERED? 11394 037712 005 00 0 00 035053 ER5 E,35053 ;C(E) WAS CLOBBERED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-2 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0230 11395 037713 321 04 0 00 037701 JUMPL AC+2,F35050 ;LOOP ON ERROR SWITCH^ 11396 11397 003506 ADR=ADR+1 11398 777777 777767 XX=XX+XX+1 11399 IFE , 11400 11401 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11402 777777 777777 IFL XX, 11403 IFG XX, 11404 MOP1 (\ADR,1,0,XX,V1,XX)^ 11405 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11406 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11407 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11408 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11409 11410 000001 F35060: AA1=1 ;INITIAL C(AC) 11411 037714 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 11412 000000 AA2=0 ;INITIAL C(AC+1) 11413 037715 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11414 777777 777767 AEE=XX ;INITIAL C(E) 11415 037716 200 00 0 00 044047 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11416 037717 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11417 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11418 037720 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11419 037721 003 02 0 00 035061 ER3 AC,35061 ;HIGH PRODUCT FAILED 11420 777777 777767 AR2=XX ;EXPECTED RESULT IN AC+1 11421 037722 312 03 0 00 044047 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11422 037723 004 03 0 00 035062 ER4 AC+1,35062 ;LOW PRODUCT FAILED 11423 777777 777767 AEE=XX ;INITIAL C(E) 11424 037724 312 00 0 00 044047 CAME E,[XX] ;WAS C(E) CLOBBERED? 11425 037725 005 00 0 00 035063 ER5 E,35063 ;C(E) WAS CLOBBERED 11426 037726 321 04 0 00 037714 JUMPL AC+2,F35060 ;LOOP ON ERROR SWITCH^ 11427 11428 003507 ADR=ADR+1 11429 777777 777757 XX=XX+XX+1 11430 IFE , 11431 11432 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11433 777777 777777 IFL XX, 11434 IFG XX, 11435 MOP1 (\ADR,1,0,XX,V1,XX)^ 11436 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11437 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11438 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11439 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11440 11441 000001 F35070: AA1=1 ;INITIAL C(AC) 11442 037727 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 11443 000000 AA2=0 ;INITIAL C(AC+1) 11444 037730 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11445 777777 777757 AEE=XX ;INITIAL C(E) 11446 037731 200 00 0 00 044050 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11447 037732 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11448 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11449 037733 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-3 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0231 11450 037734 003 02 0 00 035071 ER3 AC,35071 ;HIGH PRODUCT FAILED 11451 777777 777757 AR2=XX ;EXPECTED RESULT IN AC+1 11452 037735 312 03 0 00 044050 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11453 037736 004 03 0 00 035072 ER4 AC+1,35072 ;LOW PRODUCT FAILED 11454 777777 777757 AEE=XX ;INITIAL C(E) 11455 037737 312 00 0 00 044050 CAME E,[XX] ;WAS C(E) CLOBBERED? 11456 037740 005 00 0 00 035073 ER5 E,35073 ;C(E) WAS CLOBBERED 11457 037741 321 04 0 00 037727 JUMPL AC+2,F35070 ;LOOP ON ERROR SWITCH^ 11458 11459 003510 ADR=ADR+1 11460 777777 777737 XX=XX+XX+1 11461 IFE , 11462 11463 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11464 777777 777777 IFL XX, 11465 IFG XX, 11466 MOP1 (\ADR,1,0,XX,V1,XX)^ 11467 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11468 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11469 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11470 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11471 11472 000001 F35100: AA1=1 ;INITIAL C(AC) 11473 037742 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 11474 000000 AA2=0 ;INITIAL C(AC+1) 11475 037743 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11476 777777 777737 AEE=XX ;INITIAL C(E) 11477 037744 200 00 0 00 044051 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11478 037745 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11479 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11480 037746 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11481 037747 003 02 0 00 035101 ER3 AC,35101 ;HIGH PRODUCT FAILED 11482 777777 777737 AR2=XX ;EXPECTED RESULT IN AC+1 11483 037750 312 03 0 00 044051 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11484 037751 004 03 0 00 035102 ER4 AC+1,35102 ;LOW PRODUCT FAILED 11485 777777 777737 AEE=XX ;INITIAL C(E) 11486 037752 312 00 0 00 044051 CAME E,[XX] ;WAS C(E) CLOBBERED? 11487 037753 005 00 0 00 035103 ER5 E,35103 ;C(E) WAS CLOBBERED 11488 037754 321 04 0 00 037742 JUMPL AC+2,F35100 ;LOOP ON ERROR SWITCH^ 11489 11490 003511 ADR=ADR+1 11491 777777 777677 XX=XX+XX+1 11492 IFE , 11493 11494 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11495 777777 777777 IFL XX, 11496 IFG XX, 11497 MOP1 (\ADR,1,0,XX,V1,XX)^ 11498 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11499 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11500 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11501 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11502 11503 000001 F35110: AA1=1 ;INITIAL C(AC) 11504 037755 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-4 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0232 11505 000000 AA2=0 ;INITIAL C(AC+1) 11506 037756 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11507 777777 777677 AEE=XX ;INITIAL C(E) 11508 037757 200 00 0 00 044052 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11509 037760 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11510 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11511 037761 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11512 037762 003 02 0 00 035111 ER3 AC,35111 ;HIGH PRODUCT FAILED 11513 777777 777677 AR2=XX ;EXPECTED RESULT IN AC+1 11514 037763 312 03 0 00 044052 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11515 037764 004 03 0 00 035112 ER4 AC+1,35112 ;LOW PRODUCT FAILED 11516 777777 777677 AEE=XX ;INITIAL C(E) 11517 037765 312 00 0 00 044052 CAME E,[XX] ;WAS C(E) CLOBBERED? 11518 037766 005 00 0 00 035113 ER5 E,35113 ;C(E) WAS CLOBBERED 11519 037767 321 04 0 00 037755 JUMPL AC+2,F35110 ;LOOP ON ERROR SWITCH^ 11520 11521 003512 ADR=ADR+1 11522 777777 777577 XX=XX+XX+1 11523 IFE , 11524 11525 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11526 777777 777777 IFL XX, 11527 IFG XX, 11528 MOP1 (\ADR,1,0,XX,V1,XX)^ 11529 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11530 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11531 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11532 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11533 11534 000001 F35120: AA1=1 ;INITIAL C(AC) 11535 037770 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 11536 000000 AA2=0 ;INITIAL C(AC+1) 11537 037771 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11538 777777 777577 AEE=XX ;INITIAL C(E) 11539 037772 200 00 0 00 044053 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11540 037773 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11541 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11542 037774 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11543 037775 003 02 0 00 035121 ER3 AC,35121 ;HIGH PRODUCT FAILED 11544 777777 777577 AR2=XX ;EXPECTED RESULT IN AC+1 11545 037776 312 03 0 00 044053 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11546 037777 004 03 0 00 035122 ER4 AC+1,35122 ;LOW PRODUCT FAILED 11547 777777 777577 AEE=XX ;INITIAL C(E) 11548 040000 312 00 0 00 044053 CAME E,[XX] ;WAS C(E) CLOBBERED? 11549 040001 005 00 0 00 035123 ER5 E,35123 ;C(E) WAS CLOBBERED 11550 040002 321 04 0 00 037770 JUMPL AC+2,F35120 ;LOOP ON ERROR SWITCH^ 11551 11552 003513 ADR=ADR+1 11553 777777 777377 XX=XX+XX+1 11554 IFE , 11555 11556 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11557 777777 777777 IFL XX, 11558 IFG XX, 11559 MOP1 (\ADR,1,0,XX,V1,XX)^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-5 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0233 11560 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11561 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11562 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11563 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11564 11565 000001 F35130: AA1=1 ;INITIAL C(AC) 11566 040003 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 11567 000000 AA2=0 ;INITIAL C(AC+1) 11568 040004 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11569 777777 777377 AEE=XX ;INITIAL C(E) 11570 040005 200 00 0 00 044054 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11571 040006 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11572 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11573 040007 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11574 040010 003 02 0 00 035131 ER3 AC,35131 ;HIGH PRODUCT FAILED 11575 777777 777377 AR2=XX ;EXPECTED RESULT IN AC+1 11576 040011 312 03 0 00 044054 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11577 040012 004 03 0 00 035132 ER4 AC+1,35132 ;LOW PRODUCT FAILED 11578 777777 777377 AEE=XX ;INITIAL C(E) 11579 040013 312 00 0 00 044054 CAME E,[XX] ;WAS C(E) CLOBBERED? 11580 040014 005 00 0 00 035133 ER5 E,35133 ;C(E) WAS CLOBBERED 11581 040015 321 04 0 00 040003 JUMPL AC+2,F35130 ;LOOP ON ERROR SWITCH^ 11582 11583 003514 ADR=ADR+1 11584 777777 776777 XX=XX+XX+1 11585 IFE , 11586 11587 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11588 777777 777777 IFL XX, 11589 IFG XX, 11590 MOP1 (\ADR,1,0,XX,V1,XX)^ 11591 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11592 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11593 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11594 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11595 11596 000001 F35140: AA1=1 ;INITIAL C(AC) 11597 040016 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 11598 000000 AA2=0 ;INITIAL C(AC+1) 11599 040017 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11600 777777 776777 AEE=XX ;INITIAL C(E) 11601 040020 200 00 0 00 044055 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11602 040021 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11603 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11604 040022 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11605 040023 003 02 0 00 035141 ER3 AC,35141 ;HIGH PRODUCT FAILED 11606 777777 776777 AR2=XX ;EXPECTED RESULT IN AC+1 11607 040024 312 03 0 00 044055 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11608 040025 004 03 0 00 035142 ER4 AC+1,35142 ;LOW PRODUCT FAILED 11609 777777 776777 AEE=XX ;INITIAL C(E) 11610 040026 312 00 0 00 044055 CAME E,[XX] ;WAS C(E) CLOBBERED? 11611 040027 005 00 0 00 035143 ER5 E,35143 ;C(E) WAS CLOBBERED 11612 040030 321 04 0 00 040016 JUMPL AC+2,F35140 ;LOOP ON ERROR SWITCH^ 11613 11614 003515 ADR=ADR+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-6 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0234 11615 777777 775777 XX=XX+XX+1 11616 IFE , 11617 11618 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11619 777777 777777 IFL XX, 11620 IFG XX, 11621 MOP1 (\ADR,1,0,XX,V1,XX)^ 11622 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11623 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11624 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11625 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11626 11627 000001 F35150: AA1=1 ;INITIAL C(AC) 11628 040031 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 11629 000000 AA2=0 ;INITIAL C(AC+1) 11630 040032 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11631 777777 775777 AEE=XX ;INITIAL C(E) 11632 040033 200 00 0 00 044056 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11633 040034 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11634 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11635 040035 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11636 040036 003 02 0 00 035151 ER3 AC,35151 ;HIGH PRODUCT FAILED 11637 777777 775777 AR2=XX ;EXPECTED RESULT IN AC+1 11638 040037 312 03 0 00 044056 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11639 040040 004 03 0 00 035152 ER4 AC+1,35152 ;LOW PRODUCT FAILED 11640 777777 775777 AEE=XX ;INITIAL C(E) 11641 040041 312 00 0 00 044056 CAME E,[XX] ;WAS C(E) CLOBBERED? 11642 040042 005 00 0 00 035153 ER5 E,35153 ;C(E) WAS CLOBBERED 11643 040043 321 04 0 00 040031 JUMPL AC+2,F35150 ;LOOP ON ERROR SWITCH^ 11644 11645 003516 ADR=ADR+1 11646 777777 773777 XX=XX+XX+1 11647 IFE , 11648 11649 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11650 777777 777777 IFL XX, 11651 IFG XX, 11652 MOP1 (\ADR,1,0,XX,V1,XX)^ 11653 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11654 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11655 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11656 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11657 11658 000001 F35160: AA1=1 ;INITIAL C(AC) 11659 040044 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 11660 000000 AA2=0 ;INITIAL C(AC+1) 11661 040045 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11662 777777 773777 AEE=XX ;INITIAL C(E) 11663 040046 200 00 0 00 044057 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11664 040047 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11665 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11666 040050 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11667 040051 003 02 0 00 035161 ER3 AC,35161 ;HIGH PRODUCT FAILED 11668 777777 773777 AR2=XX ;EXPECTED RESULT IN AC+1 11669 040052 312 03 0 00 044057 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-7 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0235 11670 040053 004 03 0 00 035162 ER4 AC+1,35162 ;LOW PRODUCT FAILED 11671 777777 773777 AEE=XX ;INITIAL C(E) 11672 040054 312 00 0 00 044057 CAME E,[XX] ;WAS C(E) CLOBBERED? 11673 040055 005 00 0 00 035163 ER5 E,35163 ;C(E) WAS CLOBBERED 11674 040056 321 04 0 00 040044 JUMPL AC+2,F35160 ;LOOP ON ERROR SWITCH^ 11675 11676 003517 ADR=ADR+1 11677 777777 767777 XX=XX+XX+1 11678 IFE , 11679 11680 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11681 777777 777777 IFL XX, 11682 IFG XX, 11683 MOP1 (\ADR,1,0,XX,V1,XX)^ 11684 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11685 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11686 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11687 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11688 11689 000001 F35170: AA1=1 ;INITIAL C(AC) 11690 040057 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 11691 000000 AA2=0 ;INITIAL C(AC+1) 11692 040060 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11693 777777 767777 AEE=XX ;INITIAL C(E) 11694 040061 200 00 0 00 044060 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11695 040062 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11696 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11697 040063 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11698 040064 003 02 0 00 035171 ER3 AC,35171 ;HIGH PRODUCT FAILED 11699 777777 767777 AR2=XX ;EXPECTED RESULT IN AC+1 11700 040065 312 03 0 00 044060 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11701 040066 004 03 0 00 035172 ER4 AC+1,35172 ;LOW PRODUCT FAILED 11702 777777 767777 AEE=XX ;INITIAL C(E) 11703 040067 312 00 0 00 044060 CAME E,[XX] ;WAS C(E) CLOBBERED? 11704 040070 005 00 0 00 035173 ER5 E,35173 ;C(E) WAS CLOBBERED 11705 040071 321 04 0 00 040057 JUMPL AC+2,F35170 ;LOOP ON ERROR SWITCH^ 11706 11707 003520 ADR=ADR+1 11708 777777 757777 XX=XX+XX+1 11709 IFE , 11710 11711 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11712 777777 777777 IFL XX, 11713 IFG XX, 11714 MOP1 (\ADR,1,0,XX,V1,XX)^ 11715 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11716 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11717 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11718 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11719 11720 000001 F35200: AA1=1 ;INITIAL C(AC) 11721 040072 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 11722 000000 AA2=0 ;INITIAL C(AC+1) 11723 040073 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11724 777777 757777 AEE=XX ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-8 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0236 11725 040074 200 00 0 00 044061 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11726 040075 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11727 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11728 040076 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11729 040077 003 02 0 00 035201 ER3 AC,35201 ;HIGH PRODUCT FAILED 11730 777777 757777 AR2=XX ;EXPECTED RESULT IN AC+1 11731 040100 312 03 0 00 044061 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11732 040101 004 03 0 00 035202 ER4 AC+1,35202 ;LOW PRODUCT FAILED 11733 777777 757777 AEE=XX ;INITIAL C(E) 11734 040102 312 00 0 00 044061 CAME E,[XX] ;WAS C(E) CLOBBERED? 11735 040103 005 00 0 00 035203 ER5 E,35203 ;C(E) WAS CLOBBERED 11736 040104 321 04 0 00 040072 JUMPL AC+2,F35200 ;LOOP ON ERROR SWITCH^ 11737 11738 003521 ADR=ADR+1 11739 777777 737777 XX=XX+XX+1 11740 IFE , 11741 11742 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11743 777777 777777 IFL XX, 11744 IFG XX, 11745 MOP1 (\ADR,1,0,XX,V1,XX)^ 11746 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11747 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11748 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11749 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11750 11751 000001 F35210: AA1=1 ;INITIAL C(AC) 11752 040105 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 11753 000000 AA2=0 ;INITIAL C(AC+1) 11754 040106 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11755 777777 737777 AEE=XX ;INITIAL C(E) 11756 040107 200 00 0 00 044062 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11757 040110 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11758 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11759 040111 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11760 040112 003 02 0 00 035211 ER3 AC,35211 ;HIGH PRODUCT FAILED 11761 777777 737777 AR2=XX ;EXPECTED RESULT IN AC+1 11762 040113 312 03 0 00 044062 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11763 040114 004 03 0 00 035212 ER4 AC+1,35212 ;LOW PRODUCT FAILED 11764 777777 737777 AEE=XX ;INITIAL C(E) 11765 040115 312 00 0 00 044062 CAME E,[XX] ;WAS C(E) CLOBBERED? 11766 040116 005 00 0 00 035213 ER5 E,35213 ;C(E) WAS CLOBBERED 11767 040117 321 04 0 00 040105 JUMPL AC+2,F35210 ;LOOP ON ERROR SWITCH^ 11768 11769 003522 ADR=ADR+1 11770 777777 677777 XX=XX+XX+1 11771 IFE , 11772 11773 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11774 777777 777777 IFL XX, 11775 IFG XX, 11776 MOP1 (\ADR,1,0,XX,V1,XX)^ 11777 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11778 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11779 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-9 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0237 11780 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11781 11782 000001 F35220: AA1=1 ;INITIAL C(AC) 11783 040120 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 11784 000000 AA2=0 ;INITIAL C(AC+1) 11785 040121 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11786 777777 677777 AEE=XX ;INITIAL C(E) 11787 040122 200 00 0 00 044063 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11788 040123 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11789 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11790 040124 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11791 040125 003 02 0 00 035221 ER3 AC,35221 ;HIGH PRODUCT FAILED 11792 777777 677777 AR2=XX ;EXPECTED RESULT IN AC+1 11793 040126 312 03 0 00 044063 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11794 040127 004 03 0 00 035222 ER4 AC+1,35222 ;LOW PRODUCT FAILED 11795 777777 677777 AEE=XX ;INITIAL C(E) 11796 040130 312 00 0 00 044063 CAME E,[XX] ;WAS C(E) CLOBBERED? 11797 040131 005 00 0 00 035223 ER5 E,35223 ;C(E) WAS CLOBBERED 11798 040132 321 04 0 00 040120 JUMPL AC+2,F35220 ;LOOP ON ERROR SWITCH^ 11799 11800 003523 ADR=ADR+1 11801 777777 577777 XX=XX+XX+1 11802 IFE , 11803 11804 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11805 777777 777777 IFL XX, 11806 IFG XX, 11807 MOP1 (\ADR,1,0,XX,V1,XX)^ 11808 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11809 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11810 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11811 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11812 11813 000001 F35230: AA1=1 ;INITIAL C(AC) 11814 040133 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 11815 000000 AA2=0 ;INITIAL C(AC+1) 11816 040134 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11817 777777 577777 AEE=XX ;INITIAL C(E) 11818 040135 200 00 0 00 044064 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11819 040136 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11820 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11821 040137 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11822 040140 003 02 0 00 035231 ER3 AC,35231 ;HIGH PRODUCT FAILED 11823 777777 577777 AR2=XX ;EXPECTED RESULT IN AC+1 11824 040141 312 03 0 00 044064 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11825 040142 004 03 0 00 035232 ER4 AC+1,35232 ;LOW PRODUCT FAILED 11826 777777 577777 AEE=XX ;INITIAL C(E) 11827 040143 312 00 0 00 044064 CAME E,[XX] ;WAS C(E) CLOBBERED? 11828 040144 005 00 0 00 035233 ER5 E,35233 ;C(E) WAS CLOBBERED 11829 040145 321 04 0 00 040133 JUMPL AC+2,F35230 ;LOOP ON ERROR SWITCH^ 11830 11831 003524 ADR=ADR+1 11832 777777 377777 XX=XX+XX+1 11833 IFE , 11834 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-10 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0238 11835 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11836 777777 777777 IFL XX, 11837 IFG XX, 11838 MOP1 (\ADR,1,0,XX,V1,XX)^ 11839 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11840 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11841 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11842 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11843 11844 000001 F35240: AA1=1 ;INITIAL C(AC) 11845 040146 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 11846 000000 AA2=0 ;INITIAL C(AC+1) 11847 040147 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11848 777777 377777 AEE=XX ;INITIAL C(E) 11849 040150 200 00 0 00 044065 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11850 040151 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11851 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11852 040152 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11853 040153 003 02 0 00 035241 ER3 AC,35241 ;HIGH PRODUCT FAILED 11854 777777 377777 AR2=XX ;EXPECTED RESULT IN AC+1 11855 040154 312 03 0 00 044065 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11856 040155 004 03 0 00 035242 ER4 AC+1,35242 ;LOW PRODUCT FAILED 11857 777777 377777 AEE=XX ;INITIAL C(E) 11858 040156 312 00 0 00 044065 CAME E,[XX] ;WAS C(E) CLOBBERED? 11859 040157 005 00 0 00 035243 ER5 E,35243 ;C(E) WAS CLOBBERED 11860 040160 321 04 0 00 040146 JUMPL AC+2,F35240 ;LOOP ON ERROR SWITCH^ 11861 11862 003525 ADR=ADR+1 11863 777776 777777 XX=XX+XX+1 11864 IFE , 11865 11866 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11867 777777 777777 IFL XX, 11868 IFG XX, 11869 MOP1 (\ADR,1,0,XX,V1,XX)^ 11870 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11871 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11872 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11873 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11874 11875 000001 F35250: AA1=1 ;INITIAL C(AC) 11876 040161 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 11877 000000 AA2=0 ;INITIAL C(AC+1) 11878 040162 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11879 777776 777777 AEE=XX ;INITIAL C(E) 11880 040163 200 00 0 00 044066 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11881 040164 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11882 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11883 040165 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11884 040166 003 02 0 00 035251 ER3 AC,35251 ;HIGH PRODUCT FAILED 11885 777776 777777 AR2=XX ;EXPECTED RESULT IN AC+1 11886 040167 312 03 0 00 044066 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11887 040170 004 03 0 00 035252 ER4 AC+1,35252 ;LOW PRODUCT FAILED 11888 777776 777777 AEE=XX ;INITIAL C(E) 11889 040171 312 00 0 00 044066 CAME E,[XX] ;WAS C(E) CLOBBERED? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-11 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0239 11890 040172 005 00 0 00 035253 ER5 E,35253 ;C(E) WAS CLOBBERED 11891 040173 321 04 0 00 040161 JUMPL AC+2,F35250 ;LOOP ON ERROR SWITCH^ 11892 11893 003526 ADR=ADR+1 11894 777775 777777 XX=XX+XX+1 11895 IFE , 11896 11897 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11898 777777 777777 IFL XX, 11899 IFG XX, 11900 MOP1 (\ADR,1,0,XX,V1,XX)^ 11901 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11902 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11903 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11904 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11905 11906 000001 F35260: AA1=1 ;INITIAL C(AC) 11907 040174 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 11908 000000 AA2=0 ;INITIAL C(AC+1) 11909 040175 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11910 777775 777777 AEE=XX ;INITIAL C(E) 11911 040176 200 00 0 00 044067 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11912 040177 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11913 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11914 040200 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11915 040201 003 02 0 00 035261 ER3 AC,35261 ;HIGH PRODUCT FAILED 11916 777775 777777 AR2=XX ;EXPECTED RESULT IN AC+1 11917 040202 312 03 0 00 044067 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11918 040203 004 03 0 00 035262 ER4 AC+1,35262 ;LOW PRODUCT FAILED 11919 777775 777777 AEE=XX ;INITIAL C(E) 11920 040204 312 00 0 00 044067 CAME E,[XX] ;WAS C(E) CLOBBERED? 11921 040205 005 00 0 00 035263 ER5 E,35263 ;C(E) WAS CLOBBERED 11922 040206 321 04 0 00 040174 JUMPL AC+2,F35260 ;LOOP ON ERROR SWITCH^ 11923 11924 003527 ADR=ADR+1 11925 777773 777777 XX=XX+XX+1 11926 IFE , 11927 11928 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11929 777777 777777 IFL XX, 11930 IFG XX, 11931 MOP1 (\ADR,1,0,XX,V1,XX)^ 11932 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11933 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11934 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11935 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11936 11937 000001 F35270: AA1=1 ;INITIAL C(AC) 11938 040207 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 11939 000000 AA2=0 ;INITIAL C(AC+1) 11940 040210 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11941 777773 777777 AEE=XX ;INITIAL C(E) 11942 040211 200 00 0 00 044070 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11943 040212 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11944 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-12 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0240 11945 040213 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11946 040214 003 02 0 00 035271 ER3 AC,35271 ;HIGH PRODUCT FAILED 11947 777773 777777 AR2=XX ;EXPECTED RESULT IN AC+1 11948 040215 312 03 0 00 044070 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11949 040216 004 03 0 00 035272 ER4 AC+1,35272 ;LOW PRODUCT FAILED 11950 777773 777777 AEE=XX ;INITIAL C(E) 11951 040217 312 00 0 00 044070 CAME E,[XX] ;WAS C(E) CLOBBERED? 11952 040220 005 00 0 00 035273 ER5 E,35273 ;C(E) WAS CLOBBERED 11953 040221 321 04 0 00 040207 JUMPL AC+2,F35270 ;LOOP ON ERROR SWITCH^ 11954 11955 003530 ADR=ADR+1 11956 777767 777777 XX=XX+XX+1 11957 IFE , 11958 11959 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11960 777777 777777 IFL XX, 11961 IFG XX, 11962 MOP1 (\ADR,1,0,XX,V1,XX)^ 11963 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11964 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11965 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11966 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11967 11968 000001 F35300: AA1=1 ;INITIAL C(AC) 11969 040222 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 11970 000000 AA2=0 ;INITIAL C(AC+1) 11971 040223 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 11972 777767 777777 AEE=XX ;INITIAL C(E) 11973 040224 200 00 0 00 044071 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 11974 040225 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 11975 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 11976 040226 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 11977 040227 003 02 0 00 035301 ER3 AC,35301 ;HIGH PRODUCT FAILED 11978 777767 777777 AR2=XX ;EXPECTED RESULT IN AC+1 11979 040230 312 03 0 00 044071 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 11980 040231 004 03 0 00 035302 ER4 AC+1,35302 ;LOW PRODUCT FAILED 11981 777767 777777 AEE=XX ;INITIAL C(E) 11982 040232 312 00 0 00 044071 CAME E,[XX] ;WAS C(E) CLOBBERED? 11983 040233 005 00 0 00 035303 ER5 E,35303 ;C(E) WAS CLOBBERED 11984 040234 321 04 0 00 040222 JUMPL AC+2,F35300 ;LOOP ON ERROR SWITCH^ 11985 11986 003531 ADR=ADR+1 11987 777757 777777 XX=XX+XX+1 11988 IFE , 11989 11990 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 11991 777777 777777 IFL XX, 11992 IFG XX, 11993 MOP1 (\ADR,1,0,XX,V1,XX)^ 11994 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 11995 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 11996 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 11997 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 11998 11999 000001 F35310: AA1=1 ;INITIAL C(AC) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-13 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0241 12000 040235 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 12001 000000 AA2=0 ;INITIAL C(AC+1) 12002 040236 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12003 777757 777777 AEE=XX ;INITIAL C(E) 12004 040237 200 00 0 00 044072 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 12005 040240 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12006 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12007 040241 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12008 040242 003 02 0 00 035311 ER3 AC,35311 ;HIGH PRODUCT FAILED 12009 777757 777777 AR2=XX ;EXPECTED RESULT IN AC+1 12010 040243 312 03 0 00 044072 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12011 040244 004 03 0 00 035312 ER4 AC+1,35312 ;LOW PRODUCT FAILED 12012 777757 777777 AEE=XX ;INITIAL C(E) 12013 040245 312 00 0 00 044072 CAME E,[XX] ;WAS C(E) CLOBBERED? 12014 040246 005 00 0 00 035313 ER5 E,35313 ;C(E) WAS CLOBBERED 12015 040247 321 04 0 00 040235 JUMPL AC+2,F35310 ;LOOP ON ERROR SWITCH^ 12016 12017 003532 ADR=ADR+1 12018 777737 777777 XX=XX+XX+1 12019 IFE , 12020 12021 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 12022 777777 777777 IFL XX, 12023 IFG XX, 12024 MOP1 (\ADR,1,0,XX,V1,XX)^ 12025 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 12026 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12027 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 12028 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12029 12030 000001 F35320: AA1=1 ;INITIAL C(AC) 12031 040250 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 12032 000000 AA2=0 ;INITIAL C(AC+1) 12033 040251 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12034 777737 777777 AEE=XX ;INITIAL C(E) 12035 040252 200 00 0 00 044073 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 12036 040253 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12037 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12038 040254 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12039 040255 003 02 0 00 035321 ER3 AC,35321 ;HIGH PRODUCT FAILED 12040 777737 777777 AR2=XX ;EXPECTED RESULT IN AC+1 12041 040256 312 03 0 00 044073 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12042 040257 004 03 0 00 035322 ER4 AC+1,35322 ;LOW PRODUCT FAILED 12043 777737 777777 AEE=XX ;INITIAL C(E) 12044 040260 312 00 0 00 044073 CAME E,[XX] ;WAS C(E) CLOBBERED? 12045 040261 005 00 0 00 035323 ER5 E,35323 ;C(E) WAS CLOBBERED 12046 040262 321 04 0 00 040250 JUMPL AC+2,F35320 ;LOOP ON ERROR SWITCH^ 12047 12048 003533 ADR=ADR+1 12049 777677 777777 XX=XX+XX+1 12050 IFE , 12051 12052 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 12053 777777 777777 IFL XX, 12054 IFG XX, DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-14 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0242 12055 MOP1 (\ADR,1,0,XX,V1,XX)^ 12056 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 12057 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12058 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 12059 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12060 12061 000001 F35330: AA1=1 ;INITIAL C(AC) 12062 040263 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 12063 000000 AA2=0 ;INITIAL C(AC+1) 12064 040264 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12065 777677 777777 AEE=XX ;INITIAL C(E) 12066 040265 200 00 0 00 044074 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 12067 040266 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12068 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12069 040267 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12070 040270 003 02 0 00 035331 ER3 AC,35331 ;HIGH PRODUCT FAILED 12071 777677 777777 AR2=XX ;EXPECTED RESULT IN AC+1 12072 040271 312 03 0 00 044074 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12073 040272 004 03 0 00 035332 ER4 AC+1,35332 ;LOW PRODUCT FAILED 12074 777677 777777 AEE=XX ;INITIAL C(E) 12075 040273 312 00 0 00 044074 CAME E,[XX] ;WAS C(E) CLOBBERED? 12076 040274 005 00 0 00 035333 ER5 E,35333 ;C(E) WAS CLOBBERED 12077 040275 321 04 0 00 040263 JUMPL AC+2,F35330 ;LOOP ON ERROR SWITCH^ 12078 12079 003534 ADR=ADR+1 12080 777577 777777 XX=XX+XX+1 12081 IFE , 12082 12083 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 12084 777777 777777 IFL XX, 12085 IFG XX, 12086 MOP1 (\ADR,1,0,XX,V1,XX)^ 12087 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 12088 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12089 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 12090 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12091 12092 000001 F35340: AA1=1 ;INITIAL C(AC) 12093 040276 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 12094 000000 AA2=0 ;INITIAL C(AC+1) 12095 040277 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12096 777577 777777 AEE=XX ;INITIAL C(E) 12097 040300 200 00 0 00 044075 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 12098 040301 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12099 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12100 040302 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12101 040303 003 02 0 00 035341 ER3 AC,35341 ;HIGH PRODUCT FAILED 12102 777577 777777 AR2=XX ;EXPECTED RESULT IN AC+1 12103 040304 312 03 0 00 044075 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12104 040305 004 03 0 00 035342 ER4 AC+1,35342 ;LOW PRODUCT FAILED 12105 777577 777777 AEE=XX ;INITIAL C(E) 12106 040306 312 00 0 00 044075 CAME E,[XX] ;WAS C(E) CLOBBERED? 12107 040307 005 00 0 00 035343 ER5 E,35343 ;C(E) WAS CLOBBERED 12108 040310 321 04 0 00 040276 JUMPL AC+2,F35340 ;LOOP ON ERROR SWITCH^ 12109 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-15 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0243 12110 003535 ADR=ADR+1 12111 777377 777777 XX=XX+XX+1 12112 IFE , 12113 12114 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 12115 777777 777777 IFL XX, 12116 IFG XX, 12117 MOP1 (\ADR,1,0,XX,V1,XX)^ 12118 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 12119 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12120 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 12121 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12122 12123 000001 F35350: AA1=1 ;INITIAL C(AC) 12124 040311 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 12125 000000 AA2=0 ;INITIAL C(AC+1) 12126 040312 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12127 777377 777777 AEE=XX ;INITIAL C(E) 12128 040313 200 00 0 00 044076 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 12129 040314 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12130 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12131 040315 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12132 040316 003 02 0 00 035351 ER3 AC,35351 ;HIGH PRODUCT FAILED 12133 777377 777777 AR2=XX ;EXPECTED RESULT IN AC+1 12134 040317 312 03 0 00 044076 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12135 040320 004 03 0 00 035352 ER4 AC+1,35352 ;LOW PRODUCT FAILED 12136 777377 777777 AEE=XX ;INITIAL C(E) 12137 040321 312 00 0 00 044076 CAME E,[XX] ;WAS C(E) CLOBBERED? 12138 040322 005 00 0 00 035353 ER5 E,35353 ;C(E) WAS CLOBBERED 12139 040323 321 04 0 00 040311 JUMPL AC+2,F35350 ;LOOP ON ERROR SWITCH^ 12140 12141 003536 ADR=ADR+1 12142 776777 777777 XX=XX+XX+1 12143 IFE , 12144 12145 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 12146 777777 777777 IFL XX, 12147 IFG XX, 12148 MOP1 (\ADR,1,0,XX,V1,XX)^ 12149 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 12150 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12151 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 12152 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12153 12154 000001 F35360: AA1=1 ;INITIAL C(AC) 12155 040324 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 12156 000000 AA2=0 ;INITIAL C(AC+1) 12157 040325 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12158 776777 777777 AEE=XX ;INITIAL C(E) 12159 040326 200 00 0 00 044077 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 12160 040327 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12161 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12162 040330 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12163 040331 003 02 0 00 035361 ER3 AC,35361 ;HIGH PRODUCT FAILED 12164 776777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-16 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0244 12165 040332 312 03 0 00 044077 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12166 040333 004 03 0 00 035362 ER4 AC+1,35362 ;LOW PRODUCT FAILED 12167 776777 777777 AEE=XX ;INITIAL C(E) 12168 040334 312 00 0 00 044077 CAME E,[XX] ;WAS C(E) CLOBBERED? 12169 040335 005 00 0 00 035363 ER5 E,35363 ;C(E) WAS CLOBBERED 12170 040336 321 04 0 00 040324 JUMPL AC+2,F35360 ;LOOP ON ERROR SWITCH^ 12171 12172 003537 ADR=ADR+1 12173 775777 777777 XX=XX+XX+1 12174 IFE , 12175 12176 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 12177 777777 777777 IFL XX, 12178 IFG XX, 12179 MOP1 (\ADR,1,0,XX,V1,XX)^ 12180 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 12181 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12182 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 12183 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12184 12185 000001 F35370: AA1=1 ;INITIAL C(AC) 12186 040337 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 12187 000000 AA2=0 ;INITIAL C(AC+1) 12188 040340 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12189 775777 777777 AEE=XX ;INITIAL C(E) 12190 040341 200 00 0 00 044100 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 12191 040342 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12192 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12193 040343 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12194 040344 003 02 0 00 035371 ER3 AC,35371 ;HIGH PRODUCT FAILED 12195 775777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 12196 040345 312 03 0 00 044100 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12197 040346 004 03 0 00 035372 ER4 AC+1,35372 ;LOW PRODUCT FAILED 12198 775777 777777 AEE=XX ;INITIAL C(E) 12199 040347 312 00 0 00 044100 CAME E,[XX] ;WAS C(E) CLOBBERED? 12200 040350 005 00 0 00 035373 ER5 E,35373 ;C(E) WAS CLOBBERED 12201 040351 321 04 0 00 040337 JUMPL AC+2,F35370 ;LOOP ON ERROR SWITCH^ 12202 12203 003540 ADR=ADR+1 12204 773777 777777 XX=XX+XX+1 12205 IFE , 12206 12207 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 12208 777777 777777 IFL XX, 12209 IFG XX, 12210 MOP1 (\ADR,1,0,XX,V1,XX)^ 12211 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 12212 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12213 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 12214 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12215 12216 000001 F35400: AA1=1 ;INITIAL C(AC) 12217 040352 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 12218 000000 AA2=0 ;INITIAL C(AC+1) 12219 040353 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-17 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0245 12220 773777 777777 AEE=XX ;INITIAL C(E) 12221 040354 200 00 0 00 044101 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 12222 040355 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12223 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12224 040356 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12225 040357 003 02 0 00 035401 ER3 AC,35401 ;HIGH PRODUCT FAILED 12226 773777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 12227 040360 312 03 0 00 044101 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12228 040361 004 03 0 00 035402 ER4 AC+1,35402 ;LOW PRODUCT FAILED 12229 773777 777777 AEE=XX ;INITIAL C(E) 12230 040362 312 00 0 00 044101 CAME E,[XX] ;WAS C(E) CLOBBERED? 12231 040363 005 00 0 00 035403 ER5 E,35403 ;C(E) WAS CLOBBERED 12232 040364 321 04 0 00 040352 JUMPL AC+2,F35400 ;LOOP ON ERROR SWITCH^ 12233 12234 003541 ADR=ADR+1 12235 767777 777777 XX=XX+XX+1 12236 IFE , 12237 12238 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 12239 777777 777777 IFL XX, 12240 IFG XX, 12241 MOP1 (\ADR,1,0,XX,V1,XX)^ 12242 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 12243 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12244 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 12245 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12246 12247 000001 F35410: AA1=1 ;INITIAL C(AC) 12248 040365 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 12249 000000 AA2=0 ;INITIAL C(AC+1) 12250 040366 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12251 767777 777777 AEE=XX ;INITIAL C(E) 12252 040367 200 00 0 00 044102 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 12253 040370 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12254 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12255 040371 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12256 040372 003 02 0 00 035411 ER3 AC,35411 ;HIGH PRODUCT FAILED 12257 767777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 12258 040373 312 03 0 00 044102 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12259 040374 004 03 0 00 035412 ER4 AC+1,35412 ;LOW PRODUCT FAILED 12260 767777 777777 AEE=XX ;INITIAL C(E) 12261 040375 312 00 0 00 044102 CAME E,[XX] ;WAS C(E) CLOBBERED? 12262 040376 005 00 0 00 035413 ER5 E,35413 ;C(E) WAS CLOBBERED 12263 040377 321 04 0 00 040365 JUMPL AC+2,F35410 ;LOOP ON ERROR SWITCH^ 12264 12265 003542 ADR=ADR+1 12266 757777 777777 XX=XX+XX+1 12267 IFE , 12268 12269 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 12270 777777 777777 IFL XX, 12271 IFG XX, 12272 MOP1 (\ADR,1,0,XX,V1,XX)^ 12273 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 12274 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-18 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0246 12275 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 12276 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12277 12278 000001 F35420: AA1=1 ;INITIAL C(AC) 12279 040400 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 12280 000000 AA2=0 ;INITIAL C(AC+1) 12281 040401 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12282 757777 777777 AEE=XX ;INITIAL C(E) 12283 040402 200 00 0 00 044103 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 12284 040403 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12285 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12286 040404 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12287 040405 003 02 0 00 035421 ER3 AC,35421 ;HIGH PRODUCT FAILED 12288 757777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 12289 040406 312 03 0 00 044103 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12290 040407 004 03 0 00 035422 ER4 AC+1,35422 ;LOW PRODUCT FAILED 12291 757777 777777 AEE=XX ;INITIAL C(E) 12292 040410 312 00 0 00 044103 CAME E,[XX] ;WAS C(E) CLOBBERED? 12293 040411 005 00 0 00 035423 ER5 E,35423 ;C(E) WAS CLOBBERED 12294 040412 321 04 0 00 040400 JUMPL AC+2,F35420 ;LOOP ON ERROR SWITCH^ 12295 12296 003543 ADR=ADR+1 12297 737777 777777 XX=XX+XX+1 12298 IFE , 12299 12300 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 12301 777777 777777 IFL XX, 12302 IFG XX, 12303 MOP1 (\ADR,1,0,XX,V1,XX)^ 12304 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 12305 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12306 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 12307 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12308 12309 000001 F35430: AA1=1 ;INITIAL C(AC) 12310 040413 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 12311 000000 AA2=0 ;INITIAL C(AC+1) 12312 040414 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12313 737777 777777 AEE=XX ;INITIAL C(E) 12314 040415 200 00 0 00 044104 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 12315 040416 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12316 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12317 040417 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12318 040420 003 02 0 00 035431 ER3 AC,35431 ;HIGH PRODUCT FAILED 12319 737777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 12320 040421 312 03 0 00 044104 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12321 040422 004 03 0 00 035432 ER4 AC+1,35432 ;LOW PRODUCT FAILED 12322 737777 777777 AEE=XX ;INITIAL C(E) 12323 040423 312 00 0 00 044104 CAME E,[XX] ;WAS C(E) CLOBBERED? 12324 040424 005 00 0 00 035433 ER5 E,35433 ;C(E) WAS CLOBBERED 12325 040425 321 04 0 00 040413 JUMPL AC+2,F35430 ;LOOP ON ERROR SWITCH^ 12326 12327 003544 ADR=ADR+1 12328 677777 777777 XX=XX+XX+1 12329 IFE , DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-19 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0247 12330 12331 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 12332 777777 777777 IFL XX, 12333 IFG XX, 12334 MOP1 (\ADR,1,0,XX,V1,XX)^ 12335 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 12336 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12337 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 12338 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12339 12340 000001 F35440: AA1=1 ;INITIAL C(AC) 12341 040426 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 12342 000000 AA2=0 ;INITIAL C(AC+1) 12343 040427 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12344 677777 777777 AEE=XX ;INITIAL C(E) 12345 040430 200 00 0 00 044105 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 12346 040431 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12347 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12348 040432 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12349 040433 003 02 0 00 035441 ER3 AC,35441 ;HIGH PRODUCT FAILED 12350 677777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 12351 040434 312 03 0 00 044105 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12352 040435 004 03 0 00 035442 ER4 AC+1,35442 ;LOW PRODUCT FAILED 12353 677777 777777 AEE=XX ;INITIAL C(E) 12354 040436 312 00 0 00 044105 CAME E,[XX] ;WAS C(E) CLOBBERED? 12355 040437 005 00 0 00 035443 ER5 E,35443 ;C(E) WAS CLOBBERED 12356 040440 321 04 0 00 040426 JUMPL AC+2,F35440 ;LOOP ON ERROR SWITCH^ 12357 12358 003545 ADR=ADR+1 12359 577777 777777 XX=XX+XX+1 12360 IFE , 12361 12362 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 12363 777777 777777 IFL XX, 12364 IFG XX, 12365 MOP1 (\ADR,1,0,XX,V1,XX)^ 12366 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 12367 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12368 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 12369 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12370 12371 000001 F35450: AA1=1 ;INITIAL C(AC) 12372 040441 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 12373 000000 AA2=0 ;INITIAL C(AC+1) 12374 040442 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12375 577777 777777 AEE=XX ;INITIAL C(E) 12376 040443 200 00 0 00 044106 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 12377 040444 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12378 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12379 040445 312 02 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12380 040446 003 02 0 00 035451 ER3 AC,35451 ;HIGH PRODUCT FAILED 12381 577777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 12382 040447 312 03 0 00 044106 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12383 040450 004 03 0 00 035452 ER4 AC+1,35452 ;LOW PRODUCT FAILED 12384 577777 777777 AEE=XX ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 16-20 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0248 12385 040451 312 00 0 00 044106 CAME E,[XX] ;WAS C(E) CLOBBERED? 12386 040452 005 00 0 00 035453 ER5 E,35453 ;C(E) WAS CLOBBERED 12387 040453 321 04 0 00 040441 JUMPL AC+2,F35450 ;LOOP ON ERROR SWITCH^ 12388 12389 003546 ADR=ADR+1 12390 377777 777777 XX=XX+XX+1 12391 IFE , 12392 12393 ;MULTIPLY RIPPLED 0 BY 1 TO GET PRODUCT OF RIPPLED 0 12394 IFL XX, 12395 000000 IFG XX, 12396 MOP1 (\ADR,1,0,XX,V1,XX)^ 12397 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [1],[0] AND 12398 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12399 ;AND E AGAINST [V1], [XX] AND [XX] RESPECTIVELY. 12400 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12401 12402 000001 F35460: AA1=1 ;INITIAL C(AC) 12403 040454 200 02 0 00 044000 MOVE AC,[1] ;PRELOAD AC (MULTIPLIER) 12404 000000 AA2=0 ;INITIAL C(AC+1) 12405 040455 200 03 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12406 377777 777777 AEE=XX ;INITIAL C(E) 12407 040456 200 00 0 00 044107 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 12408 040457 224 02 0 00 000000 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12409 000000 AR1=V1 ;EXPECTED RESULT IN AC 12410 040460 312 02 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12411 040461 003 02 0 00 035461 ER3 AC,35461 ;HIGH PRODUCT FAILED 12412 377777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 12413 040462 312 03 0 00 044107 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12414 040463 004 03 0 00 035462 ER4 AC+1,35462 ;LOW PRODUCT FAILED 12415 377777 777777 AEE=XX ;INITIAL C(E) 12416 040464 312 00 0 00 044107 CAME E,[XX] ;WAS C(E) CLOBBERED? 12417 040465 005 00 0 00 035463 ER5 E,35463 ;C(E) WAS CLOBBERED 12418 040466 321 04 0 00 040454 JUMPL AC+2,F35460 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0249 12419 000010 AC=10 12420 000006 E=&17 12421 SAVEAC (1,1)^ 12422 040467 201 12 0 00 040467 MOVEI AC+2,. ;SAVE TEST PC 12423 040470 202 12 0 00 030051 MOVEM AC+2,TESTPC 12424 040471 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH 12425 040472 202 12 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ 12426 000000 XX=0 12427 12428 REPEAT ^D36,< 12429 ADR=ADR+1 12430 XX=XX+XX+1 12431 IFE , 12432 12433 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 12434 IFL XX, 12435 IFG XX, 12436 MOP1 (\ADR,XX,0,1,V1,XX)> 12437 12438 003547 ADR=ADR+1 12439 000001 XX=XX+XX+1 12440 777777 777776 IFE , 12441 12442 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 12443 777777 777777 IFL XX, 12444 IFG XX, 12445 MOP1 (\ADR,XX,0,1,V1,XX)^ 12446 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 12447 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12448 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 12449 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12450 12451 777777 777776 F35470: AA1=XX ;INITIAL C(AC) 12452 040473 200 10 0 00 044044 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 12453 000000 AA2=0 ;INITIAL C(AC+1) 12454 040474 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12455 000001 AEE=1 ;INITIAL C(E) 12456 040475 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 12457 040476 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12458 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12459 040477 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12460 040500 003 10 0 00 035471 ER3 AC,35471 ;HIGH PRODUCT FAILED 12461 777777 777776 AR2=XX ;EXPECTED RESULT IN AC+1 12462 040501 312 11 0 00 044044 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12463 040502 004 11 0 00 035472 ER4 AC+1,35472 ;LOW PRODUCT FAILED 12464 000001 AEE=1 ;INITIAL C(E) 12465 040503 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 12466 040504 005 06 0 00 035473 ER5 E,35473 ;C(E) WAS CLOBBERED 12467 040505 321 12 0 00 040473 JUMPL AC+2,F35470 ;LOOP ON ERROR SWITCH^ 12468 12469 003550 ADR=ADR+1 12470 777777 777775 XX=XX+XX+1 12471 IFE , 12472 12473 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-1 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0250 12474 777777 777777 IFL XX, 12475 IFG XX, 12476 MOP1 (\ADR,XX,0,1,V1,XX)^ 12477 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 12478 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12479 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 12480 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12481 12482 777777 777775 F35500: AA1=XX ;INITIAL C(AC) 12483 040506 200 10 0 00 044045 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 12484 000000 AA2=0 ;INITIAL C(AC+1) 12485 040507 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12486 000001 AEE=1 ;INITIAL C(E) 12487 040510 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 12488 040511 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12489 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12490 040512 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12491 040513 003 10 0 00 035501 ER3 AC,35501 ;HIGH PRODUCT FAILED 12492 777777 777775 AR2=XX ;EXPECTED RESULT IN AC+1 12493 040514 312 11 0 00 044045 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12494 040515 004 11 0 00 035502 ER4 AC+1,35502 ;LOW PRODUCT FAILED 12495 000001 AEE=1 ;INITIAL C(E) 12496 040516 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 12497 040517 005 06 0 00 035503 ER5 E,35503 ;C(E) WAS CLOBBERED 12498 040520 321 12 0 00 040506 JUMPL AC+2,F35500 ;LOOP ON ERROR SWITCH^ 12499 12500 003551 ADR=ADR+1 12501 777777 777773 XX=XX+XX+1 12502 IFE , 12503 12504 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 12505 777777 777777 IFL XX, 12506 IFG XX, 12507 MOP1 (\ADR,XX,0,1,V1,XX)^ 12508 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 12509 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12510 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 12511 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12512 12513 777777 777773 F35510: AA1=XX ;INITIAL C(AC) 12514 040521 200 10 0 00 044046 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 12515 000000 AA2=0 ;INITIAL C(AC+1) 12516 040522 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12517 000001 AEE=1 ;INITIAL C(E) 12518 040523 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 12519 040524 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12520 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12521 040525 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12522 040526 003 10 0 00 035511 ER3 AC,35511 ;HIGH PRODUCT FAILED 12523 777777 777773 AR2=XX ;EXPECTED RESULT IN AC+1 12524 040527 312 11 0 00 044046 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12525 040530 004 11 0 00 035512 ER4 AC+1,35512 ;LOW PRODUCT FAILED 12526 000001 AEE=1 ;INITIAL C(E) 12527 040531 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 12528 040532 005 06 0 00 035513 ER5 E,35513 ;C(E) WAS CLOBBERED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-2 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0251 12529 040533 321 12 0 00 040521 JUMPL AC+2,F35510 ;LOOP ON ERROR SWITCH^ 12530 12531 003552 ADR=ADR+1 12532 777777 777767 XX=XX+XX+1 12533 IFE , 12534 12535 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 12536 777777 777777 IFL XX, 12537 IFG XX, 12538 MOP1 (\ADR,XX,0,1,V1,XX)^ 12539 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 12540 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12541 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 12542 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12543 12544 777777 777767 F35520: AA1=XX ;INITIAL C(AC) 12545 040534 200 10 0 00 044047 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 12546 000000 AA2=0 ;INITIAL C(AC+1) 12547 040535 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12548 000001 AEE=1 ;INITIAL C(E) 12549 040536 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 12550 040537 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12551 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12552 040540 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12553 040541 003 10 0 00 035521 ER3 AC,35521 ;HIGH PRODUCT FAILED 12554 777777 777767 AR2=XX ;EXPECTED RESULT IN AC+1 12555 040542 312 11 0 00 044047 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12556 040543 004 11 0 00 035522 ER4 AC+1,35522 ;LOW PRODUCT FAILED 12557 000001 AEE=1 ;INITIAL C(E) 12558 040544 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 12559 040545 005 06 0 00 035523 ER5 E,35523 ;C(E) WAS CLOBBERED 12560 040546 321 12 0 00 040534 JUMPL AC+2,F35520 ;LOOP ON ERROR SWITCH^ 12561 12562 003553 ADR=ADR+1 12563 777777 777757 XX=XX+XX+1 12564 IFE , 12565 12566 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 12567 777777 777777 IFL XX, 12568 IFG XX, 12569 MOP1 (\ADR,XX,0,1,V1,XX)^ 12570 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 12571 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12572 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 12573 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12574 12575 777777 777757 F35530: AA1=XX ;INITIAL C(AC) 12576 040547 200 10 0 00 044050 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 12577 000000 AA2=0 ;INITIAL C(AC+1) 12578 040550 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12579 000001 AEE=1 ;INITIAL C(E) 12580 040551 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 12581 040552 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12582 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12583 040553 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-3 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0252 12584 040554 003 10 0 00 035531 ER3 AC,35531 ;HIGH PRODUCT FAILED 12585 777777 777757 AR2=XX ;EXPECTED RESULT IN AC+1 12586 040555 312 11 0 00 044050 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12587 040556 004 11 0 00 035532 ER4 AC+1,35532 ;LOW PRODUCT FAILED 12588 000001 AEE=1 ;INITIAL C(E) 12589 040557 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 12590 040560 005 06 0 00 035533 ER5 E,35533 ;C(E) WAS CLOBBERED 12591 040561 321 12 0 00 040547 JUMPL AC+2,F35530 ;LOOP ON ERROR SWITCH^ 12592 12593 003554 ADR=ADR+1 12594 777777 777737 XX=XX+XX+1 12595 IFE , 12596 12597 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 12598 777777 777777 IFL XX, 12599 IFG XX, 12600 MOP1 (\ADR,XX,0,1,V1,XX)^ 12601 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 12602 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12603 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 12604 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12605 12606 777777 777737 F35540: AA1=XX ;INITIAL C(AC) 12607 040562 200 10 0 00 044051 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 12608 000000 AA2=0 ;INITIAL C(AC+1) 12609 040563 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12610 000001 AEE=1 ;INITIAL C(E) 12611 040564 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 12612 040565 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12613 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12614 040566 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12615 040567 003 10 0 00 035541 ER3 AC,35541 ;HIGH PRODUCT FAILED 12616 777777 777737 AR2=XX ;EXPECTED RESULT IN AC+1 12617 040570 312 11 0 00 044051 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12618 040571 004 11 0 00 035542 ER4 AC+1,35542 ;LOW PRODUCT FAILED 12619 000001 AEE=1 ;INITIAL C(E) 12620 040572 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 12621 040573 005 06 0 00 035543 ER5 E,35543 ;C(E) WAS CLOBBERED 12622 040574 321 12 0 00 040562 JUMPL AC+2,F35540 ;LOOP ON ERROR SWITCH^ 12623 12624 003555 ADR=ADR+1 12625 777777 777677 XX=XX+XX+1 12626 IFE , 12627 12628 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 12629 777777 777777 IFL XX, 12630 IFG XX, 12631 MOP1 (\ADR,XX,0,1,V1,XX)^ 12632 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 12633 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12634 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 12635 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12636 12637 777777 777677 F35550: AA1=XX ;INITIAL C(AC) 12638 040575 200 10 0 00 044052 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-4 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0253 12639 000000 AA2=0 ;INITIAL C(AC+1) 12640 040576 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12641 000001 AEE=1 ;INITIAL C(E) 12642 040577 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 12643 040600 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12644 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12645 040601 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12646 040602 003 10 0 00 035551 ER3 AC,35551 ;HIGH PRODUCT FAILED 12647 777777 777677 AR2=XX ;EXPECTED RESULT IN AC+1 12648 040603 312 11 0 00 044052 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12649 040604 004 11 0 00 035552 ER4 AC+1,35552 ;LOW PRODUCT FAILED 12650 000001 AEE=1 ;INITIAL C(E) 12651 040605 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 12652 040606 005 06 0 00 035553 ER5 E,35553 ;C(E) WAS CLOBBERED 12653 040607 321 12 0 00 040575 JUMPL AC+2,F35550 ;LOOP ON ERROR SWITCH^ 12654 12655 003556 ADR=ADR+1 12656 777777 777577 XX=XX+XX+1 12657 IFE , 12658 12659 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 12660 777777 777777 IFL XX, 12661 IFG XX, 12662 MOP1 (\ADR,XX,0,1,V1,XX)^ 12663 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 12664 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12665 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 12666 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12667 12668 777777 777577 F35560: AA1=XX ;INITIAL C(AC) 12669 040610 200 10 0 00 044053 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 12670 000000 AA2=0 ;INITIAL C(AC+1) 12671 040611 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12672 000001 AEE=1 ;INITIAL C(E) 12673 040612 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 12674 040613 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12675 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12676 040614 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12677 040615 003 10 0 00 035561 ER3 AC,35561 ;HIGH PRODUCT FAILED 12678 777777 777577 AR2=XX ;EXPECTED RESULT IN AC+1 12679 040616 312 11 0 00 044053 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12680 040617 004 11 0 00 035562 ER4 AC+1,35562 ;LOW PRODUCT FAILED 12681 000001 AEE=1 ;INITIAL C(E) 12682 040620 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 12683 040621 005 06 0 00 035563 ER5 E,35563 ;C(E) WAS CLOBBERED 12684 040622 321 12 0 00 040610 JUMPL AC+2,F35560 ;LOOP ON ERROR SWITCH^ 12685 12686 003557 ADR=ADR+1 12687 777777 777377 XX=XX+XX+1 12688 IFE , 12689 12690 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 12691 777777 777777 IFL XX, 12692 IFG XX, 12693 MOP1 (\ADR,XX,0,1,V1,XX)^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-5 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0254 12694 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 12695 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12696 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 12697 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12698 12699 777777 777377 F35570: AA1=XX ;INITIAL C(AC) 12700 040623 200 10 0 00 044054 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 12701 000000 AA2=0 ;INITIAL C(AC+1) 12702 040624 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12703 000001 AEE=1 ;INITIAL C(E) 12704 040625 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 12705 040626 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12706 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12707 040627 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12708 040630 003 10 0 00 035571 ER3 AC,35571 ;HIGH PRODUCT FAILED 12709 777777 777377 AR2=XX ;EXPECTED RESULT IN AC+1 12710 040631 312 11 0 00 044054 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12711 040632 004 11 0 00 035572 ER4 AC+1,35572 ;LOW PRODUCT FAILED 12712 000001 AEE=1 ;INITIAL C(E) 12713 040633 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 12714 040634 005 06 0 00 035573 ER5 E,35573 ;C(E) WAS CLOBBERED 12715 040635 321 12 0 00 040623 JUMPL AC+2,F35570 ;LOOP ON ERROR SWITCH^ 12716 12717 003560 ADR=ADR+1 12718 777777 776777 XX=XX+XX+1 12719 IFE , 12720 12721 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 12722 777777 777777 IFL XX, 12723 IFG XX, 12724 MOP1 (\ADR,XX,0,1,V1,XX)^ 12725 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 12726 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12727 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 12728 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12729 12730 777777 776777 F35600: AA1=XX ;INITIAL C(AC) 12731 040636 200 10 0 00 044055 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 12732 000000 AA2=0 ;INITIAL C(AC+1) 12733 040637 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12734 000001 AEE=1 ;INITIAL C(E) 12735 040640 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 12736 040641 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12737 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12738 040642 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12739 040643 003 10 0 00 035601 ER3 AC,35601 ;HIGH PRODUCT FAILED 12740 777777 776777 AR2=XX ;EXPECTED RESULT IN AC+1 12741 040644 312 11 0 00 044055 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12742 040645 004 11 0 00 035602 ER4 AC+1,35602 ;LOW PRODUCT FAILED 12743 000001 AEE=1 ;INITIAL C(E) 12744 040646 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 12745 040647 005 06 0 00 035603 ER5 E,35603 ;C(E) WAS CLOBBERED 12746 040650 321 12 0 00 040636 JUMPL AC+2,F35600 ;LOOP ON ERROR SWITCH^ 12747 12748 003561 ADR=ADR+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-6 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0255 12749 777777 775777 XX=XX+XX+1 12750 IFE , 12751 12752 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 12753 777777 777777 IFL XX, 12754 IFG XX, 12755 MOP1 (\ADR,XX,0,1,V1,XX)^ 12756 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 12757 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12758 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 12759 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12760 12761 777777 775777 F35610: AA1=XX ;INITIAL C(AC) 12762 040651 200 10 0 00 044056 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 12763 000000 AA2=0 ;INITIAL C(AC+1) 12764 040652 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12765 000001 AEE=1 ;INITIAL C(E) 12766 040653 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 12767 040654 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12768 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12769 040655 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12770 040656 003 10 0 00 035611 ER3 AC,35611 ;HIGH PRODUCT FAILED 12771 777777 775777 AR2=XX ;EXPECTED RESULT IN AC+1 12772 040657 312 11 0 00 044056 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12773 040660 004 11 0 00 035612 ER4 AC+1,35612 ;LOW PRODUCT FAILED 12774 000001 AEE=1 ;INITIAL C(E) 12775 040661 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 12776 040662 005 06 0 00 035613 ER5 E,35613 ;C(E) WAS CLOBBERED 12777 040663 321 12 0 00 040651 JUMPL AC+2,F35610 ;LOOP ON ERROR SWITCH^ 12778 12779 003562 ADR=ADR+1 12780 777777 773777 XX=XX+XX+1 12781 IFE , 12782 12783 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 12784 777777 777777 IFL XX, 12785 IFG XX, 12786 MOP1 (\ADR,XX,0,1,V1,XX)^ 12787 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 12788 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12789 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 12790 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12791 12792 777777 773777 F35620: AA1=XX ;INITIAL C(AC) 12793 040664 200 10 0 00 044057 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 12794 000000 AA2=0 ;INITIAL C(AC+1) 12795 040665 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12796 000001 AEE=1 ;INITIAL C(E) 12797 040666 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 12798 040667 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12799 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12800 040670 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12801 040671 003 10 0 00 035621 ER3 AC,35621 ;HIGH PRODUCT FAILED 12802 777777 773777 AR2=XX ;EXPECTED RESULT IN AC+1 12803 040672 312 11 0 00 044057 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-7 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0256 12804 040673 004 11 0 00 035622 ER4 AC+1,35622 ;LOW PRODUCT FAILED 12805 000001 AEE=1 ;INITIAL C(E) 12806 040674 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 12807 040675 005 06 0 00 035623 ER5 E,35623 ;C(E) WAS CLOBBERED 12808 040676 321 12 0 00 040664 JUMPL AC+2,F35620 ;LOOP ON ERROR SWITCH^ 12809 12810 003563 ADR=ADR+1 12811 777777 767777 XX=XX+XX+1 12812 IFE , 12813 12814 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 12815 777777 777777 IFL XX, 12816 IFG XX, 12817 MOP1 (\ADR,XX,0,1,V1,XX)^ 12818 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 12819 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12820 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 12821 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12822 12823 777777 767777 F35630: AA1=XX ;INITIAL C(AC) 12824 040677 200 10 0 00 044060 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 12825 000000 AA2=0 ;INITIAL C(AC+1) 12826 040700 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12827 000001 AEE=1 ;INITIAL C(E) 12828 040701 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 12829 040702 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12830 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12831 040703 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12832 040704 003 10 0 00 035631 ER3 AC,35631 ;HIGH PRODUCT FAILED 12833 777777 767777 AR2=XX ;EXPECTED RESULT IN AC+1 12834 040705 312 11 0 00 044060 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12835 040706 004 11 0 00 035632 ER4 AC+1,35632 ;LOW PRODUCT FAILED 12836 000001 AEE=1 ;INITIAL C(E) 12837 040707 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 12838 040710 005 06 0 00 035633 ER5 E,35633 ;C(E) WAS CLOBBERED 12839 040711 321 12 0 00 040677 JUMPL AC+2,F35630 ;LOOP ON ERROR SWITCH^ 12840 12841 003564 ADR=ADR+1 12842 777777 757777 XX=XX+XX+1 12843 IFE , 12844 12845 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 12846 777777 777777 IFL XX, 12847 IFG XX, 12848 MOP1 (\ADR,XX,0,1,V1,XX)^ 12849 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 12850 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12851 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 12852 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12853 12854 777777 757777 F35640: AA1=XX ;INITIAL C(AC) 12855 040712 200 10 0 00 044061 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 12856 000000 AA2=0 ;INITIAL C(AC+1) 12857 040713 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12858 000001 AEE=1 ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-8 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0257 12859 040714 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 12860 040715 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12861 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12862 040716 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12863 040717 003 10 0 00 035641 ER3 AC,35641 ;HIGH PRODUCT FAILED 12864 777777 757777 AR2=XX ;EXPECTED RESULT IN AC+1 12865 040720 312 11 0 00 044061 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12866 040721 004 11 0 00 035642 ER4 AC+1,35642 ;LOW PRODUCT FAILED 12867 000001 AEE=1 ;INITIAL C(E) 12868 040722 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 12869 040723 005 06 0 00 035643 ER5 E,35643 ;C(E) WAS CLOBBERED 12870 040724 321 12 0 00 040712 JUMPL AC+2,F35640 ;LOOP ON ERROR SWITCH^ 12871 12872 003565 ADR=ADR+1 12873 777777 737777 XX=XX+XX+1 12874 IFE , 12875 12876 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 12877 777777 777777 IFL XX, 12878 IFG XX, 12879 MOP1 (\ADR,XX,0,1,V1,XX)^ 12880 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 12881 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12882 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 12883 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12884 12885 777777 737777 F35650: AA1=XX ;INITIAL C(AC) 12886 040725 200 10 0 00 044062 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 12887 000000 AA2=0 ;INITIAL C(AC+1) 12888 040726 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12889 000001 AEE=1 ;INITIAL C(E) 12890 040727 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 12891 040730 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12892 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12893 040731 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12894 040732 003 10 0 00 035651 ER3 AC,35651 ;HIGH PRODUCT FAILED 12895 777777 737777 AR2=XX ;EXPECTED RESULT IN AC+1 12896 040733 312 11 0 00 044062 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12897 040734 004 11 0 00 035652 ER4 AC+1,35652 ;LOW PRODUCT FAILED 12898 000001 AEE=1 ;INITIAL C(E) 12899 040735 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 12900 040736 005 06 0 00 035653 ER5 E,35653 ;C(E) WAS CLOBBERED 12901 040737 321 12 0 00 040725 JUMPL AC+2,F35650 ;LOOP ON ERROR SWITCH^ 12902 12903 003566 ADR=ADR+1 12904 777777 677777 XX=XX+XX+1 12905 IFE , 12906 12907 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 12908 777777 777777 IFL XX, 12909 IFG XX, 12910 MOP1 (\ADR,XX,0,1,V1,XX)^ 12911 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 12912 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12913 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-9 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0258 12914 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12915 12916 777777 677777 F35660: AA1=XX ;INITIAL C(AC) 12917 040740 200 10 0 00 044063 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 12918 000000 AA2=0 ;INITIAL C(AC+1) 12919 040741 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12920 000001 AEE=1 ;INITIAL C(E) 12921 040742 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 12922 040743 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12923 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12924 040744 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12925 040745 003 10 0 00 035661 ER3 AC,35661 ;HIGH PRODUCT FAILED 12926 777777 677777 AR2=XX ;EXPECTED RESULT IN AC+1 12927 040746 312 11 0 00 044063 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12928 040747 004 11 0 00 035662 ER4 AC+1,35662 ;LOW PRODUCT FAILED 12929 000001 AEE=1 ;INITIAL C(E) 12930 040750 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 12931 040751 005 06 0 00 035663 ER5 E,35663 ;C(E) WAS CLOBBERED 12932 040752 321 12 0 00 040740 JUMPL AC+2,F35660 ;LOOP ON ERROR SWITCH^ 12933 12934 003567 ADR=ADR+1 12935 777777 577777 XX=XX+XX+1 12936 IFE , 12937 12938 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 12939 777777 777777 IFL XX, 12940 IFG XX, 12941 MOP1 (\ADR,XX,0,1,V1,XX)^ 12942 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 12943 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12944 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 12945 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12946 12947 777777 577777 F35670: AA1=XX ;INITIAL C(AC) 12948 040753 200 10 0 00 044064 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 12949 000000 AA2=0 ;INITIAL C(AC+1) 12950 040754 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12951 000001 AEE=1 ;INITIAL C(E) 12952 040755 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 12953 040756 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12954 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12955 040757 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12956 040760 003 10 0 00 035671 ER3 AC,35671 ;HIGH PRODUCT FAILED 12957 777777 577777 AR2=XX ;EXPECTED RESULT IN AC+1 12958 040761 312 11 0 00 044064 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12959 040762 004 11 0 00 035672 ER4 AC+1,35672 ;LOW PRODUCT FAILED 12960 000001 AEE=1 ;INITIAL C(E) 12961 040763 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 12962 040764 005 06 0 00 035673 ER5 E,35673 ;C(E) WAS CLOBBERED 12963 040765 321 12 0 00 040753 JUMPL AC+2,F35670 ;LOOP ON ERROR SWITCH^ 12964 12965 003570 ADR=ADR+1 12966 777777 377777 XX=XX+XX+1 12967 IFE , 12968 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-10 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0259 12969 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 12970 777777 777777 IFL XX, 12971 IFG XX, 12972 MOP1 (\ADR,XX,0,1,V1,XX)^ 12973 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 12974 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 12975 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 12976 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 12977 12978 777777 377777 F35700: AA1=XX ;INITIAL C(AC) 12979 040766 200 10 0 00 044065 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 12980 000000 AA2=0 ;INITIAL C(AC+1) 12981 040767 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 12982 000001 AEE=1 ;INITIAL C(E) 12983 040770 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 12984 040771 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 12985 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 12986 040772 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 12987 040773 003 10 0 00 035701 ER3 AC,35701 ;HIGH PRODUCT FAILED 12988 777777 377777 AR2=XX ;EXPECTED RESULT IN AC+1 12989 040774 312 11 0 00 044065 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 12990 040775 004 11 0 00 035702 ER4 AC+1,35702 ;LOW PRODUCT FAILED 12991 000001 AEE=1 ;INITIAL C(E) 12992 040776 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 12993 040777 005 06 0 00 035703 ER5 E,35703 ;C(E) WAS CLOBBERED 12994 041000 321 12 0 00 040766 JUMPL AC+2,F35700 ;LOOP ON ERROR SWITCH^ 12995 12996 003571 ADR=ADR+1 12997 777776 777777 XX=XX+XX+1 12998 IFE , 12999 13000 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 13001 777777 777777 IFL XX, 13002 IFG XX, 13003 MOP1 (\ADR,XX,0,1,V1,XX)^ 13004 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 13005 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13006 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 13007 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13008 13009 777776 777777 F35710: AA1=XX ;INITIAL C(AC) 13010 041001 200 10 0 00 044066 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 13011 000000 AA2=0 ;INITIAL C(AC+1) 13012 041002 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 13013 000001 AEE=1 ;INITIAL C(E) 13014 041003 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 13015 041004 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13016 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 13017 041005 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13018 041006 003 10 0 00 035711 ER3 AC,35711 ;HIGH PRODUCT FAILED 13019 777776 777777 AR2=XX ;EXPECTED RESULT IN AC+1 13020 041007 312 11 0 00 044066 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 13021 041010 004 11 0 00 035712 ER4 AC+1,35712 ;LOW PRODUCT FAILED 13022 000001 AEE=1 ;INITIAL C(E) 13023 041011 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-11 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0260 13024 041012 005 06 0 00 035713 ER5 E,35713 ;C(E) WAS CLOBBERED 13025 041013 321 12 0 00 041001 JUMPL AC+2,F35710 ;LOOP ON ERROR SWITCH^ 13026 13027 003572 ADR=ADR+1 13028 777775 777777 XX=XX+XX+1 13029 IFE , 13030 13031 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 13032 777777 777777 IFL XX, 13033 IFG XX, 13034 MOP1 (\ADR,XX,0,1,V1,XX)^ 13035 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 13036 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13037 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 13038 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13039 13040 777775 777777 F35720: AA1=XX ;INITIAL C(AC) 13041 041014 200 10 0 00 044067 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 13042 000000 AA2=0 ;INITIAL C(AC+1) 13043 041015 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 13044 000001 AEE=1 ;INITIAL C(E) 13045 041016 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 13046 041017 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13047 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 13048 041020 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13049 041021 003 10 0 00 035721 ER3 AC,35721 ;HIGH PRODUCT FAILED 13050 777775 777777 AR2=XX ;EXPECTED RESULT IN AC+1 13051 041022 312 11 0 00 044067 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 13052 041023 004 11 0 00 035722 ER4 AC+1,35722 ;LOW PRODUCT FAILED 13053 000001 AEE=1 ;INITIAL C(E) 13054 041024 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 13055 041025 005 06 0 00 035723 ER5 E,35723 ;C(E) WAS CLOBBERED 13056 041026 321 12 0 00 041014 JUMPL AC+2,F35720 ;LOOP ON ERROR SWITCH^ 13057 13058 003573 ADR=ADR+1 13059 777773 777777 XX=XX+XX+1 13060 IFE , 13061 13062 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 13063 777777 777777 IFL XX, 13064 IFG XX, 13065 MOP1 (\ADR,XX,0,1,V1,XX)^ 13066 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 13067 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13068 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 13069 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13070 13071 777773 777777 F35730: AA1=XX ;INITIAL C(AC) 13072 041027 200 10 0 00 044070 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 13073 000000 AA2=0 ;INITIAL C(AC+1) 13074 041030 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 13075 000001 AEE=1 ;INITIAL C(E) 13076 041031 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 13077 041032 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13078 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-12 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0261 13079 041033 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13080 041034 003 10 0 00 035731 ER3 AC,35731 ;HIGH PRODUCT FAILED 13081 777773 777777 AR2=XX ;EXPECTED RESULT IN AC+1 13082 041035 312 11 0 00 044070 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 13083 041036 004 11 0 00 035732 ER4 AC+1,35732 ;LOW PRODUCT FAILED 13084 000001 AEE=1 ;INITIAL C(E) 13085 041037 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 13086 041040 005 06 0 00 035733 ER5 E,35733 ;C(E) WAS CLOBBERED 13087 041041 321 12 0 00 041027 JUMPL AC+2,F35730 ;LOOP ON ERROR SWITCH^ 13088 13089 003574 ADR=ADR+1 13090 777767 777777 XX=XX+XX+1 13091 IFE , 13092 13093 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 13094 777777 777777 IFL XX, 13095 IFG XX, 13096 MOP1 (\ADR,XX,0,1,V1,XX)^ 13097 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 13098 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13099 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 13100 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13101 13102 777767 777777 F35740: AA1=XX ;INITIAL C(AC) 13103 041042 200 10 0 00 044071 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 13104 000000 AA2=0 ;INITIAL C(AC+1) 13105 041043 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 13106 000001 AEE=1 ;INITIAL C(E) 13107 041044 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 13108 041045 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13109 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 13110 041046 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13111 041047 003 10 0 00 035741 ER3 AC,35741 ;HIGH PRODUCT FAILED 13112 777767 777777 AR2=XX ;EXPECTED RESULT IN AC+1 13113 041050 312 11 0 00 044071 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 13114 041051 004 11 0 00 035742 ER4 AC+1,35742 ;LOW PRODUCT FAILED 13115 000001 AEE=1 ;INITIAL C(E) 13116 041052 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 13117 041053 005 06 0 00 035743 ER5 E,35743 ;C(E) WAS CLOBBERED 13118 041054 321 12 0 00 041042 JUMPL AC+2,F35740 ;LOOP ON ERROR SWITCH^ 13119 13120 003575 ADR=ADR+1 13121 777757 777777 XX=XX+XX+1 13122 IFE , 13123 13124 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 13125 777777 777777 IFL XX, 13126 IFG XX, 13127 MOP1 (\ADR,XX,0,1,V1,XX)^ 13128 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 13129 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13130 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 13131 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13132 13133 777757 777777 F35750: AA1=XX ;INITIAL C(AC) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-13 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0262 13134 041055 200 10 0 00 044072 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 13135 000000 AA2=0 ;INITIAL C(AC+1) 13136 041056 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 13137 000001 AEE=1 ;INITIAL C(E) 13138 041057 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 13139 041060 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13140 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 13141 041061 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13142 041062 003 10 0 00 035751 ER3 AC,35751 ;HIGH PRODUCT FAILED 13143 777757 777777 AR2=XX ;EXPECTED RESULT IN AC+1 13144 041063 312 11 0 00 044072 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 13145 041064 004 11 0 00 035752 ER4 AC+1,35752 ;LOW PRODUCT FAILED 13146 000001 AEE=1 ;INITIAL C(E) 13147 041065 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 13148 041066 005 06 0 00 035753 ER5 E,35753 ;C(E) WAS CLOBBERED 13149 041067 321 12 0 00 041055 JUMPL AC+2,F35750 ;LOOP ON ERROR SWITCH^ 13150 13151 003576 ADR=ADR+1 13152 777737 777777 XX=XX+XX+1 13153 IFE , 13154 13155 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 13156 777777 777777 IFL XX, 13157 IFG XX, 13158 MOP1 (\ADR,XX,0,1,V1,XX)^ 13159 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 13160 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13161 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 13162 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13163 13164 777737 777777 F35760: AA1=XX ;INITIAL C(AC) 13165 041070 200 10 0 00 044073 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 13166 000000 AA2=0 ;INITIAL C(AC+1) 13167 041071 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 13168 000001 AEE=1 ;INITIAL C(E) 13169 041072 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 13170 041073 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13171 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 13172 041074 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13173 041075 003 10 0 00 035761 ER3 AC,35761 ;HIGH PRODUCT FAILED 13174 777737 777777 AR2=XX ;EXPECTED RESULT IN AC+1 13175 041076 312 11 0 00 044073 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 13176 041077 004 11 0 00 035762 ER4 AC+1,35762 ;LOW PRODUCT FAILED 13177 000001 AEE=1 ;INITIAL C(E) 13178 041100 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 13179 041101 005 06 0 00 035763 ER5 E,35763 ;C(E) WAS CLOBBERED 13180 041102 321 12 0 00 041070 JUMPL AC+2,F35760 ;LOOP ON ERROR SWITCH^ 13181 13182 003577 ADR=ADR+1 13183 777677 777777 XX=XX+XX+1 13184 IFE , 13185 13186 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 13187 777777 777777 IFL XX, 13188 IFG XX, DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-14 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0263 13189 MOP1 (\ADR,XX,0,1,V1,XX)^ 13190 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 13191 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13192 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 13193 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13194 13195 777677 777777 F35770: AA1=XX ;INITIAL C(AC) 13196 041103 200 10 0 00 044074 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 13197 000000 AA2=0 ;INITIAL C(AC+1) 13198 041104 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 13199 000001 AEE=1 ;INITIAL C(E) 13200 041105 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 13201 041106 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13202 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 13203 041107 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13204 041110 003 10 0 00 035771 ER3 AC,35771 ;HIGH PRODUCT FAILED 13205 777677 777777 AR2=XX ;EXPECTED RESULT IN AC+1 13206 041111 312 11 0 00 044074 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 13207 041112 004 11 0 00 035772 ER4 AC+1,35772 ;LOW PRODUCT FAILED 13208 000001 AEE=1 ;INITIAL C(E) 13209 041113 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 13210 041114 005 06 0 00 035773 ER5 E,35773 ;C(E) WAS CLOBBERED 13211 041115 321 12 0 00 041103 JUMPL AC+2,F35770 ;LOOP ON ERROR SWITCH^ 13212 13213 003600 ADR=ADR+1 13214 777577 777777 XX=XX+XX+1 13215 IFE , 13216 13217 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 13218 777777 777777 IFL XX, 13219 IFG XX, 13220 MOP1 (\ADR,XX,0,1,V1,XX)^ 13221 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 13222 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13223 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 13224 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13225 13226 777577 777777 F36000: AA1=XX ;INITIAL C(AC) 13227 041116 200 10 0 00 044075 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 13228 000000 AA2=0 ;INITIAL C(AC+1) 13229 041117 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 13230 000001 AEE=1 ;INITIAL C(E) 13231 041120 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 13232 041121 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13233 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 13234 041122 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13235 041123 003 10 0 00 036001 ER3 AC,36001 ;HIGH PRODUCT FAILED 13236 777577 777777 AR2=XX ;EXPECTED RESULT IN AC+1 13237 041124 312 11 0 00 044075 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 13238 041125 004 11 0 00 036002 ER4 AC+1,36002 ;LOW PRODUCT FAILED 13239 000001 AEE=1 ;INITIAL C(E) 13240 041126 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 13241 041127 005 06 0 00 036003 ER5 E,36003 ;C(E) WAS CLOBBERED 13242 041130 321 12 0 00 041116 JUMPL AC+2,F36000 ;LOOP ON ERROR SWITCH^ 13243 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-15 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0264 13244 003601 ADR=ADR+1 13245 777377 777777 XX=XX+XX+1 13246 IFE , 13247 13248 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 13249 777777 777777 IFL XX, 13250 IFG XX, 13251 MOP1 (\ADR,XX,0,1,V1,XX)^ 13252 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 13253 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13254 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 13255 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13256 13257 777377 777777 F36010: AA1=XX ;INITIAL C(AC) 13258 041131 200 10 0 00 044076 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 13259 000000 AA2=0 ;INITIAL C(AC+1) 13260 041132 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 13261 000001 AEE=1 ;INITIAL C(E) 13262 041133 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 13263 041134 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13264 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 13265 041135 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13266 041136 003 10 0 00 036011 ER3 AC,36011 ;HIGH PRODUCT FAILED 13267 777377 777777 AR2=XX ;EXPECTED RESULT IN AC+1 13268 041137 312 11 0 00 044076 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 13269 041140 004 11 0 00 036012 ER4 AC+1,36012 ;LOW PRODUCT FAILED 13270 000001 AEE=1 ;INITIAL C(E) 13271 041141 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 13272 041142 005 06 0 00 036013 ER5 E,36013 ;C(E) WAS CLOBBERED 13273 041143 321 12 0 00 041131 JUMPL AC+2,F36010 ;LOOP ON ERROR SWITCH^ 13274 13275 003602 ADR=ADR+1 13276 776777 777777 XX=XX+XX+1 13277 IFE , 13278 13279 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 13280 777777 777777 IFL XX, 13281 IFG XX, 13282 MOP1 (\ADR,XX,0,1,V1,XX)^ 13283 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 13284 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13285 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 13286 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13287 13288 776777 777777 F36020: AA1=XX ;INITIAL C(AC) 13289 041144 200 10 0 00 044077 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 13290 000000 AA2=0 ;INITIAL C(AC+1) 13291 041145 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 13292 000001 AEE=1 ;INITIAL C(E) 13293 041146 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 13294 041147 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13295 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 13296 041150 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13297 041151 003 10 0 00 036021 ER3 AC,36021 ;HIGH PRODUCT FAILED 13298 776777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-16 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0265 13299 041152 312 11 0 00 044077 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 13300 041153 004 11 0 00 036022 ER4 AC+1,36022 ;LOW PRODUCT FAILED 13301 000001 AEE=1 ;INITIAL C(E) 13302 041154 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 13303 041155 005 06 0 00 036023 ER5 E,36023 ;C(E) WAS CLOBBERED 13304 041156 321 12 0 00 041144 JUMPL AC+2,F36020 ;LOOP ON ERROR SWITCH^ 13305 13306 003603 ADR=ADR+1 13307 775777 777777 XX=XX+XX+1 13308 IFE , 13309 13310 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 13311 777777 777777 IFL XX, 13312 IFG XX, 13313 MOP1 (\ADR,XX,0,1,V1,XX)^ 13314 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 13315 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13316 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 13317 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13318 13319 775777 777777 F36030: AA1=XX ;INITIAL C(AC) 13320 041157 200 10 0 00 044100 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 13321 000000 AA2=0 ;INITIAL C(AC+1) 13322 041160 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 13323 000001 AEE=1 ;INITIAL C(E) 13324 041161 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 13325 041162 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13326 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 13327 041163 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13328 041164 003 10 0 00 036031 ER3 AC,36031 ;HIGH PRODUCT FAILED 13329 775777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 13330 041165 312 11 0 00 044100 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 13331 041166 004 11 0 00 036032 ER4 AC+1,36032 ;LOW PRODUCT FAILED 13332 000001 AEE=1 ;INITIAL C(E) 13333 041167 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 13334 041170 005 06 0 00 036033 ER5 E,36033 ;C(E) WAS CLOBBERED 13335 041171 321 12 0 00 041157 JUMPL AC+2,F36030 ;LOOP ON ERROR SWITCH^ 13336 13337 003604 ADR=ADR+1 13338 773777 777777 XX=XX+XX+1 13339 IFE , 13340 13341 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 13342 777777 777777 IFL XX, 13343 IFG XX, 13344 MOP1 (\ADR,XX,0,1,V1,XX)^ 13345 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 13346 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13347 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 13348 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13349 13350 773777 777777 F36040: AA1=XX ;INITIAL C(AC) 13351 041172 200 10 0 00 044101 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 13352 000000 AA2=0 ;INITIAL C(AC+1) 13353 041173 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-17 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0266 13354 000001 AEE=1 ;INITIAL C(E) 13355 041174 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 13356 041175 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13357 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 13358 041176 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13359 041177 003 10 0 00 036041 ER3 AC,36041 ;HIGH PRODUCT FAILED 13360 773777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 13361 041200 312 11 0 00 044101 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 13362 041201 004 11 0 00 036042 ER4 AC+1,36042 ;LOW PRODUCT FAILED 13363 000001 AEE=1 ;INITIAL C(E) 13364 041202 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 13365 041203 005 06 0 00 036043 ER5 E,36043 ;C(E) WAS CLOBBERED 13366 041204 321 12 0 00 041172 JUMPL AC+2,F36040 ;LOOP ON ERROR SWITCH^ 13367 13368 003605 ADR=ADR+1 13369 767777 777777 XX=XX+XX+1 13370 IFE , 13371 13372 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 13373 777777 777777 IFL XX, 13374 IFG XX, 13375 MOP1 (\ADR,XX,0,1,V1,XX)^ 13376 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 13377 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13378 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 13379 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13380 13381 767777 777777 F36050: AA1=XX ;INITIAL C(AC) 13382 041205 200 10 0 00 044102 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 13383 000000 AA2=0 ;INITIAL C(AC+1) 13384 041206 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 13385 000001 AEE=1 ;INITIAL C(E) 13386 041207 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 13387 041210 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13388 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 13389 041211 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13390 041212 003 10 0 00 036051 ER3 AC,36051 ;HIGH PRODUCT FAILED 13391 767777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 13392 041213 312 11 0 00 044102 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 13393 041214 004 11 0 00 036052 ER4 AC+1,36052 ;LOW PRODUCT FAILED 13394 000001 AEE=1 ;INITIAL C(E) 13395 041215 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 13396 041216 005 06 0 00 036053 ER5 E,36053 ;C(E) WAS CLOBBERED 13397 041217 321 12 0 00 041205 JUMPL AC+2,F36050 ;LOOP ON ERROR SWITCH^ 13398 13399 003606 ADR=ADR+1 13400 757777 777777 XX=XX+XX+1 13401 IFE , 13402 13403 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 13404 777777 777777 IFL XX, 13405 IFG XX, 13406 MOP1 (\ADR,XX,0,1,V1,XX)^ 13407 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 13408 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-18 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0267 13409 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 13410 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13411 13412 757777 777777 F36060: AA1=XX ;INITIAL C(AC) 13413 041220 200 10 0 00 044103 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 13414 000000 AA2=0 ;INITIAL C(AC+1) 13415 041221 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 13416 000001 AEE=1 ;INITIAL C(E) 13417 041222 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 13418 041223 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13419 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 13420 041224 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13421 041225 003 10 0 00 036061 ER3 AC,36061 ;HIGH PRODUCT FAILED 13422 757777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 13423 041226 312 11 0 00 044103 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 13424 041227 004 11 0 00 036062 ER4 AC+1,36062 ;LOW PRODUCT FAILED 13425 000001 AEE=1 ;INITIAL C(E) 13426 041230 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 13427 041231 005 06 0 00 036063 ER5 E,36063 ;C(E) WAS CLOBBERED 13428 041232 321 12 0 00 041220 JUMPL AC+2,F36060 ;LOOP ON ERROR SWITCH^ 13429 13430 003607 ADR=ADR+1 13431 737777 777777 XX=XX+XX+1 13432 IFE , 13433 13434 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 13435 777777 777777 IFL XX, 13436 IFG XX, 13437 MOP1 (\ADR,XX,0,1,V1,XX)^ 13438 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 13439 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13440 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 13441 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13442 13443 737777 777777 F36070: AA1=XX ;INITIAL C(AC) 13444 041233 200 10 0 00 044104 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 13445 000000 AA2=0 ;INITIAL C(AC+1) 13446 041234 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 13447 000001 AEE=1 ;INITIAL C(E) 13448 041235 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 13449 041236 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13450 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 13451 041237 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13452 041240 003 10 0 00 036071 ER3 AC,36071 ;HIGH PRODUCT FAILED 13453 737777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 13454 041241 312 11 0 00 044104 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 13455 041242 004 11 0 00 036072 ER4 AC+1,36072 ;LOW PRODUCT FAILED 13456 000001 AEE=1 ;INITIAL C(E) 13457 041243 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 13458 041244 005 06 0 00 036073 ER5 E,36073 ;C(E) WAS CLOBBERED 13459 041245 321 12 0 00 041233 JUMPL AC+2,F36070 ;LOOP ON ERROR SWITCH^ 13460 13461 003610 ADR=ADR+1 13462 677777 777777 XX=XX+XX+1 13463 IFE , DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-19 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0268 13464 13465 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 13466 777777 777777 IFL XX, 13467 IFG XX, 13468 MOP1 (\ADR,XX,0,1,V1,XX)^ 13469 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 13470 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13471 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 13472 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13473 13474 677777 777777 F36100: AA1=XX ;INITIAL C(AC) 13475 041246 200 10 0 00 044105 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 13476 000000 AA2=0 ;INITIAL C(AC+1) 13477 041247 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 13478 000001 AEE=1 ;INITIAL C(E) 13479 041250 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 13480 041251 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13481 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 13482 041252 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13483 041253 003 10 0 00 036101 ER3 AC,36101 ;HIGH PRODUCT FAILED 13484 677777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 13485 041254 312 11 0 00 044105 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 13486 041255 004 11 0 00 036102 ER4 AC+1,36102 ;LOW PRODUCT FAILED 13487 000001 AEE=1 ;INITIAL C(E) 13488 041256 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 13489 041257 005 06 0 00 036103 ER5 E,36103 ;C(E) WAS CLOBBERED 13490 041260 321 12 0 00 041246 JUMPL AC+2,F36100 ;LOOP ON ERROR SWITCH^ 13491 13492 003611 ADR=ADR+1 13493 577777 777777 XX=XX+XX+1 13494 IFE , 13495 13496 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 13497 777777 777777 IFL XX, 13498 IFG XX, 13499 MOP1 (\ADR,XX,0,1,V1,XX)^ 13500 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 13501 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13502 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 13503 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13504 13505 577777 777777 F36110: AA1=XX ;INITIAL C(AC) 13506 041261 200 10 0 00 044106 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 13507 000000 AA2=0 ;INITIAL C(AC+1) 13508 041262 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 13509 000001 AEE=1 ;INITIAL C(E) 13510 041263 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 13511 041264 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13512 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 13513 041265 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13514 041266 003 10 0 00 036111 ER3 AC,36111 ;HIGH PRODUCT FAILED 13515 577777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 13516 041267 312 11 0 00 044106 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 13517 041270 004 11 0 00 036112 ER4 AC+1,36112 ;LOW PRODUCT FAILED 13518 000001 AEE=1 ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 17-20 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0269 13519 041271 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 13520 041272 005 06 0 00 036113 ER5 E,36113 ;C(E) WAS CLOBBERED 13521 041273 321 12 0 00 041261 JUMPL AC+2,F36110 ;LOOP ON ERROR SWITCH^ 13522 13523 003612 ADR=ADR+1 13524 377777 777777 XX=XX+XX+1 13525 IFE , 13526 13527 ;MULTIPLY 1 BY RIPPLED 0 TO GET PRODUCT OF RIPPLED 0 13528 IFL XX, 13529 000000 IFG XX, 13530 MOP1 (\ADR,XX,0,1,V1,XX)^ 13531 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 13532 ;[1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13533 ;AND E AGAINST [V1], [XX] AND [1] RESPECTIVELY. 13534 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13535 13536 377777 777777 F36120: AA1=XX ;INITIAL C(AC) 13537 041274 200 10 0 00 044107 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 13538 000000 AA2=0 ;INITIAL C(AC+1) 13539 041275 200 11 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 13540 000001 AEE=1 ;INITIAL C(E) 13541 041276 200 06 0 00 044000 MOVE E,[1] ;PRELOAD E (MULTIPLICAND) 13542 041277 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13543 000000 AR1=V1 ;EXPECTED RESULT IN AC 13544 041300 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13545 041301 003 10 0 00 036121 ER3 AC,36121 ;HIGH PRODUCT FAILED 13546 377777 777777 AR2=XX ;EXPECTED RESULT IN AC+1 13547 041302 312 11 0 00 044107 CAME AC+1,[XX] ;IS LOW PRODUCT CORRECT? 13548 041303 004 11 0 00 036122 ER4 AC+1,36122 ;LOW PRODUCT FAILED 13549 000001 AEE=1 ;INITIAL C(E) 13550 041304 312 06 0 00 044000 CAME E,[1] ;WAS C(E) CLOBBERED? 13551 041305 005 06 0 00 036123 ER5 E,36123 ;C(E) WAS CLOBBERED 13552 041306 321 12 0 00 041274 JUMPL AC+2,F36120 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0270 13553 000010 AC=10 13554 000006 E=&17 13555 SAVEAC (1,1)^ 13556 041307 201 12 0 00 041307 MOVEI AC+2,. ;SAVE TEST PC 13557 041310 202 12 0 00 030051 MOVEM AC+2,TESTPC 13558 041311 201 12 0 00 000012 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH 13559 041312 202 12 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ 13560 000000 XX=0 13561 13562 REPEAT ^D36, < 13563 ADR=ADR+1 13564 XX=XX+XX+1 13565 IFE , 13566 13567 ;MULTIPLY A RIPPLED 0 BY -1 13568 MX=-XX 13569 IFL XX, 13570 IFG XX, 13571 MOP1 (\ADR,-1,-1,XX,V1,MX)> 13572 13573 003613 ADR=ADR+1 13574 000001 XX=XX+XX+1 13575 777777 777776 IFE , 13576 13577 ;MULTIPLY A RIPPLED 0 BY -1 13578 000002 MX=-XX 13579 000000 IFL XX, 13580 IFG XX, 13581 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 13582 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 13583 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13584 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 13585 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13586 13587 777777 777777 F36130: AA1=-1 ;INITIAL C(AC) 13588 041313 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 13589 777777 777777 AA2=-1 ;INITIAL C(AC+1) 13590 041314 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 13591 777777 777776 AEE=XX ;INITIAL C(E) 13592 041315 200 06 0 00 044044 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 13593 041316 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13594 000000 AR1=V1 ;EXPECTED RESULT IN AC 13595 041317 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13596 041320 003 10 0 00 036131 ER3 AC,36131 ;HIGH PRODUCT FAILED 13597 000002 AR2=MX ;EXPECTED RESULT IN AC+1 13598 041321 312 11 0 00 044001 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 13599 041322 004 11 0 00 036132 ER4 AC+1,36132 ;LOW PRODUCT FAILED 13600 777777 777776 AEE=XX ;INITIAL C(E) 13601 041323 312 06 0 00 044044 CAME E,[XX] ;WAS C(E) CLOBBERED? 13602 041324 005 06 0 00 036133 ER5 E,36133 ;C(E) WAS CLOBBERED 13603 041325 321 12 0 00 041313 JUMPL AC+2,F36130 ;LOOP ON ERROR SWITCH^ 13604 13605 003614 ADR=ADR+1 13606 777777 777775 XX=XX+XX+1 13607 IFE , DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-1 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0271 13608 13609 ;MULTIPLY A RIPPLED 0 BY -1 13610 000003 MX=-XX 13611 000000 IFL XX, 13612 IFG XX, 13613 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 13614 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 13615 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13616 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 13617 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13618 13619 777777 777777 F36140: AA1=-1 ;INITIAL C(AC) 13620 041326 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 13621 777777 777777 AA2=-1 ;INITIAL C(AC+1) 13622 041327 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 13623 777777 777775 AEE=XX ;INITIAL C(E) 13624 041330 200 06 0 00 044045 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 13625 041331 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13626 000000 AR1=V1 ;EXPECTED RESULT IN AC 13627 041332 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13628 041333 003 10 0 00 036141 ER3 AC,36141 ;HIGH PRODUCT FAILED 13629 000003 AR2=MX ;EXPECTED RESULT IN AC+1 13630 041334 312 11 0 00 044110 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 13631 041335 004 11 0 00 036142 ER4 AC+1,36142 ;LOW PRODUCT FAILED 13632 777777 777775 AEE=XX ;INITIAL C(E) 13633 041336 312 06 0 00 044045 CAME E,[XX] ;WAS C(E) CLOBBERED? 13634 041337 005 06 0 00 036143 ER5 E,36143 ;C(E) WAS CLOBBERED 13635 041340 321 12 0 00 041326 JUMPL AC+2,F36140 ;LOOP ON ERROR SWITCH^ 13636 13637 003615 ADR=ADR+1 13638 777777 777773 XX=XX+XX+1 13639 IFE , 13640 13641 ;MULTIPLY A RIPPLED 0 BY -1 13642 000005 MX=-XX 13643 000000 IFL XX, 13644 IFG XX, 13645 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 13646 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 13647 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13648 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 13649 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13650 13651 777777 777777 F36150: AA1=-1 ;INITIAL C(AC) 13652 041341 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 13653 777777 777777 AA2=-1 ;INITIAL C(AC+1) 13654 041342 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 13655 777777 777773 AEE=XX ;INITIAL C(E) 13656 041343 200 06 0 00 044046 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 13657 041344 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13658 000000 AR1=V1 ;EXPECTED RESULT IN AC 13659 041345 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13660 041346 003 10 0 00 036151 ER3 AC,36151 ;HIGH PRODUCT FAILED 13661 000005 AR2=MX ;EXPECTED RESULT IN AC+1 13662 041347 312 11 0 00 044111 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-2 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0272 13663 041350 004 11 0 00 036152 ER4 AC+1,36152 ;LOW PRODUCT FAILED 13664 777777 777773 AEE=XX ;INITIAL C(E) 13665 041351 312 06 0 00 044046 CAME E,[XX] ;WAS C(E) CLOBBERED? 13666 041352 005 06 0 00 036153 ER5 E,36153 ;C(E) WAS CLOBBERED 13667 041353 321 12 0 00 041341 JUMPL AC+2,F36150 ;LOOP ON ERROR SWITCH^ 13668 13669 003616 ADR=ADR+1 13670 777777 777767 XX=XX+XX+1 13671 IFE , 13672 13673 ;MULTIPLY A RIPPLED 0 BY -1 13674 000011 MX=-XX 13675 000000 IFL XX, 13676 IFG XX, 13677 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 13678 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 13679 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13680 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 13681 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13682 13683 777777 777777 F36160: AA1=-1 ;INITIAL C(AC) 13684 041354 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 13685 777777 777777 AA2=-1 ;INITIAL C(AC+1) 13686 041355 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 13687 777777 777767 AEE=XX ;INITIAL C(E) 13688 041356 200 06 0 00 044047 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 13689 041357 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13690 000000 AR1=V1 ;EXPECTED RESULT IN AC 13691 041360 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13692 041361 003 10 0 00 036161 ER3 AC,36161 ;HIGH PRODUCT FAILED 13693 000011 AR2=MX ;EXPECTED RESULT IN AC+1 13694 041362 312 11 0 00 044114 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 13695 041363 004 11 0 00 036162 ER4 AC+1,36162 ;LOW PRODUCT FAILED 13696 777777 777767 AEE=XX ;INITIAL C(E) 13697 041364 312 06 0 00 044047 CAME E,[XX] ;WAS C(E) CLOBBERED? 13698 041365 005 06 0 00 036163 ER5 E,36163 ;C(E) WAS CLOBBERED 13699 041366 321 12 0 00 041354 JUMPL AC+2,F36160 ;LOOP ON ERROR SWITCH^ 13700 13701 003617 ADR=ADR+1 13702 777777 777757 XX=XX+XX+1 13703 IFE , 13704 13705 ;MULTIPLY A RIPPLED 0 BY -1 13706 000021 MX=-XX 13707 000000 IFL XX, 13708 IFG XX, 13709 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 13710 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 13711 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13712 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 13713 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13714 13715 777777 777777 F36170: AA1=-1 ;INITIAL C(AC) 13716 041367 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 13717 777777 777777 AA2=-1 ;INITIAL C(AC+1) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-3 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0273 13718 041370 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 13719 777777 777757 AEE=XX ;INITIAL C(E) 13720 041371 200 06 0 00 044050 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 13721 041372 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13722 000000 AR1=V1 ;EXPECTED RESULT IN AC 13723 041373 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13724 041374 003 10 0 00 036171 ER3 AC,36171 ;HIGH PRODUCT FAILED 13725 000021 AR2=MX ;EXPECTED RESULT IN AC+1 13726 041375 312 11 0 00 044174 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 13727 041376 004 11 0 00 036172 ER4 AC+1,36172 ;LOW PRODUCT FAILED 13728 777777 777757 AEE=XX ;INITIAL C(E) 13729 041377 312 06 0 00 044050 CAME E,[XX] ;WAS C(E) CLOBBERED? 13730 041400 005 06 0 00 036173 ER5 E,36173 ;C(E) WAS CLOBBERED 13731 041401 321 12 0 00 041367 JUMPL AC+2,F36170 ;LOOP ON ERROR SWITCH^ 13732 13733 003620 ADR=ADR+1 13734 777777 777737 XX=XX+XX+1 13735 IFE , 13736 13737 ;MULTIPLY A RIPPLED 0 BY -1 13738 000041 MX=-XX 13739 000000 IFL XX, 13740 IFG XX, 13741 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 13742 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 13743 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13744 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 13745 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13746 13747 777777 777777 F36200: AA1=-1 ;INITIAL C(AC) 13748 041402 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 13749 777777 777777 AA2=-1 ;INITIAL C(AC+1) 13750 041403 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 13751 777777 777737 AEE=XX ;INITIAL C(E) 13752 041404 200 06 0 00 044051 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 13753 041405 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13754 000000 AR1=V1 ;EXPECTED RESULT IN AC 13755 041406 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13756 041407 003 10 0 00 036201 ER3 AC,36201 ;HIGH PRODUCT FAILED 13757 000041 AR2=MX ;EXPECTED RESULT IN AC+1 13758 041410 312 11 0 00 044175 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 13759 041411 004 11 0 00 036202 ER4 AC+1,36202 ;LOW PRODUCT FAILED 13760 777777 777737 AEE=XX ;INITIAL C(E) 13761 041412 312 06 0 00 044051 CAME E,[XX] ;WAS C(E) CLOBBERED? 13762 041413 005 06 0 00 036203 ER5 E,36203 ;C(E) WAS CLOBBERED 13763 041414 321 12 0 00 041402 JUMPL AC+2,F36200 ;LOOP ON ERROR SWITCH^ 13764 13765 003621 ADR=ADR+1 13766 777777 777677 XX=XX+XX+1 13767 IFE , 13768 13769 ;MULTIPLY A RIPPLED 0 BY -1 13770 000101 MX=-XX 13771 000000 IFL XX, 13772 IFG XX, DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-4 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0274 13773 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 13774 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 13775 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13776 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 13777 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13778 13779 777777 777777 F36210: AA1=-1 ;INITIAL C(AC) 13780 041415 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 13781 777777 777777 AA2=-1 ;INITIAL C(AC+1) 13782 041416 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 13783 777777 777677 AEE=XX ;INITIAL C(E) 13784 041417 200 06 0 00 044052 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 13785 041420 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13786 000000 AR1=V1 ;EXPECTED RESULT IN AC 13787 041421 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13788 041422 003 10 0 00 036211 ER3 AC,36211 ;HIGH PRODUCT FAILED 13789 000101 AR2=MX ;EXPECTED RESULT IN AC+1 13790 041423 312 11 0 00 044176 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 13791 041424 004 11 0 00 036212 ER4 AC+1,36212 ;LOW PRODUCT FAILED 13792 777777 777677 AEE=XX ;INITIAL C(E) 13793 041425 312 06 0 00 044052 CAME E,[XX] ;WAS C(E) CLOBBERED? 13794 041426 005 06 0 00 036213 ER5 E,36213 ;C(E) WAS CLOBBERED 13795 041427 321 12 0 00 041415 JUMPL AC+2,F36210 ;LOOP ON ERROR SWITCH^ 13796 13797 003622 ADR=ADR+1 13798 777777 777577 XX=XX+XX+1 13799 IFE , 13800 13801 ;MULTIPLY A RIPPLED 0 BY -1 13802 000201 MX=-XX 13803 000000 IFL XX, 13804 IFG XX, 13805 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 13806 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 13807 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13808 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 13809 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13810 13811 777777 777777 F36220: AA1=-1 ;INITIAL C(AC) 13812 041430 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 13813 777777 777777 AA2=-1 ;INITIAL C(AC+1) 13814 041431 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 13815 777777 777577 AEE=XX ;INITIAL C(E) 13816 041432 200 06 0 00 044053 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 13817 041433 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13818 000000 AR1=V1 ;EXPECTED RESULT IN AC 13819 041434 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13820 041435 003 10 0 00 036221 ER3 AC,36221 ;HIGH PRODUCT FAILED 13821 000201 AR2=MX ;EXPECTED RESULT IN AC+1 13822 041436 312 11 0 00 044177 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 13823 041437 004 11 0 00 036222 ER4 AC+1,36222 ;LOW PRODUCT FAILED 13824 777777 777577 AEE=XX ;INITIAL C(E) 13825 041440 312 06 0 00 044053 CAME E,[XX] ;WAS C(E) CLOBBERED? 13826 041441 005 06 0 00 036223 ER5 E,36223 ;C(E) WAS CLOBBERED 13827 041442 321 12 0 00 041430 JUMPL AC+2,F36220 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-5 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0275 13828 13829 003623 ADR=ADR+1 13830 777777 777377 XX=XX+XX+1 13831 IFE , 13832 13833 ;MULTIPLY A RIPPLED 0 BY -1 13834 000401 MX=-XX 13835 000000 IFL XX, 13836 IFG XX, 13837 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 13838 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 13839 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13840 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 13841 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13842 13843 777777 777777 F36230: AA1=-1 ;INITIAL C(AC) 13844 041443 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 13845 777777 777777 AA2=-1 ;INITIAL C(AC+1) 13846 041444 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 13847 777777 777377 AEE=XX ;INITIAL C(E) 13848 041445 200 06 0 00 044054 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 13849 041446 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13850 000000 AR1=V1 ;EXPECTED RESULT IN AC 13851 041447 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13852 041450 003 10 0 00 036231 ER3 AC,36231 ;HIGH PRODUCT FAILED 13853 000401 AR2=MX ;EXPECTED RESULT IN AC+1 13854 041451 312 11 0 00 044200 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 13855 041452 004 11 0 00 036232 ER4 AC+1,36232 ;LOW PRODUCT FAILED 13856 777777 777377 AEE=XX ;INITIAL C(E) 13857 041453 312 06 0 00 044054 CAME E,[XX] ;WAS C(E) CLOBBERED? 13858 041454 005 06 0 00 036233 ER5 E,36233 ;C(E) WAS CLOBBERED 13859 041455 321 12 0 00 041443 JUMPL AC+2,F36230 ;LOOP ON ERROR SWITCH^ 13860 13861 003624 ADR=ADR+1 13862 777777 776777 XX=XX+XX+1 13863 IFE , 13864 13865 ;MULTIPLY A RIPPLED 0 BY -1 13866 001001 MX=-XX 13867 000000 IFL XX, 13868 IFG XX, 13869 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 13870 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 13871 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13872 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 13873 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13874 13875 777777 777777 F36240: AA1=-1 ;INITIAL C(AC) 13876 041456 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 13877 777777 777777 AA2=-1 ;INITIAL C(AC+1) 13878 041457 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 13879 777777 776777 AEE=XX ;INITIAL C(E) 13880 041460 200 06 0 00 044055 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 13881 041461 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13882 000000 AR1=V1 ;EXPECTED RESULT IN AC DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-6 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0276 13883 041462 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13884 041463 003 10 0 00 036241 ER3 AC,36241 ;HIGH PRODUCT FAILED 13885 001001 AR2=MX ;EXPECTED RESULT IN AC+1 13886 041464 312 11 0 00 044201 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 13887 041465 004 11 0 00 036242 ER4 AC+1,36242 ;LOW PRODUCT FAILED 13888 777777 776777 AEE=XX ;INITIAL C(E) 13889 041466 312 06 0 00 044055 CAME E,[XX] ;WAS C(E) CLOBBERED? 13890 041467 005 06 0 00 036243 ER5 E,36243 ;C(E) WAS CLOBBERED 13891 041470 321 12 0 00 041456 JUMPL AC+2,F36240 ;LOOP ON ERROR SWITCH^ 13892 13893 003625 ADR=ADR+1 13894 777777 775777 XX=XX+XX+1 13895 IFE , 13896 13897 ;MULTIPLY A RIPPLED 0 BY -1 13898 002001 MX=-XX 13899 000000 IFL XX, 13900 IFG XX, 13901 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 13902 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 13903 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13904 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 13905 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13906 13907 777777 777777 F36250: AA1=-1 ;INITIAL C(AC) 13908 041471 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 13909 777777 777777 AA2=-1 ;INITIAL C(AC+1) 13910 041472 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 13911 777777 775777 AEE=XX ;INITIAL C(E) 13912 041473 200 06 0 00 044056 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 13913 041474 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13914 000000 AR1=V1 ;EXPECTED RESULT IN AC 13915 041475 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13916 041476 003 10 0 00 036251 ER3 AC,36251 ;HIGH PRODUCT FAILED 13917 002001 AR2=MX ;EXPECTED RESULT IN AC+1 13918 041477 312 11 0 00 044202 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 13919 041500 004 11 0 00 036252 ER4 AC+1,36252 ;LOW PRODUCT FAILED 13920 777777 775777 AEE=XX ;INITIAL C(E) 13921 041501 312 06 0 00 044056 CAME E,[XX] ;WAS C(E) CLOBBERED? 13922 041502 005 06 0 00 036253 ER5 E,36253 ;C(E) WAS CLOBBERED 13923 041503 321 12 0 00 041471 JUMPL AC+2,F36250 ;LOOP ON ERROR SWITCH^ 13924 13925 003626 ADR=ADR+1 13926 777777 773777 XX=XX+XX+1 13927 IFE , 13928 13929 ;MULTIPLY A RIPPLED 0 BY -1 13930 004001 MX=-XX 13931 000000 IFL XX, 13932 IFG XX, 13933 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 13934 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 13935 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13936 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 13937 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-7 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0277 13938 13939 777777 777777 F36260: AA1=-1 ;INITIAL C(AC) 13940 041504 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 13941 777777 777777 AA2=-1 ;INITIAL C(AC+1) 13942 041505 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 13943 777777 773777 AEE=XX ;INITIAL C(E) 13944 041506 200 06 0 00 044057 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 13945 041507 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13946 000000 AR1=V1 ;EXPECTED RESULT IN AC 13947 041510 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13948 041511 003 10 0 00 036261 ER3 AC,36261 ;HIGH PRODUCT FAILED 13949 004001 AR2=MX ;EXPECTED RESULT IN AC+1 13950 041512 312 11 0 00 044203 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 13951 041513 004 11 0 00 036262 ER4 AC+1,36262 ;LOW PRODUCT FAILED 13952 777777 773777 AEE=XX ;INITIAL C(E) 13953 041514 312 06 0 00 044057 CAME E,[XX] ;WAS C(E) CLOBBERED? 13954 041515 005 06 0 00 036263 ER5 E,36263 ;C(E) WAS CLOBBERED 13955 041516 321 12 0 00 041504 JUMPL AC+2,F36260 ;LOOP ON ERROR SWITCH^ 13956 13957 003627 ADR=ADR+1 13958 777777 767777 XX=XX+XX+1 13959 IFE , 13960 13961 ;MULTIPLY A RIPPLED 0 BY -1 13962 010001 MX=-XX 13963 000000 IFL XX, 13964 IFG XX, 13965 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 13966 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 13967 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 13968 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 13969 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 13970 13971 777777 777777 F36270: AA1=-1 ;INITIAL C(AC) 13972 041517 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 13973 777777 777777 AA2=-1 ;INITIAL C(AC+1) 13974 041520 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 13975 777777 767777 AEE=XX ;INITIAL C(E) 13976 041521 200 06 0 00 044060 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 13977 041522 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 13978 000000 AR1=V1 ;EXPECTED RESULT IN AC 13979 041523 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 13980 041524 003 10 0 00 036271 ER3 AC,36271 ;HIGH PRODUCT FAILED 13981 010001 AR2=MX ;EXPECTED RESULT IN AC+1 13982 041525 312 11 0 00 044204 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 13983 041526 004 11 0 00 036272 ER4 AC+1,36272 ;LOW PRODUCT FAILED 13984 777777 767777 AEE=XX ;INITIAL C(E) 13985 041527 312 06 0 00 044060 CAME E,[XX] ;WAS C(E) CLOBBERED? 13986 041530 005 06 0 00 036273 ER5 E,36273 ;C(E) WAS CLOBBERED 13987 041531 321 12 0 00 041517 JUMPL AC+2,F36270 ;LOOP ON ERROR SWITCH^ 13988 13989 003630 ADR=ADR+1 13990 777777 757777 XX=XX+XX+1 13991 IFE , 13992 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-8 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0278 13993 ;MULTIPLY A RIPPLED 0 BY -1 13994 020001 MX=-XX 13995 000000 IFL XX, 13996 IFG XX, 13997 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 13998 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 13999 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14000 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14001 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14002 14003 777777 777777 F36300: AA1=-1 ;INITIAL C(AC) 14004 041532 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14005 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14006 041533 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14007 777777 757777 AEE=XX ;INITIAL C(E) 14008 041534 200 06 0 00 044061 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14009 041535 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14010 000000 AR1=V1 ;EXPECTED RESULT IN AC 14011 041536 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14012 041537 003 10 0 00 036301 ER3 AC,36301 ;HIGH PRODUCT FAILED 14013 020001 AR2=MX ;EXPECTED RESULT IN AC+1 14014 041540 312 11 0 00 044205 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14015 041541 004 11 0 00 036302 ER4 AC+1,36302 ;LOW PRODUCT FAILED 14016 777777 757777 AEE=XX ;INITIAL C(E) 14017 041542 312 06 0 00 044061 CAME E,[XX] ;WAS C(E) CLOBBERED? 14018 041543 005 06 0 00 036303 ER5 E,36303 ;C(E) WAS CLOBBERED 14019 041544 321 12 0 00 041532 JUMPL AC+2,F36300 ;LOOP ON ERROR SWITCH^ 14020 14021 003631 ADR=ADR+1 14022 777777 737777 XX=XX+XX+1 14023 IFE , 14024 14025 ;MULTIPLY A RIPPLED 0 BY -1 14026 040001 MX=-XX 14027 000000 IFL XX, 14028 IFG XX, 14029 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 14030 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 14031 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14032 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14033 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14034 14035 777777 777777 F36310: AA1=-1 ;INITIAL C(AC) 14036 041545 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14037 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14038 041546 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14039 777777 737777 AEE=XX ;INITIAL C(E) 14040 041547 200 06 0 00 044062 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14041 041550 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14042 000000 AR1=V1 ;EXPECTED RESULT IN AC 14043 041551 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14044 041552 003 10 0 00 036311 ER3 AC,36311 ;HIGH PRODUCT FAILED 14045 040001 AR2=MX ;EXPECTED RESULT IN AC+1 14046 041553 312 11 0 00 044206 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14047 041554 004 11 0 00 036312 ER4 AC+1,36312 ;LOW PRODUCT FAILED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-9 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0279 14048 777777 737777 AEE=XX ;INITIAL C(E) 14049 041555 312 06 0 00 044062 CAME E,[XX] ;WAS C(E) CLOBBERED? 14050 041556 005 06 0 00 036313 ER5 E,36313 ;C(E) WAS CLOBBERED 14051 041557 321 12 0 00 041545 JUMPL AC+2,F36310 ;LOOP ON ERROR SWITCH^ 14052 14053 003632 ADR=ADR+1 14054 777777 677777 XX=XX+XX+1 14055 IFE , 14056 14057 ;MULTIPLY A RIPPLED 0 BY -1 14058 100001 MX=-XX 14059 000000 IFL XX, 14060 IFG XX, 14061 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 14062 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 14063 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14064 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14065 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14066 14067 777777 777777 F36320: AA1=-1 ;INITIAL C(AC) 14068 041560 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14069 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14070 041561 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14071 777777 677777 AEE=XX ;INITIAL C(E) 14072 041562 200 06 0 00 044063 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14073 041563 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14074 000000 AR1=V1 ;EXPECTED RESULT IN AC 14075 041564 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14076 041565 003 10 0 00 036321 ER3 AC,36321 ;HIGH PRODUCT FAILED 14077 100001 AR2=MX ;EXPECTED RESULT IN AC+1 14078 041566 312 11 0 00 044207 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14079 041567 004 11 0 00 036322 ER4 AC+1,36322 ;LOW PRODUCT FAILED 14080 777777 677777 AEE=XX ;INITIAL C(E) 14081 041570 312 06 0 00 044063 CAME E,[XX] ;WAS C(E) CLOBBERED? 14082 041571 005 06 0 00 036323 ER5 E,36323 ;C(E) WAS CLOBBERED 14083 041572 321 12 0 00 041560 JUMPL AC+2,F36320 ;LOOP ON ERROR SWITCH^ 14084 14085 003633 ADR=ADR+1 14086 777777 577777 XX=XX+XX+1 14087 IFE , 14088 14089 ;MULTIPLY A RIPPLED 0 BY -1 14090 200001 MX=-XX 14091 000000 IFL XX, 14092 IFG XX, 14093 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 14094 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 14095 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14096 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14097 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14098 14099 777777 777777 F36330: AA1=-1 ;INITIAL C(AC) 14100 041573 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14101 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14102 041574 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-10 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0280 14103 777777 577777 AEE=XX ;INITIAL C(E) 14104 041575 200 06 0 00 044064 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14105 041576 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14106 000000 AR1=V1 ;EXPECTED RESULT IN AC 14107 041577 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14108 041600 003 10 0 00 036331 ER3 AC,36331 ;HIGH PRODUCT FAILED 14109 200001 AR2=MX ;EXPECTED RESULT IN AC+1 14110 041601 312 11 0 00 044210 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14111 041602 004 11 0 00 036332 ER4 AC+1,36332 ;LOW PRODUCT FAILED 14112 777777 577777 AEE=XX ;INITIAL C(E) 14113 041603 312 06 0 00 044064 CAME E,[XX] ;WAS C(E) CLOBBERED? 14114 041604 005 06 0 00 036333 ER5 E,36333 ;C(E) WAS CLOBBERED 14115 041605 321 12 0 00 041573 JUMPL AC+2,F36330 ;LOOP ON ERROR SWITCH^ 14116 14117 003634 ADR=ADR+1 14118 777777 377777 XX=XX+XX+1 14119 IFE , 14120 14121 ;MULTIPLY A RIPPLED 0 BY -1 14122 400001 MX=-XX 14123 000000 IFL XX, 14124 IFG XX, 14125 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 14126 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 14127 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14128 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14129 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14130 14131 777777 777777 F36340: AA1=-1 ;INITIAL C(AC) 14132 041606 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14133 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14134 041607 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14135 777777 377777 AEE=XX ;INITIAL C(E) 14136 041610 200 06 0 00 044065 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14137 041611 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14138 000000 AR1=V1 ;EXPECTED RESULT IN AC 14139 041612 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14140 041613 003 10 0 00 036341 ER3 AC,36341 ;HIGH PRODUCT FAILED 14141 400001 AR2=MX ;EXPECTED RESULT IN AC+1 14142 041614 312 11 0 00 044211 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14143 041615 004 11 0 00 036342 ER4 AC+1,36342 ;LOW PRODUCT FAILED 14144 777777 377777 AEE=XX ;INITIAL C(E) 14145 041616 312 06 0 00 044065 CAME E,[XX] ;WAS C(E) CLOBBERED? 14146 041617 005 06 0 00 036343 ER5 E,36343 ;C(E) WAS CLOBBERED 14147 041620 321 12 0 00 041606 JUMPL AC+2,F36340 ;LOOP ON ERROR SWITCH^ 14148 14149 003635 ADR=ADR+1 14150 777776 777777 XX=XX+XX+1 14151 IFE , 14152 14153 ;MULTIPLY A RIPPLED 0 BY -1 14154 000001 000001 MX=-XX 14155 000000 IFL XX, 14156 IFG XX, 14157 MOP1 (\ADR,-1,-1,XX,V1,MX)^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-11 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0281 14158 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 14159 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14160 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14161 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14162 14163 777777 777777 F36350: AA1=-1 ;INITIAL C(AC) 14164 041621 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14165 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14166 041622 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14167 777776 777777 AEE=XX ;INITIAL C(E) 14168 041623 200 06 0 00 044066 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14169 041624 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14170 000000 AR1=V1 ;EXPECTED RESULT IN AC 14171 041625 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14172 041626 003 10 0 00 036351 ER3 AC,36351 ;HIGH PRODUCT FAILED 14173 000001 000001 AR2=MX ;EXPECTED RESULT IN AC+1 14174 041627 312 11 0 00 044212 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14175 041630 004 11 0 00 036352 ER4 AC+1,36352 ;LOW PRODUCT FAILED 14176 777776 777777 AEE=XX ;INITIAL C(E) 14177 041631 312 06 0 00 044066 CAME E,[XX] ;WAS C(E) CLOBBERED? 14178 041632 005 06 0 00 036353 ER5 E,36353 ;C(E) WAS CLOBBERED 14179 041633 321 12 0 00 041621 JUMPL AC+2,F36350 ;LOOP ON ERROR SWITCH^ 14180 14181 003636 ADR=ADR+1 14182 777775 777777 XX=XX+XX+1 14183 IFE , 14184 14185 ;MULTIPLY A RIPPLED 0 BY -1 14186 000002 000001 MX=-XX 14187 000000 IFL XX, 14188 IFG XX, 14189 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 14190 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 14191 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14192 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14193 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14194 14195 777777 777777 F36360: AA1=-1 ;INITIAL C(AC) 14196 041634 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14197 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14198 041635 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14199 777775 777777 AEE=XX ;INITIAL C(E) 14200 041636 200 06 0 00 044067 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14201 041637 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14202 000000 AR1=V1 ;EXPECTED RESULT IN AC 14203 041640 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14204 041641 003 10 0 00 036361 ER3 AC,36361 ;HIGH PRODUCT FAILED 14205 000002 000001 AR2=MX ;EXPECTED RESULT IN AC+1 14206 041642 312 11 0 00 044213 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14207 041643 004 11 0 00 036362 ER4 AC+1,36362 ;LOW PRODUCT FAILED 14208 777775 777777 AEE=XX ;INITIAL C(E) 14209 041644 312 06 0 00 044067 CAME E,[XX] ;WAS C(E) CLOBBERED? 14210 041645 005 06 0 00 036363 ER5 E,36363 ;C(E) WAS CLOBBERED 14211 041646 321 12 0 00 041634 JUMPL AC+2,F36360 ;LOOP ON ERROR SWITCH^ 14212 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-12 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0282 14213 003637 ADR=ADR+1 14214 777773 777777 XX=XX+XX+1 14215 IFE , 14216 14217 ;MULTIPLY A RIPPLED 0 BY -1 14218 000004 000001 MX=-XX 14219 000000 IFL XX, 14220 IFG XX, 14221 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 14222 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 14223 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14224 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14225 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14226 14227 777777 777777 F36370: AA1=-1 ;INITIAL C(AC) 14228 041647 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14229 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14230 041650 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14231 777773 777777 AEE=XX ;INITIAL C(E) 14232 041651 200 06 0 00 044070 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14233 041652 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14234 000000 AR1=V1 ;EXPECTED RESULT IN AC 14235 041653 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14236 041654 003 10 0 00 036371 ER3 AC,36371 ;HIGH PRODUCT FAILED 14237 000004 000001 AR2=MX ;EXPECTED RESULT IN AC+1 14238 041655 312 11 0 00 044214 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14239 041656 004 11 0 00 036372 ER4 AC+1,36372 ;LOW PRODUCT FAILED 14240 777773 777777 AEE=XX ;INITIAL C(E) 14241 041657 312 06 0 00 044070 CAME E,[XX] ;WAS C(E) CLOBBERED? 14242 041660 005 06 0 00 036373 ER5 E,36373 ;C(E) WAS CLOBBERED 14243 041661 321 12 0 00 041647 JUMPL AC+2,F36370 ;LOOP ON ERROR SWITCH^ 14244 14245 003640 ADR=ADR+1 14246 777767 777777 XX=XX+XX+1 14247 IFE , 14248 14249 ;MULTIPLY A RIPPLED 0 BY -1 14250 000010 000001 MX=-XX 14251 000000 IFL XX, 14252 IFG XX, 14253 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 14254 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 14255 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14256 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14257 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14258 14259 777777 777777 F36400: AA1=-1 ;INITIAL C(AC) 14260 041662 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14261 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14262 041663 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14263 777767 777777 AEE=XX ;INITIAL C(E) 14264 041664 200 06 0 00 044071 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14265 041665 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14266 000000 AR1=V1 ;EXPECTED RESULT IN AC 14267 041666 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-13 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0283 14268 041667 003 10 0 00 036401 ER3 AC,36401 ;HIGH PRODUCT FAILED 14269 000010 000001 AR2=MX ;EXPECTED RESULT IN AC+1 14270 041670 312 11 0 00 044215 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14271 041671 004 11 0 00 036402 ER4 AC+1,36402 ;LOW PRODUCT FAILED 14272 777767 777777 AEE=XX ;INITIAL C(E) 14273 041672 312 06 0 00 044071 CAME E,[XX] ;WAS C(E) CLOBBERED? 14274 041673 005 06 0 00 036403 ER5 E,36403 ;C(E) WAS CLOBBERED 14275 041674 321 12 0 00 041662 JUMPL AC+2,F36400 ;LOOP ON ERROR SWITCH^ 14276 14277 003641 ADR=ADR+1 14278 777757 777777 XX=XX+XX+1 14279 IFE , 14280 14281 ;MULTIPLY A RIPPLED 0 BY -1 14282 000020 000001 MX=-XX 14283 000000 IFL XX, 14284 IFG XX, 14285 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 14286 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 14287 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14288 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14289 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14290 14291 777777 777777 F36410: AA1=-1 ;INITIAL C(AC) 14292 041675 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14293 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14294 041676 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14295 777757 777777 AEE=XX ;INITIAL C(E) 14296 041677 200 06 0 00 044072 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14297 041700 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14298 000000 AR1=V1 ;EXPECTED RESULT IN AC 14299 041701 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14300 041702 003 10 0 00 036411 ER3 AC,36411 ;HIGH PRODUCT FAILED 14301 000020 000001 AR2=MX ;EXPECTED RESULT IN AC+1 14302 041703 312 11 0 00 044216 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14303 041704 004 11 0 00 036412 ER4 AC+1,36412 ;LOW PRODUCT FAILED 14304 777757 777777 AEE=XX ;INITIAL C(E) 14305 041705 312 06 0 00 044072 CAME E,[XX] ;WAS C(E) CLOBBERED? 14306 041706 005 06 0 00 036413 ER5 E,36413 ;C(E) WAS CLOBBERED 14307 041707 321 12 0 00 041675 JUMPL AC+2,F36410 ;LOOP ON ERROR SWITCH^ 14308 14309 003642 ADR=ADR+1 14310 777737 777777 XX=XX+XX+1 14311 IFE , 14312 14313 ;MULTIPLY A RIPPLED 0 BY -1 14314 000040 000001 MX=-XX 14315 000000 IFL XX, 14316 IFG XX, 14317 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 14318 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 14319 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14320 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14321 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14322 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-14 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0284 14323 777777 777777 F36420: AA1=-1 ;INITIAL C(AC) 14324 041710 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14325 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14326 041711 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14327 777737 777777 AEE=XX ;INITIAL C(E) 14328 041712 200 06 0 00 044073 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14329 041713 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14330 000000 AR1=V1 ;EXPECTED RESULT IN AC 14331 041714 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14332 041715 003 10 0 00 036421 ER3 AC,36421 ;HIGH PRODUCT FAILED 14333 000040 000001 AR2=MX ;EXPECTED RESULT IN AC+1 14334 041716 312 11 0 00 044217 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14335 041717 004 11 0 00 036422 ER4 AC+1,36422 ;LOW PRODUCT FAILED 14336 777737 777777 AEE=XX ;INITIAL C(E) 14337 041720 312 06 0 00 044073 CAME E,[XX] ;WAS C(E) CLOBBERED? 14338 041721 005 06 0 00 036423 ER5 E,36423 ;C(E) WAS CLOBBERED 14339 041722 321 12 0 00 041710 JUMPL AC+2,F36420 ;LOOP ON ERROR SWITCH^ 14340 14341 003643 ADR=ADR+1 14342 777677 777777 XX=XX+XX+1 14343 IFE , 14344 14345 ;MULTIPLY A RIPPLED 0 BY -1 14346 000100 000001 MX=-XX 14347 000000 IFL XX, 14348 IFG XX, 14349 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 14350 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 14351 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14352 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14353 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14354 14355 777777 777777 F36430: AA1=-1 ;INITIAL C(AC) 14356 041723 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14357 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14358 041724 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14359 777677 777777 AEE=XX ;INITIAL C(E) 14360 041725 200 06 0 00 044074 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14361 041726 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14362 000000 AR1=V1 ;EXPECTED RESULT IN AC 14363 041727 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14364 041730 003 10 0 00 036431 ER3 AC,36431 ;HIGH PRODUCT FAILED 14365 000100 000001 AR2=MX ;EXPECTED RESULT IN AC+1 14366 041731 312 11 0 00 044220 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14367 041732 004 11 0 00 036432 ER4 AC+1,36432 ;LOW PRODUCT FAILED 14368 777677 777777 AEE=XX ;INITIAL C(E) 14369 041733 312 06 0 00 044074 CAME E,[XX] ;WAS C(E) CLOBBERED? 14370 041734 005 06 0 00 036433 ER5 E,36433 ;C(E) WAS CLOBBERED 14371 041735 321 12 0 00 041723 JUMPL AC+2,F36430 ;LOOP ON ERROR SWITCH^ 14372 14373 003644 ADR=ADR+1 14374 777577 777777 XX=XX+XX+1 14375 IFE , 14376 14377 ;MULTIPLY A RIPPLED 0 BY -1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-15 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0285 14378 000200 000001 MX=-XX 14379 000000 IFL XX, 14380 IFG XX, 14381 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 14382 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 14383 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14384 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14385 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14386 14387 777777 777777 F36440: AA1=-1 ;INITIAL C(AC) 14388 041736 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14389 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14390 041737 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14391 777577 777777 AEE=XX ;INITIAL C(E) 14392 041740 200 06 0 00 044075 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14393 041741 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14394 000000 AR1=V1 ;EXPECTED RESULT IN AC 14395 041742 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14396 041743 003 10 0 00 036441 ER3 AC,36441 ;HIGH PRODUCT FAILED 14397 000200 000001 AR2=MX ;EXPECTED RESULT IN AC+1 14398 041744 312 11 0 00 044221 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14399 041745 004 11 0 00 036442 ER4 AC+1,36442 ;LOW PRODUCT FAILED 14400 777577 777777 AEE=XX ;INITIAL C(E) 14401 041746 312 06 0 00 044075 CAME E,[XX] ;WAS C(E) CLOBBERED? 14402 041747 005 06 0 00 036443 ER5 E,36443 ;C(E) WAS CLOBBERED 14403 041750 321 12 0 00 041736 JUMPL AC+2,F36440 ;LOOP ON ERROR SWITCH^ 14404 14405 003645 ADR=ADR+1 14406 777377 777777 XX=XX+XX+1 14407 IFE , 14408 14409 ;MULTIPLY A RIPPLED 0 BY -1 14410 000400 000001 MX=-XX 14411 000000 IFL XX, 14412 IFG XX, 14413 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 14414 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 14415 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14416 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14417 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14418 14419 777777 777777 F36450: AA1=-1 ;INITIAL C(AC) 14420 041751 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14421 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14422 041752 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14423 777377 777777 AEE=XX ;INITIAL C(E) 14424 041753 200 06 0 00 044076 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14425 041754 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14426 000000 AR1=V1 ;EXPECTED RESULT IN AC 14427 041755 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14428 041756 003 10 0 00 036451 ER3 AC,36451 ;HIGH PRODUCT FAILED 14429 000400 000001 AR2=MX ;EXPECTED RESULT IN AC+1 14430 041757 312 11 0 00 044222 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14431 041760 004 11 0 00 036452 ER4 AC+1,36452 ;LOW PRODUCT FAILED 14432 777377 777777 AEE=XX ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-16 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0286 14433 041761 312 06 0 00 044076 CAME E,[XX] ;WAS C(E) CLOBBERED? 14434 041762 005 06 0 00 036453 ER5 E,36453 ;C(E) WAS CLOBBERED 14435 041763 321 12 0 00 041751 JUMPL AC+2,F36450 ;LOOP ON ERROR SWITCH^ 14436 14437 003646 ADR=ADR+1 14438 776777 777777 XX=XX+XX+1 14439 IFE , 14440 14441 ;MULTIPLY A RIPPLED 0 BY -1 14442 001000 000001 MX=-XX 14443 000000 IFL XX, 14444 IFG XX, 14445 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 14446 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 14447 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14448 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14449 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14450 14451 777777 777777 F36460: AA1=-1 ;INITIAL C(AC) 14452 041764 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14453 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14454 041765 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14455 776777 777777 AEE=XX ;INITIAL C(E) 14456 041766 200 06 0 00 044077 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14457 041767 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14458 000000 AR1=V1 ;EXPECTED RESULT IN AC 14459 041770 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14460 041771 003 10 0 00 036461 ER3 AC,36461 ;HIGH PRODUCT FAILED 14461 001000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 14462 041772 312 11 0 00 044223 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14463 041773 004 11 0 00 036462 ER4 AC+1,36462 ;LOW PRODUCT FAILED 14464 776777 777777 AEE=XX ;INITIAL C(E) 14465 041774 312 06 0 00 044077 CAME E,[XX] ;WAS C(E) CLOBBERED? 14466 041775 005 06 0 00 036463 ER5 E,36463 ;C(E) WAS CLOBBERED 14467 041776 321 12 0 00 041764 JUMPL AC+2,F36460 ;LOOP ON ERROR SWITCH^ 14468 14469 003647 ADR=ADR+1 14470 775777 777777 XX=XX+XX+1 14471 IFE , 14472 14473 ;MULTIPLY A RIPPLED 0 BY -1 14474 002000 000001 MX=-XX 14475 000000 IFL XX, 14476 IFG XX, 14477 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 14478 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 14479 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14480 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14481 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14482 14483 777777 777777 F36470: AA1=-1 ;INITIAL C(AC) 14484 041777 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14485 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14486 042000 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14487 775777 777777 AEE=XX ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-17 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0287 14488 042001 200 06 0 00 044100 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14489 042002 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14490 000000 AR1=V1 ;EXPECTED RESULT IN AC 14491 042003 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14492 042004 003 10 0 00 036471 ER3 AC,36471 ;HIGH PRODUCT FAILED 14493 002000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 14494 042005 312 11 0 00 044224 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14495 042006 004 11 0 00 036472 ER4 AC+1,36472 ;LOW PRODUCT FAILED 14496 775777 777777 AEE=XX ;INITIAL C(E) 14497 042007 312 06 0 00 044100 CAME E,[XX] ;WAS C(E) CLOBBERED? 14498 042010 005 06 0 00 036473 ER5 E,36473 ;C(E) WAS CLOBBERED 14499 042011 321 12 0 00 041777 JUMPL AC+2,F36470 ;LOOP ON ERROR SWITCH^ 14500 14501 003650 ADR=ADR+1 14502 773777 777777 XX=XX+XX+1 14503 IFE , 14504 14505 ;MULTIPLY A RIPPLED 0 BY -1 14506 004000 000001 MX=-XX 14507 000000 IFL XX, 14508 IFG XX, 14509 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 14510 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 14511 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14512 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14513 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14514 14515 777777 777777 F36500: AA1=-1 ;INITIAL C(AC) 14516 042012 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14517 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14518 042013 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14519 773777 777777 AEE=XX ;INITIAL C(E) 14520 042014 200 06 0 00 044101 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14521 042015 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14522 000000 AR1=V1 ;EXPECTED RESULT IN AC 14523 042016 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14524 042017 003 10 0 00 036501 ER3 AC,36501 ;HIGH PRODUCT FAILED 14525 004000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 14526 042020 312 11 0 00 044225 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14527 042021 004 11 0 00 036502 ER4 AC+1,36502 ;LOW PRODUCT FAILED 14528 773777 777777 AEE=XX ;INITIAL C(E) 14529 042022 312 06 0 00 044101 CAME E,[XX] ;WAS C(E) CLOBBERED? 14530 042023 005 06 0 00 036503 ER5 E,36503 ;C(E) WAS CLOBBERED 14531 042024 321 12 0 00 042012 JUMPL AC+2,F36500 ;LOOP ON ERROR SWITCH^ 14532 14533 003651 ADR=ADR+1 14534 767777 777777 XX=XX+XX+1 14535 IFE , 14536 14537 ;MULTIPLY A RIPPLED 0 BY -1 14538 010000 000001 MX=-XX 14539 000000 IFL XX, 14540 IFG XX, 14541 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 14542 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-18 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0288 14543 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14544 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14545 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14546 14547 777777 777777 F36510: AA1=-1 ;INITIAL C(AC) 14548 042025 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14549 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14550 042026 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14551 767777 777777 AEE=XX ;INITIAL C(E) 14552 042027 200 06 0 00 044102 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14553 042030 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14554 000000 AR1=V1 ;EXPECTED RESULT IN AC 14555 042031 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14556 042032 003 10 0 00 036511 ER3 AC,36511 ;HIGH PRODUCT FAILED 14557 010000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 14558 042033 312 11 0 00 044226 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14559 042034 004 11 0 00 036512 ER4 AC+1,36512 ;LOW PRODUCT FAILED 14560 767777 777777 AEE=XX ;INITIAL C(E) 14561 042035 312 06 0 00 044102 CAME E,[XX] ;WAS C(E) CLOBBERED? 14562 042036 005 06 0 00 036513 ER5 E,36513 ;C(E) WAS CLOBBERED 14563 042037 321 12 0 00 042025 JUMPL AC+2,F36510 ;LOOP ON ERROR SWITCH^ 14564 14565 003652 ADR=ADR+1 14566 757777 777777 XX=XX+XX+1 14567 IFE , 14568 14569 ;MULTIPLY A RIPPLED 0 BY -1 14570 020000 000001 MX=-XX 14571 000000 IFL XX, 14572 IFG XX, 14573 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 14574 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 14575 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14576 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14577 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14578 14579 777777 777777 F36520: AA1=-1 ;INITIAL C(AC) 14580 042040 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14581 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14582 042041 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14583 757777 777777 AEE=XX ;INITIAL C(E) 14584 042042 200 06 0 00 044103 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14585 042043 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14586 000000 AR1=V1 ;EXPECTED RESULT IN AC 14587 042044 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14588 042045 003 10 0 00 036521 ER3 AC,36521 ;HIGH PRODUCT FAILED 14589 020000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 14590 042046 312 11 0 00 044227 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14591 042047 004 11 0 00 036522 ER4 AC+1,36522 ;LOW PRODUCT FAILED 14592 757777 777777 AEE=XX ;INITIAL C(E) 14593 042050 312 06 0 00 044103 CAME E,[XX] ;WAS C(E) CLOBBERED? 14594 042051 005 06 0 00 036523 ER5 E,36523 ;C(E) WAS CLOBBERED 14595 042052 321 12 0 00 042040 JUMPL AC+2,F36520 ;LOOP ON ERROR SWITCH^ 14596 14597 003653 ADR=ADR+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-19 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0289 14598 737777 777777 XX=XX+XX+1 14599 IFE , 14600 14601 ;MULTIPLY A RIPPLED 0 BY -1 14602 040000 000001 MX=-XX 14603 000000 IFL XX, 14604 IFG XX, 14605 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 14606 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 14607 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14608 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14609 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14610 14611 777777 777777 F36530: AA1=-1 ;INITIAL C(AC) 14612 042053 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14613 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14614 042054 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14615 737777 777777 AEE=XX ;INITIAL C(E) 14616 042055 200 06 0 00 044104 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14617 042056 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14618 000000 AR1=V1 ;EXPECTED RESULT IN AC 14619 042057 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14620 042060 003 10 0 00 036531 ER3 AC,36531 ;HIGH PRODUCT FAILED 14621 040000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 14622 042061 312 11 0 00 044230 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14623 042062 004 11 0 00 036532 ER4 AC+1,36532 ;LOW PRODUCT FAILED 14624 737777 777777 AEE=XX ;INITIAL C(E) 14625 042063 312 06 0 00 044104 CAME E,[XX] ;WAS C(E) CLOBBERED? 14626 042064 005 06 0 00 036533 ER5 E,36533 ;C(E) WAS CLOBBERED 14627 042065 321 12 0 00 042053 JUMPL AC+2,F36530 ;LOOP ON ERROR SWITCH^ 14628 14629 003654 ADR=ADR+1 14630 677777 777777 XX=XX+XX+1 14631 IFE , 14632 14633 ;MULTIPLY A RIPPLED 0 BY -1 14634 100000 000001 MX=-XX 14635 000000 IFL XX, 14636 IFG XX, 14637 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 14638 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 14639 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14640 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14641 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14642 14643 777777 777777 F36540: AA1=-1 ;INITIAL C(AC) 14644 042066 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14645 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14646 042067 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14647 677777 777777 AEE=XX ;INITIAL C(E) 14648 042070 200 06 0 00 044105 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14649 042071 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14650 000000 AR1=V1 ;EXPECTED RESULT IN AC 14651 042072 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14652 042073 003 10 0 00 036541 ER3 AC,36541 ;HIGH PRODUCT FAILED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-20 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0290 14653 100000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 14654 042074 312 11 0 00 044231 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14655 042075 004 11 0 00 036542 ER4 AC+1,36542 ;LOW PRODUCT FAILED 14656 677777 777777 AEE=XX ;INITIAL C(E) 14657 042076 312 06 0 00 044105 CAME E,[XX] ;WAS C(E) CLOBBERED? 14658 042077 005 06 0 00 036543 ER5 E,36543 ;C(E) WAS CLOBBERED 14659 042100 321 12 0 00 042066 JUMPL AC+2,F36540 ;LOOP ON ERROR SWITCH^ 14660 14661 003655 ADR=ADR+1 14662 577777 777777 XX=XX+XX+1 14663 IFE , 14664 14665 ;MULTIPLY A RIPPLED 0 BY -1 14666 200000 000001 MX=-XX 14667 000000 IFL XX, 14668 IFG XX, 14669 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 14670 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 14671 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14672 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14673 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14674 14675 777777 777777 F36550: AA1=-1 ;INITIAL C(AC) 14676 042101 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14677 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14678 042102 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14679 577777 777777 AEE=XX ;INITIAL C(E) 14680 042103 200 06 0 00 044106 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14681 042104 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14682 000000 AR1=V1 ;EXPECTED RESULT IN AC 14683 042105 312 10 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14684 042106 003 10 0 00 036551 ER3 AC,36551 ;HIGH PRODUCT FAILED 14685 200000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 14686 042107 312 11 0 00 044232 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14687 042110 004 11 0 00 036552 ER4 AC+1,36552 ;LOW PRODUCT FAILED 14688 577777 777777 AEE=XX ;INITIAL C(E) 14689 042111 312 06 0 00 044106 CAME E,[XX] ;WAS C(E) CLOBBERED? 14690 042112 005 06 0 00 036553 ER5 E,36553 ;C(E) WAS CLOBBERED 14691 042113 321 12 0 00 042101 JUMPL AC+2,F36550 ;LOOP ON ERROR SWITCH^ 14692 14693 003656 ADR=ADR+1 14694 377777 777777 XX=XX+XX+1 14695 IFE , 14696 14697 ;MULTIPLY A RIPPLED 0 BY -1 14698 400000 000001 MX=-XX 14699 IFL XX, 14700 777777 777777 IFG XX, 14701 MOP1 (\ADR,-1,-1,XX,V1,MX)^ 14702 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [-1],[-1] AND 14703 ;[XX] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14704 ;AND E AGAINST [V1], [MX] AND [XX] RESPECTIVELY. 14705 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14706 14707 777777 777777 F36560: AA1=-1 ;INITIAL C(AC) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 18-21 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0291 14708 042114 200 10 0 00 043777 MOVE AC,[-1] ;PRELOAD AC (MULTIPLIER) 14709 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14710 042115 200 11 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14711 377777 777777 AEE=XX ;INITIAL C(E) 14712 042116 200 06 0 00 044107 MOVE E,[XX] ;PRELOAD E (MULTIPLICAND) 14713 042117 224 10 0 00 000006 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14714 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 14715 042120 312 10 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14716 042121 003 10 0 00 036561 ER3 AC,36561 ;HIGH PRODUCT FAILED 14717 400000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 14718 042122 312 11 0 00 044233 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14719 042123 004 11 0 00 036562 ER4 AC+1,36562 ;LOW PRODUCT FAILED 14720 377777 777777 AEE=XX ;INITIAL C(E) 14721 042124 312 06 0 00 044107 CAME E,[XX] ;WAS C(E) CLOBBERED? 14722 042125 005 06 0 00 036563 ER5 E,36563 ;C(E) WAS CLOBBERED 14723 042126 321 12 0 00 042114 JUMPL AC+2,F36560 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0292 14724 000014 AC=14 14725 000012 E=&17 14726 SAVEAC (1,1)^ 14727 042127 201 16 0 00 042127 MOVEI AC+2,. ;SAVE TEST PC 14728 042130 202 16 0 00 030051 MOVEM AC+2,TESTPC 14729 042131 201 16 0 00 000016 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH 14730 042132 202 16 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ 14731 000000 XX=0 14732 14733 REPEAT ^D36, < 14734 ADR=ADR+1 14735 XX=XX+XX+1 14736 IFE , 14737 14738 ;MULTIPLY -1 BY A RIPPLED 0 14739 MX=-XX 14740 IFL XX, 14741 IFG XX, 14742 MOP1 (\ADR,XX,-1,-1,V1,MX)> 14743 14744 003657 ADR=ADR+1 14745 000001 XX=XX+XX+1 14746 777777 777776 IFE , 14747 14748 ;MULTIPLY -1 BY A RIPPLED 0 14749 000002 MX=-XX 14750 000000 IFL XX, 14751 IFG XX, 14752 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 14753 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 14754 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14755 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 14756 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14757 14758 777777 777776 F36570: AA1=XX ;INITIAL C(AC) 14759 042133 200 14 0 00 044044 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 14760 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14761 042134 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14762 777777 777777 AEE=-1 ;INITIAL C(E) 14763 042135 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 14764 042136 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14765 000000 AR1=V1 ;EXPECTED RESULT IN AC 14766 042137 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14767 042140 003 14 0 00 036571 ER3 AC,36571 ;HIGH PRODUCT FAILED 14768 000002 AR2=MX ;EXPECTED RESULT IN AC+1 14769 042141 312 15 0 00 044001 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14770 042142 004 15 0 00 036572 ER4 AC+1,36572 ;LOW PRODUCT FAILED 14771 777777 777777 AEE=-1 ;INITIAL C(E) 14772 042143 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 14773 042144 005 12 0 00 036573 ER5 E,36573 ;C(E) WAS CLOBBERED 14774 042145 321 16 0 00 042133 JUMPL AC+2,F36570 ;LOOP ON ERROR SWITCH^ 14775 14776 003660 ADR=ADR+1 14777 777777 777775 XX=XX+XX+1 14778 IFE , DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-1 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0293 14779 14780 ;MULTIPLY -1 BY A RIPPLED 0 14781 000003 MX=-XX 14782 000000 IFL XX, 14783 IFG XX, 14784 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 14785 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 14786 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14787 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 14788 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14789 14790 777777 777775 F36600: AA1=XX ;INITIAL C(AC) 14791 042146 200 14 0 00 044045 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 14792 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14793 042147 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14794 777777 777777 AEE=-1 ;INITIAL C(E) 14795 042150 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 14796 042151 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14797 000000 AR1=V1 ;EXPECTED RESULT IN AC 14798 042152 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14799 042153 003 14 0 00 036601 ER3 AC,36601 ;HIGH PRODUCT FAILED 14800 000003 AR2=MX ;EXPECTED RESULT IN AC+1 14801 042154 312 15 0 00 044110 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14802 042155 004 15 0 00 036602 ER4 AC+1,36602 ;LOW PRODUCT FAILED 14803 777777 777777 AEE=-1 ;INITIAL C(E) 14804 042156 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 14805 042157 005 12 0 00 036603 ER5 E,36603 ;C(E) WAS CLOBBERED 14806 042160 321 16 0 00 042146 JUMPL AC+2,F36600 ;LOOP ON ERROR SWITCH^ 14807 14808 003661 ADR=ADR+1 14809 777777 777773 XX=XX+XX+1 14810 IFE , 14811 14812 ;MULTIPLY -1 BY A RIPPLED 0 14813 000005 MX=-XX 14814 000000 IFL XX, 14815 IFG XX, 14816 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 14817 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 14818 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14819 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 14820 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14821 14822 777777 777773 F36610: AA1=XX ;INITIAL C(AC) 14823 042161 200 14 0 00 044046 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 14824 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14825 042162 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14826 777777 777777 AEE=-1 ;INITIAL C(E) 14827 042163 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 14828 042164 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14829 000000 AR1=V1 ;EXPECTED RESULT IN AC 14830 042165 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14831 042166 003 14 0 00 036611 ER3 AC,36611 ;HIGH PRODUCT FAILED 14832 000005 AR2=MX ;EXPECTED RESULT IN AC+1 14833 042167 312 15 0 00 044111 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-2 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0294 14834 042170 004 15 0 00 036612 ER4 AC+1,36612 ;LOW PRODUCT FAILED 14835 777777 777777 AEE=-1 ;INITIAL C(E) 14836 042171 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 14837 042172 005 12 0 00 036613 ER5 E,36613 ;C(E) WAS CLOBBERED 14838 042173 321 16 0 00 042161 JUMPL AC+2,F36610 ;LOOP ON ERROR SWITCH^ 14839 14840 003662 ADR=ADR+1 14841 777777 777767 XX=XX+XX+1 14842 IFE , 14843 14844 ;MULTIPLY -1 BY A RIPPLED 0 14845 000011 MX=-XX 14846 000000 IFL XX, 14847 IFG XX, 14848 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 14849 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 14850 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14851 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 14852 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14853 14854 777777 777767 F36620: AA1=XX ;INITIAL C(AC) 14855 042174 200 14 0 00 044047 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 14856 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14857 042175 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14858 777777 777777 AEE=-1 ;INITIAL C(E) 14859 042176 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 14860 042177 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14861 000000 AR1=V1 ;EXPECTED RESULT IN AC 14862 042200 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14863 042201 003 14 0 00 036621 ER3 AC,36621 ;HIGH PRODUCT FAILED 14864 000011 AR2=MX ;EXPECTED RESULT IN AC+1 14865 042202 312 15 0 00 044114 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14866 042203 004 15 0 00 036622 ER4 AC+1,36622 ;LOW PRODUCT FAILED 14867 777777 777777 AEE=-1 ;INITIAL C(E) 14868 042204 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 14869 042205 005 12 0 00 036623 ER5 E,36623 ;C(E) WAS CLOBBERED 14870 042206 321 16 0 00 042174 JUMPL AC+2,F36620 ;LOOP ON ERROR SWITCH^ 14871 14872 003663 ADR=ADR+1 14873 777777 777757 XX=XX+XX+1 14874 IFE , 14875 14876 ;MULTIPLY -1 BY A RIPPLED 0 14877 000021 MX=-XX 14878 000000 IFL XX, 14879 IFG XX, 14880 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 14881 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 14882 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14883 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 14884 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14885 14886 777777 777757 F36630: AA1=XX ;INITIAL C(AC) 14887 042207 200 14 0 00 044050 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 14888 777777 777777 AA2=-1 ;INITIAL C(AC+1) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-3 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0295 14889 042210 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14890 777777 777777 AEE=-1 ;INITIAL C(E) 14891 042211 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 14892 042212 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14893 000000 AR1=V1 ;EXPECTED RESULT IN AC 14894 042213 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14895 042214 003 14 0 00 036631 ER3 AC,36631 ;HIGH PRODUCT FAILED 14896 000021 AR2=MX ;EXPECTED RESULT IN AC+1 14897 042215 312 15 0 00 044174 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14898 042216 004 15 0 00 036632 ER4 AC+1,36632 ;LOW PRODUCT FAILED 14899 777777 777777 AEE=-1 ;INITIAL C(E) 14900 042217 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 14901 042220 005 12 0 00 036633 ER5 E,36633 ;C(E) WAS CLOBBERED 14902 042221 321 16 0 00 042207 JUMPL AC+2,F36630 ;LOOP ON ERROR SWITCH^ 14903 14904 003664 ADR=ADR+1 14905 777777 777737 XX=XX+XX+1 14906 IFE , 14907 14908 ;MULTIPLY -1 BY A RIPPLED 0 14909 000041 MX=-XX 14910 000000 IFL XX, 14911 IFG XX, 14912 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 14913 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 14914 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14915 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 14916 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14917 14918 777777 777737 F36640: AA1=XX ;INITIAL C(AC) 14919 042222 200 14 0 00 044051 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 14920 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14921 042223 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14922 777777 777777 AEE=-1 ;INITIAL C(E) 14923 042224 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 14924 042225 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14925 000000 AR1=V1 ;EXPECTED RESULT IN AC 14926 042226 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14927 042227 003 14 0 00 036641 ER3 AC,36641 ;HIGH PRODUCT FAILED 14928 000041 AR2=MX ;EXPECTED RESULT IN AC+1 14929 042230 312 15 0 00 044175 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14930 042231 004 15 0 00 036642 ER4 AC+1,36642 ;LOW PRODUCT FAILED 14931 777777 777777 AEE=-1 ;INITIAL C(E) 14932 042232 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 14933 042233 005 12 0 00 036643 ER5 E,36643 ;C(E) WAS CLOBBERED 14934 042234 321 16 0 00 042222 JUMPL AC+2,F36640 ;LOOP ON ERROR SWITCH^ 14935 14936 003665 ADR=ADR+1 14937 777777 777677 XX=XX+XX+1 14938 IFE , 14939 14940 ;MULTIPLY -1 BY A RIPPLED 0 14941 000101 MX=-XX 14942 000000 IFL XX, 14943 IFG XX, DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-4 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0296 14944 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 14945 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 14946 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14947 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 14948 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14949 14950 777777 777677 F36650: AA1=XX ;INITIAL C(AC) 14951 042235 200 14 0 00 044052 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 14952 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14953 042236 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14954 777777 777777 AEE=-1 ;INITIAL C(E) 14955 042237 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 14956 042240 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14957 000000 AR1=V1 ;EXPECTED RESULT IN AC 14958 042241 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14959 042242 003 14 0 00 036651 ER3 AC,36651 ;HIGH PRODUCT FAILED 14960 000101 AR2=MX ;EXPECTED RESULT IN AC+1 14961 042243 312 15 0 00 044176 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14962 042244 004 15 0 00 036652 ER4 AC+1,36652 ;LOW PRODUCT FAILED 14963 777777 777777 AEE=-1 ;INITIAL C(E) 14964 042245 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 14965 042246 005 12 0 00 036653 ER5 E,36653 ;C(E) WAS CLOBBERED 14966 042247 321 16 0 00 042235 JUMPL AC+2,F36650 ;LOOP ON ERROR SWITCH^ 14967 14968 003666 ADR=ADR+1 14969 777777 777577 XX=XX+XX+1 14970 IFE , 14971 14972 ;MULTIPLY -1 BY A RIPPLED 0 14973 000201 MX=-XX 14974 000000 IFL XX, 14975 IFG XX, 14976 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 14977 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 14978 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 14979 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 14980 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 14981 14982 777777 777577 F36660: AA1=XX ;INITIAL C(AC) 14983 042250 200 14 0 00 044053 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 14984 777777 777777 AA2=-1 ;INITIAL C(AC+1) 14985 042251 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 14986 777777 777777 AEE=-1 ;INITIAL C(E) 14987 042252 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 14988 042253 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 14989 000000 AR1=V1 ;EXPECTED RESULT IN AC 14990 042254 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 14991 042255 003 14 0 00 036661 ER3 AC,36661 ;HIGH PRODUCT FAILED 14992 000201 AR2=MX ;EXPECTED RESULT IN AC+1 14993 042256 312 15 0 00 044177 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 14994 042257 004 15 0 00 036662 ER4 AC+1,36662 ;LOW PRODUCT FAILED 14995 777777 777777 AEE=-1 ;INITIAL C(E) 14996 042260 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 14997 042261 005 12 0 00 036663 ER5 E,36663 ;C(E) WAS CLOBBERED 14998 042262 321 16 0 00 042250 JUMPL AC+2,F36660 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-5 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0297 14999 15000 003667 ADR=ADR+1 15001 777777 777377 XX=XX+XX+1 15002 IFE , 15003 15004 ;MULTIPLY -1 BY A RIPPLED 0 15005 000401 MX=-XX 15006 000000 IFL XX, 15007 IFG XX, 15008 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15009 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15010 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15011 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15012 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15013 15014 777777 777377 F36670: AA1=XX ;INITIAL C(AC) 15015 042263 200 14 0 00 044054 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15016 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15017 042264 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15018 777777 777777 AEE=-1 ;INITIAL C(E) 15019 042265 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15020 042266 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15021 000000 AR1=V1 ;EXPECTED RESULT IN AC 15022 042267 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15023 042270 003 14 0 00 036671 ER3 AC,36671 ;HIGH PRODUCT FAILED 15024 000401 AR2=MX ;EXPECTED RESULT IN AC+1 15025 042271 312 15 0 00 044200 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15026 042272 004 15 0 00 036672 ER4 AC+1,36672 ;LOW PRODUCT FAILED 15027 777777 777777 AEE=-1 ;INITIAL C(E) 15028 042273 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15029 042274 005 12 0 00 036673 ER5 E,36673 ;C(E) WAS CLOBBERED 15030 042275 321 16 0 00 042263 JUMPL AC+2,F36670 ;LOOP ON ERROR SWITCH^ 15031 15032 003670 ADR=ADR+1 15033 777777 776777 XX=XX+XX+1 15034 IFE , 15035 15036 ;MULTIPLY -1 BY A RIPPLED 0 15037 001001 MX=-XX 15038 000000 IFL XX, 15039 IFG XX, 15040 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15041 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15042 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15043 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15044 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15045 15046 777777 776777 F36700: AA1=XX ;INITIAL C(AC) 15047 042276 200 14 0 00 044055 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15048 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15049 042277 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15050 777777 777777 AEE=-1 ;INITIAL C(E) 15051 042300 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15052 042301 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15053 000000 AR1=V1 ;EXPECTED RESULT IN AC DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-6 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0298 15054 042302 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15055 042303 003 14 0 00 036701 ER3 AC,36701 ;HIGH PRODUCT FAILED 15056 001001 AR2=MX ;EXPECTED RESULT IN AC+1 15057 042304 312 15 0 00 044201 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15058 042305 004 15 0 00 036702 ER4 AC+1,36702 ;LOW PRODUCT FAILED 15059 777777 777777 AEE=-1 ;INITIAL C(E) 15060 042306 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15061 042307 005 12 0 00 036703 ER5 E,36703 ;C(E) WAS CLOBBERED 15062 042310 321 16 0 00 042276 JUMPL AC+2,F36700 ;LOOP ON ERROR SWITCH^ 15063 15064 003671 ADR=ADR+1 15065 777777 775777 XX=XX+XX+1 15066 IFE , 15067 15068 ;MULTIPLY -1 BY A RIPPLED 0 15069 002001 MX=-XX 15070 000000 IFL XX, 15071 IFG XX, 15072 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15073 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15074 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15075 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15076 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15077 15078 777777 775777 F36710: AA1=XX ;INITIAL C(AC) 15079 042311 200 14 0 00 044056 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15080 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15081 042312 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15082 777777 777777 AEE=-1 ;INITIAL C(E) 15083 042313 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15084 042314 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15085 000000 AR1=V1 ;EXPECTED RESULT IN AC 15086 042315 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15087 042316 003 14 0 00 036711 ER3 AC,36711 ;HIGH PRODUCT FAILED 15088 002001 AR2=MX ;EXPECTED RESULT IN AC+1 15089 042317 312 15 0 00 044202 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15090 042320 004 15 0 00 036712 ER4 AC+1,36712 ;LOW PRODUCT FAILED 15091 777777 777777 AEE=-1 ;INITIAL C(E) 15092 042321 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15093 042322 005 12 0 00 036713 ER5 E,36713 ;C(E) WAS CLOBBERED 15094 042323 321 16 0 00 042311 JUMPL AC+2,F36710 ;LOOP ON ERROR SWITCH^ 15095 15096 003672 ADR=ADR+1 15097 777777 773777 XX=XX+XX+1 15098 IFE , 15099 15100 ;MULTIPLY -1 BY A RIPPLED 0 15101 004001 MX=-XX 15102 000000 IFL XX, 15103 IFG XX, 15104 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15105 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15106 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15107 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15108 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-7 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0299 15109 15110 777777 773777 F36720: AA1=XX ;INITIAL C(AC) 15111 042324 200 14 0 00 044057 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15112 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15113 042325 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15114 777777 777777 AEE=-1 ;INITIAL C(E) 15115 042326 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15116 042327 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15117 000000 AR1=V1 ;EXPECTED RESULT IN AC 15118 042330 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15119 042331 003 14 0 00 036721 ER3 AC,36721 ;HIGH PRODUCT FAILED 15120 004001 AR2=MX ;EXPECTED RESULT IN AC+1 15121 042332 312 15 0 00 044203 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15122 042333 004 15 0 00 036722 ER4 AC+1,36722 ;LOW PRODUCT FAILED 15123 777777 777777 AEE=-1 ;INITIAL C(E) 15124 042334 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15125 042335 005 12 0 00 036723 ER5 E,36723 ;C(E) WAS CLOBBERED 15126 042336 321 16 0 00 042324 JUMPL AC+2,F36720 ;LOOP ON ERROR SWITCH^ 15127 15128 003673 ADR=ADR+1 15129 777777 767777 XX=XX+XX+1 15130 IFE , 15131 15132 ;MULTIPLY -1 BY A RIPPLED 0 15133 010001 MX=-XX 15134 000000 IFL XX, 15135 IFG XX, 15136 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15137 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15138 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15139 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15140 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15141 15142 777777 767777 F36730: AA1=XX ;INITIAL C(AC) 15143 042337 200 14 0 00 044060 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15144 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15145 042340 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15146 777777 777777 AEE=-1 ;INITIAL C(E) 15147 042341 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15148 042342 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15149 000000 AR1=V1 ;EXPECTED RESULT IN AC 15150 042343 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15151 042344 003 14 0 00 036731 ER3 AC,36731 ;HIGH PRODUCT FAILED 15152 010001 AR2=MX ;EXPECTED RESULT IN AC+1 15153 042345 312 15 0 00 044204 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15154 042346 004 15 0 00 036732 ER4 AC+1,36732 ;LOW PRODUCT FAILED 15155 777777 777777 AEE=-1 ;INITIAL C(E) 15156 042347 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15157 042350 005 12 0 00 036733 ER5 E,36733 ;C(E) WAS CLOBBERED 15158 042351 321 16 0 00 042337 JUMPL AC+2,F36730 ;LOOP ON ERROR SWITCH^ 15159 15160 003674 ADR=ADR+1 15161 777777 757777 XX=XX+XX+1 15162 IFE , 15163 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-8 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0300 15164 ;MULTIPLY -1 BY A RIPPLED 0 15165 020001 MX=-XX 15166 000000 IFL XX, 15167 IFG XX, 15168 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15169 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15170 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15171 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15172 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15173 15174 777777 757777 F36740: AA1=XX ;INITIAL C(AC) 15175 042352 200 14 0 00 044061 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15176 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15177 042353 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15178 777777 777777 AEE=-1 ;INITIAL C(E) 15179 042354 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15180 042355 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15181 000000 AR1=V1 ;EXPECTED RESULT IN AC 15182 042356 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15183 042357 003 14 0 00 036741 ER3 AC,36741 ;HIGH PRODUCT FAILED 15184 020001 AR2=MX ;EXPECTED RESULT IN AC+1 15185 042360 312 15 0 00 044205 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15186 042361 004 15 0 00 036742 ER4 AC+1,36742 ;LOW PRODUCT FAILED 15187 777777 777777 AEE=-1 ;INITIAL C(E) 15188 042362 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15189 042363 005 12 0 00 036743 ER5 E,36743 ;C(E) WAS CLOBBERED 15190 042364 321 16 0 00 042352 JUMPL AC+2,F36740 ;LOOP ON ERROR SWITCH^ 15191 15192 003675 ADR=ADR+1 15193 777777 737777 XX=XX+XX+1 15194 IFE , 15195 15196 ;MULTIPLY -1 BY A RIPPLED 0 15197 040001 MX=-XX 15198 000000 IFL XX, 15199 IFG XX, 15200 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15201 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15202 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15203 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15204 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15205 15206 777777 737777 F36750: AA1=XX ;INITIAL C(AC) 15207 042365 200 14 0 00 044062 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15208 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15209 042366 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15210 777777 777777 AEE=-1 ;INITIAL C(E) 15211 042367 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15212 042370 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15213 000000 AR1=V1 ;EXPECTED RESULT IN AC 15214 042371 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15215 042372 003 14 0 00 036751 ER3 AC,36751 ;HIGH PRODUCT FAILED 15216 040001 AR2=MX ;EXPECTED RESULT IN AC+1 15217 042373 312 15 0 00 044206 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15218 042374 004 15 0 00 036752 ER4 AC+1,36752 ;LOW PRODUCT FAILED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-9 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0301 15219 777777 777777 AEE=-1 ;INITIAL C(E) 15220 042375 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15221 042376 005 12 0 00 036753 ER5 E,36753 ;C(E) WAS CLOBBERED 15222 042377 321 16 0 00 042365 JUMPL AC+2,F36750 ;LOOP ON ERROR SWITCH^ 15223 15224 003676 ADR=ADR+1 15225 777777 677777 XX=XX+XX+1 15226 IFE , 15227 15228 ;MULTIPLY -1 BY A RIPPLED 0 15229 100001 MX=-XX 15230 000000 IFL XX, 15231 IFG XX, 15232 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15233 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15234 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15235 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15236 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15237 15238 777777 677777 F36760: AA1=XX ;INITIAL C(AC) 15239 042400 200 14 0 00 044063 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15240 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15241 042401 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15242 777777 777777 AEE=-1 ;INITIAL C(E) 15243 042402 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15244 042403 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15245 000000 AR1=V1 ;EXPECTED RESULT IN AC 15246 042404 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15247 042405 003 14 0 00 036761 ER3 AC,36761 ;HIGH PRODUCT FAILED 15248 100001 AR2=MX ;EXPECTED RESULT IN AC+1 15249 042406 312 15 0 00 044207 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15250 042407 004 15 0 00 036762 ER4 AC+1,36762 ;LOW PRODUCT FAILED 15251 777777 777777 AEE=-1 ;INITIAL C(E) 15252 042410 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15253 042411 005 12 0 00 036763 ER5 E,36763 ;C(E) WAS CLOBBERED 15254 042412 321 16 0 00 042400 JUMPL AC+2,F36760 ;LOOP ON ERROR SWITCH^ 15255 15256 003677 ADR=ADR+1 15257 777777 577777 XX=XX+XX+1 15258 IFE , 15259 15260 ;MULTIPLY -1 BY A RIPPLED 0 15261 200001 MX=-XX 15262 000000 IFL XX, 15263 IFG XX, 15264 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15265 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15266 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15267 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15268 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15269 15270 777777 577777 F36770: AA1=XX ;INITIAL C(AC) 15271 042413 200 14 0 00 044064 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15272 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15273 042414 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-10 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0302 15274 777777 777777 AEE=-1 ;INITIAL C(E) 15275 042415 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15276 042416 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15277 000000 AR1=V1 ;EXPECTED RESULT IN AC 15278 042417 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15279 042420 003 14 0 00 036771 ER3 AC,36771 ;HIGH PRODUCT FAILED 15280 200001 AR2=MX ;EXPECTED RESULT IN AC+1 15281 042421 312 15 0 00 044210 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15282 042422 004 15 0 00 036772 ER4 AC+1,36772 ;LOW PRODUCT FAILED 15283 777777 777777 AEE=-1 ;INITIAL C(E) 15284 042423 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15285 042424 005 12 0 00 036773 ER5 E,36773 ;C(E) WAS CLOBBERED 15286 042425 321 16 0 00 042413 JUMPL AC+2,F36770 ;LOOP ON ERROR SWITCH^ 15287 15288 003700 ADR=ADR+1 15289 777777 377777 XX=XX+XX+1 15290 IFE , 15291 15292 ;MULTIPLY -1 BY A RIPPLED 0 15293 400001 MX=-XX 15294 000000 IFL XX, 15295 IFG XX, 15296 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15297 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15298 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15299 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15300 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15301 15302 777777 377777 F37000: AA1=XX ;INITIAL C(AC) 15303 042426 200 14 0 00 044065 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15304 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15305 042427 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15306 777777 777777 AEE=-1 ;INITIAL C(E) 15307 042430 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15308 042431 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15309 000000 AR1=V1 ;EXPECTED RESULT IN AC 15310 042432 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15311 042433 003 14 0 00 037001 ER3 AC,37001 ;HIGH PRODUCT FAILED 15312 400001 AR2=MX ;EXPECTED RESULT IN AC+1 15313 042434 312 15 0 00 044211 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15314 042435 004 15 0 00 037002 ER4 AC+1,37002 ;LOW PRODUCT FAILED 15315 777777 777777 AEE=-1 ;INITIAL C(E) 15316 042436 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15317 042437 005 12 0 00 037003 ER5 E,37003 ;C(E) WAS CLOBBERED 15318 042440 321 16 0 00 042426 JUMPL AC+2,F37000 ;LOOP ON ERROR SWITCH^ 15319 15320 003701 ADR=ADR+1 15321 777776 777777 XX=XX+XX+1 15322 IFE , 15323 15324 ;MULTIPLY -1 BY A RIPPLED 0 15325 000001 000001 MX=-XX 15326 000000 IFL XX, 15327 IFG XX, 15328 MOP1 (\ADR,XX,-1,-1,V1,MX)^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-11 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0303 15329 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15330 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15331 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15332 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15333 15334 777776 777777 F37010: AA1=XX ;INITIAL C(AC) 15335 042441 200 14 0 00 044066 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15336 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15337 042442 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15338 777777 777777 AEE=-1 ;INITIAL C(E) 15339 042443 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15340 042444 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15341 000000 AR1=V1 ;EXPECTED RESULT IN AC 15342 042445 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15343 042446 003 14 0 00 037011 ER3 AC,37011 ;HIGH PRODUCT FAILED 15344 000001 000001 AR2=MX ;EXPECTED RESULT IN AC+1 15345 042447 312 15 0 00 044212 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15346 042450 004 15 0 00 037012 ER4 AC+1,37012 ;LOW PRODUCT FAILED 15347 777777 777777 AEE=-1 ;INITIAL C(E) 15348 042451 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15349 042452 005 12 0 00 037013 ER5 E,37013 ;C(E) WAS CLOBBERED 15350 042453 321 16 0 00 042441 JUMPL AC+2,F37010 ;LOOP ON ERROR SWITCH^ 15351 15352 003702 ADR=ADR+1 15353 777775 777777 XX=XX+XX+1 15354 IFE , 15355 15356 ;MULTIPLY -1 BY A RIPPLED 0 15357 000002 000001 MX=-XX 15358 000000 IFL XX, 15359 IFG XX, 15360 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15361 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15362 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15363 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15364 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15365 15366 777775 777777 F37020: AA1=XX ;INITIAL C(AC) 15367 042454 200 14 0 00 044067 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15368 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15369 042455 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15370 777777 777777 AEE=-1 ;INITIAL C(E) 15371 042456 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15372 042457 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15373 000000 AR1=V1 ;EXPECTED RESULT IN AC 15374 042460 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15375 042461 003 14 0 00 037021 ER3 AC,37021 ;HIGH PRODUCT FAILED 15376 000002 000001 AR2=MX ;EXPECTED RESULT IN AC+1 15377 042462 312 15 0 00 044213 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15378 042463 004 15 0 00 037022 ER4 AC+1,37022 ;LOW PRODUCT FAILED 15379 777777 777777 AEE=-1 ;INITIAL C(E) 15380 042464 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15381 042465 005 12 0 00 037023 ER5 E,37023 ;C(E) WAS CLOBBERED 15382 042466 321 16 0 00 042454 JUMPL AC+2,F37020 ;LOOP ON ERROR SWITCH^ 15383 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-12 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0304 15384 003703 ADR=ADR+1 15385 777773 777777 XX=XX+XX+1 15386 IFE , 15387 15388 ;MULTIPLY -1 BY A RIPPLED 0 15389 000004 000001 MX=-XX 15390 000000 IFL XX, 15391 IFG XX, 15392 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15393 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15394 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15395 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15396 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15397 15398 777773 777777 F37030: AA1=XX ;INITIAL C(AC) 15399 042467 200 14 0 00 044070 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15400 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15401 042470 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15402 777777 777777 AEE=-1 ;INITIAL C(E) 15403 042471 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15404 042472 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15405 000000 AR1=V1 ;EXPECTED RESULT IN AC 15406 042473 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15407 042474 003 14 0 00 037031 ER3 AC,37031 ;HIGH PRODUCT FAILED 15408 000004 000001 AR2=MX ;EXPECTED RESULT IN AC+1 15409 042475 312 15 0 00 044214 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15410 042476 004 15 0 00 037032 ER4 AC+1,37032 ;LOW PRODUCT FAILED 15411 777777 777777 AEE=-1 ;INITIAL C(E) 15412 042477 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15413 042500 005 12 0 00 037033 ER5 E,37033 ;C(E) WAS CLOBBERED 15414 042501 321 16 0 00 042467 JUMPL AC+2,F37030 ;LOOP ON ERROR SWITCH^ 15415 15416 003704 ADR=ADR+1 15417 777767 777777 XX=XX+XX+1 15418 IFE , 15419 15420 ;MULTIPLY -1 BY A RIPPLED 0 15421 000010 000001 MX=-XX 15422 000000 IFL XX, 15423 IFG XX, 15424 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15425 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15426 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15427 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15428 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15429 15430 777767 777777 F37040: AA1=XX ;INITIAL C(AC) 15431 042502 200 14 0 00 044071 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15432 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15433 042503 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15434 777777 777777 AEE=-1 ;INITIAL C(E) 15435 042504 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15436 042505 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15437 000000 AR1=V1 ;EXPECTED RESULT IN AC 15438 042506 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-13 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0305 15439 042507 003 14 0 00 037041 ER3 AC,37041 ;HIGH PRODUCT FAILED 15440 000010 000001 AR2=MX ;EXPECTED RESULT IN AC+1 15441 042510 312 15 0 00 044215 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15442 042511 004 15 0 00 037042 ER4 AC+1,37042 ;LOW PRODUCT FAILED 15443 777777 777777 AEE=-1 ;INITIAL C(E) 15444 042512 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15445 042513 005 12 0 00 037043 ER5 E,37043 ;C(E) WAS CLOBBERED 15446 042514 321 16 0 00 042502 JUMPL AC+2,F37040 ;LOOP ON ERROR SWITCH^ 15447 15448 003705 ADR=ADR+1 15449 777757 777777 XX=XX+XX+1 15450 IFE , 15451 15452 ;MULTIPLY -1 BY A RIPPLED 0 15453 000020 000001 MX=-XX 15454 000000 IFL XX, 15455 IFG XX, 15456 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15457 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15458 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15459 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15460 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15461 15462 777757 777777 F37050: AA1=XX ;INITIAL C(AC) 15463 042515 200 14 0 00 044072 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15464 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15465 042516 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15466 777777 777777 AEE=-1 ;INITIAL C(E) 15467 042517 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15468 042520 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15469 000000 AR1=V1 ;EXPECTED RESULT IN AC 15470 042521 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15471 042522 003 14 0 00 037051 ER3 AC,37051 ;HIGH PRODUCT FAILED 15472 000020 000001 AR2=MX ;EXPECTED RESULT IN AC+1 15473 042523 312 15 0 00 044216 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15474 042524 004 15 0 00 037052 ER4 AC+1,37052 ;LOW PRODUCT FAILED 15475 777777 777777 AEE=-1 ;INITIAL C(E) 15476 042525 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15477 042526 005 12 0 00 037053 ER5 E,37053 ;C(E) WAS CLOBBERED 15478 042527 321 16 0 00 042515 JUMPL AC+2,F37050 ;LOOP ON ERROR SWITCH^ 15479 15480 003706 ADR=ADR+1 15481 777737 777777 XX=XX+XX+1 15482 IFE , 15483 15484 ;MULTIPLY -1 BY A RIPPLED 0 15485 000040 000001 MX=-XX 15486 000000 IFL XX, 15487 IFG XX, 15488 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15489 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15490 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15491 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15492 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15493 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-14 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0306 15494 777737 777777 F37060: AA1=XX ;INITIAL C(AC) 15495 042530 200 14 0 00 044073 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15496 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15497 042531 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15498 777777 777777 AEE=-1 ;INITIAL C(E) 15499 042532 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15500 042533 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15501 000000 AR1=V1 ;EXPECTED RESULT IN AC 15502 042534 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15503 042535 003 14 0 00 037061 ER3 AC,37061 ;HIGH PRODUCT FAILED 15504 000040 000001 AR2=MX ;EXPECTED RESULT IN AC+1 15505 042536 312 15 0 00 044217 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15506 042537 004 15 0 00 037062 ER4 AC+1,37062 ;LOW PRODUCT FAILED 15507 777777 777777 AEE=-1 ;INITIAL C(E) 15508 042540 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15509 042541 005 12 0 00 037063 ER5 E,37063 ;C(E) WAS CLOBBERED 15510 042542 321 16 0 00 042530 JUMPL AC+2,F37060 ;LOOP ON ERROR SWITCH^ 15511 15512 003707 ADR=ADR+1 15513 777677 777777 XX=XX+XX+1 15514 IFE , 15515 15516 ;MULTIPLY -1 BY A RIPPLED 0 15517 000100 000001 MX=-XX 15518 000000 IFL XX, 15519 IFG XX, 15520 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15521 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15522 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15523 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15524 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15525 15526 777677 777777 F37070: AA1=XX ;INITIAL C(AC) 15527 042543 200 14 0 00 044074 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15528 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15529 042544 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15530 777777 777777 AEE=-1 ;INITIAL C(E) 15531 042545 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15532 042546 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15533 000000 AR1=V1 ;EXPECTED RESULT IN AC 15534 042547 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15535 042550 003 14 0 00 037071 ER3 AC,37071 ;HIGH PRODUCT FAILED 15536 000100 000001 AR2=MX ;EXPECTED RESULT IN AC+1 15537 042551 312 15 0 00 044220 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15538 042552 004 15 0 00 037072 ER4 AC+1,37072 ;LOW PRODUCT FAILED 15539 777777 777777 AEE=-1 ;INITIAL C(E) 15540 042553 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15541 042554 005 12 0 00 037073 ER5 E,37073 ;C(E) WAS CLOBBERED 15542 042555 321 16 0 00 042543 JUMPL AC+2,F37070 ;LOOP ON ERROR SWITCH^ 15543 15544 003710 ADR=ADR+1 15545 777577 777777 XX=XX+XX+1 15546 IFE , 15547 15548 ;MULTIPLY -1 BY A RIPPLED 0 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-15 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0307 15549 000200 000001 MX=-XX 15550 000000 IFL XX, 15551 IFG XX, 15552 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15553 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15554 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15555 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15556 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15557 15558 777577 777777 F37100: AA1=XX ;INITIAL C(AC) 15559 042556 200 14 0 00 044075 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15560 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15561 042557 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15562 777777 777777 AEE=-1 ;INITIAL C(E) 15563 042560 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15564 042561 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15565 000000 AR1=V1 ;EXPECTED RESULT IN AC 15566 042562 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15567 042563 003 14 0 00 037101 ER3 AC,37101 ;HIGH PRODUCT FAILED 15568 000200 000001 AR2=MX ;EXPECTED RESULT IN AC+1 15569 042564 312 15 0 00 044221 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15570 042565 004 15 0 00 037102 ER4 AC+1,37102 ;LOW PRODUCT FAILED 15571 777777 777777 AEE=-1 ;INITIAL C(E) 15572 042566 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15573 042567 005 12 0 00 037103 ER5 E,37103 ;C(E) WAS CLOBBERED 15574 042570 321 16 0 00 042556 JUMPL AC+2,F37100 ;LOOP ON ERROR SWITCH^ 15575 15576 003711 ADR=ADR+1 15577 777377 777777 XX=XX+XX+1 15578 IFE , 15579 15580 ;MULTIPLY -1 BY A RIPPLED 0 15581 000400 000001 MX=-XX 15582 000000 IFL XX, 15583 IFG XX, 15584 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15585 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15586 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15587 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15588 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15589 15590 777377 777777 F37110: AA1=XX ;INITIAL C(AC) 15591 042571 200 14 0 00 044076 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15592 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15593 042572 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15594 777777 777777 AEE=-1 ;INITIAL C(E) 15595 042573 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15596 042574 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15597 000000 AR1=V1 ;EXPECTED RESULT IN AC 15598 042575 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15599 042576 003 14 0 00 037111 ER3 AC,37111 ;HIGH PRODUCT FAILED 15600 000400 000001 AR2=MX ;EXPECTED RESULT IN AC+1 15601 042577 312 15 0 00 044222 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15602 042600 004 15 0 00 037112 ER4 AC+1,37112 ;LOW PRODUCT FAILED 15603 777777 777777 AEE=-1 ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-16 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0308 15604 042601 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15605 042602 005 12 0 00 037113 ER5 E,37113 ;C(E) WAS CLOBBERED 15606 042603 321 16 0 00 042571 JUMPL AC+2,F37110 ;LOOP ON ERROR SWITCH^ 15607 15608 003712 ADR=ADR+1 15609 776777 777777 XX=XX+XX+1 15610 IFE , 15611 15612 ;MULTIPLY -1 BY A RIPPLED 0 15613 001000 000001 MX=-XX 15614 000000 IFL XX, 15615 IFG XX, 15616 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15617 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15618 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15619 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15620 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15621 15622 776777 777777 F37120: AA1=XX ;INITIAL C(AC) 15623 042604 200 14 0 00 044077 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15624 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15625 042605 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15626 777777 777777 AEE=-1 ;INITIAL C(E) 15627 042606 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15628 042607 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15629 000000 AR1=V1 ;EXPECTED RESULT IN AC 15630 042610 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15631 042611 003 14 0 00 037121 ER3 AC,37121 ;HIGH PRODUCT FAILED 15632 001000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 15633 042612 312 15 0 00 044223 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15634 042613 004 15 0 00 037122 ER4 AC+1,37122 ;LOW PRODUCT FAILED 15635 777777 777777 AEE=-1 ;INITIAL C(E) 15636 042614 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15637 042615 005 12 0 00 037123 ER5 E,37123 ;C(E) WAS CLOBBERED 15638 042616 321 16 0 00 042604 JUMPL AC+2,F37120 ;LOOP ON ERROR SWITCH^ 15639 15640 003713 ADR=ADR+1 15641 775777 777777 XX=XX+XX+1 15642 IFE , 15643 15644 ;MULTIPLY -1 BY A RIPPLED 0 15645 002000 000001 MX=-XX 15646 000000 IFL XX, 15647 IFG XX, 15648 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15649 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15650 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15651 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15652 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15653 15654 775777 777777 F37130: AA1=XX ;INITIAL C(AC) 15655 042617 200 14 0 00 044100 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15656 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15657 042620 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15658 777777 777777 AEE=-1 ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-17 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0309 15659 042621 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15660 042622 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15661 000000 AR1=V1 ;EXPECTED RESULT IN AC 15662 042623 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15663 042624 003 14 0 00 037131 ER3 AC,37131 ;HIGH PRODUCT FAILED 15664 002000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 15665 042625 312 15 0 00 044224 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15666 042626 004 15 0 00 037132 ER4 AC+1,37132 ;LOW PRODUCT FAILED 15667 777777 777777 AEE=-1 ;INITIAL C(E) 15668 042627 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15669 042630 005 12 0 00 037133 ER5 E,37133 ;C(E) WAS CLOBBERED 15670 042631 321 16 0 00 042617 JUMPL AC+2,F37130 ;LOOP ON ERROR SWITCH^ 15671 15672 003714 ADR=ADR+1 15673 773777 777777 XX=XX+XX+1 15674 IFE , 15675 15676 ;MULTIPLY -1 BY A RIPPLED 0 15677 004000 000001 MX=-XX 15678 000000 IFL XX, 15679 IFG XX, 15680 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15681 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15682 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15683 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15684 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15685 15686 773777 777777 F37140: AA1=XX ;INITIAL C(AC) 15687 042632 200 14 0 00 044101 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15688 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15689 042633 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15690 777777 777777 AEE=-1 ;INITIAL C(E) 15691 042634 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15692 042635 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15693 000000 AR1=V1 ;EXPECTED RESULT IN AC 15694 042636 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15695 042637 003 14 0 00 037141 ER3 AC,37141 ;HIGH PRODUCT FAILED 15696 004000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 15697 042640 312 15 0 00 044225 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15698 042641 004 15 0 00 037142 ER4 AC+1,37142 ;LOW PRODUCT FAILED 15699 777777 777777 AEE=-1 ;INITIAL C(E) 15700 042642 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15701 042643 005 12 0 00 037143 ER5 E,37143 ;C(E) WAS CLOBBERED 15702 042644 321 16 0 00 042632 JUMPL AC+2,F37140 ;LOOP ON ERROR SWITCH^ 15703 15704 003715 ADR=ADR+1 15705 767777 777777 XX=XX+XX+1 15706 IFE , 15707 15708 ;MULTIPLY -1 BY A RIPPLED 0 15709 010000 000001 MX=-XX 15710 000000 IFL XX, 15711 IFG XX, 15712 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15713 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-18 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0310 15714 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15715 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15716 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15717 15718 767777 777777 F37150: AA1=XX ;INITIAL C(AC) 15719 042645 200 14 0 00 044102 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15720 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15721 042646 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15722 777777 777777 AEE=-1 ;INITIAL C(E) 15723 042647 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15724 042650 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15725 000000 AR1=V1 ;EXPECTED RESULT IN AC 15726 042651 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15727 042652 003 14 0 00 037151 ER3 AC,37151 ;HIGH PRODUCT FAILED 15728 010000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 15729 042653 312 15 0 00 044226 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15730 042654 004 15 0 00 037152 ER4 AC+1,37152 ;LOW PRODUCT FAILED 15731 777777 777777 AEE=-1 ;INITIAL C(E) 15732 042655 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15733 042656 005 12 0 00 037153 ER5 E,37153 ;C(E) WAS CLOBBERED 15734 042657 321 16 0 00 042645 JUMPL AC+2,F37150 ;LOOP ON ERROR SWITCH^ 15735 15736 003716 ADR=ADR+1 15737 757777 777777 XX=XX+XX+1 15738 IFE , 15739 15740 ;MULTIPLY -1 BY A RIPPLED 0 15741 020000 000001 MX=-XX 15742 000000 IFL XX, 15743 IFG XX, 15744 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15745 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15746 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15747 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15748 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15749 15750 757777 777777 F37160: AA1=XX ;INITIAL C(AC) 15751 042660 200 14 0 00 044103 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15752 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15753 042661 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15754 777777 777777 AEE=-1 ;INITIAL C(E) 15755 042662 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15756 042663 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15757 000000 AR1=V1 ;EXPECTED RESULT IN AC 15758 042664 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15759 042665 003 14 0 00 037161 ER3 AC,37161 ;HIGH PRODUCT FAILED 15760 020000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 15761 042666 312 15 0 00 044227 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15762 042667 004 15 0 00 037162 ER4 AC+1,37162 ;LOW PRODUCT FAILED 15763 777777 777777 AEE=-1 ;INITIAL C(E) 15764 042670 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15765 042671 005 12 0 00 037163 ER5 E,37163 ;C(E) WAS CLOBBERED 15766 042672 321 16 0 00 042660 JUMPL AC+2,F37160 ;LOOP ON ERROR SWITCH^ 15767 15768 003717 ADR=ADR+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-19 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0311 15769 737777 777777 XX=XX+XX+1 15770 IFE , 15771 15772 ;MULTIPLY -1 BY A RIPPLED 0 15773 040000 000001 MX=-XX 15774 000000 IFL XX, 15775 IFG XX, 15776 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15777 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15778 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15779 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15780 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15781 15782 737777 777777 F37170: AA1=XX ;INITIAL C(AC) 15783 042673 200 14 0 00 044104 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15784 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15785 042674 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15786 777777 777777 AEE=-1 ;INITIAL C(E) 15787 042675 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15788 042676 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15789 000000 AR1=V1 ;EXPECTED RESULT IN AC 15790 042677 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15791 042700 003 14 0 00 037171 ER3 AC,37171 ;HIGH PRODUCT FAILED 15792 040000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 15793 042701 312 15 0 00 044230 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15794 042702 004 15 0 00 037172 ER4 AC+1,37172 ;LOW PRODUCT FAILED 15795 777777 777777 AEE=-1 ;INITIAL C(E) 15796 042703 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15797 042704 005 12 0 00 037173 ER5 E,37173 ;C(E) WAS CLOBBERED 15798 042705 321 16 0 00 042673 JUMPL AC+2,F37170 ;LOOP ON ERROR SWITCH^ 15799 15800 003720 ADR=ADR+1 15801 677777 777777 XX=XX+XX+1 15802 IFE , 15803 15804 ;MULTIPLY -1 BY A RIPPLED 0 15805 100000 000001 MX=-XX 15806 000000 IFL XX, 15807 IFG XX, 15808 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15809 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15810 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15811 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15812 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15813 15814 677777 777777 F37200: AA1=XX ;INITIAL C(AC) 15815 042706 200 14 0 00 044105 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15816 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15817 042707 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15818 777777 777777 AEE=-1 ;INITIAL C(E) 15819 042710 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15820 042711 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15821 000000 AR1=V1 ;EXPECTED RESULT IN AC 15822 042712 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15823 042713 003 14 0 00 037201 ER3 AC,37201 ;HIGH PRODUCT FAILED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-20 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0312 15824 100000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 15825 042714 312 15 0 00 044231 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15826 042715 004 15 0 00 037202 ER4 AC+1,37202 ;LOW PRODUCT FAILED 15827 777777 777777 AEE=-1 ;INITIAL C(E) 15828 042716 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15829 042717 005 12 0 00 037203 ER5 E,37203 ;C(E) WAS CLOBBERED 15830 042720 321 16 0 00 042706 JUMPL AC+2,F37200 ;LOOP ON ERROR SWITCH^ 15831 15832 003721 ADR=ADR+1 15833 577777 777777 XX=XX+XX+1 15834 IFE , 15835 15836 ;MULTIPLY -1 BY A RIPPLED 0 15837 200000 000001 MX=-XX 15838 000000 IFL XX, 15839 IFG XX, 15840 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15841 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15842 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15843 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15844 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15845 15846 577777 777777 F37210: AA1=XX ;INITIAL C(AC) 15847 042721 200 14 0 00 044106 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15848 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15849 042722 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15850 777777 777777 AEE=-1 ;INITIAL C(E) 15851 042723 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15852 042724 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15853 000000 AR1=V1 ;EXPECTED RESULT IN AC 15854 042725 312 14 0 00 043776 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15855 042726 003 14 0 00 037211 ER3 AC,37211 ;HIGH PRODUCT FAILED 15856 200000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 15857 042727 312 15 0 00 044232 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15858 042730 004 15 0 00 037212 ER4 AC+1,37212 ;LOW PRODUCT FAILED 15859 777777 777777 AEE=-1 ;INITIAL C(E) 15860 042731 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15861 042732 005 12 0 00 037213 ER5 E,37213 ;C(E) WAS CLOBBERED 15862 042733 321 16 0 00 042721 JUMPL AC+2,F37210 ;LOOP ON ERROR SWITCH^ 15863 15864 003722 ADR=ADR+1 15865 377777 777777 XX=XX+XX+1 15866 IFE , 15867 15868 ;MULTIPLY -1 BY A RIPPLED 0 15869 400000 000001 MX=-XX 15870 IFL XX, 15871 777777 777777 IFG XX, 15872 MOP1 (\ADR,XX,-1,-1,V1,MX)^ 15873 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[-1] AND 15874 ;[-1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15875 ;AND E AGAINST [V1], [MX] AND [-1] RESPECTIVELY. 15876 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15877 15878 377777 777777 F37220: AA1=XX ;INITIAL C(AC) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 19-21 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0313 15879 042734 200 14 0 00 044107 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15880 777777 777777 AA2=-1 ;INITIAL C(AC+1) 15881 042735 200 15 0 00 043777 MOVE AC+1,[-1] ;PRELOAD AC+1 15882 777777 777777 AEE=-1 ;INITIAL C(E) 15883 042736 200 12 0 00 043777 MOVE E,[-1] ;PRELOAD E (MULTIPLICAND) 15884 042737 224 14 0 00 000012 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15885 777777 777777 AR1=V1 ;EXPECTED RESULT IN AC 15886 042740 312 14 0 00 043777 CAME AC,[V1] ;IS HIGH PRODUCT CORRECT? 15887 042741 003 14 0 00 037221 ER3 AC,37221 ;HIGH PRODUCT FAILED 15888 400000 000001 AR2=MX ;EXPECTED RESULT IN AC+1 15889 042742 312 15 0 00 044233 CAME AC+1,[MX] ;IS LOW PRODUCT CORRECT? 15890 042743 004 15 0 00 037222 ER4 AC+1,37222 ;LOW PRODUCT FAILED 15891 777777 777777 AEE=-1 ;INITIAL C(E) 15892 042744 312 12 0 00 043777 CAME E,[-1] ;WAS C(E) CLOBBERED? 15893 042745 005 12 0 00 037223 ER5 E,37223 ;C(E) WAS CLOBBERED 15894 042746 321 16 0 00 042734 JUMPL AC+2,F37220 ;LOOP ON ERROR SWITCH^ DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0314 15895 525252 525252 N1=525252525252 15896 252525 252525 N2=252525252525 15897 000013 AC=13 15898 000011 E=&17 15899 SAVEAC (1,1)^ 15900 042747 201 15 0 00 042747 MOVEI AC+2,. ;SAVE TEST PC 15901 042750 202 15 0 00 030051 MOVEM AC+2,TESTPC 15902 042751 201 15 0 00 000015 MOVEI AC+2,&17 ;INFORM ERROR ROUTINE WHICH 15903 042752 202 15 0 00 044446 MOVEM AC+2,ERRLOP# ;AC IS USED FOR ITERATION^ 15904 000044 WW=^D36 15905 000000 XX=0 15906 000000 ZZ=0 15907 15908 REPEAT ^D35, < ;LAST CASE DIFFERENT 15909 15910 ADR=ADR+1 15911 WW=WW-1 15912 XX=XX+XX 15913 ZZ=ZZ+1 15914 IFE XX, 15915 IFE XX, 15916 15917 ;MULTIPLY 1010...1010 BY A FLOATING 1 15918 V1=N1 15919 V2=!1B0 15920 IFE WW, 15921 IFL XX, 15922 IFG XX,>!>>> 15923 MOP1 (\ADR,XX,0,V1,V3,V2)> 15924 ;LAST CASE DIFFERENT 15925 15926 003723 ADR=ADR+1 15927 000043 WW=WW-1 15928 000000 XX=XX+XX 15929 000001 ZZ=ZZ+1 15930 000000 IFE XX, 15931 000001 IFE XX, 15932 15933 ;MULTIPLY 1010...1010 BY A FLOATING 1 15934 525252 525252 V1=N1 15935 525252 525252 V2=!1B0 15936 IFE WW, 15937 IFL XX, 15938 777777 777777 IFG XX,>!>>> 15939 MOP1 (\ADR,XX,0,V1,V3,V2)^ 15940 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 15941 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15942 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 15943 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15944 15945 000001 F37230: AA1=XX ;INITIAL C(AC) 15946 042753 200 13 0 00 044000 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15947 000000 AA2=0 ;INITIAL C(AC+1) 15948 042754 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 15949 525252 525252 AEE=V1 ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-1 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0315 15950 042755 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 15951 042756 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15952 777777 777777 AR1=V3 ;EXPECTED RESULT IN AC 15953 042757 312 13 0 00 043777 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 15954 042760 003 13 0 00 037231 ER3 AC,37231 ;HIGH PRODUCT FAILED 15955 525252 525252 AR2=V2 ;EXPECTED RESULT IN AC+1 15956 042761 312 14 0 00 044234 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 15957 042762 004 14 0 00 037232 ER4 AC+1,37232 ;LOW PRODUCT FAILED 15958 525252 525252 AEE=V1 ;INITIAL C(E) 15959 042763 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 15960 042764 005 11 0 00 037233 ER5 E,37233 ;C(E) WAS CLOBBERED 15961 042765 321 15 0 00 042753 JUMPL AC+2,F37230 ;LOOP ON ERROR SWITCH^ 15962 ;LAST CASE DIFFERENT 15963 15964 003724 ADR=ADR+1 15965 000042 WW=WW-1 15966 000002 XX=XX+XX 15967 000001 ZZ=ZZ+1 15968 IFE XX, 15969 IFE XX, 15970 15971 ;MULTIPLY 1010...1010 BY A FLOATING 1 15972 525252 525252 V1=N1 15973 652525 252524 V2=!1B0 15974 IFE WW, 15975 IFL XX, 15976 777777 777776 IFG XX,>!>>> 15977 MOP1 (\ADR,XX,0,V1,V3,V2)^ 15978 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 15979 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 15980 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 15981 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 15982 15983 000002 F37240: AA1=XX ;INITIAL C(AC) 15984 042766 200 13 0 00 044001 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 15985 000000 AA2=0 ;INITIAL C(AC+1) 15986 042767 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 15987 525252 525252 AEE=V1 ;INITIAL C(E) 15988 042770 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 15989 042771 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 15990 777777 777776 AR1=V3 ;EXPECTED RESULT IN AC 15991 042772 312 13 0 00 044044 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 15992 042773 003 13 0 00 037241 ER3 AC,37241 ;HIGH PRODUCT FAILED 15993 652525 252524 AR2=V2 ;EXPECTED RESULT IN AC+1 15994 042774 312 14 0 00 044235 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 15995 042775 004 14 0 00 037242 ER4 AC+1,37242 ;LOW PRODUCT FAILED 15996 525252 525252 AEE=V1 ;INITIAL C(E) 15997 042776 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 15998 042777 005 11 0 00 037243 ER5 E,37243 ;C(E) WAS CLOBBERED 15999 043000 321 15 0 00 042766 JUMPL AC+2,F37240 ;LOOP ON ERROR SWITCH^ 16000 ;LAST CASE DIFFERENT 16001 16002 003725 ADR=ADR+1 16003 000041 WW=WW-1 16004 000004 XX=XX+XX DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-2 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0316 16005 000002 ZZ=ZZ+1 16006 IFE XX, 16007 IFE XX, 16008 16009 ;MULTIPLY 1010...1010 BY A FLOATING 1 16010 525252 525252 V1=N1 16011 525252 525250 V2=!1B0 16012 IFE WW, 16013 IFL XX, 16014 777777 777775 IFG XX,>!>>> 16015 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16016 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16017 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16018 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16019 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16020 16021 000004 F37250: AA1=XX ;INITIAL C(AC) 16022 043001 200 13 0 00 044002 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16023 000000 AA2=0 ;INITIAL C(AC+1) 16024 043002 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16025 525252 525252 AEE=V1 ;INITIAL C(E) 16026 043003 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16027 043004 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16028 777777 777775 AR1=V3 ;EXPECTED RESULT IN AC 16029 043005 312 13 0 00 044045 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16030 043006 003 13 0 00 037251 ER3 AC,37251 ;HIGH PRODUCT FAILED 16031 525252 525250 AR2=V2 ;EXPECTED RESULT IN AC+1 16032 043007 312 14 0 00 044236 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16033 043010 004 14 0 00 037252 ER4 AC+1,37252 ;LOW PRODUCT FAILED 16034 525252 525252 AEE=V1 ;INITIAL C(E) 16035 043011 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16036 043012 005 11 0 00 037253 ER5 E,37253 ;C(E) WAS CLOBBERED 16037 043013 321 15 0 00 043001 JUMPL AC+2,F37250 ;LOOP ON ERROR SWITCH^ 16038 ;LAST CASE DIFFERENT 16039 16040 003726 ADR=ADR+1 16041 000040 WW=WW-1 16042 000010 XX=XX+XX 16043 000003 ZZ=ZZ+1 16044 IFE XX, 16045 IFE XX, 16046 16047 ;MULTIPLY 1010...1010 BY A FLOATING 1 16048 525252 525252 V1=N1 16049 652525 252520 V2=!1B0 16050 IFE WW, 16051 IFL XX, 16052 777777 777772 IFG XX,>!>>> 16053 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16054 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16055 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16056 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16057 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16058 16059 000010 F37260: AA1=XX ;INITIAL C(AC) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-3 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0317 16060 043014 200 13 0 00 044003 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16061 000000 AA2=0 ;INITIAL C(AC+1) 16062 043015 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16063 525252 525252 AEE=V1 ;INITIAL C(E) 16064 043016 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16065 043017 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16066 777777 777772 AR1=V3 ;EXPECTED RESULT IN AC 16067 043020 312 13 0 00 044124 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16068 043021 003 13 0 00 037261 ER3 AC,37261 ;HIGH PRODUCT FAILED 16069 652525 252520 AR2=V2 ;EXPECTED RESULT IN AC+1 16070 043022 312 14 0 00 044237 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16071 043023 004 14 0 00 037262 ER4 AC+1,37262 ;LOW PRODUCT FAILED 16072 525252 525252 AEE=V1 ;INITIAL C(E) 16073 043024 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16074 043025 005 11 0 00 037263 ER5 E,37263 ;C(E) WAS CLOBBERED 16075 043026 321 15 0 00 043014 JUMPL AC+2,F37260 ;LOOP ON ERROR SWITCH^ 16076 ;LAST CASE DIFFERENT 16077 16078 003727 ADR=ADR+1 16079 000037 WW=WW-1 16080 000020 XX=XX+XX 16081 000004 ZZ=ZZ+1 16082 IFE XX, 16083 IFE XX, 16084 16085 ;MULTIPLY 1010...1010 BY A FLOATING 1 16086 525252 525252 V1=N1 16087 525252 525240 V2=!1B0 16088 IFE WW, 16089 IFL XX, 16090 777777 777765 IFG XX,>!>>> 16091 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16092 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16093 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16094 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16095 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16096 16097 000020 F37270: AA1=XX ;INITIAL C(AC) 16098 043027 200 13 0 00 044004 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16099 000000 AA2=0 ;INITIAL C(AC+1) 16100 043030 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16101 525252 525252 AEE=V1 ;INITIAL C(E) 16102 043031 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16103 043032 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16104 777777 777765 AR1=V3 ;EXPECTED RESULT IN AC 16105 043033 312 13 0 00 044130 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16106 043034 003 13 0 00 037271 ER3 AC,37271 ;HIGH PRODUCT FAILED 16107 525252 525240 AR2=V2 ;EXPECTED RESULT IN AC+1 16108 043035 312 14 0 00 044240 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16109 043036 004 14 0 00 037272 ER4 AC+1,37272 ;LOW PRODUCT FAILED 16110 525252 525252 AEE=V1 ;INITIAL C(E) 16111 043037 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16112 043040 005 11 0 00 037273 ER5 E,37273 ;C(E) WAS CLOBBERED 16113 043041 321 15 0 00 043027 JUMPL AC+2,F37270 ;LOOP ON ERROR SWITCH^ 16114 ;LAST CASE DIFFERENT DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-4 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0318 16115 16116 003730 ADR=ADR+1 16117 000036 WW=WW-1 16118 000040 XX=XX+XX 16119 000005 ZZ=ZZ+1 16120 IFE XX, 16121 IFE XX, 16122 16123 ;MULTIPLY 1010...1010 BY A FLOATING 1 16124 525252 525252 V1=N1 16125 652525 252500 V2=!1B0 16126 IFE WW, 16127 IFL XX, 16128 777777 777752 IFG XX,>!>>> 16129 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16130 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16131 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16132 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16133 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16134 16135 000040 F37300: AA1=XX ;INITIAL C(AC) 16136 043042 200 13 0 00 044005 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16137 000000 AA2=0 ;INITIAL C(AC+1) 16138 043043 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16139 525252 525252 AEE=V1 ;INITIAL C(E) 16140 043044 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16141 043045 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16142 777777 777752 AR1=V3 ;EXPECTED RESULT IN AC 16143 043046 312 13 0 00 044241 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16144 043047 003 13 0 00 037301 ER3 AC,37301 ;HIGH PRODUCT FAILED 16145 652525 252500 AR2=V2 ;EXPECTED RESULT IN AC+1 16146 043050 312 14 0 00 044242 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16147 043051 004 14 0 00 037302 ER4 AC+1,37302 ;LOW PRODUCT FAILED 16148 525252 525252 AEE=V1 ;INITIAL C(E) 16149 043052 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16150 043053 005 11 0 00 037303 ER5 E,37303 ;C(E) WAS CLOBBERED 16151 043054 321 15 0 00 043042 JUMPL AC+2,F37300 ;LOOP ON ERROR SWITCH^ 16152 ;LAST CASE DIFFERENT 16153 16154 003731 ADR=ADR+1 16155 000035 WW=WW-1 16156 000100 XX=XX+XX 16157 000006 ZZ=ZZ+1 16158 IFE XX, 16159 IFE XX, 16160 16161 ;MULTIPLY 1010...1010 BY A FLOATING 1 16162 525252 525252 V1=N1 16163 525252 525200 V2=!1B0 16164 IFE WW, 16165 IFL XX, 16166 777777 777725 IFG XX,>!>>> 16167 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16168 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16169 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-5 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0319 16170 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16171 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16172 16173 000100 F37310: AA1=XX ;INITIAL C(AC) 16174 043055 200 13 0 00 044006 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16175 000000 AA2=0 ;INITIAL C(AC+1) 16176 043056 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16177 525252 525252 AEE=V1 ;INITIAL C(E) 16178 043057 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16179 043060 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16180 777777 777725 AR1=V3 ;EXPECTED RESULT IN AC 16181 043061 312 13 0 00 044243 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16182 043062 003 13 0 00 037311 ER3 AC,37311 ;HIGH PRODUCT FAILED 16183 525252 525200 AR2=V2 ;EXPECTED RESULT IN AC+1 16184 043063 312 14 0 00 044244 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16185 043064 004 14 0 00 037312 ER4 AC+1,37312 ;LOW PRODUCT FAILED 16186 525252 525252 AEE=V1 ;INITIAL C(E) 16187 043065 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16188 043066 005 11 0 00 037313 ER5 E,37313 ;C(E) WAS CLOBBERED 16189 043067 321 15 0 00 043055 JUMPL AC+2,F37310 ;LOOP ON ERROR SWITCH^ 16190 ;LAST CASE DIFFERENT 16191 16192 003732 ADR=ADR+1 16193 000034 WW=WW-1 16194 000200 XX=XX+XX 16195 000007 ZZ=ZZ+1 16196 IFE XX, 16197 IFE XX, 16198 16199 ;MULTIPLY 1010...1010 BY A FLOATING 1 16200 525252 525252 V1=N1 16201 652525 252400 V2=!1B0 16202 IFE WW, 16203 IFL XX, 16204 777777 777652 IFG XX,>!>>> 16205 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16206 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16207 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16208 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16209 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16210 16211 000200 F37320: AA1=XX ;INITIAL C(AC) 16212 043070 200 13 0 00 044007 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16213 000000 AA2=0 ;INITIAL C(AC+1) 16214 043071 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16215 525252 525252 AEE=V1 ;INITIAL C(E) 16216 043072 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16217 043073 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16218 777777 777652 AR1=V3 ;EXPECTED RESULT IN AC 16219 043074 312 13 0 00 044245 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16220 043075 003 13 0 00 037321 ER3 AC,37321 ;HIGH PRODUCT FAILED 16221 652525 252400 AR2=V2 ;EXPECTED RESULT IN AC+1 16222 043076 312 14 0 00 044246 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16223 043077 004 14 0 00 037322 ER4 AC+1,37322 ;LOW PRODUCT FAILED 16224 525252 525252 AEE=V1 ;INITIAL C(E) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-6 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0320 16225 043100 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16226 043101 005 11 0 00 037323 ER5 E,37323 ;C(E) WAS CLOBBERED 16227 043102 321 15 0 00 043070 JUMPL AC+2,F37320 ;LOOP ON ERROR SWITCH^ 16228 ;LAST CASE DIFFERENT 16229 16230 003733 ADR=ADR+1 16231 000033 WW=WW-1 16232 000400 XX=XX+XX 16233 000010 ZZ=ZZ+1 16234 IFE XX, 16235 IFE XX, 16236 16237 ;MULTIPLY 1010...1010 BY A FLOATING 1 16238 525252 525252 V1=N1 16239 525252 525000 V2=!1B0 16240 IFE WW, 16241 IFL XX, 16242 777777 777525 IFG XX,>!>>> 16243 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16244 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16245 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16246 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16247 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16248 16249 000400 F37330: AA1=XX ;INITIAL C(AC) 16250 043103 200 13 0 00 044010 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16251 000000 AA2=0 ;INITIAL C(AC+1) 16252 043104 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16253 525252 525252 AEE=V1 ;INITIAL C(E) 16254 043105 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16255 043106 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16256 777777 777525 AR1=V3 ;EXPECTED RESULT IN AC 16257 043107 312 13 0 00 044247 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16258 043110 003 13 0 00 037331 ER3 AC,37331 ;HIGH PRODUCT FAILED 16259 525252 525000 AR2=V2 ;EXPECTED RESULT IN AC+1 16260 043111 312 14 0 00 044250 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16261 043112 004 14 0 00 037332 ER4 AC+1,37332 ;LOW PRODUCT FAILED 16262 525252 525252 AEE=V1 ;INITIAL C(E) 16263 043113 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16264 043114 005 11 0 00 037333 ER5 E,37333 ;C(E) WAS CLOBBERED 16265 043115 321 15 0 00 043103 JUMPL AC+2,F37330 ;LOOP ON ERROR SWITCH^ 16266 ;LAST CASE DIFFERENT 16267 16268 003734 ADR=ADR+1 16269 000032 WW=WW-1 16270 001000 XX=XX+XX 16271 000011 ZZ=ZZ+1 16272 IFE XX, 16273 IFE XX, 16274 16275 ;MULTIPLY 1010...1010 BY A FLOATING 1 16276 525252 525252 V1=N1 16277 652525 252000 V2=!1B0 16278 IFE WW, 16279 IFL XX, DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-7 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0321 16280 777777 777252 IFG XX,>!>>> 16281 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16282 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16283 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16284 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16285 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16286 16287 001000 F37340: AA1=XX ;INITIAL C(AC) 16288 043116 200 13 0 00 044011 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16289 000000 AA2=0 ;INITIAL C(AC+1) 16290 043117 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16291 525252 525252 AEE=V1 ;INITIAL C(E) 16292 043120 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16293 043121 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16294 777777 777252 AR1=V3 ;EXPECTED RESULT IN AC 16295 043122 312 13 0 00 044251 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16296 043123 003 13 0 00 037341 ER3 AC,37341 ;HIGH PRODUCT FAILED 16297 652525 252000 AR2=V2 ;EXPECTED RESULT IN AC+1 16298 043124 312 14 0 00 044252 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16299 043125 004 14 0 00 037342 ER4 AC+1,37342 ;LOW PRODUCT FAILED 16300 525252 525252 AEE=V1 ;INITIAL C(E) 16301 043126 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16302 043127 005 11 0 00 037343 ER5 E,37343 ;C(E) WAS CLOBBERED 16303 043130 321 15 0 00 043116 JUMPL AC+2,F37340 ;LOOP ON ERROR SWITCH^ 16304 ;LAST CASE DIFFERENT 16305 16306 003735 ADR=ADR+1 16307 000031 WW=WW-1 16308 002000 XX=XX+XX 16309 000012 ZZ=ZZ+1 16310 IFE XX, 16311 IFE XX, 16312 16313 ;MULTIPLY 1010...1010 BY A FLOATING 1 16314 525252 525252 V1=N1 16315 525252 524000 V2=!1B0 16316 IFE WW, 16317 IFL XX, 16318 777777 776525 IFG XX,>!>>> 16319 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16320 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16321 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16322 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16323 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16324 16325 002000 F37350: AA1=XX ;INITIAL C(AC) 16326 043131 200 13 0 00 044012 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16327 000000 AA2=0 ;INITIAL C(AC+1) 16328 043132 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16329 525252 525252 AEE=V1 ;INITIAL C(E) 16330 043133 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16331 043134 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16332 777777 776525 AR1=V3 ;EXPECTED RESULT IN AC 16333 043135 312 13 0 00 044253 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16334 043136 003 13 0 00 037351 ER3 AC,37351 ;HIGH PRODUCT FAILED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-8 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0322 16335 525252 524000 AR2=V2 ;EXPECTED RESULT IN AC+1 16336 043137 312 14 0 00 044254 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16337 043140 004 14 0 00 037352 ER4 AC+1,37352 ;LOW PRODUCT FAILED 16338 525252 525252 AEE=V1 ;INITIAL C(E) 16339 043141 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16340 043142 005 11 0 00 037353 ER5 E,37353 ;C(E) WAS CLOBBERED 16341 043143 321 15 0 00 043131 JUMPL AC+2,F37350 ;LOOP ON ERROR SWITCH^ 16342 ;LAST CASE DIFFERENT 16343 16344 003736 ADR=ADR+1 16345 000030 WW=WW-1 16346 004000 XX=XX+XX 16347 000013 ZZ=ZZ+1 16348 IFE XX, 16349 IFE XX, 16350 16351 ;MULTIPLY 1010...1010 BY A FLOATING 1 16352 525252 525252 V1=N1 16353 652525 250000 V2=!1B0 16354 IFE WW, 16355 IFL XX, 16356 777777 775252 IFG XX,>!>>> 16357 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16358 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16359 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16360 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16361 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16362 16363 004000 F37360: AA1=XX ;INITIAL C(AC) 16364 043144 200 13 0 00 044013 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16365 000000 AA2=0 ;INITIAL C(AC+1) 16366 043145 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16367 525252 525252 AEE=V1 ;INITIAL C(E) 16368 043146 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16369 043147 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16370 777777 775252 AR1=V3 ;EXPECTED RESULT IN AC 16371 043150 312 13 0 00 044255 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16372 043151 003 13 0 00 037361 ER3 AC,37361 ;HIGH PRODUCT FAILED 16373 652525 250000 AR2=V2 ;EXPECTED RESULT IN AC+1 16374 043152 312 14 0 00 044256 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16375 043153 004 14 0 00 037362 ER4 AC+1,37362 ;LOW PRODUCT FAILED 16376 525252 525252 AEE=V1 ;INITIAL C(E) 16377 043154 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16378 043155 005 11 0 00 037363 ER5 E,37363 ;C(E) WAS CLOBBERED 16379 043156 321 15 0 00 043144 JUMPL AC+2,F37360 ;LOOP ON ERROR SWITCH^ 16380 ;LAST CASE DIFFERENT 16381 16382 003737 ADR=ADR+1 16383 000027 WW=WW-1 16384 010000 XX=XX+XX 16385 000014 ZZ=ZZ+1 16386 IFE XX, 16387 IFE XX, 16388 16389 ;MULTIPLY 1010...1010 BY A FLOATING 1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-9 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0323 16390 525252 525252 V1=N1 16391 525252 520000 V2=!1B0 16392 IFE WW, 16393 IFL XX, 16394 777777 772525 IFG XX,>!>>> 16395 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16396 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16397 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16398 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16399 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16400 16401 010000 F37370: AA1=XX ;INITIAL C(AC) 16402 043157 200 13 0 00 044014 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16403 000000 AA2=0 ;INITIAL C(AC+1) 16404 043160 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16405 525252 525252 AEE=V1 ;INITIAL C(E) 16406 043161 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16407 043162 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16408 777777 772525 AR1=V3 ;EXPECTED RESULT IN AC 16409 043163 312 13 0 00 044257 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16410 043164 003 13 0 00 037371 ER3 AC,37371 ;HIGH PRODUCT FAILED 16411 525252 520000 AR2=V2 ;EXPECTED RESULT IN AC+1 16412 043165 312 14 0 00 044260 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16413 043166 004 14 0 00 037372 ER4 AC+1,37372 ;LOW PRODUCT FAILED 16414 525252 525252 AEE=V1 ;INITIAL C(E) 16415 043167 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16416 043170 005 11 0 00 037373 ER5 E,37373 ;C(E) WAS CLOBBERED 16417 043171 321 15 0 00 043157 JUMPL AC+2,F37370 ;LOOP ON ERROR SWITCH^ 16418 ;LAST CASE DIFFERENT 16419 16420 003740 ADR=ADR+1 16421 000026 WW=WW-1 16422 020000 XX=XX+XX 16423 000015 ZZ=ZZ+1 16424 IFE XX, 16425 IFE XX, 16426 16427 ;MULTIPLY 1010...1010 BY A FLOATING 1 16428 525252 525252 V1=N1 16429 652525 240000 V2=!1B0 16430 IFE WW, 16431 IFL XX, 16432 777777 765252 IFG XX,>!>>> 16433 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16434 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16435 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16436 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16437 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16438 16439 020000 F37400: AA1=XX ;INITIAL C(AC) 16440 043172 200 13 0 00 044015 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16441 000000 AA2=0 ;INITIAL C(AC+1) 16442 043173 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16443 525252 525252 AEE=V1 ;INITIAL C(E) 16444 043174 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-10 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0324 16445 043175 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16446 777777 765252 AR1=V3 ;EXPECTED RESULT IN AC 16447 043176 312 13 0 00 044261 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16448 043177 003 13 0 00 037401 ER3 AC,37401 ;HIGH PRODUCT FAILED 16449 652525 240000 AR2=V2 ;EXPECTED RESULT IN AC+1 16450 043200 312 14 0 00 044262 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16451 043201 004 14 0 00 037402 ER4 AC+1,37402 ;LOW PRODUCT FAILED 16452 525252 525252 AEE=V1 ;INITIAL C(E) 16453 043202 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16454 043203 005 11 0 00 037403 ER5 E,37403 ;C(E) WAS CLOBBERED 16455 043204 321 15 0 00 043172 JUMPL AC+2,F37400 ;LOOP ON ERROR SWITCH^ 16456 ;LAST CASE DIFFERENT 16457 16458 003741 ADR=ADR+1 16459 000025 WW=WW-1 16460 040000 XX=XX+XX 16461 000016 ZZ=ZZ+1 16462 IFE XX, 16463 IFE XX, 16464 16465 ;MULTIPLY 1010...1010 BY A FLOATING 1 16466 525252 525252 V1=N1 16467 525252 500000 V2=!1B0 16468 IFE WW, 16469 IFL XX, 16470 777777 752525 IFG XX,>!>>> 16471 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16472 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16473 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16474 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16475 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16476 16477 040000 F37410: AA1=XX ;INITIAL C(AC) 16478 043205 200 13 0 00 044016 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16479 000000 AA2=0 ;INITIAL C(AC+1) 16480 043206 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16481 525252 525252 AEE=V1 ;INITIAL C(E) 16482 043207 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16483 043210 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16484 777777 752525 AR1=V3 ;EXPECTED RESULT IN AC 16485 043211 312 13 0 00 044263 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16486 043212 003 13 0 00 037411 ER3 AC,37411 ;HIGH PRODUCT FAILED 16487 525252 500000 AR2=V2 ;EXPECTED RESULT IN AC+1 16488 043213 312 14 0 00 044264 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16489 043214 004 14 0 00 037412 ER4 AC+1,37412 ;LOW PRODUCT FAILED 16490 525252 525252 AEE=V1 ;INITIAL C(E) 16491 043215 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16492 043216 005 11 0 00 037413 ER5 E,37413 ;C(E) WAS CLOBBERED 16493 043217 321 15 0 00 043205 JUMPL AC+2,F37410 ;LOOP ON ERROR SWITCH^ 16494 ;LAST CASE DIFFERENT 16495 16496 003742 ADR=ADR+1 16497 000024 WW=WW-1 16498 100000 XX=XX+XX 16499 000017 ZZ=ZZ+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-11 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0325 16500 IFE XX, 16501 IFE XX, 16502 16503 ;MULTIPLY 1010...1010 BY A FLOATING 1 16504 525252 525252 V1=N1 16505 652525 200000 V2=!1B0 16506 IFE WW, 16507 IFL XX, 16508 777777 725252 IFG XX,>!>>> 16509 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16510 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16511 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16512 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16513 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16514 16515 100000 F37420: AA1=XX ;INITIAL C(AC) 16516 043220 200 13 0 00 044017 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16517 000000 AA2=0 ;INITIAL C(AC+1) 16518 043221 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16519 525252 525252 AEE=V1 ;INITIAL C(E) 16520 043222 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16521 043223 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16522 777777 725252 AR1=V3 ;EXPECTED RESULT IN AC 16523 043224 312 13 0 00 044265 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16524 043225 003 13 0 00 037421 ER3 AC,37421 ;HIGH PRODUCT FAILED 16525 652525 200000 AR2=V2 ;EXPECTED RESULT IN AC+1 16526 043226 312 14 0 00 044266 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16527 043227 004 14 0 00 037422 ER4 AC+1,37422 ;LOW PRODUCT FAILED 16528 525252 525252 AEE=V1 ;INITIAL C(E) 16529 043230 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16530 043231 005 11 0 00 037423 ER5 E,37423 ;C(E) WAS CLOBBERED 16531 043232 321 15 0 00 043220 JUMPL AC+2,F37420 ;LOOP ON ERROR SWITCH^ 16532 ;LAST CASE DIFFERENT 16533 16534 003743 ADR=ADR+1 16535 000023 WW=WW-1 16536 200000 XX=XX+XX 16537 000020 ZZ=ZZ+1 16538 IFE XX, 16539 IFE XX, 16540 16541 ;MULTIPLY 1010...1010 BY A FLOATING 1 16542 525252 525252 V1=N1 16543 525252 400000 V2=!1B0 16544 IFE WW, 16545 IFL XX, 16546 777777 652525 IFG XX,>!>>> 16547 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16548 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16549 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16550 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16551 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16552 16553 200000 F37430: AA1=XX ;INITIAL C(AC) 16554 043233 200 13 0 00 044020 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-12 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0326 16555 000000 AA2=0 ;INITIAL C(AC+1) 16556 043234 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16557 525252 525252 AEE=V1 ;INITIAL C(E) 16558 043235 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16559 043236 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16560 777777 652525 AR1=V3 ;EXPECTED RESULT IN AC 16561 043237 312 13 0 00 044267 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16562 043240 003 13 0 00 037431 ER3 AC,37431 ;HIGH PRODUCT FAILED 16563 525252 400000 AR2=V2 ;EXPECTED RESULT IN AC+1 16564 043241 312 14 0 00 044270 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16565 043242 004 14 0 00 037432 ER4 AC+1,37432 ;LOW PRODUCT FAILED 16566 525252 525252 AEE=V1 ;INITIAL C(E) 16567 043243 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16568 043244 005 11 0 00 037433 ER5 E,37433 ;C(E) WAS CLOBBERED 16569 043245 321 15 0 00 043233 JUMPL AC+2,F37430 ;LOOP ON ERROR SWITCH^ 16570 ;LAST CASE DIFFERENT 16571 16572 003744 ADR=ADR+1 16573 000022 WW=WW-1 16574 400000 XX=XX+XX 16575 000021 ZZ=ZZ+1 16576 IFE XX, 16577 IFE XX, 16578 16579 ;MULTIPLY 1010...1010 BY A FLOATING 1 16580 525252 525252 V1=N1 16581 652525 000000 V2=!1B0 16582 IFE WW, 16583 IFL XX, 16584 777777 525252 IFG XX,>!>>> 16585 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16586 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16587 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16588 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16589 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16590 16591 400000 F37440: AA1=XX ;INITIAL C(AC) 16592 043246 200 13 0 00 044021 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16593 000000 AA2=0 ;INITIAL C(AC+1) 16594 043247 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16595 525252 525252 AEE=V1 ;INITIAL C(E) 16596 043250 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16597 043251 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16598 777777 525252 AR1=V3 ;EXPECTED RESULT IN AC 16599 043252 312 13 0 00 044271 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16600 043253 003 13 0 00 037441 ER3 AC,37441 ;HIGH PRODUCT FAILED 16601 652525 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 16602 043254 312 14 0 00 044272 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16603 043255 004 14 0 00 037442 ER4 AC+1,37442 ;LOW PRODUCT FAILED 16604 525252 525252 AEE=V1 ;INITIAL C(E) 16605 043256 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16606 043257 005 11 0 00 037443 ER5 E,37443 ;C(E) WAS CLOBBERED 16607 043260 321 15 0 00 043246 JUMPL AC+2,F37440 ;LOOP ON ERROR SWITCH^ 16608 ;LAST CASE DIFFERENT 16609 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-13 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0327 16610 003745 ADR=ADR+1 16611 000021 WW=WW-1 16612 000001 000000 XX=XX+XX 16613 000022 ZZ=ZZ+1 16614 IFE XX, 16615 IFE XX, 16616 16617 ;MULTIPLY 1010...1010 BY A FLOATING 1 16618 525252 525252 V1=N1 16619 525252 000000 V2=!1B0 16620 IFE WW, 16621 IFL XX, 16622 777777 252525 IFG XX,>!>>> 16623 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16624 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16625 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16626 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16627 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16628 16629 000001 000000 F37450: AA1=XX ;INITIAL C(AC) 16630 043261 200 13 0 00 044022 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16631 000000 AA2=0 ;INITIAL C(AC+1) 16632 043262 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16633 525252 525252 AEE=V1 ;INITIAL C(E) 16634 043263 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16635 043264 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16636 777777 252525 AR1=V3 ;EXPECTED RESULT IN AC 16637 043265 312 13 0 00 044273 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16638 043266 003 13 0 00 037451 ER3 AC,37451 ;HIGH PRODUCT FAILED 16639 525252 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 16640 043267 312 14 0 00 044274 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16641 043270 004 14 0 00 037452 ER4 AC+1,37452 ;LOW PRODUCT FAILED 16642 525252 525252 AEE=V1 ;INITIAL C(E) 16643 043271 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16644 043272 005 11 0 00 037453 ER5 E,37453 ;C(E) WAS CLOBBERED 16645 043273 321 15 0 00 043261 JUMPL AC+2,F37450 ;LOOP ON ERROR SWITCH^ 16646 ;LAST CASE DIFFERENT 16647 16648 003746 ADR=ADR+1 16649 000020 WW=WW-1 16650 000002 000000 XX=XX+XX 16651 000023 ZZ=ZZ+1 16652 IFE XX, 16653 IFE XX, 16654 16655 ;MULTIPLY 1010...1010 BY A FLOATING 1 16656 525252 525252 V1=N1 16657 652524 000000 V2=!1B0 16658 IFE WW, 16659 IFL XX, 16660 777776 525252 IFG XX,>!>>> 16661 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16662 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16663 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16664 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-14 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0328 16665 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16666 16667 000002 000000 F37460: AA1=XX ;INITIAL C(AC) 16668 043274 200 13 0 00 044023 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16669 000000 AA2=0 ;INITIAL C(AC+1) 16670 043275 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16671 525252 525252 AEE=V1 ;INITIAL C(E) 16672 043276 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16673 043277 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16674 777776 525252 AR1=V3 ;EXPECTED RESULT IN AC 16675 043300 312 13 0 00 044275 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16676 043301 003 13 0 00 037461 ER3 AC,37461 ;HIGH PRODUCT FAILED 16677 652524 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 16678 043302 312 14 0 00 044276 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16679 043303 004 14 0 00 037462 ER4 AC+1,37462 ;LOW PRODUCT FAILED 16680 525252 525252 AEE=V1 ;INITIAL C(E) 16681 043304 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16682 043305 005 11 0 00 037463 ER5 E,37463 ;C(E) WAS CLOBBERED 16683 043306 321 15 0 00 043274 JUMPL AC+2,F37460 ;LOOP ON ERROR SWITCH^ 16684 ;LAST CASE DIFFERENT 16685 16686 003747 ADR=ADR+1 16687 000017 WW=WW-1 16688 000004 000000 XX=XX+XX 16689 000024 ZZ=ZZ+1 16690 IFE XX, 16691 IFE XX, 16692 16693 ;MULTIPLY 1010...1010 BY A FLOATING 1 16694 525252 525252 V1=N1 16695 525250 000000 V2=!1B0 16696 IFE WW, 16697 IFL XX, 16698 777775 252525 IFG XX,>!>>> 16699 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16700 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16701 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16702 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16703 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16704 16705 000004 000000 F37470: AA1=XX ;INITIAL C(AC) 16706 043307 200 13 0 00 044024 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16707 000000 AA2=0 ;INITIAL C(AC+1) 16708 043310 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16709 525252 525252 AEE=V1 ;INITIAL C(E) 16710 043311 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16711 043312 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16712 777775 252525 AR1=V3 ;EXPECTED RESULT IN AC 16713 043313 312 13 0 00 044277 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16714 043314 003 13 0 00 037471 ER3 AC,37471 ;HIGH PRODUCT FAILED 16715 525250 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 16716 043315 312 14 0 00 044300 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16717 043316 004 14 0 00 037472 ER4 AC+1,37472 ;LOW PRODUCT FAILED 16718 525252 525252 AEE=V1 ;INITIAL C(E) 16719 043317 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-15 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0329 16720 043320 005 11 0 00 037473 ER5 E,37473 ;C(E) WAS CLOBBERED 16721 043321 321 15 0 00 043307 JUMPL AC+2,F37470 ;LOOP ON ERROR SWITCH^ 16722 ;LAST CASE DIFFERENT 16723 16724 003750 ADR=ADR+1 16725 000016 WW=WW-1 16726 000010 000000 XX=XX+XX 16727 000025 ZZ=ZZ+1 16728 IFE XX, 16729 IFE XX, 16730 16731 ;MULTIPLY 1010...1010 BY A FLOATING 1 16732 525252 525252 V1=N1 16733 652520 000000 V2=!1B0 16734 IFE WW, 16735 IFL XX, 16736 777772 525252 IFG XX,>!>>> 16737 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16738 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16739 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16740 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16741 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16742 16743 000010 000000 F37500: AA1=XX ;INITIAL C(AC) 16744 043322 200 13 0 00 044025 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16745 000000 AA2=0 ;INITIAL C(AC+1) 16746 043323 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16747 525252 525252 AEE=V1 ;INITIAL C(E) 16748 043324 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16749 043325 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16750 777772 525252 AR1=V3 ;EXPECTED RESULT IN AC 16751 043326 312 13 0 00 044301 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16752 043327 003 13 0 00 037501 ER3 AC,37501 ;HIGH PRODUCT FAILED 16753 652520 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 16754 043330 312 14 0 00 044302 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16755 043331 004 14 0 00 037502 ER4 AC+1,37502 ;LOW PRODUCT FAILED 16756 525252 525252 AEE=V1 ;INITIAL C(E) 16757 043332 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16758 043333 005 11 0 00 037503 ER5 E,37503 ;C(E) WAS CLOBBERED 16759 043334 321 15 0 00 043322 JUMPL AC+2,F37500 ;LOOP ON ERROR SWITCH^ 16760 ;LAST CASE DIFFERENT 16761 16762 003751 ADR=ADR+1 16763 000015 WW=WW-1 16764 000020 000000 XX=XX+XX 16765 000026 ZZ=ZZ+1 16766 IFE XX, 16767 IFE XX, 16768 16769 ;MULTIPLY 1010...1010 BY A FLOATING 1 16770 525252 525252 V1=N1 16771 525240 000000 V2=!1B0 16772 IFE WW, 16773 IFL XX, 16774 777765 252525 IFG XX,>!>>> DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-16 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0330 16775 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16776 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16777 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16778 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16779 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16780 16781 000020 000000 F37510: AA1=XX ;INITIAL C(AC) 16782 043335 200 13 0 00 044026 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16783 000000 AA2=0 ;INITIAL C(AC+1) 16784 043336 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16785 525252 525252 AEE=V1 ;INITIAL C(E) 16786 043337 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16787 043340 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16788 777765 252525 AR1=V3 ;EXPECTED RESULT IN AC 16789 043341 312 13 0 00 044303 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16790 043342 003 13 0 00 037511 ER3 AC,37511 ;HIGH PRODUCT FAILED 16791 525240 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 16792 043343 312 14 0 00 044304 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16793 043344 004 14 0 00 037512 ER4 AC+1,37512 ;LOW PRODUCT FAILED 16794 525252 525252 AEE=V1 ;INITIAL C(E) 16795 043345 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16796 043346 005 11 0 00 037513 ER5 E,37513 ;C(E) WAS CLOBBERED 16797 043347 321 15 0 00 043335 JUMPL AC+2,F37510 ;LOOP ON ERROR SWITCH^ 16798 ;LAST CASE DIFFERENT 16799 16800 003752 ADR=ADR+1 16801 000014 WW=WW-1 16802 000040 000000 XX=XX+XX 16803 000027 ZZ=ZZ+1 16804 IFE XX, 16805 IFE XX, 16806 16807 ;MULTIPLY 1010...1010 BY A FLOATING 1 16808 525252 525252 V1=N1 16809 652500 000000 V2=!1B0 16810 IFE WW, 16811 IFL XX, 16812 777752 525252 IFG XX,>!>>> 16813 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16814 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16815 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16816 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16817 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16818 16819 000040 000000 F37520: AA1=XX ;INITIAL C(AC) 16820 043350 200 13 0 00 044027 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16821 000000 AA2=0 ;INITIAL C(AC+1) 16822 043351 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16823 525252 525252 AEE=V1 ;INITIAL C(E) 16824 043352 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16825 043353 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16826 777752 525252 AR1=V3 ;EXPECTED RESULT IN AC 16827 043354 312 13 0 00 044305 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16828 043355 003 13 0 00 037521 ER3 AC,37521 ;HIGH PRODUCT FAILED 16829 652500 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-17 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0331 16830 043356 312 14 0 00 044306 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16831 043357 004 14 0 00 037522 ER4 AC+1,37522 ;LOW PRODUCT FAILED 16832 525252 525252 AEE=V1 ;INITIAL C(E) 16833 043360 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16834 043361 005 11 0 00 037523 ER5 E,37523 ;C(E) WAS CLOBBERED 16835 043362 321 15 0 00 043350 JUMPL AC+2,F37520 ;LOOP ON ERROR SWITCH^ 16836 ;LAST CASE DIFFERENT 16837 16838 003753 ADR=ADR+1 16839 000013 WW=WW-1 16840 000100 000000 XX=XX+XX 16841 000030 ZZ=ZZ+1 16842 IFE XX, 16843 IFE XX, 16844 16845 ;MULTIPLY 1010...1010 BY A FLOATING 1 16846 525252 525252 V1=N1 16847 525200 000000 V2=!1B0 16848 IFE WW, 16849 IFL XX, 16850 777725 252525 IFG XX,>!>>> 16851 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16852 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16853 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16854 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16855 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16856 16857 000100 000000 F37530: AA1=XX ;INITIAL C(AC) 16858 043363 200 13 0 00 044030 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16859 000000 AA2=0 ;INITIAL C(AC+1) 16860 043364 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16861 525252 525252 AEE=V1 ;INITIAL C(E) 16862 043365 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16863 043366 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16864 777725 252525 AR1=V3 ;EXPECTED RESULT IN AC 16865 043367 312 13 0 00 044307 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16866 043370 003 13 0 00 037531 ER3 AC,37531 ;HIGH PRODUCT FAILED 16867 525200 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 16868 043371 312 14 0 00 044310 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16869 043372 004 14 0 00 037532 ER4 AC+1,37532 ;LOW PRODUCT FAILED 16870 525252 525252 AEE=V1 ;INITIAL C(E) 16871 043373 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16872 043374 005 11 0 00 037533 ER5 E,37533 ;C(E) WAS CLOBBERED 16873 043375 321 15 0 00 043363 JUMPL AC+2,F37530 ;LOOP ON ERROR SWITCH^ 16874 ;LAST CASE DIFFERENT 16875 16876 003754 ADR=ADR+1 16877 000012 WW=WW-1 16878 000200 000000 XX=XX+XX 16879 000031 ZZ=ZZ+1 16880 IFE XX, 16881 IFE XX, 16882 16883 ;MULTIPLY 1010...1010 BY A FLOATING 1 16884 525252 525252 V1=N1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-18 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0332 16885 652400 000000 V2=!1B0 16886 IFE WW, 16887 IFL XX, 16888 777652 525252 IFG XX,>!>>> 16889 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16890 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16891 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16892 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16893 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16894 16895 000200 000000 F37540: AA1=XX ;INITIAL C(AC) 16896 043376 200 13 0 00 044031 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16897 000000 AA2=0 ;INITIAL C(AC+1) 16898 043377 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16899 525252 525252 AEE=V1 ;INITIAL C(E) 16900 043400 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16901 043401 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16902 777652 525252 AR1=V3 ;EXPECTED RESULT IN AC 16903 043402 312 13 0 00 044311 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16904 043403 003 13 0 00 037541 ER3 AC,37541 ;HIGH PRODUCT FAILED 16905 652400 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 16906 043404 312 14 0 00 044312 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16907 043405 004 14 0 00 037542 ER4 AC+1,37542 ;LOW PRODUCT FAILED 16908 525252 525252 AEE=V1 ;INITIAL C(E) 16909 043406 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16910 043407 005 11 0 00 037543 ER5 E,37543 ;C(E) WAS CLOBBERED 16911 043410 321 15 0 00 043376 JUMPL AC+2,F37540 ;LOOP ON ERROR SWITCH^ 16912 ;LAST CASE DIFFERENT 16913 16914 003755 ADR=ADR+1 16915 000011 WW=WW-1 16916 000400 000000 XX=XX+XX 16917 000032 ZZ=ZZ+1 16918 IFE XX, 16919 IFE XX, 16920 16921 ;MULTIPLY 1010...1010 BY A FLOATING 1 16922 525252 525252 V1=N1 16923 525000 000000 V2=!1B0 16924 IFE WW, 16925 IFL XX, 16926 777525 252525 IFG XX,>!>>> 16927 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16928 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16929 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16930 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16931 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16932 16933 000400 000000 F37550: AA1=XX ;INITIAL C(AC) 16934 043411 200 13 0 00 044032 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16935 000000 AA2=0 ;INITIAL C(AC+1) 16936 043412 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16937 525252 525252 AEE=V1 ;INITIAL C(E) 16938 043413 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16939 043414 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-19 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0333 16940 777525 252525 AR1=V3 ;EXPECTED RESULT IN AC 16941 043415 312 13 0 00 044313 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16942 043416 003 13 0 00 037551 ER3 AC,37551 ;HIGH PRODUCT FAILED 16943 525000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 16944 043417 312 14 0 00 044314 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16945 043420 004 14 0 00 037552 ER4 AC+1,37552 ;LOW PRODUCT FAILED 16946 525252 525252 AEE=V1 ;INITIAL C(E) 16947 043421 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16948 043422 005 11 0 00 037553 ER5 E,37553 ;C(E) WAS CLOBBERED 16949 043423 321 15 0 00 043411 JUMPL AC+2,F37550 ;LOOP ON ERROR SWITCH^ 16950 ;LAST CASE DIFFERENT 16951 16952 003756 ADR=ADR+1 16953 000010 WW=WW-1 16954 001000 000000 XX=XX+XX 16955 000033 ZZ=ZZ+1 16956 IFE XX, 16957 IFE XX, 16958 16959 ;MULTIPLY 1010...1010 BY A FLOATING 1 16960 525252 525252 V1=N1 16961 652000 000000 V2=!1B0 16962 IFE WW, 16963 IFL XX, 16964 777252 525252 IFG XX,>!>>> 16965 MOP1 (\ADR,XX,0,V1,V3,V2)^ 16966 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 16967 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 16968 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 16969 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 16970 16971 001000 000000 F37560: AA1=XX ;INITIAL C(AC) 16972 043424 200 13 0 00 044033 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 16973 000000 AA2=0 ;INITIAL C(AC+1) 16974 043425 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 16975 525252 525252 AEE=V1 ;INITIAL C(E) 16976 043426 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 16977 043427 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 16978 777252 525252 AR1=V3 ;EXPECTED RESULT IN AC 16979 043430 312 13 0 00 044315 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 16980 043431 003 13 0 00 037561 ER3 AC,37561 ;HIGH PRODUCT FAILED 16981 652000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 16982 043432 312 14 0 00 044316 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 16983 043433 004 14 0 00 037562 ER4 AC+1,37562 ;LOW PRODUCT FAILED 16984 525252 525252 AEE=V1 ;INITIAL C(E) 16985 043434 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 16986 043435 005 11 0 00 037563 ER5 E,37563 ;C(E) WAS CLOBBERED 16987 043436 321 15 0 00 043424 JUMPL AC+2,F37560 ;LOOP ON ERROR SWITCH^ 16988 ;LAST CASE DIFFERENT 16989 16990 003757 ADR=ADR+1 16991 000007 WW=WW-1 16992 002000 000000 XX=XX+XX 16993 000034 ZZ=ZZ+1 16994 IFE XX, DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-20 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0334 16995 IFE XX, 16996 16997 ;MULTIPLY 1010...1010 BY A FLOATING 1 16998 525252 525252 V1=N1 16999 524000 000000 V2=!1B0 17000 IFE WW, 17001 IFL XX, 17002 776525 252525 IFG XX,>!>>> 17003 MOP1 (\ADR,XX,0,V1,V3,V2)^ 17004 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 17005 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 17006 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 17007 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 17008 17009 002000 000000 F37570: AA1=XX ;INITIAL C(AC) 17010 043437 200 13 0 00 044034 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 17011 000000 AA2=0 ;INITIAL C(AC+1) 17012 043440 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 17013 525252 525252 AEE=V1 ;INITIAL C(E) 17014 043441 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 17015 043442 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 17016 776525 252525 AR1=V3 ;EXPECTED RESULT IN AC 17017 043443 312 13 0 00 044317 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 17018 043444 003 13 0 00 037571 ER3 AC,37571 ;HIGH PRODUCT FAILED 17019 524000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 17020 043445 312 14 0 00 044320 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 17021 043446 004 14 0 00 037572 ER4 AC+1,37572 ;LOW PRODUCT FAILED 17022 525252 525252 AEE=V1 ;INITIAL C(E) 17023 043447 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 17024 043450 005 11 0 00 037573 ER5 E,37573 ;C(E) WAS CLOBBERED 17025 043451 321 15 0 00 043437 JUMPL AC+2,F37570 ;LOOP ON ERROR SWITCH^ 17026 ;LAST CASE DIFFERENT 17027 17028 003760 ADR=ADR+1 17029 000006 WW=WW-1 17030 004000 000000 XX=XX+XX 17031 000035 ZZ=ZZ+1 17032 IFE XX, 17033 IFE XX, 17034 17035 ;MULTIPLY 1010...1010 BY A FLOATING 1 17036 525252 525252 V1=N1 17037 650000 000000 V2=!1B0 17038 IFE WW, 17039 IFL XX, 17040 775252 525252 IFG XX,>!>>> 17041 MOP1 (\ADR,XX,0,V1,V3,V2)^ 17042 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 17043 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 17044 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 17045 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 17046 17047 004000 000000 F37600: AA1=XX ;INITIAL C(AC) 17048 043452 200 13 0 00 044035 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 17049 000000 AA2=0 ;INITIAL C(AC+1) DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-21 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0335 17050 043453 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 17051 525252 525252 AEE=V1 ;INITIAL C(E) 17052 043454 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 17053 043455 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 17054 775252 525252 AR1=V3 ;EXPECTED RESULT IN AC 17055 043456 312 13 0 00 044321 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 17056 043457 003 13 0 00 037601 ER3 AC,37601 ;HIGH PRODUCT FAILED 17057 650000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 17058 043460 312 14 0 00 044322 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 17059 043461 004 14 0 00 037602 ER4 AC+1,37602 ;LOW PRODUCT FAILED 17060 525252 525252 AEE=V1 ;INITIAL C(E) 17061 043462 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 17062 043463 005 11 0 00 037603 ER5 E,37603 ;C(E) WAS CLOBBERED 17063 043464 321 15 0 00 043452 JUMPL AC+2,F37600 ;LOOP ON ERROR SWITCH^ 17064 ;LAST CASE DIFFERENT 17065 17066 003761 ADR=ADR+1 17067 000005 WW=WW-1 17068 010000 000000 XX=XX+XX 17069 000036 ZZ=ZZ+1 17070 IFE XX, 17071 IFE XX, 17072 17073 ;MULTIPLY 1010...1010 BY A FLOATING 1 17074 525252 525252 V1=N1 17075 520000 000000 V2=!1B0 17076 IFE WW, 17077 IFL XX, 17078 772525 252525 IFG XX,>!>>> 17079 MOP1 (\ADR,XX,0,V1,V3,V2)^ 17080 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 17081 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 17082 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 17083 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 17084 17085 010000 000000 F37610: AA1=XX ;INITIAL C(AC) 17086 043465 200 13 0 00 044036 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 17087 000000 AA2=0 ;INITIAL C(AC+1) 17088 043466 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 17089 525252 525252 AEE=V1 ;INITIAL C(E) 17090 043467 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 17091 043470 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 17092 772525 252525 AR1=V3 ;EXPECTED RESULT IN AC 17093 043471 312 13 0 00 044323 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 17094 043472 003 13 0 00 037611 ER3 AC,37611 ;HIGH PRODUCT FAILED 17095 520000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 17096 043473 312 14 0 00 044324 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 17097 043474 004 14 0 00 037612 ER4 AC+1,37612 ;LOW PRODUCT FAILED 17098 525252 525252 AEE=V1 ;INITIAL C(E) 17099 043475 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 17100 043476 005 11 0 00 037613 ER5 E,37613 ;C(E) WAS CLOBBERED 17101 043477 321 15 0 00 043465 JUMPL AC+2,F37610 ;LOOP ON ERROR SWITCH^ 17102 ;LAST CASE DIFFERENT 17103 17104 003762 ADR=ADR+1 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-22 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0336 17105 000004 WW=WW-1 17106 020000 000000 XX=XX+XX 17107 000037 ZZ=ZZ+1 17108 IFE XX, 17109 IFE XX, 17110 17111 ;MULTIPLY 1010...1010 BY A FLOATING 1 17112 525252 525252 V1=N1 17113 640000 000000 V2=!1B0 17114 IFE WW, 17115 IFL XX, 17116 765252 525252 IFG XX,>!>>> 17117 MOP1 (\ADR,XX,0,V1,V3,V2)^ 17118 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 17119 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 17120 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 17121 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 17122 17123 020000 000000 F37620: AA1=XX ;INITIAL C(AC) 17124 043500 200 13 0 00 044037 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 17125 000000 AA2=0 ;INITIAL C(AC+1) 17126 043501 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 17127 525252 525252 AEE=V1 ;INITIAL C(E) 17128 043502 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 17129 043503 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 17130 765252 525252 AR1=V3 ;EXPECTED RESULT IN AC 17131 043504 312 13 0 00 044325 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 17132 043505 003 13 0 00 037621 ER3 AC,37621 ;HIGH PRODUCT FAILED 17133 640000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 17134 043506 312 14 0 00 044326 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 17135 043507 004 14 0 00 037622 ER4 AC+1,37622 ;LOW PRODUCT FAILED 17136 525252 525252 AEE=V1 ;INITIAL C(E) 17137 043510 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 17138 043511 005 11 0 00 037623 ER5 E,37623 ;C(E) WAS CLOBBERED 17139 043512 321 15 0 00 043500 JUMPL AC+2,F37620 ;LOOP ON ERROR SWITCH^ 17140 ;LAST CASE DIFFERENT 17141 17142 003763 ADR=ADR+1 17143 000003 WW=WW-1 17144 040000 000000 XX=XX+XX 17145 000040 ZZ=ZZ+1 17146 IFE XX, 17147 IFE XX, 17148 17149 ;MULTIPLY 1010...1010 BY A FLOATING 1 17150 525252 525252 V1=N1 17151 500000 000000 V2=!1B0 17152 IFE WW, 17153 IFL XX, 17154 752525 252525 IFG XX,>!>>> 17155 MOP1 (\ADR,XX,0,V1,V3,V2)^ 17156 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 17157 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 17158 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 17159 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-23 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0337 17160 17161 040000 000000 F37630: AA1=XX ;INITIAL C(AC) 17162 043513 200 13 0 00 044040 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 17163 000000 AA2=0 ;INITIAL C(AC+1) 17164 043514 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 17165 525252 525252 AEE=V1 ;INITIAL C(E) 17166 043515 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 17167 043516 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 17168 752525 252525 AR1=V3 ;EXPECTED RESULT IN AC 17169 043517 312 13 0 00 044327 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 17170 043520 003 13 0 00 037631 ER3 AC,37631 ;HIGH PRODUCT FAILED 17171 500000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 17172 043521 312 14 0 00 044330 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 17173 043522 004 14 0 00 037632 ER4 AC+1,37632 ;LOW PRODUCT FAILED 17174 525252 525252 AEE=V1 ;INITIAL C(E) 17175 043523 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 17176 043524 005 11 0 00 037633 ER5 E,37633 ;C(E) WAS CLOBBERED 17177 043525 321 15 0 00 043513 JUMPL AC+2,F37630 ;LOOP ON ERROR SWITCH^ 17178 ;LAST CASE DIFFERENT 17179 17180 003764 ADR=ADR+1 17181 000002 WW=WW-1 17182 100000 000000 XX=XX+XX 17183 000041 ZZ=ZZ+1 17184 IFE XX, 17185 IFE XX, 17186 17187 ;MULTIPLY 1010...1010 BY A FLOATING 1 17188 525252 525252 V1=N1 17189 600000 000000 V2=!1B0 17190 IFE WW, 17191 IFL XX, 17192 725252 525252 IFG XX,>!>>> 17193 MOP1 (\ADR,XX,0,V1,V3,V2)^ 17194 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 17195 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 17196 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 17197 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 17198 17199 100000 000000 F37640: AA1=XX ;INITIAL C(AC) 17200 043526 200 13 0 00 044041 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 17201 000000 AA2=0 ;INITIAL C(AC+1) 17202 043527 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 17203 525252 525252 AEE=V1 ;INITIAL C(E) 17204 043530 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 17205 043531 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 17206 725252 525252 AR1=V3 ;EXPECTED RESULT IN AC 17207 043532 312 13 0 00 044331 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 17208 043533 003 13 0 00 037641 ER3 AC,37641 ;HIGH PRODUCT FAILED 17209 600000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 17210 043534 312 14 0 00 044173 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 17211 043535 004 14 0 00 037642 ER4 AC+1,37642 ;LOW PRODUCT FAILED 17212 525252 525252 AEE=V1 ;INITIAL C(E) 17213 043536 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 17214 043537 005 11 0 00 037643 ER5 E,37643 ;C(E) WAS CLOBBERED DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 20-24 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0338 17215 043540 321 15 0 00 043526 JUMPL AC+2,F37640 ;LOOP ON ERROR SWITCH^ 17216 ;LAST CASE DIFFERENT 17217 17218 003765 ADR=ADR+1 17219 000001 WW=WW-1 17220 200000 000000 XX=XX+XX 17221 000042 ZZ=ZZ+1 17222 IFE XX, 17223 IFE XX, 17224 17225 ;MULTIPLY 1010...1010 BY A FLOATING 1 17226 525252 525252 V1=N1 17227 400000 000000 V2=!1B0 17228 IFE WW, 17229 IFL XX, 17230 652525 252525 IFG XX,>!>>> 17231 MOP1 (\ADR,XX,0,V1,V3,V2)^ 17232 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 17233 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 17234 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 17235 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 17236 17237 200000 000000 F37650: AA1=XX ;INITIAL C(AC) 17238 043541 200 13 0 00 044042 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 17239 000000 AA2=0 ;INITIAL C(AC+1) 17240 043542 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 17241 525252 525252 AEE=V1 ;INITIAL C(E) 17242 043543 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 17243 043544 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 17244 652525 252525 AR1=V3 ;EXPECTED RESULT IN AC 17245 043545 312 13 0 00 044332 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 17246 043546 003 13 0 00 037651 ER3 AC,37651 ;HIGH PRODUCT FAILED 17247 400000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 17248 043547 312 14 0 00 044043 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 17249 043550 004 14 0 00 037652 ER4 AC+1,37652 ;LOW PRODUCT FAILED 17250 525252 525252 AEE=V1 ;INITIAL C(E) 17251 043551 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 17252 043552 005 11 0 00 037653 ER5 E,37653 ;C(E) WAS CLOBBERED 17253 043553 321 15 0 00 043541 JUMPL AC+2,F37650 ;LOOP ON ERROR SWITCH^ 17254 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 21 DAKAKM MAC 20-JAN-77 11:01 DIAGNOSTIC SECTION - MPY TEST - NON-ZERO PRODUCT SEQ 0339 17255 ;MULTIPLY A 1010...1010 BY 400000,,0 17256 003766 ADR=ADR+1 17257 400000 000000 XX=400000000000 17258 525252 525252 V1=525252525252 17259 525252 525252 V3=525252525252 17260 400000 000000 V2=400000000000 17261 17262 MOP1 (\ADR,XX,0,V1,V3,V2)^ 17263 ;THIS MACRO INITIALIZES AC,AC+1 AND E WITH [XX],[0] AND 17264 ;[V1] RESPECTIVELY, PERFORMS 'MUL AC,E' AND COMPARES AC,AC+1 17265 ;AND E AGAINST [V3], [V2] AND [V1] RESPECTIVELY. 17266 ;IF ANY OF THE ABOVE COMPARISONS FAIL, AN ERROR IS REPORTED 17267 17268 400000 000000 F37660: AA1=XX ;INITIAL C(AC) 17269 043554 200 13 0 00 044043 MOVE AC,[XX] ;PRELOAD AC (MULTIPLIER) 17270 000000 AA2=0 ;INITIAL C(AC+1) 17271 043555 200 14 0 00 043776 MOVE AC+1,[0] ;PRELOAD AC+1 17272 525252 525252 AEE=V1 ;INITIAL C(E) 17273 043556 200 11 0 00 044234 MOVE E,[V1] ;PRELOAD E (MULTIPLICAND) 17274 043557 224 13 0 00 000011 MUL AC,E ;*MULTIPLY C(E) BY C(AC) 17275 525252 525252 AR1=V3 ;EXPECTED RESULT IN AC 17276 043560 312 13 0 00 044234 CAME AC,[V3] ;IS HIGH PRODUCT CORRECT? 17277 043561 003 13 0 00 037661 ER3 AC,37661 ;HIGH PRODUCT FAILED 17278 400000 000000 AR2=V2 ;EXPECTED RESULT IN AC+1 17279 043562 312 14 0 00 044043 CAME AC+1,[V2] ;IS LOW PRODUCT CORRECT? 17280 043563 004 14 0 00 037662 ER4 AC+1,37662 ;LOW PRODUCT FAILED 17281 525252 525252 AEE=V1 ;INITIAL C(E) 17282 043564 312 11 0 00 044234 CAME E,[V1] ;WAS C(E) CLOBBERED? 17283 043565 005 11 0 00 037663 ER5 E,37663 ;C(E) WAS CLOBBERED 17284 043566 321 15 0 00 043554 JUMPL AC+2,F37660 ;LOOP ON ERROR SWITCH^ 17285 043567 254 00 0 00 030057 LAST1: JRST BEGEND DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1 UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0340 17286 SUBTTL *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 17287 17288 ;THIS SUBROUTINE PROVIDES ERROR REPORTING THRU THE USE OF UUO'S. 17289 17290 043570 202 00 0 00 044452 ERRMES: MOVEM 0,%ERAC0# ;SAVE AC0 17291 IFDEF EXCASB,> 17298 043577 202 01 0 00 044453 MOVEM 1,%ERAC1# ;SAVE AC1 17299 043600 202 02 0 00 044454 MOVEM 2,%ERAC2# ;SAVE AC2 17300 043601 350 00 0 00 030053 AOS ERRTLS ;INCREMENT ERROR TOTALS 17301 043602 550 00 0 00 030114 HRRZ 0,$SVUPC ;GET PC OF UUO 17302 043603 316 00 0 00 030052 CAMN 0,ERRPC ;PC = PC OF LAST ERROR ? 17303 043604 350 00 0 00 044447 AOS MICNT# ;YES, ADD 1 TO ERROR COUNT 17304 043605 200 00 0 00 044447 MOVE 0,MICNT 17305 043606 504 00 0 00 030114 HRL 0,$SVUPC 17306 043607 336 00 0 00 030041 SKIPN KLFLG ;NOT KL10 17307 043610 332 00 0 00 030037 SKIPE USER ;AND NOT USER? 17308 043611 254 00 0 00 043613 JRST .+2 17309 043612 7 004 14 0 00 000000 DATAO PI,0 ;YES, DISPLAY ERROR PC,ERROR COUNT 17310 043613 402 00 0 00 044450 SETZM PROCED# ;CLEAR PROCEED FLAG 17311 043614 037 10 0 00 000002 SWITCH 17312 043615 603 00 0 00 040000 TLNE NOPNT ;PRINTOUT ? 17313 043616 254 00 0 00 043731 JRST %ERRS1 ;NO, RESTORE AC'S AND RETURN 17314 043617 200 01 0 00 030113 MOVE 1,$SVUUO 17315 043620 242 01 0 00 777745 LSH 1,-^D27 17316 043621 202 01 0 00 044451 MOVEM 1,%ACS1A# ;SAVE UUO NUMBER 17317 043622 200 00 0 00 044452 MOVE 0,%ERAC0 17318 043623 200 01 0 00 044453 MOVE 1,%ERAC1 17319 043624 335 00 1 00 044446 SKIPGE @ERRLOP ;ERR LOOP AC > OR = 0 ? 17320 043625 254 00 0 00 043771 JRST %ERRS4 ;NO, SEE IF PRINT ALL 17321 043626 402 00 0 00 044447 %ERMS1: SETZM MICNT ;CLEAR ERROR COUNT 17322 043627 331 00 0 00 030043 SKIPL MONCTL ;DIAG MON OR SYS EXER ? 17323 043630 254 00 0 00 043634 JRST .+4 ;NO, DON'T NEED TITLE 17324 043631 336 00 0 00 044455 SKIPN %ERFST# ;FIRST ERROR ? 17325 043632 037 04 0 00 000002 PNTNM ;YES, PRINT PROGRAM TITLE 17326 043633 476 00 0 00 044455 SETOM %ERFST 17327 043634 336 00 0 00 030047 SKIPN PASCNT ;FIRST PASS ? 17328 043635 254 00 0 00 043641 JRST .+4 ;YES 17329 PMSG <^TEST PASS COUNT = >^ 17330 043636 037 02 0 00 044334 PSIXM [SIXBIT\^TEST PASS COUNT = _\]^ 17331 043637 200 00 0 00 030047 MOVE PASCNT 17332 043640 037 15 0 00 000000 PNTDEC 17333 PMSG <^PC = >^ 17334 043641 037 02 0 00 044340 PSIXM [SIXBIT\^PC = _\]^ 17335 043642 550 00 0 00 030114 HRRZ 0,$SVUPC ;GET PC OF UUO 17336 043643 202 00 0 00 030052 MOVEM 0,ERRPC ;SAVE FOR COMPARE 17337 043644 037 06 0 00 000000 PNT6 ;PRINT UUO ADDRESS 17338 XLIST 17339 IFDEF ERDIAG,^ 17345 043645 037 02 0 00 044342 PSIXM [SIXBIT\^RESULT = _\]^ 17346 043646 200 01 0 00 030113 MOVE 1,$SVUUO ;GET AC # OF UUO 17347 043647 242 01 0 00 777751 LSH 1,-27 17348 043650 405 01 0 00 000017 ANDI 1,17 17349 043651 200 00 0 01 000000 MOVE 0,(1) ;GET C(AC) 17350 043652 307 01 0 00 000001 CAIG 1,1 ;IS AC # = TO SAVE AC ? 17351 043653 200 00 0 01 044452 MOVE 0,%ERAC0(1) ;YES, GET SAVED AC 17352 043654 037 13 0 00 000000 PNTHW ;PRINT C(AC) 17353 17354 043655 200 00 0 00 030046 MOVE CONSW 17355 043656 603 00 0 00 000200 TLNE TXTINH ;PRINT FAILURE DES AND FLT NBR ? 17356 043657 254 00 0 00 043726 JRST %ERMORE ;NO, RESTORE AC'S ETC. 17357 17358 ;PRINT FAILURE DESCRIPTOR 17359 17360 043660 200 01 0 00 044451 MOVE 1,%ACS1A ;GET UUO NUMBER 17361 043661 307 01 0 00 000001 CAIG 1,1 ;PRINT DESCRIPTOR ? 17362 043662 254 00 0 00 043666 JRST %ERMS3 ;NO, JUST PRINT FAULT NUMBER 17363 043663 037 00 0 00 030242 PCRL 17364 043664 200 00 0 01 043712 MOVE %FLTTB(1) 17365 043665 037 17 0 00 000000 PNTAL ;PRINT FAULT DESCRIPTOR 17366 17367 ;PRINT FAULT NUMBER 17368 17369 043666 %ERMS3: PMSG <^FAULT NUMBER = >^ 17370 043666 037 02 0 00 044344 PSIXM [SIXBIT\^FAULT NUMBER = _\]^ 17371 043667 201 00 0 00 043711 MOVEI TLET 17372 043670 037 00 0 00 000000 PNTA ;PRINT TEST LETTER DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 3 UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0342 17373 17374 043671 550 00 0 00 030113 HRRZ $SVUUO 17375 043672 602 00 0 00 700000 TRNE 700000 17376 043673 254 00 0 00 043707 JRST %ER6X 17377 043674 602 00 0 00 070000 TRNE 070000 17378 043675 254 00 0 00 043705 JRST %ER5X 17379 043676 602 00 0 00 007000 TRNE 007000 17380 043677 254 00 0 00 043703 JRST %ER4X 17381 043700 037 03 0 00 000000 PNT3 ;PRINT FAULT NUMBER 17382 043701 037 00 0 00 030242 %ER7X: PCRL 17383 043702 254 00 0 00 043726 JRST %ERMORE 17384 17385 043703 037 04 0 00 000000 %ER4X: PNT4 17386 043704 254 00 0 00 043701 JRST %ER7X 17387 043705 037 05 0 00 000000 %ER5X: PNT5 17388 043706 254 00 0 00 043701 JRST %ER7X 17389 043707 037 06 0 00 000000 %ER6X: PNT6 17390 043710 254 00 0 00 043701 JRST %ER7X 17391 17392 ;FAILURE DESCRIPTORS 17393 17394 043711 000000 000000 TLET: 0 ;TEST LETTER 17395 043712 000000 000000 %FLTTB: 0 ;DESCRIPTOR TABLE 17396 043713 000000 043776 %NODES: [0] ;NO DESCRIPTOR 17397 043714 000000 043776 SPDES: [0] ;SPECIAL USER FAILURE DESCRIPTOR 17398 043715 000000 044347 $ACF: [ASCIZ/C(AC) FAILED/] 17399 043716 000000 044352 %AC1F: [ASCIZ/C(AC+1) FAILED/] 17400 043717 000000 044355 %EF: [ASCIZ/C(E) FAILED/] 17401 043720 000000 044360 %E1F: [ASCIZ/C(E+1) FAILED/] 17402 043721 000000 044363 %ARF: [ASCIZ/C(C(ACR)) FAILED/] 17403 043722 000000 044367 %AR1F: [ASCIZ/C(C(ACR+1)) FAILED/] 17404 043723 000000 044373 %ALF: [ASCIZ/C(C(ACL)) FAILED/] 17405 043724 000000 044377 %EEF: [ASCIZ/C(C(E)) FAILED/] 17406 043725 000000 044402 %FF: [ASCIZ/FLAG FAILED/] 17407 > 17408 XLIST 17409 LIST DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 8 UUOERR KLM 22-APR-75 01:42 *UUOERR* OLD-UUO ERROR HANDLER SUBROUTINE, V75B, APR 22,1975 SEQ 0343 17410 ;RESTORE AC'S AND RETURN OR HALT 17411 17412 043726 256 00 0 00 030101 %ERMORE:XCT ERMORE 17413 043727 037 16 0 00 000002 PNTMGN ;PRINT MARGINS 17414 043730 037 10 0 00 000002 SWITCH 17415 17416 043731 037 07 0 00 000003 %ERRS1: TTALTM ;ALTMODE CHECK 17417 043732 254 00 0 00 043736 JRST .+4 ;NONE 17418 043733 201 00 0 00 043736 MOVEI .+3 ;SAVE CONT ADDRESS 17419 043734 202 00 0 00 000130 MOVEM JOBOPC 17420 043735 254 00 1 00 030063 JRST @ALTMGO ;PERFORM TRANSFER 17421 043736 200 00 0 00 030046 MOVE CONSW 17422 043737 603 00 0 00 002000 TLNE 0,ERSTOP ;HALT ON ERROR SWITCH SET ? 17423 043740 037 14 0 00 000004 ERRHLT ;YES 17424 043741 607 00 0 00 004000 TLNN 0,LOOPER ;LOOP ON ERROR SWITCH SET ? 17425 043742 476 00 0 00 044450 SETOM PROCED ;NO, SET THE PROCEED FLAG 17426 043743 603 00 0 00 010000 TLNE 0,DING ;RING BELL SWITCH SET ? 17427 043744 037 01 0 00 000007 PBELL ;YES, GO RING BELL 17428 17429 043745 200 02 0 00 044454 %ERRS2: MOVE 2,%ERAC2 ;RESTORE AC'S 17430 043746 200 01 0 00 044453 MOVE 1,%ERAC1 17431 043747 476 00 1 00 044446 SETOM @ERRLOP ;SET C(ERR LOOP AC) TO -1 17432 043750 336 00 0 00 044450 SKIPN PROCED ;LOOP ON ERROR ? 17433 043751 254 00 0 00 043761 JRST %ERRS5 ;YES 17434 043752 350 00 1 00 044446 AOS @ERRLOP ;NO, INC C(ERR LOOP AC) 17435 043753 350 00 1 00 044446 AOS @ERRLOP ;SO IT ='S 1 17436 043754 331 00 0 00 030043 SKIPL MONCTL ;UNDER DIAGNOSTIC MONITOR ? 17437 043755 254 00 0 00 043761 JRST %ERRS5 ;NO, CONTINUE PROGRAM 17438 043756 200 00 0 00 030053 MOVE 0,ERRTLS ;YES 17439 043757 301 00 0 00 000005 CAIL 0,5 ;PRINTED ALLOWED ERRORS ? 17440 043760 254 00 0 00 030061 JRST $BEND2 17441 17442 043761 200 00 0 00 044452 %ERRS5: MOVE 0,%ERAC0 ;NO, CONTINUE PROGRAM 17443 IFDEF EXCASB,> 17450 043770 254 00 0 00 030065 JRST UUOEXT 17451 17452 043771 200 00 0 00 030046 %ERRS4: MOVE 0,CONSW 17453 043772 607 00 0 00 001000 TLNN PALERS ;PRINT ALL ERRORS ? 17454 043773 254 00 0 00 043731 JRST %ERRS1 ;NO 17455 043774 254 00 0 00 043626 JRST %ERMS1 ;YES DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1 STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0344 17456 SUBTTL *STOR* RESERVED STORAGE, JAN 18,1977 17457 17458 ;PROGRAM LITERALS 17459 17460 XLIST 17461 IFNDEF $LPAPER, 17462 043775 LIT 17463 043775 101 113 000 000 000 17464 043776 000000 000000 17465 043777 777777 777777 17466 044000 000000 000001 17467 044001 000000 000002 17468 044002 000000 000004 17469 044003 000000 000010 17470 044004 000000 000020 17471 044005 000000 000040 17472 044006 000000 000100 17473 044007 000000 000200 17474 044010 000000 000400 17475 044011 000000 001000 17476 044012 000000 002000 17477 044013 000000 004000 17478 044014 000000 010000 17479 044015 000000 020000 17480 044016 000000 040000 17481 044017 000000 100000 17482 044020 000000 200000 17483 044021 000000 400000 17484 044022 000001 000000 17485 044023 000002 000000 17486 044024 000004 000000 17487 044025 000010 000000 17488 044026 000020 000000 17489 044027 000040 000000 17490 044030 000100 000000 17491 044031 000200 000000 17492 044032 000400 000000 17493 044033 001000 000000 17494 044034 002000 000000 17495 044035 004000 000000 17496 044036 010000 000000 17497 044037 020000 000000 17498 044040 040000 000000 17499 044041 100000 000000 17500 044042 200000 000000 17501 044043 400000 000000 17502 044044 777777 777776 17503 044045 777777 777775 17504 044046 777777 777773 17505 044047 777777 777767 17506 044050 777777 777757 17507 044051 777777 777737 17508 044052 777777 777677 17509 044053 777777 777577 17510 044054 777777 777377 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1-1 STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0345 17511 044055 777777 776777 17512 044056 777777 775777 17513 044057 777777 773777 17514 044060 777777 767777 17515 044061 777777 757777 17516 044062 777777 737777 17517 044063 777777 677777 17518 044064 777777 577777 17519 044065 777777 377777 17520 044066 777776 777777 17521 044067 777775 777777 17522 044070 777773 777777 17523 044071 777767 777777 17524 044072 777757 777777 17525 044073 777737 777777 17526 044074 777677 777777 17527 044075 777577 777777 17528 044076 777377 777777 17529 044077 776777 777777 17530 044100 775777 777777 17531 044101 773777 777777 17532 044102 767777 777777 17533 044103 757777 777777 17534 044104 737777 777777 17535 044105 677777 777777 17536 044106 577777 777777 17537 044107 377777 777777 17538 044110 000000 000003 17539 044111 000000 000005 17540 044112 000000 000006 17541 044113 000000 000007 17542 044114 000000 000011 17543 044115 000000 000012 17544 044116 000000 000013 17545 044117 000000 000014 17546 044120 000000 000015 17547 044121 000000 000016 17548 044122 000000 000017 17549 044123 777777 777774 17550 044124 777777 777772 17551 044125 777777 777771 17552 044126 777777 777770 17553 044127 777777 777766 17554 044130 777777 777765 17555 044131 777777 777764 17556 044132 777777 777763 17557 044133 777777 777762 17558 044134 777777 777761 17559 044135 777777 777760 17560 044136 777777 777740 17561 044137 777777 777700 17562 044140 777777 777600 17563 044141 777777 777400 17564 044142 777777 777000 17565 044143 777777 776000 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1-2 STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0346 17566 044144 777777 774000 17567 044145 777777 770000 17568 044146 777777 760000 17569 044147 777777 740000 17570 044150 777777 700000 17571 044151 777777 600000 17572 044152 777777 400000 17573 044153 777777 000000 17574 044154 777776 000000 17575 044155 777774 000000 17576 044156 777770 000000 17577 044157 777760 000000 17578 044160 777740 000000 17579 044161 777700 000000 17580 044162 777600 000000 17581 044163 777400 000000 17582 044164 777000 000000 17583 044165 776000 000000 17584 044166 774000 000000 17585 044167 770000 000000 17586 044170 760000 000000 17587 044171 740000 000000 17588 044172 700000 000000 17589 044173 600000 000000 17590 044174 000000 000021 17591 044175 000000 000041 17592 044176 000000 000101 17593 044177 000000 000201 17594 044200 000000 000401 17595 044201 000000 001001 17596 044202 000000 002001 17597 044203 000000 004001 17598 044204 000000 010001 17599 044205 000000 020001 17600 044206 000000 040001 17601 044207 000000 100001 17602 044210 000000 200001 17603 044211 000000 400001 17604 044212 000001 000001 17605 044213 000002 000001 17606 044214 000004 000001 17607 044215 000010 000001 17608 044216 000020 000001 17609 044217 000040 000001 17610 044220 000100 000001 17611 044221 000200 000001 17612 044222 000400 000001 17613 044223 001000 000001 17614 044224 002000 000001 17615 044225 004000 000001 17616 044226 010000 000001 17617 044227 020000 000001 17618 044230 040000 000001 17619 044231 100000 000001 17620 044232 200000 000001 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1-3 STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0347 17621 044233 400000 000001 17622 044234 525252 525252 17623 044235 652525 252524 17624 044236 525252 525250 17625 044237 652525 252520 17626 044240 525252 525240 17627 044241 777777 777752 17628 044242 652525 252500 17629 044243 777777 777725 17630 044244 525252 525200 17631 044245 777777 777652 17632 044246 652525 252400 17633 044247 777777 777525 17634 044250 525252 525000 17635 044251 777777 777252 17636 044252 652525 252000 17637 044253 777777 776525 17638 044254 525252 524000 17639 044255 777777 775252 17640 044256 652525 250000 17641 044257 777777 772525 17642 044260 525252 520000 17643 044261 777777 765252 17644 044262 652525 240000 17645 044263 777777 752525 17646 044264 525252 500000 17647 044265 777777 725252 17648 044266 652525 200000 17649 044267 777777 652525 17650 044270 525252 400000 17651 044271 777777 525252 17652 044272 652525 000000 17653 044273 777777 252525 17654 044274 525252 000000 17655 044275 777776 525252 17656 044276 652524 000000 17657 044277 777775 252525 17658 044300 525250 000000 17659 044301 777772 525252 17660 044302 652520 000000 17661 044303 777765 252525 17662 044304 525240 000000 17663 044305 777752 525252 17664 044306 652500 000000 17665 044307 777725 252525 17666 044310 525200 000000 17667 044311 777652 525252 17668 044312 652400 000000 17669 044313 777525 252525 17670 044314 525000 000000 17671 044315 777252 525252 17672 044316 652000 000000 17673 044317 776525 252525 17674 044320 524000 000000 17675 044321 775252 525252 DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1-4 STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0348 17676 044322 650000 000000 17677 044323 772525 252525 17678 044324 520000 000000 17679 044325 765252 525252 17680 044326 640000 000000 17681 044327 752525 252525 17682 044330 500000 000000 17683 044331 725252 525252 17684 044332 652525 252525 17685 044333 002000 010000 17686 044334 76 64 45 63 64 00 17687 044335 60 41 63 63 00 43 17688 044336 57 65 56 64 00 35 17689 044337 00 77 00 00 00 00 17690 044340 76 60 43 00 35 00 17691 044341 00 00 77 00 00 00 17692 044342 76 62 45 63 65 54 17693 044343 64 00 00 35 00 77 17694 044344 76 46 41 65 54 64 17695 044345 00 56 65 55 42 45 17696 044346 62 00 35 00 77 00 17697 044347 103 050 101 103 051 17698 044350 040 106 101 111 114 17699 044351 105 104 000 000 000 17700 044352 103 050 101 103 053 17701 044353 061 051 040 106 101 17702 044354 111 114 105 104 000 17703 044355 103 050 105 051 040 17704 044356 106 101 111 114 105 17705 044357 104 000 000 000 000 17706 044360 103 050 105 053 061 17707 044361 051 040 106 101 111 17708 044362 114 105 104 000 000 17709 044363 103 050 103 050 101 17710 044364 103 122 051 051 040 17711 044365 106 101 111 114 105 17712 044366 104 000 000 000 000 17713 044367 103 050 103 050 101 17714 044370 103 122 053 061 051 17715 044371 051 040 106 101 111 17716 044372 114 105 104 000 000 17717 044373 103 050 103 050 101 17718 044374 103 114 051 051 040 17719 044375 106 101 111 114 105 17720 044376 104 000 000 000 000 17721 044377 103 050 103 050 105 17722 044400 051 051 040 106 101 17723 044401 111 114 105 104 000 17724 044402 106 114 101 107 040 17725 044403 106 101 111 114 105 17726 044404 104 000 000 000 000 17727 LIST 17728 044405 000000 000000 ENDSLD: 0 17729 17730 IFDEF DEBUG,< DAKAK PDP-10 KA10 BASIC INSTRUCTION DIAGNOSTIC (11) 0,2 MACRO %52(537) 16:26 20-JAN-77 PAGE 1-5 STOR KLM 18-JAN-77 11:42 *STOR* RESERVED STORAGE, JAN 18,1977 SEQ 0349 17731 044406 PATCH: BLOCK DEBUG ;PATCHING AREA 17732 > 17733 17734 ;PROGRAM VARIABLES 17735 044446 VAR 17736 17737 IFDEF PGMEND,< 17738 044456 000000 000000 END: 0 17739 030000 END BEGIN > NO ERRORS DETECTED PROGRAM BREAK IS 000000 ABSLUTE BREAK IS 044457 CPU TIME USED 01:27.393 17K CORE USED