music player_ 27/1/68 mot=ivk 77 dat=ivk 21 org=20000 /origin of music on drum nbuf=34. /number of drum buffers per field lbuf=120. /size of each size=lbufxnbuf /space taken on each field (4080.) mar=16. /margin after each buffer la2=iot 5077 dimension sec(1) /section number dimension msn(1) /beginning measure number dimension bno(1) /initaial block number of file dimension rep(1) /tape word pointer dimension ptb(1000) /tape block table 0/ jmp set /initial entry 3/ jmp . law 600 dap pls /tell control not to play gtc, lio (sct /read in control section dia lio (i enm-sct gts, law sct dcc hlt jmp sct set, lio (i dia cli>>05< /start tape cma sub (5 spq cmi /too close, go away from it srt, law 4 /IO + to go forward, - for reverse spi i cma adm bkn /accelerate distance sre, spi i mot 600 /fwd spi mot 700 /rev mot 400 /go stf 6 clf 4 spi i stf 4 /direction flag try, lac trb /try reading it dat 4500 /read dat 300 /get status spi jmp m16 /wrong block ril 2s spi jmp mtl /block timing error ril 1s spi jmp mtl /end of tape rir 2s dac bkn /actual block number spi trx, jmp . /transfer finished cla>>05<>05<>05<>60<< ano, jsp txx text .anomalous directory_. jmp in amb, jsp txx text .amb_. jmp in nof, jsp txx text .not found_. jmp in wai, cli>>05<>05<>05<>05<>17<< /compiler section offset enm-sct dimension bf2(lbuf) /drum buffer dimension off(1) /measure offset dimension nl(1) /packing pointer dimension ij(1) /part number dimension np(1) /number of parts dimension ct(1) /word count dimension tm3(1) /tempo information dimension b1(4) /bar pointers dimension n1(4) /note pointers dimension t1(4) /time left in this note dimension p1(4) /pitch dimension f1(4) /articulation flag (- when part runs out) dimension a1(4) /articulation time sct/ eem /? iam /? dzm ij law not dac nl clf 7 /initialize tape gnp, jdp gwd /read one part spa jda er /no more parts cma dac ct law 4 sad ij jmp tm /too many parts clf 2 /goes on when bars begin lac nl dac off /note offset re1, jdp gwd szf 2 add off /relocate sza i jmp re6 /note/bar marker aam dac nl idx nl sad (77400 jmp sf /storage full sad (20000 lac (70000 dac nl / jmp .+2 re6, stf 2 isp ct jmp re1 lxr ij /end of part law i 1 add nl dac i b1 idx ij jmp gnp er, 0 mot 500 /stop tape lac sec TAM sub (1 dac sec cma>>05<>05<>76<< d2, lac p1 ral 6s ior p1+1 ral 6s ior p1+2 jda put law 7770 sub temp sma cla add temp lia cma adm temp cmi>>05<>05<>32<< p44, lio . lai /make up for more lost time ral 1s adm t44 iot 114 lac i p11 ral 1s adm t11 iot 14 lac i p22 ral 1s adm t22 iot 314 lac i p33 ral 1s adm t33 iot 214 p00, lai adm t44 iot 114 p11, lac . /this location must be odd adm t11 iot 14 p22, lac . adm t22 iot 314 p33, lac . adm t33 iot 214 SXX.> jmp p00 nxm, idx ptr sas (lxr buf+lbuf jmp ptr lai ral 1s adm t44 iot 114 law lbuf adm mpa sas (size jmp nx2 dzm mpa lac (i adm mpf jmp nx3 nx2, repeat 6,nop 6 nx3, lac i p11 ral 1s adm t11 iot 14 lac i p22 ral 1s adm t22 iot 314 lac i p33 ral 1s adm t33 iot 214 law i 15. add mpa lia dba xct p44 jmp ptr fin, lsm szs 60 jmp pl1 law 3 dap . jmp gtc-2 .>>05<<./ t11, 0 t22, 0 t33, 0 t44, 0 repeat ifn p22^1,[printx /try again /] constants enp, variables start 0 >>32<<