Home » Archimedes archive » Archimedes World » AW-1995-04-Disc2.adf » Disk2Apr95 » !AWApr95/Goodies/HQ-Tracker/!HQTracker/!RunImage
!AWApr95/Goodies/HQ-Tracker/!HQTracker/!RunImage
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Archimedes World » AW-1995-04-Disc2.adf » Disk2Apr95 |
Filename: | !AWApr95/Goodies/HQ-Tracker/!HQTracker/!RunImage |
Read OK: | ✔ |
File size: | FCAD bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
60UV=-1:ONERRORMODEMODE:PRINT"Fatal Error : ";REPORT$;" at Line ";ERL:END 100PROCUW:ONERRORPROCUX 130PROCUY:END 180DEFPROCUW:UZ=4:Ua=2:Ub=1:Uc=-2:Ud$="HQTracker":Ue$="HQTracker":Uf=&2000:Ug=&3E0:Uh=4*1024 :DIMUi Uh:Uj=4*1024 :DIMUk Uj:Ul=11*1024 :DIMUm Ul:Un=7*1024 :DIMUo Un:Up=5*1024 :DIMUq Up:Ur=8*1024 :DIMUs Ur:Ut=4*1024 :DIMUu Ut:Uv=8*1024 :DIMUw Uv:Ux=32*1024 :DIMUy Ux:DIMUz 32*1024 450VU=12:DIMVV$(VU):DIMVW(VU):VX=32:DIMVY$(VX):DIMVZ(VX):Va= NOTTRUE:Vb=0:Vc= NOTTRUE:Vd=FNction_InitialiseTask(2*100,Ue$):Ve=0:PROCVf:PROCVg:PROCVh:PROCVi:Vj=FNction_IconbarSprite(Uk):Vk=FNction_InstallHelp:PROCVl:Vm=!Vn:PROCVo:Vp=0:VV$()="":VW()= NOTTRUE:Vq=0:VY$()="":VZ()=0:PROCVr("<None!>"):PROCVs 740IF NOTVc THEN 750PROCVt:IF NOTVc THEN 770PROCVu:IF NOTVc THEN 790Vv= NOTTRUE:Vw=1:Vx=1:PROCVy:Vz= NOTTRUE:WU= NOTTRUE:WV=0 860ENDIF 870ENDIF 880ENDIF:ENDPROC 930DEFPROCUY:PROCWW:REPEAT:WX=FNction_PollWimp(Ui,Vb):CASEWX OF 980WHEN0:IFVz THENPROCWY 990IFWU THENPROCWZ 1000IFWV=3 THENPROCWa 1010WHEN1:PROCWb(Ui) 1020WHEN2:PROCWc(Ui,Uk,-1,TRUE):CASE!Ui OF 1040WHENWd:PROCWe(Uk,Wd,Wf,0,0) 1050WHENWg:PROCWe(Uk,Wg,Wh,8,8) 1060WHENWi:PROCWe(Uk,Wi,Wj,8,8) 1070WHENWk:PROCWe(Uk,Wk,Wl,8,164+8) 1080WHENWm:PROCWe(Uk,Wm,Wn,8,4) 1090ENDCASE 1100WHEN3:PROCWo(Uk,Ui!0):CASE!Ui OF 1120WHENWd:PROCWo(Uk,Wf) 1130WHENWg:PROCWo(Uk,Wh) 1140WHENWi:PROCWo(Uk,Wj) 1150WHENWk:PROCWo(Uk,Wl) 1160WHENWm:PROCWo(Uk,Wn) 1170ENDCASE 1180WHEN6:PROCWp(Ui) 1190WHEN7:PROCWq(Ui) 1200WHEN8:PROCWr(Ui) 1210WHEN9:PROCWs(Ui) 1220WHEN17:PROCWt(Ui) 1230WHEN18:PROCWt(Ui) 1240ENDCASE:UNTILVc:PROCWu(Vk):PROCWv(Vd):SYS&900C6,UV:SYS&2002A,1,-4096*1024:ENDPROC 1330DEFPROCVs:Ww= NOTTRUE:SYS&900C1,32+1+1 TOWx,UV:CASEWx OF 1370WHEN0:Ww=TRUE:Wy$="err29" 1390WHEN1:Ww=TRUE:Wy$="err30" 1410ENDCASE:IFWw THEN 1430Ww$=FNction_TagToString(Vk,Wy$):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE):Vc=TRUE:UV=-1 1470ENDIF:ENDPROC 1540DEFFNction_IconbarSprite(XU):XU!0=-1:XU!4=0:XU!8=0:XU!12=68:XU!16=68:XU!20=&3002:$(XU+24)="!"+Ud$+CHR$0:SYS&400C2,,XU TOXV:=XV 1660DEFPROCWp(XW):XX=XW!0:XY=XW!4:XZ=XW!8:Xa=XW!12:XV=XW!16:CASEXZ OF 1730WHENUZ:CASEXa OF 1740WHENXb:IFXV=3 THEN 1750PROCWo(Uk,Xa):PROCXc 1770ENDIF 1780WHENXd:IFXV=5 THEN 1790PROCWo(Uk,Xa):PROCXe(Uk) 1810ENDIF 1820WHENUc:IFXV=Vj THEN 1830PROCXf(Uk,Wd):PROCWe(Uk,Wd,Wf,0,0):PROCXg(Wd,-1,0) 1860ENDIF 1870WHENWg:CASEXV OF 1880WHEN0:PROCXh 1890WHEN1:PROCWo(Uk,Wg):PROCWo(Uk,Wh):PROCXi 1920WHEN2:PROCWo(Uk,Wg):PROCWo(Uk,Wh):PROCXj 1950ENDCASE 1960WHENWh:CASEXV OF 1970WHEN2,5,3,4:PROCXk(Uk,Wh,XV) 1980WHEN10,11,12,13:PROCXl(XX,XY,XV-7) 1990WHEN26:PROCXm(XX,XY,7) 2000WHEN30:PROCXn(Uk,Wh,17,+1,1,15) 2010WHEN31:PROCXn(Uk,Wh,17,-1,1,15) 2020WHEN20:PROCXn(Uk,Wh,18,+1,1,127) 2030WHEN21:PROCXn(Uk,Wh,18,-1,1,127) 2040WHEN33:PROCXn(Uk,Wh,32,+1,1,256) 2050WHEN34:PROCXn(Uk,Wh,32,-1,1,256) 2060ENDCASE 2080WHENWf:CASEXV OF 2090WHEN2:PROCXo(XX,XY) 2100WHEN6:PROCXp(XX,XY) 2110WHEN8:PROCXq(XX,XY) 2120OTHERWISE:Vv= NOTTRUE:PROCXr 2150ENDCASE 2170WHENWi:CASEXV OF 2180WHEN0:PROCXs 2190WHEN1:PROCWo(Uk,Wi):PROCWo(Uk,Wj) 2210ENDCASE 2220WHENWj:PROCXt(Ui,TRUE) 2240WHENWd:IF NOTWU AND NOTWU THEN 2250Vv=TRUE:PROCXr:PROCXu(Ui) 2280ENDIF 2300WHENXv:IFXV=2 THENPROCXw(FNction_ReadIconText(Uk,Xv,1), NOTTRUE) 2310WHENXx:IFXV=2 THENPROCXy(FNction_ReadIconText(Uk,Xx,1), NOTTRUE) 2320WHENXz:IFXV=2 THENPROCYU(FNction_ReadIconText(Uk,Xz,1), NOTTRUE) 2330WHENWk:CASEXV OF 2340WHEN2:PROCXp(XX,XY):Ve=11 2360WHEN3:PROCYV(0) 2370WHEN4:PROCYV(-1) 2380WHEN5:PROCYW 2390WHEN6:Ww$=FNction_TagToString(Vk,"war06"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$,TRUE,TRUE):IFWz=1 THEN 2420PROCYX:PROCYY:PROCYZ(Uk,Wl) 2450ENDIF 2460ENDCASE 2470WHENWl:PROCYa(Ui) 2500WHENYb:CASEXV OF 2510WHEN0:PROCXk(Uk,Xa,XV):PROCYc 2530WHEN6:PROCXk(Uk,Xa,XV):PROCYc 2550WHEN12:PROCXk(Uk,Xa,XV):PROCYc 2570WHEN2:PROCXo(XX,XY):Ve=12 2590WHEN5:PROCXo(XX,XY):Ve=13 2610WHEN8:PROCYd(XX,XY,14) 2620WHEN11:PROCYd(XX,XY,15) 2630WHEN14:PROCYe(XX,XY,16) 2640WHEN17:PROCYe(XX,XY,17) 2650WHEN18:PROCYf(TRUE) 2660ENDCASE 2680WHENYg:CASEXV OF 2690WHEN0:PROCXk(Uk,Xa,XV):PROCYh 2710WHEN6:PROCXk(Uk,Xa,XV):PROCYh 2730WHEN14:PROCXk(Uk,Xa,XV):PROCYh 2750WHEN23:PROCXk(Uk,Xa,XV):PROCYh 2770WHEN2:PROCXl(XX,XY,18) 2780WHEN5:PROCXl(XX,XY,19) 2790WHEN8:PROCXn(Uk,Xa,7,+1,0,127) 2800WHEN9:PROCXn(Uk,Xa,7,-1,0,127) 2810WHEN12:PROCXn(Uk,Xa,11,+1,0,127) 2820WHEN13:PROCXn(Uk,Xa,11,-1,0,127) 2830WHEN16:PROCXn(Uk,Xa,15,+1,1,15) 2840WHEN17:PROCXn(Uk,Xa,15,-1,1,15) 2850WHEN20:PROCXn(Uk,Xa,19,+1,1,15) 2860WHEN21:PROCXn(Uk,Xa,19,-1,1,15) 2870WHEN22:PROCYi(TRUE) 2890WHEN27:PROCXn(Uk,Xa,24,+1,-999,+999) 2900WHEN28:PROCXn(Uk,Xa,24,-1,-999,+999) 2920WHEN29:PROCXn(Uk,Xa,26,+1,-999,+999) 2930WHEN30:PROCXn(Uk,Xa,26,-1,-999,+999) 2950ENDCASE 2970WHENYj:CASEXV OF 2980WHEN1:PROCXk(Uk,Xa,XV) 2990WHEN8:PROCYk 3000WHEN9:PROCYl 3010ENDCASE 3030WHENWm:CASEXV OF 3040WHEN2:PROCYm(+1) 3050WHEN3:PROCYm(-1) 3060WHEN4:PROCYn(+1) 3070WHEN5:PROCYn(-1) 3080WHEN10:PROCYo(+1) 3090WHEN11:PROCYo(-1) 3100WHEN12:PROCWo(Uk,Wm):PROCWo(Uk,Wn) 3120WHEN14:PROCYp 3130ENDCASE 3150WHENYq:CASEXV OF 3170WHEN0:PROCYr("C ",+0) 3180WHEN1:PROCYr("D ",+0) 3190WHEN2:PROCYr("E ",+0) 3200WHEN3:PROCYr("F ",+0) 3210WHEN4:PROCYr("G ",+0) 3220WHEN5:PROCYr("A ",+0) 3230WHEN6:PROCYr("B ",+0) 3240WHEN14:PROCYr("C#",+0) 3250WHEN15:PROCYr("D#",+0) 3260WHEN16:PROCYr("F#",+0) 3270WHEN17:PROCYr("G#",+0) 3280WHEN18:PROCYr("A#",+0) 3300WHEN7:PROCYr("C ",+1) 3310WHEN8:PROCYr("D ",+1) 3320WHEN9:PROCYr("E ",+1) 3330WHEN10:PROCYr("F ",+1) 3340WHEN11:PROCYr("G ",+1) 3350WHEN12:PROCYr("A ",+1) 3360WHEN13:PROCYr("B ",+1) 3380WHEN19:PROCYr("C#",+1) 3390WHEN20:PROCYr("D#",+1) 3400WHEN21:PROCYr("F#",+1) 3410WHEN22:PROCYr("G#",+1) 3420WHEN23:PROCYr("A#",+1) 3440ENDCASE 3460ENDCASE 3470WHENUa:CASEXa OF 3480WHENUc:IFXV=Vj THENPROCYs(XX) 3490WHENWd:PROCYt(XX,XY) 3500ENDCASE 3510WHENUb:CASEXa OF 3520WHENWg:CASEXV OF 3530WHEN0:PROCXh 3540WHEN1:PROCWo(Uk,Wg):PROCWo(Uk,Wh):PROCXi 3570WHEN2:PROCXj 3580ENDCASE 3590WHENWh:CASEXV OF 3600WHEN2,5,3,4:PROCXk(Uk,Wh,XV) 3610ENDCASE 3620WHENWf:CASEXV OF 3630WHEN4:PROCXk(Uk,Xa,XV):Vv= NOTVv:PROCXr 3660ENDCASE 3670WHENWj:PROCXt(Ui, NOTTRUE) 3680WHENXv:IFXV=2 THENPROCXw(FNction_ReadIconText(Uk,Xv,1),TRUE) 3690WHENXx:IFXV=2 THENPROCXy(FNction_ReadIconText(Uk,Xx,1),TRUE) 3700WHENXz:IFXV=2 THENPROCYU(FNction_ReadIconText(Uk,Xz,1),TRUE) 3710WHENWm:CASEXV OF 3720WHEN2:PROCYm(+20) 3730WHEN3:PROCYm(-20) 3740WHEN4:PROCYn(+20) 3750WHEN5:PROCYn(-20) 3760WHEN10:PROCYo(+5) 3770WHEN11:PROCYo(-5) 3780ENDCASE 3790WHENYb:CASEXV OF 3800WHEN18:PROCYf( NOTTRUE) 3810ENDCASE 3830WHENYg:CASEXV OF 3840WHEN22:PROCYi( NOTTRUE) 3850ENDCASE 3860ENDCASE 3870WHEN64,16:CASEXa OF 3880WHENXv:IFXV=0 THENWV=1:Wz=FNction_BeginDrag(Uk,Xa,XV) 3890WHENXx:IFXV=0 THENWV=1:Wz=FNction_BeginDrag(Uk,Xa,XV) 3900WHENXz:IFXV=0 THENWV=1:Wz=FNction_BeginDrag(Uk,Xa,XV) 3910WHENWd:IF NOTWU THENPROCYu(XX,XY):WV=2 3920WHENWn:PROCYv(XX,XY):WV=3 3930ENDCASE 3940ENDCASE:ENDPROC 3980DEFPROCYu(Yw,Yx):Yy=FNction_RowClickedOn(Yw,Yx):Yz=FNction_ColumnClickedOn(Yw,Yx):Uk!0=Wd:Uk!4=6:Uk!8=Yw:Uk!12=Yx:Uk!16=Yw:Uk!20=Yx:Uk!24=Wd:SYS&400CC,,Uk+24:ZU=Uk!44:ZV=Uk!48:Uk!24=Uk!28:Uk!28=Uk!32:Uk!32=Uk!36:Uk!36=Uk!40-56:ZW=Uk!24:ZX=Uk!32 4120ZY=Uk!28:ZZ=Uk!36:SYS&400D0,,Uk:Za=Yw:Zb=Yw:Zc=Yx:Zd=Yx:PROCZe(Za,Zc,Zb,Zd):ENDPROC 4200DEFPROCZf(Yw,Yx):Zg=Yy:Zh=Yz:Zi=FNction_RowClickedOn(Yw,Yx):Zj=FNction_ColumnClickedOn(Yw,Yx):Zk=2:Zl=Zm:IFZg>Zi THENSWAPZg,Zi 4280IFZh>Zj THENSWAPZh,Zj 4290PROCYZ(Uk,Wd):ENDPROC 4330DEFPROCZe(Zn,Zo,Zp,Zq):Uk!256=Wd:SYS&400CB,,Uk+256:Zr=Uk!(256+4):Zs=Uk!(256+8):Zt=Uk!(256+12):Zu=Uk!(256+16)-56:VDU24,Zr;Zs;Zt;Zu;:SYS&400E6,48+15:RECTANGLEZn,Zo,Zp-Zn,Zq-Zo:ENDPROC 4460DEFPROCWr(XW):Xa=XW!0:XV=XW!4:Zv=XW!24:CASEXa OF 4530WHENWh:IFXV=32 THEN 4540PROCWo(Uk,Wg):PROCWo(Uk,Wh):PROCXj 4570ENDIF 4590WHENYg:IFZv=13 THEN 4600PROCYi(TRUE) 4610ENDIF 4630WHENZw:IFXV=3 THEN 4640SYS&400D4,,-1:Ve=0 4650ENDIF 4670WHENXv:IFXV=1 ANDZv=13 THEN 4680PROCXw(FNction_ReadIconText(Uk,Xv,1)):SYS&400D4,,-1:Ve=0 4700ENDIF 4720WHENXx:IFXV=1 ANDZv=13 THEN 4730PROCXy(FNction_ReadIconText(Uk,Xx,1)):SYS&400D4,,-1:Ve=0 4750ENDIF 4770WHENXz:IFXV=1 ANDZv=13 THEN 4780PROCYU(FNction_ReadIconText(Uk,Xz,1)):SYS&400D4,,-1:Ve=0 4800ENDIF 4820WHENWf:IFXV=1 ANDZv=13 THEN 4840Zx$=FNction_PathnameOnly(VY$(Zy)):Zz$=FNction_ReadIconText(Uk,Wf,1):IFZz$<>"" THEN 4880IFFNction_InstrumentAlreadyLoaded(Zx$+"."+Zz$) THEN 4890Ww$=FNction_TagToString(Vk,"err27"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 4910ELSE:VY$(Zy)=Zx$+"."+Zz$ 4930ENDIF 4940ENDIF:PROCaU(Uk,Wf,1,FNction_LeafnameOnly(VY$(Zy))):PROCaV 4990ENDIF 5010WHENWd:CASEZv OF 5030WHENASC"C"-64:IF NOTWU ANDZk<>0 THENPROCaW 5040WHENASC"V"-64:IF NOTWU ANDZk<>0 THENPROCaX 5050WHENASC"X"-64:IF NOTWU ANDZk<>0 THENPROCaY 5060WHENASC"M"-64:IF NOTWU ANDZk<>0 THENPROCaZ 5070WHENASC"Z"-64:IF NOTWU THENPROCVy 5080WHENASC"I"-64:IF NOTWU ANDVp>0 THENPROCaa 5090WHENASC"R"-64:IF NOTWU ANDVq>0 THEN 5100PROCab(FNction_ReadIconText(Uk,Wf,1)):IFVe=9 THEN 5120SYS&400D4,,-1 5130ENDIF 5140ENDIF 5150WHENASC"P"-64:IF NOTWU THEN 5160Wx=FNction_Insert_Pattern:IF NOTWx THEN 5180Ww$=FNction_TagToString(Vk,"err06"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 5200ENDIF 5210ENDIF 5220WHENASC"K"-64:IF NOTWU THENPROCac 5230WHENASC"J"-64:IF NOTWU THEN 5240IFVv THEN 5250PROCaU(Uk,ad,1,"1"):PROCWc(Ui,Uk,ad, NOTTRUE):PROCXg(ad,1,1) 5280ENDIF 5290ENDIF 5310WHEN&183:PROCae(Xz) 5320WHEN&193:IFVq>0 THENPROCae(Xv) 5330WHEN&1A3:PROCae(Xx) 5340WHEN&1A1:PROCaf:PROCae(Zw) 5370WHENASC"Z",ASC"z":PROCYr("C ",+0) 5380WHENASC"S",ASC"s":PROCYr("C#",+0) 5390WHENASC"X",ASC"x":PROCYr("D ",+0) 5400WHENASC"D",ASC"d":PROCYr("D#",+0) 5410WHENASC"C",ASC"c":PROCYr("E ",+0) 5420WHENASC"V",ASC"v":PROCYr("F ",+0) 5430WHENASC"G",ASC"g":PROCYr("F#",+0) 5440WHENASC"B",ASC"b":PROCYr("G ",+0) 5450WHENASC"H",ASC"h":PROCYr("G#",+0) 5460WHENASC"N",ASC"n":PROCYr("A ",+0) 5470WHENASC"J",ASC"j":PROCYr("A#",+0) 5480WHENASC"M",ASC"m":PROCYr("B ",+0) 5500WHENASC"Q",ASC"q":PROCYr("C ",+1) 5510WHENASC"2",ASC"2":PROCYr("C#",+1) 5520WHENASC"W",ASC"w":PROCYr("D ",+1) 5530WHENASC"3",ASC"3":PROCYr("D#",+1) 5540WHENASC"E",ASC"e":PROCYr("E ",+1) 5550WHENASC"R",ASC"r":PROCYr("F ",+1) 5560WHENASC"5",ASC"5":PROCYr("F#",+1) 5570WHENASC"T",ASC"t":PROCYr("G ",+1) 5580WHENASC"6",ASC"6":PROCYr("G#",+1) 5590WHENASC"Y",ASC"y":PROCYr("A ",+1) 5600WHENASC"7",ASC"7":PROCYr("A#",+1) 5610WHENASC"U",ASC"u":PROCYr("B ",+1) 5630WHENASC" ":PROCag 5640WHENASC"=":ah=VALFNction_ReadIconText(Uk,Wf,7):ah+=-1* (ah<7):PROCaU(Uk,Wf,7,STR$ah) 5670WHENASC"-":ah=VALFNction_ReadIconText(Uk,Wf,7):ah-=-1* (ah>1):PROCaU(Uk,Wf,7,STR$ah) 5710WHEN20 5730WHEN&186:IF NOTWU THENPROCai 5740WHEN&18C:PROCaj(-1,0) 5750WHEN&18D:PROCaj(+1,0) 5760WHEN&18F:PROCaj(0,-1) 5770WHEN&18E:PROCaj(0,+1) 5780WHEN&1B:Vv= NOTTRUE:PROCXr 5810ENDCASE 5830WHENad:IFXV=1 ANDZv=13 THEN 5840PROCak 5850ENDIF 5870ENDCASE:PROCal(Zv):ENDPROC 5940DEFPROCae(Xa):SYS&400CF,,Uk+1024:SYS&400D4,,Xa,Uk!(1024+0),Uk!(1024+4):ENDPROC 6000DEFPROCWt(XW):CASEXW!16 OF 6020WHEN0:IFVa THEN 6030Ww$=FNction_TagToString(Vk,"war07"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$,TRUE,TRUE):Vc=Wz=1 6060ELSE:IF NOTWU AND NOTVz THEN 6080Vc=TRUE 6090ENDIF 6100ENDIF 6110WHEN2:PROCam(XW) 6120WHEN3:PROCan(XW) 6130WHEN5:PROCao(XW) 6140WHEN&502:PROCap(XW) 6150ENDCASE:ENDPROC 6190DEFPROCWb(XW):SYS&400C8,,XW TOaq:ar=XW!4:as=XW!16:at=XW!8:au=XW!20:av=XW!24:WHILEaq:CASE!XW OF 6280WHENWj:PROCaw 6290WHENWd:PROCax 6300WHENWl:PROCay 6310WHENWn:PROCaz 6320ENDCASE:SYS&400CA,,XW TOaq:ENDWHILE:ENDPROC 6380DEFPROCWq(XW):CASEWV OF 6400WHEN1:PROCbU(XW) 6410WHEN2:SYS&400CF,,Uk:PROCZf(Uk!0,Uk!4) 6430WHEN3:PROCbV(XW) 6440ENDCASE:WV=0:ENDPROC 6490DEFPROCbU(XW):SYS&400CF,,XW:XX=XW!0:XY=XW!4:Xa=XW!12:XV=XW!16:CASEbW$ OF 6560WHEN"Instrument":bX$=FNction_ReadIconText(Uk,Xv,1) 6570WHEN"Music Data":bX$=FNction_ReadIconText(Uk,Xx,1) 6580WHEN"Music App":bX$=FNction_ReadIconText(Uk,Xz,1) 6590ENDCASE:bY$=FNction_LeafnameOnly(bX$):XW!0=44+((LENbY$ DIV4)*4)+4:XW!4=0:XW!8=0:XW!12=0:XW!16=1:XW!20=Xa:XW!24=XV:XW!28=XX:XW!32=XY:XW!36=64:XW!40=&FFF:$(XW+44)=bY$+CHR$0:SYS&400E7,17,XW,Xa:ENDPROC 6770DEFPROCam(XW):bZ=XW!4:XW!12=XW!8:XW!16=3:bX$=FNction_ExtractString(XW+44):SYS&400E7,17,XW,bZ:CASEbW$ OF 6840WHEN"Instrument":PROCXw(bX$, NOTTRUE) 6850WHEN"Music Data":PROCXy(bX$, NOTTRUE) 6860WHEN"Music App":PROCYU(bX$, NOTTRUE) 6870ENDCASE:SYS&400D4,,-1:ENDPROC 6920DEFFNction_BeginDrag(XU,Xa,XV):CASEXa OF 6950WHENXv:bW$="Instrument" 6960WHENXx:bW$="Music Data" 6970WHENXz:bW$="Music App" 6980ENDCASE:LOCALba,bb,bc,bd:XU!0=4:XU!4=5:XU!8=11:XU!12=12:XU!16=-1:SYS&31,XU,XU+32:ba=(XU!40+1)* 2^( XU!32 ):bb=(XU!44+1)* 2^( XU!36 ):XU!0=Xa:SYS&400CC,,XU:bc=XU!4:bd=XU!16:XU!0=Xa:XU!4=XV:SYS&400CE,,XU:XU!8+=bc:XU!12+=bd:XU!16+=bc:XU!20+=bd:XU!0=0:XU!4=5 7170XU!24=0:XU!28=0:XU!32=ba:XU!36=bb:SYS&400D0,,XU:=0 7230DEFPROCVf:PROCbe(Uq,Up):PROCbf(Uq,"<"+Ud$+"$Dir>.Sprites"):PROCbe(Us,Ur):PROCbf(Us,"<"+Ud$+"$Dir>.Sprites22"):PROCbe(Uu,Ut):PROCbf(Uu,"<"+Ud$+"$Dir>.Sprites23"):CASEFNction_SpritesType OF 7310WHEN1:PROCbe(Uw,Uv):PROCbf(Uw,"<"+Ud$+"$Dir>.Sprites") 7330WHEN2:PROCbe(Uw,Uv):PROCbf(Uw,"<"+Ud$+"$Dir>.Sprites22") 7350WHEN3:PROCbe(Uw,Uv):PROCbf(Uw,"<"+Ud$+"$Dir>.Sprites23") 7370ENDCASE:PROCbg(Uq,"hqtracker"):PROCbg(Uq,"pushup"):PROCbg(Uq,"pushdown"):PROCbg(Us,"hqtracker"):PROCbg(Us,"pushup"):PROCbg(Us,"pushdown"):PROCbg(Uu,"hqtracker"):PROCbg(Uu,"pushup"):PROCbg(Uu,"pushdown"):bh=Uw:ENDPROC 7480DEFPROCVg:bi=Uo:PROCbj(Uk,"<"+Ud$+"$Dir>.Templates"):bi=FNction_LoadTemplate(Um,bi,Uo+Un,"information",bh):bk=FNction_MakeTemplateAWindow(Um):bi=FNction_LoadTemplate(Um,bi,Uo+Un,"prf_win",bh):Wg=FNction_MakeTemplateAWindow(Um) 7550bi=FNction_LoadTemplate(Um,bi,Uo+Un,"prf_pane",bh):Wh=FNction_MakeTemplateAWindow(Um):bi=FNction_LoadTemplate(Um,bi,Uo+Un,"xfer_inst",bh):Xv=FNction_MakeTemplateAWindow(Um):bi=FNction_LoadTemplate(Um,bi,Uo+Un,"xfer_data",bh) 7600Xx=FNction_MakeTemplateAWindow(Um):bi=FNction_LoadTemplate(Um,bi,Uo+Un,"xfer_app",bh):Xz=FNction_MakeTemplateAWindow(Um):bi=FNction_LoadTemplate(Um,bi,Uo+Un,"main",bh):Wd=FNction_MakeTemplateAWindow(Um):bi=FNction_LoadTemplate(Um,bi,Uo+Un,"lib_win",bh) 7660Wi=FNction_MakeTemplateAWindow(Um):bi=FNction_LoadTemplate(Um,bi,Uo+Un,"lib_pane",bh):Wj=FNction_MakeTemplateAWindow(Um):bi=FNction_LoadTemplate(Um,bi,Uo+Un,"main_pane",bh):Wf=FNction_MakeTemplateAWindow(Um) 7710bi=FNction_LoadTemplate(Um,bi,Uo+Un,"music_info",bh):Zw=FNction_MakeTemplateAWindow(Um):bi=FNction_LoadTemplate(Um,bi,Uo+Un,"seq_main",bh):Wk=FNction_MakeTemplateAWindow(Um):bi=FNction_LoadTemplate(Um,bi,Uo+Un,"seq_pane",bh) 7760Wl=FNction_MakeTemplateAWindow(Um):bi=FNction_LoadTemplate(Um,bi,Uo+Un,"chng_note",bh):Yb=FNction_MakeTemplateAWindow(Um):bi=FNction_LoadTemplate(Um,bi,Uo+Un,"chng_fx",bh):Yg=FNction_MakeTemplateAWindow(Um):bi=FNction_LoadTemplate(Um,bi,Uo+Un,"play",bh) 7820Yj=FNction_MakeTemplateAWindow(Um):bi=FNction_LoadTemplate(Um,bi,Uo+Un,"jump",bh):ad=FNction_MakeTemplateAWindow(Um):bi=FNction_LoadTemplate(Um,bi,Uo+Un,"inst_main",bh):Wm=FNction_MakeTemplateAWindow(Um):bi=FNction_LoadTemplate(Um,bi,Uo+Un,"inst_pane",bh) 7880Wn=FNction_MakeTemplateAWindow(Um):bi=FNction_LoadTemplate(Um,bi,Uo+Un,"piano",bh):Yq=FNction_MakeTemplateAWindow(Um):bi=FNction_LoadTemplate(Um,bi,Uo+Un,"share_1",bh):Xb=FNction_MakeTemplateAWindow(Um):bi=FNction_LoadTemplate(Um,bi,Uo+Un,"share_2",bh) 7940Xd=FNction_MakeTemplateAWindow(Um):PROCbl:ENDPROC 7990DEFPROCYs(XX):Ve=1:bm=0:PROCbn(Ud$,160,44):PROCbo("Info",0,bk, NOTTRUE):PROCbo("Prefs...",0,-1,WU):PROCbo("Quit",128,-1,WU):SYS&400D4,,Uy,XX-80,228:ENDPROC 8100DEFPROCYt(XX,XY):Ve=2:bm=0:bp=Uy+2*1024:bq=0:PROCaf:Zx$=FNction_PathnameOnly(FNction_ReadIconText(Uk,Xv,1)):IFZx$<>"" THENZx$+="." 8190PROCaU(Uk,Xv,1,Zx$+FNction_ReadIconText(Uk,Wf,1)):br=Uy+bm:PROCbn("Select",176,44):PROCbo("Copy ^C",0,-1,Zk=0):PROCbo("Move ^V",0,-1,Zk=0):PROCbo("Delete ^X",0,-1,Zk=0):PROCbo("Clear ^Z",0,-1,Zk=0):PROCbo("Merge ^M",128,-1,Zk=0):bs=Uy+bm:PROCbn("Edit",224,44) 8310PROCbo("Alter note",0,-1,Zk=0):PROCbo("Alter effects",2,-1,Zk=0):PROCbt("Sequence list",0,-1, NOTTRUE):PROCbo("Libraries",128,-1,Vp=0):bu=Uy+bm:PROCbn("Misc",336,44):PROCbt("Info... ^F1",0,Zw, NOTTRUE):PROCbo("Play Music",0,-1,WU):PROCbt("Show Keyboard",2,-1,WU) 8410PROCbt("Save Application F3",0,Xz, NOTTRUE):PROCbt("Save Instrument �F3",0,Xv,Vq=0):PROCbt("Save Music Data ^F3",2,Xx, NOTTRUE):PROCbo("Restart",128,-1,WU):bv=Uy+bm:PROCbn("Instrument",176,44):PROCbt("Remove ^R",0,-1,Vq=0):PROCbt("Install ^I",2,-1,Vp=0):PROCbt("Edit",128,-1,Vq=0) 8520bw=Uy+bm:PROCbn("Pattern",176,44):PROCbo("Insert ^P",0,-1,bx=Vm):PROCbo("Clone ",0,-1, NOTTRUE):PROCbo("Clear ",2,-1, NOTTRUE):PROCbo("Remove ^K",0,-1,bx=1):PROCbo("Jump ^J",128,-1, NOTVv):by=Uy+bm:PROCbn("HQTracker",176,44):PROCbo("Misc",2,bu, NOTTRUE):PROCbo("Select",0,br,WU) 8640PROCbo("Edit",2,bs,WU):PROCbo("Instrument",0,bv,WU):PROCbo("Pattern",128,bw,WU):SYS&400D4,,by,XX,XY:ENDPROC 8730DEFPROCXl(XX,XY,bz):Ve=bz:bm=0:bp=Uy+1* 1024:bq=0:PROCbn("Stereo",208,44):PROCbt(FNction_TagToString(Vk,"ster01"),0,-1, NOTTRUE):PROCbt(FNction_TagToString(Vk,"ster02"),0,-1, NOTTRUE):PROCbt(FNction_TagToString(Vk,"ster03"),0,-1, NOTTRUE):PROCbt(FNction_TagToString(Vk,"ster04"),0,-1, NOTTRUE) 8830PROCbt(FNction_TagToString(Vk,"ster05"),0,-1, NOTTRUE):PROCbt(FNction_TagToString(Vk,"ster06"),0,-1, NOTTRUE):PROCbt(FNction_TagToString(Vk,"ster07"),128,-1, NOTTRUE):SYS&400D4,,Uy,XX,XY:ENDPROC 8900DEFPROCXq(XX,XY):Ve=20:bm=0:PROCbn("Octaves",96,44):FORcU=1 TO7:aq=2* ABS(cU=3 ORcU=4):PROCbo(STR$cU,aq,-1, NOTTRUE):NEXTcU:!(Uy+bm-24)=128:SYS&400D4,,Uy,XX,XY:ENDPROC 9030DEFPROCXm(XX,XY,bz):Ve=bz:bm=0:bp=Uy+1* 1024:bq=0:PROCbn("Quality",176,44):PROCbt(FNction_TagToString(Vk,"qual01"),0,-1, NOTTRUE):PROCbt(FNction_TagToString(Vk,"qual02"),0,-1, NOTTRUE):PROCbt(FNction_TagToString(Vk,"qual03"),0,-1, NOTTRUE):PROCbt(FNction_TagToString(Vk,"qual04"),0,-1, NOTTRUE) 9130PROCbt(FNction_TagToString(Vk,"qual05"),0,-1, NOTTRUE):PROCbt(FNction_TagToString(Vk,"qual06"),0,-1, NOTTRUE):PROCbt(FNction_TagToString(Vk,"qual07"),128,-1, NOTTRUE):SYS&400D4,,Uy,XX,XY:ENDPROC 9200DEFPROCYd(XX,XY,bz):Ve=bz:bm=0:PROCbn("Note",64,44):PROCbo("C ",0,-1, NOTTRUE):PROCbo("C#",0,-1, NOTTRUE):PROCbo("D ",0,-1, NOTTRUE):PROCbo("D#",0,-1, NOTTRUE):PROCbo("E ",0,-1, NOTTRUE):PROCbo("F ",0,-1, NOTTRUE):PROCbo("F#",0,-1, NOTTRUE):PROCbo("G ",0,-1, NOTTRUE):PROCbo("G#",0,-1, NOTTRUE):PROCbo("A ",0,-1, NOTTRUE) 9340PROCbo("A#",0,-1, NOTTRUE):PROCbo("B ",128,-1, NOTTRUE):SYS&400D4,,Uy,XX,XY:ENDPROC 9400DEFPROCYe(XX,XY,bz):Ve=bz:bm=0:PROCbn("Octaves",96,44):PROCbo("0",2,-1, NOTTRUE):FORcU=1 TO7:PROCbo(STR$cU,0,-1, NOTTRUE):NEXTcU:!(Uy+bm-24)=128:SYS&400D4,,Uy,XX,XY:ENDPROC 9530DEFPROCbn(cV$,ba,bb):$(Uy+bm)=cV$+CHR$0:?(Uy+bm+12)=7:?(Uy+bm+13)=2:?(Uy+bm+14)=7:?(Uy+bm+15)=0:!(Uy+bm+16)=ba:!(Uy+bm+20)=bb:!(Uy+bm+24)=0:bm+=28:ENDPROC 9660DEFPROCbo(cW$,cX,cY,cZ):!(Uy+bm+0)=cX:!(Uy+bm+4)=cY:!(Uy+bm+8)=&07000001+ABScZ*2^22:$(Uy+bm+12)=cW$+CHR$0:bm+=24:ENDPROC 9750DEFPROCbt(ca$,cX,cY,cZ):!(Uy+bm+0)=cX:!(Uy+bm+4)=cY:!(Uy+bm+8)=&07000101+ABScZ*2^22:cb=bp+bq:$cb=ca$+CHR$0:bq+=LENca$+1:!(Uy+bm+12)=cb:!(Uy+bm+16)=bp:!(Uy+bm+20)=16:bm+=24:ENDPROC 9870DEFPROCWs(XW):cc=XW!0:cd=XW!4:ce=TRUE:CASEVe OF 9920WHEN1:CASEcc OF 9930WHEN1:PROCXf(Uk,Wg):PROCWe(Uk,Wg,Wh,8,8) 9950WHEN2:IFVa THEN 9960Ww$=FNction_TagToString(Vk,"war07"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$,TRUE,TRUE):Vc=Wz=1 9990ELSE:Vc=TRUE 10010ENDIF 10020ENDCASE 10030WHEN2:CASEcc OF 10040WHEN0:CASEcd OF 10050WHEN1:PROCaU(Uk,Yj,5,"-"):PROCaU(Uk,Yj,3,"-"):PROCaU(Uk,Yj,7,"-"):PROCcf(Uk,Yj,10,WU):PROCcf(Uk,Yj,11, NOTWU):PROCXf(Uk,Yj) 10110WHEN2:PROCWc(Ui,Uk,Yq, NOTTRUE) 10120WHEN6:PROCcg 10130ENDCASE 10140WHEN1:CASEcd OF 10150WHEN0:PROCaW 10160WHEN1:PROCaX 10170WHEN2:PROCaY 10180WHEN3:PROCVy 10190WHEN4:PROCaZ 10200ENDCASE 10210WHEN2:CASEcd OF 10220WHEN0:PROCch 10230WHEN1:PROCci 10250WHEN2:PROCcj:ck=cl:PROCaU(Uk,Wk,1,STR$Zm):PROCWc(Ui,Uk,Wk, NOTTRUE):PROCWe(Uk,Wk,Wl,8,164+8) 10310WHEN3:PROCWc(Ui,Uk,Wi, NOTTRUE):PROCWe(Uk,Wi,Wj,8,8) 10330ENDCASE 10340WHEN3:CASEcd OF 10350WHEN0:PROCab(FNction_ReadIconText(Uk,Wf,1)) 10360WHEN1:PROCaa:ce= NOTTRUE 10380WHEN2:PROCcm 10390ENDCASE 10400WHEN4:CASEcd OF 10410WHEN0:Wx=FNction_Insert_Pattern:IF NOTWx THEN 10430Ww$=FNction_TagToString(Vk,"err06"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 10450ENDIF 10460WHEN1:PROCcn 10470WHEN2:PROCco 10480WHEN3:PROCac 10490WHEN4:PROCaU(Uk,ad,1,"1"):PROCWc(Ui,Uk,ad, NOTTRUE):PROCXg(ad,1,1) 10520ENDCASE 10530ENDCASE 10540WHEN3:PROCaU(Uk,Wh,6,FNction_TagToString(Vk,"ster0"+STR$(cc+1))) 10550WHEN4:PROCaU(Uk,Wh,7,FNction_TagToString(Vk,"ster0"+STR$(cc+1))) 10560WHEN5:PROCaU(Uk,Wh,8,FNction_TagToString(Vk,"ster0"+STR$(cc+1))) 10570WHEN6:PROCaU(Uk,Wh,9,FNction_TagToString(Vk,"ster0"+STR$(cc+1))) 10580WHEN7:PROCaU(Uk,Wh,25,FNction_TagToString(Vk,"qual0"+STR$(cc+1))) 10590WHEN8:ah$=FNction_DecodeMenuIntoText(cp,XW,Uk+3*1024):ah$=FNction_LeafnameOnly(ah$):cq=INSTR(ah$,":"):cr=VALLEFT$(ah$,cq-1):cs$=MID$(ah$,cq+1,LENah$-cq):PROCct(VV$(cr)+".HQ_Library."+cs$,-1) 10650WHEN9:ah$=FNction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):PROCVr(MID$(ah$,4,LENah$)) 10670WHEN10:ah$=FNction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):PROCcu(VALah$) 10690WHEN11:ah$=FNction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):PROCaU(Uk,Wk,1,ah$) 10710WHEN12:ah$=FNction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):PROCaU(Uk,Yb,1,MID$(ah$,4,LENah$)) 10730WHEN13:ah$=FNction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):PROCaU(Uk,Yb,4,MID$(ah$,4,LENah$)) 10750WHEN14:ah$=FNction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):PROCaU(Uk,Yb,7,ah$) 10770WHEN15:ah$=FNction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):PROCaU(Uk,Yb,10,ah$) 10790WHEN16:ah$=FNction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):PROCaU(Uk,Yb,13,ah$) 10810WHEN17:ah$=FNction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):PROCaU(Uk,Yb,16,ah$) 10830WHEN18:ah$=FNction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):PROCaU(Uk,Yg,1,ah$) 10850WHEN19:ah$=FNction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):PROCaU(Uk,Yg,4,ah$) 10870WHEN20:ah$=FNction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):PROCaU(Uk,Wf,7,ah$) 10890ENDCASE:SYS&400CF,,XW:XX=XW!0:XY=XW!4:XZ=XW!8:IFce THEN 10950IFXZ=Ub THEN 10960CASEVe OF 10970WHEN1:PROCYs(XX) 10980WHEN2:PROCYt(XX,XY) 10990WHEN3:PROCXl(XX,XY,3) 11000WHEN4:PROCXl(XX,XY,4) 11010WHEN5:PROCXl(XX,XY,5) 11020WHEN6:PROCXl(XX,XY,6) 11030WHEN7:PROCXm(XX,XY,7) 11040WHEN8:SYS&400D4,,cp,XX,XY 11050WHEN9:PROCXo(XX,XY) 11060WHEN10:PROCXp(XX,XY) 11070WHEN20:PROCXq(XX,XY) 11080ENDCASE 11090ELSE:SYS&400D4,,-1:Ve=0 11120ENDIF 11130ENDIF:ENDPROC 11170DEFPROCan(XW):cv=XW!40:bX$=FNction_ExtractString(XW+44):bZ=XW!4:XW!16=4:XW!12=XW!8:IF NOTWU THEN 11240CASEcv OF 11250WHENUf:IFFNction_DoesFileExist(bX$+".HQ_Library") THEN 11260SYS&400E7,17,XW,bZ:PROCcw(bX$) 11280ELSE:IFFNction_DoesFileExist(bX$+".MusicData") THEN 11300SYS&400E7,17,XW,bZ:PROCcx(bX$,TRUE) 11320ELSE:Ww$=FNction_TagToString(Vk,"err03"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 11350ENDIF 11360ENDIF 11370WHENUg:IFFNction_FileIsInstrument(bX$) THEN 11380PROCct(bX$,-1):SYS&400E7,17,XW,bZ 11400ELSE:PROCcx(bX$, NOTTRUE):SYS&400E7,17,XW,bZ 11430ENDIF 11440ENDCASE 11450ENDIF:ENDPROC 11490DEFPROCao(XW):cv=XW!40:bX$=FNction_ExtractString(XW+44):bZ=XW!4:XW!16=4:XW!12=XW!8:IF NOTWU THEN 11560CASEcv OF 11570WHENUf:IFFNction_DoesFileExist(bX$+".HQ_Library") THEN 11580SYS&400E7,17,XW,bZ:PROCcw(bX$) 11600ELSE:IFFNction_DoesFileExist(bX$+".MusicData") THEN 11620SYS&400E7,17,XW,bZ:PROCcx(bX$,TRUE) 11640ENDIF 11650ENDIF 11660WHENUg:IFFNction_FileIsInstrument(bX$) THEN 11670PROCct(bX$,-1):SYS&400E7,17,XW,bZ 11690ELSE:PROCcx(bX$, NOTTRUE):SYS&400E7,17,XW,bZ 11720ENDIF 11730ENDCASE 11740ENDIF:ENDPROC 11780DEFFNction_SizeOfFile(bX$):LOCALcy,cz,dU,dV,dW,dX:LOCALdY:SYS&8,17,bX$ TOcy,cz,dU,dV,dW,dX:dY=dW:=dY 11860DEFFNction_DoesFileExist(bX$):LOCALcy,cz,dU,dV,dW,dX:SYS&8,17,bX$ TOcy,cz,dU,dV,dW,dX:=cy<>0 11920DEFFNction_TypeOfFile(bX$):LOCALcy,cz,dU,dV,dW,dX:LOCALdY:SYS&8,17,bX$ TOcy,cz,dU,dV,dW,dX:dZ=((dU>>8) AND&FFF):=dZ 12000DEFPROCaf:PROCaU(Uk,Zw,9,STR$cl):da=0:db=0:FORi=1 TOVX:IFVY$(i)<>"" THEN 12060SYS&900C5,VZ(i),UV TOdc:db+=1:da+=(dc!(64+4)) DIV1024 12090ENDIF:NEXT:PROCaU(Uk,Zw,7,STR$db):PROCaU(Uk,Zw,10,STR$da+" KB"):PROCaU(Uk,Zw,8,STR$bx):PROCaU(Uk,Zw,11,STR$bx+" KB"):ENDPROC 12180DEFPROCXr:PROCdd(Vw,Vx):ENDPROC 12230DEFPROCXu(XW):IFVv THEN 12250XX=XW!0:XY=XW!4:de=FNction_ColumnClickedOn(XX,XY):df=FNction_RowClickedOn(XX,XY):IFde<1 THENde=1 12300IFde>4 THENde=4 12310IFdf<1 THENdf=1 12320IFdf>64 THENdf=64 12330PROCdd(Vw,Vx):Vw=df:Vx=de:PROCdd(Vw,Vx) 12370ENDIF:ENDPROC 12410DEFFNction_RowClickedOn(XX,XY):Uk!0=Wd:SYS&400CC,,Uk:as=Uk!(12+4):dg=as-XY:av=Uk!(20+4):dg-=av:dh=dg-56:df=(dh DIV44)+1:=df 12500DEFFNction_ColumnClickedOn(XX,XY):Uk!0=Wd:SYS&400CC,,Uk:di=XX-(Uk!4-Uk!20):de=((di-6*16) DIV(18*16))+1:=de 12570DEFPROCdd(dj,dk):Uk!0=Wd:SYS&400CC,,Uk:as=Uk!(12+4):av=Uk!(20+4):ar=Uk!(0+4):Zs=as-56-dj*44 - av:Zr=ar+6*16 + (dk-1)*18*16:SYS&400D1,-1,Zr,Zs-8,Zr+13*16,Zs+44+8:ENDPROC 12680DEFPROCai:CASEZk OF 12700WHEN0:Zg=Vw:Zh=Vx:Zi=Vw:Zj=Vx:Zk=1:Zl=Zm 12740WHEN1,2:Zi=Vw:Zj=Vx:IFZg>Zi THENSWAPZg,Zi 12760IFZh>Zj THENSWAPZh,Zj 12770Zk=2 12780ENDCASE:PROCYZ(Uk,Wd):ENDPROC 12830DEFPROCVy:Zk=0:Zg=1:Zh=1:Zi=1:Zj=1:Zl=Zm:PROCYZ(Uk,Wd):ENDPROC 12920DEFPROCYr(dl$,dm):cU=VALFNction_ReadIconText(Uk,Wf,7)+dm:cU$=STR$cU:dn=FNction_FindInstrument(FNction_ReadIconText(Uk,Wf,1)):dn$=RIGHT$(" "+STR$dn,2):IFdn<>-1 THEN 13010SYS&900C5,VZ(Zy),UV TOdo:dp=do!(76+4):dp$=RIGHT$(" "+STR$dp,3):SYS&900C5,dq,UV TOdc:dc+=(Zm-1)* 1024:A%=!(dc+(Vw-1)*16 + (Vx-1)*4):SYS&90093,A% TOdr:ds$=FNction_ExtractString(dr):IFLEFT$(ds$,1)<>"J" THEN 13130MID$(ds$,1,2)=dl$:MID$(ds$,3,1)=STR$cU:MID$(ds$,5,2)=dn$:MID$(ds$,9,3)=dp$ 13170ENDIF:SYS&90094,ds$ TOA%:IFVv THEN 13220!(dc+(Vw-1)*16 + (Vx-1)*4) = A%:dt=Vw:du=Vx:Vw+=1:IFVw>64 THENVw=64 13260PROCdd(dt,du):PROCdd(Vw,Vx) 13280ENDIF:Wx=FNction_Playout(dl$,STR$cU,TRUE):IFVv THEN 13320IFFNction_NoteIsBelowWindow THENPROCdv(Uk,Wd,0,-44*4) 13330IFFNction_NoteIsAboveWindow THENPROCdv(Uk,Wd,0,+44*4) 13340ENDIF 13360ENDIF:ENDPROC 13410DEFPROCag:SYS&900C5,dq,UV TOdc:dc+=(Zm-1)* 1024:!(dc+(Vw-1)*16 + (Vx-1)*4) = 0:dt=Vw:du=Vx:Vw+=1:IFVw>64 THENVw=64 13480PROCdd(dt,du):PROCdd(Vw,Vx):IFFNction_NoteIsBelowWindow THENPROCdv(Uk,Wd,0,-44*4) 13510IFFNction_NoteIsAboveWindow THENPROCdv(Uk,Wd,0,+44*4) 13520ENDPROC 13550DEFFNction_Playout(ds$,cU$,dw):SYS&9008B TOdx:IFdx=0 AND NOTVz THEN 13610Wx= NOTTRUE 13630ELSE:Wx=TRUE:IF NOTdw THENSYS&9008C 13680cU=VALcU$:ds=(INSTR("C C#D D#E F F#G G#A A#B ",ds$)+1)/2:dy=FNction_FindInstrument(FNction_ReadIconText(Uk,Wf,1)):IFdy<>-1 THEN 13740SYS&900C5,VZ(dy),UV TOdc:dz=dc!(76+4):eU=dc!(64+4):eV=dc!(68+4):eW=dc!(72+4):eV=0:eW=0:eX=dc+80+4:eY=eX:eZ=eX+eU-132:Uk!(2048+0)=eX:Uk!(2048+4)=eX+eU-132:Uk!(2048+8)=eV:Uk!(2048+12)=eW:Uk!(2048+16)=dz:Uk!(2048+20)=-1:Uk!(2048+24)=-1:Uk!(2048+28)=-1 13930SYS&9008D,1,Uk+2048:IF NOTVz THEN 13960SYS&9008A,!ea:SYS&90084,ABS(!eb),ABS(!ec),ABS(!ed),ABS(!ee):SYS&90083,!ef:SYS&9008B:SYS&90085,!eg,!eh,!ei,!ej 14010ENDIF:Uk!(2048+0)=1:Uk!(2048+4)=1:Uk!(2048+8)=cU:Uk!(2048+12)=ds:Uk!(2048+16)=2:Uk!(2048+20)=1:Uk!(2048+24)=cU:Uk!(2048+28)=ds:Uk!(2048+32)=3:Uk!(2048+36)=1:Uk!(2048+40)=cU:Uk!(2048+44)=ds:Uk!(2048+48)=4:Uk!(2048+52)=1:Uk!(2048+56)=cU:Uk!(2048+60)=ds 14080SYS&90090,(Uk+2048):SYS&90090,(Uk+2048+16):SYS&90090,(Uk+2048+32):SYS&90090,(Uk+2048+48):Vz=TRUE 14120ENDIF 14140ENDIF:=Wx 14190DEFPROCWY:SYS&90081,1 TOek:cY=ek!0:IFcY<eY ORcY>eZ THEN 14230SYS&9008C:SYS&9008E,1:Vz= NOTTRUE 14260ENDIF:ENDPROC 14300DEFPROCaj(el,em):IFVv THEN 14320dt=Vw:du=Vx:Vx+=el:Vw+=em:IFVw<1 THENVw=1 14370IFVw>64 THENVw=64 14380IFVx<1 THENVx=1 14390IFVx>4 THENVx=4 14400IFdt<>Vw ORdu<>Vx THEN 14410PROCdd(dt,du):PROCdd(Vw,Vx) 14430ENDIF:IFFNction_NoteIsBelowWindow THENPROCdv(Uk,Wd,0,-44*4) 14450IFFNction_NoteIsAboveWindow THENPROCdv(Uk,Wd,0,+44*4) 14460ENDIF:ENDPROC 14500DEFFNction_NoteIsBelowWindow:Uk!0=Wd:SYS&400CB,,Uk:ar=Uk!4:at=Uk!8:en=Uk!12:as=Uk!16:au=Uk!20:av=Uk!24:eo=as-56-Vw*44 - av:=eo<at 14600DEFFNction_NoteIsAboveWindow:Uk!0=Wd:SYS&400CB,,Uk:ar=Uk!4:at=Uk!8:en=Uk!12:as=Uk!16:au=Uk!20:av=Uk!24:eo=as-56-Vw*44 - av:=eo>as-56-22 14700DEFPROCcg:IFVq>0 ORcl>1 ORbx>1 ORVa THEN 14720Ww$=FNction_TagToString(Vk,"err23"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$,TRUE,TRUE) 14740ELSE:Wz=1 14760ENDIF:IFWz=1 THEN 14780FORep=1 TOVX:IFVY$(ep)<>"" THEN 14800PROCab(FNction_LeafnameOnly(VY$(ep))) 14810ENDIF:NEXTep:PROCYX:SYS&900C5,dq,UV TOdc:A%=dc:B%=dc+!Vn*1024:C%=0:CALLeq:er()= NOTTRUE:er(1)=TRUE:bx=1:PROCcu(1):PROCaU(Uk,Zw,2,""):PROCaU(Uk,Zw,3,""):PROCaU(Uk,Xz,1,"MusicApp"):PROCaU(Uk,Xv,1,"Instrument"):PROCaU(Uk,Xx,1,"MusicData "):PROCes(Uk,Wd,"<Untitled>"):Uk!0=Wd:SYS&400CB,,Uk 14990SYS&400C6,,Uk:SYS&400C5,,Uk:PROCXg(Wd,-1,0):PROCWe(Uk,Wd,Wf,0,0):Va= NOTTRUE:PROCWo(Uk,Wm):PROCWo(Uk,Wn) 15080ENDIF:ENDPROC 15120DEFPROCch:PROCaU(Uk,Yb,1,FNction_ReadIconText(Uk,Wf,1)):PROCaU(Uk,Yb,4,FNction_ReadIconText(Uk,Wf,1)):PROCaU(Uk,Yb,7,"C "):PROCaU(Uk,Yb,10,"C "):PROCaU(Uk,Yb,13,"1"):PROCaU(Uk,Yb,16,"1"):PROCYc:PROCWc(Ui,Uk,Yb, NOTTRUE):ENDPROC 15240DEFPROCYc:FORdj=1 TO3:et=FNction_IconIsToggled(Uk,Yb,(dj-1)*6):FORi=(dj*6-6)+1 TO(dj*6-6)+5:PROCcf(Uk,Yb,i, NOTet):NEXTi:NEXTdj:ENDPROC 15340DEFPROCYf(eu):IFFNction_IconIsToggled(Uk,Yb,0) THENPROCev 15360IFFNction_IconIsToggled(Uk,Yb,6) THENPROCew 15370IFFNction_IconIsToggled(Uk,Yb,12) THENPROCex 15380IFeu THENPROCWo(Uk,Yb) 15390PROCYZ(Uk,Wd):ENDPROC 15430DEFPROCci:PROCaU(Uk,Yg,1,FNction_TagToString(Vk,"ster01")):PROCaU(Uk,Yg,4,FNction_TagToString(Vk,"ster01")):PROCaU(Uk,Yg,7,"127"):PROCaU(Uk,Yg,11,"127"):PROCaU(Uk,Yg,15,"15"):PROCaU(Uk,Yg,19,"15"):PROCaU(Uk,Yg,24,"0"):PROCaU(Uk,Yg,26,"0"):PROCaU(Uk,Yg,25,"0"):PROCYh:PROCWc(Ui,Uk,Yg, NOTTRUE):ENDPROC 15580DEFPROCYh:et=FNction_IconIsToggled(Uk,Yg,0):FORi=1 TO5:PROCcf(Uk,Yg,i, NOTet):NEXTi:et=FNction_IconIsToggled(Uk,Yg,6):FORi=7 TO13:PROCcf(Uk,Yg,i, NOTet):NEXTi:et=FNction_IconIsToggled(Uk,Yg,14):FORi=15 TO21:PROCcf(Uk,Yg,i, NOTet):NEXTi:et=FNction_IconIsToggled(Uk,Yg,23):FORi=24 TO30 15730PROCcf(Uk,Yg,i, NOTet):NEXTi:ENDPROC 15780DEFPROCYi(eu):IFFNction_IconIsToggled(Uk,Yg,0) THENPROCey 15800IFFNction_IconIsToggled(Uk,Yg,6) THENPROCez 15810IFFNction_IconIsToggled(Uk,Yg,14) THENPROCfU 15820IFFNction_IconIsToggled(Uk,Yg,23) THENPROCfV 15830IFeu THENPROCWo(Uk,Yg) 15840PROCYZ(Uk,Wd):ENDPROC 15880DEFPROCYk:SYS&9008B TOdx:IFdx=-1 THEN 15930SYS&9008C:fW=FNction_IconIsToggled(Uk,Yj,1):SYS&900C5,dq,UV TOdc:SYS&900C5,fX,UV TOfY:SYS&90086,dc:SYS&90087,fY:SYS&90088,cl:IF NOTfW THEN 16040SYS&90089,ck,1 16050ELSE:SYS&90089,1,1 16070ENDIF:SYS&9008A,!ea:FORi=1 TOVX:IFVY$(i)<>"" THEN 16130Wy=VZ(i):SYS&900C5,Wy,UV TOdc:Uk!0=dc+80+4:Uk!4=dc+80+4+dc!(64+4)-132:Uk!8=dc!(68+4):Uk!12=dc!(72+4):Uk!16=dc!(76+4):SYS&9008D,i,Uk 16210ENDIF:NEXTi:SYS&90084,ABS(!eb),ABS(!ec),ABS(!ed),ABS(!ee):SYS&90082,!fZ:SYS&90083,!ef:SYS&9008B:SYS&90085,!eg,!eh,!ei,!ej:SYS&90091:WU=TRUE:PROCcf(Uk,Yj,8,WU):PROCcf(Uk,Yj,9, NOTWU):PROCaU(Uk,Yj,5,"1"):fa=1:PROCaU(Uk,Yj,3,STR$((?fY)+1)):fb=(?fY)+1:PROCaU(Uk,Yj,7,"1"):fc=1:PROCWo(Uk,Wk):PROCWo(Uk,Wl) 16410PROCWo(Uk,Yb):PROCWo(Uk,Yg):PROCWo(Uk,Wi):PROCWo(Uk,Wj):PROCWo(Uk,Wg):PROCWo(Uk,Wh):PROCWo(Uk,Wm):PROCWo(Uk,Wn):PROCWo(Uk,Yq):PROCaV:IFVv THEN 16490Vv= NOTTRUE:PROCYZ(Uk,Wd) 16510ENDIF 16570ENDIF:ENDPROC 16620DEFPROCYl:SYS&90092:SYS&9008C:SYS&9008E,-1:WU= NOTTRUE:PROCcf(Uk,Yj,8,WU):PROCcf(Uk,Yj,9, NOTWU):SYS&900C5,fX,UV TOdc:ENDPROC 16730DEFPROCWZ:SYS&90089,-1,-1 TOfd,fe:SYS&900C5,fX,UV TOdc:ff=dc?(fd-1):IFfd<>fa THENPROCaU(Uk,Yj,5,STR$fd):fa=fd 16780IFff<>fb THENPROCaU(Uk,Yj,3,STR$(ff+1)):fb=ff 16790IFfe<>fc THENPROCaU(Uk,Yj,7,STR$fe):fc=fe 16800ENDPROC 16830DEFPROCYY:IF NOTVa THEN 16850cV$=FNction_GetWindowTitle(Uk,Wd):cV$+=" *":PROCes(Uk,Wd,cV$):!Uk=Wd:SYS&400CC,,Uk:SYS&400C6,,Uk:SYS&400C5,,Uk:PROCWe(Uk,Wd,Wf,0,0):Va=TRUE:PROCXg(Wd,-1,0) 16950ENDIF:ENDPROC 16990DEFPROCap(XW):Wy$="":bZ=XW!4:fg=XW!32:fh=XW!36:CASEfg OF 17070WHENUc:IFfh=Vj THENWy$="ibar" 17090WHENWi:CASEfh OF 17100WHEN0:Wy$="lwin00" 17110WHEN1:Wy$="lwin01" 17120ENDCASE 17140WHENWg:CASEfh OF 17150WHEN0:Wy$="pwin00" 17160WHEN1:Wy$="pwin01" 17170WHEN2:Wy$="pwin02" 17180ENDCASE 17200WHENWh:CASEfh OF 17210WHEN2:Wy$="ppne02" 17220WHEN5:Wy$="ppne05" 17230WHEN3:Wy$="ppne03" 17240WHEN4:Wy$="ppne04" 17250WHEN6:Wy$="ppne06" 17260WHEN7:Wy$="ppne07" 17270WHEN8:Wy$="ppne08" 17280WHEN9:Wy$="ppne09" 17290WHEN10:Wy$="ppne10" 17300WHEN11:Wy$="ppne11" 17310WHEN12:Wy$="ppne12" 17320WHEN13:Wy$="ppne13" 17330WHEN17:Wy$="ppne17" 17340WHEN30:Wy$="ppne30" 17350WHEN31:Wy$="ppne31" 17360WHEN18:Wy$="ppne18" 17370WHEN20:Wy$="ppne20" 17380WHEN21:Wy$="ppne21" 17390WHEN25:Wy$="ppne25" 17400WHEN26:Wy$="ppne26" 17410WHEN32:Wy$="ppne32" 17420WHEN33:Wy$="ppne33" 17430WHEN34:Wy$="ppne34" 17440ENDCASE 17460WHENWj:Wy$="lpne" 17480WHENZw:CASEfh OF 17490WHEN2:Wy$="minf02" 17500WHEN3:Wy$="minf03" 17510WHEN7:Wy$="minf07" 17520WHEN8:Wy$="minf08" 17530WHEN9:Wy$="minf09" 17540WHEN10:Wy$="minf10" 17550WHEN11:Wy$="minf11" 17560ENDCASE 17570WHENWk:CASEfh OF 17580WHEN1:Wy$="sman01" 17590WHEN2:Wy$="sman02" 17600WHEN3:Wy$="sman03" 17610WHEN4:Wy$="sman04" 17620WHEN5:Wy$="sman05" 17630WHEN6:Wy$="sman06" 17640ENDCASE 17660WHENYb:CASEfh OF 17670WHEN0:Wy$="cnot00" 17680WHEN6:Wy$="cnot06" 17690WHEN12:Wy$="cnot12" 17700WHEN1:Wy$="cnot01" 17710WHEN4:Wy$="cnot04" 17720WHEN2:Wy$="cnot02" 17730WHEN5:Wy$="cnot05" 17740WHEN7:Wy$="cnot07" 17750WHEN10:Wy$="cnot10" 17760WHEN8:Wy$="cnot08" 17770WHEN11:Wy$="cnot11" 17780WHEN13:Wy$="cnot13" 17790WHEN16:Wy$="cnot16" 17800WHEN14:Wy$="cnot14" 17810WHEN17:Wy$="cnot17" 17820WHEN18:Wy$="cnot18" 17830ENDCASE 17850WHENYg:CASEfh OF 17860WHEN0:Wy$="chfx00" 17870WHEN6:Wy$="chfx06" 17880WHEN14:Wy$="chfx14" 17890WHEN23:Wy$="chfx23" 17900WHEN1:Wy$="chfx01" 17910WHEN4:Wy$="chfx04" 17920WHEN2:Wy$="chfx02" 17930WHEN5:Wy$="chfx05" 17940WHEN7:Wy$="chfx07" 17950WHEN11:Wy$="chfx11" 17960WHEN8:Wy$="chfx08" 17970WHEN12:Wy$="chfx12" 17980WHEN9:Wy$="chfx09" 17990WHEN13:Wy$="chfx13" 18000WHEN15:Wy$="chfx15" 18010WHEN19:Wy$="chfx19" 18020WHEN16:Wy$="chfx16" 18030WHEN20:Wy$="chfx20" 18040WHEN17:Wy$="chfx17" 18050WHEN21:Wy$="chfx21" 18060WHEN25:Wy$="chfx25" 18070WHEN27:Wy$="chfx27" 18080WHEN28:Wy$="chfx28" 18090WHEN22:Wy$="chfx22" 18100ENDCASE 18120WHENYj:CASEfh OF 18130WHEN1:Wy$="play01" 18140WHEN3:Wy$="play03" 18150WHEN5:Wy$="play05" 18160WHEN7:Wy$="play07" 18170WHEN8:Wy$="play08" 18180WHEN9:Wy$="play09" 18190ENDCASE 18210WHENad:CASEfh OF 18220WHEN1:Wy$="jump01" 18230ENDCASE 18250WHENWn:Wy$="ipne" 18270WHENWf:CASEfh OF 18280WHEN1:Wy$="mpne01" 18290WHEN2:Wy$="mpne02" 18300WHEN5:Wy$="mpne05" 18310WHEN6:Wy$="mpne06" 18320WHEN7:Wy$="mpne07" 18330WHEN8:Wy$="mpne08" 18340ENDCASE 18360WHENWd:Wy$="main" 18380WHENWl:Wy$="spne" 18400WHENWm:CASEfh OF 18410WHEN13:Wy$="iman13" 18420WHEN1:Wy$="iman01" 18430WHEN6:Wy$="iman06" 18440WHEN2:Wy$="iman02" 18450WHEN3:Wy$="iman03" 18460WHEN4:Wy$="iman04" 18470WHEN5:Wy$="iman05" 18480WHEN9:Wy$="iman09" 18490WHEN10:Wy$="iman10" 18500WHEN11:Wy$="iman11" 18510WHEN14:Wy$="iman14" 18520WHEN12:Wy$="iman12" 18530ENDCASE 18550ENDCASE:IFWy$<>"" THEN 18580fi$=FNction_TagToString(Vk,Wy$):XW!0=20+((LEN(fi$) DIV4)*4)+4:XW!12=XW!8:XW!16=&503:$(XW+20)=fi$+CHR$0:SYS&400E7,17,XW,bZ 18640ENDIF:ENDPROC 18680DEFFNction_FileIsInstrument(fj$):fk=OPENINfj$:fl=BGET#fk:fm=BGET#fk:fn=BGET#fk:fo=BGET#fk:CLOSE#fk:=((fl=ASC"I") AND(fm=ASC"N") AND(fn=ASC"S") AND(fo=ASC"T")) 18760DEFPROCUX:Ww$="Fatal Error : "+REPORT$+" ("+STR$ERL+")":Wz=FNction_ReportError(Uk,99,Ud$,Ww$,TRUE, NOTTRUE):ENDPROC 18850DEFPROCWW:PROCXf(Uk,Xb):PROCfp(Uk,Xb):VDU7:ENDPROC 18920DEFPROCXc:PROCXf(Uk,Xd):PROCfp(Uk,Xd):VDU7:ENDPROC 19090DEFPROCVi:fq=13:fr=14:fs=15:DIMft 5*1024:FORfu=0 TO2STEP2:P%=ft:[OPT fu:.fv STMFD (fq)!,{r0-r12,fr}:MOV r12,#13:MOV r11,#0:MOV r10,#0:LDR r9,fw:LDR r8,fx:LDR r6,fy:LDR r5,fz:LDR r4,gU:LDR r3,gV:LDR fr,gW:.gX:CMP r10,r4 : BLT gY:CMP r10,r3 : BGT gY:.gZ CMP r12,#11 19390MOVNE r0,#11:SWINE "Wimp_SetColour":MOVNE r12,#11:B ga:.gY CMP r12,#7:MOVNE r0,#7:SWINE "Wimp_SetColour":MOVNE r12,#7:.ga LDRB r7,[r9]:MOV r7,r7,ASR #1:CMP r11,#0:MVNNE r7,r7:ADDNE r7,r7,#1:.gb MOV r0,#5:ADD r1,r5,r10,ASL #1:ADD r2,r6,r7 19580ADD r2,r2,#128:CMP r10,#0:MOVEQ r0,#4:SWI "OS_Plot":.gc MVN r11,r11:ADD r9,r9,r8:CMP r9,fr:MOVGT r9,fr:ADD r10,r10,#2:CMP r10,#800:BNE gX:LDMFD (fq)!,{r0-r12,PC}:.fx DCD 0:.fy DCD 0:.fz DCD 0:.gU DCD 0:.gV DCD 0:.fw DCD 0:.gW DCD 0:.eq STR r2,[r0],#4 19940CMP r0,r1:BNE eq:MOV PC,fr:.gd STMFD (fq)!,{r0-r12,fr}:.ge MOV r0,#5:SWI "OS_WriteC":.gf LDR r0,gg:LDR r1,gh:LDR r2,gi:.gj CMP r0,r1:ADDGT r2,r2,#1:SUBGT r0,r0,#44:BGT gj:STR r0,gg:STR r2,gi:.gk LDR r0,gi:CMP r0,#64:BGT gl:LDR r0,gg:LDR r1,gm 20290CMP r0,r1:BLT gl:LDR r0,gg:ADD r0,r0,#32:STR r0,gn:.go MOV r0,#8 : SWI "Wimp_SetColour":LDR r0,gi:ADR r1,gp:SUB r0,r0,#1:ADD r1,r1,r0,ASL #1:LDRB r2,[r1,#0]: STRB r2,gq+0:LDRB r2,[r1,#1]: STRB r2,gq+1:BL gr:ADR r0,gq : BL gs 20460.gt MOV r0,#1 : STR r0,gu : BL gv:.gw MOV r0,#2 : STR r0,gu : BL gv:.gx MOV r0,#3 : STR r0,gu : BL gv:.gy MOV r0,#4 : STR r0,gu : BL gv:.gz LDR r0,gi:ADD r0,r0,#1:STR r0,gi:LDR r0,gg:SUB r0,r0,#44:STR r0,gg:B gk:.gl:.hU MOV r0,#4:SWI "OS_WriteC" 20640LDMFD (fq)!,{r0-r12,PC}:.gv STMFD (fq)!,{fr}:LDR r0,gu:CMP r0,#1 : LDREQ r1,eb:CMP r0,#2 : LDREQ r1,ec:CMP r0,#3 : LDREQ r1,ed:CMP r0,#4 : LDREQ r1,ee: ANDS r1, r1, #1:MOVEQ r0,#2:MOVNE r0,#7 : SWI "Wimp_SetColour":BL hV:LDR r0,hW:CMP r0,#0:BEQ hX 20840.hY MOV r0,#7:SWI "Wimp_SetColour":BL hZ:MOV r0,#1:SWI "Wimp_SetColour":.hX BL ha:LDR r0,hb:CMP r0,#0:BEQ hc:.hd MOV r0,#8:SWI "Wimp_SetColour":BL hZ:MOV r0,#9:SWI "Wimp_SetColour":B he:.hc:.he LDR r0,hf:LDR r1,gi:SUB r1,r1,#1:ADD r0,r0,r1,ASL #4 21090LDR r1,gu:SUB r1,r1,#1:ADD r0,r0,r1,ASL #2:LDR r0,[r0]:SWI "PlayModule_NoteToString":STR r0,hg:LDR r0,hh:STR r0,hi:ADD r0,r0,#6*16:MOV r1,#18*16:LDR r2,gu:SUB r2,r2,#1:MLA r0,r1,r2,r0:STR r0,hh:BL gr:LDR r0,hg:MOV r1,#0:STRB r1,[r0,#11] 21310.hj LDRB r2,[r0,#0]:CMP r2,#ASC"J":MOVEQ r12,r0:MOVEQ r0,#11:SWIEQ "Wimp_SetColour":MOVEQ r0,r12:BEQ hk:LDRB r2,[r0,#8]:LDRB r3,[r0,#9]:LDRB r4,[r0,#10]:CMP r2,#ASC" ":CMPEQ r3,#ASC" ":CMPEQ r4,#ASC"0":ADREQ r0,hl:BEQ hk:LDRB r4,[r0,#2]:CMP r4,#ASC"0":ADREQ r0,hl 21520.hk BL gs:LDR r0,hi:STR r0,hh:LDMFD (fq)!,{PC}:.gq EQUS "xx :": EQUB 0 : ALIGN:.hl EQUS " - ": EQUB 0 : ALIGN:.gp EQUS "01020304050607080910111213141516":EQUS "17181920212223242526272829303132":EQUS "33343536373839404142434445464748" 21650EQUS "49505152535455565758596061626364":.hi DCD 0:.hg DCD 0:.hh DCD 0:.gn DCD 0:.hf DCD 0:.gg DCD 0:.hm DCD 0:.gh DCD 0:.gm DCD 0:.gi DCD 0:.hn DCD 0:.ho DCD 0:.hp DCD 0:.gu DCD 0:.hW DCD 0:.hq DCD 0:.hr DCD 0:.hs DCD 0:.ht DCD 0:.hb DCD 0:.hu DCD 0 21890.hv DCD 0:.hw DCD 0:.hV MOV r0,#0:STR r0,hW:LDR r1,hq : LDR r2,hr:LDR r3,hs : LDR r4,ht:LDR r5,gi : LDR r6,gu:CMP r5,r1 : MOVLT PC,fr:CMP r5,r3 : MOVGT PC,fr:CMP r6,r2 : MOVLT PC,fr:CMP r6,r4 : MOVGT PC,fr:LDR r0,hv:LDR r1,hw:CMP r0,r1 : MOVNE PC,fr 22110LDR r0,hu:CMP r0,#0 :MOVEQ PC,fr:MOV r0,#1:STR r0,hW:MOV PC,fr:.ha MOV r0,#0:STR r0,hb:LDR r0,gi : LDR r1,ho:LDR r2,gu : LDR r3,hp:LDR r4,hn:CMP r0,r1 : MOVNE PC,fr:CMP r2,r3 : MOVNE PC,fr:CMP r4,#0 :MOVEQ PC,fr:MOV r0,#1:STR r0,hb:MOV PC,fr:.gr MOV r0,#4 22380LDR r1,hh:LDR r2,gn:SWI "OS_Plot":MOV PC,fr:.gs SWI "OS_Write0":MOV PC,fr:.hZ LDR r3,hh:ADD r3,r3,#6*16:LDR r0,gu:SUB r0,r0,#1:MOV r1,#18*16:MLA r3,r0,r1,r3:LDR r4,gn:SUB r4,r4,#2*16:SUB r4,r4,#8:MOV r5,#11*16:MOV r6,#2*16 : ADD r6,r6,#12:MOV r0,#4 22640MOV r1,r3:MOV r2,r4 : SWI "OS_Plot":MOV r0,#96+5:ADD r1,r3,r5:ADD r2,r4,r6 : SWI "OS_Plot":MOV PC,fr:.eb DCD 0:.ec DCD 0:.ed DCD 0:.ee DCD 0:.eg DCD 0:.eh DCD 0:.ei DCD 0:.ej DCD 0:.fZ DCD 0:.ef DCD 0:.ea DCD 0:.Vn DCD 0:]:NEXTfu:ENDPROC 23270DEFPROCev:hx=FNction_FindInstrument(FNction_ReadIconText(Uk,Yb,1)):hy=FNction_FindInstrument(FNction_ReadIconText(Uk,Yb,4)):hy$=RIGHT$(" "+STR$hy,2):SYS&900C5,dq,UV TOdc:dc+=4:dc+=(Zl-1)* 1024:FORdj=Zg TOZi:FORdk=Zh-1 TOZj-1:A%=!(dc+(dj-1)*16 + (dk-1)*4):SYS&90093,A% TOdr 23420ds$=FNction_ExtractString(dr):IFLEFT$(ds$,1)<>"J" THEN 23450IFVALMID$(ds$,5,2)=hx THEN 23460MID$(ds$,5,2)=hy$:SYS&90094,ds$ TOA%:!(dc+(dj-1)*16 + (dk-1)*4) = A% 23490ENDIF 23500ENDIF:NEXTdk:NEXTdj:PROCYY:ENDPROC 23630DEFPROCew:hx$=FNction_ReadIconText(Uk,Yb,7):hy$=FNction_ReadIconText(Uk,Yb,10):SYS&900C5,dq,UV TOdc:dc+=4:dc+=(Zl-1)* 1024:FORdj=Zg TOZi:FORdk=Zh-1 TOZj-1:A%=!(dc+(dj-1)*16 + (dk-1)*4):SYS&90093,A% TOdr:ds$=FNction_ExtractString(dr):IFLEFT$(ds$,1)<>"J" THEN 23800IFMID$(ds$,1,2)=hx$ THEN 23810MID$(ds$,1,2)=hy$:SYS&90094,ds$ TOA%:!(dc+(dj-1)*16 + (dk-1)*4) = A% 23840ENDIF 23850ENDIF:NEXTdk:NEXTdj:PROCYY:ENDPROC 23980DEFPROCex:hx$=FNction_ReadIconText(Uk,Yb,13):hy$=FNction_ReadIconText(Uk,Yb,16):SYS&900C5,dq,UV TOdc:dc+=4:dc+=(Zl-1)* 1024:FORdj=Zg TOZi:FORdk=Zh-1 TOZj-1:A%=!(dc+(dj-1)*16 + (dk-1)*4):SYS&90093,A% TOdr:ds$=FNction_ExtractString(dr):IFLEFT$(ds$,1)<>"J" THEN 24150IFMID$(ds$,3,1)=hx$ THEN 24160MID$(ds$,3,1)=hy$:SYS&90094,ds$ TOA%:!(dc+(dj-1)*16 + (dk-1)*4) = A% 24190ENDIF 24200ENDIF:NEXTdk:NEXTdj:PROCYY:ENDPROC 24330DEFPROCez:hx=VALFNction_ReadIconText(Uk,Yg,7):hy=VALFNction_ReadIconText(Uk,Yg,11):IFhx>127 THENhx=127 24380IFhy>127 THENhy=127 24400SYS&900C5,dq,UV TOdc:dc+=4:dc+=(Zl-1)* 1024:hz=(Zi-Zg)+1:IFhz=0 THENhz=1 24460iU=(hy-hx)/hz:iV=hx:FORdj=Zg TOZi:IFdj=Zi THENiV=hy 24510FORdk=Zh-1 TOZj-1:A%=!(dc+(dj-1)*16 + (dk-1)*4):SYS&90093,A% TOdr:ds$=FNction_ExtractString(dr):iW$=RIGHT$(" "+STR$(INTiV),3):MID$(ds$,9,3)=iW$:SYS&90094,ds$ TOA%:!(dc+(dj-1)*16 + (dk-1)*4) = A%:NEXTdk:iV+=iU:NEXTdj:PROCYY:ENDPROC 24740DEFPROCey:hx=FNction_MessageIndex(FNction_ReadIconText(Uk,Yg,1),"ster0"):hy=FNction_MessageIndex(FNction_ReadIconText(Uk,Yg,4),"ster0"):SYS&900C5,dq,UV TOdc:dc+=4:dc+=(Zl-1)* 1024:hz=(Zi-Zg)+1:IFhz=0 THENhz=1 24850iU=(hy-hx)/hz:iV=hx:FORdj=Zg TOZi:IFdj=Zi THENiV=hy 24900FORdk=Zh-1 TOZj-1:A%=!(dc+(dj-1)*16 + (dk-1)*4):SYS&90093,A% TOdr:ds$=FNction_ExtractString(dr):iX$=STR$(INTiV):MID$(ds$,16,1)=iX$:SYS&90094,ds$ TOA%:!(dc+(dj-1)*16 + (dk-1)*4) = A%:NEXTdk:iV+=iU:NEXTdj:PROCYY:ENDPROC 25130DEFPROCfU:hx=VALFNction_ReadIconText(Uk,Yg,15):hy=VALFNction_ReadIconText(Uk,Yg,19):SYS&900C5,dq,UV TOdc:dc+=4:dc+=(Zl-1)* 1024:hz=(Zi-Zg)+1:IFhz=0 THENhz=1 25240iU=(hy-hx)/hz:iV=hx:FORdj=Zg TOZi:IFdj=Zi THENiV=hy 25290FORdk=Zh-1 TOZj-1:A%=!(dc+(dj-1)*16 + (dk-1)*4):SYS&90093,A% TOdr:ds$=FNction_ExtractString(dr):iY$=RIGHT$(" "+STR$(INTiV),2):MID$(ds$,13,2)=iY$:SYS&90094,ds$ TOA%:!(dc+(dj-1)*16 + (dk-1)*4) = A%:NEXTdk:iV+=iU:NEXTdj:PROCYY:ENDPROC 25520DEFPROCfV:iZ=VALFNction_ReadIconText(Uk,Yg,24):SYS&900C5,dq,UV TOdc:dc+=4:dc+=(Zl-1)* 1024:hz=(Zi-Zg)+1:IFhz=0 THENhz=1 25630ia=INT(iZ/hz):ib=(iZ/hz)-ia:ic=0:id= NOTTRUE:FORdj=Zg TOZi:FORdk=Zh-1 TOZj-1:A%=!(dc+(dj-1)*16 + (dk-1)*4):SYS&90093,A% TOdr:ds$=FNction_ExtractString(dr):ic+=ib:IFic>=1 THEN 25790ie=ia+(INTic):ic-=1 25810ELSE:ie=ia 25830ENDIF:IFie>15 THEN 25860ie=15:id=TRUE 25880ENDIF:if$=RIGHT$("00"+STR$(ABSie),2):IFiZ<0 THENig$="-" 25920IFiZ>=0 THENig$="+" 25940MID$(ds$,18,1)=ig$:MID$(ds$,19,2)=if$:SYS&90094,ds$ TOA%:!(dc+(dj-1)*16 + (dk-1)*4) = A%:NEXTdk:NEXTdj:PROCYY:IFid THEN 26050Ww$=FNction_TagToString(Vk,"war09"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$,TRUE, NOTTRUE) 26070ENDIF:ENDPROC 26160DEFPROCaW:SYS&900C5,dq,UV TOdc:ih=Zg:ii=Vw:WHILEih<=Zi ANDii<=64:ij=Zh:ik=Vx:WHILEij<=Zj ANDik<=4:il=dc+((Zl-1)*1024) + ((ih-1)*16) + ((ij-1)*4):im=dc+((Zm-1)*1024) + ((ii -1)*16) + ((ik -1)*4):!im=!il:ij+=1:ik+=1:ENDWHILE:ih+=1:ii+=1:ENDWHILE:PROCYZ(Uk,Wd):PROCYY:ENDPROC 26410DEFPROCaX:SYS&900C5,dq,UV TOdc:ih=Zg:ii=Vw:WHILEih<=Zi ANDii<=64:ij=Zh:ik=Vx:WHILEij<=Zj ANDik<=4:il=dc+((Zl-1)*1024) + ((ih-1)*16) + ((ij-1)*4):im=dc+((Zm-1)*1024) + ((ii -1)*16) + ((ik -1)*4):!im=!il:!il=0:ij+=1:ik+=1:ENDWHILE:ih+=1:ii+=1:ENDWHILE:PROCYZ(Uk,Wd):PROCYY:ENDPROC 26670DEFPROCaY:SYS&900C5,dq,UV TOdc:dc+=(Zl-1)* 1024:FORdj=Zg TOZi:FORdk=Zh TOZj:!(dc+(dj-1)*16 + (dk-1)*4) = 0:NEXTdk:NEXTdj:PROCYZ(Uk,Wd):PROCYY:ENDPROC 26890DEFPROCaZ:SYS&900C5,dq,UV TOdc:ih=Zg:ii=Vw:WHILEih<=Zi ANDii<=64:ij=Zh:ik=Vx:WHILEij<=Zj ANDik<=4:il=dc+((Zl-1)*1024) + ((ih-1)*16) + ((ij-1)*4):im=dc+((Zm-1)*1024) + ((ii -1)*16) + ((ik -1)*4):IF!il<>0 THEN!im=!il 27070ij+=1:ik+=1:ENDWHILE:ih+=1:ii+=1:ENDWHILE:PROCYZ(Uk,Wd):PROCYY:ENDPROC 27460DEFPROCVr(cs$):IFVq=0 THEN 27500PROCin(TRUE):PROCaU(Uk,Wf,1,"") 27530ELSE:i=FNction_FindInstrument(cs$):Zy=i:PROCaU(Uk,Wf,1,cs$):IFFNction_WindowIsOpen(Uk,Wn) THEN 27610PROCWo(Uk,Wm):PROCWo(Uk,Wn):PROCcm 27640ENDIF 27660ENDIF:ENDPROC 27740DEFPROCct(bX$,io):IFFNction_InstrumentAlreadyLoaded(bX$) THEN 27780Ww$=FNction_TagToString(Vk,"err26"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 27810ELSE:IFVq=VX THEN 27850Ww$=FNction_TagToString(Vk,"err05"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 27880ELSE:Vq+=1:IFio=-1 THEN 27930ip=1:WHILEVY$(ip)<>"":ip+=1:ENDWHILE 27970ELSE:ip=io 27990ENDIF:iq= NOTTRUE:VY$(ip)=bX$:SYS&900C2,bX$,UV TOWx,Wy:CASEWx OF 28060WHEN0:iq=TRUE:Ww$=FNction_TagToString(Vk,"err35")+FNction_LeafnameOnly(bX$)+CHR$34 28080WHEN1:iq=TRUE:Ww$=FNction_TagToString(Vk,"err36") 28100WHEN2:iq=TRUE:Ww$=FNction_TagToString(Vk,"err37")+FNction_LeafnameOnly(bX$)+CHR$34 28120ENDCASE:IFiq THEN 28160Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE):VY$(ip)="":Vq-=1:PROCVr(FNction_LeafnameOnly(VY$(Zy))) 28210ELSE:SYS&900C5,Wy,UV TOdc:VZ(ip)=Wy:IFVq=1 THEN 28270PROCin( NOTTRUE) 28280ENDIF:ir=dc!(12+4):IFir<>!ea THEN 28320is$=FNction_TagToString(Vk,"war04"):it$=FNction_TagToString(Vk,"qual0"+STR$ir):iu$=FNction_TagToString(Vk,"war10"):Wz=FNction_ReportError(Uk,99,Ud$,is$+it$+iu$,TRUE,TRUE):IFWz=1 THEN 28370!ea=ir:PROCXi:IFFNction_WindowIsOpen(Uk,Wh) THEN 28400PROCYZ(Uk,Wh) 28410ENDIF 28420ENDIF 28430ENDIF:IF NOTFNction_WindowIsOpen(Uk,Wd) THEN 28460PROCXf(Uk,Wd):PROCWe(Uk,Wd,Wf,0,0):PROCXg(Wd,-1,0) 28490ENDIF:PROCVr(FNction_LeafnameOnly(VY$(Vq))):PROCYY 28540ENDIF 28560ENDIF 28580ENDIF:ENDPROC 28660DEFFNction_InstrumentAlreadyLoaded(bX$):LOCALZz$,i,iv:iv= NOTTRUE:i=1:WHILEi<=VX AND NOTiv:Zz$=FNction_LeafnameOnly(VY$(i)):IFZz$=FNction_LeafnameOnly(bX$) THEN 28730iv=TRUE 28740ELSE:i+=1 28760ENDIF:ENDWHILE:=iv 28840DEFPROCin(iw):PROCcf(Uk,Wf,1,iw):PROCcf(Uk,Wf,2,iw):ENDPROC 28950DEFPROCXo(XX,XY):IFVq>0 THEN 28980Ve=9:bm=0:bp=Uy+16*1024:bq=0:PROCbn("Instruments",224,44):FORi=1 TO32:IFVY$(i)<>"" THEN 29080PROCbt(RIGHT$(" "+STR$i,2)+":"+FNction_LeafnameOnly(VY$(i)),0,-1, NOTTRUE) 29090ENDIF:NEXTi:!(Uy+bm-24)=128:SYS&400D4,,Uy,XX,XY 29150ENDIF:ENDPROC 29230DEFPROCab(cs$):i=1:WHILEFNction_LeafnameOnly(VY$(i))<>cs$:i+=1:ENDWHILE:Wy=VZ(i):SYS&900C4,Wy,UV TOWx:VY$(i)="":VZ(i)=0:i=1:REPEAT:ix$=FNction_LeafnameOnly(VY$(i)):i+=1:UNTILix$<>"" ORi>VX:Vq-=1:PROCVr(ix$):PROCYY:PROCWo(Uk,Wn):PROCWo(Uk,Wm):IFFNction_WindowIsOpen(Uk,Yb) THEN 29500PROCch 29510ENDIF:ENDPROC 29590DEFPROCYo(iy):SYS&900C5,VZ(Zy),UV TOdc:iz=dc!(76+4):iW=iz+iy:IFiW<0 THENiW=0 29640IFiW>127 THENiW=127 29650dc!(76+4)=iW:PROCaU(Uk,Wm,9,STR$iW):PROCYY:ENDPROC 29750DEFPROCYm(iy):SYS&900C5,VZ(Zy),UV TOdc:jU=dc!(68+4):jV=dc!(72+4):jW=jU+iy:IFjW<0 THENjW=0 29810IFjW>jX THENjW=jX 29820IFjW+jV>jX THENjW=jU 29830dc!(68+4)=jW:PROCaU(Uk,Wm,1,STR$jW):PROCYZ(Uk,Wn):PROCYY:ENDPROC 29930DEFPROCYn(iy):SYS&900C5,VZ(Zy),UV TOdc:jU=dc!(68+4):jV=dc!(72+4):jY=jV+iy:IFjY<0 THENjY=0 29990IFjY>jX THENjY=jX 30000IFjY+jU>jX THENjY=jV 30010dc!(72+4)=jY:PROCaU(Uk,Wm,6,STR$jY):PROCYZ(Uk,Wn):PROCYY:ENDPROC 30110DEFFNction_FindInstrument(cs$):LOCALi:i=1:iv= NOTTRUE:IFcs$="" THENi=VX+1 30160WHILE(NOTiv) ANDi<=VX:IFFNction_LeafnameOnly(VY$(i))=cs$ THEN 30180iv=TRUE 30190ELSE:i+=1 30210ENDIF:ENDWHILE:IFi>VX THENi=-1 30240=i 30300DEFPROCaz:SYS&900C5,VZ(Zy),UV TOdc:jZ=dc!(76+4):jX=dc!(64+4):ja=dc!(68+4):jb=dc!(72+4):!fx=(jX/800)*4:!fy=at:!fz=ar:!fw=dc+80+4:!gW=dc+80+4+jX-1:!gU=((ja/jX)* 800/2 ) + 2:!gV=!gU+((jb/jX)* 800/2 ):jc=ar+(ja/jX*800):ba=(jb/jX*800):SYS&400E6,15:RECTANGLEFILLjc,at,ba,256 30500CALLfv:ENDPROC 30580DEFPROCYv(Yw,Yx):PROCjd(Uk,Wn,Yw,Yx):SYS&900C5,VZ(Zy),UV TOdc:jX=dc!(64+4):je=(jf%/800)*jX:jg=0:IFje<0 THENje=0 30670dc!(68+4)=je:dc!(72+4)=jg:Uk!0=Wn:Uk!4=7:Uk!8=Yw:Uk!12=Yx:Uk!16=Yw:Uk!20=Yx:Uk!24=Wn:SYS&400CC,,Uk+24:Uk!24=Uk!28:Uk!28=Uk!32:Uk!32=Uk!36:Uk!36=Uk!40:SYS&400D0,,Uk:PROCaU(Uk,Wm,1,STR$(INTje)):PROCaU(Uk,Wm,6,STR$(INTjg)):ENDPROC 30900DEFPROCbV(XW):SYS&900C5,VZ(Zy),UV TOdc:dc!(68+4)=je:dc!(72+4)=jg:PROCaU(Uk,Wm,1,STR$(INTje)):PROCaU(Uk,Wm,6,STR$(INTjg)):PROCYZ(Uk,Wn):ENDPROC 31030DEFPROCWa:SYS&400CF,,Uk:PROCjd(Uk,Wn,Uk!0,Uk!4):SYS&900C5,VZ(Zy),UV TOdc:jX=dc!(64+4):jg=(jf%/800)*jX:jg-=je:IFjg<0 THENjg=0 31150jh=dc!(72+4):dc!(72+4)=jg:IF(INTjg)<>(INTjh) THEN 31190PROCaU(Uk,Wm,1,STR$(INTje)):PROCaU(Uk,Wm,6,STR$(INTjg)):PROCYZ(Uk,Wn) 31220ENDIF:ENDPROC 31300DEFPROCcm:SYS&900C5,VZ(Zy),UV TOdc:PROCaU(Uk,Wm,13,LEFT$(FNction_ExtractString(dc+16+4),32)):ir=dc!(12+4):ji=dc!(68+4):jj=dc!(72+4):dp=dc!(76+4):ir$=FNction_TagToString(Vk,"qual0"+STR$ir):PROCes(Uk,Wm,FNction_ReadIconText(Uk,Wf,1)+" ("+ir$+")"):PROCaU(Uk,Wm,1,STR$ji) 31400PROCaU(Uk,Wm,6,STR$jj):PROCaU(Uk,Wm,9,STR$dp):PROCWc(Ui,Uk,Wm, NOTTRUE):PROCWe(Uk,Wm,Wn,8,4):ENDPROC 31500DEFPROCYp:SYS&9008B TOdx:IFdx=-1 THEN 31550IF NOTWU AND NOTVz THEN 31570SYS&9008C:PROCfp(Uk,Wm):SYS&406C0:SYS&900C5,VZ(Zy),UV TOdc:ir=dc!(12+4):dz=dc!(76+4):eU=dc!(64+4):eV=dc!(68+4):eW=dc!(72+4):eX=dc+(80+4):eY=eX:eZ=eX+eU-132:Uk!(2048+0)=eX:Uk!(2048+4)=eX+eU-132:Uk!(2048+8)=eV:Uk!(2048+12)=eW:Uk!(2048+16)=dz:Uk!(2048+20)=-1 31780Uk!(2048+24)=-1:Uk!(2048+28)=-1:SYS&9008D,1,Uk+2048:SYS&9008A,ir:SYS&90084,ABS(!eb),ABS(!ec),ABS(!ed),ABS(!ee):SYS&90083,!ef:SYS&9008B:SYS&90085,!eg,!eh,!ei,!ej:Uk!(2048+0)=1:Uk!(2048+4)=1:Uk!(2048+8)=4:Uk!(2048+12)=1 31890Uk!(2048+16)=2:Uk!(2048+20)=1:Uk!(2048+24)=4:Uk!(2048+28)=1:Uk!(2048+32)=3:Uk!(2048+36)=1:Uk!(2048+40)=4:Uk!(2048+44)=1:Uk!(2048+48)=4:Uk!(2048+52)=1:Uk!(2048+56)=4:Uk!(2048+60)=1:SYS&90090,(Uk+2048):SYS&90090,(Uk+2048+16) 31940SYS&90090,(Uk+2048+32):SYS&90090,(Uk+2048+48):REPEAT:SYS&90081,1 TOek:cY=ek!0:UNTILINKEY(-113) OR((cY<eY ORcY>eZ) ANDeW=0):REPEAT:UNTIL NOTINKEY(-113):SYS&406C1:SYS&9008C:SYS&9008E,1:PROCXe(Uk+2048) 32080ENDIF 32100ENDIF:ENDPROC 32450DEFPROCcw(bX$):IFVp=VU THEN 32490Ww$=FNction_TagToString(Vk,"err04"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 32520ELSE:i=1:a$="":b$=FNction_LeafnameOnly(bX$):WHILEi<=Vp ANDa$<>b$:a$=FNction_LeafnameOnly(VV$(i)):i+=1:ENDWHILE:IFa$=b$ THEN 32630Ww$=FNction_TagToString(Vk,"war01"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$,TRUE,TRUE) 32660ELSE:Wz=1 32700ENDIF:IFWz=1 THEN 32740SYS&406C0:Vp+=1:jk=1:WHILEVV$(jk)<>"":jk+=1:ENDWHILE:VV$(jk)=bX$:bX$+=".HQ_Library":SYS&29,28,bX$,0,0 TO,,,jl:FORdW=0 TOjl-1:SYS&406C4,(dW/jl)*100:cy=9:dU=Uk:dV=1:dX=1*1024:SYS&C,cy,bX$,dU,dV,dW,dX,"" TOcy,cz,dU,dV,,dX,jm:jn$=FNction_ExtractString(Uk) 33010IFFNction_TypeOfFile(bX$+"."+jn$)=Ug THEN 33020SYS&D,&40,bX$+"."+jn$,0 TOjo:SYS&C,3,jo,Uk,16:jp=Uk!(8+4):SYS&D,0,jo:Wx=FNction_AddToLinkedList(jn$,jp,jk) 33070ENDIF:NEXTdW:SYS&406C2:IFFNction_WindowIsOpen(Uk,Wj) THEN 33140PROCYZ(Uk,Wj) 33150ENDIF 33170ENDIF 33190ENDIF:ENDPROC 33270DEFPROCaa:Ve=8:bm=0:bp=Uy+16*1024:bq=0:FORjq=1 TO13:!(Uk+jq*8+0) = Uy + bm:cV$=FNction_TagToString(Vk,"inst"+RIGHT$("00"+STR$jq,2)):PROCbn(MID$(cV$,1,2),208,44):jr=FNction_NumberOfElementsInList:PROCjs:i=1:jt=0:WHILEi<jr:jp=FNction_ClassOfThisInstrument:IFjp=jq THEN 33490ju$=FNction_NameOfThisInstrument:jv=FNction_InstrumentsLibraryLink:jt+=1:PROCbt(STR$jv+":"+ju$,0,-1, NOTTRUE) 33530ENDIF:PROCjw:i+=1:ENDWHILE:!(Uk+jq*8+4) = (jt = 0):IFjt>0 THEN!(Uy+bm-24)=128 33610NEXTjq:cp=Uy+bm:PROCbn("Instruments",288,44):FORjq=1 TO13:cV$=FNction_TagToString(Vk,"inst"+RIGHT$("00"+STR$jq,2)):IFjq=13 THENjx=128ELSEjx=0 33690PROCbt(MID$(cV$,5,LENcV$-5),jx,!(Uk+jq*8+0),!(Uk+jq*8+4)):NEXTjq:SYS&1C TOXX,XY,jy:SYS&400D4,,cp,XX,XY:ENDPROC 33850DEFPROCVo:A%=Uz:B%=Uz+32*1024:C%=0:CALLeq:Uz!0=0:Uz?15=0:Uz!16=0:jz=1:kU=0:ENDPROC 33990DEFFNction_AddToLinkedList(ju$,jp,cr):IFjz<1632 THEN 34030cY=Uz+kU:kV=1:iv= NOTTRUE:kW=FNction_FirstFreeRecord:REPEAT:kX$=FNction_ExtractInstrumentName(cY+5):IFju$<kX$ ORjz=1 THEN 34140iv=TRUE:PROCkY(kV) 34170ELSE:kZ=cY!16:cY+=kZ:kV+=1 34230ENDIF:UNTILiv ORkV>jz:IFkV>jz THEN 34280PROCkY(kV) 34290ENDIF:Wx=TRUE 34330ELSE:Wx= NOTTRUE 34370ENDIF:=Wx 34420DEFPROCkY(ka):IFka=1 THEN 34460IFjz>1 THEN 34470cY!0=kW-cY 34480ENDIF:kW!0=0:kW?4=jp:$(kW+5)=ju$:kW?15=cr:kW!16=kU-(kW-Uz):kU=kW-Uz 34580ELSE:IFka>jz THEN 34620cY!16=kW-cY:kW!0=cY-kW:kW?4=jp:$(kW+5)=ju$:kW?15=cr:kW!16=0 34710ELSE:kb=cY+cY!0:kb!16=kW-kb:kW!0=kb-kW:kW?4=jp:$(kW+5)=ju$:kW?15=cr:kW!16=cY-kW:cY!0=kW-cY 34840ENDIF 34860ENDIF:jz+=1:ENDPROC 34960DEFPROCkc(cr):REPEAT:cY=Uz+kU:kV=1:iv= NOTTRUE:REPEAT:kd=cY?15:IFkd=cr THEN 35100cY?15=0:jz-=1:IFkV=1 THEN 35150kU+=cY!16:!(Uz+kU)=0 35180ELSE:IFkV=jz THEN 35220ke=cY+cY!0:ke!16=0 35250ELSE:kb=cY+cY!0:kf=cY+cY!16:kb!16=kf-kb:kf!0=kb-kf 35320ENDIF 35340ENDIF:iv=TRUE 35380ENDIF:kZ=cY!16:cY+=kZ:kV+=1:UNTILiv ORkV>jz:UNTIL NOTiv ORjz=1:IFjz=1 THENPROCVo 35500ENDPROC 35560DEFFNction_NumberOfElementsInList:=jz 35630DEFPROCjs:kg=Uz+kU:ENDPROC 35680DEFFNction_NameOfThisInstrument:ju$=FNction_ExtractInstrumentName(kg+5):=ju$ 35730DEFFNction_ClassOfThisInstrument:=kg?4 35770DEFFNction_InstrumentsLibraryLink:=kg?15 35810DEFPROCjw:kg+=kg!16:ENDPROC 35890DEFFNction_ExtractInstrumentName(cY):LOCALkh$:kh$="":WHILE?cY>31 AND?cY<>255 ANDLENkh$<10:kh$+=CHR$?cY:cY+=1:ENDWHILE:=kh$ 35990DEFFNction_FirstFreeRecord:dc=Uz:WHILEdc?15<>0:dc+=20:ENDWHILE:=dc 36100DEFPROCaw:ki=as-av:kj=at+av:i=1:ki-=i*48:VDU5:WHILE(i<=VU):IFVV$(i)="" THEN 36210Zx$=" - FREE - ":kk=2 36230ELSE:Zx$=RIGHT$(VV$(i),10):kk=7+ABS(VW(i)*4) 36260ENDIF:x=ar:y=ki+32:SYS&400E6,kk:ca$=RIGHT$(" "+STR$(i),3)+" : ..."+Zx$:MOVEx,y:PRINTca$:i+=1:ki-=48:ENDWHILE:VDU4:ENDPROC 36430DEFPROCXt(XW,kl):XX=XW!0:XY=XW!4:Uk!0=Wj:SYS&400CC,,Uk:as=Uk!(12+4):av=Uk!(20+4):km=ABS(((XY-as)+av)):kn=((km) DIV48)+1:IFkn<=VU ANDVV$(kn)<>"" THEN 36570IFkl THENVW()= NOTTRUE 36590VW(kn)= NOTVW(kn):PROCYZ(Uk,Wj) 36630ENDIF:ENDPROC 36710DEFPROCXs:ko=1:WHILEko<=VU:IFVW(ko) THEN 36790PROCkc(ko):VV$(ko)="":Vp-=1 36830ENDIF:ko+=1:ENDWHILE:VW()= NOTTRUE:PROCYZ(Uk,Wj):ENDPROC 37050DEFPROCcx(bX$,kp):IFVa THEN 37090Ww$=FNction_TagToString(Vk,"war08"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$,TRUE,TRUE) 37120ELSE:Wz=1 37160ENDIF:IFWz=1 THEN 37200LOCALERROR:kq=-1:ONERRORLOCALPROCkr:ENDPROC 37230SYS&406C0:Zx$=FNction_PathnameOnly(bX$):Zz$=FNction_LeafnameOnly(bX$):IFkp THEN 37280FORep=1 TOVX:IFVY$(ep)<>"" THEN 37300PROCab(FNction_LeafnameOnly(VY$(ep))) 37310ENDIF:NEXTep 37330ENDIF:IFkp THEN 37360ks=FNction_SizeOfFile(bX$+".MusicData") 37370ELSE:ks=FNction_SizeOfFile(bX$) 37390ENDIF:IF NOTFNction_AllocateMemory(ks+16) THEN 37430Ww$=FNction_TagToString(Vk,"err12"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 37460ELSE:kt=HIMEM:jx=kt+ks:IFkp THEN 37510OSCLI"Load "+bX$+".MusicData "+STR$~kt 37520ELSE:OSCLI"Load "+bX$+" "+STR$~kt 37540ENDIF:jx!4=1*1024:Ww= NOTTRUE:IF NOTWw THENPROCku 37590IF NOTWw THENPROCkv 37600IF NOTWw THENPROCkw 37610IF NOTWw THENPROCkx 37620IF NOTWw THENPROCky 37630IF NOTWw THENPROCkz 37640IF NOTWw THENPROClU 37650IF NOTWw THENPROClV 37660IF NOTWw THENPROClW 37680PROCXi:IF NOTWw ANDkp THENPROClX 37710IF NOTWw THENPROClY 37730IFkp THENPROCes(Uk,Wd,FNction_LeafnameOnly(bX$)) 37740IFkp THENPROCaU(Uk,Xz,1,bX$) 37750PROClZ 37770ENDIF:IF NOTFNction_WindowIsOpen(Uk,Wd) THEN 37800PROCXf(Uk,Wd):PROCWe(Uk,Wd,Wf,0,0):PROCXg(Wd,-1,0) 37830ELSE:Uk!0=Wd:SYS&400CB,,Uk:SYS&400C6,,Uk:SYS&400C5,,Uk:PROCWe(Uk,Wd,Wf,0,0):PROCXg(Wd,-1,0) 37900ENDIF:Va= NOTTRUE:SYS&406C1:RESTOREERROR 37970ENDIF:ENDPROC 38050DEFPROCkr:SYS&406C2:Ww$=FNction_TagToString(Vk,"err11"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$+REPORT$+" ("+STR$ERL+")", NOTTRUE,TRUE):IFkq<>-1 THENCLOSE#kq 38100ENDPROC 38160DEFFNction_FindIFF(la,lb,lc$):ld$=MID$(lc$,1,1):ld=(ASCld$):le$=MID$(lc$,2,1):le=(ASCle$)<<8:lf$=MID$(lc$,3,1):lf=(ASClf$)<<16:lg$=MID$(lc$,4,1):lg=(ASClg$)<<24:A%=ld+le+lf+lg:iv= NOTTRUE:REPEAT:lh%=!la:IFlh%=A% THEN 38260iv=TRUE 38270ELSE:la+=4:la+=!la:la+=4 38310ENDIF:UNTILiv OR(la>=lb):IF NOTiv THENla=-1 38340=la 38370DEFFNction_NumberOfIFFs(li,lj,lc$):db=0:REPEAT:kh=FNction_FindIFF(li,lj,lc$):IFkh<>-1 THEN 38420db+=1:lk=kh!4:li=kh+8+lk 38450ENDIF:UNTILkh=-1:=db 38500DEFFNction_PointerToNthIFF(li,lj,lc$,ll):kV=0:REPEAT:li=FNction_FindIFF(li,lj,lc$):kV+=1:IFkV<ll THEN 38560lk=li!4:li=li+8+lk 38580ENDIF:UNTILkV=ll:=li 38660DEFPROCku:lm=FNction_FindIFF(kt+4,jx-4,"Frmt"):IFlm=-1 THEN 38690Ww$=FNction_TagToString(Vk,"err13"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE):Ww=TRUE 38720ELSE:IFlm!8<>1.00*100 THEN 38740Ww$=FNction_TagToString(Vk,"err14"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 38760ENDIF 38770ENDIF:ENDPROC 38810DEFPROCkv:ln=FNction_FindIFF(kt+4,jx-4,"PMod"):IFln=-1 THEN 38840Ww$=FNction_TagToString(Vk,"err15"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE):Ww=TRUE 38870ELSE:IFln!8<>1.00*100 THEN 38890Ww$=FNction_TagToString(Vk,"err16"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 38910ENDIF 38920ENDIF:ENDPROC 38960DEFPROCkw:lo=FNction_FindIFF(kt+4,jx-4,"Titl"):IFlo=-1 THEN 38990Ww$=FNction_TagToString(Vk,"err17"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE):lo$="<unknown>" 39020ELSE:lo$=LEFT$(FNction_ExtractString(lo+8),lo!4) 39040ENDIF:PROCaU(Uk,Zw,2,lo$):ENDPROC 39090DEFPROCkx:lp=FNction_FindIFF(kt+4,jx-4,"Auth"):IFlp=-1 THEN 39120Ww$=FNction_TagToString(Vk,"err18"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE):lp$="<unknown>" 39150ELSE:lp$=LEFT$(FNction_ExtractString(lp+8),lp!4) 39170ENDIF:PROCaU(Uk,Zw,3,lp$):ENDPROC 39220DEFPROCky:lq=FNction_FindIFF(kt+4,jx-4,"Rate"):IFlq=-1 THEN 39250Ww$=FNction_TagToString(Vk,"err19"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 39270ELSE:!ea=lq!8 39290ENDIF:ENDPROC 39330DEFPROCkz:lr=FNction_FindIFF(kt+4,jx-4,"Sped"):IFlr=-1 THEN 39360Ww$=FNction_TagToString(Vk,"err20"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 39380ELSE:!fZ=lr!8 39400ENDIF:ENDPROC 39440DEFPROClU:ls=FNction_FindIFF(kt+4,jx-4,"Ster"):IFls=-1 THEN 39470Ww$=FNction_TagToString(Vk,"err21"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 39490ELSE:!eg=ls?8:!eh=ls?9:!ei=ls?10:!ej=ls?11 39520ENDIF:ENDPROC 39560DEFPROClV:lt=FNction_FindIFF(kt+4,jx-4,"Lnth"):IFlt=-1 THEN 39590Ww$=FNction_TagToString(Vk,"err22"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE):Ww=TRUE 39620ELSE:cl=lt!8 39640ENDIF:ENDPROC 39680DEFPROClW:lu=FNction_FindIFF(kt+4,jx-4,"Sqnc"):IFlu=-1 THEN 39710Ww$=FNction_TagToString(Vk,"err23"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE):Ww=TRUE 39740ELSE:SYS&900C5,fX,UV TOdc:FORi=1 TO256:dc?(i-1)=lu?(8+i-1):NEXTi 39790ENDIF:ENDPROC 39830DEFPROClX:lv=FNction_NumberOfIFFs(kt+4,jx-4,"Inst"):lw=1:WHILElw<=lv:dc=FNction_PointerToNthIFF(kt+4,jx-4,"Inst",lw):cs$=FNction_ExtractString(dc+9):lx=dc?8:IFFNction_DoesFileExist(bX$+".Instr'mnts."+cs$) THEN 39910PROCct(bX$+".Instr'mnts."+cs$,lx):PROCVr(FNction_LeafnameOnly(VY$(lx))) 39930ELSE:Ww$=FNction_TagToString(Vk,"err38")+cs$+CHR$34:Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 39960ENDIF:lw+=1:ENDWHILE:ENDPROC 40020DEFPROClY:SYS&900C5,dq,UV TOly:lz=FNction_NumberOfIFFs(kt+4,jx-4,"Ptrn"):IFlz>Vm THEN 40100Ww$=FNction_TagToString(Vk,"err25"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 40130ELSE:lw=1:bx=lz:er()= NOTTRUE:WHILElw<=lz:dc=FNction_PointerToNthIFF(kt+4,jx-4,"Ptrn",lw):dy=dc!8:mU=ly+(dy-1)* 1024:FORmV=1 TO1024-1STEP4:mU!(mV-1)=dc!(12+mV-1):NEXTmV:er(lw)=TRUE:lw+=1:ENDWHILE:PROCcu(1) 40360ENDIF:ENDPROC 40600DEFPROCVh:SYS&51 TOmW:mX=FNction_ReadSlotSize:mY=0:mZ=HIMEM:ENDPROC 40680DEFFNction_AllocateMemory(ma):LOCALmb,mc:LOCALmd,me,mf:LOCALmg,Wx:mb=(ma DIVmW)+1:mc=mb* mW:IFFNction_ReadSizeOfFreePool>=ma THEN 40750md=FNction_ReadSlotSize:me=md+ma:mf=FNction_SetSlotSize(me):mY+=ma:mg=HIMEM:Wx=TRUE 40810ELSE:Wx= NOTTRUE 40830ENDIF:=Wx 40870DEFFNction_AlignToPageSize(ma):mb=(ma DIVmW)+1:mc=mb* mW:=mc 40930DEFPROClZ:md=FNction_ReadSlotSize:IFmd>mX THEN 40960Wz=FNction_SetSlotSize(mX):mY=0 40980ENDIF:ENDPROC 41200DEFPROCcu(mh):Zm=mh:PROCaU(Uk,Wf,5,STR$Zm):IFFNction_WindowIsOpen(Uk,Wd) THEN 41260PROCYZ(Uk,Wd) 41270ENDIF:ENDPROC 41350DEFPROCXp(XX,XY):Ve=10:bm=0:PROCbn("Patterns",96,44):FORi=1 TO!Vn:IFer(i) THEN 41450PROCbo(STR$i,0,-1, NOTTRUE) 41460ENDIF:NEXTi:!(Uy+bm-24)=128:SYS&400D4,,Uy,XX,XY:ENDPROC 41600DEFPROCax:SYS&900C5,dq,UV TOdc:ki=as-av:kj=at+av:i=1:ki-=i*44 + 56:!gg=ki:!hm=kj:!gh=as:!gm=at-48:!gi=1:!hf=dc+(Zm-1)* 1024:!ho=Vw:!hp=Vx:!hn=Vv:!hh=ar+1*16:!hq=Zg:!hr=Zh:!hs=Zi:!ht=Zj:!hu=Zk:!hv=Zl:!hw=Zm:CALLgd:ENDPROC 41950DEFFNction_Insert_Pattern:IFbx=Vm THEN 41990Wx= NOTTRUE 42010ELSE:i=1:WHILEer(i):i+=1:ENDWHILE:er(i)=TRUE:bx+=1:PROCcu(i):Wx=TRUE:PROCYY 42150ENDIF:=Wx 42230DEFPROCco:Ww$=FNction_TagToString(Vk,"war02"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$,TRUE,TRUE):IFWz=1 THEN 42300SYS&900C5,dq,UV TOdc:dc=dc+(Zm-1)* 1024:A%=dc:B%=dc+1*1024:C%=0:CALLeq:PROCYZ(Uk,Wd):PROCYY 42390ENDIF:ENDPROC 42470DEFPROCcn:SYS&900C5,dq,UV TOmi:mj=mi+(Zm-1)* 1024:Wx=FNction_Insert_Pattern:IF NOTWx THEN 42560Ww$=FNction_TagToString(Vk,"err06"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 42590ELSE:mk=mi+(Zm-1)* 1024:FORi=0 TO1024-1STEP4:mk!i=mj!i:NEXTi:PROCYZ(Uk,Wd):PROCYY 42700ENDIF:ENDPROC 42780DEFPROCac:IFbx=1 THEN 42820Ww$=FNction_TagToString(Vk,"err24"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 42850ELSE:Ww$=FNction_TagToString(Vk,"war05"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$,TRUE,TRUE):IFWz=1 THEN 42920SYS&900C5,dq,UV TOdc:kt=dc+(Zm-1)* 1024:jx=dc+(bx)* 1024:WHILEkt<jx-1024:!kt=kt!1024:kt+=4:ENDWHILE:SYS&900C5,fX,UV TOdc:ml=1:mm=1:WHILEml<=cl:ff=(dc?(ml-1))+1:IFff>=Zm THENff-=1 43060dc?(mm-1)=ff-1:IFff<>Zm-1 THEN 43080mm+=1 43090ENDIF:ml+=1:ENDWHILE:cl=mm-1:IFcl=0 THENcl=1 43150i=Zm:WHILEi<bx:er(i)=er(i+1):i+=1:ENDWHILE:er(bx)= NOTTRUE:bx-=1:PROCcu(1):PROCYa(1):PROCYZ(Uk,Wd):PROCYY 43310ENDIF 43330ENDIF:ENDPROC 43410DEFPROCak:mn=VALFNction_ReadIconText(Uk,ad,1):IFmn<1 ORmn>cl THEN 43470Ww$=FNction_TagToString(Vk,"err28"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 43500ELSE:SYS&900C5,dq,UV TOdc:dc+=(Zm-1)* 1024:A%=!(dc+(Vw-1)*16 + (Vx-1)*4):SYS&90093,A% TOdr:ds$=FNction_ExtractString(dr):MID$(ds$,1,1)="J":MID$(ds$,2,3)=RIGHT$(" "+STR$mn,3):MID$(ds$,5,3)="T00":SYS&90094,ds$ TOA%:!(dc+(Vw-1)*16 + (Vx-1)*4) = A%:PROCYY 43680ENDIF:PROCWo(Uk,ad):PROCYZ(Uk,Wd):PROCXg(Wd,-1,0):ENDPROC 43800DEFPROCVt:Ww= NOTTRUE:DIMer(!Vn):er()= NOTTRUE:er(1)=TRUE:SYS&900C3,!Vn*1024,UV TOWx,dq:CASEWx OF 43890WHEN0:Ww=TRUE:Wy$="err31" 43910WHEN1:Ww=TRUE:Wy$="err32" 43930ENDCASE:IFWw THEN 43970Ww$=FNction_TagToString(Vk,Wy$):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE):Vc=TRUE 44010ELSE:SYS&900C5,dq,UV TOdc:A%=dc:B%=dc+!Vn*1024:C%=0:CALLeq:bx=1:PROCcu(1) 44090ENDIF:ENDPROC 44460DEFPROCVl:kq=-1:LOCALERROR:ONERRORLOCALPROCmo:ENDPROC 44500kq=OPENIN"<HQTracker$Dir>.Prefs":INPUT#kq,!eb,!eg:INPUT#kq,!ec,!eh:INPUT#kq,!ed,!ei:INPUT#kq,!ee,!ej:INPUT#kq,!fZ,!ef:INPUT#kq,!ea,!Vn:CLOSE#kq:PROCXi:RESTOREERROR:ENDPROC 44630DEFPROCmo:IFkq<>-1 THENCLOSE#kq 44650PROCmp:PROCXi:Ww$=FNction_TagToString(Vk,"err01"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE):ENDPROC 44720DEFPROCXh:kq=-1:PROCWo(Uk,Wg):PROCWo(Uk,Wh):LOCALERROR:ONERRORLOCALPROCmq:ENDPROC 44780kq=OPENOUT"<HQTracker$Dir>.Prefs":PROCXj:PRINT#kq,!eb,!eg:PRINT#kq,!ec,!eh:PRINT#kq,!ed,!ei:PRINT#kq,!ee,!ej:PRINT#kq,!fZ,!ef:PRINT#kq,!ea,!Vn:CLOSE#kq:OSCLI"Stamp <HQTracker$Dir>.Prefs ":OSCLI"SetType <HQTracker$Dir>.Prefs Data":RESTOREERROR:ENDPROC 44930DEFPROCmq:IFkq<>-1 THENCLOSE#kq 44950Ww$=FNction_TagToString(Vk,"err02"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE):ENDPROC 45000DEFPROCmp:LOCALmr,ms:mr=TRUE:ms= NOTmr:!eb=mr:!eg=4:!ec=mr:!eh=4:!ed=mr:!ei=4:!ee=mr:!ej=4:!fZ=6:!ef=127:!ea=2:!Vn=64:ENDPROC 45130DEFPROCXi:PROCmt(Uk,Wh,2,!eb):PROCmt(Uk,Wh,5,!ec):PROCmt(Uk,Wh,3,!ed):PROCmt(Uk,Wh,4,!ee):mu$=FNction_TagToString(Vk,"ster0"+STR$!eg):PROCaU(Uk,Wh,6,mu$):mu$=FNction_TagToString(Vk,"ster0"+STR$!eh):PROCaU(Uk,Wh,7,mu$):mu$=FNction_TagToString(Vk,"ster0"+STR$!ei):PROCaU(Uk,Wh,8,mu$) 45260mu$=FNction_TagToString(Vk,"ster0"+STR$!ej):PROCaU(Uk,Wh,9,mu$):PROCaU(Uk,Wh,17,STR$!fZ):PROCaU(Uk,Wh,18,STR$!ef):ir$=FNction_TagToString(Vk,"qual0"+STR$!ea):PROCaU(Uk,Wh,25,ir$):PROCaU(Uk,Wh,32,STR$!Vn):IFFNction_WindowIsOpen(Uk,Wd) THEN 45380PROCYZ(Uk,Wd) 45390ENDIF:ENDPROC 45440DEFPROCXj:!eb=FNction_IconIsToggled(Uk,Wh,2):!ec=FNction_IconIsToggled(Uk,Wh,5):!ed=FNction_IconIsToggled(Uk,Wh,3):!ee=FNction_IconIsToggled(Uk,Wh,4):!eg=FNction_MessageIndex(FNction_ReadIconText(Uk,Wh,6),"ster0") 45520!eh=FNction_MessageIndex(FNction_ReadIconText(Uk,Wh,7),"ster0"):!ei=FNction_MessageIndex(FNction_ReadIconText(Uk,Wh,8),"ster0"):!ej=FNction_MessageIndex(FNction_ReadIconText(Uk,Wh,9),"ster0"):!fZ=VALFNction_ReadIconText(Uk,Wh,17):IF!fZ<1 THEN!fZ=1 45580IF!fZ>15 THEN!fZ=15 45600!ef=VALFNction_ReadIconText(Uk,Wh,18):IF!ef<1 THEN!ef=1 45620IF!ef>127 THEN!ef=127 45640!ea=FNction_MessageIndex(FNction_ReadIconText(Uk,Wh,25),"qual0"):!Vn=VALFNction_ReadIconText(Uk,Wh,32):IF!Vn<1 THEN!Vn=1 45680IF!Vn>256 THEN!Vn=256 45700PROCXi:ENDPROC 45750DEFFNction_MessageIndex(mv$,mw$):LOCALdy,mx:dy=1:mx= NOTTRUE:REPEAT:Wy$=FNction_TagToString(Vk,mw$+STR$dy):mx=mv$=Wy$:IF NOTmx THENdy+=1 45830UNTILmx:=dy 45990DEFPROCXw(bX$,my):LOCALERROR:kq=-1:ONERRORLOCALPROCmz:ENDPROC 46020Zx$=FNction_PathnameOnly(bX$):Zz$=FNction_LeafnameOnly(bX$):IFZx$="" ORZz$="" THEN 46050Ww$=FNction_TagToString(Vk,"err08"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 46070ELSE:SYS&20008,13,bX$ TOcy:Wz=1:IFcy<>0 THEN 46100Ww$=FNction_TagToString(Vk,"war03"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$,TRUE,TRUE) 46120ENDIF:IFWz=1 THEN 46140PROCnU(bX$):PROCaU(Uk,Xv,1,bX$):IF NOTmy THENSYS&400D4,,-1:Ve=0 46170ENDIF 46180ENDIF:RESTOREERROR:ENDPROC 46230DEFPROCnU(bX$):dy=FNction_FindInstrument(FNction_ReadIconText(Uk,Wf,1)):SYS&900C5,VZ(dy),UV TOdc:eU=dc!(64+4):kt=dc:jx=kt+80+4+eU:OSCLI"Save "+bX$+" "+STR$~kt+" "+STR$~jx:OSCLI"Stamp "+bX$:OSCLI"SetType "+bX$+" HQ-Data":ENDPROC 46380DEFPROCmz:Ww$=FNction_TagToString(Vk,"err07"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$+REPORT$+" ("+STR$ERL+")", NOTTRUE,TRUE):IFkq<>-1 THENCLOSE#kq:kq=-1 46420ENDPROC 46480DEFPROCXy(bX$,my):LOCALERROR:kq=-1:ONERRORLOCALPROCmz:ENDPROC 46530Zx$=FNction_PathnameOnly(bX$):Zz$=FNction_LeafnameOnly(bX$):IFZx$="" ORZz$="" THEN 46580Ww$=FNction_TagToString(Vk,"err08"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 46610ELSE:SYS&20008,13,bX$ TOcy:Wz=1:IFcy<>0 THEN 46670Ww$=FNction_TagToString(Vk,"war03"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$,TRUE,TRUE) 46700ENDIF:IFWz=1 THEN 46740PROCnV(bX$):PROCaU(Uk,Xx,1,bX$):IF NOTmy THENSYS&400D4,,-1:Ve=0 46780ENDIF 46800ENDIF:RESTOREERROR:ENDPROC 46870DEFPROCnV(bX$):kq=OPENOUTbX$:PROCnW("DATA"):PROCnW("Frmt"):PROCnX(4):PROCnX(1.00*100):PROCnW("PMod"):PROCnX(4):PROCnX(1.00*100):PROCnW("Titl"):PROCnX(32):PROCnW(LEFT$(FNction_ReadIconText(Uk,Zw,2)+STRING$(32,CHR$0),32)):PROCnW("Auth"):PROCnX(32):PROCnW(LEFT$(FNction_ReadIconText(Uk,Zw,3)+STRING$(32,CHR$0),32)):PROCnW("Rate"):PROCnX(4) 47060PROCnX(!ea):PROCnW("Sped"):PROCnX(4):PROCnX(!fZ):PROCnW("Ster"):PROCnX(4):PROCnY(!eg):PROCnY(!eh):PROCnY(!ei):PROCnY(!ej):PROCnW("Lnth"):PROCnX(4):PROCnX(cl):PROCnW("Sqnc"):PROCnX(256):SYS&900C5,fX,UV TOfY:FORi=1 TO256:PROCnY(fY?(i-1)):NEXTi:FORi=1 TOVX:IFVY$(i)<>"" THEN 47260PROCnW("Inst"):PROCnX(12):PROCnY(i):PROCnW(LEFT$(FNction_LeafnameOnly(VY$(i))+STRING$(11,CHR$0),11)) 47290ENDIF:NEXTi:SYS&900C5,dq,UV TOnZ:FORi=1 TObx:IFer(i) THEN 47370PROCnW("Ptrn"):PROCnX(1028):PROCnX(i):na=nZ+(i-1)*1024:FORnb=1 TO1024:PROCnY(na?(nb-1)):NEXTnb 47450ENDIF:NEXTi:kt=dc:jx=kt+(bx*1024):CLOSE#kq:OSCLI"Stamp "+bX$:OSCLI"SetType "+bX$+" HQ-Data":ENDPROC 47620DEFPROCYU(bX$,my):LOCALERROR:kq=-1:ONERRORLOCALSYS&406C2:PROCmz:ENDPROC 47670SYS&406C0:Zx$=FNction_PathnameOnly(bX$):Zz$=FNction_LeafnameOnly(bX$):IFZx$="" ORZz$="" THEN 47730Ww$=FNction_TagToString(Vk,"err08"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 47760ELSE:IFLEFT$(Zz$,1)<>"!" THENZz$="!"+LEFT$(Zz$,9) 47790nc$=Zx$+"."+Zz$:SYS&20008,13,bX$ TOcy:Wz=1:IFcy<>0 THEN 47850Ww$=FNction_TagToString(Vk,"war03"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$,TRUE,TRUE) 47880ENDIF:IFWz=1 THEN 47920nd$=FNction_ReadIconText(Uk,Xv,1):ne$=FNction_ReadIconText(Uk,Xx,1):OSCLI"CDir "+nc$:OSCLI"CDir "+nc$+".Instr'mnts":PROCnf:PROCng:PROCnh:PROCnV(nc$+".MusicData"):ni$=FNction_ReadIconText(Uk,Wf,1):FORnj=1 TOVX:IFVY$(nj)<>"" THEN 48080dn$=FNction_LeafnameOnly(VY$(nj)):PROCVr(dn$):PROCnU(nc$+".Instr'mnts."+dn$) 48110ENDIF:NEXTnj:PROCVr(ni$):PROCaU(Uk,Xz,1,nc$):PROCaU(Uk,Xv,1,nd$):PROCaU(Uk,Xx,1,ne$):PROCes(Uk,Wd,FNction_LeafnameOnly(nc$)):Uk!0=Wd:SYS&400CB,,Uk:SYS&400C6,,Uk:SYS&400C5,,Uk:PROCWe(Uk,Wd,Wf,0,0):PROCXg(Wd,-1,0):Va= NOTTRUE:IF NOTmy THENSYS&400D4,,-1:Ve=0 48310ENDIF 48330ENDIF:SYS&406C1:RESTOREERROR:ENDPROC 48440DEFPROCnf:kq=OPENOUT(nc$+"."+"!Help"):PROCnk("!Help"):PROCnk("====="):PROCnk(""):PROCnk("Application : "+Zz$):PROCnk("Purpose : HQ-Tracker music application"):PROCnk(""):PROCnk("� 1994 Mycroft Software"):CLOSE#kq:kq=-1:OSCLI"SetType "+nc$+"."+"!Help Text":OSCLI"Stamp "+nc$+"."+"!Help":ENDPROC 48590DEFPROCng:nl$=MID$(TIME$,5,2):nm$=MID$(TIME$,8,3):nn$=MID$(TIME$,12,4):no$=nl$+"-"+nm$+"-"+nn$:kq=OPENOUT(nc$+"."+"!Run"):PROCnk("| !Run"):PROCnk("| For "+Zz$):PROCnk("|"):PROCnk("| � 1994 Mycroft Software ("+no$+")"):PROCnk("|"):CLOSE#kq:kq=-1:OSCLI"SetType "+nc$+"."+"!Run Obey" 48710OSCLI"Stamp "+nc$+"."+"!Run":ENDPROC 48760DEFPROCnh:PROCnp(Uq,"!",Zz$):PROCnp(Uq,"sm!","sm"+Zz$):PROCnq(Uq,nc$+"."+"!Sprites"):PROCnp(Uq,Zz$,"!"):PROCnp(Uq,"sm"+Zz$,"sm!"):PROCnp(Us,"!",Zz$):PROCnp(Us,"sm!","sm"+Zz$):PROCnq(Us,nc$+"."+"!Sprites22"):PROCnp(Us,Zz$,"!"):PROCnp(Us,"sm"+Zz$,"sm!"):PROCnp(Uu,"!",Zz$) 48910PROCnp(Uu,"sm!","sm"+Zz$):PROCnq(Uu,nc$+"."+"!Sprites23"):PROCnp(Uu,Zz$,"!"):PROCnp(Uu,"sm"+Zz$,"sm!"):ENDPROC 49020DEFPROCnk(ca$):LOCALi:i=1:WHILEi<=LENca$:BPUT#kq,ASCMID$(ca$,i,1):i+=1:ENDWHILE:BPUT#kq,10:ENDPROC 49130DEFPROCnW(ca$):LOCALi:i=1:WHILEi<=LENca$:BPUT#kq,ASCMID$(ca$,i,1):i+=1:ENDWHILE:ENDPROC 49230DEFPROCnX(nr%):BPUT#kq,((nr%) AND&FF):BPUT#kq,((nr%>>8) AND&FF):BPUT#kq,((nr%>>16) AND&FF):BPUT#kq,((nr%>>24) AND&FF):ENDPROC 49310DEFPROCnY(ns%):BPUT#kq,ns%:ENDPROC 49520DEFPROCYX:SYS&900C5,fX,UV TOdc:A%=dc:B%=dc+256:C%=0:CALLeq:cl=1:IFFNction_WindowIsOpen(Uk,Wl) THEN 49610ck=1:PROCcj:PROCYZ(Uk,Wl) 49640ENDIF:ENDPROC 49720DEFPROCay:ki=as-av:kj=at+av:i=1:VDU5:SYS&900C5,fX,UV TOdc:WHILE(i<=cl):x=ar+32-au:y=ki+48:IFi=ck THEN 49870SYS&400E6,11 49880ELSE:SYS&400E6,7 49900ENDIF:nt=dc?(i-1)+1:ca$=STR$nt:MOVEx-(LENca$*16),y:PRINTca$:i+=1:ar+=64:ENDWHILE:VDU4:ENDPROC 50080DEFPROCYa(XW):XX=XW!0:XY=XW!4:Uk!0=Wl:SYS&400CC,,Uk:ar=Uk!(0+4):as=Uk!(12+4):av=Uk!(20+4):nu=ABS(((XX-ar)+au)):nv=((nu) DIV64)+1:IFnv<=cl THEN 50230ck=nv:PROCYZ(Uk,Wl) 50270ENDIF:ENDPROC 50350DEFPROCYV(iy):IFcl=256 THEN 50390Ww$=FNction_TagToString(Vk,"err09"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 50420ELSE:SYS&900C5,fX,UV TOdc:nw=VAL(FNction_ReadIconText(Uk,Wk,1))-1:FORnx=cl TOckSTEP-1:dc?nx=dc?(nx-1):NEXTnx:dc?(ck+iy)=nw:cl+=1:PROCcj:PROCYZ(Uk,Wl):PROCYY 50590ENDIF:ENDPROC 50670DEFPROCcj:ba=cl* 64:IFba<332 THENba=332 50700PROCny(Uk,Wl,0,ba,0,96):ENDPROC 50770DEFPROCYW:IFcl=1 THEN 50810Ww$=FNction_TagToString(Vk,"err10"):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE) 50840ELSE:SYS&900C5,fX,UV TOdc:nz=ck:WHILEnz<cl:dc?(nz-1)=dc?nz:nz+=1:ENDWHILE:cl-=1:PROCcj:PROCYZ(Uk,Wl):PROCYY 51000ENDIF:ENDPROC 51080DEFPROCVu:Ww= NOTTRUE:SYS&900C3,256,UV TOWx,fX:CASEWx OF 51140WHEN0:Ww=TRUE:Wy$="err33" 51160WHEN1:Ww=TRUE:Wy$="err34" 51180ENDCASE:IFWw THEN 51220Ww$=FNction_TagToString(Vk,Wy$):Wz=FNction_ReportError(Uk,99,Ud$,Ww$, NOTTRUE,TRUE):Vc=TRUE 51260ELSE:PROCYX:ck=1 51310ENDIF:ENDPROC 51770DEFFNction_WidthOfSprite(oU,oV$):SYS&2E,256+40,oU,oV$ TO,,,dV,dW,dX,jm:oW=dV:=oW 51830DEFFNction_HeightOfSprite(oU,oV$):SYS&2E,256+40,oU,oV$ TO,,,dV,dW,dX,jm:oX=dW:=oX 51890DEFFNction_ModeOfSprite(oU,oV$):SYS&2E,256+40,oU,oV$ TO,,,dV,dW,dX,jm:oY=jm:=oY 51950DEFFNction_SpriteHasMask(oU,oV$):SYS&2E,256+40,oU,oV$ TO,,,dV,dW,dX,jm:oZ=-dX:=oY 52010DEFFNction_SpriteHasPalette(oU,oV$):oa=FNction_PointerToSpriteControlBlock(oU,oV$):ob=oa!32:IFob=11*4 THEN 52050oc= NOTTRUE 52060ELSE:oc=oa+11*4 52080ENDIF:=oc 52120DEFFNction_NumberOfSpritesInArea(oU):=oU!4 52160DEFFNction_NameOfNthSprite(oU,n):od=oU+oU!8:oe=1:WHILEoe<n:of=od!0:od+=of:oe+=1:ENDWHILE:=LEFT$(FNction_ExtractString(od+4),12)+CHR$0 52290DEFFNction_PointerToSpriteData(oU,oV$):SYS&2E,256+24,oU,oV$ TO,,dU:og=dU:ob=og!32:oh=og+ob:=oh 52370DEFFNction_PointerToMaskData(oU,oV$):SYS&2E,256+24,oU,oV$ TO,,dU:og=dU:oi=og!36:oj=og+oi:=oj 52450DEFFNction_PointerToSpriteControlBlock(oU,oV$):SYS&2E,256+24,oU,oV$ TO,,dU:ok=dU:=ok 52510DEFPROCnq(oU,bX$):SYS&2E,256+12,oU,bX$:ENDPROC 52560DEFPROCbf(oU,bX$):SYS&2E,256+10,oU,bX$:ENDPROC 52610DEFPROCbe(oU,ol):oU!0=ol:oU!8=16:SYS&2E,256+9,oU:ENDPROC 52680DEFFNction_ReadSpritePixel(oU,oV$,x,y):LOCALom,on:SYS&2E,256+41,oU,oV$,x,y TO,,,,,dX,jm:om=dX:on=jm:=om 52760DEFPROCoo(oU,oV$,x,y,om,on):SYS&2E,256+42,oU,oV$,x,y,om,on:ENDPROC 52810DEFPROCnp(oU,oV$,op$):SYS&2E,256+26,oU,oV$,op$:ENDPROC 52860DEFPROCbg(oU,oV$):SYS&2E,256+25,oU,oV$:ENDPROC 52910DEFFNction_SpritesType:oq=1:SYS&6,161,133 TO,,or:or=(or>>2) AND3:IF(or=2) THEN 52980oq=3 52990ELSE:SYS&35,-1,4 TO,,os:SYS&35,-1,5 TO,,ot:IFos=ot THEN 53030oq=2 53040ENDIF 53050ENDIF:=oq 53090DEFPROCou(oU,oV$,bX$):LOCALov,ow,i,ox:ov=OPENOUTbX$:ow=FNction_PointerToSpriteControlBlock(oU,oV$):iy=ow!0:ox=(3*4) + iy:BPUT#ov,1:BPUT#ov,0:BPUT#ov,0:BPUT#ov,0:BPUT#ov,16:BPUT#ov,0:BPUT#ov,0:BPUT#ov,0:BPUT#ov,((ox) AND&FF):BPUT#ov,((ox>>8) AND&FF):BPUT#ov,((ox>>16) AND&FF):BPUT#ov,((ox>>24) AND&FF) 53210FORi=0 TOiy-1STEP4:BPUT#ov,(((ow!i)) AND&FF):BPUT#ov,(((ow!i)>>8) AND&FF):BPUT#ov,(((ow!i)>>16) AND&FF):BPUT#ov,(((ow!i)>>24) AND&FF):NEXTi:CLOSE#ov:OSCLI"SetType "+bX$+" Sprite":ENDPROC 54070DEFFNction_InitialiseTask(oy,oz$):LOCALcy,cz:SYS&400C0,oy,&4B534154,oz$+CHR$0 TOcy,cz:pU=cz:=pU 54140DEFPROCWv(pU):SYS&400DD,pU,"TASK":ENDPROC 54190DEFFNction_ReportError(XU,pV,cV$,Ww$,pW,pX):LOCALcX,cz,pY:XU+=1024:$XU=cV$+CHR$0:XU!32=pV:$(XU+36)=Ww$+CHR$0:cX=(ABSpW*2^0)+(ABSpX*2^1):SYS&400DF,XU+32,cX,XU TO,cz:pY=cz:=pY 54320DEFPROCWc(XW,XU,Xa,pZ):IFpZ= NOTTRUE ORXa=Wf THEN 54360XU!0=Xa:SYS&400CB,,XU:IFXa=Yq THENXU!28=-1 54410SYS&400C5,,XU 54430ELSE:SYS&400CB,,XU:pa=XU!28:pb=XW!0:IFXW!28=-1 ANDpa=-1 THEN 54510CASEpb OF 54520WHENWd:XW!28=Wf 54530WHENWm:XW!28=Wn 54540WHENWi:XW!28=Wj 54550WHENWk:XW!28=Wl 54560WHENWg:XW!28=Wh 54570ENDCASE 54580ENDIF:SYS&400C5,,XW 54620ENDIF:ENDPROC 54670DEFPROCWo(XU,Xa):SYS&400CF,,XU:pc=XU!8:IF(Xa=Wd ORXa=Wf) ANDpc=1 THEN 54700pd$=FNction_PathnameOnly(FNction_ReadIconText(Uk,Xz,1)):IFpd$<>"" THEN 54720OSCLI"Filer_OpenDir "+pd$ 54730ENDIF:IF NOTINKEY(-1) THEN 54750XU!0=Xa:SYS&400C6,,XU 54770ENDIF 54780ELSE:IF NOT(Xa=Yj ANDWU) THEN 54800XU!0=Xa:SYS&400C6,,XU 54820ENDIF 54830ENDIF:ENDPROC 54870DEFPROCXf(XU,Xa):LOCALba,bb,pe,pf,pg,ph:XU!0=Xa:SYS&400CC,,XU:ba=ABSXU!52:IFba>1280 THENba=1280 54920bb=ABSXU!48:IFbb>476 THENbb=476 54930XU!0=4:XU!4=5:XU!8=11:XU!12=12:XU!16=-1:SYS&31,XU,XU+32:pe=XU!32:pf=XU!36:pg=XU!40:ph=XU!44:x=pg* 2^pe :y=ph* 2^pf:x=(x-ba) DIV2:y=(y-bb) DIV2:XU!(0)=Xa:XU!(4+0)=x:XU!(4+4)=y:XU!(4+8)=XU!(4+0)+ba:XU!(4+12)=XU!(4+4)+bb:XU!28=-1:SYS&400C5,,XU:ENDPROC 55090DEFPROCny(XU,Xa,pi,pj,pk,pl):XU!0=pi:XU!4=pk:XU!8=pj:XU!12=pl:SYS&400D7,Xa,XU:ENDPROC 55180DEFFNction_WindowIsOpen(XU,Xa):LOCALpm,pn:XU!0=Xa:SYS&400CB,,XU:pm=XU!32:pn=(pm AND2^16)=2^16:=pn 55270DEFPROCYZ(XU,Xa):LOCALba,bb,po,pp:LOCALpq,pr,ps,pt:XU!0=Xa:SYS&400CC,,XU:ba=XU!12-Uk!4:bb=XU!16-XU!8:po=XU!20:pp=XU!24:pq=po:pt=pp:ps=pt-bb:pr=pq+ba:SYS&400D1,Xa,pq,ps,pr,pt:ENDPROC 55400DEFPROCpu(XU,Xa,XV):XU!0=Xa:XU!4=XV:XU!8=0:XU!12=0:SYS&400CD,,XU:ENDPROC 55490DEFPROCXg(Xa,XV,pv):SYS&400D2,Xa,XV,0,0,-1,pv:ENDPROC 55540DEFPROCaV:SYS&400D2,-1,-1,-1,-1,-1,-1:ENDPROC 55590DEFFNction_ReadIconText(XU,Xa,XV):LOCALcX,pw,ca$:XU!0=Xa:XU!4=XV:SYS&400CE,,XU:cX=XU!(8+16):pw=(cX AND2^8)=2^8:IFpw THEN 55670ca$=FNction_ExtractString(XU!(8+20)) 55680ELSE:ca$=FNction_ExtractString(XU+8+20) 55700ENDIF:=ca$ 55740DEFPROCaU(XU,Xa,XV,px$):LOCALcX,pw:XU!0=Xa:XU!4=XV:SYS&400CE,,XU:cX=XU!(8+16):pw=(cX AND2^8)=2^8:IFpw THEN 55820$(XU!(8+20))=px$ 55830ELSE:$(XU+8+20)=px$ 55850ENDIF:XU!0=Xa:XU!4=XV:XU!8=0:XU!12=0:SYS&400CD,,XU:ENDPROC 55940DEFPROCal(py):SYS&400DC,py:ENDPROC 55990DEFFNction_ExtractString(cY):LOCALkh$:kh$="":WHILE?cY>31:kh$+=CHR$?cY:cY+=1:ENDWHILE:=kh$ 56090DEFPROCbj(XU,bX$):$XU=bX$+CHR$0:SYS&400D9,,XU:ENDPROC 56150DEFFNction_LoadTemplate(pz,qU,qV,qW$,qX):LOCALdU,qY,qZ,qa,qb:SYS&400DB,,pz,qU,qV,-1,qW$,0 TO,,dU:qY=pz!84:qZ=dU:qa=0:WHILEqa<qY:qb=pz+88+qa*32:IF(qb!16 AND&103)=&102 THENqb!24=qX 56260qa+=1:ENDWHILE:=qZ 56310DEFFNction_MakeTemplateAWindow(pz):LOCALXa:SYS&400C1,,pz TOXa:=Xa 56370DEFPROCbl:SYS&400DA:ENDPROC 56420DEFFNction_PollWimp(XW,qc):LOCALcy:SYS&400C7,qc,XW TOcy:qd=cy:=qd 56490DEFFNction_SetSlotSize(qe):LOCALcy,cz,dU,qf:SYS&400EC,qe,-1 TOcy,cz,dU:qf=cy:=qf 56560DEFFNction_ReadSlotSize:LOCALcy,cz,dU,qf:SYS&400EC,-1,-1 TOcy,cz,dU:qf=cy:=qf 56630DEFFNction_ReadSizeOfFreePool:LOCALcy,cz,dU,qg:SYS&400EC,-1,-1 TOcy,cz,dU:qg=dU:=qg 56700DEFPROCXe(XU):LOCALpe,pf,pg,ph:XU!0=4:XU!4=5:XU!8=11:XU!12=12:XU!16=-1:SYS&31,XU,XU+32:pe=XU!32:pf=XU!36:pg=XU!40:ph=XU!44:MOUSERECTANGLE0,0,pg*2^pe,ph*2^pf:ENDPROC 56810DEFPROCfp(XU,Xa):LOCALba,bb,pe,pf,pg,ph:!XU=Xa:SYS&400CC,,XU:Zr=XU!4:Zs=XU!8:ba=ABSXU!52:bb=ABSXU!48:MOUSERECTANGLEZr,Zs,ba,bb:ENDPROC 56920DEFPROCqh(XU,Xa,XV,qi,qj):!XU=Xa:SYS&400CC,,XU:qk=XU!4:ql=XU!8:qm=XU!12:qn=XU!16:XU!0=Xa:XU!4=XV:SYS&400CE,,XU:qo=XU!8:qp=XU!12:qq=XU!16:qr=XU!20:qs=qq-qo:qt=qr-qp:ar=qk+qo:at=qn+qp:MOUSERECTANGLEar+qi,at+qj,qs-qi*2,qt-qj*2:ENDPROC 57080DEFPROCjd(XU,Xa,XX,XY):!XU=Xa:SYS&400CC,,XU:qu=XU!4-XU!20:qv=XU!16-XU!24:qu=XX-qu:qv=qv-XY:jf%=qu:qw%=qv:ENDPROC 57200DEFPROCWe(XU,Xa,qx,qi,qj):XU!0=Xa:SYS&400CC,,XU:qy=XU!4:Zp=XU!12:qz=XU!8:Zq=XU!16:rU=XU!28:XU!0=qx:SYS&400CC,,XU:bb=ABS(XU!16-XU!8):XU!4=qy+qi:XU!12=Zp-qi:XU!16=Zq-qj:XU!8=XU!16-bb:XU!28=rU:SYS&400C5,,XU:ENDPROC 57340DEFFNction_DepthOfWindow(XU,Xa):XU!0=Xa:SYS&400CC,,XU:=XU!28 57400DEFFNction_WordAlign(rV):=((rV+3) AND(NOT3)) 57440DEFFNction_InstallHelp:SYS&1E,6,,,16 TO,,dU:Vk=dU:SYS&41501,Vk,"<"+Ud$+"$Dir>.Messages",0:=Vk 57510DEFPROCWu(rW):SYS&41504,rW:SYS&1E,7,,rW:ENDPROC 57570DEFFNction_TagToString(rW,Wy$):SYS&41502,rW,Wy$,0,0,0,0,0,0 TO,,dU:dr=dU:rX$=FNction_ExtractString(dr):=rX$ 57640DEFPROCrY(rZ,ra,rb):rc=rZ:rd=ra:re=rb:WV=4:PROCqh(Uk,rc,re,16,0):SYS&1C TOYw,Yx,rf:rg=Yw-1:PROCrh:ENDPROC 57770DEFPROCrh:CASErc OF 57800WHENri:CASEre OF 57810WHEN2:rj=FNction_DragABar(rj,2):PROCrk(INT(64*(rl/100))) 57830ENDCASE 57840ENDCASE:ENDPROC 57880DEFFNction_DragABar(ra,rb):SYS&1C TOYw,Yx,rf:IFrf=0 THEN 57960WV=0:PROCXe(Uk) 57990ELSE:IFYw<>rg THEN 58040!Uk=rc:SYS&400CC,,Uk:qk=Uk!4:rm=Yw-qk:Uk!0=rc:Uk!4=ra:SYS&400CE,,Uk:qo=Uk!(8+0):qp=Uk!(8+4):qq=Uk!(8+8):qr=Uk!(8+12):Uk!(100+0)=rc:Uk!(100+4)=ra:SYS&400C4,,Uk+100:SYS&400D1,rc,qo,qp,qq,qr:Uk!(8+8)=rm:Uk!4=rc:SYS&400C2,,Uk+4 TOra:PROCpu(Uk,rc,ra):Uk!0=rc 58310Uk!4=re:SYS&400CE,,Uk:rn=Uk!(8+8)-16:rg=Yw:rl=INT((rm/rn)*100) 58380ENDIF 58400ENDIF:=ra 58450DEFFNction_GetWindowTitle(XU,Xa):LOCALcX:!XU=Xa:SYS&400CC,,XU:=FNction_ExtractString(!(XU+4+72)) 58520DEFPROCes(XU,Xa,ro$):LOCALcX,pw:!XU=Xa:SYS&400CC,,XU:cX=XU!(4+56):pw=(cX AND2^8)=2^8:IFpw THEN 58590dc=!(XU+4+72):$!(XU+4+72)=ro$+CHR$0 58610ELSE:$(XU+4+72)=px$+CHR$0 58630ENDIF:ENDPROC 58670DEFPROCmt(XU,Xa,XV,iw):XU!0=Xa:XU!4=XV:XU!8=(ABS NOTiw)<<21:XU!12=1<<21:SYS&400CD,,XU:ENDPROC 58760DEFPROCcf(XU,Xa,XV,rp):XU!0=Xa:XU!4=XV:XU!8=(ABSrp)<<22:XU!12=1<<22:SYS&400CD,,XU:ENDPROC 58850DEFFNction_IconIsToggled(XU,Xa,XV):XU!0=Xa:XU!4=XV:SYS&400CE,,XU:rq=(XU!(8+16)) AND2^21:=NOT(rq=2^21) 58930DEFPROCXk(XU,Xa,XV):PROCmt(XU,Xa,XV, NOTFNction_IconIsToggled(XU,Xa,XV)):ENDPROC 58980DEFFNction_WindowWithCaret(XU):SYS&400D3,,XU:=XU!0 59030DEFFNction_IconWithCaret(XU):SYS&400D3,,XU:=XU!4 59080DEFPROCXn(XU,Xa,XV,iy,rr,rs):iV=VALFNction_ReadIconText(XU,Xa,XV):rt=iV+iy:IFrt<rr THENrt=rr 59120IFrt>rs THENrt=rs 59130IFrt<>iV THENPROCaU(XU,Xa,XV,STR$rt) 59140ENDPROC 59170DEFFNction_PathnameOnly(bX$):IFbX$="" ORINSTR(bX$,".")=0 THEN="" 59190LOCALi:i=LENbX$:WHILEMID$(bX$,i,1)<>".":i-=1:ENDWHILE:=LEFT$(bX$,i-1) 59270DEFFNction_LeafnameOnly(bX$):IFbX$="" THEN="" 59290LOCALi:i=LENbX$:WHILEMID$(bX$,i,1)<>"." ANDi>0:i-=1:ENDWHILE:=MID$(bX$,i+1,LENbX$) 59370DEFFNction_DecodeMenuIntoText(ru,rv,rw):SYS&400D5,,ru,rv,rw:=FNction_ExtractString(rw) 59420DEFPROCdv(XU,Xa,nu,km):XU!0=Xa:SYS&400CB,,XU:XU!20+=nu:XU!24+=km:SYS&400C5,,XU:ENDPROC
<3UV=-1:���:�"Fatal Error : ";�$;" at Line ";�:� d �UW:��UX � �UY:� ����UW:UZ=4:Ua=2:Ub=1:Uc=-2:Ud$="HQTracker":Ue$="HQTracker":Uf=&2000:Ug=&3E0:Uh=4*1024 :�Ui Uh:Uj=4*1024 :�Uk Uj:Ul=11*1024 :�Um Ul:Un=7*1024 :�Uo Un:Up=5*1024 :�Uq Up:Ur=8*1024 :�Us Ur:Ut=4*1024 :�Uu Ut:Uv=8*1024 :�Uw Uv:Ux=32*1024 :�Uy Ux:�Uz 32*1024 �VU=12:�VV$(VU):�VW(VU):VX=32:�VY$(VX):�VZ(VX):Va= ��:Vb=0:Vc= ��:Vd=�ction_InitialiseTask(2*100,Ue$):Ve=0:�Vf:�Vg:�Vh:�Vi:Vj=�ction_IconbarSprite(Uk):Vk=�ction_InstallHelp:�Vl:Vm=!Vn:�Vo:Vp=0:VV$()="":VW()= ��:Vq=0:VY$()="":VZ()=0:�Vr("<None!>"):�Vs �� �Vc � ��Vt:� �Vc � �Vu:� �Vc � +Vv= ��:Vw=1:Vx=1:�Vy:Vz= ��:WU= ��:WV=0 \� f� p�:� �/��UY:�WW:�:WX=�ction_PollWimp(Ui,Vb):ȎWX � ��0:�Vz ��WY ��WU ��WZ ��WV=3 ��Wa ��1:�Wb(Ui) ��2:�Wc(Ui,Uk,-1,�):Ȏ!Ui � �Wd:�We(Uk,Wd,Wf,0,0) �Wg:�We(Uk,Wg,Wh,8,8) $�Wi:�We(Uk,Wi,Wj,8,8) .�Wk:�We(Uk,Wk,Wl,8,164+8) 8�Wm:�We(Uk,Wm,Wn,8,4) B� L�3:�Wo(Uk,Ui!0):Ȏ!Ui � `�Wd:�Wo(Uk,Wf) j�Wg:�Wo(Uk,Wh) t�Wi:�Wo(Uk,Wj) ~�Wk:�Wo(Uk,Wl) ��Wm:�Wo(Uk,Wn) �� ��6:�Wp(Ui) ��7:�Wq(Ui) ��8:�Wr(Ui) ��9:�Ws(Ui) ��17:�Wt(Ui) ��18:�Wt(Ui) �=�:�Vc:�Wu(Vk):�Wv(Vd):ș&900C6,UV:ș&2002A,1,-4096*1024:� 2-��Vs:Ww= ��:ș&900C1,32+1+1 �Wx,UV:ȎWx � Z�0:Ww=�:Wy$="err29" n�1:Ww=�:Wy$="err30" ��:�Ww � �XWw$=�ction_TagToString(Vk,Wy$):Wz=�ction_ReportError(Uk,99,Ud$,Ww$, ��,�):Vc=�:UV=-1 ��:� zݤction_IconbarSprite(XU):XU!0=-1:XU!4=0:XU!8=0:XU!12=68:XU!16=68:XU!20=&3002:$(XU+24)="!"+Ud$+�0:ș&400C2,,XU �XV:=XV |=��Wp(XW):XX=XW!0:XY=XW!4:XZ=XW!8:Xa=XW!12:XV=XW!16:ȎXZ � ��UZ:ȎXa � ��Xb:�XV=3 � ��Wo(Uk,Xa):�Xc �� ��Xd:�XV=5 � ��Wo(Uk,Xa):�Xe(Uk) � �Uc:�XV=Vj � &-�Xf(Uk,Wd):�We(Uk,Wd,Wf,0,0):�Xg(Wd,-1,0) D� N�Wg:ȎXV � X �0:�Xh b �1:�Wo(Uk,Wg):�Wo(Uk,Wh):�Xi � �2:�Wo(Uk,Wg):�Wo(Uk,Wh):�Xj �� ��Wh:ȎXV � ��2,5,3,4:�Xk(Uk,Wh,XV) � �10,11,12,13:�Xl(XX,XY,XV-7) ��26:�Xm(XX,XY,7) ��30:�Xn(Uk,Wh,17,+1,1,15) ��31:�Xn(Uk,Wh,17,-1,1,15) ��20:�Xn(Uk,Wh,18,+1,1,127) ��21:�Xn(Uk,Wh,18,-1,1,127) ��33:�Xn(Uk,Wh,32,+1,1,256) �34:�Xn(Uk,Wh,32,-1,1,256) � �Wf:ȎXV � *�2:�Xo(XX,XY) 4�6:�Xp(XX,XY) >�8:�Xq(XX,XY) H:Vv= ��:�Xr f� z�Wi:ȎXV � � �0:�Xs ��1:�Wo(Uk,Wi):�Wo(Uk,Wj) �� ��Wj:�Xt(Ui,�) ��Wd:� �WU � �WU � �Vv=�:�Xr:�Xu(Ui) �� �4�Xv:�XV=2 ��Xw(�ction_ReadIconText(Uk,Xv,1), ��) 4�Xx:�XV=2 ��Xy(�ction_ReadIconText(Uk,Xx,1), ��) 4�Xz:�XV=2 ��YU(�ction_ReadIconText(Uk,Xz,1), ��) �Wk:ȎXV � $�2:�Xp(XX,XY):Ve=11 8 �3:�YV(0) B�4:�YV(-1) L �5:�YW VZ�6:Ww$=�ction_TagToString(Vk,"war06"):Wz=�ction_ReportError(Uk,99,Ud$,Ww$,�,�):�Wz=1 � t�YX:�YY:�YZ(Uk,Wl) �� �� ��Wl:�Ya(Ui) ��Yb:ȎXV � ��0:�Xk(Uk,Xa,XV):�Yc ��6:�Xk(Uk,Xa,XV):�Yc ��12:�Xk(Uk,Xa,XV):�Yc �2:�Xo(XX,XY):Ve=12 �5:�Xo(XX,XY):Ve=13 2�8:�Yd(XX,XY,14) <�11:�Yd(XX,XY,15) F�14:�Ye(XX,XY,16) P�17:�Ye(XX,XY,17) Z�18:�Yf(�) d� x�Yg:ȎXV � ��0:�Xk(Uk,Xa,XV):�Yh ��6:�Xk(Uk,Xa,XV):�Yh ��14:�Xk(Uk,Xa,XV):�Yh ��23:�Xk(Uk,Xa,XV):�Yh ��2:�Xl(XX,XY,18) ��5:�Xl(XX,XY,19) ��8:�Xn(Uk,Xa,7,+1,0,127) ��9:�Xn(Uk,Xa,7,-1,0,127) ��12:�Xn(Uk,Xa,11,+1,0,127) �13:�Xn(Uk,Xa,11,-1,0,127) �16:�Xn(Uk,Xa,15,+1,1,15) �17:�Xn(Uk,Xa,15,-1,1,15) "�20:�Xn(Uk,Xa,19,+1,1,15) ,�21:�Xn(Uk,Xa,19,-1,1,15) 6�22:�Yi(�) J"�27:�Xn(Uk,Xa,24,+1,-999,+999) T"�28:�Xn(Uk,Xa,24,-1,-999,+999) h"�29:�Xn(Uk,Xa,26,+1,-999,+999) r"�30:�Xn(Uk,Xa,26,-1,-999,+999) �� ��Yj:ȎXV � ��1:�Xk(Uk,Xa,XV) � �8:�Yk � �9:�Yl �� ��Wm:ȎXV � ��2:�Ym(+1) ��3:�Ym(-1) ��4:�Yn(+1) ��5:�Yn(-1) �10:�Yo(+1) �11:�Yo(-1) �12:�Wo(Uk,Wm):�Wo(Uk,Wn) 0�14:�Yp :� N�Yq:ȎXV � b�0:�Yr("C ",+0) l�1:�Yr("D ",+0) v�2:�Yr("E ",+0) ��3:�Yr("F ",+0) ��4:�Yr("G ",+0) ��5:�Yr("A ",+0) ��6:�Yr("B ",+0) ��14:�Yr("C#",+0) ��15:�Yr("D#",+0) ��16:�Yr("F#",+0) ��17:�Yr("G#",+0) ��18:�Yr("A#",+0) ��7:�Yr("C ",+1) ��8:�Yr("D ",+1) ��9:�Yr("E ",+1) �10:�Yr("F ",+1) �11:�Yr("G ",+1) �12:�Yr("A ",+1) �13:�Yr("B ",+1) 4�19:�Yr("C#",+1) >�20:�Yr("D#",+1) H�21:�Yr("F#",+1) R�22:�Yr("G#",+1) \�23:�Yr("A#",+1) p� �� ��Ua:ȎXa � ��Uc:�XV=Vj ��Ys(XX) ��Wd:�Yt(XX,XY) �� ��Ub:ȎXa � ��Wg:ȎXV � � �0:�Xh � �1:�Wo(Uk,Wg):�Wo(Uk,Wh):�Xi � �2:�Xj �� �Wh:ȎXV � �2,5,3,4:�Xk(Uk,Wh,XV) � $�Wf:ȎXV � . �4:�Xk(Uk,Xa,XV):Vv= �Vv:�Xr L� V�Wj:�Xt(Ui, ��) `2�Xv:�XV=2 ��Xw(�ction_ReadIconText(Uk,Xv,1),�) j2�Xx:�XV=2 ��Xy(�ction_ReadIconText(Uk,Xx,1),�) t2�Xz:�XV=2 ��YU(�ction_ReadIconText(Uk,Xz,1),�) ~�Wm:ȎXV � ��2:�Ym(+20) ��3:�Ym(-20) ��4:�Yn(+20) ��5:�Yn(-20) ��10:�Yo(+5) ��11:�Yo(-5) �� ��Yb:ȎXV � ��18:�Yf( ��) �� ��Yg:ȎXV � �22:�Yi( ��) � � �64,16:ȎXa � (1�Xv:�XV=0 �WV=1:Wz=�ction_BeginDrag(Uk,Xa,XV) 21�Xx:�XV=0 �WV=1:Wz=�ction_BeginDrag(Uk,Xa,XV) <1�Xz:�XV=0 �WV=1:Wz=�ction_BeginDrag(Uk,Xa,XV) F�Wd:� �WU ��Yu(XX,XY):WV=2 P�Wn:�Yv(XX,XY):WV=3 Z� d�:� ����Yu(Yw,Yx):Yy=�ction_RowClickedOn(Yw,Yx):Yz=�ction_ColumnClickedOn(Yw,Yx):Uk!0=Wd:Uk!4=6:Uk!8=Yw:Uk!12=Yx:Uk!16=Yw:Uk!20=Yx:Uk!24=Wd:ș&400CC,,Uk+24:ZU=Uk!44:ZV=Uk!48:Uk!24=Uk!28:Uk!28=Uk!32:Uk!32=Uk!36:Uk!36=Uk!40-56:ZW=Uk!24:ZX=Uk!32 MZY=Uk!28:ZZ=Uk!36:ș&400D0,,Uk:Za=Yw:Zb=Yw:Zc=Yx:Zd=Yx:�Ze(Za,Zc,Zb,Zd):� hu��Zf(Yw,Yx):Zg=Yy:Zh=Yz:Zi=�ction_RowClickedOn(Yw,Yx):Zj=�ction_ColumnClickedOn(Yw,Yx):Zk=2:Zl=Zm:�Zg>Zi �ȔZg,Zi ��Zh>Zj �ȔZh,Zj ��YZ(Uk,Wd):� ���Ze(Zn,Zo,Zp,Zq):Uk!256=Wd:ș&400CB,,Uk+256:Zr=Uk!(256+4):Zs=Uk!(256+8):Zt=Uk!(256+12):Zu=Uk!(256+16)-56:�24,Zr;Zs;Zt;Zu;:ș&400E6,48+15:ȓZn,Zo,Zp-Zn,Zq-Zo:� l,��Wr(XW):Xa=XW!0:XV=XW!4:Zv=XW!24:ȎXa � ��Wh:�XV=32 � ��Wo(Uk,Wg):�Wo(Uk,Wh):�Xj �� ��Yg:�Zv=13 � � �Yi(�) � �Zw:�XV=3 � ș&400D4,,-1:Ve=0 *� >�Xv:�XV=1 �Zv=13 � H7�Xw(�ction_ReadIconText(Uk,Xv,1)):ș&400D4,,-1:Ve=0 \� p�Xx:�XV=1 �Zv=13 � z7�Xy(�ction_ReadIconText(Uk,Xx,1)):ș&400D4,,-1:Ve=0 �� ��Xz:�XV=1 �Zv=13 � �7�YU(�ction_ReadIconText(Uk,Xz,1)):ș&400D4,,-1:Ve=0 �� ��Wf:�XV=1 �Zv=13 � �PZx$=�ction_PathnameOnly(VY$(Zy)):Zz$=�ction_ReadIconText(Uk,Wf,1):�Zz$<>"" � 2�ction_InstrumentAlreadyLoaded(Zx$+"."+Zz$) � QWw$=�ction_TagToString(Vk,"err27"):Wz=�ction_ReportError(Uk,99,Ud$,Ww$, ��,�) .�:VY$(Zy)=Zx$+"."+Zz$ B� L3�:�aU(Uk,Wf,1,�ction_LeafnameOnly(VY$(Zy))):�aV ~� ��Wd:ȎZv � �ɗ"C"-64:� �WU �Zk<>0 ��aW �ɗ"V"-64:� �WU �Zk<>0 ��aX �ɗ"X"-64:� �WU �Zk<>0 ��aY �ɗ"M"-64:� �WU �Zk<>0 ��aZ �ɗ"Z"-64:� �WU ��Vy �ɗ"I"-64:� �WU �Vp>0 ��aa �ɗ"R"-64:� �WU �Vq>0 � �-�ab(�ction_ReadIconText(Uk,Wf,1)):�Ve=9 � ș&400D4,,-1 � � ɗ"P"-64:� �WU � ($Wx=�ction_Insert_Pattern:� �Wx � <QWw$=�ction_TagToString(Vk,"err06"):Wz=�ction_ReportError(Uk,99,Ud$,Ww$, ��,�) P� Z� dɗ"K"-64:� �WU ��ac nɗ"J"-64:� �WU � x �Vv � �2�aU(Uk,ad,1,"1"):�Wc(Ui,Uk,ad, ��):�Xg(ad,1,1) �� �� ��&183:�ae(Xz) ��&193:�Vq>0 ��ae(Xv) ��&1A3:�ae(Xx) ��&1A1:�af:�ae(Zw) �ɗ"Z",�"z":�Yr("C ",+0) ɗ"S",�"s":�Yr("C#",+0) ɗ"X",�"x":�Yr("D ",+0) ɗ"D",�"d":�Yr("D#",+0) "ɗ"C",�"c":�Yr("E ",+0) ,ɗ"V",�"v":�Yr("F ",+0) 6ɗ"G",�"g":�Yr("F#",+0) @ɗ"B",�"b":�Yr("G ",+0) Jɗ"H",�"h":�Yr("G#",+0) Tɗ"N",�"n":�Yr("A ",+0) ^ɗ"J",�"j":�Yr("A#",+0) hɗ"M",�"m":�Yr("B ",+0) |ɗ"Q",�"q":�Yr("C ",+1) �ɗ"2",�"2":�Yr("C#",+1) �ɗ"W",�"w":�Yr("D ",+1) �ɗ"3",�"3":�Yr("D#",+1) �ɗ"E",�"e":�Yr("E ",+1) �ɗ"R",�"r":�Yr("F ",+1) �ɗ"5",�"5":�Yr("F#",+1) �ɗ"T",�"t":�Yr("G ",+1) �ɗ"6",�"6":�Yr("G#",+1) �ɗ"Y",�"y":�Yr("A ",+1) �ɗ"7",�"7":�Yr("A#",+1) �ɗ"U",�"u":�Yr("B ",+1) � ɗ" ":�ag Jɗ"=":ah=��ction_ReadIconText(Uk,Wf,7):ah+=-1* (ah<7):�aU(Uk,Wf,7,�ah) &Jɗ"-":ah=��ction_ReadIconText(Uk,Wf,7):ah-=-1* (ah>1):�aU(Uk,Wf,7,�ah) N�20 b�&186:� �WU ��ai l�&18C:�aj(-1,0) v�&18D:�aj(+1,0) ��&18F:�aj(0,-1) ��&18E:�aj(0,+1) ��&1B:Vv= ��:�Xr �� ��ad:�XV=1 �Zv=13 � ��ak �� ��:�al(Zv):� 4E��ae(Xa):ș&400CF,,Uk+1024:ș&400D4,,Xa,Uk!(1024+0),Uk!(1024+4):� p��Wt(XW):ȎXW!16 � ��0:�Va � �WWw$=�ction_TagToString(Vk,"war07"):Wz=�ction_ReportError(Uk,99,Ud$,Ww$,�,�):Vc=Wz=1 ��:� �WU � �Vz � �Vc=� �� �� ��2:�am(XW) ��3:�an(XW) ��5:�ao(XW) ��&502:�ap(XW) �:� .U��Wb(XW):ș&400C8,,XW �aq:ar=XW!4:as=XW!16:at=XW!8:au=XW!20:av=XW!24:ȕaq:Ȏ!XW � ��Wj:�aw ��Wd:�ax ��Wl:�ay ��Wn:�az ��:ș&400CA,,XW �aq:�:� ���Wq(XW):ȎWV � �1:�bU(XW) "�2:ș&400CF,,Uk:�Zf(Uk!0,Uk!4) �3:�bV(XW) (�:WV=0:� ZC��bU(XW):ș&400CF,,XW:XX=XW!0:XY=XW!4:Xa=XW!12:XV=XW!16:ȎbW$ � �2�"Instrument":bX$=�ction_ReadIconText(Uk,Xv,1) �2�"Music Data":bX$=�ction_ReadIconText(Uk,Xx,1) �1�"Music App":bX$=�ction_ReadIconText(Uk,Xz,1) ���:bY$=�ction_LeafnameOnly(bX$):XW!0=44+((�bY$ �4)*4)+4:XW!4=0:XW!8=0:XW!12=0:XW!16=1:XW!20=Xa:XW!24=XV:XW!28=XX:XW!32=XY:XW!36=64:XW!40=&FFF:$(XW+44)=bY$+�0:ș&400E7,17,XW,Xa:� ra��am(XW):bZ=XW!4:XW!12=XW!8:XW!16=3:bX$=�ction_ExtractString(XW+44):ș&400E7,17,XW,bZ:ȎbW$ � ��"Instrument":�Xw(bX$, ��) ��"Music Data":�Xy(bX$, ��) ��"Music App":�YU(bX$, ��) ��:ș&400D4,,-1:� &ݤction_BeginDrag(XU,Xa,XV):ȎXa � &�Xv:bW$="Instrument" 0�Xx:bW$="Music Data" :�Xz:bW$="Music App" D��:�ba,bb,bc,bd:XU!0=4:XU!4=5:XU!8=11:XU!12=12:XU!16=-1:ș&31,XU,XU+32:ba=(XU!40+1)* 2^( XU!32 ):bb=(XU!44+1)* 2^( XU!36 ):XU!0=Xa:ș&400CC,,XU:bc=XU!4:bd=XU!16:XU!0=Xa:XU!4=XV:ș&400CE,,XU:XU!8+=bc:XU!12+=bd:XU!16+=bc:XU!20+=bd:XU!0=0:XU!4=5 5XU!24=0:XU!28=0:XU!32=ba:XU!36=bb:ș&400D0,,XU:=0 >���Vf:�be(Uq,Up):�bf(Uq,"<"+Ud$+"$Dir>.Sprites"):�be(Us,Ur):�bf(Us,"<"+Ud$+"$Dir>.Sprites22"):�be(Uu,Ut):�bf(Uu,"<"+Ud$+"$Dir>.Sprites23"):Ȏ�ction_SpritesType � �1�1:�be(Uw,Uv):�bf(Uw,"<"+Ud$+"$Dir>.Sprites") �3�2:�be(Uw,Uv):�bf(Uw,"<"+Ud$+"$Dir>.Sprites22") �3�3:�be(Uw,Uv):�bf(Uw,"<"+Ud$+"$Dir>.Sprites23") ʵ�:�bg(Uq,"hqtracker"):�bg(Uq,"pushup"):�bg(Uq,"pushdown"):�bg(Us,"hqtracker"):�bg(Us,"pushup"):�bg(Us,"pushdown"):�bg(Uu,"hqtracker"):�bg(Uu,"pushup"):�bg(Uu,"pushdown"):bh=Uw:� 8���Vg:bi=Uo:�bj(Uk,"<"+Ud$+"$Dir>.Templates"):bi=�ction_LoadTemplate(Um,bi,Uo+Un,"information",bh):bk=�ction_MakeTemplateAWindow(Um):bi=�ction_LoadTemplate(Um,bi,Uo+Un,"prf_win",bh):Wg=�ction_MakeTemplateAWindow(Um) ~�bi=�ction_LoadTemplate(Um,bi,Uo+Un,"prf_pane",bh):Wh=�ction_MakeTemplateAWindow(Um):bi=�ction_LoadTemplate(Um,bi,Uo+Un,"xfer_inst",bh):Xv=�ction_MakeTemplateAWindow(Um):bi=�ction_LoadTemplate(Um,bi,Uo+Un,"xfer_data",bh) ��Xx=�ction_MakeTemplateAWindow(Um):bi=�ction_LoadTemplate(Um,bi,Uo+Un,"xfer_app",bh):Xz=�ction_MakeTemplateAWindow(Um):bi=�ction_LoadTemplate(Um,bi,Uo+Un,"main",bh):Wd=�ction_MakeTemplateAWindow(Um):bi=�ction_LoadTemplate(Um,bi,Uo+Un,"lib_win",bh) ��Wi=�ction_MakeTemplateAWindow(Um):bi=�ction_LoadTemplate(Um,bi,Uo+Un,"lib_pane",bh):Wj=�ction_MakeTemplateAWindow(Um):bi=�ction_LoadTemplate(Um,bi,Uo+Un,"main_pane",bh):Wf=�ction_MakeTemplateAWindow(Um) �bi=�ction_LoadTemplate(Um,bi,Uo+Un,"music_info",bh):Zw=�ction_MakeTemplateAWindow(Um):bi=�ction_LoadTemplate(Um,bi,Uo+Un,"seq_main",bh):Wk=�ction_MakeTemplateAWindow(Um):bi=�ction_LoadTemplate(Um,bi,Uo+Un,"seq_pane",bh) P�Wl=�ction_MakeTemplateAWindow(Um):bi=�ction_LoadTemplate(Um,bi,Uo+Un,"chng_note",bh):Yb=�ction_MakeTemplateAWindow(Um):bi=�ction_LoadTemplate(Um,bi,Uo+Un,"chng_fx",bh):Yg=�ction_MakeTemplateAWindow(Um):bi=�ction_LoadTemplate(Um,bi,Uo+Un,"play",bh) ��Yj=�ction_MakeTemplateAWindow(Um):bi=�ction_LoadTemplate(Um,bi,Uo+Un,"jump",bh):ad=�ction_MakeTemplateAWindow(Um):bi=�ction_LoadTemplate(Um,bi,Uo+Un,"inst_main",bh):Wm=�ction_MakeTemplateAWindow(Um):bi=�ction_LoadTemplate(Um,bi,Uo+Un,"inst_pane",bh) �Wn=�ction_MakeTemplateAWindow(Um):bi=�ction_LoadTemplate(Um,bi,Uo+Un,"piano",bh):Yq=�ction_MakeTemplateAWindow(Um):bi=�ction_LoadTemplate(Um,bi,Uo+Un,"share_1",bh):Xb=�ction_MakeTemplateAWindow(Um):bi=�ction_LoadTemplate(Um,bi,Uo+Un,"share_2",bh) +Xd=�ction_MakeTemplateAWindow(Um):�bl:� 6���Ys(XX):Ve=1:bm=0:�bn(Ud$,160,44):�bo("Info",0,bk, ��):�bo("Prefs...",0,-1,WU):�bo("Quit",128,-1,WU):ș&400D4,,Uy,XX-80,228:� �x��Yt(XX,XY):Ve=2:bm=0:bp=Uy+2*1024:bq=0:�af:Zx$=�ction_PathnameOnly(�ction_ReadIconText(Uk,Xv,1)):�Zx$<>"" �Zx$+="." ���aU(Uk,Xv,1,Zx$+�ction_ReadIconText(Uk,Wf,1)):br=Uy+bm:�bn("Select",176,44):�bo("Copy ^C",0,-1,Zk=0):�bo("Move ^V",0,-1,Zk=0):�bo("Delete ^X",0,-1,Zk=0):�bo("Clear ^Z",0,-1,Zk=0):�bo("Merge ^M",128,-1,Zk=0):bs=Uy+bm:�bn("Edit",224,44) v��bo("Alter note",0,-1,Zk=0):�bo("Alter effects",2,-1,Zk=0):�bt("Sequence list",0,-1, ��):�bo("Libraries",128,-1,Vp=0):bu=Uy+bm:�bn("Misc",336,44):�bt("Info... ^F1",0,Zw, ��):�bo("Play Music",0,-1,WU):�bt("Show Keyboard",2,-1,WU) ��bt("Save Application F3",0,Xz, ��):�bt("Save Instrument �F3",0,Xv,Vq=0):�bt("Save Music Data ^F3",2,Xx, ��):�bo("Restart",128,-1,WU):bv=Uy+bm:�bn("Instrument",176,44):�bt("Remove ^R",0,-1,Vq=0):�bt("Install ^I",2,-1,Vp=0):�bt("Edit",128,-1,Vq=0) !H�bw=Uy+bm:�bn("Pattern",176,44):�bo("Insert ^P",0,-1,bx=Vm):�bo("Clone ",0,-1, ��):�bo("Clear ",2,-1, ��):�bo("Remove ^K",0,-1,bx=1):�bo("Jump ^J",128,-1, �Vv):by=Uy+bm:�bn("HQTracker",176,44):�bo("Misc",2,bu, ��):�bo("Select",0,br,WU) !�_�bo("Edit",2,bs,WU):�bo("Instrument",0,bv,WU):�bo("Pattern",128,bw,WU):ș&400D4,,by,XX,XY:� "���Xl(XX,XY,bz):Ve=bz:bm=0:bp=Uy+1* 1024:bq=0:�bn("Stereo",208,44):�bt(�ction_TagToString(Vk,"ster01"),0,-1, ��):�bt(�ction_TagToString(Vk,"ster02"),0,-1, ��):�bt(�ction_TagToString(Vk,"ster03"),0,-1, ��):�bt(�ction_TagToString(Vk,"ster04"),0,-1, ��) "~��bt(�ction_TagToString(Vk,"ster05"),0,-1, ��):�bt(�ction_TagToString(Vk,"ster06"),0,-1, ��):�bt(�ction_TagToString(Vk,"ster07"),128,-1, ��):ș&400D4,,Uy,XX,XY:� "Ĉ��Xq(XX,XY):Ve=20:bm=0:�bn("Octaves",96,44):�cU=1 �7:aq=2* �(cU=3 �cU=4):�bo(�cU,aq,-1, ��):�cU:!(Uy+bm-24)=128:ș&400D4,,Uy,XX,XY:� #F���Xm(XX,XY,bz):Ve=bz:bm=0:bp=Uy+1* 1024:bq=0:�bn("Quality",176,44):�bt(�ction_TagToString(Vk,"qual01"),0,-1, ��):�bt(�ction_TagToString(Vk,"qual02"),0,-1, ��):�bt(�ction_TagToString(Vk,"qual03"),0,-1, ��):�bt(�ction_TagToString(Vk,"qual04"),0,-1, ��) #���bt(�ction_TagToString(Vk,"qual05"),0,-1, ��):�bt(�ction_TagToString(Vk,"qual06"),0,-1, ��):�bt(�ction_TagToString(Vk,"qual07"),128,-1, ��):ș&400D4,,Uy,XX,XY:� #����Yd(XX,XY,bz):Ve=bz:bm=0:�bn("Note",64,44):�bo("C ",0,-1, ��):�bo("C#",0,-1, ��):�bo("D ",0,-1, ��):�bo("D#",0,-1, ��):�bo("E ",0,-1, ��):�bo("F ",0,-1, ��):�bo("F#",0,-1, ��):�bo("G ",0,-1, ��):�bo("G#",0,-1, ��):�bo("A ",0,-1, ��) $|@�bo("A#",0,-1, ��):�bo("B ",128,-1, ��):ș&400D4,,Uy,XX,XY:� $����Ye(XX,XY,bz):Ve=bz:bm=0:�bn("Octaves",96,44):�bo("0",2,-1, ��):�cU=1 �7:�bo(�cU,0,-1, ��):�cU:!(Uy+bm-24)=128:ș&400D4,,Uy,XX,XY:� %:���bn(cV$,ba,bb):$(Uy+bm)=cV$+�0:?(Uy+bm+12)=7:?(Uy+bm+13)=2:?(Uy+bm+14)=7:?(Uy+bm+15)=0:!(Uy+bm+16)=ba:!(Uy+bm+20)=bb:!(Uy+bm+24)=0:bm+=28:� %�l��bo(cW$,cX,cY,cZ):!(Uy+bm+0)=cX:!(Uy+bm+4)=cY:!(Uy+bm+8)=&07000001+�cZ*2^22:$(Uy+bm+12)=cW$+�0:bm+=24:� &���bt(ca$,cX,cY,cZ):!(Uy+bm+0)=cX:!(Uy+bm+4)=cY:!(Uy+bm+8)=&07000101+�cZ*2^22:cb=bp+bq:$cb=ca$+�0:bq+=�ca$+1:!(Uy+bm+12)=cb:!(Uy+bm+16)=bp:!(Uy+bm+20)=16:bm+=24:� &�(��Ws(XW):cc=XW!0:cd=XW!4:ce=�:ȎVe � &� �1:Ȏcc � &�#�1:�Xf(Uk,Wg):�We(Uk,Wg,Wh,8,8) &��2:�Va � &�WWw$=�ction_TagToString(Vk,"war07"):Wz=�ction_ReportError(Uk,99,Ud$,Ww$,�,�):Vc=Wz=1 ' �:Vc=� '� '$� '. �2:Ȏcc � '8 �0:Ȏcd � 'Bh�1:�aU(Uk,Yj,5,"-"):�aU(Uk,Yj,3,"-"):�aU(Uk,Yj,7,"-"):�cf(Uk,Yj,10,WU):�cf(Uk,Yj,11, �WU):�Xf(Uk,Yj) '~�2:�Wc(Ui,Uk,Yq, ��) '� �6:�cg '�� '� �1:Ȏcd � '� �0:�aW '� �1:�aX '� �2:�aY '� �3:�Vy '� �4:�aZ '�� '� �2:Ȏcd � '� �0:�ch '� �1:�ci ( I�2:�cj:ck=cl:�aU(Uk,Wk,1,�Zm):�Wc(Ui,Uk,Wk, ��):�We(Uk,Wk,Wl,8,164+8) (F*�3:�Wc(Ui,Uk,Wi, ��):�We(Uk,Wi,Wj,8,8) (Z� (d �3:Ȏcd � (n(�0:�ab(�ction_ReadIconText(Uk,Wf,1)) (x�1:�aa:ce= �� (� �2:�cm (�� (� �4:Ȏcd � (�'�0:Wx=�ction_Insert_Pattern:� �Wx � (�QWw$=�ction_TagToString(Vk,"err06"):Wz=�ction_ReportError(Uk,99,Ud$,Ww$, ��,�) (�� (� �1:�cn (� �2:�co (� �3:�ac (�5�4:�aU(Uk,ad,1,"1"):�Wc(Ui,Uk,ad, ��):�Xg(ad,1,1) )� )"� ),:�3:�aU(Uk,Wh,6,�ction_TagToString(Vk,"ster0"+�(cc+1))) )6:�4:�aU(Uk,Wh,7,�ction_TagToString(Vk,"ster0"+�(cc+1))) )@:�5:�aU(Uk,Wh,8,�ction_TagToString(Vk,"ster0"+�(cc+1))) )J:�6:�aU(Uk,Wh,9,�ction_TagToString(Vk,"ster0"+�(cc+1))) )T;�7:�aU(Uk,Wh,25,�ction_TagToString(Vk,"qual0"+�(cc+1))) )^��8:ah$=�ction_DecodeMenuIntoText(cp,XW,Uk+3*1024):ah$=�ction_LeafnameOnly(ah$):cq=�ah$,":"):cr=��ah$,cq-1):cs$=�ah$,cq+1,�ah$-cq):�ct(VV$(cr)+".HQ_Library."+cs$,-1) )�G�9:ah$=�ction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):�Vr(�ah$,4,�ah$)) )�@�10:ah$=�ction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):�cu(�ah$) )�G�11:ah$=�ction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):�aU(Uk,Wk,1,ah$) )�P�12:ah$=�ction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):�aU(Uk,Yb,1,�ah$,4,�ah$)) )�P�13:ah$=�ction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):�aU(Uk,Yb,4,�ah$,4,�ah$)) )�G�14:ah$=�ction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):�aU(Uk,Yb,7,ah$) *H�15:ah$=�ction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):�aU(Uk,Yb,10,ah$) *&H�16:ah$=�ction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):�aU(Uk,Yb,13,ah$) *:H�17:ah$=�ction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):�aU(Uk,Yb,16,ah$) *NG�18:ah$=�ction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):�aU(Uk,Yg,1,ah$) *bG�19:ah$=�ction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):�aU(Uk,Yg,4,ah$) *vG�20:ah$=�ction_DecodeMenuIntoText(Uy,XW,Uk+3*1024):�aU(Uk,Wf,7,ah$) *�0�:ș&400CF,,XW:XX=XW!0:XY=XW!4:XZ=XW!8:�ce � *��XZ=Ub � *� ȎVe � *��1:�Ys(XX) *��2:�Yt(XX,XY) *��3:�Xl(XX,XY,3) *��4:�Xl(XX,XY,4) +�5:�Xl(XX,XY,5) +�6:�Xl(XX,XY,6) +�7:�Xm(XX,XY,7) + �8:ș&400D4,,cp,XX,XY +*�9:�Xo(XX,XY) +4�10:�Xp(XX,XY) +>�20:�Xq(XX,XY) +H� +R�:ș&400D4,,-1:Ve=0 +p� +z�:� +�X��an(XW):cv=XW!40:bX$=�ction_ExtractString(XW+44):bZ=XW!4:XW!16=4:XW!12=XW!8:� �WU � +� Ȏcv � +�2�Uf:�ction_DoesFileExist(bX$+".HQ_Library") � +�ș&400E7,17,XW,bZ:�cw(bX$) ,/�:�ction_DoesFileExist(bX$+".MusicData") � ,$ ș&400E7,17,XW,bZ:�cx(bX$,�) ,8S�:Ww$=�ction_TagToString(Vk,"err03"):Wz=�ction_ReportError(Uk,99,Ud$,Ww$, ��,�) ,V� ,`� ,j'�Ug:�ction_FileIsInstrument(bX$) � ,t!�ct(bX$,-1):ș&400E7,17,XW,bZ ,�$�:�cx(bX$, ��):ș&400E7,17,XW,bZ ,�� ,�� ,��:� ,�X��ao(XW):cv=XW!40:bX$=�ction_ExtractString(XW+44):bZ=XW!4:XW!16=4:XW!12=XW!8:� �WU � -( Ȏcv � -22�Uf:�ction_DoesFileExist(bX$+".HQ_Library") � -<ș&400E7,17,XW,bZ:�cw(bX$) -P/�:�ction_DoesFileExist(bX$+".MusicData") � -d ș&400E7,17,XW,bZ:�cx(bX$,�) -x� -�� -�'�Ug:�ction_FileIsInstrument(bX$) � -�!�ct(bX$,-1):ș&400E7,17,XW,bZ -�$�:�cx(bX$, ��):ș&400E7,17,XW,bZ -�� -�� -��:� .[ݤction_SizeOfFile(bX$):�cy,cz,dU,dV,dW,dX:�dY:ș&8,17,bX$ �cy,cz,dU,dV,dW,dX:dY=dW:=dY .TWݤction_DoesFileExist(bX$):�cy,cz,dU,dV,dW,dX:ș&8,17,bX$ �cy,cz,dU,dV,dW,dX:=cy<>0 .�hݤction_TypeOfFile(bX$):�cy,cz,dU,dV,dW,dX:�dY:ș&8,17,bX$ �cy,cz,dU,dV,dW,dX:dZ=((dU>>8) �&FFF):=dZ .�:��af:�aU(Uk,Zw,9,�cl):da=0:db=0:�i=1 �VX:�VY$(i)<>"" � /5ș&900C5,VZ(i),UV �dc:db+=1:da+=(dc!(64+4)) �1024 /:[�:�:�aU(Uk,Zw,7,�db):�aU(Uk,Zw,10,�da+" KB"):�aU(Uk,Zw,8,�bx):�aU(Uk,Zw,11,�bx+" KB"):� /���Xr:�dd(Vw,Vx):� /���Xu(XW):�Vv � /�^XX=XW!0:XY=XW!4:de=�ction_ColumnClickedOn(XX,XY):df=�ction_RowClickedOn(XX,XY):�de<1 �de=1 0�de>4 �de=4 0�df<1 �df=1 0 �df>64 �df=64 0*%�dd(Vw,Vx):Vw=df:Vx=de:�dd(Vw,Vx) 0R�:� 0zyݤction_RowClickedOn(XX,XY):Uk!0=Wd:ș&400CC,,Uk:as=Uk!(12+4):dg=as-XY:av=Uk!(20+4):dg-=av:dh=dg-56:df=(dh �44)+1:=df 0�hݤction_ColumnClickedOn(XX,XY):Uk!0=Wd:ș&400CC,,Uk:di=XX-(Uk!4-Uk!20):de=((di-6*16) �(18*16))+1:=de 1���dd(dj,dk):Uk!0=Wd:ș&400CC,,Uk:as=Uk!(12+4):av=Uk!(20+4):ar=Uk!(0+4):Zs=as-56-dj*44 - av:Zr=ar+6*16 + (dk-1)*18*16:ș&400D1,-1,Zr,Zs-8,Zr+13*16,Zs+44+8:� 1���ai:ȎZk � 1�)�0:Zg=Vw:Zh=Vx:Zi=Vw:Zj=Vx:Zk=1:Zl=Zm 1�$�1,2:Zi=Vw:Zj=Vx:�Zg>Zi �ȔZg,Zi 1��Zh>Zj �ȔZh,Zj 1�Zk=2 1��:�YZ(Uk,Wd):� 24��Vy:Zk=0:Zg=1:Zh=1:Zi=1:Zj=1:Zl=Zm:�YZ(Uk,Wd):� 2x���Yr(dl$,dm):cU=��ction_ReadIconText(Uk,Wf,7)+dm:cU$=�cU:dn=�ction_FindInstrument(�ction_ReadIconText(Uk,Wf,1)):dn$=�" "+�dn,2):�dn<>-1 � 2Ҹș&900C5,VZ(Zy),UV �do:dp=do!(76+4):dp$=�" "+�dp,3):ș&900C5,dq,UV �dc:dc+=(Zm-1)* 1024:A%=!(dc+(Vw-1)*16 + (Vx-1)*4):ș&90093,A% �dr:ds$=�ction_ExtractString(dr):�ds$,1)<>"J" � 3J;�ds$,1,2)=dl$:�ds$,3,1)=�cU:�ds$,5,2)=dn$:�ds$,9,3)=dp$ 3r�:ș&90094,ds$ �A%:�Vv � 3�C!(dc+(Vw-1)*16 + (Vx-1)*4) = A%:dt=Vw:du=Vx:Vw+=1:�Vw>64 �Vw=64 3��dd(dt,du):�dd(Vw,Vx) 3�(�:Wx=�ction_Playout(dl$,�cU,�):�Vv � 41�ction_NoteIsBelowWindow ��dv(Uk,Wd,0,-44*4) 41�ction_NoteIsAboveWindow ��dv(Uk,Wd,0,+44*4) 4� 40�:� 4bk��ag:ș&900C5,dq,UV �dc:dc+=(Zm-1)* 1024:!(dc+(Vw-1)*16 + (Vx-1)*4) = 0:dt=Vw:du=Vx:Vw+=1:�Vw>64 �Vw=64 4�G�dd(dt,du):�dd(Vw,Vx):�ction_NoteIsBelowWindow ��dv(Uk,Wd,0,-44*4) 4�1�ction_NoteIsAboveWindow ��dv(Uk,Wd,0,+44*4) 4�� 4�:ݤction_Playout(ds$,cU$,dw):ș&9008B �dx:�dx=0 � �Vz � 5* Wx= �� 5>�:Wx=�:� �dw �ș&9008C 5pvcU=�cU$:ds=(�"C C#D D#E F F#G G#A A#B ",ds$)+1)/2:dy=�ction_FindInstrument(�ction_ReadIconText(Uk,Wf,1)):�dy<>-1 � 5��ș&900C5,VZ(dy),UV �dc:dz=dc!(76+4):eU=dc!(64+4):eV=dc!(68+4):eW=dc!(72+4):eV=0:eW=0:eX=dc+80+4:eY=eX:eZ=eX+eU-132:Uk!(2048+0)=eX:Uk!(2048+4)=eX+eU-132:Uk!(2048+8)=eV:Uk!(2048+12)=eW:Uk!(2048+16)=dz:Uk!(2048+20)=-1:Uk!(2048+24)=-1:Uk!(2048+28)=-1 6jș&9008D,1,Uk+2048:� �Vz � 6�dș&9008A,!ea:ș&90084,�(!eb),�(!ec),�(!ed),�(!ee):ș&90083,!ef:ș&9008B:ș&90085,!eg,!eh,!ei,!ej 6���:Uk!(2048+0)=1:Uk!(2048+4)=1:Uk!(2048+8)=cU:Uk!(2048+12)=ds:Uk!(2048+16)=2:Uk!(2048+20)=1:Uk!(2048+24)=cU:Uk!(2048+28)=ds:Uk!(2048+32)=3:Uk!(2048+36)=1:Uk!(2048+40)=cU:Uk!(2048+44)=ds:Uk!(2048+48)=4:Uk!(2048+52)=1:Uk!(2048+56)=cU:Uk!(2048+60)=ds 7 ]ș&90090,(Uk+2048):ș&90090,(Uk+2048+16):ș&90090,(Uk+2048+32):ș&90090,(Uk+2048+48):Vz=� 7(� 7< �:=Wx 7n/��WY:ș&90081,1 �ek:cY=ek!0:�cY<eY �cY>eZ � 7�ș&9008C:ș&9008E,1:Vz= �� 7��:� 7���aj(el,em):�Vv � 7�)dt=Vw:du=Vx:Vx+=el:Vw+=em:�Vw<1 �Vw=1 8"�Vw>64 �Vw=64 8,�Vx<1 �Vx=1 86�Vx>4 �Vx=4 8@�dt<>Vw �du<>Vx � 8J�dd(dt,du):�dd(Vw,Vx) 8^3�:�ction_NoteIsBelowWindow ��dv(Uk,Wd,0,-44*4) 8r1�ction_NoteIsAboveWindow ��dv(Uk,Wd,0,+44*4) 8|�:� 8��ݤction_NoteIsBelowWindow:Uk!0=Wd:ș&400CB,,Uk:ar=Uk!4:at=Uk!8:en=Uk!12:as=Uk!16:au=Uk!20:av=Uk!24:eo=as-56-Vw*44 - av:=eo<at 9�ݤction_NoteIsAboveWindow:Uk!0=Wd:ș&400CB,,Uk:ar=Uk!4:at=Uk!8:en=Uk!12:as=Uk!16:au=Uk!20:av=Uk!24:eo=as-56-Vw*44 - av:=eo>as-56-22 9l ��cg:�Vq>0 �cl>1 �bx>1 �Va � 9�OWw$=�ction_TagToString(Vk,"err23"):Wz=�ction_ReportError(Uk,99,Ud$,Ww$,�,�) 9� �:Wz=1 9� �:�Wz=1 � 9��ep=1 �VX:�VY$(ep)<>"" � 9�%�ab(�ction_LeafnameOnly(VY$(ep))) 9���:�ep:�YX:ș&900C5,dq,UV �dc:A%=dc:B%=dc+!Vn*1024:C%=0:�eq:er()= ��:er(1)=�:bx=1:�cu(1):�aU(Uk,Zw,2,""):�aU(Uk,Zw,3,""):�aU(Uk,Xz,1,"MusicApp"):�aU(Uk,Xv,1,"Instrument"):�aU(Uk,Xx,1,"MusicData "):�es(Uk,Wd,"<Untitled>"):Uk!0=Wd:ș&400CB,,Uk :�Yș&400C6,,Uk:ș&400C5,,Uk:�Xg(Wd,-1,0):�We(Uk,Wd,Wf,0,0):Va= ��:�Wo(Uk,Wm):�Wo(Uk,Wn) :��:� ;���ch:�aU(Uk,Yb,1,�ction_ReadIconText(Uk,Wf,1)):�aU(Uk,Yb,4,�ction_ReadIconText(Uk,Wf,1)):�aU(Uk,Yb,7,"C "):�aU(Uk,Yb,10,"C "):�aU(Uk,Yb,13,"1"):�aU(Uk,Yb,16,"1"):�Yc:�Wc(Ui,Uk,Yb, ��):� ;�n��Yc:�dj=1 �3:et=�ction_IconIsToggled(Uk,Yb,(dj-1)*6):�i=(dj*6-6)+1 �(dj*6-6)+5:�cf(Uk,Yb,i, �et):�i:�dj:� ;�0��Yf(eu):�ction_IconIsToggled(Uk,Yb,0) ��ev <