/scop-double

/scope character output subroutine

/o. fedoroff -- 16 october 1963
/updated for possible assembler oct 1965

90f,	0		/ac store
	dio 95f 2
	dap 95f-1	/return address
	lac 95f 2
	and (77		/glean flexo code
	sad (36		/tab
	jmp 96f
	sad (77		/cr
	jmp 93f 3
	cli		/get sa of triple list from flexo table
	rcr 1s
	add (98f		/flexo table origin
	dap . 1
	lac		/flexo table entry
	spi i		/entries packed 2/word
	rar 9s		/even entry left half
	and (777
	sza i
	jmp 93f		/space for undefined character
	add (99f-1	/origin of triple table-1
	dap 91f 2

91f,	law i 3		/display loop
	dac 95f 3	/point counter
	lac		/get triple
	ral 1s		/nop for half figures
	dac 95f 4

92f,	cli
	lac 95f 4	/get next point
	rar 3s
	dac 95f 4
	and (16016	/and (7007 for half figures
	sza i		/rel. coordinates 0,0 . end of character
	jmp 93f		/exit to space
	add 95f 1	/space vector
	sma
	sub (1		/carry from x into y fix
	rcr 9s
	ral 9s
	spi i
	sub (1000	/carry from y into x fix
	dpy-i 200
	isp 95f 3	/index point counter
	jmp 92f		/if not 3 points
	idx 91f 2	/index triple reference
	jmp 91f

                
                                
/scope character output subroutine (scop-double) - page 2

93f,	lac 95f 5	/space constant
	add 95f 1	/space vector
	jmp 94f

	law i 24		/cr, law i 12 for half figures
	add 95f		/line vector
	dac 95f

94f,	dac 95f 1	/space vector
	rar 9s		/glean space component
	and (776
	dac 95f 3
	and (760		/and (770 for half figures
	sad (360		/sad (370 for half figures
	jmp 93f 3	/cr if next letter off page
	law 95f 6	/setup to look-up nextab
	dap . 5
	idx . 4
	sad (sas 96f-1	/check end of table
	jmp 95f-3	/exit
	lac 95f 3	/present space
	sas
	jmp .-5
	idx .-2		/get nextab
	law 1
	add i .-4
	dac 95f 6

	lac 90f		/restore ac
	lio 95f 2	/restore io
	jmp		/return

95f,	0		/line vector
	0		/space vector
	0		/io store
	0		/point triple count
	0		/current triple
	14000		/space constant, 6000 for half figures
	0		/next tab stop

	400		/tab stop table
	570
	760
	150
	340
	400

96f,	lac 95f 6	/tab routine
	sad (401
	jmp 93f 3	/cr if next tab off page
	lio 95f 1	/space vector
	ril 9s		/get line part
	rcl 9s
	jmp 94f		/store and nextab lookup

                
                                
/scope character output subroutine (scop-double) - p3

97f,	lio (401360	/set page ... (line, space)
	dio 95f
	dio 95f 1
	lio (570
	dio 95f 6
	dap . 1
	jmp

/flexo table

define	entry f, s
	fx1000+s
	terminate

98f,	entry 313, 222	entry 226, 233
	entry 240, 245	entry 253, 261
	entry 265, 273	entry   0,   0
	entry   0,   0	entry   0,   0
	entry 301, 324	entry 150, 156
	entry 162, 170	entry 175, 203
	entry 210, 214	entry   0, 316
	entry   0,   0	entry   0,   0
	entry 310,  64	entry  70,  75
	entry 101, 107	entry 116, 124
	entry 132, 141	entry   0,   0
	entry 306, 333	entry 320, 327
	entry   0,   1	entry   7,  16
	entry  23,  31	entry  37,  44
	entry  52,  60	entry   0, 314
	entry   0,   0	entry   0,   0

                
                                
/scop-double, p4

define	triple a,b, m,n, x,y
	mx10>>05<<ax10>>05<<yx10>>05<<nx10>>05<<bx10>>05<<x
	termin


99f=.


	triple 0,3, 0,1, 0,2	triple 1,6, 0,4, 0,5		/a
	triple 4,5, 2,7, 3,6	triple 4,2, 4,3, 4,4
	triple 4,1, 1,3, 2,3	triple 3,3, 0,0, 0,0

	triple 0,1, 0,2, 0,3	triple 0,4, 0,5, 0,6		/b
	triple 0,7, 1,1, 1,4	triple 1,7, 2,1, 2,4
	triple 2,7, 3,1, 3,4	triple 3,7, 4,2, 4,3
	triple 4,5, 4,6, 0,0

	triple 0,2, 0,3, 0,4	triple 0,5, 0,6, 1,1		/c
	triple 1,7, 2,1, 2,7	triple 3,1, 3,7, 4,1
	triple 4,7, 0,0, 0,0

	triple 0,1, 0,2, 0,3	triple 0,4, 0,5, 0,6		/d
	triple 0,7, 1,1, 1,7	triple 2,1, 2,7, 3,2
	triple 3,6, 4,3, 4,4	triple 4,5, 0,0,0,0

	triple 0,1, 0,2, 0,3	triple 0,4, 0,5, 0,6		/e
	triple 0,7, 1,1, 1,4	triple 1,7, 2,1, 2,4
	triple 2,7, 3,1, 3,7	triple 4,1, 4,7, 0,0

	triple 0,1, 0,2, 0,3	triple 0,4, 0,5, 0,6		/f
	triple 0,7, 1,4, 1,7	triple 2,4, 2,7, 3,7
	triple 4,7, 0,0, 0,0

	triple 0,2, 0,3, 0,4	triple 0,5, 0,6, 1,1		/g
	triple 1,7, 2,1, 2,7	triple 3,1, 3,3, 3,7
	triple 4,2, 4,3, 4,6	triple 2,3, 0,0, 0,0

	triple 0,1, 0,2, 0,3	triple 0,4, 0,5, 0,6		/h
	triple 0,7, 4,1, 4,2	triple 4,3, 4,4, 4,5
	triple 4,6, 4,7, 1,4	triple 2,4, 3,4, 0,0

	triple 1,1, 1,7, 2,1	triple 2,2, 2,3, 2,4		/i
	triple 2,5, 2,6, 2,7	triple 3,1, 3,7, 0,0

	triple 1,1, 2,1, 3,1	triple 4,2, 4,3, 4,4		/j
	triple 4,5, 4,6, 4,7	triple 0,2, 0,3, 0,0

                
                                
/scop-double, p5


	triple 0,1, 0,2, 0,3	triple 0,4, 0,5, 0,6		/k
	triple 0,7, 1,4, 2,3	triple 2,5, 3,2, 3,6
	triple 4,1, 4,7, 0,0

	triple 0,1, 0,2, 0,3	triple 0,4, 0,5, 0,6		/l
	triple 0,7, 1,1, 2,1	triple 3,1, 4,1, 0,0

	triple 0,1, 0,2, 0,3	triple 0,4, 0,5, 0,6		/m
	triple 0,7, 4,1, 4,2	triple 4,3, 4,4, 4,5
	triple 4,6, 4,7, 1,6	triple 3,6, 2,5, 0,0

	triple 0,1, 0,2, 0,3	triple 0,4, 0,5, 0,6		/n
	triple 0,7, 4,1, 4,2	triple 4,3, 4,4, 4,5
	triple 4,6, 4,7, 1,5	triple 2,4, 3,3, 0,0
	0

	triple 0,2, 0,3, 0,4	triple 0,5, 0,6, 4,2		/o
	triple 4,3, 4,4, 4,5	triple 4,6, 1,1, 2,1
	triple 3,1, 1,7, 2,7	triple 3,7, 0,0, 0,0

	triple 0,1, 0,2, 0,3	triple 0,4, 0,5, 0,6		/p
	triple 0,7, 1,4, 1,7	triple 2,4, 2,7, 3,4
	triple 3,7, 4,5, 4,6
	0

	triple 0,2, 0,3, 0,4	triple 0,5, 0,6, 4,2		/q
	triple 4,3, 4,4, 4,5	triple 4,6, 1,1, 2,1
	triple 3,1, 1,7, 2,7	triple 3,7, 2,2, 3,0
	triple 4,0, 0,0, 0,0

	triple 0,1, 0,2, 0,3	triple 0,4, 0,5, 0,6		/r
	triple 0,7, 1,4, 1,7	triple 2,4, 2,7, 3,4
	triple 3,7, 4,1, 4,2	triple 4,3, 4,5, 4,6
	0

	triple 0,1, 0,5, 0,6	triple 1,1, 1,4, 1,7		/s
	triple 2,1, 2,4, 2,7	triple 3,1, 3,4, 3,7
	triple 4,2, 4,3, 4,7
	0

	triple 2,1, 2,2, 2,3	triple 2,4, 2,5, 2,6		/t
	triple 2,7, 0,7, 1,7	triple 3,7, 4,7, 0,0

	triple 0,2, 0,3, 0,4	triple 0,5, 0,6, 0,7		/u
	triple 4,2, 4,3, 4,4	triple 4,5, 4,6, 4,7
	triple 1,1, 2,1, 3,1
	0

                
                                
/scop-double, p6


	triple 0,5, 0,6, 0,7	triple 4,5, 4,6, 4,7		/v
	triple 1,2, 3,2, 2,1	triple 0,3, 4,3, 0,4
	triple 4,4, 0,0, 0,0

	triple 0,4, 0,5, 0,6	triple 0,7, 4,4, 4,5		/w
	triple 4,6, 4,7, 0,2	triple 0,3, 2,2, 2,3
	triple 4,2, 4,3, 1,1	triple 3,1, 0,0, 0,0

	triple 0,1, 0,2, 0,6	triple 0,7, 4,1, 4,2		/x
	triple 4,6, 4,7, 1,3	triple 1,5, 3,3, 3,5
	triple 2,4, 0,0, 0,0

	triple 0,5, 0,6, 0,7	triple 4,5, 4,6, 4,7		/y
	triple 2,1, 2,2, 2,3	triple 1,4, 3,4, 0,0

	triple 0,1, 1,1, 2,1	triple 3,1, 4,1, 0,7		/z
	triple 1,7, 2,7, 3,7	triple 4,7, 0,2, 1,3
	triple 2,4, 3,5, 4,6
	0





	triple 2,1, 2,2, 2,3	triple 2,4, 2,5, 2,6		/1
	triple 2,7, 1,1, 1,6	triple 3,1, 0,0,0,0

	triple 0,1, 0,2, 0,6	triple 1,1, 1,3, 1,7		/2
	triple 3,1, 3,4, 3,7	triple 4,1, 4,5, 4,6
	triple 2,1, 2,7, 0,0

	triple 0,2, 0,6, 1,1	triple 1,7, 2,1, 2,4		/3
	triple 2,7, 3,1, 3,4	triple 3,7, 4,2, 4,3
	triple 4,5, 4,6, 0,0

	triple 0,3, 0,4, 1,3	triple 1,5, 2,3, 2,6		/4
	triple 3,1, 3,2, 3,3	triple 3,4, 3,5, 3,6
	triple 3,7, 4,3, 0,0

	triple 1,1, 1,4, 1,7	triple 2,1, 2,4, 2,7		/5
	triple 3,1, 3,4, 3,7	triple 4,2, 4,3, 4,7
	triple 0,1, 0,4, 0,5	triple 0,6, 0,7, 0,0

                
                                
/scop-double, p7


	triple 1,1, 1,7


	triple 1,1, 1,7


	triple 1,1, 1,6, 1,6	triple 2,1, 2,4, 2,7		/6
	triple 3,1, 3,4, 3,7	triple 4,2, 4,3, 4,6
	triple 0,2, 0,3, 0,4	triple 0,5, 0,0, 0,0

	triple 0,7, 1,1, 1,2	triple 1,3, 1,7, 2,4		/7
	triple 2,7, 3,5, 3,7	triple 4,6, 4,7, 0,0

	triple 1,1, 2,1, 3,1	triple 1,4, 2,4, 3,4		/8
	triple 1,7, 2,7, 3,7	triple 0,2, 0,3, 0,5
	triple 0,6, 4,2, 4,3	triple 4,5, 4,6, 0,0

	triple 0,1, 0,5, 0,6	triple 1,1, 1,4, 1,7		/9
	triple 2,1, 2,4, 2,7	triple 3,2, 3,4, 3,7
	triple 4,3, 4,4, 4,5	triple 4,6, 0,0, 0,0

	triple 0,2, 0,3, 0,4	triple 0,5, 0,6, 3,2		/0
	triple 3,3, 3,4, 3,5	triple 3,6, 1,1, 1,7
	triple 2,1, 2,7, 0,0

	triple 0,4, 1,4, 2,4	triple 3,4, 4,4, 0,0		/-

	triple 0,4, 1,4, 2,4	triple 3,4, 4,4, 2,2		/+
	triple 2,3, 2,5, 2,6

	0						/space

	triple 1,1, 1,2, 2,1	triple 2,2, 0,0, 0,0		/.

	triple 1,1, 1,2, 2,1	triple 2,2, 2,0, 0,0		/,

	triple 0,3, 1,3, 2,3	triple 3,3, 4,3, 0,5		/=
	triple 1,5, 2,5, 3,5	triple 4,5, 0,0, 0,0

	triple 0,1, 1,2, 2,3	triple 2,4, 2,5, 3,6		//
	triple 4,7, 0,0, 0,0

	triple 4,7, 3,7, 2,6	triple 2,5, 2,4, 2,3		/(
	triple 2,2, 3,1, 4,1	0

	triple 0,7, 1,7, 2,6	triple 2,5, 2,4, 2,3		/)
	triple 2,2, 1,1, 0,1	0


/(next entry point = 337)

constants

start