ddt 20 august 1966 6000/ xx=0 nsy=113 low=.-nsy-nsy-1 tst=.-2 est=.-1 low/ char l+char ma ac char l+char mi io char l+char mm msk char li 10000 flex and 020000 flex ior 040000 flex xor 060000 flex xct 100000 flex jfd 120000 flex cal 160000 flex jda 170000 flex lac 200000 flex lio 220000 flex dac 240000 flex dap 260000 flex dip 300000 flex dio 320000 flex dzm 340000 flex add 400000 flex sub 420000 flex idx 440000 flex isp 460000 flex sad 500000 flex sas 520000 flex mus 540000 flex dis 560000 flex jmp 600000 flex jsp 620000 flex skp 640000 flex szs 640000 flex szf 640000 flex sza 640100 flex spa 640200 flex sma 640400 flex szo 641000 flex spi 642000 flex ral 661000 flex ril 662000 flex rcl 663000 flex sal 665000 flex sil 666000 flex scl 667000 flex rar 671000 flex rir 672000 flex rcr 673000 flex sar 675000 flex sir 676000 flex scr 677000 flex law 700000 flex iot 720000 flex tyi 720004 flex rrb 720030 flex cks 720033 flex lsm 720054 flex esm 720055 flex cbs 720056 flex eem 724074 flex lem 720074 flex rpa 730001 flex rpb 730002 flex tyo 730003 flex ppa 730005 flex ppb 730006 flex dpy 730007 flex clf 760000 flex nop 760000 flex opr 760000 flex lap 760500 flex stf 760010 flex cla 760200 flex hlt 760400 flex cma 761000 flex clc 761200 flex lat 762200 flex cli 764000 est, low lap=cla 100 ioh=iot i clo=651600 spq=650500 szm=640500 define senseswitch a szs 10xa term define initialize a,b law b dap a term define index a,b,c idx a sas b jmp c term define listen cla+cli+clf 1-opr-opr szf i 1 jmp .-1 tyi term define swap swp term define load a,b lio (b dio a term define setup a,b law i b dac a term define count a,b isp a jmp b term define move a,b lio a dio b term define clear a,b init . 2, a dzm index .-1, (dzm b 1, .-1 term define dispatch lc,uc [1000xuc]+lc-[1001xlse] terminate lis, lio bki bk1, dio ch /or break addr jsp sbc lse, jsp lcc lss, clc dac chi lsp, dzm wrd lac cun ssn, dip sgn dzm dnm dzm syl n2, dzm sym clc dac let lsr, lio sk1 dio wea init bax, lwt listen ps1, dio ch law dtb add ch dap .+1 lac . cas, xx /rar 9s or cli and (777 cad, add tls dap lsx sub ar1 /last no-eval routine spq jmp i lsx law syl lio let spi i jsp evl jmp ev4 lac (flex U jda tys jmp lsp evl, dap evx evc, lac est dap ev2 ev2, lac . sad sym jmp ev3 /match found idx ev2 index ev2, evc, ev2 idx evx ev3, idx ev2 evx, jmp . ev4, dap sgn lac wrd sgn, xx /operator and syllable addr. dac wrd lio chi spi lac lwt lsx, jmp . n, rir 5s /number routine lac syl ral 3s spi i cun, ior ch dac syl lac dnm ral 2s add dnm ral 1s spi i add ch dac dnm jmp l1 l, dzm let /letter routine l1, lac sym ral 6s add ch dac sym dzm chi jmp lsr uc, lio rc /upper case jmp .+2 lc, lio ps1 /lower case dio cas jmp lsr sqo, lac dnm /' means take decimal number jmp n1+1 quo, lac sym /" means take as flexo codes jmp n1 a, law ac /A means accumulator jmp n1 ir, law io /I means i-o jmp n1 m, law msk /M means mask register jmp n1 q, lac lwt /Q means last quantity jmp n1 f, law est /F means lowest register n1, dzm chi dac syl jmp n2 err, lac (743521 /? er1, jda tys law 7234 /lc, blk jda tys jmp lsr daq, law 7777 />>04<< defines sym as address of Q and lwt jmp .+2 com, lac loc /comma defines sym as loc dac df1 def, lac let /define symbol sk1, sza jmp err law pn2 de, dap dex lio df1 jsp evl jmp df2 law i 1 add est dap est dio i est sub one dap est lio sym dio i est jmp dex df2, dio i ev2 dex, jmp . del, jmp pn2 /end of no-eval routines, delete val, dac df1 /open paren, sets up value for define jmp lss eql, dac lwt /print octal integer jsp lct jda opt pn2, jsp lct jmp lss arw, dac lwt /print as instruction jsp lct jda pi ar1, jmp del oct, law odv /octal-decimal switch setup jmp .+2 dec, law ddv dap ops jmp lse smb, law pi jmp .+2 cns, law opt /symbolic-constant switch setup dap pns jmp lse oad, law pvl jmp .+2 rad, law pev /octal-relative switch setup dap pa1 tls, jmp lse pls, lac cad jmp ssn min, lac csu jmp ssn uni, jmp ssn-1 isc, lac can jmp ssn dot, lac loc jmp n1 tab, spi i /tab tas, dac ch ta3, dac lwt jsp lcc jda pad law 7221 jda tys ta5, dzm loc dap loc ta6, dap tas jsp lct lac i tas dac lwt bax, jda . /pi, opt or lwt jmp pn2 bs, spi i /backspace bs1, dac i tas /used as dac i idx loc jmp ta3 fs, spi i /arrow up (forward space) dac i tas law i 1 add loc dap loc jmp ta3 bac, law opt /open bracket (bar-constant) jmp .+2 bas, law pi /closed bracket (bar-symbolic) dap bax bar, lac lwt spi jmp ta6 lac wrd jmp ta5 uc8, spi i /> means make corr. and open register dac i tas jmp ta6 cr, spi i dac i tas dac lwt law 72 jda tys init tas, ch jmp lss bk, spi /break init bk1, ch jmp lse tr, 0 dap prc dap prd idx prd lac tr dac ac isp ch jmp pr2 jsp tr1 tr2, dap pra law i 1 add prc jda pad //print trap addr law 55 jda tys law ac jmp ta5 tr1, dac ovf dio io jsp sbc dzm fl1 szf 1 dac fl1 move bki, i bk1 lac bk1 jmp i ovf xe1, xx nop dac ac jsp tr1 jmp lss pra, lio . dio bix lio chi spi pr1, law 0 cma dac ch jsp lcc cks ril 2s spi i jmp .-3 lac sbi iot 56 sza esm pr3, lac fl1 sza i clf 1 clo lac ovf add ovf lio i bk1 /get instr. at new brk addr. dio bki lio (jda tr dio i bk1 lio io pr2, lac ac bix, xx prc, jmp . prd, jmp . xec, dac xe1 /execute law xe1 bgn, spi /begin jmp err dap bix lac prc dip bix jmp pr1 eas, law ea1 /effective address search jmp ws nws, lac sk2 /not word search dac wea wds, law ws1 /word search ws, spi jmp err dap ws2 jsp lcc dzm t2 lac ll dac t ws4, dzm sym dap t2 lac i t2 ws2, jmp . /ea1 or ws1 ea1, and ci sza jmp ea2 law 7777 and i t2 ws1, xor wrd can, and msk /used as and wea, xx /sza or sza i jmp ws3 ws6, law lcc pac, dap pax lac t jda pad law 2136 jda tys lac i t jda lwt pax, jsp . ws3, idx t /index and skip over pgm sub ul szm jmp lse add ul sub est sma jmp lse lac t jmp ws4 ea2, idx sym sad c77 jmp ws3 lac i t2 jmp ws4+1 pbx, dac lwt jsp lct /print as bcd jda tys jmp pn2 vfy, jsp lcc lac rb2 jmp .+2 rd, lac bs1 dip vf4 jsp soi vf1, lac t sub ll sub (dio spa jmp vf2 add ll sub ul szm jmp vf2 lac i la vf4, t /dac i or sad i jmp vf2 vf3, jsp pac jsp lct lac i la jda lwt jsp lcc vf2, idx t idx la sad rb1 jsp rbk jmp vf1 lwt, 0 dap pnx lac lwt pns, jda pi /pi or opt pnx, jmp . kil, law low dac est jmp lse tbl, jsp soi /symbol table reader tb1, lac i la and (202020 /permute zones ral 1s xor i la xor c4 cli rcl 6s sza jmp .-2 idx la sad rb1 jmp tbn lac i la dac df1 dio sym law i 1700 and sym /delete symbols of form 1s, 2s,...9s sas (char rs jsp de idx la sad rb1 jsp rbk jmp tb1 tbn, jsp lct lac est jda opt tbm, jsp rbk /skips rest of tape jmp tbm define feed n law i n jda fee terminate ttl, jsp lcc /title punch and punch format setup listen rcr 9s rc, rar 9s sad c77 jmp pir sad (36 jmp pri sad (75 jmp pi2 ral 1s add (ftp jda tt1 idx tt1 law ttl+1 jmp tt1+1 jbk, spi /jump block jmp err add cj dac lwt feed 40 lio lwt jsp pbw feed 240 jmp lse pul, dap fa /punch lower limit setup jmp lss pwd, spi i /punch word dac i tas dac lwt lac tas dap fa pun, dap la /punch any length block pb5, lac fa ior c77 dac t sub la sma jmp pb6 /next hundred too high idx t pb4, jsp pbb /pbb or pur lac t dap fa jmp pb5 pb6, lac la dac t idx t xct pb4 jmp pn2 zro, law 7777 spi /zero registers below ddt dac wrd and fa spi cla dac t zr1, sub est sma jmp lse add est sub wrd szm jmp lse dzm i t idx t jmp zr1 fee,t2, 0 /feed subroutine and temp storage. dap fex cli ppa isp fee jmp .-2 fex, jmp . sbc, dap sbx /sequence break status check dac sbi cks ril 6s spi i dzm sbi lsm sbx, jmp . pi, xx /print instruction dap px jsp pev sub ci spa jmp ppk dac pi law 72 jda tys jsp tou law 71 jda tys ppk, jsp tou law 72 jda tys and (760000 sad pr1 /law jmp plo rar 1s sza csu, sub (320000 /used as sub spa jmp plo pvl, lac pi jda opt px, jmp . /exit pev, dap pex /symbol lookup subr lac est dap ea clf 1 eal, idx ea ea, lac . xor pi spa jmp eix lac pi sub i ea spa jmp eix szf i 1 jmp psw lac i ea sub i ch szm jmp psw eix, index ea, evc, eal szf i 1 jmp pvl lac pi sub i ch dac pi law i 1 add ch dap ch lac i ch jda tys lac pi sk2, sza i jmp px pex, jmp . pad, 0 /print address dap px law 7777 and pad dac pi pa1, jsp pev /pev or pvl lac (flexo + jda tys jmp pvl tys, 0 /type symbol, etc. dap tyx setup opt,3 tyl, lac tys ral 6s dac tys and c77 sza i jmp tyc sad (72 jmp dns sad (74 jmp ups swap tyb, jsp tou tyc, count opt, tyl lac lwt cli tyx, jmp . dns, lac ps1 /redundant case shift filter lio (72 dn1, sad cas jmp tyc dac cas jmp tyb ups, lac rc lio (74 jmp dn1 lcc, dap lcx law 7277 jmp lc1 lct, dap lcx law 7236 lc1, jda tys lcx, jmp . so1, rpb /skip over input routine soi, rpb /enter here spi i jmp so1 rbk, dap rbx /read a block into buffer init rb1, buf dap la dzm chi rpb dio t2 dio t spi jmp lse /start block read rpb dio ch rb0, rpb rb1, dio . lac i rb1 add chi dac chi idx rb1 index t2, ch, rb0 add chi add t rpb dio chi rb2, sad i .-1 /used as sad i rbx, jmp . hlt+clc-opr /checksum error stop jmp rbk+1 tt1, 0 /title punch subroutine dap tt2 lac i tt1 repeat 3 cli rcl 6s ppa tt2, jmp . pur, dap pb2 /punch read-in mode blocks pu1, lio fa jsp pbw lio i fa jsp pbw index fa, t, pu1 jmp pux pbb, dap pb2 /punch binary block format dzm t2 lio fa jsp pbw lio t jsp pbw pb1, lio i fa jsp pbw index fa, t, pb1 lio t2 jsp pbw pux, feed 5 pb2, jmp . pir, feed 40 move 7754, t init fa, 7751 jsp pur pi2, lio 7775 /jmp 7751 jsp pbw law pbb pi1, dap pb4 feed 30 jmp lse /combined octal-decimal print subroutine opt, 0 dap opx ops, init op1, odv /odv or ddv setup op2, 6 stf 1 opa, dzm opd szf i 1 jsp tou jmp opc opb, clf 1 dac opt idx opd opc, lac opt lio opt op1, sub . spi i sma jmp opb lac opd lio opd sza i lio ddv+1 idx op1 count op2, opa jsp tou opx, jmp . ddv, decimal 100000 10000 1000 100 10 1 octal odv, 100000 ci, 10000 1000 100 10 one, 1 /dispatch table dtb, disp pls, pls /0 disp n, quo disp n, sqo disp n, pbx disp n, daq disp n, uni disp n, isc disp n, pul disp n, uc8 disp n, fs wrd, 0 sym, 0 chi, 0 let, 0 ch, 0 loc, 0 disp n, arw disp bar, err disp l, smb disp l, tbl disp l, dec disp l, vfy disp l, wds disp l, xec disp l, rd disp l, zro syl, 0 disp com, eql t, 0 la, dio disp tab, tab fa, dio disp pwd, err /40 disp l, jbk disp l, kil disp l, ttl disp l, m disp l, nws disp l, oad disp l, pra disp l, q disp l, rad bki, opr sbi, -0 disp min, pls disp def, bas disp err, err disp val, bac fl1, 0 disp l, a disp l, bk disp l, cns disp l, pun disp l, eas disp l, f disp l, bgn disp l, oct disp l, ir disp lc, lc disp dot, del disp uc, uc disp bs, bs df1, 0 disp cr, cr /title punch table ftp, 0 0 /space 004277 c4,400000 /1 625151 514600 /2 224145 453200 /3 141211 771000 /4 274545 453100 /5 364545 453000 /6 010171 050300 /7 324545 453200 /8 065151 513600 /9 tou, dap tox dio tot /typeout subroutine cks ril 2s spi i jmp .-3 lio tot tyo-i tox, jmp . op2, 0 opd,dnm, 0 tot, 0 364141 413600 /zero c77, 000077 000000 // 224545 453000 /s 010177 010100 /t 374040 403700 /u 073060 300700 /v 376014 602700 /w 412214 224100 /x 010274 020100 /y 615141 454300 /z plo, jsp pev jmp pa1+1 141414 141400 /= pbw, dap pby ppb /punch 1 word rcl 6s ppb rcl 6s ppb rcl 6s add t2 dac t2 pby, jmp . 204040 403700 /j 771014 224100 /k 774040 404000 /l 770214 027700 /m 770214 207700 /n 364141 413600 /o 771111 110600 /p 364151 215600 /q 771111 314600 /r psw, lio ea dio ch stf 1 jmp eix 101010 101000 /- 000041 221400 /) 101074 101000 /+ 001422 410000 /( pri, law pur jmp pi1 761111 117600 /a 774545 453200 /b 364141 412200 /c 774141 413600 /d 774545 414100 /e 770505 010100 /f 364151 513000 /g 771010 107700 /h 004177 410000 /i 000001 030000 /close quote 000060 cj,600000 /. 000003 020000 /open quote buf, buf+100/ ovf, 0 ac, 0 io, 0 msk, -0 ll, 0 ul, 7777 constants start lis