diff --git a/build/misc.tcl b/build/misc.tcl index ed6466dd..5fe803cf 100644 --- a/build/misc.tcl +++ b/build/misc.tcl @@ -1105,6 +1105,33 @@ respond "\n" "\033y" respond " " "sys1; ts musrun\r" respond "*" ":kill\r" +# BIG +respond "*" ":midas;77\r" +respond "MIDAS.77" "SYSBIN;_SYSENG; BIG\r" +expect ":KILL" +respond "*" ":midas;77\r" +respond "MIDAS.77" "SYSBIN;_PRS; SUDSUD\r" +expect ":KILL" +respond "*" ":midas;77\r" +respond "MIDAS.77" "SYSBIN;_PRS; PLOT\r" +expect ":KILL" +respond "*" ":midas;77\r" +respond "MIDAS.77" "SYSBIN;_PRS; FIGS\r" +expect ":KILL" +respond "*" ":midas;77\r" +respond "MIDAS.77" "SYSBIN;_PRS; SMOLDM\r" +expect ":KILL" +respond "*" ":stink\r" +respond "\n" "msysbin;sudsud\033l\033\033" +respond "\n" "mbig\033l\033\033" +respond "\n" "mfigs\033l\033\033" +respond "\n" "mplot\033l\033\033" +respond "\n" "msmoldm\033l\033\033" +respond "\n" "jbig\033?d\033\033" +respond "\n" "\033y" +respond " " "sys1; ts big\r" +respond "*" ":kill\r" + # WHOLIN respond "*" ":midas sys2;ts wholin_sysen2;wholin\r" expect ":KILL" diff --git a/doc/programs.md b/doc/programs.md index 5a7e03e0..b9adf6b2 100644 --- a/doc/programs.md +++ b/doc/programs.md @@ -35,6 +35,7 @@ - BABYLM, mail sending program for EMACS. - BALANC/MOVDIR, balances directories. - BDAY, happy birthday demon. +- BIG, music processor. - BINPRT, display information about a binary executable file. - BITPRT, print JCL as bits. - BKG, a Backgammon game. diff --git a/doc/prs/-read-.-this- b/doc/prs/-read-.-this- index a3a0bbf7..dbd10e3f 100644 --- a/doc/prs/-read-.-this- +++ b/doc/prs/-read-.-this- @@ -1,3 +1,3 @@ -These are music files from Peter Samson's DECtapes. +These are music and source code files from Peter Samson's DECtapes. To compile music, run MUSCOM and type OUTPUT_INPUT. diff --git a/src/prs/figs.33 b/src/prs/figs.33 new file mode 100644 index 00000000..7f4e2605 --- /dev/null +++ b/src/prs/figs.33 @@ -0,0 +1,606 @@ +TITLE FIGS 33 691216 1828 + + 1PASS + + PLLB2 + PLLB1 +PLLLBT": PLLA1 + PLLA2 + PLLA3 + PLLA4 + PLLA5 + +PLCLEF": PLBCLE + PLBCLE + PLRCLE + PLRCLE + PLBCLE + PLTCLE + PLACLE + PLSCLE + + PLDFLT + PLFLAT +PLACCT": PLNATU + PLSHRP + PLDSHP + + 118._9 + 84._9 +PACWDH": 80._9 + 104._9 + 96._9 + + PBREVE +PUNOTE": PWHOLE + PL2NT + PL4NT + PL8NT + PL16NT + PL32NT + PL64NT + + PBREVE +PDNOTE": PWHOLE + PL2ND + PL4ND + PL8ND + PL16ND + PL32ND + PL64ND + + RBREVE +PREST": RWHOLE + PL2R + PL4R + PL8R + PL16R + PL32R + PL64R + +DEFINE FIGPRT D,T + D+$Q + $V + $N +IFN T,[ IFE $N,[PRINTX / ZERO VECTOR AT:/ ?0=0 ] + IFG $N-127.,[PRINTX /EXCESSIVE VECTOR:/ ?0=0 ]] + $N==0 + $Q==0 +TERMIN + +DEFINE FIGOOR A + $V==0 + $N==0 + $Q==0 + $S==0 + .BYTE 4,1,7 + IRPC X,,[A] + IRPC Y,,[URDLNESW]Z,,[03651274] + IFSE [X]Y,FIGPRT Z,1 + TERMIN + IFSE [X]+,$V==0 + IFSE [X]-,$V==1 + IFSE [X]Q,$Q==8 + IFSE [X]<,FIGINR FIGOFT + IFSE [X]>,FIGINR FIGOFU + IFSE [X]#,FIGINR FIGOFW + IFSE [X]*,$S==1 + IRPC Y,,[0123456789] + IFSE [X]Y,$N=10.*$N+Y + TERMIN + TERMIN + $V==1 + IFE $S,FIGPRT 0,0 + .BYTE + TERMIN + +DEFINE FIGURE F,G,H,I,J,K,L + RADIX 10. + $R==0 + IFSN [F],[IRP E,,[F] + $R==$R_18.+<,E> + TERMIN + $R +] FIGOFT=.-I + FIGOFU=.-J + FIGOFW=.-K + FIGOOR [G] + H_9 + IFSN L,,L_9 + RADIX 8 + TERMIN + +DEFINE FIGINR Q + .BYTE 12. + 0 + Q + .BYTE 4,1,7 + TERMIN + +;CLEFS + +PLDOT.=.+1 +PLDOT": FIGURE [0,0]+2U8QU2N8QN4R8QR2E8QE4D8QD2S8QS4L8QL2W8QW2U8R8N8E8S8W,64 + +PLBCLE: FIGURE [18,84][+8QL6W8QW8U26E6R4QN36W8QU38E8QU36W6N32E12 +U26W10N20QN22R30E94D52QD16N36QU84U4QW20QE56D4QD +20QU40U28QW28W20QR14E32QE40D64QD48S-94N18U<-4W60U<]210,PLDOT. +PLRCLE: FIGURE [32,292][+4U4W4L4S4D8E8R4N8U8QW8QL8L8S12D12E12R16 +QN4N8QU110U110U112U16QU8QN4R40QD-40QU+12R8QR16QE28D102QD102Q +D36D16QW48U100QU100QU20D100QD100QD-36D8E+16QE8E16QR44R24QN16 +N16QU44U16W16QL24L16QS8S16QU16QN28R8QR-20E4D+24QW8W8QL32L8QS +8S24QD20D16QE]160 +CCLE: FIGOOR [+100D100D56D32R100U100U56U32L8E124D124D8R124U +124U8R124D124D-4E30R+100U100U56U-38E6D+16U8L16D8L22U4QN8R8QR +8QE8D8QD8QS8L8QL8QW10U16QU8N16QN66R16QR6E14QE50D14QD6S16QS20L +12QN8N10QU58U10QW8W12QL-12R4E+8QR18QE52D18QD6S8QN10N10QU50U14QW +-58D34S+4L8QL4W20QW28QD24S24E28QE20QU4N8QN4R-34E58D+14QU50U10QW +10W8QL6E18QE52D18QD8QS-4S12L+12QN8N10QU58U10QW8W12QL20R16QR6E +14QE50D14QD6S16QS66L16QL8W16QW10U8QU8QN8R8QR8QE8D8QD8QS8L4QL22U +8R16D8R16U] +PLSCLE: FIGURE [0,128]<,225,CCLE +PLACLE: FIGURE [0,0]<,225,CCLE +PLTCLE: FIGURE [0,-64]<,225,CCLE + +;NOTES + +BLAKHD: FIGOOR +18N10QN5R34S10D46N10R52S5E54N10R58S10R54N5E52S10R46N10D34S5R10QN18N +SUPTAL: FIGOOR +28QE14E32QE42D12QD-38W55U+5R6QR22E22QE-18W26L +LUPTAL: FIGOOR +28QE14E32QE8D-44W3U+5R6QR22E22QE34D24QD16S +LDNTAL: FIGOOR +5R6QN22N22QU34U24QW16W-46D28E+8D32QD14S28QD +SDNTAL: FIGOOR +5R6QN22N22QU-40U6W+12QE42D32QD14S28QD + +PBREVE: FIGURE [0,63]+126D-46U+110R8QD102L8QD110R-30D+126U-30D+110L8QE102R8QE110L,130,,,,0 +PWHOLE: FIGURE [23,32][+34QW19U56QE5L14QL9W12QW16U12QU9N14QN30R +14QR9E12QE16D12QD56QW-5R6QR+34QE19D9S14QS25L]130,,,,0 +PL2NT: FIGURE [0,-10][+4QU4N32QN22R12QR6E10QE16D56QS-35U29N+56QS +16D10QE6E12QR22R32QN4N4QU-22U+100U112U]130,,,,192 +PL2ND: FIGURE [0,224][+112U100U-22U+4QU4N32QN22R12QR6E10QE16D56QS +-29N35U+56QS16D10QE6E12QR22R32QN4N4QU]130,,,,192 +PL4NT: FIGURE [1,-7]<-1N14U+108U108U,130,BLAKHD,,,192 +PL4ND: FIGURE [0,224]+108U108U-14U1N<,130,BLAKHD,,,192 +PL8NT: FIGURE [1,-7]<-1N14U+108U108U-26D>,150,BLAKHD,LUPTAL,,192 +PL8ND: FIGURE [0,163]<-26D+108U108U-1N14U>,130,LDNTAL,BLAKHD,,192 +PL16NT: FIGURE [1,-7]<-1N14U+108U108U>>,145,BLAKHD,SUPTAL,,192 +PL16ND: FIGURE [0,125]<-29D<+108U108U-14U1N>,130,SDNTAL,BLAKHD,,192 +PL32NT: FIGURE [1,-7]<-1N14U+108U108U48U>8U>8U>,140,BLAKHD,SUPTAL,,240 +PL32ND: FIGURE [0,125]<-21D<-21D<+108U108U48U-14U1N>,130,SDNTAL,BLAKHD,,240 +PL64NT: FIGURE [1,-7]<-1N14U+108U108U96U>8U>8U>8U>,135,BLAKHD,SUPTAL,,288 +PL64ND: FIGURE [0,125]<-21D<-21D<-21D<+108U108U96U-14U1N>,130,SDNTAL,BLAKHD,,288 + +;RESTS + +RFLAG: FIGOOR +16QD-59L+3S20D2QE3E4QR34U4QN4R38D8R36U2QR4E4QE15D12QD4R32N48QD +RBREVE: FIGURE [0,48]+96D-16U8N+100R8U100L8U100R8U100L8U100R8U100L8U100R-8N16U+96D,156 +RWHOLE": FIGURE [16,80]+64R8D72L16U80R24D88L32U,130 +PL2R: FIGURE [16,112]+64R8U72L16D80R24U88L32D,130 +PL4R: FIGURE [24,28]+52QE48QD20U28QU20U48QD68QE12W16L10S28D24QW12U16N14R8QE16L12S8D,90 +PL8R: FIGURE [70,64]<64QD,110,RFLAG +PL16R: FIGURE [102,64]<<64QD,132,RFLAG +PL32R: FIGURE [134,0]<<<64QD,164,RFLAG +PL64R: FIGURE [158,0]<<<<48QD,188,RFLAG + +;MISC + +PLHBAR":FIGURE [0,0][+120D120D16D6L120U120U16U6L120D120D16D6L120U120U16U6L120D120D16D] +PLHBWS": FIGURE [0,0][+30R-64D+30L-64D+30R-64D+30L-64D+54R120U120U16U24L120D120D16D9 +R120U120U10U9R120D120D4D] +PFTRIP": FIGOOR [-4D16E+8E4QR17R4QN5N4QU14U4QW3W4QL13L-15W3U+5N4QN19R +2QR2E6QE6D2QD7S2QS-23R4E] +PLLB2: FIGOOR +127R-64W63L+127R +PLLB1=PLLB2+1 +PLLA5: FIGOOR +127R-64S63L+127R-64S63L+127R-64S63L+127R-64S63L+127R +PLLA4=PLLA5+1 +PLLA3=PLLA4+1 +PLLA2=PLLA3+1 +PLLA1=PLLA2+1 + +PL8V: FIGOOR [+4QL2W4QW6U4QU2N4QN6R4QR2E4QE6D4QD2S4QS6L4QS4S4QD10D4QE4E4QR +10R4QN4N4QU10U4QW4W4QL2L-12R+30QE30QU] + +PL8VU": FIGURE [12,-30]<-28W2U+6U,0,PL8V +PL8VD": FIGURE [12,22]<-30S6D+6D,0,PL8V + +;ACCIDENTALS + +PLFLT: FIGOOR +12N12QN14R8QR4E4QE24D12QD16S28QU26U8QW-52D10S+30S84U84U + +PLDFLT: FIGURE [34,18]+34S84U84U-92D+12N12QN10R-18D<,86,PLFLT +PLFLAT: FIGURE [0,-24]<,52,PLFLT +PLNATU: FIGURE [0,-96]+68D48QN8D48QS8U-8D+72D48QN8U48QS-48N40U+64D-8D+68D,48 +PLSHRP: FIGURE [12,96]+52U12QS8D72QN8U60QS72U12QS8D72QN8U60QS52U-32R16N+88D88D,72 +PLDSHP: FIGURE [15,-10][+16U8L16D7L22U22R22D20E22D22R22U7L16D8L16U-20U+16U8R16D7R22U +22L22D20S22D22L22U7R16D8R16U]64 + +;NUMBERS + +PLBN": PT0T + PT1T + PT2T + PT3T + PT4T + PT5T + PT6T + PT7T + PT8T + PT9T + +PT0T: FIGURE [22,4][+12QD96D12QE8QR20R8QN12QU96U12QW8QL20L12QS12S12QD68D12QE12E +4QR-14W8U+78U-64R+78D-8D14S+4QN12N12QU68U12QW12W4QL]100 +PT1T: FIGURE [22,10][+30S-10E76D+60R-18L+4QW118U4QU24L4QE118D4QD-6N3R+114U6R114D]72 +PT2T: FIGURE [16,20][+6D8L8U4QU2N4R4QR2E4QE6D4QD2S4QS8L4QL2W4QW6U8QU6N6QN28R12QR +12E12QE18D8QD8S48QS10S12QD6QN10R28QR12R6QN6N4QU10QS16L22QL10L6QU9R20QR18R +4QN4N4QU12U8QE18D8QD4S12QS16L28QL6L4QS2S4QD6D-48N8U+24QU34U8QW-10E6D+6QE20D6QD6S]100 +PT3T: FIGURE [10,33][+13U2R4QR4QE6D4QD4QS4L4QL4QW8U8QU8N16QN20R16QR8E12QE16D12QD +8S8E12QE16D12QD8S16QS20L16QL8W12QW8U4QU2N4QN6R4QR2E4QE8D4QD2S4QS4QL8QW4U2N7R9D-18U +19N+16R-2R12E+6QE28D6QD9N23U10QW8W4U8N10QU23U9W6QE28D6QD-40U10W+12QE36D12QD4QS +4QR12QE36D12QD]100 +PT4T: FIGURE [49,6][+50QD-8D24S+32N56QU16L88QD84R-32S1L+59U6N65D-3R6E+4QW94U24QD +8S62D4QD-18L+60R]94 +PT5T: FIGURE [12,6][+59R6QE62L-6S2L+70R12QE30U76L56D50R12QR8E12QE16D12QD12S12QS +24L12QL8W12QW18U8QU4QN4R4QR4QE2D4QD4QS4L2W4U2N2R2E-59R2N+18D6QD +38U6QW6W4QE56D4QD]100 +PT6T: FIGURE [8,24][+80D-14E6D+4QL12W12QW68U12QU12N12QN20R16QR8E +4QE6D4QD4QS4L4QL4QW10U4QW6E8D-18W24L+12QD96D12QE8QR20R12QN12N12QU16U12QW8W +12QL20L12QS6S-42R6N+56D-8U8N+24U]100 +PT7T: FIGURE [72,6][+63L6QD66R-6E2R+74L12QD30U80R28D50S12QD28D8QE2E4QR2R4QN2N8QU +50U12QU-13S13D+36D4QD4L4QW30U]100 +PT8T: FIGURE [20,6][+12QD10D4QE52QR6E12QE22D12QD12S12QS20L12QL12W12QW20U12QU10N +-20E38R+4QW8W48QL4W6QW11D7E44QR12E4QE12D-10D12S+12QU18U8QW4W48QL4W8QW16U +8QU12N12QN18R12QR10E8QE18D8QD4S4QS]100 +PT9T: FIGURE [15,46][+4QW20U4QU-5U9N+8QD40D8QE-38R+8QU40U8QW-10E4D+2QE82D2QD-12S6D ++12QU51U10QS26L12QL6W12QW16U12QU6N12QN26R8QR12E8QE74D12QD12S12QS24L12QL10W +8QW8U4QU4QN2R4QR4QE2D4QD4QS2QW7U]100 + + + +;USASCII + +EMWID": 114._9 +ENWID": 76._9 + +PLOTCT": REPEAT 40,0 + PLSPAC ;SPACE + PCEXC ;! + PCQUO ;" + PCNUM ;# + PCDOL ;$ + PCPEC ;% + PCAMP ;& + PCPRI ;' + PCOPP ;( + PCCLP ;) + PCSTA ;* + PCPLU ;+ + PCCOM ;, + PCHYP ;- + PCPER ;. + PCSLA ;/ + + LC0 ;0 + LC1 ;1 + LC2 ;2 + LC3 ;3 + LC4 ;4 + LC5 ;5 + LC6 ;6 + LC7 ;7 + LC8 ;8 + LC9 ;9 + PCCOL ;: + PCSEM ; ; + PCLES ;< + PCEQU ;= + PCGRE ;> + PCQUE ;? + + PCATS ;@ + UCA + UCB + UCC + UCD + UCE + UCF + UCG + UCH + UCI + UCJ + UCK + UCL + UCM + UCN + UCO + + UCP + UCQ + UCR + UCS + UCT + UCU + UCV + UCW + UCX + UCY + UCZ + PCOPB ;[ + PCBAC ;\ + PCCLB ;] + PCUML ;^ + PCUND ;_ + + PCGRA ;140 + LCA + LCB + LCC + LCD + LCE + LCF + LCG + LCH + LCI + LCJ + LCK + LCL + LCM + LCN + LCO + + LCP + LCQ + LCR + LCS + LCT + LCU + LCV + LCW + LCX + LCY + LCZ + PCOPQ ;OPEN BRACE + PCBAR ;VERTICAL BAR + PCCLQ ;CLOSE BRACE + PCNOT ;NOT + PCBLOB + + PCODQ ;200 = OPEN " + +.PER: FIGOOR +8D4R8U4R6D4QE4QU4U4QW4QL4L4QS4QD4D4QE4QR4R4QN + +.COM: FIGOOR +8D4R8U4R11D2QS4L4QL4QW4U4QU4QN4R4QR2E6QE12D8QD6S + +PCPER: FIGURE [4,98]<,32,.PER + +PCCOL: FIGURE [4,46]<-10S32D<,32,.PER + +PCCOM: FIGURE [4,98]<,35,.COM + +PCSEM: FIGURE [4,46]<-10S32D>,35,.PER,.COM + +PCPRI: FIGURE [4,2]<,30,.COM + +.GRA: FIGOOR +8D4L8U4L11D2QR4R4QN4QU4U4QW4QL4L4QS2S6QD12D8QE6E + +PCGRA: FIGURE [15,2]<,30,.GRA + +PCQUO: FIGURE [4,2]<-22N10U<,57,.COM + +PCUML: FIGURE [4,-30]<-10N12R<,0,.PER + +PCHYP: FIGURE [0,70]+12D36R12U36L4E28R4D28L,52 + +PCSLA: FIGURE [0,152]+100QU52QU5R100QD52QD5L,97 + +PCOPP: FIGURE [4,38]+76D-17E10D+26QW78U26QU-11N+18S28QD60D28QE18E,48 + +PCCLP: FIGURE [0,0]+18E28QE60D28QD18S-11N+26QU78U26QW-10D17E+76D,48 + +PCOPB: FIGURE [4,0]+100D52D-28R+32L100U52U32R,48 + +PCCLB: FIGURE [0,0]+32R100D52D32L-28R+100U52U,48 + +PCSTA: FIGURE [36,74][+32QL1L3S8QU1E30QR1N37U8R37D1E30QN1N8QE3W1L36QS29S-10W +34U+30QR1E1D27S6E28N2R28E6N27W1U1N30QN-34D10S+26W3L44U]96 + +PCPLU: FIGURE [3,76]+58R-29S+61U4R28D28R8D28L28D8L28U28L8U28R28U4R,80 + +PCLES: FIGURE [0,76]+76N6R76S76E6L76W,94 + +PCGRE: FIGURE [0,0]+76E76S6R76N76W,94 + +PCEQU: FIGURE [0,54]+8D68R8U68L4E61R-26S36L+61R4E68L8U68R8D,80 + +PCAMP: FIGURE [23,4][+4D100QE6QL1W92QW8D84QE-4E13R+20L86QW8U6QU6N4QN22R6QR +1E6QE8D6QD8S10QU14U4QW3W2QL-10E+8D-6D8S+5S32QS9S10QD14D +12QE8E4QR10R46QW8D34QE4L30QW8D18QE3E-5E8R+6R10QN15N20QU20U-6R+12L]95 + +.LOOP: FIGOOR +2U22QU5N6QN6R10QR3E6QE12D20QD6S6QS12L4QL4W8QW15U18QU5N6QN4R6S34QD + +PCPEC: FIGURE [2,37]<-35N4R+6QR16R12QN7N100QD52QD5R100QU52QU5L-75D11S<,128,.LOOP + +PCBAC: FIGURE [0,0]+100QE52QE5R100QW52QW5L,97 + +PCQUE: FIGURE [5,20][+10U1R4E4D4QD2QS2L2QL4QW4U4QU2N8QN18R8QR8QE26D6QD3S20QS +4QU2N16QN4N5U4QD16QS4S-2S5D+21D-4S16D<]60,.PER + +PCEXC: FIGURE [4,51]+47U4R46D4QD8D12QW44U4QU2N4R2E4QE44D12QD16D-4S16D<,28,.PER + +PCUND: FIGURE [0,152]+100R,100 + +PLSPAC: FIGURE [0,0]-10R,60 + +PCBAR: FIGURE [6,0]+100D52D,28 + +PCNOT: FIGURE [0,44]+80R40D4L36U76L4U,96 + +.UCI: FIGOOR +32R-8L+108D4W100U4L100D4L100U4W108D-8L+32R + +UCA: FIGURE [0,108][+13R7L108QU108QE6R29L-12W26U+54L-26N26U+2R90QE4QU88QW +4QU92QE4R96QW]136 + +UCB: FIGURE [0,0][<+35R8QN7N8QU16U8QW7W8QL43L-17E41R+18D8QD33U4W41D4S49U +-4W2L+49U4E40D4N8QU18U4QW3W2QE27D-11S4D+8QN7N8QU16U8QW7W8QL29L]102,.UCI + +.UCC: FIGOOR [+94D8QW77U8QD61D8QW48U-22N57R+1N2QU8D1U4QW20QL28L18QS8S18QD44D +18QE8E18QR32R] + +UCC: FIGURE [16,7]<+18QN6QU10D1U3W,104,.UCC + +UCD: FIGURE [0,0][<+27R16QN7N16QU46U16QW7W16QL27L-5E32R+10QE78D10QD10N79U +8QE62D8QU46U]106,.UCI + +UCE: FIGURE [0,0][<+56R11U3D8QD-27U24W+14U3D4QD4QE-4QW+34L-42U8N+52R8D2U +6QW]104,.UCI + +UCF: FIGURE [0,0]<-8W50U+34R4QE3D14U3D4QD-26W24U+52R8D2U6QW,100,.UCI + +UCG: FIGURE [16,7][<+5R8QN5N8QU24U-7R+31L-6S35D+4QN5N10QU24U4E20D10QD4S3R +2QN3N10QU20U4R20D8QD6S]112,.UCC + +UCH: FIGURE [0,0]<-8W50U+48R-42U8W<,112,.UCI + +UCI: FIGURE [0,0]<,48,.UCI + +UCJ: FIGURE [16,0][+32R-8L+117D8QD6S6QS12L4QL4W6QW2U2QW12U2QU1N2QN2R2QR1E +2QE5D6QD8D4QE3E4QR-2L9W+2QW10U2QU6U-10D19E+100U34U4E125D4N121U4R115D]56 + +UCK: FIGURE [0,0]<-48U1W+46E7R49W7U59E-6R+35L-8R+49W59N-7L+13R,115,.UCI + +UCL: FIGURE [0,0]<+56R11U3D8QD,100,.UCI + +UCM: FIGURE [0,108][+16R-8L+104U4R84QE4QN80QW4R76QE4R80QW22L-6R+96QE96QU +22R-8L+108D4W100U4L100D4L100U4L104D-8L+32R]140 + +UCN: FIGURE [0,108][+16R-8L+108U8L-10R4E+100QE4R100QW4R96QE8E108QW16L108QE +16R108U-8L+16R]100 + +UCO: FIGURE [4,30][+48D8QE61U8QU77D8QE96U5S22QD44D18QE9E12QR38R12QN9N18QU +44U22QW7W12QL38L12QS2S-66R+96D8QU77U8QE61D8QU48U]114 + +UCP: FIGURE [0,0][<-8W46U+43R8QN7N8QU16U8QW7W8QL43L-44R2E+49D4N41U4E33D8QU +18U]102,.UCI + +UCQ: FIGURE [4,31][+46D8QE59U8QU75D8QE94U5S22QD42D18QE9E12QR38R12QN9N18QU +42U22QW7W12QL38L12QS2S-66R+94D8QU75U8QE59D8QU46U-41D37S+27D6QE7E4QR-8L3W+2W +12QW21U4L21D12QE2QR4L3W10QW21U4W26D8QE6E4QR43R]114 + +UCR: FIGURE [0,0][<-8W46U+38R10QR3E10QE27D6QE3E-10R4N+8QS14L6QL5W6QW26U8QW +6W-9E5R+8QE28D2QE4E3R2W4QW27U8QW4W8QL4E8QE28D-40U4W+49U4E40D4N8QU18U4QW3W2QE +27D-11S4D+8QN7N8QU16U8QW7W8QL29L]116,.UCI + +UCS: FIGURE [3,85][+3S2D11U16QE7E18QR22R12QN9N6QU21U6QW5W64QL2QW-6E9D+3E +58QR4E8QW62QL6QW63QR2E-13D6E+4QW4W56QL7W8QW12U8QU7N10QN26R14QR1N2QU8D1U4QW]91 + +UCT: FIGURE [3,0]+6QD2D8U24R<-108U+24R8D2U6QW,96,.UCI + +UCU: FIGURE [0,0][+32R-8L+89D8QE9E4QR-16W6L+6QW82U4R85D12QE4QL6W8QW81U4W85D +8QE8E14QR28R14QN8N8QU85U-8L+16R]112 + +UCV: FIGURE [0,0][+31R-14L4S+96QE4QU92QW4R88QE4R92QW-16L+108QE108QU-8L+15R +]134 + +UCW: FIGURE [0,0][+122R-7L+108QD108QW4QR2E96QE4QU92QW4R88QE4R92QW-48R+92QE +4L88QW4L92QE4QD96QW2W4QL108QE108QU-8L+15R]176 + +UCX: FIGURE [1,0][+31R-24L+108QE4QU100QW4R100QE4R100QW4QU108QE-6R+30L-38L ++16L-8R+54QU-10N+44QU-8L+16R]100 + +UCY: FIGURE [0,0][+31R-24L+54QE54D4N50U50QW4R50QE50D4R50U50QW4QU50QE2R58D +-8R+32L-34U24N+50QU-8L+15R]98 + +UCZ: FIGURE [7,0]+6QD2D8U66R108QD4QW100QU4L100QD4L100QU4QW108QD74R11U3D8QD,90 + +LCA: FIGURE [7,58][+7U5N4QD2D2QE2D2QD2S2L2W2QW4U2QU2N8QN20R8QR4E46D8QE4R4N +6QD4QS4L4QL4W6QW50U2QW4QR4QE46D8QE4QR-13W1L+4QD8S4QS8L8QW17U8QU4QS2S6QD15D8E +1L8QL2W4QW11U6QU6N4QN23R]71 + +LCB: FIGURE [14,4][+102D4L102U8QL2L18R110D18L2R4QN106U-12E42D+10N8QN10R8QR +6E8QE34D8QD6S6QS12L10QL8W-10E24R+62U4QE4E4QE38D4QD4S4QU46U]78 + +LCC: FIGURE [14,46][+60D8QW46U10QD28D6QE-50R+4QD4S12QS18L12QL4W12QW24U12QU +4N12QN20R8QR4E8QE4D4QD2S2L2W4QW4U6QU2E10D]72 + +LCD: FIGURE [18,44][+6S57D8QW43U4QU4S4QD34D4QE-38R2N+8S10QS12L6QL6W8QW30U +8QU6N8QN10R8QR10E-56U+106D18R2L4QL106U18L2R8QR100D4R100U]76 + +LCE: FIGURE [14,66][+44R8U8QW4W8QL20L12QS4S12QD24D12QE4E12QR18R12QN4N4QU +-48L2S+6QW30U10QU46D8QE60U-20E12R+22U8QE12D4R8U4QW]70 + +LCF: FIGURE [26,14][+8U4W4D2QD4D6QE4R4QU6U4QW2W4QL4L4QS4S4QD96D4QS2L24R2L +4QL74U16QW8U4QU-10D4S+4QE82D4R74U4QW-14S4D+8R-12R+10R]48 + +LCG: FIGURE [49,48][+4W1N4R1E2QE2D2QD1S4L1W2QW2U2QU2QS6S21D5S32U2QL12L4QS +6S4QD12D4QE6E4QR12R4QN6N4QU12U4QW6W2QL-6D21S+20U5N31D8L4QS2S4QD18D4QE4E4QR38R +2E4U4QL36L6QL4QW6QR36R4QR-12W36L+4E4QR34R4QR4E4QE20D12QD2S8QS18L8QL4W +6QW14U2QU6N-2D3S+22D]68 + +LCH: FIGURE [6,2][+104D4QS2L24R2L4QL106U18L2R8QR100D4R100U-4E50D+8QU4N8QN +18R4QR6E4QE50D4QR2R24L2R4QN52U4QW4W4QL-2E6R+4E4QE50D4R48U8QW]84 + +LCI: FIGURE [8,4][+8D4R8U4R6D4QE4QU4U4QW4QL4L4QS4QD4D4QE4QR4R4QN-12S18D+62D +4QS2L24R2L4QL64U18L2R8QR58D4R58U]36 + +LCJ: FIGURE [18,4][+8D4R8U4R6D4QE4QU4U4QW4QL4L4QS4QD4D4QE4QR4R4QN-12S18D ++108D-12W2U+5D8QE13U2W4L2S4D4QE4E4QR6R8QN8QU96U18L2R8QR98D4N94U]42 + +LCK: FIGURE [6,2][+104D4QS2L24R2L4QL106U18L2R8QR100D4R100U-4E68D+32N-6L+11R +-59D5S+24R-4L+42W-8S+34E-6R+35W2N37E]88 + +LCL: FIGURE [6,2][+104D4QS2L24R2L4QL106U18L2R8QR100D4R100U]38 + +LCM: FIGURE [6,46][+60D4QS2L24R2L4QL62U18L2R8QR56D4R56U-4E8D+8QU4N8QN14R4QR +6E4QE50D4QR2R24L2R4QN52U4QW4W4QL-6R2E+4E4QE50D4R48U8QW-8E4D+8QU4N8QN14R4QR6E +4QE50D4QR2R24L2R4QN52U4QW4W4QL-6R2E+4E4QE50D4R48U8QW]122 + +LCN: FIGURE [6,46][+60D4QS2L24R2L4QL62U18L2R8QR56D4R56U-4E8D+8QU4N8QN18R4QR +6E4QE50D4QR2R24L2R4QN52U4QW4W4QL-6R2E+4E4QE50D4R48U8QW]84 + +LCO: FIGURE [14,46][+2S56D2E-30R+2N56U2W-6E2D+8QE28D8QD38U-42L+38D8QW28U8QU +2W4N12QN14R12QR4E12QE24D12QD4S12QS14L12QL4W12QW24U12QU]72 + +LCP: FIGURE [6,46][+104D4QS2L24R2L4QL106U18L2R8QR100D4R100U-4E4D+8N10QN12R +6QR6E8QE32D8QD6S8QS10L8QL10W-11E23R+62U16QE31D8QD42U4QW]80 + +LCQ: FIGURE [10,54][+4QD42D8QW31U16QU62D-23R11N+10S8QS10L8QL6W8QW32U8QU6N +6QN12R10QR8E-4U4N+100D4R100U8QN2R18L106D4QS2L24R2L4QL104U]80 + +LCR: FIGURE [6,45][+61D4QS2L24R2L4QL63U18L2R8QR57D4R57U-4E6D+8QU4N8QN4R4QR +2E1QE8D6QD2QS6L2QL6QW10U4R13D4R13U4R13D]59 + +LCS: FIGURE [2,100][+4QD10U4QE4E12QR14R4QN6N4QU12U4QW4W34QL1D4QE34QR4QE1D +36QL-22E14R+34QL4W4QW9U4QU6N4QN18R8QR4QE6U2S]58 + +LCT: FIGURE [0,44][+30R-61D2E+8L2QL1W2QW73U12L75D4E4QR8R8QN2N4QU-8S6L+2L4W +71U4L69D4QE2E]50 + +LCU: FIGURE [14,48][+52D4QE4E4QL4W4QW50U8QL2L18R56D4QE4E4QR-22W42U+52D4QE6E +4QR22R8QN4N8QU-48U+64D18R2L4QL64U18L2R8QR58D4R58U]86 + +LCV: FIGURE [0,44][+19R-16L+68QE68QU-4R+8L-52L+56QE4L52QW4L56QE]85 + +LCW: FIGURE [0,44][+17R-14L+66QE10QU4QS56QW4QN56QE52QU52QE4QS46QW4QS52QE +66QU-4L+8R]139 + +LCX: FIGURE [18,44][+16L64QE4L16R64QW4QD56QE4L56QW-8S52D+6R4L32QU-8N+24QU2L +7R]60 + +LCY: FIGURE [19,44][+19L3R64QE-12QU+52QW4QD48QE4QD52QW-96D+4QL2S2D4QR4R3N5W +2QL4L2QS2QD4D2QE2E4QR2R4QN2N104QU4L8R]85 + +LCZ: FIGURE [4,44][+4QD4U42R64QD4QW56QU4L56QD-34U26N+64QD46R6U2D4QD]60 + +PCODQ: FIGURE [15,2]<-32N2R<,57,.GRA + +PCOPQ: FIGURE [32,0][+9L8QS4QD62D4QD-4D+4QE62D4QE8QR9R-11L2W+4QW61U4QW2W8QL4L +1S1E4R8QN2N4QU61U4QU]48 + +PCCLQ: FIGURE [0,0][+9R8QR4QE62D4QE-4D+4QS62D4QD8QS9L-11R2N+4QU61U4QU2N8QN4R1E +1S4L8QL2W4QW61U4QW]48 + +PCNUM: FIGURE [31,0][+100D52D-50R+100U52U-33D1E+16QN4D94QS4U78QN4U20QN12D +102QS12U82QN-58D+16QN4D94QS4U78QN4U20QN12D102QS12U82QN]118 + +PCBLOB: FIGURE [0,0][+108D64R108U64L4E100D4R100U4R100D4R100U4R100D4R100U4R100D +4R100U4R100D4R100U4R100D4R100U4R100D4R100U4R100D]80 + +END +  ð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒ \ No newline at end of file diff --git a/src/prs/plot.83 b/src/prs/plot.83 new file mode 100644 index 00000000..dad9c70c --- /dev/null +++ b/src/prs/plot.83 @@ -0,0 +1,3009 @@ +TITLE PLOT 83 700611 1908 + +RELOCA + +A=1 +B=2 +C=3 +D=4 +E=5 +F=6 +G=7 +H=10 +P=11 +I=12 +J=13 +K=14 +L"=15 +M=16 +N=17 + + +VI==40 +IV==20 +RT==1 ;+X +LT==2 ;-X +UP==10 ;-Y +DN==4 ;+Y + +MAXNP"==10. + +DEFINE FIX U/V + MULI U,400 + TSC U,U + ASH U+1,-243(U) +TERMIN + +DEFINE FLOAT U/V + PUSH P,U+1 + IDIVI U,400000 + SKIPE U + TLC U,254000 + TLC U+1,233000 + FAD U,U+1 + POP P,U+1 +TERMIN + +DEFINE DBP7 X + ADD X,[7_30.] + SKIPGE X + ADD X,[-<43_30.>-1] +TERMIN + +;DESTIN X IN A, Y IN M, FIG PTR IN E + +PLOTGO: HLRE B,(E) + ASH B,11. + MUL B,FGSCAL + ADD A,B + HRRE B,(E) + ASH B,11. + MUL B,FGSCAL + AOS E + ADD M,B +PLOTG0: MOVEM A,PLX' ;HERE IF NO FIG PTR + MOVEM M,PLY' + ADD A,PLINC + ADD M,PLINC + MUL A,PLSCAL + MUL M,PLSCAL +PLOTG8: SKIPGE PLOWS" + JRST PLAOG +PLAOG9: SUB A,PLXPOS' + SUB M,PLYPOS' + JUMPN A,PLOTG9 + JUMPE M,CPOPJ +PLOTG9: PUSHJ P,PLINV + MOVEI C,RT+DN + JUMPGE A,PLOTG1 + XORI C,RT+LT + MOVMS A +PLOTG1: JUMPGE M,PLOTG2 + XORI C,UP+DN + MOVMS M +PLOTG2: CAMG A,M + JRST PLOTG3 + EXCH A,M + SKIPA B,[UP+DN] +PLOTG3: MOVEI B,RT+LT + SUB M,A + PUSHJ P,PLINE9 + MOVE A,M + TDZ C,B + JRST PLINE9 +PLINE: ADD A,PLINC + MUL A,PLSCAL +PLINE9: SKIPN PLOWS" + POPJ P, + SKIPG PLOWS" + JRST PLAOL + MOVEM C,PLINEC' +PLINE0: SETOM PLINED' +PLINE1: JUMPE A,CPOPJ + PUSHJ P,PLOINT + EXCH C,PLINEC + SOSN PLINED + JRST PDLN1 + SOJA A,PLINE1 + +PLINV: SKIPA C,[IV] +PLVIS: MOVEI C,VI + CAMN C,PLINVS' + POPJ P, + MOVEM C,PLINVS + SKIPN PLOWS" + POPJ P, + SKIPG PLOWS + JRST PLAOV +PLOINT: IDPB C,D + TRNE C,RT + AOS PLXPOS + TRNE C,LT + SOS PLXPOS + TRNE C,UP + SOS PLYPOS + TRNE C,DN + AOS PLYPOS + TLNE D,760000 +CPOPJ: POPJ P, + SKIPN PLOWS + JRST PLBLT + PUSH P,A + MOVE A,PLOWD' + PUSHJ P,.UWR" + JRST TUFLUK" + POP P,A +PLBLT: SETZM PLOWD + MOVE D,[440700,,PLOWD] + POPJ P, + + +PDLINE: ADD A,PLINC + MUL A,PLSCAL + SKIPN PLOWS + POPJ P, + SKIPG PLOWS + JRST PLAOD + MOVEM C,PDLNC' + MOVEM C,PLINEC' + MOVEI B,1 + MOVEM B,PDLNB' +PDLN1: MOVEI B,10. + MOVEM B,PLINED + MOVEI C,VI+IV + XORB C,PDLNB + PUSHJ P,PLOINT + MOVE C,PDLNC + SOJA A,PLINE1 + +PLOTSS: MOVE A,PLOWS + MOVE A,PLOTXT(A)+1 + MOVEM A,MAXH' + MOVE A,PLOWS + MOVE A,@PLOTST(A)+1 + MOVE A,SCRSIZ" + ASH A,19. + MOVEM A,PLSCAL + MOVSI B,200000 + IDIV B,A + ADDI B,1 + MOVEM B,PLINC + MOVSI A,100000 ;1/4 + MOVEM A,FGSCAL + POPJ P, + +PLSCAL: (140) +FGSCAL: (100000) +PLINC: 1253 + +PLOTST: ARDSIZ" + SCRSIZ" + SCRSIZ" + +PLOTXT: 2200. + 2100. + 2100. + +PLAOV: PUSH P,B + MOVEI B,1 + CAIN C,VI + MOVEI B,0 + DPB B,[240100,,.PLOTW] + POP P,B + POPJ P, + +PLAOG: CAML A,PLAOGL + JRST PLAOG9 + MOVEM A,PLXPOS + MOVEM M,PLYPOS + MOVNS M + ADD A,PLAOGA + ADD M,PLAOGM + SETZB B,C + SKIPGE A + MOVEI B,1 + SKIPGE M + MOVEI C,1 +PLAOG1: MOVMS A + MOVMS M + DPB B,[260100,,%PLOTW] + DPB C,[100100,,%PLOTW] + LDB B,[50500,,A] + LDB C,[50500,,M] +PLAOG2: DPB A,[270500,,%PLOTW] + DPB B,[170500,,%PLOTW] + DPB M,[110500,,%PLOTW] + DPB C,[10500,,%PLOTW] + MOVEI A,%PLOTW +PLAOG3: PUSHJ P,TOACS" + JFCL + POPJ P, + +PLAOGA: -540. +PLAOGM: +707. +PLAOGL: 2000+540. + PLAOD: SETZM PLAODV' + SKIPA +PLAOL: SETOM PLAODV + JUMPE A,CPOPJ + PUSH P,I + PUSH P,J + MOVEI I,1 + AOS J,PLAODV + DPB J,[60100,,.PLOTW] ;DOTTED + MOVEI J,0 +PLAOL1: TRNE C,RT + DPB J,[260100,,.PLOTW] ;X DIR + TRNE C,LT + DPB I,[260100,,.PLOTW] + TRNE C,UP + DPB J,[100100,,.PLOTW] ;Y DIR + TRNE C,DN + DPB I,[100100,,.PLOTW] +PLAOL2: TRNE C,RT + ADDM A,PLXPOS + TRNE C,DN + ADDM A,PLYPOS + MOVNS A + TRNE C,LT + ADDM A,PLXPOS + TRNE C,UP + ADDM A,PLYPOS + MOVNS A +PLAOL3: SETZM PLAOLA' + CAIGE A,2000 + JRST PLAOL9 + SUBI A,1777 + MOVEM A,PLAOLA + MOVEI A,1777 +PLAOL9: LDB I,[50500,,A] + TRNE C,RT+LT + DPB I,[170500,,.PLOTW] + TRNE C,RT+LT + DPB A,[270500,,.PLOTW] + TRNN C,RT+LT + DPB J,[170500,,.PLOTW] + TRNN C,RT+LT + DPB J,[270500,,.PLOTW] + TRNE C,UP+DN +PLAOL4: DPB I,[10500,,.PLOTW] + TRNE C,UP+DN + DPB A,[110500,,.PLOTW] + TRNN C,UP+DN + DPB J,[10500,,.PLOTW] + TRNN C,UP+DN + DPB J,[110500,,.PLOTW] + MOVEI A,.PLOTW + PUSHJ P,TOACS" + JFCL + SKIPE A,PLAOLA + JRST PLAOL3 + POP P,J + POP P,I + POPJ P, + +PLFIG: PUSH P,E + HRLI E,441400 +PLFIG0: ILDB B,E + LDB A,[700,,B] + JUMPE A,PLFIG1 + TRNE B,200 + PUSHJ P,PLINV + TRZN B,200 + PUSHJ P,PLVIS + LDB C,[100400,,B] + ASH A,9+2 + MOVE M,A + XCT PLXI(C) + XCT PLYI(C) + MUL A,FGSCAL + MUL M,FGSCAL + ADDB A,PLX' + ADDB M,PLY' + PUSHJ P,PJ + JRST PLFIG0 + +PLFIG1: TRNE B,200 + JRST PLFIG2 + MOVE C,(P) + ILDB A,E + SUB C,A + PUSH P,E + MOVE E,C + PUSHJ P,PLFIG + POP P,E + JRST PLFIG0 + +PLFIG2: MOVE A,1(E) + ASH A,2 + MUL A,FGSCAL + MOVE B,2(E) + ASH B,2 + MUL B,FGSCAL + POP P,C + POPJ P, + +PLXI: MOVEI A,0 + JFCL + JFCL + JFCL + MOVNS A + MOVNS A + MOVEI A,0 + MOVNS A + + ASH A,-1 + JFCL + ASH A,-1 + JFCL + MUL A,[(600000)] + MOVNS A + MUL A,[(600000)] + MOVNS A + +PLYI: MOVNS M + MOVNS M + JFCL + MOVEI M,0 + MOVNS M + MOVEI M,0 + JFCL + JFCL + + MOVNS M + MUL M,[(600000)] + JFCL + ASH M,-1 + MOVNS M + MUL M,[(600000)] + JFCL + ASH M,-1 + +PLGTS: SKIPA M,STAFFN(G) +PLGTP: MOVEI M,(G) + MOVE M,STAFFL(M) + ADD M,PLGTSO + POPJ P, + +PLGTSO: 660000 +PLGTSP: 120000 ;FOR MEASURE #S + +;ONE END (0) IN A,M; OTHER (1) IN B,N + +PFS: PUSH P,B ;(1) + PUSH P,N + ADD A,PLINC + ADD M,PLINC + MUL A,PLSCAL + MUL M,PLSCAL + EXCH M,(P) ;(0) + EXCH A,-1(P) + ADD A,PLINC + ADD M,PLINC + MUL A,PLSCAL + MUL M,PLSCAL + PUSH P,A ;(1) + PUSH P,M + SUB A,PLXPOS + SUB M,PLYPOS + MOVM B,A + MOVMS M + CAMGE B,M + MOVE B,M ;(1) + MOVE M,-2(P) + MOVE A,-3(P) + SUB A,PLXPOS + SUB M,PLYPOS + MOVMS A + MOVMS M + CAMGE A,M + MOVE A,M ;(0) + CAML A,B + JRST PFS1 + MOVE A,(P) + EXCH A,-2(P) + MOVEM A,(P) + MOVE A,-1(P) + EXCH A,-3(P) + MOVEM A,-1(P) + +PFS1: POP P,M ;NEARER END + POP P,A + SUBM M,(P) + SUBM A,-1(P) + PUSHJ P,PLOTG8 + SETZM PJF' + POP P,M + POP P,A +PJ0: SKIPGE PLOWS" + JRST PJA + MOVEI B,RT + MOVEI C,DN + SKIPL A + MOVEI B,LT + SKIPL M + MOVEI C,UP + MOVMS A + MOVMS M + CAMGE A,M + EXCH B,C + MOVEM B,PFSD1' + MOVEM C,PFSD2' + CAML A,M + EXCH A,M + JUMPE M,CPOPJ + ASH A,17. + IDIV A,M + MOVEI B,0 + SKIPL PJF' + PUSHJ P,PLVIS +PFS2: ADD B,A + MOVE C,PFSD1 + CAIL B,200000 + IOR C,PFSD2 + CAIL B,200000 + SUBI B,400000 + PUSHJ P,PLOINT + SOJG M,PFS2 + POPJ P, + +PJ: ADD A,PLINC + ADD M,PLINC + MUL A,PLSCAL + MUL M,PLSCAL + SUB A,PLXPOS + SUB M,PLYPOS + MOVNS A + MOVNS M + SETOM PJF + JRST PJ0 + +PJA: MOVEI B,1 + MOVEI C,0 + DPB C,[60100,,.PLOTW] + SKIPL A + DPB B,[260100,,.PLOTW] + SKIPGE A + DPB C,[260100,,.PLOTW] + SKIPL M +PJA01: DPB C,[100100,,.PLOTW] + SKIPGE M + DPB B,[100100,,.PLOTW] + MOVNS A + MOVNS M + ADDM A,PLXPOS + ADDM M,PLYPOS + MOVMS A + MOVMS M +PJA02: SKIPL PJF + PUSHJ P,PLVIS +PJA08: SETZM PJA0A' + SETZM PJA0M' + CAIGE A,2000 + JRST PJA03 + SUBI A,1777 + MOVEM A,PJA0A + MOVEI A,1777 +PJA03: CAIGE M,2000 + JRST PJA04 + SUBI M,1777 + MOVEM M,PJA0M + MOVEI M,17 +PJA04: LDB B,[50500,,A] + LDB C,[50500,,M] + DPB B,[170500,,.PLOTW] + DPB A,[270500,,.PLOTW] + DPB C,[10500,,.PLOTW] + DPB M,[110500,,.PLOTW] + MOVEI A,.PLOTW + PUSHJ P,TOACS" + JFCL + MOVE M,PJA0M + SKIPN A,PJA0A + SKIPE M + JRST PJA08 + POPJ P, + +.PLOT": HRRM J,PLOT1V + AOS PLOT1V + MOVEM J,PLOX' + MOVEM L,PLOTIP' + MOVEM M,PLOTX0' + SETZM PLOTX1' + MOVEM N,PLOTX2' + MOVE A,FREP" + MOVEM A,PLFREP' + MOVEI J,0 + PUSHJ P,PLBLT + SETZM PLINVS' + SKIPG PLOWS + JRST .PLOT1 + MOVEI A,(SIXBIT /PLT/) + PUSHJ P,FILEST" + JRST SSSB" + PUSHJ P,OPNWR" + JRST PLONOP +.PLOT1: SKIPL PLOWS + JRST .PLOT2 + MOVEI A,4 + PUSHJ P,TYOOPN" + MOVEI A,.PLOTT + PUSHJ P,TOACS" + JFCL + MOVE A,[172010,,040200] + MOVEM A,.PLOTW + MOVE A,[166014,,040200] + MOVEM A,%PLOTW +.PLOT2: SETZM PLXPOS + SETZM PLYPOS + PUSHJ P,PLOTSS + MOVSI K,-MAXNP + SETZM TEXP(K) + SETZM TEXT(K) + AOBJN K,.-2 + + MOVSI K,-1 + MOVE B,K +PLOT1: ADD K,[1200000] ;STAFF+SPACE + ADD B,[1200000] +PLOT1V: HRRZ L,(J) ;ADDR IS BEG OF HEADER TABLE + SOJL L,PLOT2 + MOVE B,K + ADD L,PLOX + MOVEM L,MEAS(J) + ADDI L,1 +PLOT12: SKIPN M,(L) + AOJA J,PLOT1 + LDB N,[311300,,M] + CAIE N,4 + AOJA L,PLOT12 + ADDI K,600000 ;FOR TEXT + HRRZM L,TEXP(J) + HRLI M,440700 + MOVEM M,TEXT(J) + AOJA J,PLOT1 + +.PLOTT: .BYTE 7 + 014 + 0 + .BYTE + +.PLOTW: 0 + 0 +%PLOTW: 0 + 0 + +PLOT2: MOVEM J,PLNLI' + CAILE J,MAXNP + JRST PLONOR + MOVEM K,PLOT1H' + MOVEM B,PLOT1B' + MOVSI A,-MAXNP +PLOT2A: HLLOS PLWSNO(A) + SETZM PELEG(A) + SETZM PLCKS(A) + SETZM PLFKS(A) + SETZM PLCTS(A) + SETZM PLFTS(A) + SETZM TEMPF(A) + SETZM PLLASN(A) + SETZM PLSLN(A) + SETZM PLWT(A) + SETOM UNDERL(A) + SETOM PLTRIH(A) + SETOM POSHH(A) + MOVE C,STAFFN(A) + MOVEM A,STAFPN(C) + AOBJN A,PLOT2A + MOVEI B,0 + MOVSI A,-MAXNP +PLOT2B: MOVE C,STAFPN(A) + MOVEM B,STAFFL(C) + ADD B,[1200000] + SKIPE TEXP(C) + ADDI B,600000 + AOBJN A,PLOT2B + MUL K,PLSCAL + CAMG K,MAXH + JRST PLOTI + SKIPA B,[440700,,[ASCII ./DOESN'T FIT VERTICALLY\.]] +PLONOP: MOVE B,[440700,,[ASCII ./PLOTTER NOT AVAILABLE\.]] + JRST DEATH" + +PLONOR: MOVE B,[440700,,[ASCII ./TOO MANY VOICES\.]] + JRST DEATH" + +PLOTI: SETZB A,PLOTIW' + SETZM PLOTSJ' + SETZM PLOTIL' + SETZM PLOTIQ' + SETZM PLARAQ' +PLOTI0: MOVE J,PLOTIP + MOVEI B,660000 + JUMPE J,PLOST + MOVSI B,200000 ;1/2 + MOVEM B,FGSCAL + HRLI J,700 +PLOTI1: MOVEI M,40000 +PLOTI2: ILDB K,J + CAIN K,40 + JRST PLOTI3 + CAIN K,"\ + JRST PLOST0 + CAIN K,"" + SETCMB B,PLOTIQ + CAIN K,"" + MOVE K,PLOTIR(B) + CAIE K,136 ;UMLAUT + JRST PLOTI4 + MOVE A,PLOTSJ + MOVE B,PLOTIL + CAIE B,141 ;L.C. A + CAIN B,157 ;L.C. O + ADDI M,54000 + CAIN B,165 ;L.C. U + ADDI M,54000 +PLOTI4: MOVEM K,PLOTIL + MOVE B,PLOTIW + MOVEM B,PLOTSJ + MOVE E,PLOTCT"(K) + JUMPE E,PLOTI2 + PUSHJ P,PLOTGO + PUSHJ P,PLFIG + ADDB A,PLOTIW' + JRST PLOTI1 + +PLOTI3: MOVE A,EMWID" + ADDB A,PLOTIW + JRST PLOTI1 + + 200 +PLOTIR: "" + +PLOST0: PUSHJ P,PLOTSS + MOVE B,[1320000] +PLOST: MOVEM B,PLGTSO + SUBI B,540000 + MOVEM B,PLGTSP + SKIPN PLNLI + JRST PLCLO + SETZM PLOTIU' + SETZM PLOTIV' + SKIPN PLOTX0 + TDZA A,A + MOVEI A,100000 + MOVEM A,PLOTIW' + MOVE M,PLGTSO + PUSHJ P,PLOTG0 + PUSHJ P,PLVIS + MOVEI C,DN + MOVE A,PLOT1B + SUB A,[(1)] + PUSHJ P,PLINE + MOVE G,PLNLI +PLOST1: HRLI A,PLWTZ + HRR A,PLWTA(G)-1 + MOVEI B,52(A) + BLT A,(B) + SOJG G,PLOST1 + JRST PLOPP + +;FOR EACH "INSTANT" + +PLOOP9: MOVE G,PLNLI + MOVE B,PLOOPD + HRLOI A,377777 +PLOOP1: CAML B,MSTM(G)-1 + JRST PLUP2 + CAMLE A,MSTM(G)-1 + MOVE A,MSTM(G)-1 +PLUP2: CAML B,RSTM(G)-1 + JRST PLOOP5 + CAMLE A,RSTM(G)-1 + MOVE A,RSTM(G)-1 +PLOOP5: SOJG G,PLOOP1 + CAMG A,[-100] + JRST PLONM + MOVEM A,PLOOPB' + SKIPL PLCLS + MOVEM A,PLOOPD + SKIPL PLCLS + JRST PLOP20 + EXCH A,PLOOPA' + MOVEM A,PLOOPC' + MOVE A,PLOTIS' + MOVEM A,PLOTWW' + JRST PLOOP2 + +PLOP20: SETOM PLWLI' + SETOM PLWLS' + MOVE A,PLOOPB +PLOP21: CAME A,MSTM(G) + CAMN A,RSTM(G) + JRST PLOP22 +PLOP24: ADDI G,1 + CAMGE G,PLNLI + JRST PLOP21 + MOVEI G,0 + SETCMB B,PLWLI + JUMPE B,PLOP21 + JRST PLOOP2 + +PLOP22: SKIPL PLWLI + JRST PLOP23 + MOVE B,PLW(G) + CAMLE B,PLWLS + MOVEM B,PLWLS + JRST PLOP24 + +PLOP23: MOVE B,PLWLS + MOVEM B,PLW(G) + JRST PLOP24 + +;FOR EACH VOICE + +PLOOP2: MOVE A,MSTM(G) + CAMN A,PLOOPB + JRST PLOOP6 + SKIPL A,RSTM(G) + CAME A,PLOOPB + JRST PLOP4A + SKIPGE PLCLS + JRST PLOOP4 +PLOC: SETOM PLRIND' + MOVE C,RESTW(G) + PUSHJ P,PLOB + JRST PLOC1 + MOVEM C,PLREST' + MOVEM A,RSTM(G) + PUSHJ P,GCDD" + CAIG I,100 + CAILE J,37 + JRST 4,.+1 + DPB I,[310600,,RESTW(G)] + DPB J,[370500,,RESTW(G)] + JRST PLOC2 + +PLOC1: LDB I,[310600,,RESTW(G)] + LDB J,[370500,,RESTW(G)] + SETOM RSTM(G) + SETZM PLREST' + SKIPN I + MOVEI I,100 +PLOC2: MOVEM I,PLUS1D' + SETZM PLUS1Y' + MOVEI A,1 + MOVEM A,PLUS1X' + MOVEM A,PLUS1U' + JRST PLOOP7 + +PLOP4A: SKIPGE MSTM(G) + SKIPL RSTM(G) + AOJA G,PLOOP3 +PLOOP4: SKIPN K,PLICI(G) + AOJA G,PLOOP3 + JRST PLOOP8 + +PLOB: MOVEM C,PLOBAR' + PUSH P,D + SETZB M,PLOBR' + LDB C,[60700,,PLCTS(G)] ;NUM + MOVEM C,PLOBJ' + MOVEM C,PLOBK' + CAIGE C,2 + JRST PDPOPJ + LDB D,[600,,PLCTS(G)] ;DEN + SKIPN D + MOVEI D,100 + MOVEM D,PLOBI' + LDB A,[370500,,PLOBAR] ;HOW LONG NUM + LDB B,[210100,,PLOBAR] + DPB B,[50100,,A] + MOVEM A,PLOB0R' + LDB B,[310600,,PLOBAR] ;HOW LONG DEN + SKIPN B + MOVEI B,100 + MOVEM B,PLOBQ' +PLOB0: LDB J,[60700,,PLOBAR] ;WHERE NUM + MOVEM J,PLOBA' + LDB I,[600,,PLOBAR] ;WHERE DEN + SKIPN I + MOVEI I,100 + MOVEM I,PLOBB' + PUSHJ P,PLOD + JRST PDPOPJ + MOVE A,PLOB0R + MOVE B,PLOBQ + MOVE J,PLOBA + MOVE I,PLOBB + IMUL A,I + IMUL J,B + IMUL I,B + ADD J,A + MOVEM I,PLOBE' ;END DEN + MOVEM J,PLOBF' ;END NUM + +PLOB1: SOSG J,PLOBJ + JRST PLOB2 + MOVE I,PLOBI ;BEAT LOC => J/I + MOVE A,J + ASH A,14. + IDIV A,I + MOVEM A,PLOBY' + MOVE B,PLOBA + MOVE A,PLOBB ;BEG. OF NOTE => B/A + IMUL A,J + IMUL B,I + SUB A,B +PLOB3: JUMPLE A,PLOB2 ;JUMP IF BEAT NOT AFTER BEG. OF NOTE + MOVEM A,PLOBSA' + MOVE A,PLOBB + IMUL A,I + MOVEM A,PLOBSB' + MOVE A,PLOBE + MOVE B,PLOBF ;END OF NOTE => B/A + IMUL A,J + IMUL B,I + SUB A,B +PLOB4: JUMPGE A,PLOB1 ;JUMP IF BEAT IS NOT BEFORE END OF NOTE + MOVE C,PLOBAR + MOVEM C,PLOBR' ;REMAINING NOTE + PUSH P,I + PUSHJ P,GCDD" + DPB J,[60700,,PLOBR] ;WHERE NUM + DPB I,[600,,PLOBR] ;WHERE DEN + POP P,I + IMUL I,PLOBE + MOVN J,A + PUSHJ P,GCDD" + CAIG I,100 + CAILE J,77 + JRST PLOBN +PLOBN1: DPB J,[370500,,PLOBR] ;HOW LONG NUM + DPB I,[310600,,PLOBR] ;HOW LONG DEN + LDB A,[50100,,J] + DPB A,[210100,,PLOBR] + MOVE A,PLOBY + MOVEM A,PLOBZ' + MOVE C,PLOBK + MOVE D,PLOBI + MOVE J,PLOBA + MOVE I,PLOBB + MOVE A,PLOBSA + MOVE B,PLOBSB + PUSHJ P,PLOD + JRST PLOB2 + AOJA M,PLOB1 + +PLOB2: SKIPN C,PLOBR + JRST PDPOPJ + MOVE J,PLOBSA + MOVE I,PLOBSB + MOVE A,PLOBZ + AOS (P)-1 +PDPOPJ: POP P,D + POPJ P, + +;C/D TIME SIG; A/B NOTE LENGTH; J/I NOTE BEGINNING + +PLOD: TRNE C,1 ;EVEN MEAS + JRST PLOB5A + IMUL C,B + IMUL D,A + ASH D,1 + CAME C,D ;NOTE = HALF MEAS + JRST PLOB6 + JUMPE J,CPOPJ ;AT BEGINNING + MOVE C,A + MOVE D,B + IMUL C,I + IMUL D,J + CAMN C,D + POPJ P, ;AT MIDPOINT + JRST PLOB5 + +PLOB6: MOVE C,PLOBJ + MOVEM C,PLOBC' + IDIVI C,3 + JUMPN D,PLOB5 + MOVE C,A ;COMPOUND MEASURE + MOVE D,B + IMUL C,PLOBI + ASH D,1 + CAME C,D ;NOTE = TWO BEATS + JRST PLOB5 +PLOB6A: MOVNI C,3 + ADDB C,PLOBC + JUMPL C,PLOB5 + IMUL C,I + MOVE D,PLOBI + IMUL D,J + CAMN D,C + POPJ P, ;AT BEGINNING OF 3-GROUP + JRST PLOB6A + +PLOB5: MOVE C,PLOBI + CAIN C,4 + CAMGE C,PLOBJ ;2/4, 3/4 OR 4/4 + JRST PLOB5A + MOVE C,A + MOVE D,B + IMULI C,10 + IMULI D,3 + CAME C,D ;DOTTED QUARTER + JRST PLOB5A + SKIPN C,J + POPJ P, ;AT BEGINNING + ASH C,1 + CAMN C,I + POPJ P, ;AT 1/2 +PLOB5A: AOS (P) + POPJ P, + +PLOOP6: SETZM PLRIND' + SETZM PLICI(G) + SKIPGE PLCLS + JRST PLOP2 + SETZM PLUS1Y' + MOVEI A,1 + MOVEM A,PLUS1X' + MOVEM A,PLUS1U' + LDB I,[310600,,NOTEW(G)] + SKIPN I + MOVEI I,100 + MOVEM I,PLUS1D' + SETZM PLUSFG' +PLUS20: LDB I,[310600,,NOTEW(G)] + LDB J,[370500,,NOTEW(G)] +PLOOP7: SKIPN I + MOVEI I,100 + PUSHJ P,GCDD" + SETZM PL3ND' + MOVE A,I + MOVE B,I + IDIVI B,3 + JUMPN C,PLUP1 + MOVE A,B + ASH A,1 +PLUP1: MOVEI B,-1(A) + AND B,A + JUMPN B,PLOUNN ;DENOM NOT 2^N OR 3*2^N + ASH A,-1 + SKIPE A + AOJA B,.-2 +PLUP5: TRZN J,1 + JRST PLUS1 ;NUMER NOT 1, 3, 7, ... +PLUP7: JUMPE J,PLUP6 + AOS PL3ND' + ASH J,-1 + SOJA B,PLUP5 +PLUP6: MOVEM B,PL3NQ' + MOVEM C,PLTRII' + JUMPN C,PLOP1 + JRST PLOP2 + +PLUS1: LDB A,[60700,,PLCTS(G)] ;BEAT NUM + MOVEM A,PLUS1O' + SOJLE A,PLOUNN ;NO TIME SIG. + LDB A,[600,,PLCTS(G)] ;BEAT DENOM + MOVEM A,PLUS1M' + MOVEM A,PLUS2M' + SKIPE E,PLRIND + MOVEI E,1 + SETOM PLUS1N' + LDB I,[600,,@PLUST1(E)] ;WHERE DEN + SKIPN I + MOVEI I,100 + MOVEM I,PLUS1I' + LDB J,[60700,,@PLUST1(E)] ;WHERE NUM + MOVEM J,PLUS1J' + LDB N,[370500,,@PLUST1(E)] ;HOW LONG NUM + LDB M,[310600,,@PLUST1(E)] ;HOW LONG DEN + SKIPN M + MOVEI M,100 + IMUL J,M + IMUL N,I + IMUL I,M + ADD J,N + PUSHJ P,GCDD" + MOVEM I,PLUS1K' + MOVEM J,PLUS1L' ; L / K IS END OF NOTE + MOVE I,PLUS1I + MOVE J,PLUS1J +PLUS10: AOS N,PLUS1N ;BEAT # + CAML N,PLUS1O + JRST PLUS11 + MOVE M,PLUS1M ;BEAT DENOM + IMUL N,I + IMUL M,J + CAMG N,M + JRST PLUS10 +PLUS11: SOS N,PLUS1N ;(A) + ADDI N,1 + MOVEM N,PLUS1B' ;(B) + MOVE M,PLUS1M + MOVE I,PLUS1K + MOVE J,PLUS1L + IMUL N,I + IMUL M,J + CAMGE N,M + JRST PLUS21 ;BREAK AT B/M + +PLUS12: MOVE A,PLUS1D + IDIVI A,3 + MOVEI A,2 + SKIPN B + MOVEI A,3 + MOVEM A,PLUS1F' ;(F) + MOVE M,PLUS1D + IDIV M,A + MOVEM M,PLUS1D ;(D) + IMULM A,PLUS1U +PLUS13: MOVE N,PLUS1N + MOVE M,PLUS1M + MOVEI J,1 + MOVE I,PLUS2M + IMUL I,PLUS1U + IMUL J,M + IMUL N,I + IMUL I,M + ADD J,N + PUSHJ P,GCDD" + MOVEM I,PLUS1Q' + MOVEM J,PLUS1R' ; R / Q IS CUT POINT + MOVE M,PLUS1K + MOVE N,PLUS1L + IMUL N,I + IMUL M,J + CAMG N,M + JRST PLUS17 ;DIV IS RIGHT OF NOTE +PLUS15: MOVE M,PLUS1I + MOVE N,PLUS1J + IMUL M,J + IMUL N,I + CAMG M,N + JRST PLUS16 ;DIV IS LEFT OF NOTE +PLUS18: SKIPA B,PLUS1R +PLUS21: SKIPA B,PLUS1B + SKIPA A,PLUS1Q + MOVE A,PLUS1M + MOVEM B,PLUS1H' + MOVEM A,PLUS1G' ; H / G IS WHERE SECOND PART BEGINS + +PLUS22: MOVE I,PLUS1I + MOVE J,PLUS1J + IMUL B,I + IMUL J,A + IMUL I,A + SUBM B,J + PUSHJ P,GCDD" + CAIG J,37 + CAILE I,100 + JRST PLOUNN + DPB J,[370500,,@PLUST1(E)] ;HOW LONG NUM + DPB I,[310600,,@PLUST1(E)] ;HOW LONG DEN + LDB A,[150400,,@PLUST1(E)] ;ARTIC + MOVEM A,PLUS1Z' + MOVEI A,1 + DPB A,[200100,,@PLUST1(E)] ;ARTIC _ 3 +PLUS23: MOVE N,PLUS1L + MOVE M,PLUS1K + MOVE A,PLUS1G + MOVE B,PLUS1H + IMUL N,A + IMUL B,M + IMUL M,A + SUB N,B + MOVE I,PLUS1X + MOVE J,PLUS1Y + IMUL J,M + IMUL N,I + IMUL I,M + ADD J,N + PUSHJ P,GCDD" + MOVEM J,PLUS1Y + MOVEM I,PLUS1X + SKIPN E + SETOM PLUSFG + JUMPE E,PLUS20 + LDB I,[310600,,RESTW(G)] + LDB J,[370500,,RESTW(G)] + JRST PLOOP7 + +PLUS16: MOVE A,PLUS1Q + MOVE B,PLUS1R + MOVEM A,PLUS1M + MOVEM B,PLUS1N +PLUS17: JRST PLUS12 + +PLUST1: NOTEW(G) + RESTW(G) + +PLOP1: SKIPN A,TEMPF(G) ;DRAW TRIPLET ARC + JRST PLOP2 + PUSHJ P,PLGTS + SUBI M,220000 + SKIPGE N,PLTRIH(G) + JRST PLOP1A + CAMGE N,M + MOVE M,N +PLOP1A: PUSHJ P,POSHU + SUBI A,24000 + PUSHJ P,PLOTG0 + PUSHJ P,PLVIS + MOVEI C,UP + MOVNI A,40000 + ADDM A,PLY + MOVEI A,40000 + PUSHJ P,PLINE + MOVE A,PLTREN(G) + ADDI A,50000 + SUB A,TEMPF(G) + ASH A,-1 + SUBI A,40000 + ADDM A,PLX + MOVEM A,PLOP1L' + MOVEI C,RT + PUSHJ P,PLINE + MOVEI E,PFTRIP" + PUSHJ P,PLFIG + PUSHJ P,PLVIS + MOVE A,PLOP1L + MOVEI C,RT + PUSHJ P,PLINE + MOVEI C,DN + MOVEI A,40000 + PUSHJ P,PLINE + SETZM TEMPF(G) + SETOM PLTRIH(G) + +PLOP2: SKIPE PLRIND + JRST PLLRR +PLOPA1: LDB K,[220700,,NOTEW(G)] ;PITCH +PLOOP8: SETZM SMPLSW' +SMSCP1: MOVSI L,-52 +PLOP2A: CAMLE K,@PLWTB(G) + AOBJN L,PLOP2A + TLZ L,777777 + MOVEI C,1000 + CAMN K,@PLWTB(G) ;SKIP IF ACCIDENTAL NEEDED + JRST PLOP3 +PLOPA2: MOVEI M,-1(K) + IDIVI M,14 + MOVE A,SMSCT(N) ;UPPER NEIGHBOR + MOVEI M,-3(K) + IDIVI M,14 + MOVE B,SMSCT(N) ;LOWER NEIGHBOR + CAMN B,A + JRST PLOPA6 + ASH A,2 + CAML B,A + JRST PLOP2F ;TAKE UPPER + ASH B,4 + CAML A,B + SOJA L,PLOP2F ;TAKE LOWER +PLOPA6: PUSHJ P,GPNM +PLOPA3: JUMPE A,PLOPA4 + LDB B,[220700,,A] + CAMN B,@PLWTB(G) + SOJA L,PLOP2F ;DON'T STEAL UPPER HOME + SUBI L,1 + CAMN B,@PLWTB(G) + AOJA L,PLOP2F ;DON'T STEAL LOWER HOME + PUSHJ P,GPNM0 + AOJA L,PLOPA3 + +PLOPA4: MOVE C,K + SUB C,PLWTZ(L) + MOVMS C + MOVE B,K + SUB B,PLWTZ(L)-1 + MOVMS B + CAMGE B,C + SOJA L,PLOP2F ;AVOID -- + CAMLE B,C + JRST PLOP2F ;AVOID ++ +PLOPA5: CAMLE K,PLLASN(G) + SOS L + +PLOP2F: SKIPE SMPLSW + POPJ P, + SKIPN PLICI(G) + MOVEM K,@PLWTB(G) ;(L) + MOVE B,K + SUB B,PLWTZ(L) + HRRZ A,PLSLN(G) + TRNE A,10 + CAME K,PLLASN(G) + MOVE C,B +PLOP3: SKIPE SMPLSW + POPJ P, + MOVEM C,PL3AC' ;ACCIDENTAL NUMBER + SETZM PLCLAW' + MOVE I,CCBM(G) + SETOM CCBM(G) + JUMPGE I,PLOP3D + HRRE A,PLWSNO(G) + JUMPL A,PLOP3A ;IF CLEF NEEDED INITIALLY + CAML L,PLSSLT(A) + CAMLE L,PLSSGT(A) + JRST PLOP3A ;IF NEW CLEF NEEDED +PLOP3W: SKIPL N,PLCKS(G) + CAME N,PLFKS(G) + JRST PLOP3E ;IF KEY SIG NEEDED + +PLOP3X: SKIPL A,PLCTS(G) + CAME A,PLFTS(G) + JRST PLOP3M ;IF TIME SIG NEEDED +PLOP3Z: SKIPE PLCLAW + JRST PLOPA1 ;RECOMPUTE PL3AC IF NEW KEY + MOVE A,PLICI(G) + SETZM PLICI(G) + JUMPN A,PLOP4 + HRRE A,PLWSNO(G) + PUSHJ P,PLGTS + MOVE B,PLSSOT(A) + SUB B,L + ASH B,14. ;*40000 + ADD M,B + MOVEM M,PL3ML' + MOVEM L,PL3LL' + SUB L,PLSSBL(A) + MOVEM L,PL3LM' + MOVE E,PL3AC + CAIN E,1000 + JRST PL3ZA +PL3ZC: MOVE B,PLOTBR' + ADD B,STSMSP' + CAMLE B,PLW(G) + MOVEM B,PLW(G) + MOVE B,PLOOPA + JUMPE B,PL3ZB + SUB B,PLOOPC + ASH B,9 + MUL B,STBVC + ADD B,PLOTWW + SUB B,PACWDH"(E) ;ACCID WIDTH+40000 + CAMLE B,PLW(G) + MOVEM B,PLW(G) +PL3ZB: MOVE E,PLACCT"(E) + MOVE A,PLW(G) + PUSHJ P,PLDOIT ;PLOT ACCIDENTAL + MOVEI A,40000 + ADDB A,PLW(G) +PL3ZA: SKIPGE PLCLS + JRST PLOP4 + MOVE A,PLW(G) + MOVEM K,PL3ZAK' + +PLLRR: MOVE B,PLOTBR' + ADD B,STSMSP' + CAMLE B,PLW(G) + MOVEM B,PLW(G) + MOVE B,PLOOPA + JUMPE B,PLLRR1 + SUB B,PLOOPC + ASH B,9 + MUL B,STBVC + ADD B,PLOTWW + CAMLE B,PLW(G) + MOVEM B,PLW(G) +PLLRR1: MOVE A,PLW(G) + MOVEM A,PLOTIS' + SKIPE PLRIND + JRST PLOP2R + SKIPE PLTRII + JRST PLLRR2 + SKIPN TEMPF(G) + MOVEM A,TEMPF(G) +PLLRR2: MOVE L,PL3LM + JUMPL L,PLLLB + SUBI L,13 + JUMPGE L,PLLLB +PLLLR: MOVE M,PL3ML + MOVE C,PL3NQ + MOVE B,PL3LM + MOVE E,PUNOTE"(C) + +PLLLRR: SUBI B,5 + JUMPN B,PLLLR1 + MOVE B,PLSLN(G) + TRNE B,10 + JRST PLLLR1 + PUSHJ P,GPN + JRST PLLLR1 +PLLLR2: LDB A,[220700,,A] ;PITCH + SUB A,K + JUMPN A,PLLLR0 + PUSHJ P,GSN + JRST PLLLR1 + JRST PLLLR2 +PLLLR0: MOVE B,A +PLLLR1: MOVEM B,PLSTUP' ;<0 STEM UP + SKIPL B + MOVE E,PDNOTE"(C) +PLRLR: MOVE A,PLOTIS + PUSHJ P,PLDOIT ;PLOT NOTE OR REST + MOVEM B,PLRLRB' ;HEIGHT + MOVE M,PL3ML + SUBI M,100000 + SKIPGE PLSTUP + SUB M,B + PUSHJ P,PTIBU + MOVE M,PL3ML + ADDI M,100000 + SKIPL PLSTUP + ADD M,B + PUSHJ P,POSHD + SETZM PLARAF' + MOVE A,PLOTIS + SETZM PLOP9F' + MOVEM A,PLOTSI' + MOVEM A,PLOTSJ' + SKIPE PLRIND + PUSHJ P,PLARA7 + SETZM PLOTIL + SKIPE TEXT(G) + SKIPE PLRIND + JRST PLARA + +;HERE FOR TEXT + +PLARA0: CAMGE A,PLWT(G) + MOVE A,PLWT(G) + MOVEM A,PLOTSI + MOVEM A,PLOTSJ + MOVE B,PLUSGF(G) + SETZM PLUSGF(G) + PUSHJ P,PLGTS + ADD M,[1000000] + JUMPN B,PLARA6 + ILDB C,TEXT(G) + CAIG C,15 + CAIGE C,11 + CAIN C,40 + JRST PLARA3 + CAIN C,"\ + JRST PLARA1 + CAIN C,"" + SETCMB B,PLARAQ + CAIN C,"" + MOVE C,PLOTIR(B) + CAIE C,"= + CAIN C,137 ;UNDERLINE + JRST PLARA6 + CAIE C,136 ;UMLAUT + JRST PLARA5 + MOVE A,PLOTSJ + MOVE B,PLOTIL + CAIE B,141 ;L.C. A + CAIN B,157 ;L.C. O + ADDI M,54000 + CAIN B,165 ;L.C. U + ADDI M,54000 +PLARA5: MOVEM C,PLOTIL + MOVE B,PLOTSI + MOVEM B,PLOTSJ + PUSHJ P,PLARA9 +PLARA4: MOVE E,PLOTCT"(C) + JUMPE E,PLARA0 + PUSHJ P,PLOTGO + PUSHJ P,PLFIG + ADDB A,PLOTSI + LDB C,TEXT(G) + CAIN C,"- + JRST PLARAD + SETOM PLARAF + JRST PLARA0 + +PLARA6: SKIPL PLARAF + JRST PLARAU + MOVE B,PLUSFG + MOVEM B,PLUSGF(G) +PLARAC: MOVEM A,UNDERL(G) +PLARAE: MOVE B,TEXT(G) + DBP7 B + MOVEM B,TEXT(G) + JRST PLARA + +PLARAD: MOVE C,TEXT(G) + ILDB B,C + CAIE B,"- + SETOM PLOP9F +PLARAU: SKIPE PLUSFG' + JRST PLARAE + JRST PLARA + +PLARA7: SUBI A,40000 +PLARA9: SKIPGE B,UNDERL(G) + POPJ P, + ADDI B,40000 + PUSH P,A + PUSH P,M + PUSH P,C + SUBI A,330000 + CAMGE A,B + MOVE A,B + ADDI A,170000 + PUSHJ P,PLGTS + ADD M,[1154000] + MOVE N,M + PUSHJ P,PFS + POP P,C + POP P,M + POP P,A + SETOM UNDERL(G) + POPJ P, + +PLARA1: SETZM TEXT(G) +PLARA2: AOS E,TEXP(G) + SKIPN I,(E) + JRST PLARA8 + LDB C,[311300,,I] + CAIE C,4 + JRST PLARA2 + ADD I,PLOX + HRLI I,440700 + MOVEM I,TEXT(G) + JRST PLARA0 + +PLARA8: PUSHJ P,PLARA9 + JRST PLAR + +PLARA3: SKIPN PLARAF + JRST PLARA0 + SKIPE PLUSFG + JRST PLARAC + MOVE A,ENWID" + ADDM A,PLOTSI + SETOM PLOP9F + +PLARA: +PLAR: SETZM PLARSA' + SKIPN A,PLRIND + LDB A,[150400,,NOTEW(G)] ;ARTIC + JUMPL A,PLARZ ;REST + SETOM PLSTVH' + MOVEM A,PLARSA + TRNE A,10 + JRST PLARL ;LEGATO + JRST PLARZ + + +PLPA: AOS E,PLFREP + CAIL E,FREEND" + JRST TUFLUK" + MOVEM A,-1(E) + POPJ P, + +PLAR1: MOVE B,PL3LM ;HERE FOR STACCATO + PUSHJ P,PLGTS + SUBI M,60000 + SKIPGE PLSTUP + ADDI M,540000 + SUBI B,2 + JUMPL B,PLAR2 + SUBI B,6 + JUMPL B,PLAR3 +PLAR2: ASH B,14. ; * 40000 + SUB M,B +PLAR3: MOVEI A,31000 + ADD A,PLOTIS + SKIPGE B,PLSTVH + JRST PLAR4 + SKIPL PLSTUP + SKIPG PLARZQ + JRST PLAR5 + SUBI B,100000 + CAMLE M,B + MOVE M,B +PLAR5: SKIPGE PLSTUP + SKIPL PLARZQ + JRST PLAR4 + ADDI B,100000 + CAMGE M,B + MOVE M,BîPLAR4: MOVEI E,PLDOT" + PUSHJ P,PLOTGO + PUSHJ P,PLFIG + JRST PLARZZ + +PLARL: SETOB K,PELEG(G) ;HERE FOR LEGATO +PLARLE: LDB A,[220700,,NOTEW(G)] ;PITCH + CAME A,PLLASN(G) + JRST PLARE1 + SETOM PLARZW' + PUSH P,K + PUSHJ P,PZSL + POP P,K +PLARE1: MOVEI A,(G) + SKIPGE PLSTUP + TRO A,400000 + LDB B,[220700,,NOTEW(G)] + DPB B,[220700,,A] + PUSHJ P,PLPA ;STUP+PITCH,,LEGATO+PART # + MOVEI A,70000 + ADD A,PLOTIS + PUSHJ P,PLPA ;HORIZ CENTER + MOVE M,PL3ML + SKIPL PLSTUP + JRST PLARL1 +PLARL0: MOVEI N,100000 + ADD N,M + SUB M,PLRLRB + SUBI M,100000 + JRST PLARL2 +PLARL1: MOVE N,PLRLRB + ADD N,M + ADDI N,100000 + SUBI M,100000 +PLARL2: MOVE A,M + PUSHJ P,PLPA ;ABOVE + MOVE A,N + PUSHJ P,PLPA ;BELOW + LDB A,[220700,,NOTEW(G)] + CAME A,PLLASN(G) + JRST PLARE2 + MOVEM K,PLARZW + MOVEI K,0 +PLARE2: JUMPE K,PLARZR + JRST PLARZY + +PLARZ: AOSE K,PELEG(G) + JRST PLARZY + SETZM PLARZW + SKIPL PLRIND + JRST PLARLE +PLARZR: PUSHJ P,PZSL +PLARZY: SKIPE PLRIND + JRST PLARZZ + MOVE A,PLARSA + CAIE A,3 + CAIN A,4 + JRST PLAR1 ;STACCATO + JRST PLARZZ + + + +PZSL: PUSHJ P,PLGTS + ADDI M,200000 + MOVEM M,PLARZC' ;CENTER OF STAFF + HRLOI J,377777 + MOVEM J,PLAZP3' + SETOB J,PLAZP2' + SETOB B,PLAZP7' + SETOB M,PLARZL' + SKIPA I,FREP" +PLARZ8: ADDI I,4 + CAML I,PLFREP + JRST PLARZ9 + MOVE A,(I) + TLZ A,177 + TRZ A,400000 + CAIE A,(G) + JRST PLARZ8 + MOVE M,B + MOVEM I,PLARZL + LDB B,[220700,,(I)] + CAIN J,1 + MOVEM B,PLAZP2 + MOVE A,3(I) + CAIN J,1 + MOVEM A,PLAZP3 + AOJA J,PLARZ8 +PLARZ9: MOVEM M,PLAZP8' + HRLOI M,377777 ;TOP + MOVNI N,1 ;BOTTOM + SETZM PLARZU' + SETZM PLARZD' + SETOB K,PLG0X' + SETZM PLG01' + SETZM PLG02' + SETOM PLARZQ' ;SGN D2M/DA2 + + SKIPA I,FREP" +PLARZ1: ADDI I,4 + CAML I,PLFREP + JRST PLARZ2 + MOVE A,(I) + TLZ A,177 + TRNE A,400000 + MOVEI C,PLARZU + TRZN A,400000 + MOVEI C,PLARZD + CAIE A,(G) + JRST PLARZ1 +PLARZ6: AOS (C) + MOVEM I,PLARZI' + MOVE B,(I) + MOVEM B,PLGXB' + MOVE B,2(I) + CAIE C,PLARZD + CAME I,PLARZL + JRST PLARZ0 + LDB A,[220700,,(I)] + CAMGE B,PLAZP7 + CAML A,PLAZP8 + JRST PLARZ0 + MOVE B,3(I) + SUBI B,200000 + MOVEM B,2(I) +PLARZ0: MOVEM B,PLAZP7 + CAMGE B,M + MOVEM B,M + SKIPL PLG02 + MOVNM B,PLG02 + MOVNM B,PLGP2' + MOVE B,3(I) + CAIE C,PLARZU + SKIPL PLG0X + JRST PLARZ7 + LDB A,[220700,,(I)] + CAMLE B,PLAZP3 + CAMG A,PLAZP2 + JRST PLARZ7 + MOVE B,2(I) + ADDI B,200000 + MOVEM B,3(I) +PLARZ7: CAMLE B,N + MOVEM B,N + SKIPL PLG01 + MOVNM B,PLG01 + MOVNM B,PLGP1' + MOVE B,1(I) + SKIPGE PLG0X + MOVEM B,PLG0X + MOVEM B,PLGPX' + AOJA K,PLARZ1 + +PLARZ2: JUMPL K,CPOPJ + MOVE I,PLARZI + MOVE A,PLG0X + ADD A,PLGPX + ASH A,-1 + MOVEM A,1(I) + MOVE A,PLG02 + ADD A,PLGP2 + ASH A,-1 + ADDI A,100000 + MOVNM A,2(I) + MOVE A,PLG01 + ADD A,PLGP1 + ASH A,-1 + SUBI A,100000 + MOVNM A,3(I) + SKIPG PLARZU ;IF SOME STEMS UP + JRST PLARZ3 ;ABOVE + SKIPG PLARZD ;IF SOME STEMS DOWN + JRST PLARZ4 ;BELOW + SUB M,PLARZC + SUB N,PLARZC + MOVMS M + MOVMS N + CAMGE M,N +PLARZ3: MOVNS PLARZQ +PLARZ4: MOVE E,PLARZQ + MOVE A,@PLGPT(E) ;Y.P + MOVEM A,PLSTVH' + MOVE A,PLFMR + MOVEM A,PLFM + MOVE A,PLGPX + SUB A,PLG0X + MOVEM A,PLGL' + FLOAT A + MOVEM A,PLFL' + FSC A,-1 + MOVEM A,PLFL%2' + FMPR A,A + MOVEM A,PLFL24' + MOVE A,PLFL + FDVR A,PLFM + MOVEM A,PLFL%M' + MOVE A,@PLGPT(E) ;Y.P + SUB A,@PLG0T(E) ;Y.0 + FLOAT A + FDVR A,PLFL + MOVEM A,PLFY%L' + MOVSI A,377777 + MOVEM A,PLFC2' + SETOM PLGAF' + SETOM PLGAW' + + SKIPA I,FREP +PLGA: ADDI I,4 +PLGA1: CAML I,PLFREP + JRST PLGB + MOVE A,(I) + TLZ A,177 + TRZ A,400000 + CAIE A,(G) + JRST PLGA + AOSN PLGAW + JRST PLGA6 +PLGA2: AOS PLGAF + MOVE A,1(I) ;X.I + SUB A,PLG0X ;X.0 + MOVE C,A ;X.I - X.0 + ASH A,1 + SUB A,PLGL + FLOAT A + FSC A,-1 + MOVE B,A ;X'.I + MOVN A,@PLGDT(E) ;Y.I +PLGA3: SUB A,@PLG0T(E) ;Y.0 + FLOAT C + FMPR C,PLFY%L + FLOAT A +PLGA4: FSBRB C,A ;-Y'.I + MOVNM C,PLFYP' + FMPR C,PLFL%M ;-Y'.I * L / M + IMUL C,PLARZQ + FADR C,PLFL24 ;L^2/4 -Y'.I*L/M + FMPR B,B ;X'.I^2 + FSBR C,B ;L^2 - X'.I^2 - Y.I*L/M + FMPR A,A ;Y'.I^2 + MOVE E,A + FADR A,[1.0] ;EPSILON + FDVR C,A ;C.I^2 +PLGA5: CAML C,PLFC2 + JRST PLGA6 + MOVEM C,PLFC2 + FMPR E,PLFNC2 + FADR E,B ;X'.I^2 + C^2*Y'.I^2 + MOVE C,PLFL24 + FSBRM C,E + MOVE C,PLFYP + IMUL C,PLARZQ + FMPR C,PLFL + FDVR C,E + MOVEM C,PLGBMM' + JUMPG C,PLGA6 + MOVE C,PLFL24 + FSBR C,B + FDVR C,A + MOVEM C,PLGBCC' + +PLGA6: HRLI J,4(I) + HRRI J,(I) + MOVNI K,4 + ADDB K,PLFREP + BLT J,-1(K) + MOVE E,PLARZQ + JRST PLGA1 + + +PLGB: SKIPGE PLGAF + JRST PLGBR ;IF ONLY ONE POINT + MOVE A,PLFC2 + CAML A,[0.01] + JRST PLGB0 +PLGB9: MOVE A,PLFNC2 + MOVEM A,PLFC2 + SKIPLE A,PLGBMM + JRST PLGB8 + MOVE A,PLGBCC + MOVEM A,PLFC2 + MOVE A,[1.0^10] +PLGB8: MOVEM A,PLFM +PLGB0: MOVE A,PLFL24 + FDVR A,PLFC2 + MOVE B,PLFC2 + FMPR B,PLFM + MOVEM B,PLFMC2' + FMPR B,B +PLGB2: MOVE C,PLFL24 + FDVR C,B + FAD A,C + PUSHJ P,SQRT" + MOVEM A,PLFR' + MOVE A,PLFL + FDVR A,PLFMC2 + FSC A,-1 + IMUL A,PLARZQ + MOVEM A,PLF%' + MOVE A,PLFC2 + PUSHJ P,SQRT" + MOVEM A,PLFC' + FMPR A,PLFM + PUSHJ P,ATAN" + MOVE B,A + FSBR A,[1.5707963268] + IMUL A,PLARZQ + FADR A,[3.1415926535] + FSC B,1 + FDVR B,PLFN + IMUL B,PLARZQ + MOVEM B,PLFDTH' + MOVEI K,0 + +PLGB1: MOVEM A,PLFT0' + PUSHJ P,COS" + FMPR A,PLFR + FMPR A,PLFC + FADR A,PLFL%2 + MOVE I,A + FIX A +PLGB3: ADD B,PLG0X ;X.0 + MOVEM B,PLGX(K) + MOVE A,PLFT0 + PUSHJ P,SIN" + FMPR A,PLFR + FSBR A,PLF% + FMPR I,PLFY%L + FIX I + FIX A +PLGB4: ADD B,@PLG0T(E) + ADD B,J + MOVNM B,PLGY(K) + MOVE A,PLFT0 + FSBR A,PLFDTH + CAME K,PLGN + AOJA K,PLGB1 + +PLGC: MOVEI L,0 +PLGC0: CAML L,SLURDN" + JRST PLGBR ;ENOUGH LINES DRAWN + MOVE K,PLGCT1(L) +PLGC1: CAMN K,PLGCT2(L) + AOJA L,PLGC0 + MOVE A,PLGX(K) + MOVE B,PLGX(K)+1 + MOVE M,PLGY(K) + MOVE N,PLGY(K)+1 + MOVE C,PLG0NT(L) + IMUL C,PLARZQ + CAME K,L + ADD M,C + CAME K,PLGCNT+1(L) + ADD N,C + PUSHJ P,PTIBU + PUSHJ P,POSHD + EXCH M,N + PUSHJ P,PTIBU + PUSHJ P,POSHD + EXCH M,N + PUSHJ P,PFS + TRNN L,1 + SOJA K,PLGC1 + AOJA K,PLGC1 + +PLGBR: SKIPL PLARZW + POPJ P, + MOVE A,PLGXB + PUSHJ P,PLPA + MOVE A,PLGPX + PUSHJ P,PLPA + MOVN A,PLGP2 + PUSHJ P,PLPA + MOVN A,PLGP1 + PUSHJ P,PLPA + POPJ P, + +PLGCT1: 8 + 1 + 6 + 3 + +PLGCT2: -1 + 8 + 1 + 6 + +PLGCNT: 9 + 8 + 7 + 6 + 5 + +PLG0NT: 0 + -6000 + 6000 + -14000 + + 3(I) +PLGDT: 0 + 2(I) + + PLG01 +PLG0T: 0 + PLG02 + + PLGP1 +PLGPT: 0 + PLGP2 + +PLGX: BLOCK 10. +PLGY: BLOCK 10. +PLFMR: 1.0 +PLFM: 1.0 +PLFN: 9.0 +PLGN: 9 + +PLFNC2: 1.0 + +PLARZZ: MOVE I,PL3ZAK + MOVEM I,PLLASN(G) + MOVE I,PLSTUP + HRRZ I,PLARSA + MOVEM I,PLSLN(G) + MOVE I,PL3ND ;# DOTS + JUMPE I,PLOP9 +PLOP3Y: MOVE A,PLW(G) + SKIPE PLRIND + JRST PLOP3R + MOVE M,PL3ML + HRRE B,PLWSNO(G) + MOVE L,PL3LL + XOR L,PLSSXT(B) + TRNE L,1 + SUBI M,30000 ;ON A LINE +PLOP3S: MOVEI E,PLDOT" + PUSHJ P,PLDOIT + SOJG I,PLOP3Y +PLOP9: MOVE A,PLOTSI + SKIPL PLOP9F + JRST PLOP9A + CAMLE A,PLW(G) + MOVEM A,PLW(G) +PLOP9A: MOVEM A,PLWT(G) + MOVE A,PLW(G) + SKIPN PLTRII + MOVEM A,PLTREN(G) + SKIPN A,PLUS1Y + JRST PLOP4B + SKIPE E,PLRIND + MOVEI E,1 +PLUS3: MOVE A,PLUS1H + MOVE B,PLUS1G + CAIG A,177 + CAILE B,100 + JRST PLOUNN + DPB A,[60700,,@PLUS3U(E)] ;WHERE NUM + DPB B,[600,,@PLUS3U(E)] ;WHERE DEN + ASH A,14. + IDIV A,B + MOVEM A,@PLUS3T(E) + MOVE A,PLUS1Y + MOVE B,PLUS1X +PLUS33: JUMPE E,PLUS31 + SKIPN PLREST + JRST PLUS31 + +PLUS34: LDB I,[310600,,PLREST] + SKIPN I + MOVEI I,100 + LDB J,[370500,,PLREST] + SETZM PLREST + IMUL A,I + IMUL J,B + IMUL I,B + ADD J,A + PUSHJ P,GCDD" + MOVE A,J + MOVE B,I +PLUS31: CAIG A,37 + CAILE B,100 + JRST PLOUNN + DPB A,[370500,,@PLUS3U(E)] ;HOW LONG NUM + DPB B,[310600,,@PLUS3U(E)] ;HOW LONG DEN + MOVE A,PLUS1Z + DPB A,[150400,,@PLUS3U(E)] ;ARTIC +PLOP4B: SKIPE A,PLREST + MOVEM A,RESTW(G) +PLOP4: AOJA G,PLOOP3 + + +PLUS3T: MSTM(G) + RSTM(G) + +PLUS3U: NOTEW(G) + RESTW(G) + +PLOP3R: PUSHJ P,PLGTS + ADDI M,140000 + JRST PLOP3S + +PLOP2R: PUSHJ P,PLGTS + MOVEI N,140000 + ADD N,M + MOVEM N,PL3ML + MOVE C,PL3NQ + MOVE E,PREST"(C) + JRST PLRLR + +PLOOP3: CAMGE G,PLNLI + JRST PLOOP2 + +;ALL PARTS DONE FOR THIS INSTANT; UPDATE X POS + + MOVN A,PLNLI + HRLZS A + MOVE B,A +PLOP5: CAMGE B,PLW(A) + MOVE B,PLW(A) + AOBJN A,PLOP5 + MOVEM B,PLOTIW + SETCMB A,PLCLS + JUMPGE A,PLOOP9 + +;ADVANCE TIME OF ALL VOICES + + MOVEI G,0 +PLOP8T: SKIPL A,MSTM(G) + JRST PLOP8U + SKIPL RSTM(G) + JRST PLOP8 + JRST PLOP7Q + +PLOP8U: CAMLE A,PLOOPA + JRST PLOP8 + LDB I,[310600,,NOTEW(G)] + LDB J,[370500,,NOTEW(G)] ;OLD HOW LONG NUM + SKIPN I + MOVEI I,100 + MOVE A,I + MOVE B,J + LDB I,[600,,NOTEW(G)] ;OLD WHERE DEN + LDB J,[60700,,NOTEW(G)] ;OLD WHERE NUM + SKIPN I + MOVEI I,100 + IMUL B,I + IMUL I,A + IMUL J,A + ADD J,B + PUSHJ P,GCDD + MOVE M,I + MOVE N,J +PLOP6: AOS B,LOCA(G) +PLOP6A: MOVE A,(B) + TLNE A,177 + TLNN A,377600 + JUMPL A,PLOP6 ;TEMPO OR STOP + JUMPE A,PLOP7E ;END OF MEAS + MOVEM A,NOTEW(G) + LDB I,[600,,A] + LDB J,[60700,,A] + SKIPN I + MOVEI I,100 + MOVE A,I + MOVE B,J + IMUL B,M + IMUL A,N + CAMGE A,B + PUSHJ P,PLOIR + MOVE A,NOTEW(G) + PUSHJ P,PLMSTM + MOVEM A,MSTM(G) +PLOP8: ADDI G,1 + CAMGE G,PLNLI + JRST PLOP8T + JRST PLOOP9 + +PLOP7E: SETOM MSTM(G) + LDB I,[600,,PLCTS(G)] + LDB J,[60700,,PLCTS(G)] + JUMPE J,PLOP7Q + SKIPN I + MOVEI I,100 + MOVE A,I + MOVE B,J + IMUL B,M + IMUL A,N + CAMGE A,B + PUSHJ P,PLOIR +PLOP7Q: MOVE N,PLNLI +PLOP7F: SKIPL MSTM(N)-1 + JRST PLOP8 + SKIPL RSTM(N)-1 + JRST PLOP8 + SOJG N,PLOP7F + JRST PLEMD + + + +PLMSTM: LDB B,[600,,A] + SKIPN B + MOVEI B,100 + LDB A,[60700,,A] + ASH A,14. + IDIV A,B + POPJ P, + + + +PLDOIT: PUSHJ P,PLOTGO + PUSHJ P,PLFIG + ADDB A,PLW(G) + POPJ P, + + + +PLLLB: MOVE M,PL3ML ;LEDGER LINES + SKIPGE L + SUBI M,40000 + TRNE L,1 + ADDI M,40000 + ASH L,-1 + SUBI A,23000 + PUSHJ P,PLOTG0 + MOVE E,PLLLBT"(L) + PUSHJ P,PLFIG + JRST PLLLR + +PLOIR: MOVE A,N + ASH A,14. + IDIV A,M + MOVEM A,RSTM(G) + DPB N,[60700,,RESTW(G)] ;WHERE NUM + DPB M,[600,,RESTW(G)] ;WHERE DEN + IMUL N,I + IMUL I,M + IMUL J,M + SUB J,N + PUSHJ P,GCDD + CAIG I,100 + CAILE J,37 + JRST PLOINR +PLUP9: DPB I,[310600,,RESTW(G)] ;HOW LONG DEN + DPB J,[370500,,RESTW(G)] ;HOW LONG NUM + POPJ P, + + + +PLEMD: SKIPGE PLSLVC(G) + JRST PLEMD0 + LDB C,[600,,PLCTS(G)] + LDB B,[60700,,PLCTS(G)] + SKIPN C + MOVEI C,100 + JUMPE B,PLEMD0 + ASH B,14. + IDIV B,C + SUB B,PLOOPA + ASH B,9 + MUL B,STBVC + ADD B,PLOTIS + SUB B,STSMSP + CAMLE B,PLOTIW + MOVEM B,PLOTIW +PLEMD0: MOVE A,PLOTIW + MOVEM A,PLSTED' + AOS B,PLOTX1 + CAMN B,PLOTX2 + ADDI A,100000 + MOVEM A,PLOTIW + MOVEI G,0 + +PLEMD1: MOVE E,STAFPN(G) + SKIPL PLSLVC(E) + JRST PLEMD9 + PUSHJ P,PLGTP + MOVE A,PLSTED + ADD A,PLOTIV + ASH A,-1 + SUBI A,44000 + MOVEI E,RWHOLE" + PUSHJ P,PLOTGO + PUSHJ P,PLFIG +PLEMD9: PUSHJ P,PLGTP + MOVEM M,PLEMDM' + MOVEI J,5 +PLEMD2: MOVE N,M + MOVE A,PLOTIW + MOVE B,PLOTIU + PUSHJ P,PFS ;STAFF LINE + MOVEI M,100000 + ADDB M,PLEMDM + SOJG J,PLEMD2 + ADDI G,1 + CAMGE G,PLNLI + JRST PLEMD1 + SUBI G,1 +PLEMD3: PUSHJ P,PLGTP + MOVE N,M + ADDI N,400000 + MOVE A,PLSTED + MOVEM A,PLOTIU + MOVEM A,PLOTIV + MOVE B,A + PUSHJ P,PFS ;BAR LINE + SOJGE G,PLEMD3 + +PLOPP: SETOM PLOOPA' + SETOM PLOOPD' + SETZM PLOOPC' + MOVE A,PLOTIW + MOVEM A,PLOTBR' + SETOM PLCLS' + MOVE G,PLNLI +PLOPP1: HRL A,PLWTA(G)-1 + HRR A,PLWTB(G)-1 + MOVEI B,52(A) + BLT A,(B) + SOJG G,PLOPP1 +PLOPP2: MOVE N,PLNLI + MOVNI M,1 +PLOP7H: AOS B,MEAS(N)-1 + SKIPN B,(B) + JRST PLOP7S ;END OF VOICE + LDB A,[311300,,B] + CAIL A,3 + JRST PLOP7H ;UNKNOWN OR TEXT FLAG + JUMPN A,PLOP7I + ADD B,PLOX + HRRM B,LOCA(N)-1 + JRST PLOP7K + +PLOP7I: TLZ B,777600 + MOVEM B,@PLOP7T(A)-1 + JRST PLOP7H + +PLOP7T: PLCTS(N)-1 + PLCKS(N)-1 + +PLO7A: MOVE N,PLNLI +PLO7A9: SKIPN TEXT(N)-1 + JRST PLO7A0 + SKIPA M,LOCA(N)-1 +PLO7A1: AOS M,LOCA(N)-1 + MOVE I,(M) + TLNE I,177 + TLNN I,377600 + JUMPL I,PLO7A1 ;NOT A NOTE + JUMPE I,PLO7A0 ;END OF MEAS. + SETZM PLARAF' + MOVE A,TEXT(N)-1 + +PLO7A2: SOS PLARAF +PLO7A5: ILDB C,A + CAIN C,"\ + JRST PLO7A6 + CAIE C,"= + CAIN C,137 ;U.L. + JRST PLO7A3 + MOVEM A,TEXT(N)-1 + CAIN C,"- + JRST PLO7A1 + CAIG C,15 + CAIGE C,11 + CAIN C,40 + AOSN PLARAF + JRST PLO7A2 + JRST PLO7A1 + +PLO7A3: AOSN PLARAF + MOVEM A,TEXT(N)-1 + JRST PLO7A1 + +PLO7A6: SETZM TEXT(N)-1 +PLO7A7: AOS E,TEXP(N)-1 + SKIPN I,(E) + JRST PLO7A0 + LDB C,[311300,,I] + CAIE C,4 + JRST PLO7A7 + ADD I,PLOX + HRLI I,440700 + MOVEM I,TEXT(N)-1 + JRST PLO7A5 + +PLO7A0: SOJG N,PLO7A9 + JRST PLOPP2 + +PLOP7J: AOS B,LOCA(N)-1 +PLOP7K: MOVE A,(B) + TLNE A,177 + TLNN A,377600 + JUMPL A,PLOP7J ;TEMPO OR STOP + JUMPE A,PLOP70 ;SILENT MEASURE + MOVEM A,NOTEW(N)-1 + PUSHJ P,PLMSTM + MOVEM A,MSTM(N)-1 + SETOM RSTM(N)-1 + SETZM PLSLVC(N)-1 + JUMPE A,PLOP7M + SETZM RSTM(N)-1 + LDB I,[600,,NOTEW(N)-1] + SKIPN I + MOVEI I,100 + LDB J,[60700,,NOTEW(N)-1] + PUSHJ P,GCDD + MOVEI M,1 + CAIG I,100 + CAILE J,77 + JRST PLOUNR +PLUP8: DPB I,[310600,,M] + DPB J,[370500,,M] + LDB A,[50100,,J] + DPB A,[210100,,M] + MOVEM M,RESTW(N)-1 +PLOP7M: MOVEI M,0 +PLOP7L: SOJG N,PLOP7H + JUMPL M,PLONM + MOVE A,PLOTX1 + CAMGE A,PLOTX0 + AOS PLOTX1 + CAMGE A,PLOTX0 + JRST PLO7A + JUMPE A,SMSC + CAME A,PLOTX2 + JRST SMSC + JRST PLCLO + + +PLOUNN: JRST 4,PLUP7 +PLOUNR: JRST 4,PLUP8 +PLOINR: JRST 4,PLUP9 +PLOBN: JRST 4,PLOBN1 + +SMSC1: SETZM SMSCNQ' + MOVE A,MEAS(G) + MOVEM A,SMSCMG' + MOVE A,PLOTIW + MOVEM A,PLW(G) + MOVE F,LOCA(G) + MOVEI J,7 +SMSC2: MOVE A,(F) + TLNE A,177 + TLNN A,377600 + JUMPL A,SMSC9 + JUMPE A,SMSC8A + LDB B,[220700,,A] ;PITCH + SKIPN PLICI(G) + MOVEM B,PLICI(G) + SKIPE SMSCNQ + AOJA F,SMSC2 + SUBI B,2 + JUMPLE B,SMSC2A + IDIVI B,14 + AOS SMSCT(C) +SMSC2A: LDB B,[370500,,A] + LDB C,[210100,,A] + DPB C,[50100,,B] + LDB C,[310600,,A] + SKIPN C + MOVEI C,100 + ASH B,7 + IDIV B,C + MOVNI A,1 +SMSC3: ASH B,-1 + SKIPE B + AOJA A,SMSC3 + SKIPGE A + MOVEI A,0 + CAILE A,7 + MOVEI A,7 + CAML A,I + AOJA F,SMSC2 + CAMN A,J + MOVE I,A + CAMGE A,J + MOVE J,A +SMSC9: AOJA F,SMSC2 + +SMSC8A: SKIPE PLICI(G) + JRST SMSCA + SETOM SMSCNQ +SMSC8B: AOS F,SMSCMG + MOVE F,(F) + JUMPE F,SMSC8 + LDB A,[311300,,F] + JUMPN A,SMSC8B + ADD F,PLOX + JRST SMSC2 + +SMSCA: SETOM CCBM(G) + SETOM SMPLSW + HRRE A,PLWSNO(G) + JUMPGE A,SMSCA1 + MOVE K,PLICI(G) + PUSHJ P,SMSCP1 ; K TO L + PUSHJ P,SMSCP0 ; BEST CLEF TO A +SMSCA1: MOVEM A,SMSCAA' + MOVE F,SMSCMG + MOVE F,(F) + ADD F,PLOX + MOVEM F,SMSCAX' +SMSCA2: MOVE B,(F) + TLNE B,177 + TLNN B,377600 + JUMPL B,SMSCA9 + JUMPE B,SMSC8 ;NO CLEF CHANGE + LDB K,[220700,,B] + PUSHJ P,SMSCP1 + MOVE A,SMSCAA + PUSHJ P,SMSCP5 +SMSCA9: AOJA F,SMSCA2 + +SMSCA5: MOVEM F,SMSCAF' + PUSHJ P,SMSCP0 + MOVEM A,SMSCAB' + MOVEM L,SMSCAL' + MOVE F,SMSCAX +SMSCA6: MOVE B,(F) + TLNE B,177 + TLNN B,377600 + JUMPL B,SMSCA8 + LDB K,[220700,,B] + PUSHJ P,SMSCP1 + MOVE A,SMSCAB + PUSHJ P,SMSCP5 +SMSCA8: AOJA F,SMSCA7 + JRST SMSC8 ;CAN'T CHANGE AT BEG. + +SMSCA7: CAMGE F,SMSCAF + JRST SMSCA6 + MOVEM A,CCBM(G) + MOVE L,SMSCAL + MOVEM L,PLICI(G) + JRST SMSC8 + +SMSCP0: SKIPGE A,PRECLE"(G) + JRST SMSC01 + PUSHJ P,SMSCP5 + POPJ P, +SMSC01: MOVEI A,0 + CAML L,PLSSBS(A) + AOJA A,.-1 + POPJ P, + +SMSCP5: CAML L,PLSSLT(A) + CAMLE L,PLSSGT(A) + AOS (P) + POPJ P, + +SMSC: MOVE G,PLNLI + SETZM SMSCT + MOVE A,[SMSCT,,SMSCT+1] + BLT A,PLICI+MAXNP-1 + MOVEI I,10 +SMSC8: SOJGE G,SMSC1 + CAIL I,10 + MOVE I,J + MOVE J,PLNLI + SKIPG TEXT(J)-1 + SOJG J,.-1 + SKIPN M,STBARM + MOVE M,STSCBT(I) + MOVE K,STSCBV(I) + JUMPLE J,SMSC8M + IMULI K,5 + ASH K,-2 + IMULI M,5 + ASH M,-2 +SMSC8M: MOVE B,K + MUL B,SCRSPA" + ADD B,K + MOVEM B,STBVC' + MOVE B,M + MUL B,SCRSPA" + ADD B,M + MOVEM B,STSMSP' + JRST PLSMD + +STSCBV: (202000) + (101000) + (050500) + (031300) + (017700) + (011740) + (006160) + (003704) + +STSCBT: 101000 + 101000 + 121000 + 145400 + 177000 + 237000 + 307000 + 370400 + +STBARM: 0 ;IF NONZERO IS CONSTANT DELTA X FOR 1ST NOTE IN MEAS. + +SMSCT: BLOCK 14 ;PITCH USE +PLICI: BLOCK MAXNP ;PITCH OF 1ST NOTE + +PLSMD: MOVE I,PLOTX1 + CAMN I,PLOTX0 + JRST PLSMD4 + ADDI I,1 + IDIV I,SCRINT" + JUMPN J,PLSMD9 + MOVE I,PLOTX1 +PLSMD4: ADDI I,1 + MOVE A,PLOTBR + ADDI A,160000 + MOVEM A,PLDIGA + MOVE M,PLGTSP + MOVEM M,PLDIGM + MOVSI B,240000 + MULM B,FGSCAL + PUSHJ P,PLOP3P + PUSHJ P,PLOTSS +PLSMD5: MOVE A,PLDIGA + ADDI A,35000 + MOVEM A,PLSMD1' + MOVE B,PLOTBR + ADDI B,100000 + MOVEM B,PLSMD0' + MOVE M,PLGTSO + SUBI M,360000 + MOVE N,M + PUSHJ P,PFS +PLSMD6: MOVEI C,UP + MOVEI A,220000 + PUSHJ P,PLINE + MOVE A,PLSMD1 + MOVE B,PLSMD0 + MOVE M,PLGTSO + SUBI M,600000 + MOVE N,M + PUSHJ P,PFS +PLSMD7: MOVEI C,DN + MOVEI A,220000 + PUSHJ P,PLINE +PLSMD9: JRST PLOOP9 + +PLOP7S: SETOM MSTM(N)-1 + SOS MEAS(N)-1 + JRST PLOP7L + +PLOP70: SETOM PLSLVC(N)-1 + SETOM PLSLVS(N)-1 + SETOM MSTM(N)-1 + SETOM RSTM(N)-1 + JRST PLOP7M + +PLONM: MOVEI G,0 +PLONM1: PUSHJ P,PLGTS + MOVE A,PLOTIW + MOVEI E,PLHBAR" + MOVE B,PLOTX1 + CAME B,PLOTX2 + MOVEI E,PLHBWS" + PUSHJ P,PLOTGO + PUSHJ P,PLFIG + ADDI G,1 + CAMGE G,PLNLI + JRST PLONM1 + +PLCLO: SKIPG PLOWS" + JRST .PLOTR" + HRLZI A,1 + ADD A,PLOTIW + MOVEI M,0 + PUSHJ P,PLOTG0 + MOVE A,PLOWD + PUSHJ P,.UWR" + JRST TUFLUK +PLCLOS: MOVEI C,1 + MOVSI A,(SIXBIT /@/) + PUSHJ P,.FILEB" + JRST TUFLUK + JRST .PLOTR" + + +PLWSNO: BLOCK MAXNP ;CLEF IN USE (RH); IGNORE PART (LH) + +PLSSLT: 0 ;LEAST SPACE TO USE STAFF + 7 + 23 + 32 + 7 + 13 + 15 + 21 + +PLSSGT: 20 ;GREATEST SPACE TO USE STAFF + 27 + 45 ;ANOTHER LINE FOR VIOLINS + 52 + 27 + 33 + 35 + 41 + +PLSSBS: 6 ;UPPER CLEF PREFERRED AT + 25 + 44 + +PLSSOT: 14 ;OFFSET FROM TOP OF STAFF + 23 + 37 + 46 + 23 + 27 + 31 + 35 + +PLSSBL: 3 ;L OF SPACE BELOW STAFF + 12 + 26 + 35 + 12 + 16 + 20 + 24 + +PLSSXT: 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + +GPN: MOVE A,LOCA(G) + MOVEM A,GPLOC' + MOVE A,MEAS(G) + MOVEM A,GPMES' +GSN: AOSA A,GPLOC +GPN3: HRRZM A,GPLOC + MOVE A,(A) + TLNE A,177 + TLNN A,377600 + JUMPL A,GSN + JUMPE A,GPN2 + AOS (P) + POPJ P, + +GPN2: AOS A,GPMES + SKIPN A,(A) + POPJ P, + TLNE A,777600 + JRST GPN2 + ADD A,PLOX + JRST GPN3 + +GPNM: MOVE A,LOCA(G) + MOVEM A,GPLOC +GPNM0: AOS A,GPLOC + MOVE A,(A) + TLNE A,177 + TLNN A,377600 + JUMPL A,GPNM0 + POPJ P, + +PTIBU: SKIPN TEMPF(G) ;IF IN TRIPLET + JRST POSHU + PUSH P,M + SKIPL PLTRIH(G) + CAMGE M,PLTRIH(G) + MOVEM M,PLTRIH(G) + ADDI M,100000 + PUSHJ P,POSHU + POP P,M + POPJ P, + + +POSHD: TDZA C,C +POSHU: MOVEI C,1 + PUSH P,B + HRRZ B,PLWSNO(G) + CAME B,POSHDT(C) + JRST POSHUX + XCT POSHUU(C) + XCT POSHUT(C) + MOVEM M,POSHH(G) +POSHUX: POP P,B + POPJ P, + +POSHDT: 0 + 3 + +POSHUT: CAMLE M,POSHH(G) + CAMGE M,POSHH(G) + +POSHUU: JFCL + SKIPL POSHH(G) + +PLOP3A: SKIPL I,PRECLE"(G) + JRST PL3A1 +PL3A0: MOVEI I,0 + CAML L,PLSSBS(I) + AOJA I,.-1 +PLOP3D: HRRE N,PLWSNO(G) + JUMPL N,PLOP3B + SKIPN PLSSXT(N) + JRST PLOP3B ;NOT ENDING 8VE SHIFT + MOVE A,PLWSW(G) + PUSHJ P,PLGTS + JUMPE N,PLOSH1 + SUBI M,160000 + MOVEI E,PL8VU" + SKIPGE POSHH(G) + JRST PLOP3C + CAMLE M,POSHH(G) + MOVE M,POSHH(G) + SUBI M,40000 +PLOP3C: PUSH P,N + PUSHJ P,PLOTGO + PUSHJ P,PLFIG + MOVE A,PLOTIW + SUB A,PLWSW(G) + MOVEI C,RT + PUSHJ P,PDLINE + MOVEI A,100000 + MOVEI C,DN + SKIPN (P) + MOVEI C,UP + PUSHJ P,PDLINE + POP P,N +PLOP3B: SETOM POSHH(G) + MOVE A,PLOTIW + SKIPE PLSSXT(I) + MOVEM A,PLWSW(G) ;WHERE SHIFT WAS BEGUN + XOR N,I + CAIN N,1 + JRST PLOP3W ;JUST 8VE SHIFT, NO NEW CLEF + MOVEI A,100000 + ADDB A,PLW(G) + PUSHJ P,PLGTS + MOVE E,PLCLEF"(I) + PUSHJ P,PLDOIT + HRRM I,PLWSNO(G) + SKIPL N,PLCKS(G) + CAME N,PLFKS(G) + JRST PLOP3Q + JRST PLOP3X + +PLOSH1: ADDI M,560000 + MOVEI E,PL8VD" + CAMGE M,POSHH(G) + MOVE M,POSHH(G) + ADDI M,40000 + JRST PLOP3C + +PL3A1: CAML L,PLSSLT(I) + CAMLE L,PLSSGT(I) + JRST PL3A0 + JRST PLOP3D + +PLOP3E: MOVE N,PLFKS(G) + JUMPL N,PLOP3Q + MOVEI A,100000 + ADDM A,PLW(G) + MOVEI F,0 +PLOP3L: SETOM PLCLAW + MOVEM N,PL3FKS' +PLOPL1: HRLI A,PLWTZ + HRR A,PLWTA(G) + MOVEI B,52(A) + BLT A,(B) + SETZM PL3ANP' + MOVSI J,-14. +PLOP3F: LDB A,PLFNP(J) + JUMPE A,PLOP3G + CAML J,[-7,,] + MOVMS F + CAML J,[-7,,] + JRST PLOP3H ;ONLY SHARPS LEFT + CAIGE A,3 + JRST PLOP3G + +PLOP3H: MOVE E,PLACCT"(F) + SETOM PL3ANP' + MOVEI A,0 + DPB A,PLFNP(J) + MOVE A,PLW(G) + MOVE N,PLFNO(J) + MOVE B,PLWSNO(G) + ADD N,PLAOFS(B) + XCT PLTLMN(F) + ADDI N,340000 + PUSHJ P,PLGTS + ADD M,N + PUSHJ P,PLDOIT + MOVE L,PLOPAB(J) +PLOP3J: ADDM F,@PLWTA(G) + ADDI L,7 + CAIGE L,53 + JRST PLOP3J +PLOP3G: AOBJN J,PLOP3F +PLOPG1: HRL A,PLWTA(G) + HRR A,PLWTB(G) + MOVEI B,52(A) + BLT A,(B) + MOVEI A,110000 ;SPACE AFTER KEY SIG. + SKIPE PL3ANP + ADDB A,PLW(G) + JUMPN F,PLOP3X +PLOP3Q: MOVNI F,1 + MOVE N,PLCKS(G) + MOVEM N,PLFKS(G) + JRST PLOP3L + + +PLOP3P: IDIVI I,10. + JUMPE I,PLOP3N + PUSH P,J + PUSHJ P,PLOP3P + POP P,J +PLOP3N: MOVE E,PLBN"(J) + MOVE M,PLDIGM + PUSHJ P,PLOTGO + PUSHJ P,PLFIG + ADDB A,PLDIGA + POPJ P, + + +PLAOFS: 100000 + 100000 + 0 + 0 + 100000 + -40000 + 40000 + -100000 + + CAMG N,[-40000] +PLTLMN: CAMG N,[-40000] + PUSHJ P,PLTLM1 + +PLTLM1: CAMLE N,[-40000] + JRST PPOPJ + MOVE M,PLWSNO(G) + CAIL M,2 + CAILE M,3 + POPJ P, + CAMLE N,[-100000] +PPOPJ: AOS (P) + POPJ P, + + +PLOP3M: MOVE B,PLOTBR + ADDI B,60000 + CAMLE B,PLW(G) + MOVEM B,PLW(G) + LDB I,[600,,A] ;DEN + LDB J,[60700,,A] ;NUM + SKIPN I + MOVEI I,100 + MOVEI A,0 + CAIL I,10. + ADDI A,44000 + CAIL I,20. + ADDI A,16000 + CAIL J,100. + SUBI A,44000 + CAIL J,10. + SUBI A,44000 + CAIL J,20. + SUBI A,16000 + MOVNM A,PL3MAO' + SKIPGE A + MOVEI A,0 + ADD A,PLW(G) + PUSHJ P,PLGTS + MOVEM A,PLDIGA' + MOVEM M,PLDIGM' + PUSH P,I + MOVE I,J + PUSHJ P,PLOP3P + POP P,I + MOVEI A,200000 + ADDM A,PLDIGM + SKIPGE A,PL3MAO' + MOVEI A,0 + ADD A,PLW(G) + MOVE B,PLDIGA + MOVEM A,PLDIGA + MOVEM B,PLW(G) + PUSHJ P,PLOP3P + CAMLE A,PLW(G) + MOVEM A,PLW(G) + MOVEI A,60000 + ADDB A,PLW(G) + MOVEM A,PLOTIV + MOVE A,PLCTS(G) + MOVEM A,PLFTS(G) + JRST PLOP3Z + + +PLFNP: 000300,,PL3FKS + 140300,,PL3FKS + 030300,,PL3FKS + 170300,,PL3FKS + 060300,,PL3FKS + 220300,,PL3FKS + 110300,,PL3FKS + + 110300,,PL3FKS + 220300,,PL3FKS + 060300,,PL3FKS + 170300,,PL3FKS + 030300,,PL3FKS + 140300,,PL3FKS + 000300,,PL3FKS + +PLOPAB: 6 + 2 + 5 + 1 + 4 + 0 + 3 + + 3 + 0 + 4 + 1 + 5 + 2 + 6 + +PLFNO: 200000 + 40000 + 240000 + 100000 + 300000 + 140000 + 340000 + + 0 + 140000 + -40000 + 100000 + 240000 + 40000 + 200000 + +PLWTZ: ZZZ==2 + REPEAT 6,[IRPC X,,[2212221] + ZZZ + ZZZ==ZZZ+X + TERMIN + ] + ZZZ + +DEFINE PLMAC1 P,Q + L,,P!Q +TERMIN + +DEFINE PLMAC2 R,S +R!S: BLOCK 53 +TERMIN + +PLWTA: REPEAT MAXNP,PLMAC1 PLWA,\.RPCNT +PLWTB: REPEAT MAXNP,PLMAC1 PLWB,\.RPCNT + REPEAT MAXNP,PLMAC2 PLWA,\.RPCNT + REPEAT MAXNP,PLMAC2 PLWB,\.RPCNT + +PLLASN: BLOCK MAXNP ;PREV PITCH +PLW: BLOCK MAXNP ;HORIZ LOCN +PLWT: BLOCK MAXNP ;HORIZ LOCN OF TEXT (SOMETIMES) +RSTM: BLOCK MAXNP ;TIME WHEN REST OCCURS +PLSLVC: BLOCK MAXNP ;-1 IF SILENT MEASURE +PLSLVS: BLOCK MAXNP ;-1 AT START OF SILENT MEASURE +RDUR: BLOCK MAXNP ;LENGTH OF REST +MSTM: BLOCK MAXNP ;TIME WHEN NOTE OCCURS +LOCA: BLOCK MAXNP ;POINTER TO NOTES +MEAS: BLOCK MAXNP ;POINTER TO MEASURES +TEMPF: BLOCK MAXNP ;BEGINNING X OF TRIPLET +PLLEG: BLOCK MAXNP ;DURATION OF NOTE FOR SPACING +PLTREN: BLOCK MAXNP ;FINAL X OF TRIPLET +NOTEW: BLOCK MAXNP ;CURRENT NOTE +RESTW: BLOCK MAXNP ;CURRENT REST +STAFFN: REPEAT MAXNP,.RPCNT ;PHYS STAFF # +STAFPN: BLOCK MAXNP ;LOG STAFF # +STAFFL: BLOCK MAXNP ;M-COORD OF STAFF TOP +PELEG: BLOCK MAXNP ;SLUR INDICATOR +TEXP: BLOCK MAXNP ;POINTER TO CURRENT TEXT FLAG +TEXT: BLOCK MAXNP ;POINTER (ADVANCED) TO TEXT +UNDERL: BLOCK MAXNP ;WHERE UNDERLINE BEGINS +CCBM: BLOCK MAXNP ;CLEF TO BE PUT AT BEG. OF MEAS. +PLSLN: BLOCK MAXNP ;PLSTUP,,ARTIC OF PREV NOTE +PLUSGF: BLOCK MAXNP ;NON-0 IF SYL TO BE SPLIT +PRECLE": BLOCK MAXNP ;PREFERRED CLEF +PLFTS: BLOCK MAXNP +PLCTS: BLOCK MAXNP +PLFKS: BLOCK MAXNP +PLCKS: BLOCK MAXNP +PLWSW: BLOCK MAXNP ;WHERE 8VE SHIFT BEGAN +PLTRIH: BLOCK MAXNP ;HEIGHT TO CLEAR FOR TRIPLET BRACKET +POSHH: BLOCK MAXNP ;HEIGHT TO CLEAR FOR OCTAVE SHIFT + + +END +  ð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒ \ No newline at end of file diff --git a/src/prs/smoldm.1 b/src/prs/smoldm.1 new file mode 100644 index 00000000..16980053 --- /dev/null +++ b/src/prs/smoldm.1 @@ -0,0 +1,14 @@ +TITLE SMOLDM + +RELOCATABLE + +SMOLGN": POPJ P", + +SMOLTM": ASCII .FOO. + 0 + 0 + +SMOLPT": + +END + aaaÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿáÿÿÿá \ No newline at end of file diff --git a/src/prs/sudsud.9 b/src/prs/sudsud.9 new file mode 100644 index 00000000..025d1de0 --- /dev/null +++ b/src/prs/sudsud.9 @@ -0,0 +1,139 @@ +TITLE SUDSUD 9 700829 2202 + +RELOCA + +A=1 +B=2 +C=3 + +P=11 + +TAPKIL": +UWAIT": POPJ P, + +FILEST": TLNE A,777777 + JRST FILES2 + CAIL A,10 + JRST FILES1 + SKIPN A + TROA A,(SIXBIT /DSK/) + ADDI A,(SIXBIT /UT0/) +FILES1: HRRM A,UB + AOS (P) + POPJ P, + +FILES2: MOVEM A,FILESS + AOS (P) + POPJ P, + +FILESS: 0 + +OPNWR": PUSH P,C + MOVEI C,UWRBB-1 + MOVEM C,UWROP' + SETZM OPNWRV' + HRRZ C,UB + CAIE C,(SIXBIT /PLT/) + CAIN C,(SIXBIT /LPT/) + AOSA OPNWRV + SKIPA C,[5] + MOVEI C,7 + JRST OPNRD1 +OPNRD": PUSH P,C + MOVEI C,4 +OPNRD1: HRLM C,UB + MOVEM A,UB+1 + MOVEM B,UB+2 + DPB C,[270400,,OPN1] + POP P,C + SKIPE FILESS + .SUSET [400016,,FILESS] +OPN1: .OPEN UB + POPJ P, + AOS (P) + POPJ P, + +.URED": .IOT 4,A +PPOPJ: AOS (P) +CPOPJ: POPJ P, + +.UWR": SKIPE OPNWRV + JRST UWR1 + .IOT 5,A + AOS (P) + POPJ P, + +UWR1: PUSH P,B + AOS B,UWROP + MOVEM A,(B) + CAIN B,UWRBE-1 + PUSHJ P,UWR01 +PBPOPJ: POP P,B + JRST PPOPJ + +UWR0: MOVE B,UWROP +UWR01: SUBI B,UWRBB-1 + MOVNS B + HRL B,B + HRRI B,UWRBB + SKIPGE B + .IOT 7,B + MOVEI B,UWRBB-1 + MOVEM B,UWROP + POPJ P, + +.UNRED": .CLOSE 4, + POPJ P, + +FILE": MOVEM A,UB+1 + MOVEM B,UB+2 + MOVEI C,5 + MOVEM C,UB + SETZM UA+1 + .FDELE UA + POPJ P, + AOS (P) + POPJ P, + +.FILEB": PUSHJ P,UWR0 + .CLOSE 7, + .CLOSE 5, + AOS (P) + POPJ P, + +UWRBB: BLOCK 20 +UWRBE: + +TYOOPN": MOVEI B,2 + .SUSET [102,,TYOPV'] + HLRZ A,TYOPV + ANDI A,377777 + CAIN A,1 + JRST TYOP1 + .OPEN 3,[SIXBIT / %T01/] + JRST TYOP3 + MOVEI B,3 +TYOP1: DPB B,[270400,,TYOP2] + POPJ P, + +TYOP3: MOVE B,[440700,,[ASCII ./ARDS NOT AVAILABLE +\.]] + JRST DEATH" + +TOACS": PUSH P,B + TLOA A,440700 +TYOP2: .IOT B ;AC FIELD CLOBBERED + ILDB B,A + CAIE B,3 + JUMPN B,TYOP2 + POP P,B + POPJ P, + +UA: 0 + 0 +UB: 0 + 0 + 0 + +END +  ð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒð0`Áƒ \ No newline at end of file diff --git a/src/syseng/big.160 b/src/syseng/big.160 new file mode 100644 index 00000000..98aca78a --- /dev/null +++ b/src/syseng/big.160 @@ -0,0 +1,3414 @@ +TITLE BIG 144 710928 160139 + +RELOCA + + 6V==0 ;1 = NO PLAYER, USES ONLY T-S PROCESSOR + 32K=0 ;0 = 16K + +APRCHN"==4 +TPCHN"==2 +TPCHNA"==40 +UTCCHN"==3 +PCHCHN"==UTCCHN +NDIR"==3 +NURBUF"==3 +NUWBUF"==3 +BLKSPC"==5 +TTYCHN==7 + +A=1 +TAPAC"=A +B=2 +C=3 +D=4 +E=5 +F=6 +G=7 +H=10 +P"=11 +I=12 +J=13 +K=14 +L"=15 +M=16 +N=17 + +MEMTOP=37777 +IFN 32K,TOP=40000 +IFE 32K,TOP=26400 +IFN 32K,FRETOP=77777 +IFE 32K,FRETOP=37777 + +DEFINE .RD710 A + DATAI 710,A +TERMIN + ;BLOCK LENGTHS + +STRLL==140 ;MAX LENGTH OF INPUT STRING +SLAKLL==100 +COMLL==140 +PDLL==40 +XPDLL==10 +YPDLL==10 +SYTLL==200 +SYMLL==240 +TITLL==40 +NLINES==10 +ALIVEL==30 + +;SYMS LH + +NUMBER==21 +TONUS==22 +ORDFLG==23 +ORDINL==24 +STAR==25 +CREATE==26 +STRUCT==27 +UNSTRU==30 +PARAM==31 +MINUS==32 +MODIFY==33 + MODALL==(MODIFY)0 + MODEXC==(MODIFY)1 + MODPLS==(MODIFY)2 + MODAGN==(MODIFY)3 +ERASER==34 +GOTO==35 +PLAYER==36 +MULTIP==37 +BRAKET==40 +PUNCTU==41 + PUNCCM==(PUNCTU)0 + PUNCCL==(PUNCTU)1 + PUNCSC==(PUNCTU)2 + PUNCTO==(PUNCTU)3 + PUNCFM==(PUNCTU)4 + PUNCSL==(PUNCTU)5 +TRANSL==42 +SCRIB==43 +HARMON==44 +CLEF==45 + +;F FLAGS (RH) + +IGNORF==20 +RETYPF==40 +NONEWF==100 +MINUSF==200 +PREVCF==400 +NOMORF==1000 +PLEASF==2000 +BEGUNF==4000 + +.ZZ.==. +LOC 40 + 0 + JSR UUOH + +LOC .ZZ. + +DEFINE NUMS N1,N2 + ZZZ==. + REPEAT N2-N1+1,N1+.-ZZZ +TERMIN + + JRST SETUP + +SETUPX": MOVE 0,[(20)SAVLOD + BLT 0,SAVLOD+17 + MOVEI A,FREE" + MOVEM A,FREP'" + MOVSI A,-MAXNP" +SETUX0: JUMPGE A,SETUX1 + SETOM PRECLE"(A) + AOBJN A,SETUX0 +SETUX1: SETZM NTAPES' + AOS NTAPES + SETZM TIME' +IFE 6V,[ SETZM PSDATL + MOVE 0,[PSDATL,,PSDATL+1] + BLT 0,HARCDE-1 +] + +SETUP": MOVE P,[(,-PDLL)PDL-1 + .OPEN 2,[SIXBIT / %TTY/] + JRST 4,.-1 + .OPEN 1,[SIXBIT / 4TTY/] + JRST SSSB + .RD710 B, + IDIVI B,60. + MOVE A,[(252525252525)] + MOVEM A,RAND' + FMPM A,RAND + SOJG C,.-1 + MOVEI A,1 + MOVE B,[(600)SYMTAB-1] + +SETUP0: ILDB C,B + JUMPN C,.-1 + ILDB C,B + SKIPE C + AOJA A,SETUP0 + MOVEM A,NSYMS' + MOVNM A,NNSYMS' + MOVEM B,STEND' + SETZM PLAYP' +IFE 6V,[ PUSHJ P,TUNEUP +SETUP1: MOVE P,[(,-PDLL)PDL-1] +] + +REALLY: MOVEI C,"^ + SETZM ALTF' + SETZM BKD' +REALL1: PUSHJ P,TTYOFF + PUSHJ P,CRLF + +RCS: MOVE P,[(,-PDLL)PDL-1 ;GET SET TO GOBBLE CHAR. STRING + MOVEM P,DOP + SETZM BRAKC' + MOVSI H,-STRLL + SKIPE A,ALTF +RCS2: PUSHJ P,ECHO +RCS1: PUSHJ P,TYI ;DISPATCH ON CHAR (JUST PUT IN STRING IF REG.) + CAIN A,177 + JRST RBOUT + CAIN A,4 + JRST REALL1 + CAIN A,"/ + JRST GENAM + CAIN A,"\ + PUSHJ P,RCOMN + CAIE A,33 + CAIN A,175 + MOVEM C,ALTF + CAIN A,"[ + AOS BRAKC + CAIN A,"] + SOS BRAKC + CAIE A,15 + JRST RCS2 + SKIPN BRAKC + JRST RCS3 + PUSHJ P,CRLF +RCSH: MOVSI A,-1 + MOVEM A,STRING(H) + AOBJP H,SST ;STRING TOO LONG + JRST RCS2 + +RCS3: SETZM STRING(H) ;GET HERE WHEN C.R. REALLY MEANS DOIT. + AOBJP H,SST + SETOM STRING(H) ;END MARKER IS -1 + AOBJP H,SST + SETZM STRING(H) + JRST TCS + RBOUT: SETZM STRING(H) +RBT: SOJ H, + CAMG H,[-STRLL,,0] + JRST REALLY + SKIPN A,STRING(H) + JRST RCSH + PUSHJ P,TYO6 + JRST RBT + +LOSE: MOVE B,[440700,,[ASCIZ ./COMMAND STRING LOSES\.]] + PUSHJ P,DOSAY5 + JRST DONE + +UUOH: + 0 + MOVEM ACSAV + MOVE [1,,ACSAV+1] + BLT ACSAV+17 + EXCH P,PSAV + PUSHJ P,CRLF + MOVE B,[440700,,[ASCIZ ./ILLEGAL UUO\.]] + PUSHJ P,DOSAY5 + EXCH P,PSAV + .VALUE +UUOBLM: MOVEI A,SETUPX-1 ;MOBY BLAM + MOVEM A,UUOH +UUOSRT: AOS UUOH +UUORET: MOVE [ACSAV+1,,1] + BLT 17 + MOVE ACSAV + JRST @UUOH + +ACSAV: BLOCK 20 +PSAV: UUOPDL +UUOPDL: BLOCK 20 ;PDL FOR UUO OPS SO AS NOT TO CLOBBER... +TCS: MOVEI F,STRING + MOVSI H,-COMLL + +TCS2: SKIPN (F) ;SIXBIT SPACE IS ZERO + AOJA F,.-1 + MOVE A,(F) + AOJE A,DO ;END OF COMMAND STRING + SKIPGE A + AOJA F,TCS6 + +TCS1: PUSHJ P,SS ;EVALUATE SYMBOL + CAIL A,60 + JRST TCS3 + CAIGE A,30 + JRST SSSA ;CAN'T GET IT + SUB A,2BEST' + CAIGE A,10 + JRST SSSA ;CAN'T GET IT HERE EITHER +TCS4: MOVE A,NBEST' ;THIS IS IT + HRL E,F +TCS7: MOVEM A,COML(H) ;MAKE LIST OF THINGS TO DO + MOVE F,SSBF' + AOBJN H,TCS2 ;GET NEXT SYMBOL + JRST SSS ;WHAT LOSSAGE?? + +TCS3: SUB A,2BEST + CAIGE A,6 + JRST SSSA ;CAN'T GET THIS SYMBOL + MOVE A,2BEST + CAIL A,60 + JRST SSSB + JRST TCS4 + +TCS6: MOVEM F,SSBF + SOJA A,TCS7 + +ECHO1: MOVEI A,40 +ECHO: MOVEI B,-40(A) + JUMPL B,ECHO1 + CAIL B,100 + JRST ECHO1 +ECHO2: MOVEM B,STRING(H) + MOVEI A,40(B) + CAIN A,"^ + SETZM ALTF + AOBJN H,TYO + +SST: PUSHJ P,CRLF +SSS: MOVEI A,"? + PUSHJ P,TYO + JRST REALLY + +GENAM: PUSHJ P,GNAM ;CREATE A NAME BY TRIAL AND ERROR + PUSHJ P,GENAM3 + JRST RCS1 + +GENAM3: MOVSI C,-5 +GENAM2: MOVE E,STEND ;SHOVE IT INTO STRING +GENAM1: MOVE B,SLAK(C) + PUSHJ P,ECHO2 + DPB B,E + IBP E + AOBJN C,GENAM1 + MOVEI A,0 + DPB A,E + IDPB A,E + +NULSYM: SOS NNSYMS + AOS B,NSYMS ;E IS PNTR + CAIL B,SYMLL + JRST SSSB + SETZM SYMS(B) + MOVEI B,(E) + CAIL B,SYTEND-2 + JRST SSSB + MOVEM E,STEND + POPJ P, + + +GNAM: MOVSI C,-5 ;MAKE UP A NAME +GNAM1: XCT RCHT(C) + HRREM B,SLAK(C) + AOBJN C,GNAM1 + SETZM SLAK(C) + MOVEI F,SLAK + PUSHJ P,SS ;ALREADY EXISTS? + CAIL A,20 + JRST GNAM ;AMOST, TRY AGAIN + POPJ P, + + RCHT: PUSHJ P,RCCHAR + PUSHJ P,RVCHAR + PUSHJ P,RCCHAR + PUSHJ P,RVCHAR + PUSHJ P,RCCHAR + +RVCHAR: PUSHJ P,RANDOM + IDIVI A,6 + MOVE A,B + MOVE B,[440600,,RVTAB] + JRST RV1 + +RCCHAR: PUSHJ P,RANDOM + IDIVI A,20. + MOVE A,B + MOVE B,[440600,,RCTAB] +RV1: PUSH P,C + ILDB C,B + SOJGE A,.-1 + MOVE B,C + POP P,C + POPJ P, + + +RVTAB: SIXBIT /AEIOUY/ +RCTAB: SIXBIT /BCDFGHJKLMNPQRSTVWXYZ/ + +SS: CLEARM 2BEST' ;SYMBOL EVALUATOR + CLEARB G,1BEST' + MOVE E,[(600)SYMTAB-1 + ILDB I,E + +SS0: MOVEI B,1(F) + SETOM NCHW' + MOVE A,-1(B) + MOVE A,TYPE(A) + MOVEM A,SSOLDT' + +SS01: AOS NCHW ;FIND END OF SYMBOL (SPACE) + MOVE A,(B) + MOVE A,TYPE(A) + JUMPL A,SS19 + CAMN A,SSOLDT' + AOJA B,SS01 + +SS19: MOVEM B,SSBF ;B HAS END OF SYM +SS10: CLEARB C,D + MOVE B,F ;F HAS BEGINNING OF SYM +SS1: MOVE A,I ;A HAS CURRENT BYTE TO TEST AGAINST. + ILDB I,E + JUMPE A,SS2 ;RAN OUT + ADDI D,1 ;D HAS ITERATION COUNT + CAMN A,(B) ;CHECK CHARACTORS + ADDI C,60 ;INFINITELY SURE THIS IS CHAR + SKIPG NCHW ;CHECK NEARBY CHARS? + JUMPE I,SS12 + CAMN A,-1(B) + ADDI C,37 ;SOMEWHAT PLAUSABLE HE MEANT THIS + CAMN A,1(B) + ADDI C,24 ;PLAUSABLE HE MEANT THIS + SKIPG NCHW + AOJA B,SS1 + CAMN A,-2(B) + ADDI C,14 ;HE MIGHT EVEN MEAN THIS + CAMN A,2(B) + ADDI C,10 ;UNLIKELY, BUT MAYBE THIS +SS12: AOJA B,SS1 + +SS2: SUBI D,1 ;COMPUTE FIRST AND SECOND BEST CHOICES. + SUB D,NCHW + IMUL D,D + ADD D,NCHW + ADDI D,1 + IDIV C,D + CAMG C,1BEST + JRST SS3 + EXCH G,NBEST + EXCH C,1BEST + MOVEM G,N2BEST' + MOVE G,NBEST + MOVEM C,2BEST +SS20: CAME E,STEND + AOJA G,SS10 + MOVE A,1BEST + POPJ P, + +SS3: CAMG C,2BEST + JRST SS20 + MOVEM G,N2BEST + MOVEM C,2BEST + JRST SS20 + + +RCOMN: PUSHJ P,TTYOFF ;GET INFORMATION FROM LOSER + PUSHJ P,CRLF + MOVEI A,"\ + PUSHJ P,TYO + MOVE C,[(10700)SLAK-1] +RCOMN1: PUSHJ P,TYI + CAIN A,177 + JRST RCOMN2 + PUSHJ P,TYO + CAME C,[(10700)SLAK+SLAKLL-1 + IDPB A,C + CAIE A,"\ ;TERMINATOR + JRST RCOMN1 + JRST CRLF + +RCOMN2: CAMN C,[(10700)SLAK-1] ;RUBOUT + JRST RCOMN1 + LDB A,C + PUSHJ P,TYO + ADD C,[7_30.] + SKIPGE C + ADD C,[-<43_30.>-1] + JRST RCOMN1 + +RANNO": +RANDOM: MOVE A,[(252525)252525 + FMPB A,RAND + .RD710 B, + ADD A,B + POPJ P, + + + +GCDD": JUMPE I,CPOPJ + JUMPN J,GCDD1 + MOVEI I,1 + POPJ P, + +GCDD1: PUSH P,A + PUSH P,I + PUSH P,J + MOVE A,I +GCDD2: MOVE I,A + CAMGE I,J + EXCH I,J + MOVE A,J + IDIV I,J + JUMPN J,GCDD2 + POP P,I + IDIV I,A + EXCH I,(P) + IDIV I,A + POP P,J + POP P,A + POPJ P, + DONE": PUSHJ P,TTYOFF + MOVE P,DOP' + SKIPL COML(H) + AOJA H,.-1 + JRST DO1 + +DO: SETOM COML(H) +DO0: SETZB H,F + +DO1: MOVEM P,DOP' + PUSHJ P,DOG + JRST REALLY ;SUPER-CONFUSED + CAMN D,[MODAGN] + JRST DOAG + MOVE A,[COML,,COMSL] + BLT A,COMSL+COMLL-1 ;SAVE STRING JUST IN CASE + SETZM REHASH' + CAMN D,[MODPLS] ;SET TO PLEASE MODE + JRST DOPLSE + HRRZS D + CAIN E,BRAKET + JRST DOBRAK + CAIN E,STAR + JRST DOSTAR + CAIN E,CREATE + JRST DOCREA + CAIN E,TRANSL + JRST DOTRNS + CAIN E,ERASER + JRST DOERZ + CAIN E,PARAM + JRST DOPARM + CAIN E,GOTO + XCT GOTOT(D) + CAIN E,PLAYER + XCT PLTOT(D) + CAIN E,SCRIB + XCT SCRIBT(D) + +DONEXT: AOJE H,DO1 + +DOG: HRRE G,COML(H) + JUMPL G,CPOPJ + SKIPGE COML(H) + AOJA H,DO1A ;END OF STRING MARKER + CAML G,NSYMS + JRST SSSB ;NOT IN SYMBOL TABLE + TRNN F,RETYPF + JRST DO10 + MOVEI A,40 + TRON F,NONEWF + MOVEI A,"\ + PUSHJ P,TYO + MOVE B,[(600)SYMTAB-1 + SOJL G,DO11 + ILDB A,B + JUMPE A,.-2 + JRST .-2 ;LOSSAGE ?? + + PUSHJ P,TYO6 +DO11: ILDB A,B + JUMPN A,.-2 + HRRZ G,COML(H) + DO10: TRNE F,IGNORF + SOJA H,DO1 + HLRZ E,SYMS(G) + MOVE D,SYMS(G) + JRST SPOPJ + +DO1A: POP P,A + JRST DO1 + +DOAG: SETZB I,DOAGWF' +DOAG1: ADDI H,1 + PUSHJ P,DOG + MOVNI E,1 +DOAG3: HRRE A,COMSL(I) + JUMPL A,DOAG2 + HLRZ B,SYMS(A) + JUMPN E,DOAG4 + CAIE B,UNSTRU + CAIN B,STRUCT + JRST DOAG5 +DOAG4: + CAME B,E + AOJA I,DOAG3 +DOAG5: MOVE A,COML(H) + MOVEM A,COMSL(I)î + AOJA I,DOAG1 +DOAG2: MOVE A,[COMSL,,COML] ;RESTORE STRING + BLT A,COML+COMLL-1 + SETOM REHASH' + JRST DO0 + +DOBRAK: JUMPN D,DOBRK1 + AOS BKD + PUSHJ P,NUMVAL + SKIPN A + MOVEI A,1 + PUSH P,H + PUSH P,A + JRST DONEXT + +DOBRK1: SOSLE A,(P) + SKIPA H,-1(P) + SOSGE BKD' + JRST DONEXT + SUB P,[(2)2 + JRST DONEXT + + +GOTOT: JRST TUNEUP + AOJA H,DOVALU + JRST DOTITL + JRST ALLOW + AOJA H,DOTAPE + JRST WRIT + JRST DOLIST + JRST HARBLD + JRST HARAUG + JRST JRSTGO + JRST DETUNE + JRST HARSCL + JRST VOXPT + JRST VOXCD + JRST SCWAV + JRST CLEFP + JRST RELPDP + JRST PLWHOA + JRST SCLBLD + JRST PRINT + JRST SYNN + +PLTOT: JRST PLGOA + JRST PSGOA + +SCRIBT: JRST PLOT + +DOSTAR: CAIN D,2 + JRST DDTGO + TRON F,RETYPF + PUSHJ P,CRLF + CAIN D,1 + TRO F,IGNORF + AOJA H,DO1 + +DOPLSE: TRO F,PLEASF ;HE REALLY WANTS THIS + AOJA H,DO1 + +RELPDP: SETZM PLAYP + .CLOSE 17, + .CLOSE 16, + AOJA H,DO1 + DOCREA: MOVEI B,NUMBER + PUSHJ P,GET + MOVNI A,1 + MOVEM A,J + SKIPL (C) + ADDI C,1 + MOVEI B,NUMBER + PUSHJ P,GET2 + MOVNI A,1 + MOVEM A,DOCRN2' + MOVE K,D +DOCRE0: SETOM PLWN + SETZB G,PLWN+1 + MOVE A,[(PLWN+1)PLWN+2 + BLT A,PLWN+177 + MOVEI B,0 + PUSHJ P,GET + JRST DOCRE1 + HRRZ C,(C) +DOCRE2: MOVEM C,DOTITA' + ADDI C,SYMS + SETZM (C) + HRRM C,STASH + MOVE I,FREP' + XCT DOCRET(K) + JRST DONE + +DOCRE1: MOVEI B,UNSTRU + PUSHJ P,GET + JRST DOCRE3 +DOCRE4: MOVE C,B + PUSH P,C + PUSHJ P,DOERS1 + POP P,C + JRST DOCRE2 + +DOCRE3: MOVEI B,STRUCT + PUSHJ P,GET + JRST BADATA + JRST DOCRE4 + + PUSHJ P,TTSTOU +DOCRET: PUSHJ P,CRRDOL + PUSHJ P,CRUT + PUSHJ P,CRSC + PUSHJ P,CRKY + PUSHJ P,CRRCMP + PUSHJ P,DPLU + PUSHJ P,CRRCMI + + +DOTRNS: MOVEI B,STRUCT + PUSHJ P,GET + JRST BADATA + HRRZM A,TTOX' + ADDI A,1 + HRRM A,TTGET + MOVEI K,-1 + JRST DOCRE0 + +DOERZ: PUSHJ P,@DOERZT(D) + JRST DONE + +DOERZT: DOERAS + DOMENT + +DOERAS: PUSHJ P,DOERA + MOVEM A,FREP + SETZM SYMS(M) + PUSHJ P,DOERS + PUSHJ P,DOERS1 + SETZM TITL + POPJ P, + +DOMENT: PUSHJ P,TTYON + PUSHJ P,DOERA + JFCL + PUSHJ P,DOSAY0 + PUSHJ P,DOSAY + PUSHJ P,DOSAY9 + JFCL + POPJ P, + +CLEFP: MOVEI B,CLEF + PUSHJ P,GET + JRST BADATA + HRREM A,CLEFPA' + MOVEI B,NUMBER + PUSHJ P,GET + JRST BADATA + SKIPLE A + CAILE A,MAXNP" + JRST BADATA + MOVE B,CLEFPA + MOVEM B,PRECLE"(A)-1 + JRST DONE + + +DPLU: PUSH P,DONEW + MOVE B,[440700,,[ASCIZ ./NO EDIT ROUTINES\.]] + JRST DOSAY5 + +PLOT: SETZB M,N + ADDI H,1 + SKIPGE A,COML(H) + JRST DONE + HLRZ B,SYMS(A) + CAIE B,STRUCT + JRST BADATA + HRRZ J,SYMS(A) + HRRZM A,PLOTLS' +PLOTLP: ADDI H,1 + SKIPGE A,COML(H) + SOJA H,PLOTDO + MOVE B,SYMS(A) + CAMN B,[PUNCFM] + JRST PLOTFM + CAME B,[PUNCTO] + SOJA H,PLOTDO + PUSHJ P,NUMVAL + MOVE N,A + JRST PLOTLP + +PLOTFM: PUSHJ P,NUMVAL + SKIPE A + SUBI A,1 + MOVE M,A + JRST PLOTLP + +PLOTDO: SETZB B,L +PLOTW: HLRZ C,TITL(B) + JUMPE C,PLOTY + CAME C,PLOTLS + AOJA B,PLOTW + HRR L,TITL(B) +PLOTY: MOVEM H,PLOTRH' + JRST .PLOT" + +.PLOTR": MOVE H,PLOTRH + JRST PLOT + +DOSAY0: MOVE C,M +DOSAY9: HLRZ B,SYMS(C) + JRST DOSAY1 + +DOSAY: PUSHJ P,GCHEK +DOSAY1: PUSHJ P,CRLF + MOVEI A,40 + CAIN B,STRUCT + MOVEI A,"* + CAIN B,HARMON + MOVEI A,"# + PUSHJ P,TYO + PUSHJ P,DOSAY6 + MOVEI D,0 +DOSAY2: HLRZ A,TITL(D) + JUMPE A,CPOPJ + CAME A,C + AOJA D,DOSAY2 + MOVEI A,40 + PUSHJ P,TYO + HRR B,TITL(D) + HRLI B,700 + +DOSAY5": ILDB A,B + CAIN A,"\ + POPJ P, + PUSHJ P,TYO + JRST DOSAY5 + + +DOSAY6: SETZB A,E + PUSHJ P,TYO6 + MOVE B,[(600)SYMTAB-1 + JUMPE C,DOSAY4 + +DOSAY3: ILDB A,B + JUMPN A,.-1 + CAIE C,1(E) + AOJA E,DOSAY3 + +DOSAY4: ILDB A,B + PUSHJ P,TYO6 + CAIE A,40 + JRST DOSAY4 + POPJ P, + + +DDTGO: SKIPA A,[LOGOUT] +JRSTGO: PUSHJ P,NUMVOC + CAILE A,17 + CAILE A,MEMTOP + JRST BADATA + PUSHJ P,UWAIT" + JRST (A) + JRST SETUP + +LOGOUT: .LOGOUT + .VALUE + JRST SETUPX + +SYNN: MOVEI C,COML+1(H) + MOVEI A,COML+2(H) + HRRZ B,(A) + HLRZ B,SYMS(D) + HRRZ D,(C) + HLRZ D,SYMS(D) + MOVEM B,SYMS(C) + JRST DONE + +SAVLOD: BLOCK 20 + +ALLOW: PUSH P,H ;TEST FOR GOODNESS + PUSHJ P,ALLOWZ + POP P,H + JRST DONE + + +ALLOWZ: PUSHJ P,RCOMN + MOVSI C,-10. + MOVE B,[(700)SLAK-1 + SETZM SLAK+7 + +ALLOW0: ILDB A,B + CAIE A,", + CAIN A,"\ + JRST ALLOW1 + SUBI A,40 + JUMPL A,ALLOW0 + CAIGE A,100 + SKIPE TYPE(A) + JRST ALLOW0 + MOVEM A,SLAK+10(C) + AOBJN C,ALLOW0 + +ALLOW1: MOVEM B,ALLOWB' + SETZM SLAK+10(C) + CAMG C,[(,-8.) + JRST ALLOWS + MOVNM C,ALLOWC' + PUSH P,F + MOVEI F,SLAK+10 + PUSHJ P,SS + POP P,F + MOVEI B,22 + TRNE F,PLEASF + MOVEI B,35 + CAML A,B + JRST ALLOWN + MOVS C,ALLOWC + HRRI C,10 + MOVSI H,-STRLL + PUSHJ P,GENAM2 + MOVE B,ALLOWB + LDB A,B + CAIN A,", + JRST ALLOW0 + JRST DONE + +ALLOWS: MOVE B,[(700)[ASCII ./TOO SHORT\.]-1] + JRST DOSAY5 + +ALLOWN: MOVE B,[(700)[ASCII ./RESEMBLES\.]-1] + PUSHJ P,DOSAY5 + MOVE C,NBEST' + JRST DOSAY6 + DOPARM: PUSHJ P,NUMVAL + XCT DOPX(D) + XCT DOPY(D) + JRST DONE + +DOPX: JFCL + PUSHJ P,DOPSSC + JFCL + JFCL + PUSHJ P,DOPTMP + PUSHJ P,SCRHK + PUSHJ P,DOPSDN + PUSHJ P,ARDSP + +DOPY: JFCL + MOVEM A,SCRSPC + MOVEM A,SCRINT + MOVEM A,DETEMPO +IFN 6V, MOVEM A,PLTDMY' +IFE 6V, MOVEM A,PLTEMP-73+PDP6P + MOVEM A,SCRSIZ + MOVEM A,SLURDN + MOVEM A,PLOWA + +ARDSIZ": 30 +SCRSIZ": 60 +SCRINT": 1 +SLURDN": 2 +PLOWS": 1 +PLOWA: 0 + +DOPTMP: PUSH P,A +IFE 6V,[ + MOVE D,A ;CHANGE TEMPO + MUL D,[(300000)] + MOVEM D,PSTEMP + SKIPL PLAYP + JRST DOPTMQ + .ACCESS 16,[76] + .IOT 16,B + SOJN B,DOPTMQ ;UNLESS PLAYING + .ACCESS 16,[77] + .IOT 16,B + SOJL B,DOPTMQ ;UNLESS REALLY PLAYING + .ACCESS 17,DOPTMT(B) + MOVE C,DOPTMU(B) + .IOT 17,C +DOPTMQ: +] +IFN 6V, JFCL + POP P,A + POPJ P, + +IFE 6V,[ +DOPTMT: PLTEMP ;MI + PSTEMP ;DAC +DOPTMU: -1,,A ;MI + -1,,D ;DAC +] +DOPSSC: CAIG A,20. + CAMGE A,[-20.] + JRST BADATA + PUSH P,A + IMUL A,[14631,,463146] + MOVEM A,SCRSPA + POP P,A + POPJ P, + +SCRSPA": 0 +SCRSPC: 0 + + +GET: MOVEI C,COML+1(H) ;GET NEXT SYL OF TYPE IN B +GET2: SKIPGE (C) + POPJ P, + HRRZ A,(C) + HLRZ A,SYMS(A) + CAME A,B + AOJA C,GET2 + HRRZ B,(C) + HRRZ A,SYMS(B) + JRST SPOPJ + +DOPSDN: JUMPLE A,BADATA + CAIL A,5 + JRST BADATA + POPJ P, + +SCRHK: MOVE B,A + ASH B,-1 + MOVEM B,ARDSIZ + POPJ P, + +ARDSP: MOVEI B,0 + SKIPN A + MOVEI B,1 + CAIN A,1 + MOVNI B,1 + MOVEM B,PLOWS + POPJ P, + + +TUFLUK": MOVEI A,"/ + PUSHJ P,TYO +BADATA: SKIPGE COML(H) + JRST REALLY + HLRZ F,COML(H) + SKIPA A,["/ +SSSA: MOVEI A,"? +SSSA1: PUSHJ P,TYO + MOVE A,(F) + JUMPLE A,REALLY + PUSHJ P,TYO6 + AOJA F,SSSA1+1 + +SSSB": MOVEI A,"? + PUSHJ P,TYO + HLRZ F,COML(H) + JRST SSSA1 + +EVENON=400000 + +CRRCMI: SKIPA J,[1] ;READ IN MUSIC, K=-1 MEANS TRANSLATE +CRRDOL: TDZA K,K +CRRCMP: MOVEI K,1 + PUSHJ P,TTYON + JUMPLE J,BADATA + CAIL J,11 + JRST BADATA + SKIPN K + PUSHJ P,CRLF + SETZM CRFLAG'" + JUMPN K,CRRCM1 + CONO PTR,20 + PUSHJ P,CRRBK + JRST 4,.-1 +CRRCM0: SETZM CRDELY' ;GET HERE FOR ALLREADS, MODE IN J, K DEVICE + SETZM CRDELZ' + MOVEM J,CRNPT' + SOS CRNPT + MOVNS J + HRLZ M,J + MOVEI L,1 + PUSHJ P,PDAT + SETZM CRRSP(M) + SETZM CRPREV(M) + AOBJN M,.-2 + MOVE C,N + +CRRW1: PUSHJ P,CRGNB ;GET TIME + JUMPE A,CROP2K ;IF END + JUMPE K,CRRW6 + MOVE B,CRGNBA' + AOJE B,CRRW3 ;STOP SPEC +CRRW6: SUB A,[(1)] + ASH A,5 + SKIPE K + ASH A,9 + IDIV A,DETEMPO + EXCH A,CRDELY + ADDM A,CRDELZ + HRLZ M,J + PUSHJ P,CRGNB + +CRRW2: MOVEI D,3 + LSHC A,-12. + +CRR1: SOJL A,CROP11 ;IF DEAD PART + CAMN A,CRPREV(M) + JRST CROP11 ;IF NO CHANGE + MOVE L,CRPREW(M) + JUMPE A,CROP12 ;IF REST + SKIPE CRPREV(M) + PUSHJ P,PDAT1A + +CROP1: MOVE L,M + CAILE L,5 + SUBI L,6 + ASH L,7 + ADD L,A + +CROP10: MOVEM L,CRPREW(M) + SETOM PLWN(L) + ADD L,CRRSP(M) + TROA L,EVENON +CROP12: SETZM PLWN(L) ;SKIPPED OVER + PUSHJ P,PDAT1 + MOVEM A,CRPREV(M) + +CROP11: AOBJP M,CRRW1 ;IF FINISHED CHORD + MOVEI A,0 + ROTC A,6 + SOJG D,CRR1 + PUSHJ P,CRGNB0 + JRST CRRW2 + +CRRW3: PUSHJ P,CRGNB + MOVEI D,0 +CRRW5: MOVE M,[220600,,A] +CRRW4: ILDB B,M + ASH B,11. + MOVEM B,CRRSP(D) + TLNE M,770000 + AOJA D,CRRW4 + CAML D,CRNPT + JRST CRRW1 + PUSHJ P,CRGNB0 + AOJA D,CRRW5 + +CROP2K: JUMPE K,CROP2 + PUSHJ P,.UNRED" +CROP2": MOVEI L,0 + PUSHJ P,PDAT +CROP3: HRLM I,@FREP' + EXCH I,FREP + MOVE B,CRFLAG + HRL I,CROP3T(B)+1 + +STASH: MOVEM I, + JUMPE G,CPOPJ + MOVE A,G + JRST DPT + +CROP3T: STRUCT + UNSTRU + UNSTRU + HARMON + +CRGNB0: JUMPN K,CRGNB5 +CRGNB: JUMPN K,CRGNB6 ;GET NEXT BITE + CAMN N,C + PUSHJ P,CRRBK + JRST CRGNB1 + JRST .-2 +CRGNB1: ILDB A,N + POPJ P, + +CRGNB6: PUSHJ P,CRCUR ;NOT PTR, GET WORD + MOVEM A,CRGNBA' + HLRZS A + POPJ P, + +CRGNB5: HRRZ A,CRGNBA + POPJ P, + +CRRCM1: PUSH P,J + MOVE J,DOCRN2' + PUSHJ P,CRUT0 ;OPEN FILE + PUSHJ P,.URED ;USES .IOT 4,A + JRST BDHDR + CAME A,[JRST 1] + JRST CRRCM2 + MOVE B,[440700,,[ASCII .(UNSTRUCTURED)\.] + PUSHJ P,DOSAY5 + POP P,J + MOVEI K,1 + MOVEI N,1 + JRST CRRCM0 + +CRRCM2: CAME A,[JRST 4,1] + JRST BDHDR + MOVE B,[440700,,[ASCII .(STRUCTURED)\.] + PUSHJ P,DOSAY5 + SETOM CRFLAG + SETZM CRINEQ' + POP P,CRNPT + PUSHJ P,.URED" + JRST DATEXH + MOVEM A,CRNPT + MOVEI L,-1 + MOVN J,I + HRRM J,CRINA0 + PUSHJ P,PDAT + HRRM I,CRINA1 + ADD I,A + SETZB L,N + PUSHJ P,PDAT + CAIL I,FREEND"-3 + JRST TUFLUK +CRINE: SOSGE CRNPT + JRST CRINF +CRINA0: MOVEI J,(I) ;-BEG. +CRINA1: HRRZM J, ;HEADER BLOCK + AOS CRINA1 + SETZM CRINTF' + SETZM CRITM' + HRRZM I,CRINM' +CRINA2: PUSHJ P,.URED" + JRST DATEXH + JUMPL A,CRINA5 + CAIL A,600000 + JRST CRINA3 + MOVE L,A + TLO L,400000 + PUSHJ P,PDAT + JRST CRINA2 + +CRINA3: CAIN A,600000 + JRST CRINA9 + TRNN A,100000 + JRST CRINA4 ;IF TIME SIG. + ANDI A,77777 ;IF KEY SIG. + TRNE A,40000 + ORCMI A,77777 + MOVE L,CRINAT(A) + PUSHJ P,PDAT + JRST CRINA2 + +CRINA5: SETOM CRINTF' + JRST CRINA2 + +CRINA4: ANDI A,17777 + HRLI A,200 + MOVE L,A + PUSHJ P,PDAT + JRST CRINA2 + +CRINA9: MOVE G,CRINM ;WHERE MEASURE ENTRIES BEGIN + SKIPL CRINTF + JRST CRINC + MOVEM I,CRINTF + HRLI L,1000 + PUSHJ P,PDAT +CRINC: MOVEI L,0 ;END OF MEASURES AND END OF MEASURE + PUSHJ P,PDAT + SETZM CRITM + +CRINB: SKIPN (G) + JRST CRINE1 ;NO MORE MEASURES + SKIPL B,(G) + AOJA G,CRINB + XCT CRINA0 + HRRZM J,(G) + MOVE A,G +CRINB0: SKIPN (A) + JRST CRINB1 + CAMN B,(A) + HRRZM J,(A) + AOJA A,CRINB0 + +CRINB1: PUSHJ P,.URED" + JRST DATEXH + CAIL A,600000 + JRST CRINB4 + PUSH P,I + LDB J,[700,,A] ;J GETS LENGTH + TRNE A,100000 + ASH J,1 + TRNN A,100000 + IMULI J,3 + LDB B,[70600,,A] ;B GETS PITCH + MOVE D,CRITM + ADDM J,CRITM + CAIG B,1 + JRST CRIB1A + LDB M,[150200,,A] + LDB N,[200200,,A] + DPB N,[20200,,M] + MOVE L,CRINBT(M) ;ARTIC + + DPB B,[220700,,L] + MOVEI I,300 + +CRINB2: PUSHJ P,GCDD + CAIG J,40 + CAILE I,100 + SOJA J,CRIB2A ;NO, BUT ... FAKE IT + DPB J,[370500,,L] + DPB I,[310600,,L] + MOVEI I,300 + MOVE J,D +CRINB3: PUSHJ P,GCDD + CAIGE J,200 + CAILE I,100 + SOJA J,CRIB3A + DPB J,[60700,,L] + DPB I,[600,,L] + POP P,I + PUSHJ P,PDAT + JRST CRINB1 + +CRINB4: CAIL A,740000 + JRST CRINB1 ;BEAT + CAIN A,600000 + JRST CRINC + CAIGE A,700000 + JRST CRINS +CRINT: MOVE L,[400000,,104] ;TEMPO + MOVEI B,4504. + ANDI A,17777 + IDIV B,A + DPB B,[311200,,L] + PUSHJ P,PDAT + JRST CRINB1 + +CRINS: MOVSI L,400000 + DPB A,[220700,,L] + PUSHJ P,PDAT + JRST CRINB1 + +CRINF: PUSHJ P,.UNRED" + MOVE G,CRINEQ + JRST CROP3 + +CRIB2A: AOS CRINEQ + JRST CRINB2 + +CRIB3A: AOS CRINEQ + JRST CRINB3 + +CRIB1A: POP P,I + JRST CRINB1 + +CRINE1: SKIPN B,CRINTF + JRST CRINE + HRRM I,(B) +CRINE3: PUSHJ P,.URED" + JRST DATEXH + MOVE L,A + PUSHJ P,PDAT + MOVE B,[440700,,A] +CRINE2: ILDB C,B + CAIN C,"\ + JRST CRINE + TLNE B,760000 + JRST CRINE2 + JRST CRINE3 + + +CRINBT: 1_15 + 2_15 + 3_15 + 3_15 + REPEAT 4,4_15 + REPEAT 10,10_15 + + 403,,443444 + 403,,443344 + 403,,343344 + 403,,343334 + 403,,333334 + 403,,333333 + 403,,330333 + 400,,330333 + 400,,330033 + 400,,30033 + 400,,30003 + 400,,3 +CRINAT: 400,,0 + 400,,1000 + 401,,1000 + 401,,1100 + 401,,101100 + 401,,101110 + 401,,111110 + 401,,111111 + 401,,112111 + 402,,112111 + 402,,112211 + 402,,212211 + 402,,212221 + +CRCUR: JUMPL N,CRCUR5 ;IN BLOCK + JUMPN N,CRCUR4 ;BEG. OF FILE + PUSHJ P,.URED" ;CHECKSUM + JRST DATEXH + CAME A,CRCURM + JRST CKSMER +CRCUR4: PUSHJ P,.URED" + JRST DATEXH + MOVEM A,CRCURM' + HLREM A,N ;WORD COUNT + CAIN N,(JFCL) + MOVEI A,0 + JUMPE A,CPOPJ + JUMPG A,BDHDR +CRCUR5: PUSHJ P,.URED + JRST DATEXH + MOVE C,CRCURM + ROT C,1 + ADD C,A + MOVEM C,CRCURM + AOJA N,CPOPJ + +BDHDR: SKIPA B,[440700,,[ASCII ./BAD DATA IN FILE\.]] +CKSMER: MOVE B,[440700,,[ASCII ./CHECKSUM ERROR\.]] + JRST DEATH + +DATEXH: MOVE B,[440700,,[ASCII ./FILE UNEXPECTEDLY ENDS\.]] + JRST DEATH + + + +PDAT1A: SETZM PLWN(L) +PDAT1: HRL L,CRDELZ + SETZM CRDELZ +PDAT: MOVEM L,(I) + CAIGE I,FREEND"-1 + AOJA I,CPOPJ + JRST TUFLUK + +DETEMPO: 883. + +CRPREV: BLOCK 10 +CRPREW: BLOCK 10 +CRRSP: BLOCK 10 + + + +;NEW "RELAY" NUMBERS: (OLD PITCH-1) + 200*(MAN-1) +NRNO==1400 + +DOTAP1: MOVE A,TAPTAB(C) + PUSHJ P,TAPKIL" +DOTAPE: SOSL C,NTAPES + JRST DOTAP1 + +DOTAP2: AOS C,NTAPES + CAIL C,NDIR + JRST DONE + MOVE D,COML(H) + JUMPL D,DONE + HLRZ B,SYMS(D) + CAIE B,NUMBER + JRST BADATA + HRRZ A,SYMS(D) + PUSHJ P,FILEST" + JRST SSSB + MOVEM A,TAPTAB(C) + AOJA H,DOTAP2 + + +CRUT: TDZA L,L +CRUT0: MOVEI L,1 + JUMPL J,CRUT1 + MOVE A,J + PUSHJ P,TAPCK + PUSHJ P,NAMFIL +CRUT4: PUSHJ P,TTYON + PUSHJ P,FIND + JRST FNF + JRST CRUT2 + +CRUT1: MOVEI A,0 + PUSHJ P,NAMFIL ;DECODE FILE NAME + JUMPN A,CRUT4 + PUSHJ P,FINDIT + PUSHJ P,TTYON +CRUT2: JUMPN L,CPOPJ + PUSHJ P,.URED" + JRST BADATA + HRRZ B,A + JUMPN B,CRUTM + MOVN C,A + +CRUT3: PUSHJ P,.URED" + JRST BADATA + MOVEM A,SLAK(C) + AOBJN C,CRUT3 + ADDI C,SLAK-1 + PUSHJ P,DOTITE + JRST CRUT2 + +CRUTM: HRREM A,CRFLAG' + HLRZ C,A + MOVEI L,(A) + PUSHJ P,PDAT + +CRUTM1: PUSHJ P,.URED" + JRST BADATA + MOVE L,A + PUSHJ P,PDAT + SOJG C,CRUTM1 + MOVEI G,0 + JRST CROP3 + +TAPCK: MOVE C,NTAPES' + CAME A,TAPTAB-1(C) + SOJG C,.-1 + JUMPLE C,BADATA + POPJ P, + +NAMFIL: PUSH P,A + PUSHJ P,RCOMN ;GET FILE NAME + MOVE C,[(700)SLAK-1 + MOVSI K,400000 +NAMFL0: MOVE J,K +NAMFL9: MOVSI K,400000 + MOVE D,[440600,,K] + +NAMFL1: ILDB E,C + CAIN E,"\ + JRST NAMFL2 + SUBI E,40 + JUMPL E,NAMFL1 ;IGNORE LOOSING CHARS. + JUMPE E,NAMFL0 + CAIN E,'; + JRST NAMFL3 + CAIN E,': + JRST NAMFL4 + CAIL E,100 + JRST NAMFL1 + TLNE D,770000 + IDPB E,D + JRST NAMFL1 + +NAMFL2: MOVEM J,NAMA' + MOVEM K,NAMB' + POP P,A + POPJ P, + +NAMFL3: MOVE A,K + PUSHJ P,FILEST" + JRST BADSNM + JRST NAMFL9 + +NAMFL4: HLRZM K,(P) + JRST NAMFL9 + +BADSNM: MOVE B,[440700,,[ASCII ./BAD SYSTEM NAME\.]] + JRST DEATH + +FIND: PUSHJ P,FILEST" + JRST SSSB + MOVE A,NAMA' + MOVE B,NAMB' + PUSHJ P,OPNRD" + POPJ P, + JRST SPOPJ + + +FINDIT: MOVE C,NTAPES + JUMPLE C,WRITW1 +FINDT1: JUMPLE C,FNF + MOVE A,TAPTAB-1(C) + PUSHJ P,FIND + SOJA C,FINDT1 + POPJ P, + + +FNF: MOVE B,[440700,,[ASCII ./FILE NOT FOUND\.]] + JRST DEATH + +PRINT: SOJ H, + PUSH P,DONEW +PRINT1: AOJ H, + MOVE B,[HARMON] + PUSHJ P,GET + SKIPA B,[GOTO] ;MAY BE VOICE + JRST PHARM + PUSHJ P,GET + SKIPA B,[NUMBER] + JRST PVOICE + PUSHJ P,GET + SKIPA B,[MODALL] + JRST PNUMB + PUSHJ P,GET + SKIPA B,0 + JRST PALL + PUSHJ P,GET + SKIPA + JRST PNIL + POPJ P, +PNIL: .VALUE ;PRINT A NOTHING + JRST PRINT1 +PHARM: .VALUE ;PRINT HARMONIC STRUCTURE TABLE + JRST PRINT1 +PNUMB: MOVE B,A +PNUM1: IDIVI B,10. + MOVEI A,60(C) + PUSHJ P,TYO + JUMPN B,PNUM1 + JRST PRINT1 + +PALL: .VALUE + POPJ P, +PVOICE: .VALUE + POPJ P, + +WRIT: MOVEI B,UNSTRU + PUSHJ P,GET + SKIPA B,[STRUCT] + JRST WRIT10 + PUSHJ P,GET + SKIPA B,[HARMON] + JRST WRIT10 + PUSHJ P,GET + JRST BADATA +WRIT10: PUSH P,B + MOVEI B,NUMBER + PUSHJ P,GET + JRST WRITW + PUSHJ P,TAPCK + +WRIT13: PUSHJ P,NAMFIL + PUSHJ P,FILEST" + JRST SSSB + MOVE A,NAMA + MOVE B,NAMB + PUSHJ P,OPNWR" + JRST TUFLUK + POP P,C + MOVEI D,0 + +WRIT11: HLRZ A,TITL(D) + JUMPE A,WRIT2 + CAME A,C + AOJA D,WRIT11 + HRRZ B,TITL(D) + PUSHJ P,WRITE + +WRIT2: HRRZ B,SYMS(C) + PUSHJ P,WRITE + MOVE A,NAMA + MOVE B,NAMB + PUSHJ P,FILE" + JRST TUFLUK + JRST DONE + + +WRITE: HLRZ D,(B) + SUBI D,1(B) + MOVS A,D + HRR A,(B) + PUSHJ P,.UWR" + JRST TUFLUK + +WRIT12: MOVE A,1(B) + PUSHJ P,.UWR" + JRST TUFLUK + ADDI B,1 + SOJG D,WRIT12 + POPJ P, + +WRITW: SKIPG NTAPES + JRST WRITW1 + MOVE A,TIME + IDIV A,NTAPES + MOVE A,TAPTAB(B) + JRST WRIT13 + +WRITW1: MOVE B,[(700)[ASCII ./NO TAPES\.]-1] +DEATH": PUSHJ P,DOSAY5 + JRST REALLY + + +CRSC: MOVE 0,[(1)SAVAC + BLT 0,SAVAC+16 + PUSHJ P,SMOLGN" + MOVE 0,[(SAVAC)1 + BLT 0,17 + PUSHJ P,CRLF + MOVE C,SMOLTM" + LSH C,-7 + IOR C,[ASCII ./ \.] + MOVE B,[(700)B + PUSHJ P,DOSAY5 + MOVEI L,1 + PUSHJ P,PDAT + SETZB G,CRFLAG' + SETZB A,CRSCD' + +CRSC0: MOVE L,SMOLTM"(A)+1 + JUMPE L,CRSC1 + IMUL L,[(,-1000) + MOVE M,L + ASH M,-3 + SUB L,M + HRR L,SMOLPT"(A)+1 + HRR L,SMOLCP(L) + PUSH P,L + TRO L,EVENON + HLL L,CRSCD + MOVEM M,CRSCD + PUSHJ P,PDAT + POP P,L + PUSHJ P,PDAT + AOJA A,CRSC0 + +CRSC1: SKIPE SMOLTM+1(A)+1 + AOJA A,CRSC0 + JRST CROP2 + +SMOLCP: 45 + 46 + 50 + 52 + 53 + 55 + 57 + 60 + +CRKY: PUSHJ P,TTYON + PUSHJ P,CRLFQ + SETZM CRKYS1' + MOVE A,[(4)200000 + MOVEM A,CRKYS2' + +CRKYR: MOVEI L,1 + PUSHJ P,PDAT + SETZB G,CRFLAG' + CONO 724,1 + MOVEM L,CRKYDS' + +CRKY3: CONSO 724,2 + JRST .-1 + CONO 724,1 + SOS CRKYD' + +CRKY1: DATAI 724,A + MOVE C,A + XOR A,CRKYS1' + MOVE B,A + JUMPE A,CRKY2 + SUBI A,1 + ANDCA A,B + XORM A,CRKYS1' + ANDM A,C + TLNN A,777000 + TLOA A,32000 + PUSHJ P,CRKY10 + +CRKY11: FAD A,[0 + LSH A,-33 + CAILE A,27 + ADDI A,22 + ADDI A,61 + +CRKY13: SKIPE C + TRO A,EVENON + SOSL CRKYDS' + SETZM CRKYD + HRL A,CRKYD' + MOVE L,A + PUSHJ P,PDAT + SETZM CRKYD + JUMPN M,CRKY2 + JRST CRKY1 + +CRKY10: LSH A,-11 + TLO A,43000 + POPJ P, + +CRKY2: DATAI 730,A + MOVE C,A + XOR A,CRKYS2' + MOVE B,A + JUMPE A,CRKY3 + SUBI A,1 + ANDCA A,B + XORM A,CRKYS2' + ANDM A,C + TLNN A,777000 + TLOA A,32000 + PUSHJ P,CRKY10 + +CRKY21: FAD A,[0 + LSH A,-33 + CAIGE A,27 + JRST CRKY22 + ADDI A,15 + AOJA M,CRKY13 + +CRKY22: JUMPE C,CRKY2 + CAIN A,24 + JRST CROP2 + CAIE A,20 + JRST CRKY2 + MOVE I,FREP' + JRST CRKYR + +DEFINE CONCAT A,B +A!B!TERMIN + +TTSTOU: MOVEI L,1 + PUSHJ P,PDAT + SETZB N,CRDELZ' + SETZB G,K +TTGET: MOVE A,(K) + JUMPE A,TTGET1 + ADD A,TTOX + MOVEM A,MEAS(K) + PUSHJ P,TT123Y + AOJA K,TTGET + +TTGET1: MOVEM K,TTMG' ;# OF LINES + SETZB H,CRFLAG' + +TT0: MOVEI M,0 + MOVSI J,377777 + TRO F,NOMORF + +TT11: CAMN M,TTMG + JRST TT111 + SKIPGE MEAS(M) + AOJA M,TT11 + TRZ F,NOMORF + MOVE A,@LOCA(M) ;NOTE ENTRY + LDB B,[A(60700) ;NUM + LDB C,[A(600) ;DEN + IMUL B,TEMPF(M) + IDIV B,C ;COUNTS INTO MEASURE + ADD B,MSTM(M) + CAMGE B,J + MOVE K,M ;PART + CAMGE B,J + MOVEM B,J + AOJA M,TT11 + +TT111: MOVEI M,0 +TT112: CAMN M,H + JRST TT12 + TRZ F,NOMORF + HLRZ B,ALIVE(M) + CAMGE B,J + MOVEI K,ALIVE(M) ;PART+ALIVE + CAMGE B,J + MOVEM B,J + AOJA M,TT112 + +TT12: TRNE F,NOMORF + JRST CROP2 + EXCH N,J + SUB J,N + ADDM J,CRDELZ' + CAIGE K,ALIVE + JRST TT120 + MOVE L,(K) ;COMPILE 'OFF' + PUSHJ P,PDAT1A + HRLI K,1(K) + BLT K,ALIVE-1(H) + SOJA H,TT0 + +TT120: LDB A,[(220700)@LOCA(K)] ;COMPILE 'ON' + MOVE B,K + CAILE B,5 + SUBI B,6 + ASH B,7 + ADDI B,-1(A) + CAIGE H,ALIVEL + SKIPE PLWN(B) + AOJA G,[SOJA H,TT0A] ;FORGET IT + +TT1205: MOVEI L,EVENON(B) + SETOM PLWN(B) + PUSHJ P,PDAT1 + +TT121: LDB A,[(150500)@LOCA(K)] ;ARTIC. FIELD + CAILE A,10 + MOVEI A,5 + LDB C,[(370400)@LOCA(K)] ;N + LDB D,[(310600)@LOCA(K)] ;D + CAIGE A,5 + MOVEI C,1 + IMUL C,TTART1(A) + IMUL D,TTART2(A) + IMUL C,TEMPF(K) + IDIV C,D + LDB D,[(370400)@LOCA(K)] + LDB E,[(310600)@LOCA(K)] + IMUL D,TEMPF(K) + IDIV D,E + LDB E,[(60700)@LOCA(K)] + LDB A,[(600)@LOCA(K)] + IMUL E,TEMPF(K) + IDIV E,A + ADD D,E + ADD D,MSTM(K) + SUB D,C + HRL B,D + MOVEM B,ALIVE+1(H) +TT0A: PUSHJ P,TT122 ;AOSES H + JRST TT0 + +TT122: AOSA A,LOCA(K) +TT122A: MOVE A,(A) ;NOTE ENTRY + JUMPE A,TT123 + TLNE A,177 + TLNN A,377600 + SKIPL A + JRST TT122M + LDB C,[(600)A] ;TEMPO WD. + LDB D,[(60700)A] + IMULI C,30000. + LDB E,[(311200)A] + IMUL D,E + IDIV C,D + MOVEM C,TEMPF(K) + JRST TT122 + +TT123: SOS LOCA(K) ;END OF MEASURE + SKIPGE MEAS(K) + JRST TT123X +TT123U: AOS A,MEAS(K) + +TT123Y: MOVEM N,MSTM(K) + MOVE A,(A) ;MEASURE ENTRY + JUMPE A,TT123X + LDB B,[(311300)A] + JUMPN B,TT123U + +TT124: ADD A,TTOX + MOVEM A,LOCA(K) ;MEASURE PTR. + JRST TT122A + +TT123X: SETOM MEAS(K) +TT122M: AOJA H,CPOPJ + +TTART1: 0 + 1 + 3 + 1 + 1 + 1 + 3 + 1 + 1 + +TTART2: 1 + 10 + 20 + 4 + 2 + 10 + 20 + 4 + 2 + +DOERA: HRRZ N,(P) + MOVE A,COML+1(H) + JUMPL A,BADATA + MOVE A,SYMS(A) + CAME A,[MODALL + JRST DOERA1 + SKIPL COML+2(H) + JRST BADATA + CAIN N,DOERAS+1 + TRNE F,PLEASF + SKIPA + JRST BADATA + MOVEI A,FREE" + XCT (N) + XCT 4(N) + MOVE M,NSYMS + SOJL M,DOERAX + +DOERA4: HLRZ A,SYMS(M) + CAIN A,HARMON + XCT 1(N) + CAIE A,STRUCT + CAIN A,UNSTRU + XCT 1(N) + SOJGE M,DOERA4 + JRST DOERAX + +DOERA1: CAME A,[MODEXC] + AOJA H,DOERA3 + ADDI H,2 + MOVEI A,COML(H) + +DOERA2: MOVE C,(A) + JUMPL C,DOERA5 + HLRZ C,SYMS(C) + CAIN C,HARMON + AOJA A,DOERA2 + CAIE C,STRUCT + CAIN C,UNSTRU + AOJA A,DOERA2 + JRST BADATA + +DOERA3: SKIPGE COML(H) + JRST DOERAX + XCT 2(N) + AOJA H,DOERA3 + +DOERA5: ADD C,NSYMS +DOERA7: HLRZ A,SYMS(C) + CAIN A,HARMON + JRST DOERA6 + CAIE A,STRUCT + CAIN A,UNSTRU + JRST DOERA6 +DOERA0: SOJGE C,DOERA7 +DOERAX: POP P,A + JRST 5(N) + +DOERA6: MOVEI B,COML(H) +DOERA9: SKIPGE (B) + JRST DOERA8 + HRRZ A,(B) + CAME A,C + AOJA B,DOERA9 + JRST DOERA0 + +DOERA8: XCT 3(N) + JRST DOERA0 +;DOERS USES A,B,C,D + +DOERS: PUSHJ P,GCHEK + +DOERS1: MOVEM C,DOERSC' + HRRZ B,SYMS(C) + SETZM SYMS(C) +IFE 6V, HRRM C,RUDGE0 + PUSHJ P,RUDGE + MOVEI D,0 + +DOERS5: HLRZ B,TITL(D) + JUMPE B,DOERS9 + CAME B,DOERSC + AOJA D,DOERS5 + +DOERS8: HRRZ B,TITL(D) + HRLI A,TITL+1(D) + HRRI A,TITL(D) + BLT A,TITL+TITLL-2 + PUSHJ P,RUDGE +DOERS9: MOVE C,DOERSC + POPJ P, + +RUDGE: MOVEM B,RUDGEB' ;BLOCK ORIGIN + MOVEM B,RUDGER' + AOS RUDGER + HLRZ D,(B) ;BLOCK END+1 + SUBM B,D + HLRZ B,(B) + +RUDGE7: HLRZ A,(B) + CAMLE A,B + CAILE A,FREEND" + JRST RUDGE5 + MOVE C,A + ADD C,D + HRLM C,(B) + MOVE B,A + JRST RUDGE7 + +RUDGE5: MOVE B,RUDGEB + HLL B,(B) + BLT B,FREEND"(D) + ADDM D,FREP + MOVE C,NSYMS + +RUDGE2: HRRZ A,SYMS(C)-1 + CAMGE A,RUDGEB + JRST RUDGE3 + HLRZ A,SYMS(C)-1 + CAIE A,STRUCT + CAIN A,UNSTRU + JRST RUDGE4 + CAIN A,HARMON + JRST RUDGE4 + +RUDGE3: SOJG C,RUDGE2 + MOVEI C,0 + +RUDGE6: HRRZ B,TITL(C) + JUMPE B,RUDGE8 + CAMLE B,RUDGEB + ADDM D,TITL(C) + AOJA C,RUDGE6 + +RUDGE8:IFE 6V,[ + MOVSI C,PSGTLT-HARCDE +RUDGE9: HRRZ B,PSGTLT(C) + CAMN B,RUDGER +RUDGE0: HRROI B, ;SYM # + CAMLE B,RUDGEB + ADDM D,PSGTLT(C) + SKIPGE B + MOVEM B,PSGTLT(C) + AOBJN C,RUDGE9 +] POPJ P, + +RUDGE4: CAMN A,RUDGEB + MOVNM D,SYMS(C)-1 + ADDM D,SYMS(C)-1 + JRST RUDGE3 + +GCHEK: HRRZ C,COML(H) + HLRZ B,SYMS(C) + CAIN B,HARMON + POPJ P, + CAIE B,STRUCT + CAIN B,UNSTRU + POPJ P, + JRST BADATA + +NUMVLV: MOVEI A,10. + HRRM A,NUMVL8 + TRZ F,BEGUNF + JRST NUMVLW + +NUMVOC: SKIPA A,[10 +NUMVAL: MOVEI A,10. + HRRM A,NUMVL8 + TRO F,BEGUNF +NUMVLW: MOVEI C,COML+1(H) + TRZ F,PREVCF+MINUSF + MOVEI A,0 + +NUMVL1: SKIPGE (C) + JRST NUMVL9 + HRRZ B,(C) + HLRZ B,SYMS(B) + CAIE B,MINUS + JRST NUMVL3 + TRO F,BEGUNF + TRON F,MINUSF+PREVCF + AOJA C,NUMVL1 + +NUMVL9: MOVEI H,.-COML-$."-1(C) + TRZE F,MINUSF + MOVNS A + POPJ P, + +NUMVL2: CAIE B,NUMBER + JRST NUMVLX + HRRZ B,(C) + HRRZ B,SYMS(B) +NUMVL8: IMULI A,10. + ADD A,B +NUMVL0: TRO F,PREVCF+BEGUNF + AOJA C,NUMVL1 + +NUMVL3: CAIE B,MULTIP + JRST NUMVL2 + HRRZ B,(C) + HRRZ B,SYMS(B) + ADD B,NUMVL8 + IMUL A,-10(B) + JRST NUMVL0 + +NUMVLX: TRNE F,BEGUNF + JRST NUMVL9 + AOJA C,NUMVL1 + +DOVALU: MOVE C,COML(H) + JUMPL C,DONE + PUSHJ P,CRLF + HLRZ A,SYMS(C) + CAIE A,PARAM + JRST DOVAL4 + HRRZ A,SYMS(C) + HLRZ B,DOPY(A) + CAIN B,(JFCL) + AOJA H,DOVALU + CAIE B,(MOVEM A,) + JRST SSSB + MOVE A,@DOPY(A) +DOVAL5: PUSHJ P,DPT + AOJA H,DOVALU + + +DOVAL4: MOVE A,SYMS(C) + CAMN A,[(GOTO)17] + JRST DOVAL6 + CAME A,[(GOTO)12 + JRST BADATA + MOVE A,TUNVAL' + JRST DOVAL5 + +DOVAL6: MOVSI D,-MAXNP" + SETZM DOVALW' +DOVAL9: SKIPGE E,PRECLE"(D) + JRST DOVAL8 + MOVE B,[440700,,[ASCII ., \.]] + SKIPGE DOVALW + PUSHJ P,DOSAY5 + HRLI E,CLEF + HRLZ C,NNSYMS + CAME E,SYMS(C) + AOBJN C,.-1 + MOVEI A,1(D) + PUSHJ P,DPT + JUMPGE C,DOVAL7 + MOVEI C,(C) + PUSHJ P,DOSAY6 + JRST DOVAL8 + +DOVAL7: MOVE B,[440700,,[ASCII . ?\.]] + PUSHJ P,DOSAY5 +DOVAL8: SETOM DOVALW + AOBJN D,DOVAL9 + AOJA H,DOVALU + +DOLIST: PUSHJ P,CRLF + PUSHJ P,TTYON + PUSHJ P,NUMVOC + MOVEM A,G + MOVE C,NSYMS + SUBI C,1 + +DOLST1: JUMPL C,DONE + HLRZ A,SYMS(C) + CAME A,G + SOJA C,DOLST1 + PUSHJ P,DOSAY6 + PUSHJ P,CRLF + SOJA C,DOLST1 + +DOTITL: MOVE A,COML(H)+1 + JUMPL A,BADATA + HLRZ B,SYMS(A) + CAIN B,HARMON + JRST DOTIT1 + CAIE B,UNSTRU + CAIN B,STRUCT + JRST DOTIT1 + JRST BADATA + +DOTIT1: HRRZM A,DOTITA' + PUSHJ P,RCOMN + PUSHJ P,DOTITE + JRST RCS + + +DOTITE: PUSHJ P,TTYOFF + MOVEM C,DOERSC' + MOVEI D,0 + +DOTIT2: CAIL D,TITLL-1 + JRST TUFLUK + HLRZ A,TITL(D) + JUMPE A,DOTIT3 + CAME A,DOTITA + AOJA D,DOTIT2 + PUSHJ P,DOERS8 ;TO ERASE OLD TITLE + +DOTIT3: MOVE I,FREP + MOVEI D,0 + SKIPE TITL(D) + AOJA D,.-1 + HRL A,DOTITA + HRR A,I + MOVE B,I + HRLI B,SLAK-1 + ADDI I,2(C) + SUBI I,SLAK + CAIL I,FREEND" + JRST TUFLUK + BLT B,(I) + HRLZM I,@FREP + MOVEM I,FREP + MOVEM A,TITL(D) + SETZM TITL+1(D) + POPJ P, + +IFE 6V,[ +SCLBLD: MOVE A,[-1] + MOVEM A,HARN + JRST HARBLD +HARAUG: TDZA G,G ;AUGMENT HST +HARSCL: MOVNI G,1 + JRST HARC +HARBLD: MOVEI G,1 ;BUILD HST +HARC: ADDI H,1 + MOVE B,COML(H) + HLRZ A,SYMS(B) + JUMPLE G,HARC1 + JUMPE A,HARC3 ;EX NIHILO +HARC1: CAIE A,HARMON + JRST BADATA ;CAN'T BUILD FROM THIS + HRRZ B,SYMS(B) + AOJA B,HARC2 + +HARC3: MOVE I,FREP ;BUILD + CAIL I,FREEND"-402 + JRST TUFLUK + HRRM I,SYMS(B) ;CALL IT A HST + MOVEI A,HARMON + HRLM A,SYMS(B) + ADDI I,401 + HRL A,I + HRRI A,2 + MOVEM A,-401(I) + MOVEM I,FREP + SETZM -400(I) + MOVEI A,-377(I) + HRLI A,-400(I) + BLT A,-1(I) + MOVEI B,-400(I) +HARC2: HRRM B,HART ;DROPS THRU + +HARBL1: PUSHJ P,NUMVAL + ADDI H,1 + MOVE E,COML(H) + JUMPL E,HARBL8 + MOVE B,SYMS(E) + CAMN B,[PUNCCL] +HARBL8: CAIL A,5 ;FOUR CHANNELS ONLY + JRST BADATA +HARBL0: JUMPL A,BADATA + MOVE L,A + JUMPLE G,HARBL9 + MOVSI D,-400 + MOVE C,[MOVEM C,@HART] + SKIPE L + MOVE C,[DPB C,@HART(L)] + MOVEM C,HARBM2 + MOVEI C,0 +HARBM2: MOVEM C,@HART ;OR DPB C,@HART(L) + AOBJN D,HARBM2 + +HARBL9: JUMPL E,DONE + MOVSI D,-400 + +HARTO: PUSHJ P,NUMVAL + ADDI H,1 + MOVE B,COML(H) + JUMPL B,BADATA + MOVE B,SYMS(B) + CAME B,HARTOQ(G)+1 ;COMMAS ONLY HERE + JRST BADATA + HRRM A,HARMN ;HARMONIC # + MOVEM A,HARSN1' + PUSHJ P,NUMVAL + MOVE E,COML(H)+1 + JUMPL E,HARBL2 + MOVE B,SYMS(E) + CAME B,[PUNCSC] ;SEMI-COLONS ONLY, DROPS THRU + JRST BADATA + +HARBL2: MOVEM A,HARSN2' + JUMPL G,HARSC + CAILE A,2000. ;LET'S BE REASONABLE + + JRST BADATA + MOVMM A,HARAM' ;MAGNITUDE + IDIV A,HARAM + MOVEM A,HARAS' ;SIGN +HARL: SKIPE HARSN1 ;HARMONIC # + JRST HARL2 + PUSHJ P,RANDOM ;WHITE NOISE + IDIVI A,2048. + JRST HARL3 +HARL2: MOVEI A,(D) +HARMN: SKIPE HARN' + JRST HARNT ;USE PIANO SCALE + IMULI A, + IMUL A,HARAS +HARMN2: PUSHJ P,XSIN +HARL3: + ADDI B,2047. + IMUL B,HARAM + IDIVI B,16000. + JUMPN L,HARSC0 + MOVE L,[-4,,1] +HARSC0: LDB A,HARPT(L)-1 + ADD A,B +HARSC1: CAIL A,700 + JRST HAROF ;OVERFLOW + DPB A,HARPT(L)-1 + JUMPGE L,HARMN5 + AOBJN L,HARSC0 + MOVEI L,0 + +HARMN5: AOBJN D,HARL1 ;NEXT CYCLE + AOJA H,HARBL9 ;NEXT HARMONIC + +HARL1: JUMPGE G,HARL + JRST HARSC + +HARTOQ: PUNCSL + PUNCCM + PUNCCM + +HARSC: JUMPN L,HARSC8 + MOVE L,[-4,,1] +HARSC8: LDB A,HARPT(L)-1 + IMUL A,HARSN1 + IDIV A,HARSN2 + CAIL A,700 + JRST HAROF + DPB A,HARPT(L)-1 + JUMPGE L,HARMN5 + AOBJN L,HARSC8 + MOVEI L,0 + JRST HARMN5 + +HARPT: (1100)@HART +HART: (111100+D) + (221100)@HART + (331100)@HART + + +HAROF: MOVE B,[(700)[ASCII ./OVERFLOW\.]-1] + PUSHJ P,DOSAY5 + JRST DONE + +PSNTM1==0 +PSNTM2==0 +PSNTM3==0 +PSNTM4==0 +HARNT: PUSH P,B + PUSH P,A + HRRZ A,HARMN + IDIVI A,12 ;SCALE IT + MOVE B,TWTABL(B) ;TWELFTH ROOT OF 2 + IMULI B,A ;FULL RANGE + POP P,A + IMULI A,B ;RESTORE + POP P,B + JRST HARMN2 + +HARWT: PSNTM1 + PSNTM2 + PSNTM3 + PSNTM4 +] + +COS": FADR A,[1.57079631847] +SIN": MOVM B,A + CAMGE B,[.001 + POPJ P, + FDV B,[1.57079631847 + CAMG B,[1.0 + JRST SINS2 + MULI B,400 + ASH C,-202(B) + MOVEI B,200 + ROT C,3 + LSHC B,33 + FAD B,[0 + JUMPE C,SINS2 + TLCE C,1000 + FSB B,[1.0 + TLCE C,3000 + TLNN C,3000 + MOVNS B + +SINS2: SKIPGE A + MOVNS B + MOVEM B,A + FMPR B,B + MOVE C,[.00015148419 + FMP C,B + FAD C,[-.00467376557 + FMP C,B + FAD C,[.07968967928 + FMP C,B + FAD C,[-.64596371106 + FMP C,B + FAD C,[1.57079631847 + FMPR A,C + POPJ P, + + +XSIN: TLC A,232000 + FAD A,A + FMP A,[.02454369248 + PUSHJ P,SIN + FMP A,[2047.0 + MULI A,400 + TSC A,A + ASH B,-243(A) + POPJ P, ;RANGE OF B: -2047. TO +2047. + +ATAN": PUSH P,B + MOVM B,A + CAMG B,[145000000000] + JRST ATANX + MOVEM A,C2' + CAML B,A2 + JRST AT4 + PUSH P,C + MOVSI C,201400 + PUSH P,CMOVNS + CAMG B,C + AOSA (P) + FDVM C, B + MOVEM B,C3' + FMP B, B + MOVE C,KB3 + FAD C, B + MOVE A,KA3 + FDVM A,C + FAD C, B + FAD C,KB2 + MOVE A,KA2 + FDVM A,C + FAD C,B + FAD C,KB1 + MOVE A,KA1 + FDV A,C + FAD A,KB0 + FMP A,C3' + FSBR A,[200622077325] + XCT (P) + FADR A,[200622077325] + SKIPA C,-1(P) +AT4: SKIPA A,A3 + SUB P,[2,,2] + SKIPGE C2' +CMOVNS: MOVNS A +ATANX: POP P,B + POPJ P", + +A2: 233000000000 +A3: 201622077325 +KB0: 0.1746554388 +KB1: 6.762139240 +KB2: 3.316335425 +KB3: 1.448631538 +KA1: 3.709256262 +KA2: -7.106760045 +KA3: -0.2647686202 + + +;FLOATING POINT SQUARE ROOT FUNCTION + +SQRT": MOVEM B,BSAV + MOVMS A + JUMPLE A,SQ2 + ASHC A,-33 + SUBI A,201 + ROT A,-1 + HRRM A,SQ1 + LSH A,-43 + ASH B,-10 + FSC B,177(A) + MOVEM B,ST + FMP B,S1(A) + FAD B,S2(A) + MOVE A,ST + FDV A,B + FAD B,A + FSC B,-1 + MOVE A,ST + FDV A,B + FADR A,B +SQ1: FSC A,0 +SQ2: MOVE B,BSAV + POPJ P", + +S1: 0.8125 + 0.578125 +S2: 0.302734 + 0.421875 + +ST: 0 +BSAV: 0 + + +SCWAV: PUSHJ P,TTYON + MOVEI B,NUMBER + PUSHJ P,GET + JRST BADATA + MOVE D,A + MOVEI B,HARMON + PUSHJ P,GET + JRST BADATA + ADDI A,1 + HRRM A,SCWAVT +SCWAV1: MOVSI A,-400 + PUSHJ P,UWAIT" + CONO 4000+APRCHN ;CLK ENBL OFF +SCWAV2: LDB B,SCWAVT(D)-1 + DPB A,[111100,,B] + MOVEM B,32 + AOBJN A,SCWAV2 + JRST SCWAV1 + +SCWAVT: 1100,,(A) + 111100,,@SCWAVT + 221100,,@SCWAVT + 331100,,@SCWAVT + ;CRRBK USES A,B,C,E; INITIALIZES N + +CRRBK: MOVE N,[(2200)SLAK-1 + PUSHJ P,R3B + JRST .-1 + CAIL A,400000 + JRST SPOPJ + MOVEM A,CRBSP' + JRST CRBC + +CRBLOK: CONO PTR,20 + PUSHJ P,R3B + JRST .-1 + CAME A,CRBSP + JRST REALLY + +CRBC: PUSHJ P,R3B + JRST CRBLOK + ADD A,CRBSP + MOVEM A,CRCKSM' + SUB A,CRBSP + SUB A,CRBSP + CAILE A,0 + CAILE A,100 + JRST 4,CRBLOK + MOVE C,[(2200)SLAK-1 + MOVEM A,E + +CRBWD: PUSHJ P,R3B + JRST CRBLOK + IDPB A,C + ADD A,CRCKSM + CAIL A,-1 + SUBI A,-1 + MOVEM A,CRCKSM + SOJG E,CRBWD + +CR1R: PUSHJ P,R3B + JRST CRBLOK + CAME A,CRCKSM + JRST 4,CRBLOK + POPJ P, + +R3B: PUSHJ P,R1B + POPJ P, + MOVE B,A + PUSHJ P,R1B + POPJ P, + ROT A,-6 + ROTC A,6 + PUSHJ P,R1B + POPJ P, + ROT A,-6 + ROTC A,-30. + JRST SPOPJ + +R1B: PUSHJ P,RPA + CAIL A,400 + JRST 4,CPOPJ + TRZE A,200 + TRZE A,100 + JRST R1B +SPOPJ: AOS (P) +CPOPJ: POPJ P, + +RPA: CONSO PTR,10 + JRST .-1 + DATAI PTR,A + POPJ P, + +TYI": + .IOT 1,A + POPJ P, + +CRLFQ: SKIPE BKD' + POPJ P, + +CRLF": MOVEI A,15 + PUSHJ P,TYO + SKIPA A,[12] +TYO6": ADDI A,40 +TYO": + .IOT 2,A + POPJ P, + +IFE 6V,[ +PSGTR: MOVEM B,PSGTRP' + MOVE 0,[(SAVAC)1] + BLT 0,17 + MOVE B,[440700,,[ASCII . +/STOP \.]] + SKIPN PSGTRP + MOVE B,[440700,,[ASCII . +/VOICE \.]] + SKIPN PSGTRP + MOVEM A,PSGTRP + PUSHJ P,DOSAY5 + MOVE A,PSGTRP + PUSHJ P,DPT + MOVE B,[440700,,[ASCII . NOT SPECIFIED/ +\.]] + JUMPE 0,PSGTR6 + MOVE B,[440700,,[ASCII . HARMONICS\.]] + PUSHJ P,DOSAY5 + HRRZ C,0 + PUSHJ P,DOSAY6 + MOVE B,[440700,,[ASCII . NOT BUILT/ +\.]] +PSGTR6: PUSHJ P,DOSAY5 + JRST PLDONE + + +VOXPT: TDZA G,G ;ASSIGN HST TO VOICE +VOXCD: MOVEI G,1 + MOVEI B,HARMON + PUSHJ P,GET + JRST VOXCD1 ;NOT HST + VOXCD2: MOVEI J,1(A) + PUSHJ P,NUMVLV + JUMPLE A,BADATA ;NOT NOTHING EITHER + CAMLE A,VOXSLT(G) + JRST BADATA + MOVEM J,@VOXSTT(G) + JRST DONE + +VOXCD1: MOVEI B,0 + PUSHJ P,GET + JRST BADATA + JRST VOXCD2 + +VOXSTT: PSGTLT(A)-1 + HARCOD(A)-1 + +VOXSLT: 10 + 30 +] + +DPT: JUMPGE A,DPT1 + MOVN B,A + MOVEI A,"- + PUSHJ P,TYO + MOVE A,B + +DPT1: IDIVI A,10. + JUMPE A,TYN + PUSH P,B + PUSHJ P,DPT + POP P,B + +TYN: MOVEI A,60(B) + JRST TYO + +TTYON: +TTYOFF: POPJ P, + IFN 6V,[ +HARAUG: +HARSCL: +HARBLD: +PLGOA: +PSGOA: +PLWHOA: +VOXPT: +VOXCD: MOVE B,[440700,,[ASCII ./SORRY, NO PLAYER ROUTINES +\.]] + JRST DEATH" +] +IFE 6V,[ +;MI PLAYER, ENTER AT PLGOA + +PSGOA: SKIPA A,[PSGTF] +PLGOA: MOVEI A,PLWHY1 + HRRM A,PLWHY + PUSHJ P,CRLFQ + PUSHJ P,TTYON + JRST PLGO + +PLGNP: ADDI H,1 + SKIPGE COML(H) + JRST PLDNE + HRRZ A,COML(H) + HLRZ B,SYMS(A) + CAIE B,UNSTRU + JRST NOTSTR + MOVE B,SYMS(A) + HRRM B,PLWHRE + HRRZM B,PSDATL + SKIPGE PLAYP +PLWHY: JRST + PUSHJ P,TUNER +PLWHYT: .ACCESS 16,[76] + .IOT 16,A ;SEE IF IT'S TUNED + AOJN A,PLWHYT + JRST PLWHY + +PLWHOA: SKIPL PLAYP + AOJA H,DO1 +PLWHA1: .ACCESS 16,[77] + .IOT 16,A + SOJL A,PLWHA3 + .ACCESS 17,PLWHAT(A) + .ACCESS 16,PLWHAT(A) + .IOT 16,D ;SAVE WORD + MOVE C,[-1,,[JRST 100]] + .IOT 17,C ;CLOBBER +PLWHA2: .ACCESS 16,[77] + .IOT 16,B + JUMPN B,PLWHA2 ;WAIT UNTIL STOPPED + MOVE C,[-1,,D] + .ACCESS 17,PLWHAT(A) + .IOT 17,C ;RESTORE +PLWHA3: AOJA H,DO1 + +PLWHAT: PLAY1 ;MI + PLAY2 ;DAC + +PLWHY1: MOVEI 0,0 + .ACCESS 17,[MUSDAT] +PLWHRE: HLRZ B, + AOS PLWHRE + HRRZ A,PLWHRE + SUBI A,(B) + HRL A,A + HRR A,PLWHRE + .IOT 17,A + .ACCESS 17,[77] + MOVE A,[-1,,[1]] + .IOT 17,A + .ACCESS 17,[76] + MOVE A,[-1,,[1]] + .IOT 17,A +PLDONE: +PLGO: PUSHJ P,NUMVAL +PLLCT: SOJL A,PLGNP ;YAWN + .RD710 A + ADDI A,700000 + .RD710 B + CAMGE B,A + JRST .-2 + JRST PLLCT + +PLDNE: JRST DONE +NOTSTR: MOVE B,[440700,,[ASCIZ ./UNSTRUCTURED MUSIC ONLY\.]] + PUSHJ P,DOSAY5 + JRST BADATA +] + +IFN 6V,[ +TUNEUP: +DETUNE: MOVE B,[440700,,[ASCII ./SORRY, NO PLAYER ROUTINES +\.]] + JRST DEATH" +] +IFE 6V,[ +TUNEUP: SKIPA A,[440.] +DETUNE: PUSHJ P,NUMVAL + MOVEM A,TUNVAL' + TLC A,232000 + FAD A,A + MOVE C,A + FMPR A,[.OP FDVR 52944.0 440.0] + MULI A,400 + TSC A,A + ASH B,-243(A) + FMPR C,[.OP FDVR 6442450994.0 440.0] + MULI C,400 + TSC C,C + ASH D,-243(C) + MOVEM D,PDP6P+1 + +TUNE1: MOVEM B,PDP6P +TUNER: .SUSET [.RUNAME,,A] + MOVEM A,PDP6B+1 + MOVEM A,PDP6C+1 + .OPEN 17,PDP6B + JRST NOPDP6 + .RESET 17, ;CLEAR CORE + .ACCESS 17,[73] + MOVE A,PDP6P1 + .IOT 17,A ;LOAD PROGRAM + .ACCESS 17,[37] + MOVE A,PDP6P2 + .IOT 17,A ;SET IT GOING + .OPEN 16,PDP6C + JRST NOPDP6 + SETOM PLAYP + MOVNI A,100 +PDOP1: .ACCESS 16,[37] + .IOT 16,B + AOJE B,PDOP2 + AOJL A,PDOP1 + MOVE B,[440700,,[ASCII . +/PLEASE START THE PDP-6 AT 100 +\.]] + PUSHJ P,DOSAY5 +PDOP2: POPJ P, + +NOPDP6: MOVE B,[440700,,[ASCII ./CAN'T GET PDP-6 +\.]] + JRST DEATH" + +PDP6B: 3,,(SIXBIT /USR/) + 0 + SIXBIT /PDP6/ +PDP6C: (SIXBIT /USR/) + 0 + SIXBIT /PDP6/ + +PDP6P1: PDP6P-PDP6PE,,PDP6P +PDP6P2: -3,,.+1 + 1 + 0 + JRST 100 + +CONSTANTS +VARIABLES + + PDP6P: OFFSET 73-. +PLRCM: 0 +PLRS9: 0 + 0 + 0 ;76: 0 UNTUNED, -1 WAITING, 1 TO GO + 0 ;77: 0 INITIALLY, 1 TO PLAY MI, 2 TO PLAY DAC +PGO: SETZM 77 ;100 + SETZM 37 +PLD: SKIPGE A,76 + JRST PLD + JUMPE A,PLD1 + MOVE A,77 + JRST @PLDT(A) +PLDT: PLD1 + PLMI + PLSC + +PLD1: CONO PI,11577 + CONO 200000 + MOVE A,[JSR PLRC1] + MOVEM A,42 + SETZM PLTAB + SETZM PLTAB+1 + SETZM PSTB4 + SETZM PSTB4+1 + MOVSI 15,400000 + MOVNI 14,60. + CONO PI,12300 + CONO 1000 + CONSO 1000 + JRST .-1 + CONO 1000 + CONO 2001 + JRST PLAY + +PLRC1: 0 + CONO 1001 + AOJGE 14,PLRC2 + JRST 12,@PLRC1 + +;INCREMENT TABLES, BUILT BY TUNEUP + + +PSTB1: BLOCK 100 +PSTB2: BLOCK 100 +PSTB3: BLOCK 100 +PSTB4: BLOCK 77 +PSTBT: BLOCK 1 + +PSTBX=PSTBT-14 + +PSTBE: + +PLRC2: CONO PI,11577 + HRRZ A,PLRC1 + SUBI A,PLAY + TLZ 15,400000 + IMULI 15,31 ;PLAY LOOP + ADD A,15 + MOVEI C,0 + MOVS D,PLRCM + DIV C,A + MOVEI A,PLTABX + MOVE P,PP + MOVEI F,PLTAB + MOVEI G,PLBOT + PUSHJ P,PLRCE + +PLRS: CONO 200000 + MOVE A,[JSR PLRS1] + MOVEM A,44 + MOVEI A,[(400000)]-1 + MOVEM A,PSDATL + MOVEI A,1 + EXCH A,PSTEMP + MOVEM A,PLPSTP' + MOVNI A,60. + MOVEM A,PLRS0' + CONO PI,12240 + CONO 1000 + CONSO 1000 + JRST .-1 + CONO 3002 + JRST PSGTF + +PLRS1: 0 + CONO 1002 + AOSGE PLRS0' + JRST 12,@PLRS1 + CONO PI,11577 + HRRZ A,PLRS1 + CAIL A,PSGTT3 + SUBI A,PSGTT3-27 + SUBI A,7 + TLZ 0,400000 + IMULI 0,16 + ADD A,0 + MOVEI C,0 + MOVE D,PLRS9 + ASHC C,3 + DIV C,A + MOVEI A,PSTBX + MOVE P,PP + MOVEI F,PSTB4 + MOVEI G,PSTB1 + PUSHJ P,PLRCE + MOVE A,PLPSTP + MOVEM A,PSTEMP + SETOM 76 + JRST 100 + + + +PLRCE: MOVE B,C + +PLRC3: HRRM A,PLRC4 + MOVEI E,13 + +PLRC4: MOVEM C,(E) + MUL C,[(361503)374705] + SOJGE E,.-2 + ASH B,-1 + MOVE C,B + SUBI A,14 + CAML A,F + JRST PLRC3 + +PLRC5: MOVEM C,13(A) + MOVEI A,-2(F) + MOVE C,100(A) + MUL C,DTC + MOVEM C,(A) + CAMLE A,G + SOJA A,.-4 + POPJ P, + +DTC: (377200) + +DEFINE PART N +P!N: ADDI N, +III==1_<6-N> + TLNE N,1 + TROA III + TRZ III +TERMIN + + +PLMI: SETOM 76 + MOVEI 0,0 + MOVEI 17,MUSDAT + JRST PLGT + +PLOFF: ASH 15,-7 + HLLZS @PLACC(15) +PLGT: HLLE 15,(17) ;GET DURATION + IDIV 15,PLTEMP + JUMPE 15,PLGE + +PLAY: REPEAT 6,PART \.RPCNT+1 +PLAY1: MOVEM 32 ;MI ON 32 ALSO + AOJL 15,PLAY + +PLGE: HRRZ 15,(17) ;NOTE + JUMPE 15,PGO ;DONE? + TRZN 15,EVENON ;BEG OF CHORD? + AOJA 17,PLOFF + ANDCMI 15,374000 + IDIVI 15,200 + MOVE 14,@PLGET(15) + HRRM 14,@PLACC(15) + AOJA 17,PLGT +] +IFE 6V,[ +PLTEMP: 200000 + + +PLACC: P1 + P2 + P3 + P4 + P5 + P6 + P1 + P2 + +PLGET: PLTB1(16)+1 ;POINTERS TO FREQ TABLE + PLTB2(16)+1 + PLTB3(16)+1 + PLTB4(16)+1 + PLTB5(16)+1 + PLTB6(16)+1 + PLTB1(16)+1 + PLTB2(16)+1 + + +PLBOT: BLOCK 500 +PLTAB: BLOCK 77 +PLTABT: BLOCK 1 +PLTABX=PLTABT-14 +PLTB1=PLBOT +PLTB2=PLTB1+100 +PLTB3=PLTB2+100 +PLTB4=PLTB3+100 +PLTB5=PLTB4+100 +PLTB6=PLTB5+100 + + +PSGTF: MOVE 0,[(PSGTT)7] + BLT 0,17 + MOVE 0,[(PSGTTL)PSGTT3] + BLT 0,PSGCCF + MOVE A,PSGTLT + HRRM A,PSGTT1-R + MOVE A,PSGTLT+1 + HRRM A,PSGTT2-R + MOVE A,PSGTLT+2 + HRRM A,PSGTT3 + MOVE A,PSGTLT+3 + HRRM A,PSGTT4 + JRST PSGT + +PSTEMP: 200000 + +PSGTT: ADDI C,0 + LDB B,PSGCCC +PSGTT1: MOVE A,(B) + ADDI D,0 + LDB B,PSGCCD +PSGTT2: ADD A,(B) + ADDI E,0 + LDB B,PSGCCE + JRST PSGTT3 ;17 +PSGTTL: +PSGTT3: ADD A,(B) + ADDI F,0 + LDB B,PSGCCF +PSGTT4: ADD A,(B) +PLAY2: MOVEM A,32 + AOJL 0,7 + +PSGTB: HRRZ A,@PSDATL + TRZE A,EVENON+374000 + JRST PSGTA + JUMPE A,PGO +PSOFF: ASH A,-7 + HLLZS @PSPT(A) +PSGT: AOS A,PSDATL + HLLE 0,(A) + IDIV 0,PSTEMP + XCT 7 + XCT 12 + XCT 15 + XCT PSGTT3+1 + JUMPN 0,7 + JRST PSGTB + +PSGTA: IDIVI A,200 + MOVE 0,@PSGTAT(A) + HRRM 0,@PSPT(A) + LDB B,[130600,,@PSDATL] + MOVE 0,@PSGY(B) + JUMPLE 0,PSGTR + HRRM 0,@PSGTTT(A) + XCT 7 + XCT 12 + XCT 15 + XCT PSGTT3+1 + JRST PSGT + + ;32 IS D-A LOC + +R==PSGTT-7 + +PSPT: 7 + 12 + 15 + PSGTT3+1 + 7 + 12 + 15 + PSGTT3+1 + +PSGY: PSGTLT(A) + REPEAT 30,HARCOD(B)-1 + +PSGTAT: PSTB1(B)+1 + PSTB2(B)+1 + PSTB3(B)+1 + PSTB4(B)+1 + PSTB1(B)+1 + PSTB2(B)+1 + PSTB3(B)+1 + PSTB4(B)+1 + +PSGTTT: PSGTT1-R + PSGTT2-R + PSGTT3 + PSGTT4 + PSGTT1-R + PSGTT2-R + PSGTT3 +PSGTTE: PSGTT4 +PSGCCC: 121000,,C +PSGCCD: 121000,,D +PSGCCE: 121000,,E +PSGCCF: 121000,,F + +CONSTANTS +VARIABLES +PP: -10,,PPBK-1 +PPBK: BLOCK 10 + +PSDATL: 0 +PSGTLT: BLOCK 10 +HARCOD: BLOCK 30 +HARCDE: +MUSDAT: OFFSET 0 ;-DURATION,,EVENON+VOICE*200+PTR TO FREQ? +PDP6PE: +] + +SYMTAB: SIXBIT /0 1 2 3 4 5 6 7 8 9 ZERO ONE TWO THREE FOUR FIVE/ + SIXBIT / SIX SEVEN EIGHT NINE C D E F G A B ST ND RD TH / + SIXBIT /DETEMPO - MINUS SOPRANO ALTO TENOR B/ + SIXBIT /ASS FORGET ALL EXCEPT READOLD TUNEUP TEMPO PLOLD/ + SIXBIT / VALUE K M THOUSAND MILLION MENTION ENTITLE ENTE/ + SIXBIT /R TAPES READ WRITE [ ] = PLSCOPE , : ; BUILD BUI/ + SIXBIT /LDON JRST MELGEN KEYBOARD TUNING FROM TO TRANSLA/ + SIXBIT !TE PLEASE SCRIPT SCRIPTSIZE VOLBUILD # READNEW V! + SIXBIT /OICE STOP ++ VIEWWAVE INTREAD SCRIPTSPACE SCRIPT/ + SIXBIT /MNINT AGAIN * ** ^ SLURDENS ARDS TREBLE SCRIPTCL/ + SIXBIT /EF ? NOPLAY WHOA SCLBUILD PRINT SYN SYNONYM / + BLOCK SYMTAB-.+SYTLL +SYTEND: + +SYMS: REPEAT 2,[ZZZ=0 + REPEAT 10.,[(NUMBER)ZZZ + ZZZ=ZZZ+1 + ]] + REPEAT 7,[(TONUS)ZZZ-10. + ZZZ=ZZZ+1 + ] + REPEAT 4,(ORDFLG) + (PARAM)3 + (MINUS) + (MINUS) + (CLEF)7 + (CLEF)6 + (CLEF)5 + (CLEF)4 + (ERASER)0 + MODALL + MODEXC + (CREATE)0 + (GOTO)0 + (PARAM)4 + (PLAYER)0 + (GOTO)1 + (MULTIP)MULTAB + (MULTIP)MULTAB+1 + (MULTIP)MULTAB + (MULTIP)MULTAB+1 + (ERASER)1 + (GOTO)2 + + + (GOTO)3 + (GOTO)4 + (CREATE)1 + (GOTO)5 + (BRAKET)0 + (BRAKET)1 + (GOTO)6 + (PLAYER)1 + PUNCCM + PUNCCL + PUNCSC + (GOTO)7 + (GOTO)10 + (GOTO)11 + (CREATE)2 + (CREATE)3 + (GOTO)12 + PUNCFM + PUNCTO + (TRANSL)0 + MODPLS + (SCRIB)0 + (PARAM)5 + (GOTO)13 + PUNCSL + (CREATE)4 + (GOTO)14 + (GOTO)15 + (CREATE)5 + (GOTO)16 + (CREATE)6 + (PARAM)1 + (PARAM)2 + MODAGN + (STAR)0 + (STAR)1 + (STAR)2 + (PARAM)6 + (PARAM)7 + (CLEF)2 + (GOTO)17 + (CLEF),-1 + (GOTO)20 + (GOTO)21 + (GOTO)22 + (GOTO)23 + (GOTO)24 + (GOTO)24 + BLOCK SYMS-.+SYMLL + +TWTABL: BLOCK 12 ;ROOTS OF 2 + 0 +DONEW: DONE ;USED BY PC HACKS +PLSC: .VALUE + JRST DONE + + 0 +STRING: BLOCK STRLL + 0 +SLAK: BLOCK SLAKLL +COML: BLOCK COMLL +COMSL: BLOCK COMLL +TEMPF: BLOCK NLINES +LOCA: BLOCK NLINES +MEAS: BLOCK NLINES +MSTM: BLOCK NLINES +ALIVE: BLOCK ALIVEL +PDLSE: LOSE +PDL": BLOCK PDLL +XPDL: BLOCK XPDLL +YPDL: BLOCK YPDLL +TITL: 0 + BLOCK TITLL-1 + +TAPTAB: 0 + BLOCK NDIR-1 + +PLWN: BLOCK NRNO +SAVAC: BLOCK 17 + +PATCH": BLOCK 100 + +MULTAB: 1000 + 1000000 + 1000. + 1000000. + +TYPE: -1 + 0 ;! + -1 ;" + -1 ;# + 0 ;$ + 0 ;% + 0 ;& + -1 ;' + -1 ;( + -1 ;) + 1 ;* + 1 ;+ + -1 ;, + -1 ;- + 0 ;. + -1 ;/ + -1 ;0 + -1 ;1 + -1 ;2 + -1 ;3 + -1 ;4 + -1 ;5 + -1 ;6 + -1 ;7 + -1 ;8 + -1 ;9 + -1 ;: + -1 ;; + -1 ;< + 1 ;= + -1 ;> + -1 ;? + -1 ;@ + 0 ;A + 0 ;B + 0 ;C + 0 ;D + 0 ;E + 0 ;F + 0 ;G + 0 ;H + 0 ;I + 0 ;J + 0 ;K + 0 ;L + 0 ;M + 0 ;N + 0 ;O + 0 ;P + 0 ;Q + 0 ;R + 0 ;S + 0 ;T + 0 ;U + 0 ;V + 0 ;W + 0 ;X + 0 ;Y + 0 ;Z + -1 ;[ + -1 ;\ + -1 ;] + 1 ;^ + 1 ;_ + + + VARIAB + CONSTA +FREE": +LOC FRETOP +FREEND": + + +DEFINE MESS A,B +PRINTX ?A!B +? +TERMIN + +IF2,MESS [LENGTH OF FREE STORAGE = ]\FREEND-FREE + + +END SETUPX +                                                                                                                                 \ No newline at end of file