                                   	
ddt part 2

lis,	dismiss 47
ls2,	dismiss 51

lse,	jsp lcc
	lem
	lac (in
	dac ps1-1
	law 23	/restore sym tab
	dac low
lsa,	dzm mod
	dzm tas
lss,	dzm iif
	cla
	dap xsw		/clear < switch
	clc
	dac chi
	dzm wrd
	lac lwt
	dac df1
	lac cun
ssn,	dip sgn
	dzm dnm
	dzm syl
n2,	dzm sym l
	dzm sym r
	dra	/unlock user field
	clc
	dac let
	dac chc

lsr,	move sk1,wea
	init bax,lwt
	xx
ps1,	dio ch
	law dtb
	add ch
	dap .+1
	lac .
cas,	rar 9s	/case shift
	and (777
	dac t2
	sub (44
	spa
	jmp ln
cad,	add (jmp uc	/used as add
	dap lsx
	sub ar1	/last no-eval routine
	spq
	jmp i lsx
	lac sym l
	ior sym r
	lio lcp
	sad (45
	dio iif
	law syl
	lio let
	spi i
	jsp evl
	jmp ev4
	law 77
	sad ch
	dzm tas
	lac (flexo U
	jda tys
	jmp lss
                
                                
evl,	dap evx	/symbol lookup
	law evc
	dap esk
evc,	lac est
	dap es4

evg,	dap ev2
ev2,	lac .
	spa
	jmp esn
	cla
es3,	sas sym l
	jmp esi
es4,	lac .
	sad sym r
	jmp ev3
esi,	idx es4
	idx es4
esk,	sas evc
	jmp evg
	idx evx
ev3,	idx es4
evx,	jmp .
esn,	idx es4
	lac i ev2
	xor (add
	jmp es3
                
                                
ev4,	dap sgn
	lac lsx
	sub cbr
	spa
	jmp . 4
	lac iif
	sza
	jmp err
	lac wrd
sgn,	0	/opr and syl addr
	dac wrd
	dac df1
	lio chi
	spi
	lac lwt
lsx,	jmp .

n,	rir 5s		/number routine
	lac syl
	ral 3s
	spi i
cun,	ior t2
	dac syl
	lac dnm
	ral 2s
	add dnm
	ral 1s
	spi i
	add t2
	dac dnm
	jmp l1
ln,	add (44-12
	spa
	jmp n

	dzm let		/letter routine
l1,	dzm chi
	idx t2
	idx chc
	sas (4
	jmp ln3
	lio sym r
	dio sym l
	dzm sym r
ln3,	sub (6
	szm
	jmp lsr
	lac sym r
	mul (50
	div (1
	jmp .
	add t2
	dac sym r
	jmp lsr
                
                                
/no-eval routines

uc,n 44,	lio (rar 9s		/upper case
	jmp .+2
lc,	lio ps1		/lower case
	dio cas
	jmp lsr

sqo,	lac sym r		/'
	jmp n1

quo,	lac sym l		/"
	sza i
	lac sym r
	jdp spv
	lac tys
	jmp n1

q,	lac lwt		/Q
	jmp n1

f,	lio chi		/F
	spi i
	jmp ff
	law fg

n0,	lio iif
	sni i
	jmp err
	dac iif

n1,	dzm chi
	dac syl

	jmp n2
                
                                
daq,	lac df1		/>>04<<
	jmp def-2

com,	lac lcp
	sza
	jmp err
	lac loc
	and (7777
	dac df1

                
                                
def,	lac let		/),define
	ior iif
sk1,	sza
	jmp err
	law pn2

de,	dap dex
	lio df1
	jsp evl
	jmp df2
	law 202
	sub est
	sma
	jmp ser	/overflow
	law i 1
	adm est
	dio i est
	sub (1
	dap est
	lio sym r
	dio i est
	sub (1
	swp
	lac sym l
	sza i
	jmp dex
	dio est
	xor (add
	dac i est
	jmp dex

df2,	dio i es4
dex,	jmp .
dot,	lio chc		/.
	law 7777
can,	and loc
	spi i
	lac dnm
	dac syl
	law 44
	dac t2
	jmp l1
del,	jmp pn2		/x

/eval routines permitting A,I, etc.

pls,	lac cad		/+,space
	jmp ssn

min,	spi		/-
	dio wrd
	lac csu
	jmp ssn

ovb,	clc		/.
	spi
	jmp n1
	lac iif
	sas (bk1
	jmp ov2
	clc	/B.
	b=0
	repeat nbp,dac bk1 b	b=b 1
	jmp lse

ov2,	sas (msk
	jmp err
	clc	/M.
	dac msk
	dzm ll
	law 7777
	dac ul
	jmp lse

bac,	law opt		/[
	jmp . 2
bas,	law pi		/]
	dap bax
	jmp bar
vb,	law ta5		/|
	jmp bar 1
lpr,	clc		/(
	dac mod
bar,	law ta5 4		/slash
	dap br2
	spi i
br2,	jmp .
	lac lc2
	dac ts2
	law ta6-ta5
	adm br2
cbr,	jmp br2
                
                                
/other eval routines

kil,	spi i		/K
	jmp ki5
	law low
ki6,	dac est
	jmp lse
                
                                

prc,	lac lc2
eql,	jdp eap		/=
	jda opt
pn2,	jsp lct
	jmp lss

pbx,	jdp eap		/~
	jda tys
	jmp pn2

arw,	jdp eap		/.
	jda pi
ar1,	jmp del	/used by cad 2

oct,	spi i		/H
	jmp hoa
	law 10
	jmp .+4
dec,	spi i		/U
	jmp uns
	law 12
	dap ops
	jmp lse

smb,	spi i		/S
	jmp sav
	law pi
	jmp .+2
cns,	law opt		/C
	dap pns
	jmp lse

oad,	law pvl		/O
	jmp tls-1
rad,	spi i		/R
	jmp rea
	law pev
	dap pa1
tls,	jmp lse

err,	lac (743521
	jda tys
	law 7234
	jda tys
	jmp ls2


a,	law ac		/A
	spi
	jmp n0
	lac wrd
	dac ac
	jmp lse

ir,	law io		/I
	spi
	jmp n0
	lac wrd
	dac io
	jmp lse

m,	law msk		/M
	spi
	jmp n0
	lac wrd
xsw,	skp
	jmp am
	dap ul
	lac fa
	dap ll
	lac ul
	sub ll
	spa
	jmp err
	jmp lse
am,	dac msk
	jmp lse

bk,	law bk1		/B
	spi
	jmp n0
	add (add
	dac tas
	dac tsp
	lac wrd
	jda dep
	jmp lse

uni,	jmp ssn-1		/>>05<<

isc,	lac can		/^
	jmp ssn

ndb,	spi		/.
	jmp prc
	dac lwt
	and (-177
	sza i
	jmp . 4
	and (jda
	ral 6s
	jmp . 2
	lac lwt
	dac lc2
	jda trc
	jmp lse
                
                                
tab,	spi i		/tab
	jda dep
	dzm lcp
ta3,	dac wrd
	jsp lcc
	lac wrd
	lio lcp
	sni
	jmp ta4
	and (7777	/internal
	sub (ac
	spa
	jmp err
	sub (nir
	sma
	jmp err
	add (nir
	sal 1s
	add (aa
	dap .+1
	lac .
	jda tys
	idx .-2
	xct .-3
	jda tys
	jmp ta4+1
bs,	spi i		/backspace
	jda dep
	law 1
	add loc
	jmp ta3
                
                                
fs,	spi i		/^
	jda dep
	law i 1
	jmp bs 3

uc8,	spi i		/>
	jda dep
	lio lc2
	dio ts2
	jmp ta6 5

cr,	spi i		/c.r.
	jda dep
	dac lwt
	law 72
	jda tys
	jmp lse+1

eas,	clc		/E
	dac dff
	init dpx,eag
	law ea1
	jmp ws

nws,	lac sk2		/N
	dac wea
	law ws1
	jmp ws

wds,	law diw
	spi
	jmp n0
	jmp nws 2
                
                                
bgn,	law pc		/G
	spi
	jmp n0
	law 7	/go
	and lc2
	sas lc2
	jmp err
	dac ts2
	rar 6s
	xor pc
	and (jda
	xor pc
	dac pc
	lac wrd
	dap pc
	lac ts2
	jda trc
	clc
	dac opc	/save bad pc
	jmp p1

xec,	jmp xe0		/X

pra,	spi		/P
	cla
	cma
	add (add
	dac cn1
	lac (jda
	and pc
	ral 6s
	jda trc
	jmp pr0
                
                                
ttl,	spi i		/L
	jmp err
	jmp tp0

jbk,	spi		/J
	jmp err
	assign 47
	lac wrd
	ior (jmp
	dac lwt
	feed 40
	lac lwt
	jdp pbw
	feed 520
	jmp lis
                
                                
pul,	spi		/<
	jmp err
	dac fa
	law 72
	jda tys
	law 600
	jmp lss 2

pwd,	dac dep		/_
	lac tas
	sma
	jmp err
	lac tsp
	spi
	ior mod
	sza
	jmp err
	spi
	jmp .+3
	jsp dep+1
	dac lwt
	lac tas
	dac fa
	dac la
	jmp pdt

pun,	move lc2,ts2	/D
	lio chi
	xct xsw
	spi	/D or aD
	jmp pd2	/a<bD or D
	move ll,fa	/aD
	move ul,la
	and (17
	jmp pd3
                
                                
rd,	law yn1		/Y
cvy,	dap vyx
	lac wrd
	spi i
	jmp vy1 1
	xct xsw
	jmp vy1
	jmp err

vfy,	jsp cvy		/V
	jsp lcc
	lio (i
	law i 7777
	and t
	sas chc	/same core as last block?
	dio pvf	/no
	dac chc
	lac t
	dap fa
vf1,	jsp pv
	dac ch
	sad i la
	jmp vf7
	law i 7777
	and t
	xct xsw
	lac syl
	dac lc2
	lac fa
	dap loc
	jda pad
	law 2136
	jda tys
	lac ch
	jda lwt
	jsp lct
	lac i la
	jda lwt
	jsp lcc
vf7,	idx fa
	index la,rb1,vf1
	jmp nb

zro,	xct xsw		/Z
	spi
	jmp zr2
	move ll,fa
	move ul,la
	jmp zr3
                
                                
/last dispatched routine

tbl,	spi i	/T
	jmp tb1	/argument before T
	jsp lct
	assign 51
	law flexo  ok
	jda tys
	lac (jmp tba
	dac ps1-1
tbe,	law 0
	dap tbb
	dap tbc
	jmp lsa

tig,	jdp rpr
	sas (77
	jmp tig
tba,	jdp rpr
	sad (21
	jmp tig
	sas (33
	sad (36
	jmp tbb
	sad (77
	jmp tbb
	law 600
	dap tbb
	jmp ps1

tbb,	skp
	jmp tba	/ignore redundant separators
tbc,	skp i
	jmp tbd	/define
	lac sym	/save sym
	dac sys
	lio sym+1
	dio sys+1
	sas (134773	/compare with start
	cli
	lai
	sad (2176
	jmp ls2	/done
	law 0
	dap tbb
	law 600
	jmp tbe+2

tbd,	lac sys	/get saved symbol
	dac sym
	lio sys+1
	dio sym+1
	ior sym+1
	sza i
	jmp err	/no symbol
	lac syl
	dac df1	/value
	jsp de
	jmp tbe

rpr,	0
	rpa
	sni
	jmp rpr+1
	law 2125
	rcr 7s
	spa
	jmp rpr+1
	rcr 1s
	ral 8s
	dap .+1
	ril
	spi i
	jmp err
	and (77
	lia
	jmp i rpr
                
                                
pot,	sas (2
	jmp err		/not possible
	dzm sym l
	law 6
	dac fa
	law 200
	dac wc
	cla
	jda trc
	lac (i
	dac pvf
	jsp pv
	sal 1s
	spq
	jmp err
	dac opt	/twice number of symbols
	idx fa
	jsp pv
	dac fa	/origin
	add opt
	dac la	/end test
	and (7777
	sas la
	jmp err
gfd,	jsp pv
	and (177777
	dac sym r
	idx fa
	jsp pv
	dac df1
	lio sym r
	sni i
	jsp de
	index fa,la,gfd
	jmp lse
                
                                
tb1,	sas (1
	jmp pot	/not 1T
	jsp ar	/1T
tb3,	jsp gwd
	dac sym l
	jsp gwd
	and (177777
	dac sym r
	ior sym l
	sza i
	jmp ls2	/finished
	jsp gwd
	dac df1
	lac sym l
	lia
	ril 1s	/macro definition zone bit
	sma>>05<<spi
	jmp tb3
	and (177777
	dac sym l
	jsp de	/define
	jmp tb3

gwd,	dap gwx
	lac la
	sas rb1
	jmp gw1
	jsp rbk
	jmp gwd+1
gw1,	dap gwa
	idx la
gwa,	lac .
gwx,	jmp .
                
                                
ki5,	lac let
	sza
	jmp err
lal,	lac low
	sad i est
	jmp err
	law ki1
	dap evx
	law lal
	jmp evl 2
ki1,	jmp .+2
	jmp err
	sub ev2
	dac t3
	idx t3
	dac t4
	idx t4
	idx es4
	and (7777
ki2,	sub t4
	dap ki3
	add t3
	dap ki4
ki3,	lio .
ki4,	dio .
	sas est
	jmp ki2
	add t3
	jmp ki6

eap,	0		/eql,arw,pbx common
	dac lwt
	jsp lct
	jmp i eap

start
                
                                                                                    
