music player_ 28 sept 1967 org=20000 /origin of music on drum nbuf=34. /number of drum buffers lbuf=120. /size of each size=lbufxnbuf /space taken on each field (4080.) mar=16. /margin after each buffer la2=iot 5077 /common section 3/ jmp brk 4, jmp go beg, lio (i /initial entry dia cla>>05<>05<>05<>05<>05<>37<< brk, cks ril 5s spi i jmp dsb lio mpa dia lio mpf law buf dcc hlt law i lbuf adm ptr law 7777 and 1 sub (saf spa jmp .+3 /not safe to bump XR law 15. X+AX lac i p11 ral 4s adm t11 lac i p22 ral 4s adm t22 lac i p33 ral 4s adm t33 lac 2 ral 4s adm t44 dsb, lac 0 lio 2 jmp i 1 pl1, xct mss /play jmp dun /nothing to play cli>>05< 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 jmp dun .>>05<<./ t11, 0 t22, 0 t33, 0 t44, 0 repeat ifn p22^1,[printx /try again /] pt, /prototype pitch table /twelfth root of 2 = 1.059463094359295264581 0 2147 2252 2361 2474 2614 2740 3072 3231 3375 3547 3730 4120 4316 4524 4742 5171 5430 5701 6164 6461 6772 7317 7660 10237 10634 11250 11704 12361 13060 13602 14350 15143 15764 16636 17541 20476 21470 22521 23611 24742 26140 27404 30717 32305 33751 35474 37301 41175 43161 45241 47421 51705 54300 57007 61636 64613 67721 73170 76603 102372 106342 112502 117042 pt+100, constants pr2, variables x /phase 2 compiler offset pr2-pr1 pr1/ dimension bf2(lbuf) /compiler buffer b, b+4/ /bar pointer n, n+4/ /note pointer t, t+4/ /time p, p+4/ /pitch f, f+4/ /articulation flag (- when part runs out) a, a+4/ /articulation cm1, eem dzm ij law not dac .nl gnp, rpb /read one part spi jmp er /end of all parts cmi dio .ct1 law 4 sad ij jmp tm /too many parts law b add ij dap b1 dzm .fl /0 while reading notes lac nl dac .off /note offset re1, lac fl dac .fls /save in case of checksum lac ct1 dac .cts lac nl dac .nls law i 104 dac .ct dzm .csm re3, lac nl dac i b1 rpb lai adm csm lai lio fl sni i add off /relocate sza i jmp re6 /note/bar marker dac i nl idx nl sad (100000 jmp sf /storage full sad (20000 lac (70000 dac nl 8 re7, isp ct1 jmp re4 rpb /done lai sas csm /last checksum jmp re5 idx ij jmp gnp re4, isp ct jmp re3 rpb /end of block lai sad csm jmp re1 re5, jsp txx text /cksm _/ clc>>05<>05<>05<>05<>05<>05<>05<>17<< d2, lac p ral 6s ior p+1 ral 6s ior p+2 jda put law 7770 sub temp sma cla add temp lia cma adm temp cmi>>05<>32<< put, 0 dap pux law bf2+lbuf sad op jmp wrb lac put dac i op idx op pux, jmp . wrb, lio dp dia lio (lbuf law bf2 dcc hlt law bf2 dac op law lbuf adm dp and (7777 sad (lbufxnbuf jmp wr2 sas (lbuf jmp put+5 law i lbuf+i-size add dp lia dia lio (i-size law bf2 dcc hlt jmp put+5 wr2, law i-size adm dp jmp put+5 p1, lac . q88, lac i f1 /part is out of music spa jmp q86+1 /already know about it lac ij dac .pro /record that fact clc dip i f1 jmp q86+1 q56, jsp txx text /Part _/ law 1 add pro jdp dpt jsp txx text / is out of music at measure _/ lac bc jdp dpt jsp txx 774000 jmp q9 t mis, lac bc sad mes jmp q99 /error already printed jsp txx text /Measure _/ lac bc jdp dpt jsp txx text / of part _/ law 1 add ps jdp dpt jsp txx text / is too short. _/ lac bc dac mes jmp q99 dpt, 0 dac .dp1 dzm .dp2 dpp, dac .dp3 mul (1 div .+1 10. sas dp2 jmp dpp sni lio (20 tyo lac dp3 dac dp2 lac dp1 sas dp2 jmp dpp jmp i dpt txx, dap txy lio i txy idx txy lac (607600 rcl 6s sad (lai txy, jmp . sad .+2 jmp txx+1 swp tyo lia jmp txy-3 constants pr3, variables not, start 5 >>32<< 7