Macro ii-a=part 2. |Pseudo instruction define dfn, add mii trn ilf load qt, tra ilf slr ct load tt, tra df1 load bt, tra df2 llr loc slr tlo clc sto loc sto asi sto mdi add psi sto dm3 add one sto dm1 add one sto dm2 add (-sto-psi-nmi-nmi-nmi+1+trn trn tmm tra rnw df1, add syl add chc trn r tra ilf df2, add syl add chc trn itc tra ilf |Pseudo instruction terminate ter, add mii com trn ilf add tlo sto loc clc sto asi add one sto mii add psi add (2 sto psi call sco call sco call sco call sco llr sc3 slr te9 add scw tra .+2 te8, lal ala add scn add one sto scn trn te8 lac te9, xx tra rst |Define macro instruction dmi, llr sym lcc dm3, xx llr syn lcc dm1, xx cla sto liu sto syl sto sym add mai sto sc3 add one sto mai add (llr-1 dm2, xx cal+com-opr sto mii clear dss+1, dsp+nds-1 sto mdi slr scw load scn, -22 load dsk, -add-dsm load ddx, tra rnw load ct, tra pd1 load tt, tra pds llr t tra cfc |Pick up dummy symbols pds, load ddx, tra rst clc add chc trn rst clc pd1, add syl com trn ids add let com trn ids add liu com trn ids pd2, add sym tra .+2 |Define new dummy symbol dd, slr ddx com ala add dsk add mon sto dsk add (add dsm+nds trn tmp com add (slr dsm+nds sto dd1 dd1, xx add (-slr-dsm+1 ddx, xx |Search for dummy symbol sds, slr sdx load sd1, add dsm ala add sdx add one sto sdy sd2, lac sd1, xx trn sd4 sd3, clad sd1 add one sto sd1 add dsk trn sd2 clc sdx, xx sd4, add one trn sd3 add sd1 add (-add-dsm sdy, xx m |Prepare specifications for M-I words, constants, arguments wsp, llr liu lcc trn ev2 add sgn sto ws4 add (-opr trn ws1 add (400000-40 ws1, sto t1 clad sym call sds tra uds add t1 alr cll add (add dsp-1 sto ws3 cla ws3, xx ws4, xx |sign operator add wrd sto wrd lac llr ex |Prepare dummy symbol specification prs, slr prx ala sto dsi add dsn com trn pr2 sto dsn lal add (377000 cyl trn .-1 clr sto dse clc prx, xx pr2, lal add dse sto dse llr prx tra ss |Macro instruction storage word sw, add chc add syl trn rnw call evl add pss trn sw2 clad def trn usm sw2, llr (tra rnw mw, slr tea llr one lac add aml sto aml lcc add loc sto loc subr ss, mca |Macro instruction constant rp5, add pss trn rp7 clad def trn rp8 rp7, llr (tra rp3 mc, slr tea cla sto num sto dsi call ss call sco call sco mca, subr scz, sma rp8, add (flex usc subr alu, rp7 |Dummy symbol assignment da, add syl com trn ipa add liu com trn ipa llr sym slr t3 load bt, tra ilf slr qt slr ct load tt, tra da1 tra rnw da1, add chc add syl trn rnw call evl add pss trn da3 clad def trn usd da3, clad t3 call sds tra dab add (400000 da5, alr cll add (sto dsp-1 sto day clad wrd day, xx lac llr (tra rst mp, slr tea sto t3 call ss call sco call sco call sco call scz add t3 tra sm-1 dab, add t3 subr dd, da5 |Macro instruction mac, sto aw llr dsk slr dsl llr loc lcc sto dsv load bt, tra ilf slr qt load tt, tra aev load ct, tra ae1 load ae6, tra rnw load ae4, slr dsv cal sto tcn add (2-nds ma1, add (slr dsv+nds-1 sto .+1 xx add (-slr-dsv-nds+2 trn ma1 llr t tra cfc |Evaluate macro instruction arguments aev, load ae6, tra am ae1, call evl add pss trn ae3 clad def trn usp ae3, clad ae4 add one sto ae4 add (dss-dsv-slr sto ae5 sto ae9 com add (sto dss+nds trn tmp llr wrd ae4, xx |slr dsv clad dsi trn ae5 add mii trn ae7 clc ae5, xx |sto dss ae6, xx |exit ae7, cal call dd ae9, xx |sto dss llr ae6 tra mp |Assemble M-I into program am, add one sto def ami, cal 40 sto dsi amc, slr wrd am1, add (tra aw call tc add (tra as call tc add (tra ac call tc add (tra aa call tc am5, add dsl sto dsk load bs, tra rnw tra rst aw, xx |llr mai lac add wrd sto wrd clad aw add one sto aw clad mii llr (tra ami trn mw slr bs tra tb3 |Assemble argument into macro instruction word as, sto t1 add aw sto as1 add one sto aw as1, xx lac sto t2 clr add (000377 cyr trn .-1 as9, cll+amz-opr trn am1 as2, cyr alr cll add (add dsv-1 sto as5 add (dss-dsv sto as8 lac clr alr trn as3 add (opr-com+400000 as3, add (com-400000 sto as6 cla as5, xx |get dum sym as6, xx |sign op add wrd sto wrd clad mii trn as8 as7, llr t1 lcc trn am1 sto t1 add t2 tra as9 as8, xx |add dss trn as7 lpd subr prs, as7 |Assemble macro instruction constant ac, add aw sto ac1 add one sto aw ac1, xx lac add wrd sto wrd clad mii llr acx trn mc call co llr num acx, tra amc |Assemble macro instruction assignment aa, add aw sto aa2 add one sto aw aa2, xx lac cll add (sto dsv-1 sto aa3 clad wrd aa3, xx clad mii trn .+2 tra ami aa4, clad dsi trn aa7 lac trn aa6 add (sto dss-1 sto aa5 cal call dd aa5, xx subr mp, ami aa6, add (add dss-1-400000 sto aa5 cla tra aa5 aa7, lac cll add (sto dss-1 sto aa8 clc aa8, xx tra ami |Store dummy symbol specification ss, slr ssx clad dsn trn ssx call sco call scz clc sto dsn add dse llr ssx tra sm ssx, xx |Store word in macro instruction list sma, add wrd llr tea sm, slr smx ala add mai sto sm1 add one sto mai lac sm1, xx llr pss lcc trn sm2 add mai add (add com sto hih add low trn sce sm2, cal 40 smx, xx |Store code bit sco, slr scx llr (400000 tra sc1 scz, slr scx cal sc1, clad scn add one trn sc4 clad scw sc3, xx lal sto scw call sm sc2, add sm1 sto sc3 load scn, -21 tra scx-1 sc4, sto scn lac add scw cyl sto scw cla scx, xx |Test code bit tc, sto tcy slr tcx clad tcn add one trn tc3 tc1, clad aw sto tc2 add one sto aw load tcn, -21 tc2, xx lac tra tc5 tc3, sto tcn llr tcc lal tc5, sto tcc trn tc4 clc tcy, xx |zero exit to subroutine tc4, clc tcx, xx |one exit, return to am. |Set to pick up constant value ca, add cas trn ct ala add cni com+lad-opr trn ilf call evl add pss trn lp3 clad def lp3, sto tdf llr wrd slr twd cla sto wrd add one sto def sto syl sto cni llr tt slr t4 llr ct slr t5 add (tra rp1-1 sto tt add mon sto ct tra sp ct, tra c |Save constant and reset d, add cas trn rl clad cni trn ilf rp, add one rp1, add (tra rp4+1 sto rp4 llr t4 slr tt llr t5 slr ct call evl add mii trn rp5 llr (tra rp3 co, slr cox clad one add nca sto nca clad pss trn co8 clad def trn usc clad con llr wrd tra co9 co2, cla co3, xx lpd trn co4 amz trn co6 co4, clad co3 add one co9, sto co3 add nco trn co2 llr co3 lcc sto nco add mon sto hih add low trn sce lac add (slr-add sto co5 llr wrd co5, xx co6, llr con lcc co7, add co3 xx |add cor table trn .+2 co8, sto num cla cox, xx rp3, llr tdf slr def cal+com-opr slr liu slr chc slr let sto cni sto dsn load sgn, opr llr twd slr wrd rp4, xx tra tt tra ct tra r |Pseudo-instruction constants cns, add mii trn ilf llr loc lcc cn6, xx |sto cor table (first entry) sto tlo clad nca add aml sto aml clad pss trn cn5 load bs, tra cn4 clad con tra cn8 cn2, cla cn3, xx |add constants list sto wrd tra tb4 cn4, clad cn3 add one cn8, sto cn3 add nco trn cn2 cn5, llr loc lcc cn7, xx |sto cor table (second entry) clad tlo add nca sto wrd load bs, tra cn1 tra ba1 cn1, load bs, tra rnw llr con lcc add one sto nco cla sto nca add cn6 add (2 sto cn6 add one sto cn7 add (add-1 sto co7+1 add (-add-cor-ncn-ncn+1 trn rnw add (flex tmc-1 subr alm, alh |Read a character from flexo list. rch, slr rcx rc1, xx tra .+2 rc3, load rc1, tra rc4 llr fwb rc5, lac llr (444444 anl cyr sto fwb slr t lac rcx, xx rc4, load rc1, llr (tra rc3 rc8, llr flx |llr from flexo list slr fwb clad rc8 add one sto rc8 add nfc trn rc5 |Read block of characters from input tape. rfb, load rf5, sto flx load rc8, llr flx load rf6, opr slr rf8 rft, r1c cyl+lro-opr add (400000-111111 trn rft lac rf1, xx tra .+2 rf4, load rf1, tra rf3 cyl+lro-opr add fwd cyr sto fwd cla rf8, xx rtt, lac sto t cyr add (757777 |c. s. trn rtd add (617575 |tab trn rtz add (776177 |c. r. trn rtu add (761777 |stop trn rtd str, clc st2, xx add .-1 sto rtv sto rty tra rft rf3, load rf1, llr (tra rf4 cyl+lro-opr add fwd cyl rf5, xx cla sto fwd add rf5 add one sto rf5 rf6, xx add (-sto-flx-nfw+40 trn rtt lac load rtv, tra rfo tra rtt+1 sas, add (773737 tra stt sat, add (377777 tra stt saa, add (777337 tra stt sar, add (737377 add t trn stc tra stx stt, add t trn st1 stx, llr .+2 slr st2 tra rft st1, add one trn stx add st2 add one sto st2 tra rft stc, add one trn stx load rf6, tra rtt load rtv, tra rsa tra rft rtu, add one trn str rtv, xx rtz, add one trn str rty, xx rtw, load st2, tra sas tra rft rtd, add one trn str tra rft rfo, llr rf5 lcc add (-llr sto nfc load rtv, opr load st2, tra sas tra rc8 rsa, load rf6, tra rfo llr .+3 slr rf8 cla tra rf1 |Ignore to tab or carr ret itt, llr (tra rst tra .+2 itc, load itx, tra tt tra it3 it1, add (-400404 trn it2 add (-404004+400404 trn it2 it3, subr rch, it1 it2, add one trn it3 clc itx, xx |Error stop entries ust, add (flex usw subr alu, tb3 usb, add (flex usl subr alu, b5 usq, add (flex usp subr alu, rst uss, add (flex uss subr alu, s2 usm, add (flex usm subr alu, sw2 usp, add (flex usa subr alu, ae3 usc, cla sto wrd add (flex usc subr alu, co8 i, add (flex ich subr alm, r ilf, clad (flex ilf subr alm, itt ipi, add (flex ipi subr alm, itc mdt, clad (flex mdt subr alm, rnw usd, add (flex usd subr alu, da3 ids, lro slr sym subr alm, pd2 mdm, add (flex mdm subr alm, dmi ipa, clad (flex ipa subr alm, itt sce, clad (flex sce subr alm, alh tmp, add (flex tmp subr alm, alh tmm, clad (flex tmm subr alm, alh uds, llr sym slr r2 add (flex uds llr ex |Error identification routine alu, slr alx slr sov tra alb alm, slr alx slr sov lro slr r2 alb, type add tb pna add loc com trn al1 subr opt, al2 al1, cla print flex ind al2, add tb pna add asi trn al6 add asm trn al3 amz trn al6 al3, call spt add aml trn al4 amz trn al6 clad (char r+ tra al5 al4, clad (char r- al5, pna add aml com trn .-1 call opt al6, clad api trn al7 amz trn al9 al7, ala add tb pnt lac+lro-opr type add syn call spt add r2 trn .+3 amz trn al8 als, clad tb pna add r2 call spt al8, add cr prt tac+cyr-opr trn alh+1 clc alh, alr+hlt-opr clc sto pch alx, xx al9, clad r2 trn .+3 amz trn al8 clad tb pna tra als |Octal print subroutine. opt, sto t1 slr opx load opu, trn opj opq, llr t1 lal cyl llr (400003 ana 10 sto t1 lal llr opj+2 add (add fch sto .+1 xx opu, xx slr opu pna opj, clad opc cyr sto opc trn opq cyl trn opq-1 cal opx, xx opc, 171717 fch, flex 0t-add-fch flex 11 -add-fch-1 flex 22 -add-fch-2 flex 33 -add-fch-3 flex 44 -add-fch-4 flex 55 -add-fch-5 flex 66 -add-fch-6 flex 77 -add-fch-7 |Type symbol routine spt, slr spx sto t1 load opu, -2 spu, clad t1 llr (111111 anl cyr sto t1 laz+lro-opr trn .+2 pna add opu add one sto opu trn spu cal spx, xx |Indicators and variable storage pss, 0 |-0 = pass 1, +1 = pass 2 npa, 0 |-0 = begin pass, +1 = continue pass pch, 0 |-0 = do not punch, +1 = punch if pass 2 inp, 0 |-0 = suppress input routine, +1 = punch input routine tit, 0 |-0 = suppress title, +1 = punch title psa, 0 |end of psuedo-instruction list) at beginning psb, 0 |end of macro-instruction list ) of pass 1 ini, 0 |aux. input routine indicator hih, 0 |upper limit of macro instruction and constant list nfc, 0 |test word for end of flexo word list r2, 0 |last undefined symbol fwd, 0 |flexo word from input tape fwb, 0 |flexo word from list wrd, 0 |partial sum of syllables of word num, 0 |number = value of syllable. sym, 0 |symbol = flexo word for symbol. def, 0 |-0 = indefinite word, +1 = definite chc, 0 |character count of characters in syllable syl, 0 |0 = at most one plus syllable, +1 = otherwise. let, 0 |0 = no letters in syllable, -0 = at least one letter api, 0 |last psuedo-instruction for error stop asi, 0 |relative location: +0 = yes, -1 = no asm, 0 |alarm symbol for relative location aml, 0 |location relative to above symbol (asm) nsm, 0 |(for establishing above symbolic relative asa, 0 |(location from location amn, 0 |(assignment cas, 0 |-0 = lower case, +1 = upper case liu, 0 |+0 = no letters in uc, -0 at least one in uc. cni, 0 |constant syllable indicator con, 0 |current address in constant list nco, 0 |number of distinct constant values nca, 0 |number of constants twd, 0 |word ) tdf, 0 |define ) temporary. tlo, 0 |temporary for current location mii, 0 |macro instruction mode indicator mdi, 0 |define indicator syn, 0 |second three characs of M-I name spz, 0 |psuedo instruction switch tea, 0 |temporary subroutine exit address dsi, 0 |dummy symbol indicator dsn, 0 |dummy symbol odd-even indicator dse, 0 |dummy symbol temporary scn, 0 |(temporaries scw, 0 |(for code tcn, 0 |(word tcc, 0 |(subroutines dsk, 0 |dummy symbol count dsl, 0 |temporary for dum sym count t, 0 t1, 0 |temporary t2, 0 t3, 0 |registers t4, 0 t5, 0 | mon, -1 one, 1 tb, char r cr, char r constants psi| sto psi+npi+npi+npi+1 576327 357577 trn sta 245577 377157 trn oct 723347 554237 trn dec 566527 115757 trn fx 564237 723057 trn ch 542377 560137 trn noi 723707 754637 trn dfn 637357 620577 trn ter 502677 576327 trn cns 233717 377777 trn txt |Initial symbol table dsm-nsy-nsy| ist, -flex sto 0 -flex slr 100000 -flex add 200000 -flex llr 300000 -flex trn 400000 -flex tra 500000 -flex opr 600000 -flex cry 600012 -flex lpd 600022 -flex cyl 600031 -flex lad 600032 -flex com 600040 -flex amz 600051 -flex lcd 600072 -flex pen 600100 -flex orl 600105 -flex ora 600125 -flex lro 600200 -flex alr 600201 -flex ala 600221 -flex alc 600261 -flex anl 600305 -flex ana 600325 -flex shr 600400 -flex cyr 600600 -flex bsr 604000 -flex rds 604004 -flex rew 604010 -flex wrs 604014 -flex cpf 607000 -flex spf 607001 -flex cpy 620000 -flex dis 622000 -fles dsa 622021 -flex dsc 622061 -flex prt 624000 -flex pna 624021 -flex pnc 624061 -flex pnt 624600 -flex p6a 626021 -flex p6h 626600 -flex p7a 627021 -flex p7h 627600 -flex hlt 630000 -flex clr 640000 -flex cll 700000 -flex cla 740000 -flex tac 740004 -flex lal 740012 -flex lac 740022 -flex tbr 740023 -flex clc 740040 -flex lcc 740062 -flex laz 740072 -flex cal 740200 -flex rpf 746020 -flex ios 760000 -flex r1c 761000 -flex r1r 761600 -flex r3c 763000 -flex p6s 766000 dsm, |check symbol count dsm| -char lr dss| 1 ftp| -0 0 -0 0 313113 701007 212112 343443 -0 0 111111 000000 211311 344744 210012 343443 0 0 0 0 212012 303443 021300 322722 200002 311113 000300 011711 111112 444443 210213 344307 -0 0 22 11 311113 344443 313012 703443 311311 344324 020002 111113 000012 444443 300000 742111 131111 445564 2 11 313111 701000 213112 303443 211112 340043 000300 000700 111311 421124 -0 0 300000 711111 -0 0 300213 742007 -0 0 111113 000007 -0 0 111132 445562 -0 0 111311 444744 -0 0 120000 421111 -0 0 311311 344300 -0 0 211112 344525 -0 0 211112 344443 -0 0 313113 343443 -0 0 211112 300743 -0 0 211202 344743 -0 0 131111 465544 -0 0 120021 421124 -0 0 111220 444231 -0 0 211112 344443 -0 0 start+add+ps5 m