Trailing-Edge
-
PDP-10 Archives
-
klad_sources
-
klad.sources/dskca1.mac
There are no other files named dskca1.mac in the archive.
RENTR1: DROPDV ;CLOSE LOGICAL OUTPUT FILE
CALL [SIXBIT .EXIT.]
PGMNAM: ASCIZ?
DECSYSTEM 2020 ADVANCED INSTRUCTION DIAGNOSTIC #1 (DSKCA)
?
;INITIALIZE SUBROUTINES
START: PGMINT
MOVE [ASCIZ/CA/]
MOVEM TLET ;INITIALIZE TEST LETTER
STARTA: JRST .+1 ;GO PERFORM DIAGNOSTIC
SUBTTL PART I.A - FSC AND NORMALIZE RETURN
;PART I.A - FSC AND NORMALIZE RETURN
;FAILURE RESULTS IN A LOSS
;OF EXPONENT
;AC=570400000000
;SCALE=7
;FINAL AC=777400000000
CA00: LALL
AC=13
SAVEAC (1,1)
O12300: MOVSI AC-2,777400 ;SETUP FOR COMPARISON
MOVSI AC,570400 ;SETUP AC
FSC AC,7 ;RESCALE
CAMN AC,AC-2 ;TEST AC=777400000000
ER3 AC,12301
JUMPL AC+2,O12300 ;LOOP ON ERROR SWITCH
;AC=000400000000
;SCALE=0
;FAILURE RESULTS IN AN EXPONENT
;EQUAL TO 376
AC=12
SAVEAC (1,1)
O12400: MOVSI AC-2,376400 ;SETUP FOR COMPARISON
MOVSI AC,400 ;SETUP AC
FSC AC,0 ;RESCALE
CAMN AC,AC-2 ;TEST EXP=376
ER3 AC,12401 ;SCAD SC COMP SETUP FAILED
JUMPL AC+2,O12400 ;LOOP ON ERROR SWITCH
;AC=175400000000
;SCALE=0
;FAILURE RESULTS IN AN EXPONENT
;EQUAL TO 002
AC=11
SAVEAC (1,1)
O12500: MOVSI AC-2,177400 ;SETUP FOR COMPARISON
MOVSI AC,175400 ;SETUP AC
FSC AC,0 ;RESCALE
CAMN AC,AC-2 ;TEST EXP=177
ER3 AC,12501
JUMPL AC+2,O12500 ;LOOP ON ERROR SWITCH
;AC=000400000000
;SCALE=0
;FAILURE OF 1, 2, OR 3 RESULTS IN AN
;EXPONENT EQUAL TO 377
AC=10
SAVEAC (1,1)
O12600: MOVSI AC-2,377400 ;SETUP FOR COMPARISON
MOVSI AC,400 ;SETUP AC
FSC AC,0 ;RESCALE
CAMN AC,AC-2 ;TEST EXP=377
ER3 AC,12601
JUMPL AC+2,O12600 ;LOOP ON ERROR SWITCH
;AC=000400000000
;SCALE=177
;FAILURE RESULTS IN AN
;EXPONENT=0
AC=7
SAVEAC (1,1)
O12700: MOVSI AC-2,400 ;SETUP FOR COMPARISON
MOVSI AC,400 ;SETUP AC
FSC AC,177 ;RESCALE
CAMN AC,AC-2 ;TEST EXP=0
ER3 AC,12701
JUMPL AC+2,O12700 ;LOOP ON ERROR SWITCH
PAGE
;AC=000400000000
;SCALE=201,202,204,210,220,240,300
;FAILURE OF A BIT TO SET RESULTS IN AN
;EXPONENT EQUAL TO 200
AC=6
SAVEAC (1,1)
SN=13000
ZZ=0
O13000: REPEAT ^D7, ;TEST BITS 8-2
<SN=SN+1
ZZ=ZZ+ZZ
IFE ZZ,<ZZ=1>
MOVSI AC-2,200400 ;SETUP FOR COMPARISON
MOVSI AC,400 ;SETUP AC
FSC AC,200+ZZ ;RESCALE
CAMN AC,AC-2 ;TEST EXP=200
ER3 AC,SN ;BIT UNDER TEST FAILED TO SET
JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
>
;TEST ABILITY TO TRANSFER ZERO'S
;TEST ABILITY TO CLEAR SC8-2
;EXPONENT =1,2,4,10,20,40,100
;SCALE = 375,373,367,357,337,277,177
;FAILURE OF A BIT TO CLEAR RESULTS
;IN AN EXPONENT = 377
AC=5
SAVEAC (1,1)
SN=13100
WW=200
XX=1000
ZZ=176
O13100: REPEAT ^D7, ;TEST BITS 8-2
<SN=SN+1
WW=WW+WW
XX=XX+WW
ZZ=ZZ+ZZ+1
MOVSI AC-2,377400 ;SETUP FOR COMPARISON
MOVSI AC,XX ;SETUP AC
FSC AC,ZZ ;RESCALE
CAMN AC,AC-2 ;TEST EXP = 377
ER3 AC,SN ;BIT UNDER TEST FAILED TO CLEAR
JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
>
PAGE
;AC=200400000000
;SCALE=5
;FAILURE OF ANY ONE RESULTS IN LOSS
;OF THE EXPONENT. THE RESULTANT EXPONENT
;IS EQUAL TO THE SCALING FACTOR
AC=14
SAVEAC (1,1)
O13200: MOVSI AC-2,5400 ;SETUP FOR COMPARISON
MOVSI AC,200400 ;SETUP AC
FSC AC,5 ;RESCALE
CAMN AC,AC-2 ;TEST EXP=5
ER3 AC,13201
JUMPL AC+2,O13200 ;LOOP ON ERROR SWITCH
;EXPONENT = 201,202,204,210,220,240,300
;SCALE=0
;FAILURE OF A BIT TO SET RESULTS IN AN
;EXPONENT EQUAL TO 200
AC=14
SAVEAC (1,1)
SN=13300
XX=200
ZZ=201000
O13300: REPEAT ^D7, ;TEST BITS 8-2
<SN=SN+1
XX=XX+XX
ZZ=ZZ+XX
MOVSI AC-2,200400 ;SETUP FOR COMPARISON
MOVSI AC,ZZ ;SETUP AC
FSC AC,0 ;RESCALE
CAMN AC,AC-2 ;TEST EXP=200
ER3 AC,SN ;GATE UNDER TEST FAILED TO SET
JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
>
;TEST SC DATA1-8 GATES - (ZERO'S)
;TEST SCAD INPUT GATES - (ZERO'S)
;EXPONENT = 376,375,373,367,357,337,277,177
;SCALE = 1,2,4,10,20,40,100,200
;FAILURE RESULTS IN AN EXPONENT =
;0,1,3,7,17,37,77,177
AC=13
SAVEAC (1,1)
;TEST SCAD8
O13400: MOVSI AC-2,400 ;SETUP FOR COMPARISON
MOVSI AC,376400 ;SETUP AC
FSC AC,1 ;RESCALE
CAMN AC,AC-2 ;TEST EXP = 0
ER3 AC,13401 ;SCAD 8 SET
JUMPL AC+2,O13400 ;LOOP ON ERROR SWITCH
;TEST SCAD7
O13500: MOVSI AC-2,1400 ;SETUP FOR COMPARISON
MOVSI AC,375400 ;SETUP AC
FSC AC,2 ;RESCALE
CAMN AC,AC-2 ;TEST EXP=1
ER3 AC,13501 ;SCAD7 SET
JUMPL AC+2,O13500 ;LOOP ON ERROR SWITCH
;TEST SCAD6
O13600: MOVSI AC-2,3400 ;SETUP FOR COMPARISON
MOVSI AC,373400 ;SETUP AC
FSC AC,4 ;RESCALE
CAMN AC,AC-2 ;TEST EXP=3
ER3 AC,13601 ;SCAD6 SET
JUMPL AC+2,O13600 ;LOOP ON ERROR SWITCH
;TEST SCAD5
O13700: MOVSI AC-2,7400 ;SETUP FOR COMPARISON
MOVSI AC,367400 ;SETUP AC
FSC AC,10 ;RESCALE
CAMN AC,AC-2 ;TEST EXP=7
ER3 AC,13701 ;SCAD5 SET
JUMPL AC+2,O13700 ;LOOP ON ERROR SWITCH
;TEST SCAD4
O14000: MOVSI AC-2,17400 ;SETUP FOR COMPARISON
MOVSI AC,357400 ;SETUP AC
FSC AC,20 ;RESCALE
CAMN AC,AC-2 ;TEST EXP=17
ER3 AC,14001 ;SCAD4 SET
JUMPL AC+2,O14000 ;LOOP ON ERROR SWITCH
;TEST SCAD3
O14100: MOVSI AC-2,37400 ;SETUP FOR COMPARISON
MOVSI AC,337400 ;SETUP AC
FSC AC,40 ;RESCALE
CAMN AC,AC-2 ;TEST EXP=37
ER3 AC,14101 ;SCAD3 SET
JUMPL AC+2,O14100 ;LOOP ON ERROR SWITCH
;TEST SCAD2
O14200: MOVSI AC-2,77400 ;SETUP FOR COMPARISON
MOVSI AC,277400 ;SETUP AC
FSC AC,100 ;RESCALE
CAMN AC,AC-2 ;TEST EXP=77
ER3 AC,14201 ;SCAD2 SET
JUMPL AC+2,O14200 ;LOOP ON ERROR SWITCH
;TEST SCAD1
O14300: MOVSI AC-2,177400 ;SETUP FOR COMPARISON
MOVSI AC,177400 ;SETUP AC
FSC AC,200 ;RESCALE
CAMN AC,AC-2 ;TEST EXP=177
ER3 AC,14301 ;SCAD1 SET
JUMPL AC+2,O14300 ;LOOP ON ERROR SWITCH
;AC=577200000000
;SCALE=1
;FAILURE RESULTS IN AN EXPONENT
;EQUAL TO 776
AC=12
SAVEAC (1,1)
O14400: MOVSI AC-2,776200 ;SETUP FOR COMPARISON
MOVSI AC,577200 ;SETUP AC
FSC AC,1 ;RESCALE
CAMN AC,AC-2 ;TEST EXP=776
ER3 AC,14401
JUMPL AC+2,O14400 ;LOOP ON ERROR SWITCH
;AC=577200000000
;SCALING FACTOR=0
;SETTING SCAD+1 EN RESULTS IN AN
;EXPONENT=576
AC=11
SAVEAC (1,1)
O14500: MOVSI AC-2,576200 ;SETUP FOR COMPARISON
MOVSI AC,577200 ;SETUP AC
FSC AC,0 ;RESCALE
CAMN AC,AC-2 ;TEST EXP=576
ER3 AC,14501
JUMPL AC+2,O14500 ;LOOP ON ERROR SWITCH
PAGE
;TEST ABILITY TO TRANSFER ZERO'S
;EXP=776,775,773,767,757,737,677,577
;SCALING FACTOR=0
;FAILURE OF A BIT TO CLEAR RESULTS IN
;AN EXPONENT=777
AC=10
SAVEAC (1,1)
SN=14600
ZZ=376400
O14600: REPEAT ^D8,
<SN=SN+1
ZZ=<ZZ+ZZ+1000>&777777
MOVSI AC-2,777200 ;SETUP FOR COMPARISON
MOVSI AC,200+ZZ ;SETUP AC
FSC AC,0 ;RESCALE
CAMN AC,AC-2 ;TEST EXP=777
ER3 AC,SN
JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
>
;AC=206200000000
;SCALING FACTOR=0
AC=7
SAVEAC (1,1)
O14700: MOVSI AC-2,206200 ;SETUP FOR COMPARISON
MOVSI AC,206200 ;SETUP AC
FSC AC,0 ;RESCALE
CAMN AC,AC-2 ;TEST AC=ORIG
ER3 AC,14701
JUMPL AC+2,O14700 ;LOOP ON ERROR SWITCH
;AC=577600000000
;SCALING FACTOR=0
AC=6
SAVEAC (1,1)
O15000: MOVSI AC-2,577600 ;SETUP FOR COMPARISON
MOVSI AC,577600 ;SETUP AC
FSC AC,0 ;RESCALE
CAMN AC,AC-2 ;TEST AC=ORIG
ER3 AC,15001
JUMPL AC+2,O15000 ;LOOP ON ERROR SWITCH
;AC=206200000000
;SCALING FACTOR=0
;FAILURE RESULTS IN AN EXPONENT
;EQUAL TO 170, THE FRACTION IS NORMALIZED
AC=5
SAVEAC (1,1)
O15100: MOVSI AC-2,170400 ;SETUP FOR COMPARISON
MOVSI AC,206200 ;SETUP AC
FSC AC,0 ;RESCALE
CAMN AC,AC-2 ;TEST EXP=170
ER3 AC,15101
JUMPL AC+2,O15100 ;LOOP ON ERROR SWITCH
;TEST - NR NORMAL
;AC=206200000000
;SCALE=0
;FAILURE RESULTS IN AN EXPONENT
;EQUAL TO 171, THE MANTISSA IS NORMALIZED
AC=14
SAVEAC (1,1)
O15200: MOVSI AC-2,171400 ;SETUP FOR COMPARISON
MOVSI AC,206200 ;SETUP AC
FSC AC,0 ;RESCALE
CAMN AC,AC-2 ;TEST EXP=171
ER3 AC,15201
JUMPL AC+2,O15200 ;LOOP ON ERROR SWITCH
;AC=200200000000
;SCALING FACTOR=0
;FAILURE RESULTS IN AN EXPONENT
;EQUAL TO ORIG. THE FRACTION IS NORMALIZED
AC=14
SAVEAC (1,1)
O15300: MOVSI AC-2,200400 ;SETUP FOR COMPARISON
MOVSI AC,200200 ;SETUP AC
FSC AC,0 ;RESCALE
CAMN AC,AC-2 ;TEST EXP=ORIG
ER3 AC,15301
JUMPL AC+2,O15300 ;LOOP ON ERROR SWITCH
;TEST AR FXU SET
;TEST ABILITY TO SET FLAGS ON OVERFLOW
;AC=377400000000,777200000000
;SCALING FACTOR=1,-1
;AN ERROR WILL OCCUR IF APPROPRIATE
;FLAG FAILS TO SET
AC=13
SAVEAC (1,1)
;TEST AROV SET
O15400: JFCL 10,.+1 ;CLR FLG, EXEC NEXT INST
MOVSI AC,377400 ;SETUP AC
FSC AC,1 ;RESCALE (OVERFLOW)
JSP AC+1,.+1
JFCL 10,.+2 ;TEST AROV FLAG
ER13 AC+1,15401 ;AROV FAILED TO SET
JUMPL AC+2,O15400 ;LOOP ON ERROR SWITCH
;TEST ARFOV SET
O15500: JFCL 1,.+1 ;CLR FLG, EXEC NEXT INST
MOVSI AC,377400 ;SETUP AC
FSC AC,1 ;RESCALE (OVERFLOW)
JSP AC+1,.+1
JFCL 1,.+2 ;TEST ARFOV FLAG
ER13 AC+1,15501 ;ARFOV FAILED TO SET
JUMPL AC+2,O15500 ;LOOP ON ERROR SWITCH
;TEST ARFXU SET
O15600: JRST 2,@[.+1] ;CLEAR FLAG,EXEC NEXT INST
MOVSI AC,777200 ;SETUP AC
FSC AC,-1 ;RESCALE (UNDERFLOW)
JSP AC-2,.+1 ;STORE FLAGS AND PC
TLZN AC-2,100 ;TEST AND CLEAR BIT 11
ER13 AC-2,15601 ;AR FXU FAILED TO SET
JRST 2,3(AC-2) ;CLEAR AR FXU
JUMPL AC+2,O15600 ;LOOP ON ERROR SWITCH
PAGE
;TEST NR ALL ZERO
;TEST ABILITY TO ASSERT NR ALL ZERO LEVEL
;AC=377000000000
;SCALE=401
;FAILURE SHOULD RESULT IN LOOPING NRT2-
;ATTEMPTING TO NORMALIZE
AC=12
SAVEAC (1,1)
O15700: MOVSI AC,377000 ;SETUP AC
FSC AC,401 ;RESCALE
SKIPE AC ;TEST AC=0
ER3 AC,15701 ;NR ALL ZERO ASSERTED
JUMPL AC+2,O15700 ;LOOP ON ERROR SWITCH
SUBTTL PART I.B-FAD AND NORM RET
; PART I.B-FAD AND NORM RET
;AR=000600000000
;BR=000400000000
;FAILURE RESULTS IN LOSS OF BR
;CORRECT SUM=001500000000
;ERROR SUM=000600000000
AC=14
SAVEAC (1,1)
O16000: MOVSI AC-2,600 ;SETUP FOR COMPARISON
MOVSI AC,600 ;SETUP AC
MOVSI AC+1,400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=600000000
ER3 AC,16001
JUMPL AC+2,O16000 ;LOOP ON ERROR SWITCH
;AR=000600000000
;BR=000400000000
;FAILURE RESULTS IN LOSS
;OF LARGER NUMBER
;FAILURE RESULTS IN NORMALIZING
;CORRECT SUM=001500000000
;ERROR SUM=000400000000
AC=13
SAVEAC (1,1)
O16100: MOVSI AC,600 ;SETUP AC
MOVSI AC+1,400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC+1 ;TEST SUM=000400000000
ER3 AC,16101
JUMPL AC+2,O16100 ;LOOP ON ERROR SWITCH
;AR=000600000000
;BR=000400000000
;FAILURE RESULTS IN LOSS OF BR
;CORRECT SUM=001500000000
;ERROR SUM=001600000000
AC=12
SAVEAC (1,1)
O16200: MOVSI AC-2,1600 ;SETUP FOR COMPARISON
MOVSI AC,600 ;SETUP AC
MOVSI AC+1,400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=1600000000
ER3 AC,16201
JUMPL AC+2,O16200 ;LOOP ON ERROR SWITCH
;AR=000600000000
;BR=000400000000
;FAILURE RESULTS IN LOSS OF AR
;CORRECT SUM=001500000000
;ERROR SUM=001400000000
AC=11
SAVEAC (1,1)
O16300: MOVSI AC-2,1400 ;SETUP FOR COMPARISON
MOVSI AC,600 ;SETUP AC
MOVSI AC+1,400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=1400000000
ER3 AC,16301
JUMPL AC+2,O16300 ;LOOP ON ERROR SWITCH
;AR=000600000000
;BR=000400000000
;CORRECT SUM=001500000000
;ERROR SUM=377500000000
AC=10
SAVEAC (1,1)
O16400: MOVSI AC-2,377500 ;SETUP FOR COMPARISON
MOVSI AC,600 ;SETUP AC
MOVSI AC+1,400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=377500000000
ER3 AC,16401
JUMPL AC+2,O16400 ;LOOP ON ERROR SWITCH
;AR=000600000000
;BR=000400000000
;CORRECT SUM=001500000000
;ERROR SUM=000500000000
AC=7
SAVEAC (1,1)
O16500: MOVSI AC-2,500 ;SETUP FOR COMPARISON
MOVSI AC,600 ;SETUP AC
MOVSI AC+1,400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=500000000
ER3 AC,16501
JUMPL AC+2,O16500 ;LOOP ON ERROR SWITCH
;AR=377000000000
;BR=377600000000
;FAILURE RESULTS IN A SUM
;=000700000000
AC=14
SAVEAC (1,1)
O16600: MOVSI AC-2,700 ;SETUP FOR COMPARISON
MOVSI AC,377000 ;SETUP AC
MOVSI AC+1,377600 ;SETUP BR
FAD AC,AC+1 ;ADD C(AC), C(E)
CAMN AC,AC-2 ;TEST SUM=000700000000
ER3 AC,16601
JUMPL AC+2,O16600 ;LOOP ON ERROR SWITCH
;TEST ABILITY TO SET INDIVIDUAL BITS
;AR=600400000000 (-1/4)
;BR=177400000000 (+1/4)
;OPERANDS SELECTED SHOULD RESULT
;IN NR ALL ZERO -STORE 0
;FAILURE OF BIT 8 TO SET RESULTS IN
;A SUM=577400000000
;FAILURE OF ANY ONE BIT (1-7) RESULTS IN
;A SUM=577000000000
AC=14
SAVEAC (1,1)
O16700: MOVSI AC-2,577400 ;SETUP FOR COMPARISON
MOVSI AC,600400 ;SETUP AC
MOVSI AC+1,177400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=5774000000000
ER3 AC,16701 ;BR8 FAILED TO SET
MOVSI AC-2,577000 ;SETUP FOR COMPARISON
CAMN AC,AC-2 ;TEST SUM=577000000000
ER3 AC,16702 ;BR BIT (1-7) FAILED TO SET
JUMPL AC+2,O16700 ;LOOP ON ERROR SWITCH
;FAILURE RESULTS IN LOSS OF DIFFERENCE
;BETWEEN EXPONENTS
;AR=200400000000 (+ 1/2)
;BR=205400000000 (+20)
;CORRECT SUM =205410000000
;ERROR SUM=001400000000
AC=10
SAVEAC (1,1)
O17000: MOVSI AC-2,001400 ;SETUP FOR COMPARISON
MOVSI AC,200400 ;SETUP AC
MOVSI AC+1,205400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=001400000000
ER3 AC,17001
JUMPL AC+2,O17000 ;LOOP ON ERROR SWITCH
;AR=200400000000
;BR=205600000000
;FAILURE RESULTS IN LOSS OF HIGH ORDER
;EXPONENT
;FAILURE RESULTS IN A SUM
;=001610000000
AC=12
SAVEAC (1,1)
O17100: MOVSI AC-2,1610 ;SETUP FOR COMPARISON
MOVSI AC,200400 ;SETUP AC
MOVSI AC+1,205600 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=1610000000
ER3 AC,17101
JUMPL AC+2,O17100 ;LOOP ON ERROR SWITCH
;AR=200400000000
;BR=205600000000
;FAILURE RESULTS IN LOSS OF LARGER
;EXPONENT
;FAILURE RESULTS IN A SUM
;=000610000000
AC=11
SAVEAC (1,1)
O17200: MOVSI AC-2,610 ;SETUP FOR COMPARISON
MOVSI AC,200400 ;SETUP AC
MOVSI AC+1,205600 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=610000000
ER3 AC,17201
JUMPL AC+2,O17200 ;LOOP ON ERROR SWITCH
;AR=000600000000
;BR=200400000000
;EXCESSIVE SHIFT COND, SHOULD
;RESULT IN NO ADD AND STORING THE LARGER
;FAILURE RESULTS IN A SUM
;=201500000000
AC=5
SAVEAC (1,1)
O17300: MOVSI AC-2,201500 ;SETUP FOR COMPARISON
MOVSI AC,600 ;SETUP AC
MOVSI AC+1,200400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=201500000000
ER3 AC,17301
JUMPL AC+2,O17300 ;LOOP ON ERROR SWITCH
;AR=200700000000
;BR=0
;EXCESSIVE SHIFT COND SHOULD
;RESULT IN NO ADD AND STORING THE LARGER
;FAILURE OF SC CLR AT FAT4 RESULTS IN
;LOSS OF EXPONENT. SUM=000700000000
AC=14
SAVEAC (1,1)
O17400: MOVSI AC-2,700 ;SETUP FOR COMPARISON
MOVSI AC,200700 ;SETUP AC
SETZ AC+1, ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=700000000
ER3 AC,17401
JUMPL AC+2,O17400 ;LOOP ON ERROR SWITCH
;TEST ABILITY TO BRING UP PULSE
;AR=200400000000
;BR=205400000000
;FAILURE RESULTS IN LOSS OF SMALLER
;EXPONENT. EXCESSIVE SHIFT CONDITION
;RESULTS IN NO ADD AND STORING THE LARGER
;FAILURE RESULTS IN A SUM=205400000000
AC=14
SAVEAC (1,1)
O17500: MOVSI AC,200400 ;SETUP AC
MOVSI AC+1,205400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC+1 ;TEST SUM=205400000000
ER3 AC,17501
JUMPL AC+2,O17500 ;LOOP ON ERROR SWITCH
PAGE
;AC EXP=201,202,204,210,220,240,300
;BR=200400000000
;FAILURE OF A BIT TO SET/AR TO SHIFT RESULTS IN
;AN EXPONENT=202,203,205,211,221,
;241,301. THE MANTISSA IS CORRECT IN ALL CASES
AC=13
SAVEAC (1,1)
SN=17600
ZZ=400
O17600: REPEAT ^D7,
<SN=SN+1
ZZ=ZZ+ZZ
MOVSI AC-2,201400+ZZ ;SETUP FOR COMPARISION
MOVSI AC,200400+ZZ ;SETUP AC
MOVSI AC+1,200400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST EXP=AC EXP+1
ER3 AC,SN ;BIT UNDER TEST FAILED TO SET
JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH
>
;AR=200400000000
;BR=205400000000
;FAILURE RESULTS IN A BR EXPONENT=0.
;EXCESSIVE SHIFT CONDITION
;RESULTS IN NO ADD AND STORING THE LARGER
AC=12
SAVEAC (1,1)
O17700: MOVSI AC-2,200400 ;SETUP FOR COMPARISION
MOVSI AC,200400 ;SETUP AC
MOVSI AC+1,205400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=200400000000
ER3 AC,17701
JUMPL AC+2,O17700 ;LOOP ON ERROR SWITCH
;AR=600400000000 (-1/4)
;BR=600400000000 (-1/4)
;FAILURE RESULTS IN LOSS OF BR EXPONENT
;AN EXCESSIVE SHIFT CONDITION, NO ADD
;STORE 600400000000
AC=11
SAVEAC (1,1)
O20000: MOVSI AC,600400 ;SETUP AC
MOVSI AC+1,600400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC+1 ;TEST SUM=600400
ER3 AC,20001
JUMPL AC+2,O20000 ;LOOP ON ERROR SWITCH
;THE DIFFERENCE BETWEEN EXPONENTS (EXCESSIVE SHIFT COND)
;SHOULD RESULT IN NO ADD AND STORING
;THE LARGER
;AR=0
;BR=205400000000
;FAILURE RESULTS IN A SUM
;=173400000000
AC=7
SAVEAC (1,1)
O20100: MOVSI AC-2,173400 ;SETUP FOR COMPARISON
SETZ AC, ;SETUP AC
MOVSI AC+1,205400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=173400000000
ER3 AC,20101
JUMPL AC+2,O20100 ;LOOP ON ERROR SWITCH
;FAILURE RESULTS IN AN APPARENT DIFFERNECE IN
;EXPONENTS OF 177 EXCESSIVE SHIFT COND-
;NO ADD, STORE LARGER
;AR=200400000000
;BR=200400000000
;FAILURE RESULTS IN A SUM
;=200400000000
AC=6
SAVEAC (1,1)
O20200: MOVSI AC,200400 ;SETUP AC
MOVSI AC+1,200400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC+1 ;TEST SUM=200400000000
ER3 AC,20201
JUMPL AC+2,O20200 ;LOOP ON ERROR SWITCH
;AR=577400000000 (-1/2)
;BR=577400000000 (-1/2)
;CORRECT SUM=576400000000 (-1)
;ERROR SUM=777400000000
AC=5
SAVEAC (1,1)
O20300: MOVSI AC-2,777400 ;SETUP FOR COMPARISON
MOVSI AC,577400 ;SETUP AC
MOVSI AC+1,577400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=777400000000
ER3 AC,20301 ;SC NEGATE SETUP FAILED
JUMPL AC+2,O20300 ;LOOP ON ERROR SWITCH
;AR=205600000000
;BR=177400000000
;FAILURE RESULTS IN A SUM
;=214500000000
AC=13
SAVEAC (1,1)
O20400: MOVSI AC-2,214500 ;SETUP FOR COMPARISON
MOVSI AC,205600 ;SETUP AC
MOVSI AC+1,177400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=214500
ER3 AC,20401
JUMPL AC+2,O20400 ;LOOP ON ERROR SWITCH
;OPERANDS SELECTED SHOULD
;RESULT IN NR ALL ZERO CONDITION
;AR EXP=201,202,204,210,220,240,300
;BR EXP=202,204,207,214,225,246,307
;MANTISSA IN BOTH CASES=0
;FAILURE OF A BIT TO CLEAR RESULTS IN A
;SUM WHOSE EXPONENT IS EQUAL TO
;THE BR EXPONENT, A MANTISSA=400000000
AC=10
SAVEAC (1,1)
;TEST AR8
O20500: MOVSI AC-2,202400 ;SETUP FOR COMPARISON
MOVSI AC,201000 ;SETUP AC
MOVSI AC+1,202000 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=202400000000
ER3 AC,20501 ;AR8 FAILED TO CLEAR
JUMPL AC+2,O20500 ;LOOP ON ERROR SWITCH
;TEST AR7
O20600: MOVSI AC-2,204400 ;SETUP FOR COMPARISON
MOVSI AC,202000 ;SETUP AC
MOVSI AC+1,204000 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=204400000000
ER3 AC,20601 ;AR7 FAILED TO CLEAR
JUMPL AC+2,O20600 ;LOOP ON ERROR SWITCH
;TEST AR6
O20700: MOVSI AC-2,207400 ;SETUP FOR COMPARISON
MOVSI AC,204000 ;SETUP AC
MOVSI AC+1,207000 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=207400000000
ER3 AC,20701 ;AR6 FAILED TO CLEAR
JUMPL AC+2,O20700 ;LOOP ON ERROR SWITCH
;TEST AR5
O21000: MOVSI AC-2,214400 ;SETUP FOR COMPARISON
MOVSI AC,210000 ;SETUP AC
MOVSI AC+1,214000 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=214400000000
ER3 AC,21001 ;AR5 FAILED TO CLEAR
JUMPL AC+2,O21000 ;LOOP ON ERROR SWITCH
;TEST AR4
O21100: MOVSI AC-2,225400 ;SETUP FOR COMPARISON
MOVSI AC,220000 ;SETUP AC
MOVSI AC+1,225000 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=225400000000
ER3 AC,21101 ;AR4 FAILED TO CLEAR
JUMPL AC+2,O21100 ;LOOP ON ERROR SWITCH
;TEST AR3
O21200: MOVSI AC-2,246400 ;SETUP FOR COMPARISON
MOVSI AC,240000 ;SETUP AC
MOVSI AC+1,246000 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=246400000000
ER3 AC,21201 ;AR3 FAILED TO CLEAR
JUMPL AC+2,O21200 ;LOOP ON ERROR SWITCH
;TEST AR2
O21300: MOVSI AC-2,307400 ;SETUP FOR COMPARISON
MOVSI AC,300000 ;SETUP AC
MOVSI AC+1,307000 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=307400000000
ER3 AC,21301 ;AR2 FAILED TO CLEAR
JUMPL AC+2,O21300 ;LOOP ON ERROR SWITCH
;TEST ABILITY TO SET BITS 8-1
;AR EXP=200,201,202,203,204,205,206,207
;BR=600400000000
;FAILURE OF A BIT TO SET RESULTS IN A UNIQUE SUM
AC=7
SAVEAC (1,1)
;TEST AR8(1)
O21400: MOVSI AC-2,577200 ;SETUP FOR COMPARISON
MOVSI AC,200000 ;SETUP AC
MOVSI AC+1,600400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=577200000000
ER3 AC,21401 ;AR8 FAILED TO SET
JUMPL AC+2,O21400 ;LOOP ON ERROR SWITCH
;TEST AR7 (1)
O21500: MOVSI AC-2,576300 ;SETUP FOR COMPARISON
MOVSI AC,201000 ;SETUP AC
MOVSI AC+1,600400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=576300000000
ER3 AC,21501 ;AR7 FAILED TO SET
JUMPL AC+2,O21500 ;LOOP ON ERROR SWITCH
;TEST AR6(1)
O21600: MOVSI AC-2,575340 ;SETUP FOR COMPARISON
MOVSI AC,202000 ;SETUP AC
MOVSI AC+1,600400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=575340000000
ER3 AC,21601 ;AR6 FAILED TO SET
JUMPL AC+2,O21600 ;LOOP ON ERROR SWITCH
;TEST AR5(1)
O21700: MOVSI AC-2,574360 ;SETUP FOR COMPARISON
MOVSI AC,203000 ;SETUP AC
MOVSI AC+1,600400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=574360000000
ER3 AC,21701 ;AR5 FAILED TO SET
JUMPL AC+2,O21700 ;LOOP ON ERROR SWITCH
;TEST AR4 (1)
O22000: MOVSI AC-2,573370 ;SETUP FOR COMPARISON
MOVSI AC,204000 ;SETUP AC
MOVSI AC+1,600400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=573370000000
ER3 AC,22001 ;AR4 FAILED TO SET
JUMPL AC+2,O22000 ;LOOP ON ERROR SWITCH
;TEST AR3(1)
O22100: MOVSI AC-2,572374 ;SETUP FOR COMPARISON
MOVSI AC,205000 ;SETUP AC
MOVSI AC+1,600400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=572374000000
ER3 AC,22101 ;AR3 FAILED TO SET
JUMPL AC+2,O22100 ;LOOP ON ERROR SWITCH
;TEST AR2(1)
O22200: MOVSI AC-2,571376 ;SETUP FOR COMPARISON
MOVSI AC,206000 ;SETUP AC
MOVSI AC+1,600400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=571376000000
ER3 AC,22201 ;AR2 FAILED TO SET
JUMPL AC+2,O22200 ;LOOP ON ERROR SWITCH
;TEST AR1(1)
O22300: MOVSI AC-2,570377 ;SETUP FOR COMPARISON
MOVSI AC,207000 ;SETUP AC
MOVSI AC+1,600400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=570377000000
ER3 AC,22301 ;AR1 FAILED TO SET
JUMPL AC+2,O22300 ;LOOP ON ERROR SWITCH
;AR=400200000000
;BR=377400000000
;FAILURE RESULTS IN LOSS OF BR EXPONENT,
;RESULTING IN AN EXCESSIVE SHIFT COND.-
;NO ADD STORE 400200000000
AC=6
SAVEAC (1,1)
O22400: MOVSI AC-2,400200 ;SETUP FOR COMPARISON
MOVSI AC,400200 ;SETUP AC
MOVSI AC+1,377400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=400200000000
ER3 AC,22401
JUMPL AC+2,O22400 ;LOOP ON ERROR SWITCH
;AR=377400000000
;BBR=400200000000
;FAILURE RESULTS IN LOSS OF BR EXPONENT,
;RESULTING IN AN EXECESSIVE SHIFT CONDITION. STORE
;377400000000
AC=5
SAVEAC (1,1)
O22500: MOVSI AC-2,377400 ;SETUP FOR COMPARISON
MOVSI AC,377400 ;SETUP AC
MOVSI AC+1,400200 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=377400000000
ER3 AC,22501 ;SC+BR(FAT1) FAILED
JUMPL AC+2,O22500 ;LOOP ON ERROR SWITCH
PAGE
;AR=200400000000
;BR=600400000000
;FAILURE RESULTS IN AN NR ALL ZERO COND.
;FAILURE RESULTS IN A SUM=0
AC=14
SAVEAC (1,1)
O22600: MOVSI AC,200400 ;SETUP AC
MOVSI AC+1,600400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
SKIPN AC ;SETUP SUM=0
ER3 AC,22601 ;SC COMP SETUP FAILED
JUMPL AC+2,O22600 ;LOOP ON ERROR SWITCH
;AR=200600000000
;BR=201400000000
;FAILURE RESULTS IN SHIFTING SUM OF AR
;AND BR RESULTING IN A SUM
;=202640000000
AC=14
SAVEAC (1,1)
O22700: MOVSI AC-2,202640 ;SETUP FOR COMPARISON
MOVSI AC,200600 ;SETUP AC
MOVSI AC+1,201400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=202640000000
ER3 AC,22701
JUMPL AC+2,O22700 ;LOOP ON ERROR SWITCH
;AR=577600000000 (-1/4) (UNNORMALIZED)
;BR=200400000000 (+1/2)
;FAILURE RESULTS IN A CORRECT MANTISSA,
;THE EXPONENT IS IN ERROR
;CORRECT SUM=177400000000
;ERROR SUM=376400000000
AC=13
SAVEAC (1,1)
O23000: MOVSI AC-2,376400 ;SETUP FOR COMPARISON
MOVSI AC,577600 ;SETUP AC
MOVSI AC+1,200400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=376400000000
ER3 AC,23001
JUMPL AC+2,O23000 ;LOOP ON ERROR SWITCH
;AR=600400000000 (-1/4)
;BR=577200000000 (-3/4)
;FAILURE RESULTS IN A CORRECT MANTISSA,
;THE EXPONENT IS IN ERROR
;CORRECT SUM=576400000000
;ERROR SUM=600400000000
AC=12
SAVEAC (1,1)
O23100: MOVSI AC-2,600400 ;SETUP FOR COMPARISON
MOVSI AC,600400 ;SETUP AC
MOVSI AC+1,577200 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=600400000000
ER3 AC,23101 ;SC COMP SETUP FAILED
JUMPL AC+2,O23100 ;LOOP ON ERROR SWITCH
;AR=600400000000 (-1/4)
;BR=577200000000 (-3/4)
;FAILURE RESULTS IN A CORRECT MANTISSA,
;THE EXPONENT IS IN ERROR
;CORRECT SUM=576400000000
;ERROR SUM =5777400000000
AC=11
SAVEAC (1,1)
O23200: MOVSI AC-2,577400 ;SETUP FOR COMPARISON
MOVSI AC,600400 ;SETUP AC
MOVSI AC+1,577200 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=577400000000
ER3 AC,23201
JUMPL AC+2,O23200 ;LOOP ON ERROR SWITCH
;AR=600400000000 (-1/4)
;BR=577200000000 (-3/4)
;FAILURE RESULTS IN A CORRECT MANTISSA,
;THE EXPONENT IS IN ERROR
;CORRECT SUM=576400000000
;ERROR SUM=577000000000
AC=10
SAVEAC (1,1)
O23300: MOVSI AC-2,577000 ;SETUP FOR COMPARISON
MOVSI AC,600400 ;SETUP AC
MOVSI AC+1,577200 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=577000000000
ER3 AC,23301
JUMPL AC+2,O23300 ;LOOP ON ERROR SWITCH
;AR=201400000000 (+1)
;BR=200400000000 (+1/2)
;CORRECT SUM=201600000000
;ERROR SUM=200600000000
AC=10
SAVEAC (1,1)
O23400: MOVSI AC-2,200600 ;SETUP FOR COMPARISON
MOVSI AC,201400 ;SETUP AC
MOVSI AC+1,200400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=200600000000
ER3 AC,23401
JUMPL AC+2,O23400 ;LOOP ON ERROR SWITCH
;AR=576400000000 (-1)
;BR=200400000000 (+1/2)
;CORRECT SUM=577400000000 (-1/2)
;ERROR SUM=177400000000
AC=7
SAVEAC (1,1)
O23500: MOVSI AC-2,177400 ;SETUP FOR COMPARISON
MOVSI AC,576400 ;SETUP AC
MOVSI AC+1,200400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=177400000000
ER3 AC,23501
JUMPL AC+2,O23500 ;LOOP ON ERROR SWITCH
;AR=200440000000
;BR=200400000000
;CORRECT SUM=201400000000
;ERROR SUM=570000000000
AC=10
SAVEAC (1,1)
O23600: MOVSI AC-2,175400 ;SETUP FOR COMPARISON
MOVSI AC,200440 ;SETUP AC
MOVSI AC+1,200400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=175400000000
ER3 AC,23601
JUMPL AC+2,O23600 ;LOOP ON ERROR SWITCH
;TEST ABILITY TO BRING UP NRT10
;AR=577400000000 (-1/2)
;BR=577400000000 (-1/2)
;CORRECT SUM=576400000000 (-1)
;ERROR SUM=577000000000
AC=7
SAVEAC (1,1)
O23700: MOVSI AC-2,577000 ;SETUP FOR COMPARISON
MOVSI AC,577400 ;SETUP AC
MOVSI AC+1,577400 ;SETUP BR
FAD AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=577000000000
ER3 AC,23701
JUMPL AC+2,O23700 ;LOOP ON ERROR SWITCH
SUBTTL PART I.C-FAD (NORM RET, ROUNDING)
; PART I.C-FAD(NORM RET, ROUNDING)
;AR=200400000077
;BR=206400000000
;FAILURE OF 1,2 OR 3 RESULTS IN AN
;UNROUNDED SUM
;CORRECT SUM=206404000001
;ERROR SUM=206404000000
AC=14
SAVEAC (1,1)
O26500: MOVSI AC-2,206404 ;SETUP FOR COMPARISON
HRRI AC,77 ;SETUP
HRLI AC,200400 ;AC
MOVSI AC+1,206400 ;SETUP BR
FADR AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=206404000000
ER3 AC,26501
JUMPL AC+2,O26500 ;LOOP ON ERROR SWITCH
;AC=200400000077
;BR=206400000000
;FAILURE RESULTS IN A CORRECT MANTISSA,
;THE EXPONENT IS IN ERROR
;CORRECT SUM=206404000001
;ERROR SUM=171404000001
AC=14
SAVEAC (1,1)
O26600: HRRI AC-2,1 ;SETUP AC-2
HRLI AC-2,171404 ;FOR COMPARISON
HRRI AC,77 ;SETUP
HRLI AC,200400 ;AC
MOVSI AC-1,206400 ;SETUP BR
FADR AC,AC-1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=171404000001
ER3 AC,26601
JUMPL AC+2,O26600 ;LOOP ON ERROR SWITCH
;AR=200400000003
;BR=202400000000
;FAILURE RESULTS
;IN AN UNROUNDED SUM
;CORR SUM=202500000001
;ERROR SUM=202500000000
AC=13
SAVEAC (1,1)
O26700: MOVSI AC-2,202500 ;SETUP FOR COMPARISON
HRRI AC,3 ;SETUP
HRLI AC,200400 ;AC
MOVSI AC+1,202400 ;SETUP BR
FADR AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST ERROR SUM
ER3 AC,26701
JUMPL AC+2,O26700 ;LOOP ON ERROR SWITCH
;AR=200400777777
;BR=202400000000
;FAILURE RESULTS IN CONTINOUS
;ROUNDING. EACH PASS ADDING ONE TO AD(AR).
;EVENTUALLY AN NRSHRT COND (AR8(1) AND
;AD 9-35=0) DEVELOPS. SHIFTING MQRT ONE
;BRINGS DOWN NR ROUND LEVEL. FADR IS
;TERMINATED.
;CORR SUM=202600000000
;ERROR SUM=203400000000
AC=12
SAVEAC (1,1)
O27000: MOVSI AC-2,203400 ;SETUP FOR COMPARISON
HRRI AC,-1 ;SETUP
HRLI AC,200400 ;AC
MOVSI AC+1,202400 ;SETUP BR
FADR AC,AC+1 ;C(AC)+C(E)
CAMN AC,AC-2 ;TEST SUM=203400000000
ER3 AC,27001
JUMPL AC+2,O27000 ;LOOP ON ERROR SWITCH
;TEST FADR
;SINGLE PRECISION FLOATING NORMALIZATION
;RENORMALIZATION IS FORCED DUE TO THE ROUNDING OF THE
;OPERAND OVERFLOWING THE MANTISSA.
AC=10
SAVEAC (1,1)
SPFNRN: HRLOI AC,777 ;FRACTION ALL ONES
MOVE AC-2,[034400,,0]
FADR AC,[033777,,-1] ;DURING ROUNDING WILL REQ RENORM
CAME AC,AC-2 ;WORD GET RENORMED OK ?
ER3 AC,27010 ;NO
JUMPL AC+2,SPFNRN ;LOOP ON ERROR SWITCH
SUBTTL PART I.D-FSB
; PART I.D-FSB
;TEST FCE, FAC, SAC AND DECODE
;TEST APPARENT ABILITY TO FETCH/STORE
;C(E),C(AC) AND DECODE
;AR=205400000000
;BR=177400000000
;FCE/SAC FAIL-C(AC)=ORIGINAL
;FAC FAILS-C(AC)=2'S COMP C(BR)
AC=7
SAVEAC (1,1)
O27100: MOVSI AC-2,205400 ;SETUP FOR COMPARISON
MOVSI AC,205400 ;SETUP AC
MOVSI AC+1,177400 ;SETUP BR
FSB AC,AC+1 ;C(AC)-C(E)
CAMN AC,AC-2 ;TEST AC=ORIG
ER3 AC,27101 ;FCE/SAC FAILED
MOVSI AC-2,600400 ;SETUP FOR COMPARISON
CAMN AC,AC-2 ;TEST AC=2'S COMP BR
ER3 AC,27101 ;FAC FAILED
JUMPL AC+2,O27100 ;LOOP ON ERROR SWITCH
;AR=200400000000(1/2)
;BR=177400000000(1/4)
;FAILURE RESULTS IN LOSS OF SUBTRAHEND
;FAILURE RESULTS IN AN EXCESSIVE SHIFT
;COND, STORE MINUEND
;CORRECT DIFF=177400000000(1/4)
;ERROR DIFF=202400000000(1/2)
AC=14
SAVEAC (1,1)
O27200: MOVSI AC-2,200400 ;SETUP FOR COMPARISON
MOVSI AC,200400 ;SETUP AC
MOVSI AC+1,177400 ;SETUP BR
FSB AC,AC+1 ;C(AC)-C(E)
CAMN AC,AC-2 ;TEST DIFF=200400000000
ER3 AC,27201
JUMPL AC+2,O27200 ;LOOP ON ERROR SWITCH
;AR=200400000000(1/2)
;BR=177400000000(1/4)
;FAILURE RESULTS IN A ONE'S COMPLEMENT
;SUBTRAHEND
;CORRECTd DIFF=177400000000
;ERROR DIFF=176477777777
AC=14
SAVEAC (1,1)
O27300: HRRI AC-2,-4 ;SETUP AC-2
HRLI AC-2,176477 ;FOR COMPARISON
MOVSI AC,200400 ;SETUP AC
MOVSI AC+1,177400 ;SETUP BR
FSB AC,AC+1 ;C(AC)-C(E)
CAMN AC,AC-2 ;TEST DIFF=176477777774
ER3 AC,27301
JUMPL AC+2,O27300 ;LOOP ON ERROR SWITCH
;AR=200400000000(1/2)
;BR=177400000000(1/4)
;FAILURE RESULTS IN LOSS OF 2'S COMP
;SUBTRAHEND. THE NUMBER IN AR IS ADDED
;TO ITSELF
;CORRECT DIFF=177400000000 1/4
;FAILURE DIFF=201400000000 (1)
AC=13
SAVEAC (1,1)
O27400: MOVSI AC-2,201400 ;SETUP FOR COMPARISON
MOVSI AC,200400 ;SETUP AC
MOVSI AC+1,177400 ;SETUP BR
FSB AC,AC+1 ;C(AC)-C(E)
CAMN AC,AC-2 ;TEST DIFF=201400000000
ER3 AC,27401
JUMPL AC+2,O27400 ;LOOP ON ERROR SWITCH
;AR=200400000000
;BR=177400000000
;FAILURE RESULTS IN LOSS OF MINUEND
;THE NUMBER IN BR IS SUBTRACTED
;FROM ITSELF. NR ALL ZERO IS ASSERTED
AC=12
SAVEAC (1,1)
O27500: MOVSI AC,200400 ;SETUP AC
MOVSI AC+1,177400 ;SETUP BR
FSB AC,AC+1 ;C(AC)-C(E)
SKIPN AC ;TEST DIFF=0
ER3 AC,27501
JUMPL AC+2,O27500 ;LOOP ON ERROR SWITCH
;AR=200400000000(1/2)
;BR=200400000000(1/2)
;FAILURE RESULTS IN A MINUEND
;EQUAL TO 777777777777
;CORRECT DIFF=0
;ERROR DIFF=631400000000
AC=11
SAVEAC (1,1)
O27600: MOVSI AC-2,631400 ;SETUP FOR COMPARISON
MOVSI AC,200400 ;SETUP AC
MOVSI AC+1,200400 ;SETUP BR
FSB AC,AC+1 ;C(AC)-C(E)
CAMN AC,AC-2 ;TEST DIFF=631400000000
ER3 AC,27601
JUMPL AC+2,O27600 ;LOOP ON ERROR SWITCH
;AR=200400000000(1/2)
;BR=177400000000(1/4)
;FAILURE RESULTS IN ADDING TWO
;TO THE DIFFERENCE
;CORRECT DIFF=177400000000
;ERROR DIFF=177400000002
AC=10
SAVEAC (1,1)
O27700: HRRI AC-2,2 ;SETUP AC-2
HRLI AC-2,177400 ;FOR COMPARISON
MOVSI AC,200400 ;SETUP AC
MOVSI AC+1,177400 ;SETUP BR
FSB AC,AC+1 ;C(AC)-C(E)
CAMN AC,AC-2 ;TEST DIFF=177400000002
ER3 AC,27701
JUMPL AC+2,O27700 ;LOOP ON ERROR SWITCH
SUBTTL PART I.E-GEN TEST-FSC,FAD,FSB
;PART I.E-GENERAL TEST-FSC,FAD,FADR,FSB
;TEST FSC
;INCREASING SCALE FACTOR
;AR=000400000000
;SCALE=1,2,4,10,20,40,100,200
;RESULTANT EXP=1,2,4,10,20,40,200,
AC=14
SAVEAC (1,1)
SN=30500
XX=400
ZZ=0
O30500: REPEAT ^D8, ;TEST FSC
<SN=SN+1
XX=XX+XX
ZZ=ZZ+ZZ
IFE ZZ,<ZZ=1>
MOVSI AC-2,400+XX ;SETUP FOR COMPARISON
MOVSI AC,400 ;SETUP AC
FSC AC,ZZ ;RESCALE
CAME AC,AC-2 ;TEST RESULT
ER3 AC,SN ;FSC FAILED
JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
>
PAGE
;TEST FSC
;INCREASING EXPONENT
;AR EXP=201,202,204,210,220,240,300
;SCALE=1
;RESULTANT EXP=202,203,205,211,221,241,301
AC=14
SAVEAC (1,1)
SN=30600
ZZ=400
O30600: REPEAT ^D7, ;TEST FSC
<SN=SN+1
ZZ=ZZ+ZZ
XX=ZZ+1000
MOVSI AC-2,200400+XX ;SETUP FOR COMPARISON
MOVSI AC,200400+ZZ ;SETUP AC
FSC AC,1 ;RESCALE
CAME AC,AC-2 ;TEST RESULT
ER3 AC,SN ;FSC FAILED
JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
>
;TEST FSC
;NEGATIVE EXP, POSITIVE SCALE
;AR=777400000000
;SCALE=1,2,4,10,20,40,100,
;RESULTANT EXP=776,775,773,767,757,737,677,577
AC=13
SAVEAC (1,1)
SN=30700
WW=400
XX=0
ZZ=776400
O30700: REPEAT ^D8, ;TEST FSC
<SN=SN+1
XX=XX+XX
ZZ=ZZ-WW
WW=WW+WW
IFE XX,<XX=1>
MOVSI AC-2,400+ZZ ;SETUP FOR COMPARISON
MOVSI AC,777400 ;SETUP AC
FSC AC,XX ;RESCALE
CAME AC,AC-2 ;TEST RESULT
ER3 AC,SN ;FSC FAILED
JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
>
PAGE
;TEST FSC
;NEGATIVE EXP, NEGATIVE SCALE
;AR=577400000000
;SCALE=777,776,775,774,773,772,771,770
;RESULTANT EXP=600,601,602,603,604,605,606,607
AC=12
SAVEAC (1,1)
SN=31000
XX=0
ZZ=577000
O31000: REPEAT ^D8, ;TEST FSC
<SN=SN+1
XX=XX-1
ZZ=ZZ+1000
MOVSI AC-2,400+ZZ ;SETUP FOR COMPARISON
MOVSI AC,577400 ;SETUP AC
FSC AC,XX ;RESCALE
CAME AC,AC-2 ;TEST RESULT
ER3 AC,SN ;FSC FAILED
JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
>
;TEST FSC
;NR ALL ZERO CONDITION
;AR=200000000000
;SCALE=1,2,4
;RESULTANT AC=0
AC=11
SAVEAC (1,1)
SN=31100
ZZ=0
O31100: REPEAT ^D3, ;TEST FSC -ALL ZERO COND
<SN=SN+1
ZZ=ZZ+ZZ
IFE ZZ,<ZZ=1>
MOVSI AC,200000 ;SETUP AC
FSC AC,ZZ ;RESCALE
SKIPE AC ;TEST AC=0
ER3 AC,SN ;FSC -NR ALL ZERO FAILED
JUMPL AC+2,.-4 ;LOOP ON ERROR SWITCH
>
PAGE
;TEST FSC
;NR SHRT COND
;AR=577000000000
;SCALE=1,2,3
;RESULTANT EXPONENT=575,574,573
AC=10
SAVEAC (1,1)
SN=31200
XX=576000
ZZ=0
O31200: REPEAT ^D3, ;TEST FSC-NRSHRT
<SN=SN+1
XX=XX-1000
ZZ=ZZ+1
MOVSI AC-2,400+XX ;SETUP FOR COMPARISON
MOVSI AC,577000 ;SETUP AC
FSC AC,ZZ ;RESCALE
CAME AC,AC-2 ;TEST RESULT
ER3 AC,SN ;FSC NRSHRT FAILED
JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
>
;TEST FSC
;-NR NORMAL
;AR=200200000000
;SCALE=1,2,3
;RESULTANT EXPONENT=200,201,202
AC=7
SAVEAC (1,1)
SN=31300
XX=177000
ZZ=0
O31300: REPEAT ^D3, ;TEST FSC-NR NORMAL
<SN=SN+1
XX=XX+1000
ZZ=ZZ+1
MOVSI AC-2,400+XX ;SETUP FOR COMPARISON
MOVSI AC,200200 ;SETUP AC
FSC AC,ZZ ;RESCALE
CAME AC,AC-2 ;TEST RESULT
ER3 AC,SN ;FSC-NR NORMAL FAILED
JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
>
;TEST FSC
;-(NOT) NRSHRT COND
;TESTING AD9(1) AND AD9-35=0)
;EXP=400
;MANTISSA=400,200,100,40,20 ETC
;SCALE=0
;RESULTANT AC SHOULD=ORIGINAL
AC=6
SAVEAC (1,1)
SN=31400
ZZ=1000
O31400: REPEAT ^D9, ;TEST BITS 9-17(1)
<SN=SN+1
ZZ=ZZ/2
MOVSI AC-2,400000+ZZ ;SETUP FOR COMPARISON
MOVSI AC,400000+ZZ ;SETUP AC
FSC AC, ;RESCALE
CAME AC,AC-2 ;TEST RESULT
ER3 AC,SN ;NRSHRT ASSERTED
JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
>
PAGE
SN=31500
ZZ=0
O31500: REPEAT ^D18, ;TEST BITS 18-35(1)
<SN=SN+1
ZZ=ZZ/2
IFE ZZ,<ZZ=400000>
HRLI AC-2,400000 ;SETUP AC-2
HRRI AC-2,ZZ ;FOR COMPARISON
HRLI AC,400000 ;SETUP
HRRI AC,ZZ ;AC
FSC AC, ;RESCALE
CAME AC,AC-2 ;TEST RESULT
ER3 AC,SN ;NRSHRT ASSERTED
JUMPL AC+2,.-7 ;LOOP ON ERROR SWITCH
>
;TEST FAD
;TEST TWO POSITIVES
;AR=200200,ZZ (UNNORMALIZED)
;BR=200200,ZZ (UNNORMALIZED)
;SUM=200400,ZZ+ZZ
AC=14
SAVEAC (1,1)
SN=31600
XX=1
ZZ=0
O31600: REPEAT ^D10, ;TEST FAD
<SN=SN+1
XX=XX+XX
ZZ=ZZ+ZZ
IFE ZZ,<ZZ=1>
HRLI AC-2,200400 ;SETUP AC-2
HRRI AC-2,XX ;FOR COMPARISON
HRLI AC,200200 ;SETUP
HRRI AC,ZZ ;AC
MOVEM AC,AC-1 ;SETUP BR
FAD AC,AC-1 ;C(AC)+C(E)
CAME AC,AC-2 ;TEST SUM
ER3 AC,SN ;FAD FAILED
JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
>
PAGE
;TEST FAD
;TWO POSITIVES
;AR=1/4,1/8,1/16,1/32,1/64,1/128
;BR=201400000000 (+1)
;SUMS=1 1/4, 1 1/8, 1 1/16, 1 1/32, 1 1/64, 1 1/128
AC=14
SAVEAC (1,1)
SN=31700
XX=171400
ZZ=1
O31700: REPEAT ^D6, ;TEST FAD
<SN=SN+1
XX=XX+1000
ZZ=ZZ+ZZ
MOVSI AC-2,201400+ZZ ;SETUP FOR COMPARISON
MOVSI AC,XX ;SETUP AC
MOVSI AC-1,201400 ;SETUP BR
FAD AC,AC-1 ;C (AC)+C(E)
CAME AC,AC-2 ;TEST RESULT
ER3 AC,SN ;FAD FAILED
JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH
>
;TEST FAD
;TWO POSITIVES-LARGER EXPONENT IN AC
;AR=202.6 (3), 202.4 (2),201.4(1)
;BR=200.4 (+1/2)
;SUMS=202.7, 202.5, 201.6
AC=13
SAVEAC (1,1)
O32000: MOVSI AC-2,202700 ;SETUP FOR COMPARISON
MOVSI AC,202600 ;SETUP AC
MOVSI AC-1,200400 ;SETUP BR
FAD AC,AC-1 ;C(AC)+C(E)
CAME AC,AC-2 ;TEST SUM
ER3 AC,32001 ;FAD FAILED
JUMPL AC+2,O32000 ;LOOP ON ERROR SWITCH
O32100: MOVSI AC-2,202500 ;SETUP FOR COMPARISON
MOVSI AC,202400 ;SETUP AC
MOVSI AC-1,200400 ;SETUP BR
FAD AC,AC-1 ;C(AC)+C(E)
CAME AC,AC-2 ;TEST SUM
ER3 AC,32101 ;FAD FAILED
JUMPL AC+2,O32100 ;LOOP ON ERROR SWITCH
O32200: MOVSI AC-2,201600 ;SETUP FOR COMPARISON
MOVSI AC,201400 ;SETUP AC
MOVSI AC-1,200400 ;SETUP BR
FAD AC,AC-1 ;C(AC) +C(E)
CAME AC,AC-2 ;TEST SUM
ER3 AC,32201 ;FAD FAILED
JUMPL AC+2,O32200 ;LOOP ON ERROR SWITCH
;TEST FAD
;TWO POSITIVES
;EXCESSIVE SHIFT COND
;AR=000400000000
;BR=200.4,201.4,202.4
AC=12
SAVEAC (1,1)
SN=32300
ZZ=177400
O32300: REPEAT ^D3, ;TEST FAD EXCESSIVE SHIFT
<SN=SN+1
ZZ=ZZ+1000
MOVSI AC,400 ;SETUP AC
MOVSI AC-1,ZZ ;SETUP BR
FAD AC,AC-1 ;C(AC) + C(E)
CAME AC,AC-1 ;TEST SUM
ER3 AC,SN ;FAD FAILED
JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
>
PAGE
;TEST FAD
;NR ALL ZERO COND
;AR=200000000000
;BR EXPONENT=201,202,203
;SUM=0
AC=11
SAVEAC (1,1)
SN=32400
ZZ=200000
O32400: REPEAT ^D3, ;TEST FAD NR ALL ZERO
<SN=SN+1
ZZ=ZZ+1000
MOVSI AC,200000 ;SETUP AC
MOVSI AC-1,ZZ ;SETUP BR
FAD AC,AC-1 ;C(AC)+C(E)
SKIPE AC ;TEST SUM
ER3 AC,SN ;FAD FAILED
JUMPL AC+2,.-5 ;LOOP ON ERROR SWITCH
>
;TEST FAD
;TWO POSITIVES
;NRSHRT COND
;AR=200.4 (1/2), 201.4 (+1), 202.4 (+2)
;BR=(SAME AS AR)
;SUMS=201.4, 202.4, 203.4
AC=10
SAVEAC (1,1)
SN=32500
XX=200400
ZZ=177400
O32500: REPEAT ^D3, ;TEST FAD NRSHRT
<SN=SN+1
XX=XX+1000
ZZ=ZZ+1000
MOVSI AC-2,XX ;SETUP FOR COMPARISON
MOVSI AC,ZZ ;SETUP AC
MOVSI AC-1,ZZ ;SETUP BR
FAD AC,AC-1 ;C(AC)+C(E)
CAME AC,AC-2 ;TEST SUM
ER3 AC,SN ;FAD FAILED
JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH
>
PAGE
;TEST FAD
;TWO POSITIVES NR NORMAL
;AR=200.1, 200.04, 200.02
;BR=AR
;SUMS=177.4, 176.4, 175.4
AC=7
SAVEAC (1,1)
SN=32600
XX=200400
ZZ=200
O32600: REPEAT ^D3, ;TEST FAD NR NORMAL
<SN=SN+1
XX=XX-1000
ZZ=ZZ/2
MOVSI AC-2,XX ;SETUP FOR COMPARISON
MOVSI AC,200000+ZZ ;SETUP AC
MOVSI AC-1,200000+ZZ ;SETUP BR
FAD AC,AC-1 ;C(AC)+C(E)
CAME AC,AC-2 ;TEST SUM
ER3 AC,SN ;FAD FAILED
JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH
>
;TEST FAD
;TWO NEGATIVES
;AR=577.4 (-1/2), 600.4 (-1/4), 601.4 (-1/8)
;BR=576400000000 (-1)
;SUMS=576.2 (-1 1/2), 576.3 (-1 1/4) 576.34 (-1 1/8)
AC=6
SAVEAC (1,1)
SN=32700
WW=200
XX=576000
ZZ=576400
O32700: REPEAT ^D3, ;TEST FAD -TWO NEGATIVES
<SN=SN+1
XX=XX+WW
WW=WW/2
ZZ=ZZ+1000
MOVSI AC-2,XX ;SETUP FOR COMPARISON
MOVSI AC,ZZ ;SETUP AC
MOVSI AC-1,576400 ;SETUP BR
FAD AC,AC-1 ;C(AC)+C(E)
CAME AC,AC-2 ;TEST SUM
ER3 AC,SN ;FAD FAILED
JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH
>
PAGE
;TEST FAD
;TWO NEGATIVES
;LARGER EXPONENT IN AR
;AR=576.400000000 (-1)
;BR=577.4 (-1/2), 600.4 (-1/4), 601.4 (-1/8)
;SUMS=576.2 (-1 1/2), 576.3 (-1 1/4),576.34 (-1 1/8)
AC=14
SAVEAC (1,1)
SN=33000
WW=200
XX=576000
ZZ=576400
O33000: REPEAT ^D3, ;TEST FAD-LARGER IN AR
<SN=SN+1
XX=XX+WW
WW=WW/2
ZZ=ZZ+1000
MOVSI AC-2,XX ;SETUP FOR COMPARISON
MOVSI AC,576400 ;SETUP AC
MOVSI AC-1,ZZ ;SETUP BR
FAD AC,AC-1 ;C(AC)+C(E)
CAME AC,AC-2 ;TEST SUM
ER3 AC,SN ;FAD FAILED
JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH
>
;TEST FAD
;TWO NEGATIVES
;NR SHRT COND
;AR=577.4 (-1/2), 600.4 (-1/4), 601.4(-1/8)
;BR=AR
;SUMS=576.4 (-1), 577.4 (-1/2), 600.4 (-1/4)
AC=14
SAVEAC (1,1)
SN=33100
XX=575400
ZZ=576400
O33100: REPEAT ^D3, ;TEST FAD NRSHRT
<SN=SN+1
XX=XX+1000
ZZ=ZZ+1000
MOVSI AC-2,XX ;SETUP FOR COMPARISON
MOVSI AC,ZZ ;SETUP AC
MOVSI AC-1,ZZ ;SETUP BR
FAD AC,AC-1 ;C(AC)+C(E)
CAME AC,AC-2 ;TEST SUM
ER3 AC,SN ;FAD FAILED
JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH
>
PAGE
;TEST FAD
;POSITIVE AND NEGATIVE
;LARGER IN AR
;AR=201.400000000 (+1)
;BR=577.4 (-1/2), 600.4 (-1/4), 601.4(-1/8)
;SUMS=200.4 (+1/2), 200.6 (+3/4), 200.7 (+7/8)
AC=13
SAVEAC (1,1)
SN=33200
WW=1000
XX=576400
ZZ=0
O33200: REPEAT ^D3, ;TEST FAD
<SN=SN+1
WW=WW/2
XX=XX+1000
ZZ=ZZ+WW
MOVSI AC-2,200000+ZZ ;SETUP FOR COMPARISON
MOVSI AC,201400 ;SETUP AC
MOVSI AC-1,XX ;SETUP BR
FAD AC,AC-1 ;C(AC)+C(E)
CAME AC,AC-2 ;TEST SUM
ER3 AC,SN ;FAD FAILED
JUMPL AC+2,.-6 ;LOOP ON ERROR SWITCH
>
;TEST FAD
;NOT NR ALL ZERO
;NOT NR NORMAL
;AR=200000000000
;BR=200000000001,2,4,10 ETC
;SUM=146400000000, EXPONENT
;INCREASING BY ONE
AC=12
SAVEAC (1,1)
SN=33300
XX=145400
ZZ=0
O33300: REPEAT ^D18, ;TEST BITS 18-35(1)
<SN=SN+1
XX=XX+1000
ZZ=ZZ+ZZ
IFE ZZ,<ZZ=1>
MOVSI AC-2,XX ;SETUP FOR COMPARISON
MOVSI AC,200000 ;SETUP AC
MOVE AC-1,[200000,,ZZ] ;SETUP BR
FAD AC,AC-1 ;C(AC)+C(E)
CAME AC,AC-2 ;TEST SUM
ER3 AC,SN ;FAD FAILED
CAME AC-1,[200000,,ZZ] ;VERIFY THAT C(E) IS UNCHANGED
ER5 AC-1,SN ;FAILURE, C(E) WAS CLOBBERED
JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
>
PAGE
SN=33400
ZZ=0
O33400: REPEAT ^D7, ;TEST BITS 10-17 (1)
<SN=SN+1
XX=XX+1000
ZZ=ZZ+ZZ
IFE ZZ,<ZZ=1>
MOVSI AC-2,XX ;SETUP FOR COMPARISON
MOVSI AC,200000 ;SETUP AC
MOVSI AC-1,200000+ZZ ;SETUP BR
FAD AC,AC-1 ;C(AC)+C(E)
CAME AC,AC-2 ;TEST SUM
ER3 AC,SN ;FAD FAILED
CAME AC-1,[200000+ZZ,,0] ;VERIFY THAT C(E) IS UNCHANGED
ER5 AC-1,SN ;FAILURE, C(E) WAS CLOBBERED
JUMPL AC+2,.-^D8 ;LOOP ON ERROR SWITCH
>
;TEST FAD
;SET AROV, ARFOV, ARFXU FLAGS
;AR=377400000000,777700000000
;BR=377400000000,777700000000
;SUM=000400000000
AC=11
SAVEAC (1,1)
;TEST AR OV FLAG
O33500: JFCL 10,.+1 ;CLR FLAG EXEC NEXT INST
MOVSI AC-2,400 ;SETUP FOR COMPARISON
MOVSI AC,377400 ;SETUP AC
MOVSI AC-1,377400 ;SETUP BR
FAD AC,AC-1 ;C(AC)+C(E)
JSP AC+1,.+1
CAME AC,AC-2 ;TEST SUM
ER3 AC,33501 ;FAD FAILED
JFCL 10,.+2 ;TEST AROV FLAG
ER13 AC+1,33501 ;AROV FAILED TO SET
JUMPL AC+2,O33500 ;LOOP ON ERROR SWITCH
;TEST AR FOV FLAG
O33600: JFCL 1,.+1 ;CLR FLAG, EXEC NEXT INST
MOVSI AC,377400 ;SETUP AC
MOVSI AC-1,377400 ;SETUP BR
FAD AC,AC-1 ;C(AC)+C(E)
JSP AC+1,.+1
JFCL 1,.+2 ;TEST AR FOV FLAG
ER13 AC+1,33601 ;AR FOV FAILED TO SET
JUMPL AC+2,O33600 ;LOOP ON ERROR SWITCH
;TEST ARFXU FLAG
O33700: JRST 2,@[.+1] ;CLR FLAG,EXEC NEXT INST
MOVSI AC,777700 ;SETUP AC
MOVSI AC-1,777700 ;SETUP BR
FAD AC,AC-1 ;C(AC)+C(E)
JSP AC-2,.+1 ;STORE FLAGS AND PC
TLZN AC-2,100 ;TEST AND CLEAR BIT 11
ER13 AC-2,33701 ;AR FXU FAILED TO SET
JRST 2,3(AC-2) ;CLEAR AR FXU
JUMPL AC+2,O33700 ;LOOP ON ERROR SWITCH
;TEST FADM
;AR=200400000000 (+1/2)
;BR=201400000000 (+1)
;SUM=201600000000 (+1 1/2)
AC=14
SAVEAC (1,1)
O34400: MOVSI AC-2,201600 ;SETUP FOR COMPARISON
MOVSI AC,200400 ;SETUP AC
MOVSI AC-1,201400 ;SETUP BR
FADM AC,AC-1 ;C(AC)+C(E)
CAME AC-1,AC-2 ;TEST SUM
ER5 AC-1,34401 ;FADM FAILED
CAME AC,[200400,,0] ;VERIFY THAT C(AC) IS UNCHANGED
ER3 AC,34401 ;FAILURE, C(AC) WAS CLOBBERED
JUMPL AC+2,O34400 ;LOOP ON ERROR SWITCH
PAGE
;TEST FADB
;AR=200400000000 (+1/2)
;BR=201400000000 (+1)
;SUM =201600000000 (+1 1/2)
AC=14
SAVEAC (1,1)
O34500: MOVSI AC-2,201600 ;SETUP FOR COMPARISON
MOVSI AC,200400 ;SETUP AC
MOVSI AC-1,201400 ;SETUP BR
FADB AC,AC-1 ;C(AC)+C(E)
CAME AC,AC-2 ;TEST C(AC)
ER3 AC,34501
CAME AC-1,AC-2 ;TEST C(E)
ER5 AC-1,34501 ;FADB FAILED
JUMPL AC+2,O34500 ;LOOP ON ERROR SWITCH
;TEST FADR
;TEST ROUNDING
;AR=200000000003,5,11, ETC
;BR=202400000000, EXPONENT INCREASING BY 1
;SUM=C(BR)+1
AC=13
SAVEAC (1,1)
SN=34600
XX=201400
ZZ=1
O34600: REPEAT ^D17, ;TEST MQ RIGHT
<SN=SN+1
XX=XX+1000
ZZ=ZZ+ZZ
HRLI AC-2,XX ;SETUP AC-2
HRRI AC-2,1 ;FOR COMPARISON
HRLI AC,200000 ;SETUP
HRRI AC,ZZ ;AC
AOJ AC, ;SET BIT 35
MOVSI AC-1,XX ;SETUP BR
FADR AC,AC-1 ;C(AC)+C(E)
CAME AC,AC-2 ;TEST SUM
ER3 AC,SN ;FADR FAILED
CAME AC-1,[XX,,0] ;VERIFY THAT C(E) IS UNCHANGED
ER5 AC-1,SN ;FAILURE, C(E) WAS CLOBBERED
JUMPL AC+2,.-^D11 ;LOOP ON ERROR SWITCH
>
PAGE
;TEST FADRI
;AR=200400000003
;SUM=202500000001
AC=12
SAVEAC (1,1)
O34700: HRLI AC-2,202500 ;SETUP AC-2
HRRI AC-2,1 ;FOR COMPARISON
HRLI AC,200400 ;SETUP
HRRI AC,3 ;AC
FADRI AC,202400 ;C(AC)+C(E)
CAME AC,AC-2 ;TEST SUM
ER3 AC,34701 ;FADRI FAILED
JUMPL AC+2,O34700 ;LOOP ON ERROR SWITCH
;TEST FSB
;TWO POSITIVES
;AR=201400000000 (+1)
;BR=177400000000 (+1/4)
;DIFF=200600000000 (+3/4)
AC=11
SAVEAC (1,1)
O35000: MOVSI AC-2,200600 ;SETUP FOR COMPARISON
MOVSI AC,201400 ;SETUP AC
MOVSI AC-1,177400 ;SETUP BR
FSB AC,AC-1 ;C(AC)-C(E)
CAME AC,AC-2 ;TEST DIFFERENCE
ER3 AC,35001 ;FSB FAILED
CAME AC-1,[177400,,0] ;VERIFY THAT C(E) IS UNCHANGED
ER5 AC-1,35001 ;C(E) WAS CLOBBERED
JUMPL AC+2,O35000 ;LOOP ON ERROR SWITCH
;TEST FSBM
;TWO NEGATIVES
;AR=576400000000 (-1)
;BR=600400000000 (-1/4)
;DIFF=577200000000 (-3/4)
AC=10
SAVEAC (1,1)
O35100: MOVSI AC-2,577200 ;SETUP FOR COMPARISON
MOVSI AC,576400 ;SETUP AC
MOVSI AC-1,600400 ;SETUP BR
FSBM AC,AC-1 ;C(AC)-C(E)
CAME AC-1,AC-2 ;TEST DIFFERENCE
ER5 AC-1,35101 ;FSBM FAILED
CAME AC,[576400,,0] ;VERIFY THAT C(AC) IS UNCHANGED
ER3 AC,35101 ;FAILURE, C(AC) WAS CLOBBERED
JUMPL AC+2,O35100 ;LOOP ON ERROR SWITCH
;TEST FSBB
;NEGATIVE AND POSITIVE
;AR=201400000000 (+1)
;BR=577400000000 (-1/2)
;DIFF=201600000000 (+1 1/2)
AC=7
SAVEAC (1,1)
O35200: MOVSI AC-2,201600 ;SETUP FOR COMPARISON
MOVSI AC,201400 ;SETUP AC
MOVSI AC-1,577400 ;SETUP BR
FSBB AC,AC-1 ;C(AC)-C(E)
CAME AC,AC-2 ;TEST C(AC)
ER3 AC,35201
CAME AC-1,AC-2 ;TEST C(E)
ER5 AC-1,35201 ;FSBB FAILED
JUMPL AC+2,O35200 ;LOOP ON ERROR SWITCH
;TEST FSBRB
;TWO POSITIVES
;NR NORMAL
;AR=203400000000
;BR=200477777775
;DIFF=202660000001
AC=6
SAVEAC (1,1)
O35300: HRLI AC-2,202660 ;SETUP AC-2
HRRI AC-2,1 ;FOR COMPARISON
MOVSI AC,203400 ;SETUP AC
HRLI AC-1,200477 ;SETUP
HRRI AC-1,-3 ;BR
FSBRB AC,AC-1 ;C(AC)-C(E)
CAME AC,AC-2 ;TEST C(AC)
ER3 AC,35301
CAME AC-1,AC-2 ;TEST C(E)
ER5 AC-1,35301 ;FSBRB FAILED
JUMPL AC+2,O35300 ;LOOP ON ERROR SWITCH
;GENERAL TESTS TO VERIFY EFFECT OF FSC EXECUTION ON AROV, FOV AND FXU FLAGS
AC=4
SAVEAC (1,1)
O35500: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,377400 ;SETUP FOR COMPARISON
MOVSI AC,377400 ;SETUP AC
FSC AC,0 ;SCALE - NO FLAGS
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC) FOR NO CHANGE
ER3 AC,35501 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
JRST .+2
ER13 AC+1,35501 ;AROV FLAG WAS SET
TLNE AC+1,FOV+FXU ;EXAMINE FLAGS
ER13 AC+1,35501 ;A FLAG WAS SET
JUMPL AC+2,O35500 ;LOOP ON ERROR SWITCH
O35510: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,400 ;SETUP FOR COMPARISON
MOVSI AC,377400 ;SETUP AC
FSC AC,1 ;SCALE - AROV, FOV
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;EXAMINE C(AC)
ER3 AC,35511 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
ER13 AC+1,35511 ;AROV FLAG WAS NOT SET
TLNE AC+1,FXU ;EXAMINE FXU
ER13 AC+1,35511 ;ERROR - FXU IS SET
TLNN AC+1,FOV ;EXAMINE FOV
ER13 AC+1,35511 ;ERROR - FOV NOT SET
JUMPL AC+2,O35510 ;LOOP ON ERROR SWITCH
O35520: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,177400 ;SETUP FOR COMPARISON
MOVSI AC,377400 ;SETUP AC
FSC AC,200 ;SCALE - AROV,FOV
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,35521 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
ER13 AC+1,35521 ;AROV FLAG WAS NOT SET
TLNE AC+1,FXU ;EXAMINE FXU
ER13 AC+1,35521 ;FXU WAS SET
TLNN AC+1,FOV ;EXAMINE FOV
ER13 AC+1,35521 ;FOV WAS NOT SET
JUMPL AC+2,O35520 ;LOOP ON ERROR SWITCH
O35530: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,200400 ;SETUP FOR COMPARISON
MOVSI AC,377400 ;SETUP AC
FSC AC,201 ;SCALE - AROV,FOV
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,35531 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
ER13 AC+1,35531 ;AROV FLAG NOT SET
SKIPE KLFLG
JRST O35535 ;KL10
TLNN AC+1,FXU ;EXAMINE FXU
ER13 AC+1,35531 ;FXU WAS NOT SET
O35537: TLNN AC+1,FOV ;EXAMINE FOV
ER13 AC+1,35531 ;FOV WAS NOT SET
JUMPL AC+2,O35530 ;LOOP ON ERROR SWITCH.
JRST O35540
O35535: TLNE AC+1,FXU ;FXU SHOULD NOT BE SET ON KL10
ER13 AC+1,35532
JRST O35537
O35540: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,376400 ;SETUP FOR COMPARISON
MOVSI AC,377400 ;SETUP AC
FSC AC,377 ;SCALE - AROV, FOV
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,35541 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
ER13 AC+1,35541 ;AROV FLAG WAS NOT SET
SKIPE KLFLG
JRST O35545 ;KL10
TLNN AC+1,FXU ;EXAMINE FXU
ER13 AC+1,35541 ;FXU WAS NOT SET
O35547: TLNN AC+1,FOV ;EXAMINE FOV
ER13 AC+1,35541 ;FOV WAS NOT SET
JUMPL AC+2,O35540 ;LOOP ON ERROR SWITCH
JRST O35550
O35545: TLNE AC+1,FXU ;FXU SHOULD NOT BE SET ON KL10
ER13 AC+1,35542
JRST O35547
O35550: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,377400 ;SETUP FOR COMPARISON
MOVSI AC,377400 ;SETUP AC
FSC AC,400 ;SCALE - NO FLAGS
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,35551 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
JRST .+2
ER13 AC+1,35551 ;AROV FLAG WAS SET
TLNE AC+1,FOV+FXU ;EXAMINE FLAGS
ER13 AC+1,35551 ;A FLAG WAS SET
JUMPL AC+2,O35550 ;LOOP ON ERROR SWITCH
O35560: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,400 ;SETUP FOR COMPARISON
MOVSI AC,377400 ;SETUP AC
FSC AC,-377 ;SCALE - NO FLAGS
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,35561 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
JRST .+2
ER13 AC+1,35561 ;AROV FLAG WAS SET
TLNE AC+1,FOV+FXU ;EXAMINE FLAGS
ER13 AC+1,35561 ;A FLAG WAS SET
JUMPL AC+2,O35560 ;LOOP ON ERROR SWITCH
O35570: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,377400 ;SETUP FOR COMPARISON
MOVSI AC,377400 ;SETUP AC
FSC AC,-400 ;SCALE - AROV,FOV,FXU
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,35571 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
ER13 AC+1,35571 ;AROV FLAG WAS NOT SET
TLNN AC+1,FOV ;EXAMINE FOV FLAG
ER13 AC+1,35571 ;FOV WAS NOT SET
TLNN AC+1,FXU ;EXAMINE FXU FLAG
ER13 AC+1,35571 ;FXU WAS NOT SET
JUMPL AC+2,O35570 ;LOOP ON ERROR SWITCH
O35600: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,400 ;SETUP FOR COMPARISON
MOVSI AC,400 ;SETUP AC
FSC AC,0 ;FSC - NO FLAGS
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,35601 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
JRST .+2
ER13 AC+1,35601 ;AROV WAS SET
TLNE AC+1,FOV+FXU ;TEST FOV,FXU
ER13 AC+1,35601 ;EITHER FOV OR FXU WAS SET
JUMPL AC+2,O35600 ;LOOP ON ERROR SWITCH
O35610: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,377400 ;SETUP FOR COMPARISON
MOVSI AC,400 ;SETUP AC
FSC AC,-1 ;SCALE - AROV,FOV,FXU
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,35611 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
ER13 AC+1,35611 ;AROV FLAG WAS NOT SET
TLNN AC+1,FOV ;EXAMINE FOV FLAG
ER13 AC+1,35611 ;FOV WAS NOT SET
TLNN AC+1,FXU ;EXAMINE FXU FLAG
ER13 AC+1,35611 ;FXU WAS NOT SET
JUMPL AC+2,O35610 ;LOOP ON ERROR SWITCH
O35620: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,201400 ;SETUP FOR COMPARISON
MOVSI AC,400 ;SETUP AC
FSC AC,-177 ;SCALE - AROV,FOV,FXU
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,35621 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
ER13 AC+1,35621 ;AROV FLAG WAS NOT SET
TLNN AC+1,FOV ;EXAMINE FOV FLAG
ER13 AC+1,35621 ;FOV WAS NOT SET
TLNN AC+1,FXU ;EXAMINE FXU FLAG
ER13 AC+1,35621 ;FXU WAS NOT SET
JUMPL AC+2,O35620 ;LOOP ON ERROR SWITCH
O35630: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,200400 ;SETUP FOR COMPARISON
MOVSI AC,400 ;SETUP AC
FSC AC,-200 ;SCALE - AROV,FOV,FXU
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,35631 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
ER13 AC+1,35631 ;AROV FLAG WAS NOT SET
TLNN AC+1,FOV ;EXAMINE FOV FLAG
ER13 AC+1,35631 ;FOV WAS NOT SET
TLNN AC+1,FXU ;EXAMINE FXU FLAG
ER13 AC+1,35631 ;FXU WAS NOT SET
JUMPL AC+2,O35630 ;LOOP ON ERROR SWITCH
O35640: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,1400 ;SETUP FOR COMPARISON
MOVSI AC,400 ;SETUP AC
FSC AC,-377 ;SCALE - AROV,FOV,FXU
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,35641 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
ER13 AC+1,35641 ;AROV FLAG WAS NOT SET
TLNN AC+1,FOV ;EXAMINE FOV FLAG
ER13 AC+1,35641 ;FOV WAS NOT SET
SKIPE KLFLG
JRST O35645 ;KL10
TLNE AC+1,FXU ;EXAMINE FXU FLAG
ER13 AC+1,35641 ;FXU WAS SET
O35647: JUMPL AC+2,O35640 ;LOOP ON ERROR SWITCH
JRST O35650
O35645: TLNN AC+1,FXU ;FXU SHOULD BE SET ON KL10
ER13 AC+1,35642
JRST O35647
O35650: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,400 ;SETUP FOR COMPARISON
MOVSI AC,400 ;SETUP AC
FSC AC,-400 ;SCALE - AROV,FOV,FXU
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,35651 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
ER13 AC+1,35651 ;AROV FLAG WAS NOT SET
TLNN AC+1,FOV ;EXAMINE FOV FLAG
ER13 AC+1,35651 ;FOV WAS NOT SET
SKIPE KLFLG
JRST O35655
TLNE AC+1,FXU ;EXAMINE FXU FLAG
ER13 AC+1,35651 ;FXU WAS SET
O35657: JUMPL AC+2,O35650 ;LOOP ON ERROR SWITCH
JRST O35660
O35655: TLNN AC+1,FXU ;FXU SHOULD BE SET ON KL10
ER13 AC+1,35652
JRST O35657
O35660: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,377400 ;SETUP FOR COMPARISON
MOVSI AC,400 ;SETUP AC
FSC AC,377 ;SCALE - NO FLAGS
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,35661 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
JRST .+2
ER13 AC+1,35661 ;AROV FLAG WAS SET
TLNE AC+1,FOV+FXU ;EXAMINE FLAGS
ER13 AC+1,35661 ;A FLAG WAS SET
JUMPL AC+2,O35660 ;LOOP ON ERROR SWITCH
O35670: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,400 ;SETUP FOR COMPARISON
MOVSI AC,400 ;SETUP AC
FSC AC,400 ;SCALE - NO FLAGS
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,35671 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
JRST .+2
ER13 AC+1,35671 ;AROV FLAG WAS SET
TLNE AC+1,FOV+FXU ;EXAMINE FLAGS
ER13 AC+1,35671 ;A FLAG WAS SET
JUMPL AC+2,O35670 ;LOOP ON ERROR SWITCH
O35700: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,-377400 ;SETUP FOR COMPARISON
MOVSI AC,-377400 ;SETUP AC
FSC AC,0 ;SCALE - NO FLAGS
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC) FOR NO CHANGE
ER3 AC,35701 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
JRST .+2
ER13 AC+1,35701 ;AROV FLAG WAS SET
TLNE AC+1,FOV+FXU ;EXAMINE FLAGS
ER13 AC+1,35701 ;A FLAG WAS SET
JUMPL AC+2,O35700 ;LOOP ON ERROR SWITCH
O35710: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,-400 ;SETUP FOR COMPARISON
MOVSI AC,-377400 ;SETUP AC
FSC AC,1 ;SCALE - AROV,FOV
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;EXAMINE C(AC)
ER3 AC,35711 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
ER13 AC+1,35711 ;AROV FLAG WAS NOT SET
TLNE AC+1,FXU ;EXAMINE FXU
ER13 AC+1,35711 ;ERROR - FXU IS SET
TLNN AC+1,FOV ;EXAMINE FOV
ER13 AC+1,35711 ;ERROR - FOV NOT SET
JUMPL AC+2,O35710 ;LOOP ON ERROR SWITCH
O35720: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,-177400 ;SETUP FOR COMPARISON
MOVSI AC,-377400 ;SETUP AC
FSC AC,200 ;SCALE - AROV,FOV
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,35721 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
ER13 AC+1,35721 ;AROV FLAG WAS NOT SET
TLNE AC+1,FXU ;EXAMINE FXU
ER13 AC+1,35721 ;ERROR - FXU IS SET
TLNN AC+1,FOV ;EXAMINE FOV
ER13 AC+1,35721 ;ERROR - FOV NOT SET
JUMPL AC+2,O35720 ;LOOP ON ERROR SWITCH
O35730: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,-200400 ;SETUP FOR COMPARISON
MOVSI AC,-377400 ;SETUP AC
FSC AC,201 ;SCALE - AROV,FOV
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,35731 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
ER13 AC+1,35731 ;AROV FLAG WAS NOT SET
SKIPE KLFLG
JRST O35735 ;KL10
TLNN AC+1,FXU ;EXAMINE FXU
ER13 AC+1,35731 ;ERROR - FXU IS NOT SET
O35737: TLNN AC+1,FOV ;EXAMINE FOV
ER13 AC+1,35731 ;ERROR - FOV NOT SET
JUMPL AC+2,O35730 ;LOOP ON ERROR SWITCH
JRST O35740
O35735: TLNE AC+1,FXU ;FXU SHOULD NOT BE SET ON KL10
ER13 AC+1,35732
JRST O35737
O35740: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,-376400 ;SETUP FOR COMPARISON
MOVSI AC,-377400 ;SETUP AC
FSC AC,377 ;SCALE - AROV, FOV
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,35741 ;C(AC) RAILED
JOV .+2 ;EXAMINE AROV FLAG
ER13 AC+1,35741 ;AROV FLAG WAS NOT SET
SKIPE KLFLG
JRST O35745
TLNN AC+1,FXU ;EXAMINE FXU
ER13 AC+1,35741 ;ERROR - FXU IS NOT SET
O35747: TLNN AC+1,FOV ;EXAMINE FOV
ER13 AC+1,35741 ;ERROR - FOV NOT SET
JUMPL AC+2,O35740 ;LOOP ON ERROR SWITCH
JRST O35750
O35745: TLNE AC+1,FXU ;FXU SOULD NOT BE SET ON KL10
ER13 AC+1,35742
JRST O35747
O35750: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,-377400 ;SETUP FOR COMPARISON
MOVSI AC,-377400 ;SETUP AC.
FSC AC,400 ;SCALE - NO FLAGS
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,35751 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
JRST .+2
ER13 AC+1,35751 ;AROV FLAG WAS SET
TLNE AC+1,FOV+FXU ;EXAMINE FLAGS
ER13 AC+1,35751 ;A FLAG WAS SET
JUMPL AC+2,O35750 ;LOOP ON ERROR SWITCH
O35760: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,-400 ;SETUP FOR COMPARISON
MOVSI AC,-377400 ;SETUP AC
FSC AC,-377 ;SCALE - NO FLAGS
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,35761 ;C(AC) FAILED.
JOV .+2 ;EXAMINE AROV FLAG
JRST .+2
ER13 AC+1,35761 ;AROV FLAG WAS SET
TLNE AC+1,FOV+FXU ;EXAMINE FLAGS
ER13 AC+1,35761 ;A FLAG WAS SET
JUMPL AC+2,O35760 ;LOOP ON ERROR SWITCH
O35770: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,-377400 ;SETUP FOR COMPARISON
MOVSI AC,-377400 ;SETUP AC
FSC AC,-400 ;SCALE - AROV,FOV,FXU
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,35771 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
ER13 AC+1,35771 ;AROV FLAG WAS NOT SET
TLNN AC+1,FOV ;EXAMINE FOV FLAG
ER13 AC+1,35771 ;FOV WAS NOT SET
TLNN AC+1,FXU ;EXAMINE FXU FLAG
ER13 AC+1,35771 ;FXU WAS NOT SET
JUMPL AC+2,O35570 ;LOOP ON ERROR SWITCH
O36000: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,-400 ;SETUP FOR COMPARISON
MOVSI AC,-400 ;SETUP AC
FSC AC,0 ;FSC - NO FLAGS
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,36001 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
JRST .+2
ER13 AC+1,36001 ;AROV FLAG WAS SET
TLNE AC+1,FOV+FXU ;TEST FOV,FXU
ER13 AC+1,36001 ;EITHER FOV OR FXU WAS SET
JUMPL AC+2,O36000 ;LOOP ON ERROR SWITCH
O36010: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,-377400 ;SETUP FOR COMPARISON
MOVSI AC,-400 ;SETUP AC
FSC AC,-1 ;SCALE - AROV,FOV,FXU
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,36011 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
ER13 AC+1,36011 ;AROV FLAG WAS NOT SET
TLNN AC+1,FOV ;EXAMINE FOV FLAG
ER13 AC+1,36011 ;FOV WAS NOT SET
TLNN AC+1,FXU ;EXAMINE FXU FLAG
ER13 AC+1,36011 ;FXU WAS NOT SET
JUMPL AC+2,O36010 ;LOOP ON ERROR SWITCH
O36020: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,-201400 ;SETUP FOR COMPARISON
MOVSI AC,-400 ;SETUP AC
FSC AC,-177 ;SCALE - AROV,FOV,FXU
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,36021 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
ER13 AC+1,36021 ;AROV FLAG WAS NOT SET
TLNN AC+1,FOV ;EXAMINE FOV FLAG
ER13 AC+1,36021 ;FOV WAS NOT SET
TLNN AC+1,FXU ;EXAMINE FXU FLAG
ER13 AC+1,36021 ;FXU WAS NOT SET
JUMPL AC+2,O36020 ;LOOP ON ERROR SWITCH
O36030: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,-200400 ;SETUP FOR COMPARISON
MOVSI AC,-400 ;SETUP AC
FSC AC,-200 ;SCALE - AROV,FOV,FXU
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,36031 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
ER13 AC+1,36031 ;AROV FLAG WAS NOT SET
TLNN AC+1,FOV ;EXAMINE FOV FLAG
ER13 AC+1,36031 ;FOV WAS NOT SET
TLNN AC+1,FXU ;EXAMINE FXU FLAG
ER13 AC+1,36031 ;FXU WAS NOT SET
JUMPL AC+2,O36030 ;LOOP ON ERROR SWITCH
O36040: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,-1400 ;SETUP FOR COMPARISON
MOVSI AC,-400 ;SETUP AC
FSC AC,-377 ;SCALE - AROV,FOV,FXU
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,36041 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
ER13 AC+1,36041 ;AROV FLAG WAS NOT SET
TLNN AC+1,FOV ;EXAMINE FOV FLAG
ER13 AC+1,36041 ;FOV WAS NOT SET
SKIPE KLFLG
JRST O36045 ;KL10
TLNE AC+1,FXU ;EXAMINE FXU FLAG
ER13 AC+1,36041 ;FXU WAS SET
O36047: JUMPL AC+2,O36040 ;LOOP ON ERROR SWITCH
JRST O36050
O36045: TLNN AC+1,FXU ;FXU SHOULD BE SET ON KL10
ER13 AC+1,36042
JRST O36047
O36050: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,-400 ;SETUP FOR COMPARISON
MOVSI AC,-400 ;SETUP AC
FSC AC,-400 ;SCALE - AROV,FOV,FXU
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,36051 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
ER13 AC+1,36051 ;AROV FLAG WAS NOT SET
TLNN AC+1,FOV ;EXAMINE FOV FLAG
ER13 AC+1,36051 ;FOV WAS NOT SET
SKIPE KLFLG
JRST O36055 ;KL10
TLNE AC+1,FXU ;EXAMINE FXU FLAG
ER13 AC+1,36051 ;FXU WAS SET
O36057: JUMPL AC+2,O36050 ;LOOP ON ERROR SWITCH
JRST O36060
O36055: TLNN AC+1,FXU ;FXU SHOULD BE SET ON KL10
ER13 AC+1,36052
JRST O36057
O36060: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,-377400 ;SETUP FOR COMPARISON
MOVSI AC,-400 ;SETUP AC
FSC AC,377 ;SCALE - NO FLAGS
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,36061 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
JRST .+2
ER13 AC+1,36061 ;AROV FLAG WAS SET
TLNE AC+1,FOV+FXU ;EXAMINE FLAGS
ER13 AC+1,36061 ;A FLAG WAS SET
JUMPL AC+2,O36060 ;LOOP ON ERROR SWITCH
O36070: JRST 2,@.+1 ;CLEAR FLAGS
.+1
MOVSI AC-2,-400 ;SETUP FOR COMPARISON
MOVSI AC,-400 ;SETUP AC
FSC AC,400 ;SCALE - NO FLAGS
JSP AC+1,.+1 ;SAVE FLAGS
CAME AC,<AC-2>&17 ;TEST C(AC)
ER3 AC,36071 ;C(AC) FAILED
JOV .+2 ;EXAMINE AROV FLAG
JRST .+2
ER13 AC+1,36071 ;AROV FLAG WAS SET
TLNE AC+1,FOV+FXU ;EXAMINE FLAGS
ER13 AC+1,36071 ;A FLAG WAS SET
JUMPL AC+2,O36070 ;LOOP ON ERROR SWITCH
JRST BEGEND