

floating interpretive =july 1961


	fnd=tac+anl-opr
	fbr=tbr
	dsa=dso
	ala=alo
	pna=pno

fit=30
fit|	sto	|index registers
	sto
	sto
	sto
	sto
	sto
	sto
	sto	|37
fpc,	sto	|pseudo program couxter
fac,	sto	|these two registers pseudo accumulator
	sto
	sto	|overflow indicator
	sto	|divide by zero indicator cr+tf
fs0,	sto	|contains the floating point instruction
fs1,	sto	|complement of the index register
fs2,	sto	|used in arithmetic subroutines
fs3,	sto	|reads store in x
fs4,	sto	|reads add x
fs5,	sto	|used for add, multifply, divide
fs6,	sto	|ditto cr+tf

flt,	740222
	slr fs1
	add (-llr+add+1
	sto fpc
f01,	cla	|return point for routine
	add fpc
	add (1
	sto fpc	|adjust program counter
	sto .+2
	cla
	opr	|brongs in programmers instruction
	sto fs0	|save the instruction
	clr
	cyl
	cyl
	cyl
	cyl
	cyl
	cll
	add (tra f10	|transfer to table

	sto .+16
	cla
	add fs0
	llr (17777	|eliminate all but first 5 bits
	fnd
	lac
	slr fs3	|reads store in x
	add (add	|reads add x
	sto fs4
	fbr	|xring in test  buffer 
	cyl
	cyl
	trn f42
	cla
	hlt+opr-opr	|goes to transfer table cr+tf
f42,	cla
	add fac
	llr fac+1	|display accumulator
	hlt
	llr fs0
	cla
		add fpc
	hlt	|display orders
	tra f42-2	|cr+tf

f10,	tra f74	|the transfer table - fid
	tra f51	|ftp
	tra f52	|ftn
	tra f53	|ftz
	tra f54	|fnz
	tra f55	|fca
	tra f56	|fad
	tra f57	|fcs
	tra f58	|fsb
	tra f59	|fst
	tra f60	|fmp
	tra f61	|fdv
	tra f62	|fxt
	tra f63	|fts
	tra f64	|fht
	tra f65	|ftx
	tra f66	|flx
	tra f67	|fti
	tra f68	|fla

	tra f45	|fsz
	tra f46	|ftd
	tra f31	|fal
	tra f32	|fsl
	tra f73	|fir cr+tf
	tra f50	|ftr
	tra f76	|ftb
	tra f85	|fhn
	tra f86	|fcv
	tra f87	|frc
	tra f75
	tra f83	|general operate class
	tra f74	|fid, same as above
f11,	tra f77	|fhl
	tra f78	|fsp
	tra f79	|fsn
	tra f80	|fch
	tra f81	|foz
	tra f82	|fov
	tra f84	|fdccr+tf

f83,	add fs3	|check for illegal order
	com
	add (7
	trn f75	|no good, illegal order
	cla
	add fs3
	add (tra f11
	sto .+2
	cla
	opr	|will tranfer to the orders  cr+tf

f49,	cla	|all addressable routines return here
	sto fs1	|for indexing purposes
	tra f01	|look at next instruction
f50,	cla	|floating transfer, ftr, ftr
	add fs4	|reads add x
	add (-1
	add fs1	|to check indexing
	sto fpc	|set up program counter
	tra f49	|return
f51,	add fac	|accumulator ftp
	com
	trn .+2	|maybe transfer
	tra f49	|do not transfer
	add (1	|if number was zero this will make it +
	trn f50	|only on + (or -) but not zero
	tra f49	|does not transfer on zero
f54,	add fac	|tnz
	add (1
	trn f50	|not zero, transfer
	add (-1
	trn f49	|was zero no transfer
	tra f50	|was not zero, transfercr+tf
f52,	add fac	|minus transfer, ftn
	tra f51+2
f53,	add fac	|transfer if zero, ftz
	add (1
	trn f49	|not zero
	add (-1
	trn f50	|make transfer
	tra f49	|not zerocr+tf
f77,	add fpc	|halt, proceed, fhl
	opr 30200	|halt, clear live resistor
	cla
	add fac	|fraction in accumulator
	llr fac+1	|exponent in live register
	hlt
	tra f01	|rejoins program
f78,	add fac 	|set plus, fsp
	com
	trn .-1
	sto fac
	tra f01
f79,	add fac	|set minus, fsn
	com
	trn .-1
	com
	tra f78+3	|cr+tf
f80,	add fac	|change sign,fch
	com
	tra f78+3
	f81,	tra f01	|no operation, foz
f82,	llr fac+2	|overflow register
	sto fac+2	|clear overflow register
	lac	|bring in
	trn f01	|was overflow, take next instruction
	cla	|no overflow
	add fpc	|skip next instruction
	add (1
	sto fpc
	tra f01
f84,	llr fac+3	|divide check skip, fdc
	sto fac+3
	tra f82+2	|cr+tf

f62,	add fs3	|exit, fxt
	add (tra
	sto .+2
	cla	|leaves with a cleared accumulator
	opr	|leaves program
f64,	add fpc	|halt and transfer, fht
	llr fs3
	hlt	|stop 1
	cla
	add fac	|set up pseudo accumulator
	llr fac+1
	hlt	|stop 2
	tra f50	|make transfer
f63,	tra f62	|go to subroutine, fts
f76,	tac	|examine tac, ftb
	ala
	com	|all 1s in tac
	add fs3	|counter on bit to examine
	trn .+11	|if bit zero is to be examined
	lac
	cyl	|bring in tac and cycle left
	ala	|replace, clear accumulator
	add fs3	|counter
	add (-1
	sto fs3	|adjust counter
	trn .+2	|counter expired
	tra .-7
	lac
	trn f01	|take next instruction after examining bit
	tra f82+4	|increment program counter cr+tf

f75,	cla	|illegal order
	add (flexo fio
	pnt
	pnt
	pna
	tra f77	|to fhl
f85,	clc	|halt number n, fhn
	llr fs3	|put number in live register
	hlt
	tra f77+2	|cr+tf


f73,	add fs3	|index reg., fir
	alr+com-opr
	add (10	|to check illegal order
	trn f75
	lac	|cr+tf
	add (add fit
	sto f68+2
	sto f67+16
	sto f65+12
	sto .+2
	cla
	opr	|requested index register to accumulator
	com	|make negative
	sto fs1	|enter negative of index register
	tra f01	|take next instruction
f74,	tra f01	|index decrement, no operation , fid
f65,	add fpc	|transfer, index increased by decrement, ftx
	add (-2
	sto .+11	|at .+11 will add decrement
	cla
	sto fs1	|restore indexing register
	add .+5	|see fir under f65+12
	llr (add
	lpd	|reads store in index register
	sto .+4
	cla
	opr	|will add index register, see fir
	opr	|will add decrement
	opr	|will store in index register n
	tra f50	|perform transfer   cr+tf

f45,	add fs3	|store zero, stz
	add fs1
	sto .+4
	add (1
	sto .+2
	cla
	hlt	|stores zero in the fraction
	hlt	|stores zero in the exponent
	tra f49

f46,	llr f75	|contais cla. Transfer if index grtr decremet, ftd
	slr f67+11
	llr f67+21
	slr f67+20
	tra f67+2
f67,	llr (sto f67+20
	slr f67+11	|trns same as ftd, but n-decremet to n, fti
	add fpc

	add (-2	|command to add decrement
	sto .+10
	cla
	add .+10	|reads add index register n, see fir
	llr (add
	lpd	|reads store in index register n
	sto .+7
	cla
	sto fs1	|restore indexing register
	opr	|will add decrement
	com
	opr	|will add index register, see fir
	trn f01	|ignore operation, decrement exc. or = i.r.
	opr	|will stoe in n its new value
	tra f50	|perform transfercr+tf
f31,	add fs4
	tra .+2
f32,	add fs3	|fs4=add x,fs3=sto x, fal and fsl
	add fs1	|to index
	sto .+3
	cla
	add fac
	hlt	|will add or store, depending
	sto fac
	tra f49	|return cr+tf
f66,	add f65+12	|load index from address, flx
	llr (add
	lpd	|reads store in index register n
	sto .+5
	llr fs4	|add x
	slr .+2
	cla
	opr	|will udd register
	opr	|will store in i.r. n
	tra f49	|return point
f68,	llr fs3	|load index from address, fla
	slr .+2
	opr	|will add n (see fir)
	opr	|will store in x
	tra f49	|return to programcr+tf

f55,	llr (opr	|clear and add, fca
	slr .+10
	add fs4	|reads add x
	add fs1	|index
	sto .+4	
	add (1	|for exponent
	sto .+6
	cla
	opr	|adds fraction
	opr	|cvmplements if subtract
	sto fac
	cla
	opr	|add exponent
	sto fac+1	|enter accumulator
	tra f49	|return
f57,	llr (com	|clear and subtract, fcs
	slr f55+11	tra f55+2	|go above to add
f59,	add fs3	|store, fst
	add fs1	|index
	sto .+5	|reads store in x
	add (1
	sto .+6
	cla
	add fac	|bring in accumulator
	opr	|will store
	cla
	add fac+1	|exponent
	opr	|will store
	tra f49	|returncr+tf

f48,	cla	|to enter Gordons subroutines
	add fs4
	add fs1	|to index
	add (1	|reads add exponent
	sto .+4
	add (-1
	sto .+5
	cla
	opr	|will add exponent
	sto fs6	|stores protperly
	cla
	opr	|will add fraction
	opr	|complement for subtraction
	llr (tra f49	|return address
	opr	|will transfer out
f56,	llr (opr	|floating add, fad
	slr f48+14
	llr (tra g11
	slr f48+16
	tra f48
f58,	llr (com	|floating subtract, fsb
	tra f56+1
f60,	llr (tra g92	|multiply, fmp
	slr f48+16
	llr (opr
	slr f48+14
	tra f48
f61,	llr (tra g50
	slr f48+16	|floating divide, fdv
	tra f60+2	|cr+tf

g92,	slr g09	|floating multiply
	add (-0
	trn g02
	llr (opr
g91,	slr g05
	sto fs5
	cla
	add fac
	add (-0
	trn g03
	llr (opr
g04,	slr g05+1
	shr
	sto fac
	cla
	add fs5
	shr
	sto fs5
	cla
	sto fs2
	llr (-2
	tra .+2
	ala
	add fs5
	cyr
	sto fs5
	trn g94
	cla
	add fs2
g95,	shr
	sto fs2
	lal
	trn .-12
	cla
	add fs2
	cyl
	cyl
	tra g05-2
g94,	cla
	add fs2
	add fac
	tra g95
	trn g06
	llr (-1
g05,	hlt
	hlt
	sto fac	|cr+tf
	lac
g08,	add fac+1
	add fs6
	sto fac+1
g09,	hlt
g02,	com
	add (-0
	trn g10
	llr (com
	tra g91
g03,	com
	add (-0
	trn g10
	llr (com
	tra g04
g06,	llr (0
	cyr
	trn .+2
	tra g05
	add (400000
	tra g05
g10,	sto fac
	sto fac+1
	tra g09	|end of multiply cr+tf

g11,	sto fs5	|add
	slr g22
	add (-0
	trn g12
	cla
	add fac
	add (-0
	trn g13
g14,	cla
	add fac+1
	com
	add fs6
	trn g15
	llr fs6
	slr fac+1
	com
	sto fs2
	cla
	add fac
	llr fs5
	slr fac
g16,	ala
	add fs2
	add (17	|cr+tf

	trn g22
g17,	lac
	shr
	ala
	add (1
	add fs2
	sto fs2
	trn g17
	cla
	add fac
	shr
	lad
	add (-0
	trn g18
	llr (opr
g19,	slr g20
	ala
	add fac+1
	add (1
	sto fac+1
	tra .+5
	ala
	add fac+1
	add (-1	|cr+tf

	sto fac+1
	lal
	trn .+2
	tra .-6
	cyr
g20,	hlt
	sto fac
g22,	hlt
g12,	com
	add (-0
	trn g22
	tra g11+3
g13,	com
	add (-0
	trn .+2
	tra g14
	llr fs5
	slr fac
	llr fs6
	slr fac+1
	tra g22
g15,	sto fs2
	cla
	add fs5	|cr+tf

	tra g16
g18,	com
	add (-0
	trn .+3
	llr (com
	tra g19
	llr (-0
	slr fac
	slr fac+1
	tra g22	|end of add cr+tf
g50,	slr g55	|divide
	add (-0
	trn g51
	llr (opr
	slr g55-3
	sto fs2
	com
	sto fs5
	cla
	add fac
	add (-0
	trn g52
	llr (opr	|cr+tf
	g53=g50+4
g54,	slr g55-2
	sto fac
	add fs5
	trn g56
	cla
	add fac
	cyr+com-opr
	ala
	add (-1	|cr+tf
g57,	add fs6
	com
	add fac+1
	sto fac+1
	slr fac
	llr (-1
	cla
	tra g59+1
g59,	ala
	add fac
	cyl
	add fs2
	trn g60
	add fs5
	sto fac
	lal
	trn g59
	tra g60+4	|cr+tf
g60,	sto fac
	lal
	add (-1
	trn g59
	llr (377777
	lpd
	hlt
	hlt
	sto fac	|cr+tf
g55,	hlt	|end routine, follow trns also
g51,	com
	add (-0
	trn g70	|divide by xero
	llr (com
	tra g53
g52,	com
	add (-0
	trn .+3
	llr (com
	tra g54
	llr (-0
	slr fac
	slr fac+1
	tra g55	|cr+tf
g56,	com
	add (-0
	trn g58
	add fs5
	ala
	tra g57
g58,	cla
	add fs6
	com	|cr+tf
	add fac+1
	add (1
	sto fac+1
	cla
	add (200000
	tra g55-3	|end of divide cr+tf
g70,	llr (-0
	slr fac+3	|set alarm for dvde by zero
	llr (377777	|biggest exponent possible
	slr fac+1
	cla
	add fac	|check sign
	trn .+4	|was negative
	llr (377777
	slr fac
	tra f49	|return
	llr (400000
	tra .-3	|end of aritihetic subroutines cr+tf

b00,	llr (sto fac+1	|fixed to float entry
	slr b06
	cla
	add fac
	add (-0
	trn b01
	llr (opr	|cr+tf
b02,	slr b03-2	|finish test for fac =+-0, or+, or-
	ala
	add fpc
	add (-1
	sto .+2
	cla
	hlt
	com
	add (21
b06,	opr	|stay, or to float-fix
	lal
	trn b05
	ala
	add fac+1
	add (-1
	tra b06	|cr+tf
b05,	lac
	opr
	sto fac
b03,	tra f01	|return to interpret
b01,	com
	add (-0
	trn b03
	llr (com
	tra b02	|end fixed to float , cr+tf
b10,	llr (tra b11	|float-fixed entry
	tra b00+1
b11,	slr b06
	com
	add fac+1
	trn b12
	llr (cyl
b14,	slr b15
	com
	llr b06
	add (1
	trn .+2
	tra b05
	sto fac+1
	lac
b15,	opr	|cr+tf
	trn b17
	ala
	add fac+1
	tra b14+3
b12,	com
	add (-0
	trn b03
	llr (shr
	tra b14
b17,	llr (-0
	slr fac+2	|overflow indicator
	llr (400000
	lpd
	tra b15+2	|finish float fix
f86=b00
f87=b10

constants

flt|	700222
f45+4|	sto .+3

start
