Google
 

Trailing-Edge - PDP-10 Archives - klad_sources - klad.sources/dfkca1.mac
There are no other files named dfkca1.mac in the archive.
RENTR1:	DROPDV				;CLOSE LOGICAL OUTPUT FILE
	CALL	[SIXBIT .EXIT.]

PGMNAM:	ASCIZ?
KL10 ADVANCED INSTRUCTION DIAGNOSTIC #1 
?
;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