Midas assembler=part 3 |Constant designators svs, sxa svx |save word info tsx sav wrd fct psn fcn def rlc fcr fci tt ct qt bt rt syl tra .+1 svx, tra . lp, stz syl tsx svs lp1, tsx sts tra rp1 tra rp1 load rt, tra rp tra rsw |Evaluate constant syllable rp1, lda one |word terminator rp, add (tra rr |r. p. sto cox tsx evl tsx rss+1 ado chc llr def lda pss sto def tze co8 lac tze usc c12, ldx nco llr wrd tra co4 co2, lax con |search loop lpd trn co4 tze co6 co4, tix co2 |Define new constant co1, lda nco sto t2 add mon sto nco ldx dpx com adx 0 add (-con+trn-1 trn sce ldx nco slx con+1 tsx crk lda (opr ldx t1 co7, cyr cyr tix co7 sto t1 |mask tsx rck add t1 anl+com-opr slr t1 ldx t0 |crl addr llx crl ana add t1 stx crl c10, ado nca co5, lda pss tze c22 lda t2 com llr (trn ldx cnl adx cor trn .+2 lro lpd sto num slr t2 tsx rck trn irc add t2 trn c21 lac trn rci c21, llr t2 lal sto nmr c22, tsx uns tra svx cox, tra . co8, lac |def on pass 1 tze c10 tra c12 co6, xac |check rel. agreement sto t2 tsx crv llr wrd ldx t2 com add rlc tze co5 tra co4 crv, sxa cx tsx crk lax crl ldx t1 cr4, cyl |calculate relocation cyl tix cr4 tsx erk cx, tra . crk, sxa crx |subr to reference crl lda t2 com llr svn anp shr shr shr sto t0 axo slr t1 crx, tra . |Pseudo-instruction constants cns, lda loc trn ilf ldx cnl xac add (-ncn-ncn-ncn+trn trn tmc llr rli lda pss tze cn1 clc sto t2 lar add loc com adx cor tze cn4 cld, error alm, alh, flex cld cn1, lar add loc stx cor lda nca add aml sto aml lda nca add loc stx cor+1 cnd, llx cor+1 aux (3 sxa cnl stz nca stz nco cnb, slr wrd move rli, syl load bs, tra rst tra b5 cn2, sxa nco |dump constants ldx t2 llx con slr wrd tsx crv sto rlc tsx enc lda t2 add mon sto t2 cn4, ldx nco tix cn2 lda loc ldx cnl stx cor+2 lax cor cyl shr+com-opr |kill reloc ind bit adx cor+1 add aml sto aml lax cor+1 com adx cor+2 trn cnd cad, error alm, cnd, flex cad |Pseudo-instruction variables var, lda loc trn ilf ldx vax aux (2 xac add (-nvo-nvo trn va1 tmv, error alm, alh, flex tmv va1, sxa vax lda pss tze va2 lax vor-2 com add loc tze va6 vld, error alm, rst, flex vld va2, lda loc stx vor-2 ldx low tra va5 va3, aux (2 lax low-3 |sym l com trn va5 cyl trn va5 lax low-2 trn va5 cyl trn .+2 tra va5 add rli cyr add (-add stx low-2 |sym r lax low-1 add loc stx low-1 |value va5, tix va3 ldx vax lda loc add vct stx vor-1 va6, stz vct llx vor-1 tra cnb |Pseudo-instruction dimension dim, llr pss tplr itc tsx sts tra rsw tra rst load lt, tra di1 load rt, tra di2 tra rsw di1, lda syl tze ilf move2 sym, tsm tra rsw di2, tsx evl lda def tze usd di3, lda vct sto tvl add wrd sto vct lda tsm l sto sym l add (opr sto tsm l lda tsm r sto sym r add (add sto tsm r tsx es tze di4 mdd, error alq, rsw, flex mdd di4, tsx vsm tra rsw |Read block of characters from input tape rfb, tsx sav wcc wc1 tra .+1 rf1, stz wcc load wc1, sto flx-1 init rfw, rfc rfl, load rfa, tra rfu rfu, cal 1 tac+cyr-opr cyr cyr trn .+4 cal r1c tra rf9 lcc trn .-1 lal add mon ldx (5 cyl tix .-1 tsx str rf9, alr add (-444444 |delete tze rfu tsx wch+1 add (flx+nfw-40+trn trn rfv init rfw, rf2 rfv, lac add (-404004 rfw, tze . |rfc or rf2 add (-400404+404004 tze rfc add (-440004+400404 tze rfu add (-040000+440004 tze rfu lcc rfa, xx |add rfg or tra rfu tze rfs tra rfl rfc, llr (add rfg tra rfl+1 rfs, ado rfa |check for start add (-add-rfg-4 trn rfu ldx (rf2 tra rfl-1 rf2, move wcc, rcl |stop read move wc1, rce tsx uns tra rf1 init rc8, flx-1 stz rcc tra rcb+1 rfg, char ls char lt char la char lr char lt |Ignore to tab or carr ret itt, ldx (rst tra .+2 itc, ldx (cfr sxa itx tra it3 it1, add (-400404 tze itx add (-404004+400404 itx, tze . it3, tsx rch tra it1 |Error stop entries ust, lda mii tze usw error alu, tb4, flex usm usw, error alu, tb4, flex usw wdu, error alu, wd2+2, flex usw usb, error alu, b5, flex usl usd, error alu, di3, flex usd usq, error alu, rst, flex usp uss, error alu, s2, flex uss usc, error alu, c12, flex usc use, error alu, en3, flex use usr, error alu, rqb, flex usr usk, error alu, ckz, flex ust usi, error alu, iv2+3, flex usi ich, error alm, rr, flex ich ilf, error alm, itt, flex ilf ile, cal+com-opr slr wrd sto fsm error alm, en3, flex ile ilx, error alm, bs, flex ilx ire, error alm, rcr, flex ire irb, error alm, rcr, flex irl irq, error alm, rcr, flex irp irw, error alm, rcr, flex irw irc, error alm, rcr, flex irc irx, error alm, ts2, flex irx mdt, error alq, rsw, flex mdt mdx, error alq, exr, flex mdx mdv, error alq, es1, flex mdv ipa, error alm, itt, flex ipa sce, error alm, alh, flex sce tmc, error alm, alh, flex tmc tmp, error alm, alh, flex tmp tme, error alm, alh, flex tme se, stz loc sxa loc error alm, alh, flex iae |Error identification routine alq, move2 sym, lus tra alu alm, stz lus r alu, llx 0 slr alw slr sov lax 1 llr (lda api r ale, slr al6 type lda mii tze al0 lda (001000 pno lda mii tsx opt al0, tsx tb lda loc trn al1 tsx opt lda rli tze al2 lda (flex +r pnt pno tra al2 al1, llr ind lda ind+1 tsx spt al2, tsx tb lda asm r llr asm l tze al6 tsx spt lda aml tze al6 trn al4 lda (char r+ tra al5 al4, lda (char r- al5, pno lda aml com trn .-1 tsx opt al6, xx |lda api r or exit tze al9 al7, tsx tb llr api l lda api r tsx spt lda lus r tze al8 als, tsx tb llr lus l lda lus r tsx spt al8, lda (101001 pno tac+cyr-opr trn alk clc alh, alr+hlt-opr clc sto pch alw, xx al9, lda lus r tze al8 tsx tb tra als alk, llr (-20000 ora tze alw tra alh+1 tb, lda (100101 pno trx ind, symbol 23, 30, 16, 0, 17, 20 |Octal print subroutine. opt, sxa opx load t3, -5 alr lda opb opd, sto ope opa, lal opb, cyl cyl llr (-7 anl 20 axr tze .+3 lda al5 sto ope lax spl+1 ope, xx |cyl or pno ado t3 tze opc trn opa opx, tra . opc, lda al5 tra opd |Symbol print routine. spt, sxa spy sto t3 lac ldx one spc, sxa t0 llr (-opr anc alo add (add spd sto spa spq, add (-add-spd-3 tze spx ldx (-51 lac spr, alr spa, xx tix .+1 trn spr spp, lax spl+50 tze .+2 pno ado spa tra spq spx, ldx t0 lda t3 tix spc spy, tra . spd, 3100 50 one, 1 spl, 0 char r0 char r1 char r2 char r3 char r4 char r5 char r6 char r7 char r8 char r9 char ra char rb char rc char rd char re char rf char rg char rh char ri char rj char rk char rl char rm char rn char ro char rp char rq char rr char rs char rt char ru char rv char rw char rx char ry char rz 0 0 |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 ini, 0 |aux. input routine indicator ino, 0 |input relocation rlc, 0 |relocation count rlp, 0 |relocatable program indicator rli, 0 |relocation indicator rlm, 0 |relocation bit mask rlw, 0 |relocation word being formed rim, 0 |-0 = read-in mode format, +0 = input routine format pci, 0 |-0 = program card punched, +0 = card required lus, zero |last undefined symbol wrd, 0 |partial sum of syllable products num, 0 |number = value of syllable. dnm, 0 |decimal number nmr, 0 |number relocation fct, 0 |factor = product of syllables fcr, 0 |factor relocation fci, 0 |factor combination indicator sym, zero |symbol = squoze for symbol. fsm, 0 |flexo symbol = flexo word for symbol def, 0 |-0 = indefinite word, +1 = definite chc, 0 |count of characters in symbol syl, 0 |-1 = at most one plus syllable, +0 = otherwise. let, 0 |-1 = no letters in syllable, +0 = otherwise api, zero |last psuedo-instruction for error stop asm, zero |alarm symbol for relative location aml, 0 |location relative to symbol in asm nsm, 0 |(for establishing above symbolic relative asa, zero |(location from location amn, 0 |(assignment cas, 0 |-0 = lower case, +1 = upper case liu, 0 |-1 = no letters in uc, +0 at least one in uc. nco, 0 |number of distinct constant values nca, 0 |number of constants vct, 0 |variable count = number of different variables mii, 0 |macro instruction call indicator mdi, 0 |define indicator tsm, zero |symbol temporary tvl, 0 |symbol value temporary lch, 0 |last character read rcc, 0 |current reader character rcl, 0 |odd characters in reader last word wcc, 0 |current writer character wf1, 0 |temporary for wc1 wf2, 0 |temporary for word addressed by wc1 wf3, 0 |temporary for wcc igi, 0 |ignore comma in argument indicator dsk, 0 |macro define d. s. counter dpx, dsp |macro call argument pointer pointer arc, 0 |macro call argument pointer origin cnl, 0 |constant pseudo-op counter vax, 0 |variable pseudo-op counter rqc, 0 |repeat count rqp, rqs-1 |next repeat origin rqq, rqs-1 |present repeat origin sap, pd1+1 |(pushdown list sbp, pd2+1 |(pointers t, 0 t0, 0 t1, 0 t2, 0 t3, 0 mon, -1 const dsp| dsv-1 ftp| trn 0 trn 0 313113 701007 212112 343443 trn 0 111111 000000 211311 344744 210012 343443 0 0 0 0 212012 303443 021300 322722 200002 311113 000300 011711 111112 444443 210213 344307 trn 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 trn 0 300000 711111 trn 0 300213 742007 trn 0 111113 000007 trn 0 111132 445562 trn 0 111311 444744 trn 0 120000 421111 trn 0 311311 344300 trn 0 211112 344525 trn 0 211112 344443 trn 0 313113 343443 trn 0 211112 300743 trn 0 211202 344743 trn 0 131111 465544 trn 0 120021 421124 trn 0 111220 444231 trn 0 211112 344443 trn 0 start add ps5 v