Trailing-Edge
-
PDP-10 Archives
-
klad_sources
-
klad.sources/dskac1.mac
There are no other files named dskac1.mac in the archive.
SUBTTL DIAGNOSTIC SECTION
START: SETZM USER# ;CLEAR USER CONTROL WORD
JSP 0,.+1 ;GET FLAGS
TLNE USERF ;IN USER MODE?
SETOM USER ;YES, SET USER CONTROL WORD
SKIPN MONFLG ;SPECIAL USER MODE?
SETZM USER ;YES, CLEAR USER CONTROL WORD
SKIPN USER
JRST STARTA
SKIPL MONCTL
TTCALL 3,PGMNAM
JRST STARTA
PGMNAM: ASCIZ/
DECSYSTEM-2020 BASIC INSTRUCTION DIAGNOSTIC (3) [DSKAC]
/
;BASIC INSTRUCTION TEST (3)
;THE TEST IS DESIGNED FOR INITIAL DEBUGGING OF
;PROCESSOR HARDWARE AND TO DETECT (SOLID) FAILURES
;IN THE FIELD.
STARTA: JRST .+1
SUBTTL TEST OF LOGICAL TEST INSTRUCTIONS
;**********
;THIS TEST VERIFIES THAT TDN DOES NOT MODIFY THE AC BECAUSE
;TDN IS A NO-OP
;FIRST, THE AC IS PRELOADED WITH 0. THEN,
;TDN IS EXECUTED. THE AC IS THEN CHECKED FOR
;NO MODIFICATION. IF C(AC) IS UNALTERED, THE TEST PASSES
B12600: SETZ ;PRELOAD AC WITH 0
TDN [-1] ;*TDN IS A NO-OP
CAM ;CAM IS A NO-OP. IT IS HERE IN CASE TDN SKIPS
CAIE ;PASS TEST IF C(AC) IS UNMODIFIED BY TDN
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,-1 FC: AD FM + EN
;**********
;THIS TEST VERIFIES THAT TSN DOES NOT MODIFY THE AC BECAUSE
;TSN IS A NO-OP
;FIRST, THE AC IS PRELOADED WITH -1. THEN,
;TSN IS EXECUTED. THE AC IS THEN CHECKED FOR
;NO MODIFICATION. IF C(AC) IS UNALTERED, THIS TEST PASSES
B12700: SETO ;PRELOAD AC WITH -1,,-1
TSN [XWD -1,0] ;*TSN IS A NO-OP
CAM ;CAM IS A NO-OP. IT IS HERE IN CASE TSN SKIPS
CAME [-1] ;PASS TEST IF C(AC) IS UNMODIFIED BY TSN
STOP
;**********
;THIS TEST VERIFIES THAT TRN DOE NOT MODIFY THE AC BECAUSE
;TRN IS A NO-OP.
;FIRST, THE AC IS PRELOADED WITH 0. THEN,
;TRN IS EXECUTED. THE AC IS THEN CHECKED FOR
;NO MODIFICATION. IF C(AC) IS UNALTERED, THIS TEST PASSES
B13000: SETZ ;PRELOAD AC WITH 0
TRN 123456 ;*TRN IS A NO-OP
CAM ;CAM IS A NO-OP. IT IS HERE IN CASE TRN SKIPS
CAIE ;PASS TEST IF C(AC) IS UNMODIFIED BY TRN
STOP
;**********
;THIS TEST VERIFIES THAT TLN DOES NOT MODIFY THE AC BECAUSE
;TLN IS A NO-OP.
;FIRST,THE AC IS PRELOADED WITH -1,,-1. THEN,
;TRN IS EXECUTED. THE AC IS THEN CHECKED FOR
;NO MODIFICATION. IF C(AC) IS UNALTERED, THIS TEST PASSES
B13100: SETO ;PRELOAD AC WITH -1,,-1
TLN 123456 ;*TRN IS A NO-OP
CAM ;CAM IS A NO-OP. IT IS HERE IN CASE TRN SKIPS
CAME ;PASS TEST IF C(AC) IS UNMODIFIED BY TRN
STOP
;**********
;THIS TEST VERIFIES THAT TDO PLACES ONES IN THE BITS OF THE AC
;WHICH ARE MASKED BY C(E) AND DOES NOT AFFECT THE UNMASKED BITS OF THE AC.
;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-1. HENCE, THE RESULT IN THE AC SHOULD BE -1,,-1.
;THE AC IS CHECKED FOR -1,,-1. IF C(AC) -1,,-1, THE TEST PASSES.
B13200: SETZ ;PRELOAD AC WITH 0
TDO [-1] ;*TDO SHOULD PLACE ALL ONES IN THE AC
CAI ;CAI IS A NO-OP. IT IS HERE IN CASE TDO SKIPS
CAME [-1] ;PASS TEST IF C(AC)=-1,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;E SW: FCE
;0 SW: ET1
;0 ET1: BR AR EN
;0 ET1: AD BR - EN
;0 ET1: AD EQV
;**********
;THIS TEST VERIFIES THAT TDO PLACES ONES IN THE BITS OF THE AC
;WHICH ARE MASKED BY C(E) AND DOES NOT AFFECT THE UNMASKED BITS OF THE AC.
;IN THIS CASE, AC=E AND C(AC)= C(E)=0. HENCE, THE RESULT IN THE AC SHOULD BE 0.
;THIS AC IS CHECKED FOR ZERO. IF C(AC) IS ZERO, THE TEST PASSES.
B13300: SETZ ;PRELOAD AC WITH 0
TDO ;*TDO SHOULD PLACE ALL ZERO IN THE AC
CAI ;CAI IS A NO-OP. IT IS HERE IN CASE TDO SKIPS
SKIPE ;PASS TEST IF C(AC) ZERO
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,-1 ET1: AD AR + EN
;**********
;THIS TEST VERIFIES THAT TDO PLACES ONES IN THE BITS OF THE AC,
;WHICH ARE MASKED BY C(E) AND DOES NOT AFFECT THE UNMASKED BITS OF THE AC.
;IN THIS CASE, C(AC)=0 AND C(E)=0. HENCE, THE RESULT IN THE AC SHOULD BE 0.
;THE AC IS CHECKED FOR ITS CONTENTS ZERO. IF C(AC) IS ZERO, THE TEST PASSES.
B13400: SETZ ;PRELOAD AC WITH 0
TDO [0] ;*TDO SHOULD PLACE ALL ZERO IN THE AC
CAI ;CAI IS A NO-OP. IT IS HERE IN CASE TDO SKIPS
SKIPE ;PASS TEST IF C(AC) IS ZERO
STOP
;**********
;THIS TEST VERIFIES THAT TDO PLACES ONES IN THE BITS OF THE AC
;WHICH ARE MASKED BY C(E) AND DOES NOT AFFECT THE UNMASKED BITS OF THE AC.
;IN THIS CASE, AC=E AND C(AC)= C(E)=-1,,-1.
;HENCE, THE RESULT IN THE AC SHOULD BE -1,,-1.
;THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THE TEST PASSES.
B13600: SETO ;PRELOAD AC WITH -1,,-1
TDO ;*TDO SHOULD PLACE ALL ONES IN THE AC
CAI ;CAI IS A NO-OP. IT IS HERE IN CASE TDO SKIPS
CAME [-1] ;PASS TEST IF C(AC) -1,,-1
STOP
;**********
;THIS TEST VERIFIES THAT TDO PLACES ONES IN THE BITS OF THE AC
;WHICH ARE MASKED BY C(E) AND DOES NOT AFFECT THE UNMASKED BITS OF THE AC.
;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=0. HENCE, THE RESULT IN THE AC SHOULD BE -1,,-1.
;THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THE TEST PASSES.
B14000: SETO ;PRELOAD AC WITH -1,,-1
TDO [0] ;*TDO SHOULD PLACE ALL ONES IN THE AC
CAI ;CAI IS A NO-OP. IT IS HERE IN CASE TDO SKIPS
CAME [-1] ;PASS TEST IF C(AC)=-1,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 ET1: AD FM - EN
;0 ET2: AR AD EN
;**********
;THIS TEST VERIFIES THAT TDZ PLACES ZERO IN THE BITS OF THE AC
;WHICH ARE MASKED BY C(E) AND DOES NOT AFFECT THE UNMASKED BITS OF THE AC.
;IN THIS CASE, AC=E AND C(AC)= C(E)=0. HENCE, THE RESULT IN THE AC SHOULD BE 0.
;THE AC IS CHECKED FOR 0. IF C(AC) 0, THE TEST PASSES.
B14100: SETZ ;PRELOAD AC WITH 0
TDZ ;*TDZ SHOULD PLACE ALL ZERO IN THE AC
CAI ;CAI IS A NO-OP. IT IS HERE IN CASE TDO
SKIPE ;PASS TEST IF C(AC)=0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,-1 FC: AD FM + EN
;**********
;THIS TEST VERIFIES THAT TDZ PLACES ZERO IN THE BITS OF THE AC
;WHICH ARE MASKED BY C(E) AND DOES NOT AFFECT THE UNMASKED BITS OF THE AC.
;IN THIS CASE, C(AC)=-1,,-1,,-1 AND C(E)=-1,,0.
;HENCE, THE RESULT IN THE AC SHOULD BE 0,,-1.
;THE AC IS CHECKED FOR 0,,-1. IF C(AC)= 0,,-1, THE TEST PASSES.
B14200: SETO ;PRELOAD AC WITH -1,,-1
TDZ [XWD -1,0] ;*TDZ SHOULD PLACE 0,,-1 IN THE AC
CAI ;CAI IS A NO-OP. IT IS HERE IN CASE TDO
CAME [0,-1] ;PASS TEST IF C(AC)=0,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-E SW: FCE
;-1,,-1 FC: AD AR -EN
;-1,,0 ET2: AR AD EN
;**********
;THIS TEST VERIFIES THAT TDZ PLACES ZEROS IN THE BITS OF THE AC
;WHICH ARE MASKED BY C(E) AND DOES NOT AFFECT THE UNMASKED BITS OF THE AC.
;IN THIS CASE, AC=E AND C(AC)= C(E)=-1,,-1. HENCE, THE RESULT IN THE AC SHOULD BE 0.
;THE AC IS CHECKED FOR 0. IF C(AC)=0, THE TEST PASSES.
B14400: SETO ;PRELOAD AC WITH -1,,-1
TDZ ;*TDZ SHOULD PLACE ALL ZERO IN THE AC
CAI ;CAI IS A NO-OP. IT IS HERE IN CASE TDO
SKIPE ;PASS TEST IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT TDZ PLACES ZEROS IN THE BITS OF THE AC
;WHICH ARE MASKED BY C(E) AND DOES NOT AFFECT THE UNMASKED BITS OF THE AC.
;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-1. HENCE, THE RESULT IN THE AC SHOULD BE 0.
;THE AC IS CHECKED FOR 0. IF C(AC)=0, THE TEST PASSES.
B14500: SETZ ;PRELOAD AC WITH 0
TDZ [-1] ;*TDZ SHOULD PLACE ALL ZEROS IN THE AC
CAI ;CAI IS A NO-OP. IT IS HERE IN CASE TDO
SKIPE ;PASS TEST IS C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT TDZ PLACES ZEROS IN THE BITS OF THE AC
;WHICH ARE MASKED BY C(E) AND DOES NOT AFFECT THE UNMASKED BITS OF THE AC.
;IN THIS CASE, AC=E AND C(AC)= C(E)=-1,,-1.
;HENCE, THE RESULT IN THE AC SHOULD BE -1,,-1.
;THE AC IS CHECKED -1,,-1. IF C(AC)=-1,,-1, THE TEST PASSES.
B14600: SETO ;PRELOAD AC WITH -1,,-1
TDZ [0] ;*TDZ SHOULD PLACE ALL ONES IN THE AC
CAI ;CAI IS A NO-OP. IT IS HERE IN CASE TDO
CAME [-1] ;PASS TEST IF C(AC)=-1,,-1
STOP
;**********
;THIS TEST VERIFIES THAT TDC COMPLEMENTS THE BITS OF THE AC
;WHICH ARE MASKED BY C(E) AND DOES NOT AFFECT THE UNMASKED BITS OF THE AC.
;IN THIS CASE, C(AC)=-1 AND C(E)=0,,-1. HENCE, THE RESULT IN THE AC SHOULD BE -1,,0.
;THE AC IS CHECKED FOR -1,,0. IF C(AC)=-1,,0, THIS TEST PASSES
B14700: SETO ;PRELOAD AC WITH -1,,-1
TDC [XWD 0,-1] ;*TDC SHOULD PLACE -1,,0 INTO THE AC
CAI ;CAI IS A NO-OP. IT IS HERE IN CASE TDC SKIPS
CAME [-1,,0] ;PASS TEST IF C(AC)=-1,,0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-E SW: FCE
;0 FC: AD AR - EN
;0,,-1 ET2: AR AD EN
;**********
;THIS TEST VERIFIES THAT TDC COMPLEMENTS THE BITS OF THE AC
;WHICH ARE MASKED BY C(E) AND DOES NOT AFFECT THE UNMASKED BITS OF THE AC.
;IN THIS CASE, AC=E AND C(AC)= C(E)=0. HENCE, THE RESULT IN THE AC SHOULD BE 0.
;THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES
B15000: SETZ ;PRELOAD AC, E WITH 0
TDC ;*TDC SHOULD PLACE 0 INTO THE AC
CAI ;CAI IS A NO-OP. IT IS HERE IN CASE TDC SKIPS
SKIPE ;PASS TEST IF C(AC)=0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,-1 FC:AD FM + EN
;**********
;THIS TEST VERIFIES THAT TDC COMPLEMENTS THE BITS OF THE AC
;WHICH ARE MASKED BY C(E) AND DOES NOT AFFECT THE UNMASKED BITS OF THE AC.
;IN THIS CASE, AC=E AND C(AC)= C(E)=-1,,-1. HENCE, THE RESULT IN THE AC SHOULD BE 0.
;THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST FAILS
B15400: SETO ;PRELOAD AC WITH -1,,-1
TDC ;*TDC SHOULD PLACE 0 INTO THE AC
CAI ;CAI IS A NO-OP. IT IS HERE IN CASE TDC SKIPS
SKIPE ;PASS TEST IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT TDC COMPLEMENTS THE BITS OF THE AC
;WHICH ARE MASKED BY C(E) AND DOES NOT AFFECT THE UNMASKED BITS OF THE AC.
;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-1. HENCE, THE RESULT IN THE AC SHOULD BE -1,,-1.
;THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES
B15500: SETZ ;PRELOAD AC WITH 0
TDC [-1] ;*TDC SHOULD PLACE -1,,-1 INTO THE AC
CAI ;CAI IS A NO-OP. IT IS HERE IN CASE TDC SKIPS
CAME [-1] ;PASS TEST IF C(AC)=-1,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 FC: AD EQV
;**********
;THIS TEST VERIFIES THAT TDC COMPLEMENTS THE BITS OF THE AC
;WHICH ARE MASKED BY C(E) AND DOES NOT AFFECT THE UNMASKED BITS OF THE AC.
;IN THIS CASE, C(AC)=-1 AND C(E)=0. HENCE, THE RESULT IN THE AC SHOULD BE -1,,-1.
;THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES
B15600: SETO ;PRELOAD AC WITH -1,,-1
TDC [0] ;*TDC SHOULD PLACE -1,,-1 INTO THE AC
CAI ;CAI IS A NO-OP. IT IS HERE IN CASE TDC SKIPS
CAME [-1] ;PASS TEST IF C(AC)=-1,,-1
STOP
;**********
;THIS TEST VERIFIES THAT TDNA ALWAYS SKIPS THE NEXT
;SEQUENTIAL INSTRUCTION. IF TDNA DOES NOT
;SKIP, THIS TEST FAILS.
B15700: SETZ ;PRESET AC, E TO 0
TDNA ;*TDNA SHOULD SKIP THE NEXT INSTRUCTION
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 SW: ET1
;0 FC: AB PC EN
;0 ET1: BR AR EN
;0 ET1: PC CLOCK
;0 ET2: MC INST FETCH EN
;**********
;THIS TEST VERIFIES THAT TDN NEVER SKIPS
;NEXT SEQUENTIAL INSTRUCTION.
;THIS TEST FAILS IF TDN SKIPS.
B16000: SETO ;PRESET AC, E TO -1,,-1
TDN ;*TDN SHOULD NOT SKIP
SKIPA ;SKIP HALT IF TDN PASSES
STOP
;**********
;THIS TEST VERIFIES THAT TDN NEVER SKIPS THE
;NEXT SEQUENTIAL INSTRUCTION.
;THIS TEST FAILS IF TDN SKIPS.
B16100: SETZ ;PRESET AC, E TO 0
TDN ;*TDN SHOULD NOT SKIP
SKIPA ;SKIP HALT IF TDN PASSES
STOP
;**********
;THIS TEST VERIFIES THAT TDNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION WHEN
;AND ONLY WHEN ALL OF THE BITS OF THE AC, WHICH ARE MASKED
;BY C(E), ARE ZERO.
;IN THIS TEST C(AC) = -1..0 AND C(E) = 707070..707070.
;HENCE, TDNE SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION.
;IF TDNE SKIPS, THIS TEST FAILS
B16200: MOVE [XWD -1,0] ;PRELOAD AC WITH -1..0
TDNE [707070707070] ;*TDNE SHOULD NOT SKIP
SKIPA ;SKIP HALT IF TDNE PASSES
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,0 SW:FCE
;-1,,0 SW: PC CHANGE
;-1,,-1 FC: AD AR + EN
;E ET2: MC INST FETCH EN
;**********
;THIS TEST VERIFIES THAT TDNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION WHEN
;AND ONLY WHEN ALL OF THE BITS OF THE AC, WHICH ARE MASKED
;BY C(E), ARE ZERO.
;IN THIS CASE, AC=E AND C(AC)=0.
;HENCE, TDNE SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION
;IF TDNE DOES NOT SKIP, THIS TEST FAILS.
B16300: SETZ ;PRELOAD AC, E WITH 0
TDNE ;*TDNE SHOULD SKIP THE NEXT INSTRUCTION
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 SW: ET1
;0 ET1: PC CLOCK
;**********
;THIS TEST VERIFIES THAT TDNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION WHEN
;AND ONLY WHEN NOT ALL OF THE BITS OF THE AC, WHICH ARE MASKED
;BY C(E) ARE ZERO.
;IN THIS TEST AC=E AND C(AC)=C(E)=0. HENCE TDNN
;SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION
;IF TDNN SKIPS, THE TEST FAILS.
B16400: SETZ ;PRELOAD AC,E WITH 0
TDNN ;*TDNN SHOULD NOT SKIP THE NEXT INSTRUCTION
SKIPA ;SKIP HALT IF TDNE PASSES
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 SW: PC CHANGE
;0 FC: AB PC EN
;0 ET2: MC INST FETCH EN
;**********
;THIS TEST VERIFIES THAT TDNA ALWAYS SKIPS THE NEXT
;SEQUENTIAL INSTRUCTION. IF TDNA DOES NOT
;SKIP, THIS TEST FAILS.
B16500: SETO ;PRESET AC, E TO 0
TDNA ;*TDNA SHOULD SKIP THE NEXT INSTRUCTION
STOP
;**********
;THIS TEST VERIFIES THAT TDNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION WHEN
;AND ONLY WHEN NOT ALL OF THE BITS OF THE AC, WHICH ARE MASKED BY C(E),
;ARE ZERO
;IN THIS TEST C(AC)=-1,,0 AND C(E)=707070,,707070. HENCE, TDNN
;SHOULD SKIP THE NEXT INSTRUCTION. IF IT DOES NOT SKIP, THIS TEST FAILS.
B16600: MOVE [XWD -1,0] ;PRESET AC TO -1,,0
TDNN [707070707070] ;*TDNN SHOULD SKIP THE NEXT INSTRUCTION
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,0 SW: FCE
;-1,,0 SW: ET1
;-1,,0 ET1: PC CLOCK
;**********
;THIS TEST VERIFIES THAT TDNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION WHEN
;AND ONLY WHEN ALL OF THE BITS OF THE AC, WHICH ARE MASKED
;BY C(E), ARE ZERO.
;IN THIS TEST, C(AC)=-1,,-1 AND C(E)=0. HENCE, TDNE SHOULD SKIP
;THE NEXT SEQUENTIAL INSTRUCTION.
;IF TDNE DOES NOT SKIP, THIS TEST FAILS
B16700: SETO ;PRESET AC TO ALL ONES
TDNE [0] ;*TDNE SHOULD SKIP THE NEXT INSTRUCTION
STOP
;**********
;THIS TEST VERIFIES THAT TDNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION WHEN
;AND ONLY WHEN ALL OF THE BITS OF THE AC, WHICH ARE MASKED
;BY C(E), ARE ZERO.
;IN THIS TEST C(AC)=0 AND C(E)=-1,,-1, HENCE, TDNE SHOULD SKIP
;THE NEXT SEQUENTIAL INSTRUCTION.
;IF TDNE DOES NOT SKIP, THIS TEST FAILS
B17000: SETZ ;PRESET AC TO 0
TDNE [-1] ;*TDNE SHOULD SKIP THE NEXT INSTRUCTION
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 FC: AD FM + EN
;**********
;THIS TEST VERIFIES THAT TDN NEVER SKIPS THE NEXT SEQUENTIAL INSTRUCTION.
;THIS TEST FAILS IF TDN SKIPS
B17300: SETO ;PRESET AC TO -1,,-1
TDN [0] ;*TDN SHOULD NOT SKIP
SKIPA ;SKIP HALT IF TDN PASSES
STOP
;**********
;THIS TEST VERIFIES THAT TDN NEVER SKIPS THE NEXT SEQUENTIAL INSTRUCTION.
;THIS TEST FAILS IF TDN SKIPS
B17400: SETZ ;PRESET AC TO 0
TDN [-1] ;*TDN SHOULD NOT SKIP
SKIPA ;SKIP HALT IF TDN PASSES
STOP
;**********
;THIS TEST VERIFIES THAT TDNA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION
;THIS TEST FAILS IF TDNA DOES NOT SKIP
B17700: SETO ;PRESET AC TO -1,,-1
TDNA [0] ;*TDNA SHOULD SKIP
STOP
;**********
;THIS TEST VERIFIES THAT TDNA ALWAYS SKIPS THE NEXT SEQUENTIAL INSTRUCTION
;THIS TEST FAILS IF TDNA DOES NOT SKIP
B20000: SETZ ;PRESET AC TO 0
TDNA [-1] ;*TDNA SHOULD SKIP
STOP
;**********
;THIS TEST VERIFIES THAT TDNE SKIPS THE NEXT SEQUENTIAL INSTRUCTION WHEN
;AND ONLY WHEN ALL OF THE BITS OF THE AC, WHICH ARE MASKED BY C(E), ARE ZERO.
;IN THIS TEST AC=E AND C(AC)=C(E)=-1,,-1. HENCE TDNE SHOULD NOT SKIP.
;IF TDNE SKIPS, THIS TEST FAILS.
B20400: SETO ;PRESET AC,E TO -1,,-1
TDNE ;*TDNE SHOULD NOT SKIP
SKIPA ;SKIP HALT IF TDNE PASSES
STOP
;**********
;THIS TEST VERIFIES THAT TDNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION WHEN
;AND ONLY WHEN NOT ALL OF THE BITS OF THE AC, WHICH ARE MASKED BY C(E), ARE ZERO.
;IN THIS TEST, AC=E AND C(AC)=C(E)=-1,,-1. HENCE TDNN SHOULD SKIP
;IF TDNN DOES NOT SKIP, THIS TEST FAILS
B20600: SETO ;PRESET AC,E TO -1,,-1
TDNN ;*TDNN SHOULD SKIP THE NEXT SEQUENTIAL INSTRUCTION
STOP
;**********
;THIS TEST VERIFIES THAT TDNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION WHEN
;AND ONLY WHEN NOT ALL OF THE BITS OF THE AC, WHICH ARE MASKED BY C(E), ARE ZERO.
;IN THIS TEST, C(AC)=0 AND C(E)=-1,,-1. HENCE TDNN SHOULD NOT SKIP
;IF TDNN SKIPS, THIS TEST FAILS
B20700: SETZ ;PRESET AC TO 0
TDNN [-1] ;*TDNN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION
SKIPA ;SKIP HALT IF TDNN PASSES
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 FC: AD FM + EN
;**********
;THIS TEST VERIFIES THAT TDNN SKIPS THE NEXT SEQUENTIAL INSTRUCTION WHEN
;AND ONLY WHEN NOT ALL OF THE BITS OF THE AC, WHICH ARE MASKED BY C(E), ARE ZERO.
;IN THIS TEST, C(AC)=-1,,-1 AND C(E)=0. HENCE TDNN SHOULD NOT SKIP
;IF TDNN SKIPS, THIS TEST FAILS
B21000: SETO ;PRESET AC TO -1,,-1
TDNN [0] ;*TDNN SHOULD NOT SKIP THE NEXT SEQUENTIAL INSTRUCTION
SKIPA ;SKIP HALT IF TDNN PASSES
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,-1 FC: AD AR + EN
;**********
;THIS TEST VERIFIES THAT TDO PLACES ONES IN THE BITS OF THE AC
;WHICH ARE MASKED BY C(E) AND DOES NOT EFFECT THE UNMASKED BITS OF THE AC.
;IN THIS CASE C(AC)=0 AND C(E)=-1,,0. HENCE, THE RESULT IN THE AC SHOULD BE -1,,0
;THE AC IS CHECKED FOR -1,,0. IF C(AC)=-1,,0, THIS TEST PASSES
B21100: SETZ ;PRELOAD AC WITH 0
TDO [XWD -1,0] ;*TDO SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0
STOP
;**********
;THIS TEST VERIFIES THAT TSO PLACES ONES IN THE BITS OF THE AC
;WHICH ARE MASKED BY BOTH HALVES OF C(E) SWAPPED.
;THE UNMASKED BITS OF THE AC ARE NOT AFFECTED
;IN THIS CASE, C(AC)=0 AND C(E)=-1,,0. HENCE,
;THE RESULT IN THE AC SHOULD BE 0,,-1. THE AC IS
;CHECKED FOR 0,,-1. THIS TEST PASSES IF C(AC)=0,,-1
B21400: SETZ ;PRESET AC WITH 0
TSO [XWD -1,0] ;*TSO SHOULD PLACE 0,,-1 INTO THE AC
CAME [XWD 0,-1] ;PASS IF C(AC)=0,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 SW: FCE
;0 SW: ET0
;0 SW: ET1
;0 FC: AD FM + EN
;0 FC: AD AR + EN
;0 ET0: AR SWAP
;0 ET0: AD FM + EN
;0 ET0: AD AR + EN
;0 ET1: BR AR EN
;0 ET1: AD BR - EN
;-1,,-1 ET1: AD AR + EN
;0 ET1: AD EQV
;**********
;THIS TEST VERIFIES THAT TSO PLACES ONES IN THE BITS OF THE AC
;WHICH ARE MASKED BY BOTH HALVES OF C(E) SWAPPED.
;THE UNMASKED BITS OF THE AC ARE NOT AFFECTED
;IN THIS CASE, C(AC)=0 AND C(E)=0,,-1. HENCE,
;THE RESULT IN THE AC SHOULD BE -1,,0. THE AC IS
;CHECKED FOR -1,,0. THIS TEST PASSES IF C(AC)=-1,,0
B21500: SETZ ;PRESET AC WITH 0
TSO [XWD 0,-1] ;*TSO SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0
STOP
;**********
;THIS TEST VERIFIES THAT TSO PLACES ONES IN THE BITS OF THE AC
;WHICH ARE MASKED BY BOTH HALVES OF C(E) SWAPPED.
;THE UNMASKED BITS OF THE AC ARE NOT AFFECTED
;IN THIS CASE, C(AC)=0 AND C(E)=0,,-1. HENCE,
;THE RESULT IN THE AC SHOULD BE -1,,0. THE AC IS
;CHECKED FOR ITS CONTENTS NON-ZERO. THIS TEST PASSES IF C(AC) IS NON-ZERO
B21600: SETZ ;PRELOAD AC,E WITH 0
TSO ;*TSO SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT TSO PLACES ONES IN THE BITS OF THE AC
;WHICH ARE MASKED BY BOTH HALVES OF C(E) SWAPPED.
;THE UNMASKED BITS OF THE AC ARE NOT AFFECTED
;IN THIS CASE, AC=E AND C(AC)=C(E)=-1,,-1. HENCE,
;THE RESULT IN THE AC SHOULD BE -1,,-1. THE AC IS
;CHECKED FOR -1,,-1. THIS TEST PASSES IF C(AC) -1,,-1
B21700: SETO ;PRELOAD AC,E WITH -1,,-1
TSO ;*TSO SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;**********
;THIS TEST VERIFIES THAT TSO PLACES ONES IN THE BITS OF THE AC
;WHICH ARE MASKED BY BOTH HALVES OF C(E) SWAPPED.
;THE UNMASKED BITS OF THE AC ARE NOT AFFECTED
;IN THIS CASE, C(AC)=-1,,0 AND C(E)=0,,-1. HENCE,
;THE RESULT IN THE AC SHOULD BE -1,,0. THE AC IS
;CHECKED FOR -1,,0. THIS TEST PASSES IF C(AC)=-1,,0
B22200: MOVE [XWD -1,0] ;PRELOAD AC WITH -1,,0
TSO [XWD 0,-1] ;*TSO SHOULD PLACE -1,,0 INTO THE AC
CAME [-1,,0] ;PASS IF C(AC)=-1,,0
STOP
;**********
;THIS TEST VERIFIES THAT TSO PLACES ONES IN THE BITS OF THE AC
;WHICH ARE MASKED BY BOTH HALVES OF C(E) SWAPPED.
;THE UNMASKED BITS OF THE AC ARE NOT AFFECTED
;IN THIS CASE, C(AC)=0,,-1 AND C(E)=0. HENCE,
;THE RESULT IN THE AC SHOULD BE 0,,-1. THE AC IS
;CHECKED FOR 0,,-1. THIS TEST PASSES IF C(AC)=0,,-1
B22300: MOVEI -1 ;PRELOAD AC WITH 0,,-1
TSO [0] ;*TSO SHOULD PLACE 0,,-1 INTO THE AC
CAME [XWD 0,-1] ;PASS IF C(AC)=0,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 ET1: AD FM - EN
;0 ET2: AR AD EN
;**********
;THIS TEST VERIFIES THAT TSO PLACES ONES IN THE BITS OF THE AC
;WHICH ARE MASKED BY BOTH HALVES OF C(E) SWAPPED.
;THE UNMASKED BITS OF THE AC ARE NOT AFFECTED
;IN THIS CASE, C(AC)=-1,,0 AND C(E)=0. HENCE,
;THE RESULT IN THE AC SHOULD BE -1,,0. THE AC IS
;CHECKED FOR -1,,0. THIS TEST PASSES IF C(AC)=-1,,0
B22400: MOVE [XWD -1,0] ;PRELOAD AC WITH -1,,0
TSO [0] ;*TSO SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0
STOP
;**********
;THIS TEST VERIFIES THAT TSO PLACES ONES IN THE BITS OF THE AC
;WHICH ARE MARKED BY BOTH HALVES OF C(E) SWAPPED.
;THE UNMASKED BITS OF THE AC ARE NOT AFFECTED
;IN THIS CASE, C(AC)=0,,-1 AND C(E)=-1,,-1. HENCE,
;THE RESULT IN THE AC SHOULD BE -1,,-1. THE AC IS
;CHECKED FOR -1,,-1. THIS TEST PASSES IF C(AC)=-1,,-1
B22500: MOVEI -1 ;PRELOAD AC WITH 0,,-1
TSO [-1] ;*TSO SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;**********
;THIS TEST VERIFIES THAT TSO PLACES ONES IN THE BITS OF THE AC
;WHICH ARE MARKED BY BOTH HALVES OF C(E) SWAPPED.
;THE UNMASKED BITS OF THE AC ARE NOT AFFECTED
;IN THIS CASE, C(AC)=-1,,0 AND C(E)=-1,,-1. HENCE,
;THE RESULT IN THE AC SHOULD BE -1,,-1. THE AC IS
;CHECKED FOR -1,,-1. THIS TEST PASSES IF C(AC)=-1,,-1
B22600: MOVE [XWD -1,0] ;PRELOAD AC WITH -1,,0
TSO [-1] ;*TSO SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;**********
SUBTTL TEST OF HWT INSTRUCTIONS
;**********
;THIS TEST VERIFIES THAT HLL PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC. THE RIGHT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE AC=E AND C(AC)=C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES
B22700: SETZ ;PRELOAD AC,E WITH 0
HLL ;*HLL SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,0 FC: AD AR + EN
;0,,-1 FC: AD RT FM + EN
;**********
;THIS TEST VERIFIES THAT HLL PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC. THE RIGHT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1,
;THIS TEST PASSES.
B23000: SETO ;PRELOAD AC WITH -1,,-1
HLL [0] ;*HLL SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0,,-1 SW: FCE
;0 ET2: AR AD EN
;**********
;THIS TEST VERIFIES THAT HLL PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC. THE RIGHT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE AC=E AND C(AC)=C(E)=-1,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,-1. THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES.
B23200: SETO ;PRELOAD AC,E WITH -1,,-1
HLL ;*HLL SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HLL PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC. THE RIGHT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE C(AC)=0 AND C(E)=-1,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0. IF C(AC)=-1,,0,
;THIS TEST PASSES
B23400: SETZ ;PRELOAD AC WITH 0
HLL [-1] ;*HLL SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0
STOP
;**********
;THIS TEST VERIFIES THAT HLL PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC. THE RIGHT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE, C(AC)=0 AND C(E)=-1,,0. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0. IF C(AC)=-1,,0,
;THIS TEST PASSES.
B23600: SETZ ;PRELOAD AC WITH 0
HLL [XWD -1,0] ;*HLL SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0
STOP
;**********
;THIS TEST VERIFIES THAT HLL PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC. THE RIGHT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=0,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1,
;THIS TEST PASSES.
B23700: SETO ;PRELOAD AC WITH -1,,-1
HLL [XWD 0,-1] ;*HLL SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HLLZ PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC AND PLACES ZEROS INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, AC=E AND C(AC)=C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES
B24000: SETZ ;PRELOAD AC,E WITH 0
HLLZ ;*HLLZ SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,0 FC: AD LT AR + EN
;**********
;THIS TEST VERIFIES THAT HLLZ PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC AND PLACES ZEROS INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0.
;IF C(AC)=-1,,0, THIS TEST PASSES.
B24300: SETO ;PRELOAD AC WITH -1,,-1
HLLZ [-1] ;*HLLZ SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 SW: FCE
;-1,,-1 ET2: AR LT AD EN
;**********
;THIS TEST VERIFIES THAT HLLZ PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC AND PLACES ZEROS INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR ITS CONTENTS NON-ZERO
;IF C(AC) IS NON-ZERO, THIS TEST PASSES.
B24400: SETZ ;PRELOAD AC WITH -1,,-1
HLLZ [-1] ;*HLLZ SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0
STOP
;**********
;THIS TEST VERIFIES THAT HLLZ PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC AND PLACES ZEROS INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR ZERO
;IF C(AC) IS ZERO, THIS TEST PASSES.
B24500: SETO ;PRELOAD AC WITH -1,,-1
HLLZ [0] ;*HLLZ SHOULD PLACE -1,,0 INTO THE AC
SKIPE ;PASS IF C(AC) IS ZERO.
STOP
;**********
;THIS TEST VERIFIES THAT HLLZ PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC AND PLACES ZEROS INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=0 AND C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR ZERO
;IF C(AC) IS ZERO, THIS TEST PASSES.
B24600: SETZ ;PRELOAD AC WITH 0
HLLZ [0] ;*HLLZ SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC) IS ZERO.
STOP
;**********
;THIS TEST VERIFIES THAT HLLZI ALWAYS CLEARS THE AC.
;IN THIS CASE C(AC)=-1,,-1 AND E=0,,-1.
;THE RESULT IN THE AC SHOULD BE 0
;THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES
B24700: SETO ;PRELOAD AC WITH -1,,-1
HLLZI -1 ;*HLLZI SHOULD CLEAR THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,0 FC: AD LT AR + EN
;0,,-1 ET2: AR LT AD EN
;**********
;THIS TEST VERIFIES THAT HLLZI ALWAYS CLEARS THE AC.
;IN THIS CASE C(AC)=0 AND E=0,,-1.
;THE RESULT IN THE AC SHOULD BE 0
;THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES
B25000: SETZ ;PRELOAD AC WITH 0
HLLZI -1 ;*HLLZI SHOULD CLEAR THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT HLLZ PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC AND PLACES ZEROS INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,0. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0.
;IF C(AC)=-1,,0, THIS TEST PASSES.
B25100: SETO ;PRELOAD AC WITH -1,,-1
HLLZ [XWD -1,0] ;*HLLZ SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0.
STOP
;**********
;THIS TEST VERIFIES THAT HLLZ PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC AND PLACES ZEROS INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=0 AND C(E)=-1,,0. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0.
;IF C(AC)=-1,,0 THIS TEST PASSES.
B25200: SETZ ;PRELOAD AC WITH 0
HLLZ [XWD -1,0] ;*HLLZ SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0
STOP
;**********
;THIS TEST VERIFIES THAT HLLZ PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC AND PLACES ZEROS INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=0,,-1 AND C(E)=-1,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0.
;IF C(AC)=-1,,0, THIS TEST PASSES.
B25300: MOVEI -1 ;PRELOAD AC WITH -1,,-1
HLLZ [-1] ;*HLLZ SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0
STOP
;**********
;THIS TEST VERIFIES THAT HLLZ PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC AND PLACES ZEROS INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=-1,,0 AND C(E)=-1,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0.
;IF C(AC)=-1,,0 THIS TEST PASSES.
B25400: MOVSI -1 ;PRELOAD AC WITH -1,,0
HLLZ [-1] ;*HLLZ SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0.
STOP
;**********
;THIS TEST VERIFIES THAT HLLZ PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC AND PLACES ZEROS INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=0,,-1 AND C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR ZERO.
;IF C(AC) IS ZERO, THIS TEST PASSES.
B25500: MOVEI -1 ;PRELOAD AC WITH 0,,-1
HLLZ [0] ;*HLLZ SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC) IS ZERO.
STOP
;**********
;THIS TEST VERIFIES THAT HLLZ PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC AND PLACES ZEROS INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=-1,,0 AND C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR ZERO.
;IF C(AC) IS ZERO, THIS TEST PASSES.
B25600: MOVSI -1 ;PRELOAD AC WITH -1,,0
HLLZ [0] ;*HLLZ SHOULD PLACE -1,,0 INTO THE AC
SKIPE ;PASS IF C(AC) IS ZERO.
STOP
;**********
;THIS TEST VERIFIES THAT HLLZ PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC AND PLACES ZEROS INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=0,,-1 AND C(E)=-1,,0. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0.
;IF C(AC)=-1,,0, THIS TEST PASSES.
B25700: MOVEI -1 ;PRELOAD AC WITH 0,,-1
HLLZ [XWD -1,0] ;*HLLZ SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0
STOP
;**********
;THIS TEST VERIFIES THAT HLLZI ALWAYS CLEARS THE AC.
;IN THIS CASE C(AC)=0,,-1 AND E=0,,-1.
;THE RESULT IN THE AC SHOULD BE 0
;THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES
B26000: MOVEI -1 ;PRELOAD AC WITH 0,,-1
HLLZI -1 ;*HLLZI SHOULD CLEAR THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT HLLZ PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC AND PLACES ZEROS INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=-1,,0 AND C(E)=-1,,0. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0.
;IF C(AC)=-1,,0, THIS TEST PASSES.
B26100: MOVSI -1 ;PRELOAD AC WITH -1,,0
HLLZ [XWD -1,0] ;*HLLZ SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0
STOP
;**********
;THIS TEST VERIFIES THAT HLLZI ALWAYS CLEARS THE AC.
;IN THIS CASE C(AC)=-1,,0 AND E=0,,-1.
;THE RESULT IN THE AC SHOULD BE 0
;THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES
B26200: MOVSI -1 ;PRELOAD AC WITH -1,,0
HLLZI -1 ;*HLLZI SHOULD CLEAR THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT HRR PLACES THE RIGHT HALF OF C(E) INTO
;THE RIGHT HALF OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE AC=E AND C(AC)=C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES.
B26300: SETZ ;PRELOAD AC WITH 0
HRR ;*HRR SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0,,-1 FC: AD RT AR + EN
;-1,,0 FC: AD LT FM + EN
;**********
;THIS TEST VERIFIES THAT HRR PLACES THE RIGHT HALF OF C(E) INTO
;THE RIGHT HALF OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE AC=E AND C(AC)=C(E)=-1,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,-1. THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES.
B26500: SETO ;PRELOAD AC WITH -1,,-1
HRR ;*HRR SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,0 SW: FCE
;**********
;THIS TEST VERIFIES THAT HRR PLACES THE RIGHT HALF OF C(E) INTO
;THE RIGHT HALF OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE C(AC)=0 AND C(E)=-1,,0. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0. IF C(AC)=-1,,0, THIS TEST PASSES.
B26600: SETO ;PRELOAD AC WITH -1,,-1
HRR [XWD -1,0] ;*HRR SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0
STOP
;**********
;THIS TEST VERIFIES THAT HRRI PLACES E INTO
;THE RIGHT HALF OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED
;IN THIS CASE C(AC)=-1,,-1 AND E=0,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,-1. THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES.
B26700: SETO ;PRELOAD AC WITH -1,,-1
HRRI -1 ;*HRRI SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0,,-1 ET2: AR AD EN
;**********
;THIS TEST VERIFIES THAT HRR PLACES THE RIGHT HALF OF C(E) INTO
;THE RIGHT HALF OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE C(AC)=-1,,-1 AND C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0. IF C(AC)=-1,,0, THIS TEST PASSES.
B27000: SETO ;PRELOAD AC WITH -1,,-1
HRR [0] ;*HRR SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 ET2: AR AD EN
;**********
;THIS TEST VERIFIES THAT HRR PLACES THE RIGHT HALF OF C(E) INTO
;THE RIGHT HALF OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE C(AC)=0 AND C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES.
B27100: SETZ ;PRELOAD AC WITH 0
HRR [0] ;*HRR SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT HRR PLACES THE RIGHT HALF OF C(E) INTO
;THE RIGHT HALF OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE C(AC)=0 AND C(E)=-1,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES.
B27200: SETZ ;PRELOAD AC WITH 0
HRR [-1] ;*HRR SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HRRI PLACES E INTO
;THE RIGHT HALF OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED
;IN THIS CASE C(AC)=0 AND E=0,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES.
B27300: SETZ ;PRELOAD AC WITH 0
HRRI -1 ;*HRRI SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,-1 FC: AD LT FM + EN
;**********
;THIS TEST VERIFIES THAT HRR PLACES THE RIGHT HALF OF C(E) INTO
;THE RIGHT HALF OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE C(AC)=0 AND C(E)=-1,,0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES.
B27400: SETZ ;PRELOAD AC WITH 0
HRR [XWD -1,0] ;*HRR SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT HRR PLACES THE RIGHT HALF OF C(E) INTO
;THE RIGHT HALF OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE C(AC)=0,,-1 AND C(E)=-1,,0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES.
B27500: MOVEI -1 ;PRELOAD AC WITH 0,,-1
HRR [XWD -1,0] ;*HRR SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT HRRI PLACES E INTO
;THE RIGHT HALF OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED
;IN THIS CASE C(AC)=-1,,0 AND E=0,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,-1. THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES.
B27600: MOVSI -1 ;PRELOAD AC WITH -1,,0
HRRI -1 ;*HRRI SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HRRI PLACES E INTO
;THE RIGHT HALF OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED
;IN THIS CASE C(AC)=0,,-1 AND E=0,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES.
B27700: MOVEI -1 ;PRELOAD AC WITH 0,,-1
HRRI -1 ;*HRRI SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HRR PLACES THE RIGHT HALF OF C(E) INTO
;THE RIGHT HALF OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE C(AC)=-1,,0 AND C(E)=-1,,0. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0. IF C(AC)=-1,,0, THIS TEST PASSES.
B30000: MOVSI -1 ;PRELOAD AC WITH -1,,0
HRR [XWD -1,0] ;*HRR SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0
STOP
;**********
;THIS TEST VERIFIES THAT HRRZ PLACES THE RIGHT HALF OF C(E) INTO
;RIGHT HALF OF THE AC AND PLACES ZEROS INTO THE LEFT HALF OF THE AC
;IN THIS CASE, AC=E AND C(AC)=C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES.
B30100: SETZ ;PRELOAD AC,E WITH 0
HRRZ ;*HRRZ SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0,,-1 FC: AD RT AR + EN
;**********
;THIS TEST VERIFIES THAT HRRZI PLACES E INTO
;THE RIGHT HALF OF THE AC AND CLEARS THE LEFT HALF OF THE AC
;IN THIS CASE C(AC)=-1,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES
B30400: SETO ;PRELOAD AC WITH -1,,-1
HRRZI -1 ;*HRRZI SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HRRZI PLACES E INTO
;THE RIGHT HALF OF THE AC AND CLEARS THE LEFT HALF OF THE AC
;IN THIS CASE C(AC)=-1,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES
B30500: SETO ;PRELOAD AC WITH -1,,-1
HRRZI 0 ;*HRRZI SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0,,-1 FC: AD RT AR + EN
;**********
;THIS TEST VERIFIES THAT HRRZ PLACES THE RIGHT HALF OF C(E) INTO
;RIGHT HALF OF THE AC AND PLACES ZEROS INTO THE LEFT HALF OF THE AC
;IN THIS CASE C(AC)=-1,,-1 AND C(E)=-1,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES.
B30600: SETO ;PRELOAD AC WITH -1,,-1
HRRZ [XWD -1,0] ;*HRRZ SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;E SW: FCE
;-1,,0 ET2: AR RT AD EN
;**********
;THIS TEST VERIFIES THAT HRRZ PLACES THE RIGHT HALF OF C(E) INTO
;RIGHT HALF OF THE AC AND PLACES ZEROS INTO THE LEFT HALF OF THE AC
;IN THIS CASE C(AC)=-1,,-1 AND C(E)=-1,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES.
B30700: SETO ;PRELOAD AC WITH -1,,-1
HRRZ [-1] ;*HRRZ SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HRRZ PLACES THE RIGHT HALF OF C(E) INTO
;RIGHT HALF OF THE AC AND PLACES ZEROS INTO THE LEFT HALF OF THE AC
;IN THIS CASE C(AC)=0,,-1 AND C(E)=-1,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES.
B31000: MOVEI -1 ;PRELOAD AC WITH 0,,-1
HRRZ [-1] ;*HRRZ SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HRRZ PLACES THE RIGHT HALF OF C(E) INTO
;RIGHT HALF OF THE AC AND PLACES ZEROS INTO THE LEFT HALF OF THE AC
;IN THIS CASE C(AC)=0,,-1 AND C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES.
B31100: MOVEI -1 ;PRELOAD AC WITH 0,,-1
HRRZ [0] ;*HRRZ SHOULD PLACE 0 INTO THE AC
CAIE 0 ;PASS IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT HRRZ PLACES THE RIGHT HALF OF C(E) INTO
;RIGHT HALF OF THE AC AND PLACES ZEROS INTO THE LEFT HALF OF THE AC
;IN THIS CASE C(AC)=-1,,0 AND C(E)=-1,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES.
B31200: MOVSI -1 ;PRELOAD AC WITH -1,,0
HRRZ [-1] ;*HRRZ SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HRRZ PLACES THE RIGHT HALF OF C(E) INTO
;RIGHT HALF OF THE AC AND PLACES ZEROS INTO THE LEFT HALF OF THE AC
;IN THIS CASE C(AC)=-1,,0 AND C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES.
B31300: MOVSI -1 ;PRELOAD AC WITH -1,,0
HRRZ [0] ;*HRRZ SHOULD PLACE 0 INTO THE AC
CAIE 0 ;PASS IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT HRRZ PLACES THE RIGHT HALF OF C(E) INTO
;RIGHT HALF OF THE AC AND PLACES ZEROS INTO THE LEFT HALF OF THE AC
;IN THIS CASE C(AC)=0,,-1 AND C(E)=-1,,0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES.
B31400: MOVEI -1 ;PRELOAD AC WITH 0,,-1
HRRZ [XWD -1,0] ;*HRRZ SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT HRRZ PLACES THE RIGHT HALF OF C(E) INTO
;RIGHT HALF OF THE AC AND PLACES ZEROS INTO THE LEFT HALF OF THE AC
;IN THIS CASE C(AC)=-1,,0 AND C(E)=0,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES.
B31500: MOVSI -1 ;PRELOAD AC WITH -1,,0
HRRZ [XWD 0,-1] ;*HRRZ SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HRRZI PLACES E INTO
;THE RIGHT HALF OF THE AC AND CLEARS THE LEFT HALF OF THE AC
;IN THIS CASE C(AC)=0,,-1 AND E=0,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES
B31600: MOVEI -1 ;PRELOAD AC WITH 0,,-1
HRRZI -1 ;*HRRZI SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,1
STOP
;**********
;THIS TEST VERIFIES THAT HRRZ PLACES THE RIGHT HALF OF C(E) INTO
;RIGHT HALF OF THE AC AND PLACES ZEROS INTO THE LEFT HALF OF THE AC
;IN THIS CASE C(AC)=-1,,0 AND C(E)=-1,,0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES.
B31700: MOVSI -1 ;PRELOAD AC WITH -1,,0
HRRZ [XWD -1,0] ;*HRRZ SHOULD PLACE 0 INTO THE AC,0]
CAIE 0 ;PASS IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT HRL PLACES THE RIGHT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC. THE RIGHT HALF OF THE AC IS UNAFFECTED
;IN THIS CASE, AC=E AND C(AC)=C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES.
B32000: SETZ ;PRELOAD AC WITH 0
HRL ;*HRL SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT HRL PLACES THE RIGHT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC. THE RIGHT HALF OF THE AC IS UNAFFECTED
;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,-1. THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES.
B32100: SETO ;PRELOAD AC WITH -1,,-1
HRL [-1] ;*HRL SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;E,,-1 SW: FCE
;0,,-1 FC: AD RT FM + EN
;0,,-1 ET2: AR LT AR RT EN
;-1,,0 ET2: AR RT AD EN
;**********
;THIS TEST VERIFIES THAT HRL PLACES THE RIGHT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC. THE RIGHT HALF OF THE AC IS UNAFFECTED
;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES.
B32200: SETO ;PRELOAD AC WITH -1,,-1
HRL [0] ;*HRL SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HLR PLACES THE LEFT HALF OF C(E) INTO
;THE RIGHT HALF OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0. IF C(AC)=-1,,0, THIS TEST PASSES.
B32300: SETO ;PRELOAD AC WITH -1,,-1
HLR [0] ;*HLR SHOULD PLACE -1,,0 INTO THE AC
CAME [-1,,0] ;PASS IF C(AC)=-1,,0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 ET2: AR LT AD EN
;**********
;THIS TEST VERIFIES THAT HRL PLACES THE RIGHT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC. THE RIGHT HALF OF THE AC IS UNAFFECTED
;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0. IF C(AC)=-1,,0, THIS TEST PASSES.
B32600: SETZ ;PRELOAD AC WITH 0
HRL [-1] ;*HRL SHOULD PLACE -1,,0 INTO THE AC
CAME [-1,,0] ;PASS IF C(AC)=-1,,0
STOP
;**********
;THIS TEST VERIFIES THAT HLR PLACES THE LEFT HALF OF C(E) INTO
;THE RIGHT HALF OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES.
B32700: SETZ ;PRELOAD AC WITH 0
HLR [-1] ;*HLR SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 SW: FCE
;-1,,-1 FC: AD LT FM + EN
;0 ET2: AR RT AR LT EN
;**********
;THIS TEST VERIFIES THAT HRLI PLACES E INTO
;THE LEFT HALF OF THE AC. THE RIGHT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE C(AC)=-1,,-1 AND E=0,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,-1. THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES
B33000: SETZ ;PRELOAD AC WITH -1,,-1
HRLI -1 ;*HRLI SHOULD PLACE -1,,-1 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,-1 FC: AD RT FM + EN
;0 ET2: AR LT AR RT EN
;**********
;THIS TEST VERIFIES THAT HLR PLACES THE LEFT HALF OF C(E) INTO
;THE RIGHT HALF OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES.
B33100: SETZ ;PRELOAD AC WITH -1,,-1
HLR [XWD -1,0] ;*HLR SHOULD PLACE -1,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HRL PLACES THE RIGHT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC. THE RIGHT HALF OF THE AC IS UNAFFECTED
;IN THIS CASE, C(AC)=0 AND C(E)=-1,,0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES.
B33200: SETZ ;PRELOAD AC WITH 0
HRL [XWD -1,0] ;*HRL SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT HLRI ALWAYS CLEARS THE RIGHT HALF
;OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE, C(AC)=0 AND E=0,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR 0
;IF C(AC)=0, THIS TEST PASSES.
B33300: SETZ ;PRELOAD AC WITH 0
HLRI -1 ;*HLRI SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,0 FC:AD LT FM + EN
;**********
;THIS TEST VERIFIES THAT HRLI PLACES E INTO
;THE LEFT HALF OF THE AC. THE RIGHT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE C(AC)=-1,,-1 AND E=-1,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,-1. THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES
B33400: SETO ;PRELOAD AC WITH -1,,-1
HRLI -1 ;*HRLI SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,0 ET2: AR RT AD EN
;**********
;THIS TEST VERIFIES THAT HLR PLACES THE LEFT HALF OF C(E) INTO
;THE RIGHT HALF OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,0. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,-1. THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES.
B33500: SETO ;PRELOAD AC WITH -1,,-1
HLR [XWD -1,0] ;*HLR SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HRL PLACES THE RIGHT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC. THE RIGHT HALF OF THE AC IS UNAFFECTED
;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES.
B33600: SETO ;PRELOAD AC WITH -1,,-1
HRL [XWD -1,0] ;*HRL SHOULD PLACE 0,,-1 INTO THE AC
CAME [XWD 0,-1] ;PASS IF C(AC)=0,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HLRI ALWAYS CLEARS THE RIGHT HALF
;OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE, C(AC)=-1,,-1 AND E=0,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0
;IF C(AC)=-1,,0, THIS TEST PASSES.
B33700: SETO ;PRELOAD AC WITH -1,,-1
HLRI -1 ;*HLRI SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 ET2: AR LT AD EN
;**********
;THIS TEST VERIFIES THAT HRL PLACES THE RIGHT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC. THE RIGHT HALF OF THE AC IS UNAFFECTED
;IN THIS CASE, C(AC)=0,,-1 AND C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES.
B34000: MOVEI -1 ;PRELOAD AC WITH 0,,-1
HRL [0] ;*HRL SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HLRI ALWAYS CLEARS THE RIGHT HALF
;OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE, C(AC)=0,,-1 AND E=0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR 0
;IF C(AC)=0, THIS TEST PASSES.
B34100: MOVEI -1 ;PRELOAD AC WITH 0,,-1
HLRI ;*HLRI SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT HRL PLACES THE RIGHT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC. THE RIGHT HALF OF THE AC IS UNAFFECTED
;IN THIS CASE, C(AC)=0,,-1 AND C(E)=-1,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,-1. THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES.
B34200: MOVEI -1 ;PRELOAD AC WITH 0,,-1
HRL [-1] ;*HRL SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HLR PLACES THE LEFT HALF OF C(E) INTO
;THE RIGHT HALF OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE, C(AC)=0,,-1 AND C(E)=-1,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES.
B34300: MOVEI -1 ;PRELOAD AC WITH 0,,-1
HLR [-1] ;*HLR SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HRL PLACES THE RIGHT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC. THE RIGHT HALF OF THE AC IS UNAFFECTED
;IN THIS CASE, C(AC)=-1,,0 AND C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES.
B34400: MOVSI -1 ;PRELOAD AC WITH -1,,0
HRL [0] ;*HRL SHOULD PLACE 0 INTO THE AC
CAIE 0 ;PASS IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT HLR PLACES THE LEFT HALF OF C(E) INTO
;THE RIGHT HALF OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE, C(AC)=-1,,0 AND C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0. IF C(AC)=-1,,0, THIS TEST PASSES.
B34500: MOVSI -1 ;PRELOAD AC WITH -1,,0
HLR [0] ;*HLR SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0
STOP
;**********
;THIS TEST VERIFIES THAT HRL PLACES THE RIGHT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC. THE RIGHT HALF OF THE AC IS UNAFFECTED
;IN THIS CASE, C(AC)=-1,,0 AND C(E)=-1,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0. IF C(AC)=-1,,0, THIS TEST PASSES.
B34600: MOVSI -1 ;PRELOAD AC WITH -1,,0
HRL [-1] ;*HRL SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0
STOP
;**********
;THIS TEST VERIFIES THAT HLR PLACES THE LEFT HALF OF C(E) INTO
;THE RIGHT HALF OF THE AC. THE LEFT HALF OF THE AC IS UNAFFECTED.
;IN THIS CASE, C(AC)=-1,,0 AND C(E)=-1,,-1 HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,-1. THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES.
B34700: MOVSI -1 ;PRELOAD AC WITH -1,,0
HLR [-1] ;*HLR SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HLLM PLACES THE LEFT HALF OF C(AC) INTO
;THE LEFT HALF OF E. THE RIGHT HALF OF E IS UNAFFECTED.
;IN THIS CASE, AC=E AND C(AC)= C(E)=0. HENCE, THE RESULT IN E
;SHOULD BE 0. E IS CHECKED FOR 0. IF C(E)=0, THIS TEXT PASSES.
B35000: SETZ ;PRELOAD AC,E WITH 0
HLLM ;*HLLM SHOULD PLACE 0 INTO E
SKIPE ;PASS IF C(E)=0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,0 0 FC: AD FM + EN
;0,,-1 0,,-1 ET0: AD RT BR + EN
;B35000 0,,-1 ET0: BR AR EN
;-1,,0 0,,-1 ET0: AD LT AR + EN
;**********
;THIS TEST VERIFIES THAT HLLM PLACES THE LEFT HALF OF C(AC) INTO
;THE LEFT HALF OF E. THE RIGHT HALF OF E IS UNAFFECTED.
;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-1. HENCE, THE RESULT IN E
;SHOULD BE 0,,-1. E IS CHECKED FOR 0,,-1. IF C(E)=0,,-1, THIS TEST PASSES.
B35500: SETZ ;PRELOAD AC WITH 0
SETO 1, ;PRELOAD E WITH -1,,-1
HLLM 1 ;*HLLM SHOULD PLACE 0,,-1 INTO E
CAIE 1,- 1 ;PASS IF C(E) =0,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 -1,,-1 SW: FCE PSE
;0 0 SW: ET0
;0 -1,,-1 ET0: AR AD EN
;0 0 ET2: AR LT AD EN
;**********
;THIS TEST VERIFIES THAT HLLM PLACES THE LEFT HALF OF C(AC) INTO
;THE LEFT HALF OF E. THE RIGHT HALF OF E IS UNAFFECTED.
;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=0. HENCE, THE RESULT IN E
;SHOULD BE -1,,0. E IS CHECKED FOR -1,,0. IF C(E)=-1,,0, THIS TEST PASSES
B35600: SETO ;PRELOAD AC WITH -1,,-1
SETZ 1, ;PRELOAD E WITH 0
HLLM 1 ;*HLLM SHOULD PLACE -1,,0 INTO E
CAME 1,[XWD -1,0] ;PASS IF C(E) = -1,,0
STOP
;**********
;THIS TEST VERIFIES THAT HRRM PLACES THE RIGHT HALF OF C(AC) INTO
;THE RIGHT HALF OF E. THE LEFT HALF OF E IS UNAFFECTED.
;IN THIS CASE, C(AC)=0 AND C(E)=-1,,-1. HENCE, THE RESULT IN E
;SHOULD BE -1,,0. E IS CHECKED FOR -1,,0
;IF C(E) = -1,,0, THIS TEST PASSES.
B35700: SETZ ;PRELOAD AC WITH 0
SETO 1, ;PRELOAD E WITH -1,,-1
HRRM 1 ;*HRRM SHOULD PLACE -1,,0 INTO E
CAME 1,[XWD -1,0] ;PASS IF C(E) = -1,,0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 -1,,-1 SW: FCE PSE
;0 0 SW: ET0
;0 -1,,-1 FC: AD FM + EN
;-1,,-1 -1,,-1 ET0: AD LT BR + EN
;0 -1,,-1 ET0: AD RT AR + EN
;0 0 ET0: BR AR EN
;0 -1,,-1 ET0: AR AD EN
;0 0 ET2: AR AD EN
;**********
;THIS TEST VERIFIES THAT HRRM PLACES THE RIGHT HALF OF C(AC) INTO
;THE RIGHT HALF OF E. THE LEFT HALF OF E IS UNAFFECTED.
;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=0. HENCE, THE RESULT IN E
;SHOULD BE 0,,-1. E IS CHECKED FOR = 0,,-1
;IF C(E) = 0,,-1, THIS TEST PASSES.
B36000: SETO ;PRELOAD AC WITH -1,,-1
SETZ 1, ;PRELOAD E WITH 0
HRRM 1 ;*HRRM SHOULD PLACE 0,,-1 INTO E
CAIE 1,-1 ;PASS IF C(E) = 0,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HLLO PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC AND PLACES ONES INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, AC=E AND C(AC)=C(E)=-1,,-1. HENCE THE RESULT IN THE AC
;SHOULD BE -1,,-1. THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES.
B36100: SETO ;PRELOAD AC WITH -1,,-1
HLLO ;*HLLO SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS OF C(AC)=-1,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0,,-1 SW: FCE
;**********
;THIS TEST VERIFIES THAT HLLO PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC AND PLACES ONES INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=0 AND C(E)=0,,-1. HENCE THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES.
B36200: SETZ ;PRELOAD AC WITH 0
HLLO [XWD 0,-1] ;*HLLO SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,-1 FC: AD LT AR + EN
;**********
;THIS TEST VERIFIES THAT HRRO PLACES THE RIGHT HALF OF C(E) INTO
;THE RIGHT HALF OF THE AC AND PLACES ONES INTO THE LEFT HALF OF THE AC.
;IN THIS CASE, AC=E AND C(AC)=C(E)=-1,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,-1. THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES.
B36300: SETO ;PRELOAD AC,E WITH -1,,-1
HRRO ;*HRRO SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,0 SW: FCE
;**********
;THIS TEST VERIFIES THAT HRRO PLACES THE RIGHT HALF OF C(E) INTO
;THE RIGHT HALF OF THE AC AND PLACES ONES INTO THE LEFT HALF OF THE AC.
;IN THIS CASE, C(AC)=0 AND C(E)=-1,,0. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0. IF C(AC)=-1,,0, THIS TEST PASSES.
B36400: SETZ ;PRELOAD AC WITH 0
HRRO [XWD -1,0] ;*HRRO SHOULD PLACE -1,,0 INTO THE AC
CAME [-1,,0] ;PASS IF C(AC)=-1,,0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,-1 FC: AD RT AR + EN
;**********
;THIS TEST VERIFIES THAT HLLO PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC AND PLACES ONES INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=0 AND C(E)=0. HENCE THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES.
B36500: SETZ ;PRELOAD AC WITH 0
HLLO [0] ;*HLLO SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 ET2: AR LT AD EN
;**********
;THIS TEST VERIFIES THAT HRRO PLACES THE RIGHT HALF OF C(E) INTO
;THE RIGHT HALF OF THE AC AND PLACES ONES INTO THE LEFT HALF OF THE AC.
;IN THIS CASE, C(AC)=0 AND C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0. IF C(AC)=-1,,0, THIS TEST PASSES.
B36600: SETZ ;PRELOAD AC WITH 0
HRRO [0] ;*HRRO SHOULD PLACE -1,,0 INTO THE AC
CAME [-1,,0] ;PASS IF C(AC)=-1,,0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 ET2: AR AD EN
;**********
;THIS TEST VERIFIES THAT HLLOI ALWAYS PLACES 0,,-1 INTO THE AC.
;IN THIS CASE, C(AC)=0 AND E=0.
;THE RESULT IN THE AC SHOULD BE 0,,-1.
;THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES
B37100: SETZ ;PRELOAD AC WITH 0
HLLOI ;*HLLOI SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,-1 FC: AD LT AR + EN
;0 ET2: AR AD EN
;**********
;THIS TEST VERIFIES THAT HRROI PLACES E INTO THE RIGHT HALF OF THE AC
;AND PLACES ONES INTO THE LEFT HALF OF THE AC.
;IN THIS CASE, C(AC)=0 AND E=0. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0. IF C(AC)=-1, THIS TEST PASSES
B37200: SETZ ;PRELOAD AC WITH 0
HRROI ;*HRROI SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,-1 FC: AD RT AR + EN
;0 ET2: AR AD EN
;**********
;THIS TEST VERIFIES THAT HLLO PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC AND PLACES ONES INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=0 AND C(E)=-1,,0. HENCE THE RESULT IN THE AC
;SHOULD BE -1,,-1. THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES.
B37300: SETZ ;PRELOAD AC WITH 0
HLLO [XWD -1,0] ;*HLLO SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HRROI PLACES E INTO THE RIGHT HALF OF THE AC
;AND PLACES ONES INTO THE LEFT HALF OF THE AC.
;IN THIS CASE, C(AC)=0 AND E=0,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,-1. THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES
B37400: SETZ ;PRELOAD AC WITH 0
HRROI -1 ;*HRRIO SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HLLOI ALWAYS PLACES 0,,-1 INTO THE AC.
;IN THIS CASE, C(AC)=0 AND E=0.
;THE RESULT IN THE AC SHOULD BE 0,,-1.
;THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES
B37500: SETO ;PRELOAD AC WITH -1,,-1
HLLOI ;*HLLOI SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HRROI PLACES E INTO THE RIGHT HALF OF THE AC
;AND PLACES ONES INTO THE LEFT HALF OF THE AC.
;IN THIS CASE, C(AC)=0 AND E=0. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0. IF C(AC)=-1,,0, THIS TEST PASSES
B37600: SETO ;PRELOAD AC WITH -1,,-1
HRROI ;*HRRIO SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0
STOP
;**********
;THIS TEST VERIFIES THAT HLLO PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC AND PLACES ONES INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,0. HENCE THE RESULT IN THE AC
;SHOULD BE -1,,-1. THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES.
B37700: SETO ;PRELOAD AC WITH -1,,-1
HLLO [XWD -1,0] ;*HLLO SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HRROI PLACES E INTO THE RIGHT HALF OF THE AC
;AND PLACES ONES INTO THE LEFT HALF OF THE AC.
;IN THIS CASE, C(AC)=-1,,-1 AND E=0,,-1. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,-1. THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES
B40000: SETO ;PRELOAD AC WITH -1,,-1
HRROI -1 ;*HRRIO SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HRROI PLACES E INTO THE RIGHT HALF OF THE AC
;AND PLACES ONES INTO THE LEFT HALF OF THE AC.
;IN THIS CASE, C(AC)=0,,-1 AND E=0. HENCE, THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0. IF C(AC)=-1,,0, THIS TEST PASSES
B40100: MOVEI -1 ;PRELOAD AC WITH 0,,-1
HRROI ;*HRRIO SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0
STOP
;**********
;THIS TEST VERIFIES THAT HLLO PLACES THE LEFT HALF OF C(E) INTO
;THE LEFT HALF OF THE AC AND PLACES ONES INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=-1,,0 AND C(E)=0,,-1. HENCE THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES.
B40200: MOVSI -1 ;PRELOAD AC WITH -1,,0
HLLO [XWD 0,-1] ;*HLLO SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HRLZ PLACES THE RIGHT HALF OF C(E)
;INTO THE LEFT HALF OF THE AC.
;AND PLACES ZEROS INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, AC=E AND C(AC)=C(E)=0. HENCE, THE FINAL RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES.
B40300: SETZ ;PRELOAD AC WITH 0
HRLZ ;*HRLZ SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT HLRZ PLACES THE LEFT HALF OF C(E)
;INTO THE RIGHT HALF OF THE AC
;AND PLACES ZEROS INTO THE LEFT HALF OF THE AC.
;IN THIS CASE, AC=E AND C(AC)=C(E)=0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0. THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES.
B40400: SETZ ;PRELOAD AC WITH 0
HLRZ ;*HLRZ SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT HRLZI PLACES E INTO THE LEFT HALF OF THE AC
;AND PLACES ZEROS INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=0 AND E=0,,-1. HENCE THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0
;IF C(AC)=-1,,0, THIS TEST PASSES.
B40700: SETZ ;PRELOAD AC WITH 0
HRLZI -1 ;*HRLZI SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0.
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 ET2: AR LT AR RT EN
;**********
;THIS TEST VERIFIES THAT HLRZ PLACES THE LEFT HALF OF C(E)
;INTO THE RIGHT HALF OF THE AC
;AND PLACES ZEROS INTO THE LEFT HALF OF THE AC.
;IN THIS CASE, C(AC)=0 AND C(E)=-1,,0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES.
B41000: SETZ ;PRELOAD AC WITH 0
HLRZ [XWD -1,0] ;*HLRZ SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 SW: FCE
;-1,,0 ET2: AR RT AR LT EN
;**********
;THIS TEST VERIFIES THAT HRLZI PLACES E INTO THE LEFT HALF OF THE AC
;AND PLACES ZEROS INTO THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=-1,,-1 AND E=0,,-1. HENCE THE RESULT IN THE AC
;SHOULD BE -1,,0. THE AC IS CHECKED FOR -1,,0.
;IF C(AC)=-1,,0, THIS TEST PASSES.
B41100: SETO ;PRELOAD AC WITH -1,,-1
HRLZI -1 ;*HRLZI SHOULD PLACE -1,,0 INTO THE AC
CAME [XWD -1,0] ;PASS IF C(AC)=-1,,0.
STOP
;**********
;THIS TEST VERIFIES THAT HLRZ PLACES THE LEFT HALF OF C(E)
;INTO THE RIGHT HALF OF THE AC
;AND PLACES ZEROS INTO THE LEFT HALF OF THE AC.
;IN THIS CASE, C(AC)=-1,,-1 AND C(E)=-1,,0. HENCE, THE RESULT IN THE AC
;SHOULD BE 0,,-1. THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST PASSES.
B41200: SETO ;PRELOAD AC WITH -1,,-1
HLRZ [XWD -1,0] ;*HLRZ SHOULD PLACE 0,,-1 INTO THE AC
CAIE -1 ;PASS IF C(AC)=0,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HLLE PLACES THE LEFT HALF OF C(E)
;INTO THE LEFT HALF OF THE AC
;AND PLACES BIT 0 OF C(E) INTO ALL BITS OF THE RIGHT HALF OF THE AC.
;IN THIS CASE, AC=E AND C(AC)=C(E)=0. HENCE, THE RESULT IN THE AC SHOULD BE 0
;THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES
B41500: SETZ ;PRELOAD AC WITH 0
HLLE ;*HLLE SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,0 FC: AD LT AR + EN
;**********
;THIS TEST VERIFIES THAT HLLE PLACES THE LEFT HALF OF C(E)
;INTO THE LEFT HALF OF THE AC
;AND PLACES BIT 0 OF C(E) INTO ALL BITS OF THE RIGHT HALF OF THE AC.
;IN THIS CASE C(AC)=0 AND C(E)=-1,,-1. HENCE, THE RESULT IN THE AC SHOULD BE -1,,-1
;THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES
B41600: SETZ ;PRELOAD AC WITH 0
HLLE [-1] ;*HLLE SHOULD PLACE -1,,-1 INTO THE AC
CAME [XWD -1,-1] ;PASS IF C(AC)=-1,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 SW: FCE
;-1,,-1 ET2: AR LT AD EN
;-1,,0 ET2: AR0(1): AR RT AD EN
;**********
;THIS TEST VERIFIES THAT HRRE PLACES THE RIGHT HALF OF C(E)
;INTO THE RIGHT HALF OF THE AC.
;AND PLACES BIT 18 OF C(E) INTO ALL BITS OF THE LEFT HALF OF THE AC.
;IN THIS CASE C(AC)=0 AND C(E)=-1,,-1. HENCE, THE RESULT IN THE AC SHOULD BE -1,,-1.
;THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES.
B42000: SETZ ;PRELOAD AC WITH 0
HRRE [-1] ;*HRRE SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1,,-1] ;PASS IF C(AC)=-1,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HLLE PLACES THE LEFT HALF OF C(E)
;INTO THE LEFT HALF OF THE AC
;AND PLACES BIT 0 OF C(E) INTO ALL BITS OF THE RIGHT HALF OF THE AC.
;IN THIS CASE C(AC)=0 AND C(E)=-1,,0. HENCE, THE RESULT IN THE AC SHOULD BE -1,,-1
;THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES
B42200: SETZ ;PRELOAD AC WITH 0
HLLE [XWD -1,0] ;*HLLE SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HRRE PLACES THE RIGHT HALF OF C(E)
;INTO THE RIGHT HALF OF THE AC.
;AND PLACES BIT 18 OF C(E) INTO ALL BITS OF THE LEFT HALF OF THE AC.
;IN THIS CASE, AC=E AND C(AC)=C(E)=0. HENCE, THE RESULT IN THE AC SHOULD BE 0.
;THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES.
B42300: SETZ ;PRELOAD AC,E WITH 0
HRRE ;*HRRE SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;E SW: FCE
;-1,,0 ET2: AR RT AD EN
;0,,-1 ET2: AR18(1): AR LT AD EN
;0,,-1 FC: AR RT AR + EN
;**********
;THIS TEST VERIFIES THAT HRRE PLACES THE RIGHT HALF OF C(E)
;INTO THE RIGHT HALF OF THE AC.
;AND PLACES BIT 18 OF C(E) INTO ALL BITS OF THE LEFT HALF OF THE AC.
;IN THIS CASE C(AC)=0 AND C(E)=-1,,0. HENCE, THE RESULT IN THE AC SHOULD BE 0.
;THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES.
B42500: SETZ ;PRELOAD AC WITH 0
HRRE [XWD -1,0] ;*HRRE SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT HRREI PLACES E INTO THE RIGHT HALF OF THE AC
;AND PLACES THE LEFTMOST BIT OF E INTO ALL BITS OF THE LEFT HALF OF THE AC
;IN THIS CASE, C(AC)=0 AND E=0,,-1. HENCE, THE RESULT IN THE AC SHOULD BE -1,,-1.
;THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES.
B42700: SETZ ;PRELOAD AC WITH 0
HRREI -1 ;*HRREI SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,0 ET2: AR RT AD EN
;0,,-1 ET2: AR18(1): AR LT AD EN
;**********
;THIS TEST VERIFIES THAT HLLEI ALWAYS CLEARS THE AC.
;IN THIS CASE, C(AC)=-1,,-1 AND E=0,,-1.
;THE RESULT IN THE AC SHOULD BE 0
;THE AC IS CHECKED FOR 0.
;IF C(AC)=0, THIS TEST PASSES.
B43000: SETO ;PRELOAD AC WITH -1,,-1
HLLEI -1 ;*HLLEI SHOULD CLEAR THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,0 FC: AD LT AR + EN
;0,,-1 ET2: AR LT AD EN
;**********
;THIS TEST VERIFIES THAT HLLEI ALWAYS CLEARS THE AC.
;IN THIS CASE, C(AC)=-1,,-1 AND E=0,,400000.
;THE RESULT IN THE AC SHOULD BE 0
;THE AC IS CHECKED FOR 0.
;IF C(AC) = ZERO, THIS TEST PASSES.
B43100: SETO ;PRELOAD AC WITH -1,,-1
HLLEI 400000 ;*HLLEI SHOULD CLEAR THE AC
SKIPE ;PASS IF C(AC)=0.
STOP
;**********
;THIS TEST VERIFIES THAT HRLE PLACES THE RIGHT HALF OF C(E)
;INTO THE LEFT HALF OF THE AC
;AND PLACES BIT 18 OF C(E) INTO ALL BITS OF THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=0 AND C(E)=0. HENCE, THE RESULT IN THE AC SHOULD BE 0.
;THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST FAILS
B43400: SETZ ;PRELOAD AC WITH 0
HRLE ;*HRLE SHOULD PLACE 0 INTO THE AC
SKIPE ;FAIL IF C(AC)=0,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HRLEI PLACES E INTO THE LEFT HALF OF THE AC
;AND PLACES THE LEFTMOST BIT OF E INTO ALL BITS OF THE RIGHT HALF OF THE AC
;IN THIS CASE, C(AC)=0 AND E=0,,-1. HENCE, THE RESULT IN THE AC SHOULD -1,,-1
;THE AC IS CHECKED FOR -1,,-1. IF C(AC)=1,,-1, THIS TEST PASSES.
B43500: SETZ ;PRELOAD AC WITH 0
HRLEI -1 ;*HRLEI SHOULD PLACE -1,,-1 INTO THE AC
CAME [XWD -1,-1] ;PASS IF C(AC)=-1,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,0 ET2: AR LT AR RT EN
;-1,,0 ET2: AR 18(1): AR RT AD EN
;**********
;THIS TEST VERIFIES THAT HRLE PLACES THE RIGHT HALF OF C(E)
;INTO THE LEFT HALF OF THE AC
;AND PLACES BIT 18 OF C(E) INTO ALL BITS OF THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=0 AND C(E)=0. HENCE, THE RESULT IN THE AC SHOULD BE 0.
;THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST FAILS
B43600: HRLE [0] ;*HRLE SHOULD PLACE 0 INTO THE AC
SKIPE ;FAIL IF C(AC)=0,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;E,,0 SW: FCE
;**********
;THIS TEST VERIFIES THAT HRLE PLACES THE RIGHT HALF OF C(E)
;INTO THE LEFT HALF OF THE AC
;AND PLACES BIT 18 OF C(E) INTO ALL BITS OF THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=0 AND C(E)=0. HENCE, THE RESULT IN THE AC SHOULD BE 0.
;THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST FAILS
B43700: HRLE [-1] ;PRELOAD AC WITH 0
CAME [-1] ;*HRLE SHOULD PLACE 0 INTO THE AC
STOP ;FAIL IF C(AC)=0,,-1
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;-1,,0 ET2: AR LT AR RT EN
;-1,,0 ET2: AR18(1): AR RT AD EN
;**********
;THIS TEST VERIFIES THAT HRLE PLACES THE RIGHT HALF OF C(E)
;INTO THE LEFT HALF OF THE AC
;AND PLACES BIT 18 OF C(E) INTO ALL BITS OF THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=0 AND C(E)=0. HENCE, THE RESULT IN THE AC SHOULD BE 0.
;THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST FAILS
B44000: HRLE [XWD -1,0] ;PRELOAD AC WITH 0
SKIPE ;*HRLE SHOULD PLACE 0 INTO THE AC
STOP ;FAIL IF C(AC)=0,,-1
;**********
;THIS TEST VERIFIES THAT HRLE PLACES THE RIGHT HALF OF C(E)
;INTO THE LEFT HALF OF THE AC
;AND PLACES BIT 18 OF C(E) INTO ALL BITS OF THE RIGHT HALF OF THE AC.
;IN THIS CASE, C(AC)=0 AND C(E)=0. HENCE, THE RESULT IN THE AC SHOULD BE 0.
;THE AC IS CHECKED FOR 0,,-1. IF C(AC)=0,,-1, THIS TEST FAILS
B44100: HRLE [XWD 0,-1] ;PRELOAD AC WITH 0
CAME [-1] ;*HRLE SHOULD PLACE 0 INTO THE AC
STOP ;FAIL IF C(AC)=0,,-1
;**********
;THIS TEST VERIFIES THAT HLRE PLACES THE LEFT HALF OF C(E)
;INTO THE RIGHT HALF OF THE AC
;AND PLACES BIT 0 OF C(E) INTO ALL BITS OF THE LEFT HALF OF THE AC
;IN THIS CASE, C(AC=0 AND C(E)=0. HENCE, THE RESULT IN THE AC SHOULD BE 0.
;THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES
B44200: SETZ ;PRELOAD AC WITH 0
HLRE ;*HLRE SHOULD PLACE 0 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT HLRE PLACES THE LEFT HALF OF C(E)
;INTO THE RIGHT HALF OF THE AC
;AND PLACES BIT 0 OF C(E) INTO ALL BITS OF THE LEFT HALF OF THE AC
;IN THIS CASE, C(AC=0 AND C(E)=0. HENCE, THE RESULT IN THE AC SHOULD BE 0.
;THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES
B44300: SETZ ;PRELOAD AC WITH 0
HLRE [-1] ;*HLRE SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 SW: FCE
;-1,,0 ET2: AR RT AR LT EN
;0,,-1 ET2: AR0(1): AR LT AD EN
;**********
;THIS TEST VERIFIES THAT HLREI CLEARS THE AC
;IN THIS CASE C(AC)=-1,,-1 AND E=0,,-1
;THE RESULT IN THE AC SHOULD BE 0
;THE AC IS CHECKED FOR 0. IF C(AC)=0, THEN TEST PASSES
B44500: SETO ;PRELOAD AC WITH -1,,-1
HLREI -1 ;*HLREI SHOULD CLEAR THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0,,1 ET2: AR RT AR LT EN
;**********
;THIS TEST VERIFIES THAT HLREI CLEARS THE AC
;IN THIS CASE C(AC)=0 AND E=0
;THE RESULT IN THE AC SHOULD BE 0
;THE AC IS CHECKED FOR 0. IF C(AC)=0, THE TEST PASSES
B44600: HLREI ;*HLREI SHOULD CLEAR THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT HLRE PLACES THE LEFT HALF OF C(E)
;INTO THE RIGHT HALF OF THE AC
;AND PLACES BIT 0 OF C(E) INTO ALL BITS OF THE LEFT HALF OF THE AC
;IN THIS CASE, C(E)=-1,,0. HENCE, THE RESULT IN THE AC SHOULD BE -1,,-1.
;THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES
B44700: HLRE [XWD -1,0] ;*HLRE SHOULD PLACE -1,,0 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HLRE PLACES THE LEFT HALF OF C(E)
;INTO THE RIGHT HALF OF THE AC
;AND PLACES BIT 0 OF C(E) INTO ALL BITS OF THE LEFT HALF OF THE AC
;IN THIS CASE, C(E)=0,,-1. HENCE, THE RESULT IN THE AC SHOULD BE 0.
;THE AC IS CHECKED FOR 0. IF C(AC)=0, THIS TEST PASSES
B45000: HLRE [XWD 0,-1] ;*HLRE SHOULD PLACE 0,,-1 INTO THE AC
SKIPE ;PASS IF C(AC)=0
STOP
;**********
;THIS TEST VERIFIES THAT HLRE PLACES THE LEFT HALF OF C(E)
;INTO THE RIGHT HALF OF THE AC
;AND PLACES BIT 0 OF C(E) INTO ALL BITS OF THE LEFT HALF OF THE AC
;IN THIS CASE, C(E)=-1,,-1. HENCE, THE RESULT IN THE AC SHOULD BE -1,,-1.
;THE AC IS CHECKED FOR -1,,-1. IF C(AC)=-1,,-1, THIS TEST PASSES
B45100: HLRE [-1] ;*HLRE SHOULD PLACE -1,,-1 INTO THE AC
CAME [-1] ;PASS IF C(AC)=-1,,-1
STOP
;**********
;THIS TEST VERIFIES THAT HLREM PLACES THE LEFT HALF OF C(AC)
;INTO THE RIGHT HALF OF E
;AND PLACES BIT 0 OF C(AC) INTO ALL BITS OF THE LEFT HALF OF E.
;IN THIS CASE, C(AC)=1,,0 AND C(E)=0. HENCE, THE RESULT IN E SHOULD BE -1,,-1.
;E IS CHECKED FOR -1,,-1. IF C(E)=-1,,-1, THIS TEST PASSES
B45200: SETZ ;PRELOAD E WITH 0
MOVE 1,[XWD -1,0] ;PRELOAD AC WITH -1,,0
HLREM 1, ;*HLREM SHOULD PLACE -1,,-1 INTO E
CAME [-1] ;PASS IF C(E)=-1,,-1
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 -1,,0 SW: SCE
;0 -1,,0 SW: ET0
;0 -1,,0 ET0: AR AD EN
;-1,,0 -1,,0 ET2: AR RT AR + EN
;0,,-1 -1,,0 ET2: AR0(1): AR LT AD EN
;**********
;THIS TEST VERIFIES THAT HRLM PLACES THE RIGHT HALF OF C(AC) INTO THE LEFT HALF OF E.
;THE RIGHT HALF OF E IS UNAFFECTED
;IN THIS CASE, C(AC)=0,,-1 AND C(E)=0. HENCE, THE RESULT IN E SHOULD BE -1,,0.
;E IS CHECKED FOR -1,,0. IF C(E)=-1,,0, THIS TEST PASSES.
B45400: SETZ ;PRELOAD E WITH 0
MOVEI 1,-1 ;PRELOAD AC WITH 0,,-1
HRLM 1, ;*HRLM SHOULD PLACE -1,,0 INTO E
CAME [XWD -1,0] ;PASS IF C(E)=-1,,0
STOP
;***** FAILURE ANALYSIS *****
;C(AC0) C(AC1) FAILING SIGNAL
;0 0,,-1 SW: FCE PSE
;0,,-1 0,,-1 SW: ET0
;-1,,-1 0,,-1 ET0: AD RT BR + EN
;-1,,B45400 0,,-1 ET0: BR AR EN
;0 0,,-1 ET0: AR AD EN
;0 0,,-1 ET2: AR LT AR RT EN
;**********
SUBTTL SUPPLEMENTARY ADDER TESTS - FLT 1 + 0
;**********
SN=45500
XX=0
B45500: REPEAT ^D18,<
;THIS TEST VERIFIES THAT THE RESULT OF A ZERO ADDED TO A FLOATING ONE
;IS THE FLOATING ONE.
;THIS TEST IS REPEATED 36 TIMES TO FLOAT A ONE THRU ALL 36 BITS OF THE ADDER.
;THIS TEST IS DESIGNED TO TEST THE ADDER AND RELATED DATA PATHS ONLY.
SN=SN+1
XX=XX+XX
IFE XX,<XX=1>
HRRZI XX ;PRELOAD AC WITH FLOATING ONE
ADD [0] ;ADD ZERO TO A FLOATING ONE
CAME [XX] ;CHECK ADDER UPON FAILURE
STOP
;**********
>
PAGE
XX=0
REPEAT ^D18,<
;THIS TEST VERIFIES THAT THE RESULT OF A ZERO ADDED TO A FLOATING ONE
;IS THE FLOATING ONE.
;THIS TEST IS REPEATED 36 TIMES TO FLOAT A ONE THRU ALL 36 BITS OF THE ADDER.
;THIS TEST IS DESIGNED TO TEST THE ADDER AND RELATED DATA PATHS ONLY.
SN=SN+1
XX=XX+XX
IFE XX,<XX=1>
HRLZI XX ;PRELOAD AC WITH FLOATING ONE
ADD [0] ;ADD ZERO TO A FLOATING ONE
CAME [XX,,0] ;CHECK ADDER UPON FALIRE
STOP
;**********
>
SUBTTL SUPPLEMENTARY ADDER TESTS - O + FLT 0
;**********
SN=45600
B45600: REPEAT ^D18,<
;THIS TEST VERIFIES THAT THE RESULT OF A FLOATING ZERO ADDED TO A ZERO
;IS THE FLOATING ZERO.
;THIS TEST IS REPEATED 36 TIMES TO FLOAT A ZERO THRU ALL 36 BITS OF THE ADDER.
;THIS TEST IS DESIGNED TO TEST THE ADDER AND RELATED DATA PATHS ONLY.
SN=SN+1
XX=<XX+XX+1>&777777
IFE <XX-1>,<XX=777776>
SETZ ;PRELOAD AC WITH 0
ADD [-1,,XX] ;ADD A FLOATING ZERO TO ZERO
CAME [-1,,XX] ;CHECK ADDER UPON FAILURE
STOP
;**********
>
PAGE
XX=0
REPEAT ^D18,<
;THIS TEST VERIFIES THAT THE RESULT OF A FLOATING ZERO ADDED TO A ZERO
;IS THE FLOATING ZERO.
;THIS TEST IS REPEATED 36 TIMES TO FLOAT A ONE THRU ALL 36 BITS OF THE ADDER.
;THIS TEST IS DESIGNED TO TEST THE ADDER AND RELATED DATA PATHS ONLY.
SN=SN+1
XX=<XX+XX+1>&777777
IFE <XX-1>,<XX=777776>
SETZ ;PRELOAD AC WITH 0
ADD [XX,,-1] ;ADD A FLOATING ZERO TO ZERO
CAME [XX,,-1] ;CHECK ADDER UPON FAILURE
STOP
;**********
>
SUBTTL SUPPLEMENTARY ADDER TESTS - FLT 1 + FLT 1
;**********
SN=45700
XX=0
B45700: REPEAT ^D17,<
;THIS TEST VERIFIES THAT THE RESULT OF A FLOATING ONE
;ADDED TO A FLOATING ONE IS A FLOATING ONE
;PLACED ONE BIT POSITION LEFT OF THE ORIGINAL FLOATING ONE.
;THIS TEST IS REPEATED 36 TIMES TO FLOAT A ONE THRU ALL 36 BITS OF THE ADDER.
;THIS TEST IS DESIGNED TO TEST THE ADDER AND RELATED DATA PATHS ONLY.
SN=SN+1
XX=XX+XX
IFE XX,<XX=1>
HRRZI XX ;PRELOAD AC WITH A FLOATING ONE
ADD [XX] ;ADD A FLOATING ONE TO ITSELF
CAME [XX+XX] ;CHECK ADDER UPON FAILURE
STOP
;**********
>
PAGE
;THIS TEST VERIFIES THAT THE RESULT OF A FLOATING ONE
;ADDED TO A FLOATING ONE IS A FLOATING ONE
;PLACED ONE BIT POSITION LEFT OF THE ORIGINAL FLOATING ONE.
;THIS TEST IS REPEATED 36 TIMES TO FLOAT A ONE THRU ALL 36 BITS OF THE ADDER.
;THIS TEST IS DESIGNED TO TEST THE ADDER AND RELATED DATA PATHS ONLY.
SN=SN+1
XX=XX+XX
HRRZI XX ;PRELOAD AC WITH A FLOATING ONE
ADD [XX] ;ADD A FLOATING ONE TO ITSELF
CAME [1,,0] ;CHECK ADDRESS UPON FAILURE
STOP
;**********
XX=0
REPEAT ^D17,<
;THIS TEST VERIFIES THAT THE RESULT OF A FLOATING ONE
;ADDED TO A FLOATING ONE IS A FLOATING ONE
;PLACED ONE BIT POSITION LEFT OF THE ORIGINAL FLOATING ONE.
;THIS TEST IS REPEATED 36 TIMES TO FLOAT A ONE THRU ALL 36 BITS OF THE ADDER.
;THIS TEST IS DESIGNED TO TEST THE ADDER AND RELATED DATA PATHS ONLY.
SN=SN+1
XX=XX+XX
IFE XX,<XX=1>
HRLZI XX ;PRELOAD AC WITH A FLOATING ONE
ADD [XX,,0] ;ADD A FLOATING ONE TO ITSELF
CAME [XX+XX,,0] ;CHECK ADDER UPON FAILURE
STOP
;**********
>
;THIS TEST VERIFIES THAT THE RESULT OF A FLOATING ONE
;ADDED TO A FLOATING ONE IS A FLOATING ONE
;PLACED ONE BIT POSITION LEFT OF THE ORIGINAL FLOATING ONE.
;THIS TEST IS REPEATED 36 TIMES TO FLOAT A ONE THRU ALL 36 BITS OF THE ADDER.
;THIS TEST IS DESIGNED TO TEST THE ADDER AND RELATED DATA PATHS ONLY.
SN=SN+1
XX=XX+XX
IFE XX,<XX=1>
HRLZI XX ;PRELOAD AC WITH A FLOATING ONE
ADD [XX,,0] ;ADD A FLOATING ONE TO ITSELF
CAME [0,,0] ;CHECK ADDER UPON FAILURE
STOP
;**********
SUBTTL SUPPLEMENTARY ADDER TESTS - FLT 0 + 0FLT
;**********
SN=46000
XX=0
B46000: REPEAT ^D17,<
;THIS TEST VERIFIES THAT THE RESULT OF A FLOATING ZERO
;ADDED TO A FLOATING ZERO IS A FLOATING ZERO
;PLACED ONE BIT POSITION LEFT OF THE ORIGINAL FLOATING ZERO.
;THIS TEST IS REPEATED 36 TIMES TO FLOAT A ZERO THRU ALL 36 BITS OF THE ADDER.
;THIS TEST IS DESIGNED TO TEST THE ADDER AND RELATED DATA PATHS ONLY.
SN=SN+1
XX=<XX+XX+1>&777777
IFE <XX-1>,<XX=777776>
HRROI XX ;PRELOAD AC WITH A FLOATING ZERO
ADD [-1,,XX] ;ADD A FLOATING ZERO TO ITSELF
CAME [-1,,<XX+XX>&777777] ;CHECK ADDER UPON FAILURE
STOP
;**********
>
PAGE
;THIS TEST VERIFIES THAT THE RESULT OF A FLOATING ZERO
;ADDED TO A FLOATING ZERO IS A FLOATING ZERO
;PLACED ONE BIT POSITION LEFT OF THE ORIGINAL FLOATING ZERO.
;THIS TEST IS REPEATED 36 TIMES TO FLOAT A ZERO THRU ALL 36 BITS OF THE ADDER.
;THIS TEST IS DESIGNED TO TEST THE ADDER AND RELATED DATA PATHS ONLY.
SN=SN+1
XX=<XX+XX+1>&777777
HRROI XX ;PRELOAD AC WITH A FLOATING ZERO
ADD [-1,,XX] ;ADD A FLOATING ZERO TO ITSELF
CAME [-2,,-2] ;CHECK ADDER UPON FAILURE
STOP
;**********
XX=0
REPEAT ^D18,<
;THIS TEST VERIFIES THAT THE RESULT OF A FLOATING ZERO
;ADDED TO A FLOATING ZERO IS A FLOATING ZERO
;PLACED ONE BIT POSITION LEFT OF THE ORIGINAL FLOATING ZERO.
;THIS TEST IS REPEATED 36 TIMES TO FLOAT A ZERO THRU ALL 36 BITS OF THE ADDER.
;THIS TEST IS DESIGNED TO TEST THE ADDER AND RELATED DATA PATHS ONLY.
SN=SN+1
XX=<XX+XX+1>&777777
IFE <XX-1>,<XX=777776>
HRLOI XX ;PRELOAD AC WITH A FLOATING ZERO
ADD [XX,,-1] ;ADD A FLOATING ZERO TO ITSELF
CAME [<XX+XX+1>&777777,,-2] ;CHECK ADDER UPON FAILURE
STOP
;**********
>
ENDIT: SETZM TNUMB#
JRST BEGEND