Home » Archimedes archive » Archimedes World » AW-1995-03-Disc2.adf » Disk2Mar95 » !AWMar95/Goodies/Morph/!Morph/!RunImage
!AWMar95/Goodies/Morph/!Morph/!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-03-Disc2.adf » Disk2Mar95 |
Filename: | !AWMar95/Goodies/Morph/!Morph/!RunImage |
Read OK: | ✔ |
File size: | FBE8 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
80ONERRORMODEMODE:PRINT"Fatal Error : ";REPORT$;" at Line ";ERL:END 90PROCUV:ONERRORPROCUW 120PROCUX:END 170DEFPROCUV:UY=4:UZ=2:Ua=1:Ub=-2:Uc$="Morph":Ud$="Morph":Ue=&FF9:Uf=&3E1:Ug=6*1024 :DIMUh Ug:Ui=6*1024 :DIMUj Ui:Uk=6*1024 :DIMUl Uk:Um=6*1024 :DIMUn Um:Uo=24*1024 :DIMUp Uo:Uq=6*1024 :DIMUr Uq:DIMUs 1024*2:DIMUt 1024:DIMUu 1024:DIMUv 1024:DIMUw 1024:DIMUx 10:PROCUy(Ux):DIMUz 10:PROCUy(Uz) 400VU=0:VV= NOTTRUE:VW=0:DIMVX 32:VY=FNction_InitialiseTask(2*100,Ud$):VZ=0:Va=0:PROCVb:PROCVc:PROCVd:PROCVe:PROCVf(0):PROCVg(0):PROCVf(2):PROCVg(2):Vh=FNction_IconbarSprite(Uj):Vi=FNction_InstallHelp:Vj= NOTTRUE:Vk=0:Vl=0:Vm= NOTTRUE:Vn= NOTTRUE:Vo=0:Vp=0:Vq= NOTTRUE:Vr= NOTTRUE:Vs=0:Vt=0:Vu= NOTTRUE:Vv%=0:Vw%=0 600Vx%=0:Vy%=0:Vz%=0:WU%=0:WV=0:WW=15:WX= NOTTRUE:WY= NOTTRUE:WZ=1:Wa=-1:Wb$="Morph-Data":Wc$="Frames":Wd=0:PROCWe:PROCWf(1):PROCWg(1):PROCWh("SOURCE",1,1):PROCWh("DEST",1,1):PROCWi(Uj,Wj,1,FNction_TagToString("srce")+FNction_TagToString("none")) 810PROCWi(Uj,Wj,3,FNction_TagToString("dest")+FNction_TagToString("none")):PROCWk(Uj,Wj,1,3):PROCWk(Uj,Wj,3,3):PROCWl:PROCWm:ENDPROC 910DEFPROCUX:PROCWn:REPEAT:Wo=FNction_PollWimp(Uh,VU):CASEWo OF 960WHEN0:IFVa=1 THENPROCWp 970IFVa=2 ORVa=3 THENPROCWq 980IFWY ANDWr THEN 990PROCWs:PROCWt 1010ENDIF:PROCWu 1030WHEN1:PROCWv(Uh) 1040WHEN2:PROCWw(Uh,Uj,-1,TRUE):CASE!Uh OF 1060WHENWx:PROCWy(Uj,Wx,Wz) 1070ENDCASE 1080WHEN3:PROCXU(Uj,Uh!0) 1090WHEN6:PROCXV(Uh) 1100WHEN7:PROCXW(Uh) 1110WHEN8:PROCXX(Uh) 1120WHEN9:PROCXY(Uh) 1130WHEN17:PROCXZ(Uh) 1140WHEN18:PROCXZ(Uh) 1150ENDCASE:UNTILVV:PROCXa(Vi):PROCXb(VY):ENDPROC 1250DEFFNction_IconbarSprite(Xc):Xc!0=-1:Xc!4=0:Xc!8=0:Xc!12=68:Xc!16=68:Xc!20=2^1+2^3+2^4+2^8+(3<<12):$VX=CHR$(ASC"a"+VW):Xc!24=VX:Xc!28=Up:Xc!32=2:SYS&400C2,,Xc TOXd:Xe=TIME:=Xd 1410DEFPROCWe:Uj!0=Ub:Uj!4=Vh:SYS&400CE,,Uj:$VX=CHR$(ASC"a"+VW):Uj!8=0:Uj!12=0:SYS&400CD,,Uj:ENDPROC 1510DEFPROCWs:Xf=TIME-Xe:IFXf>8 THEN 1540VW=(VW+1) MOD16:PROCWe:Xe=TIME 1570ENDIF:ENDPROC 1610DEFPROCXg:VW=0:PROCWe:ENDPROC 1670DEFPROCVd:PROCXh(Up,Uo):CASEFNction_SpritesType OF 1700WHEN1:PROCXi(Up,"<Morph$Dir>.Sprites") 1710WHEN2:PROCXi(Up,"<Morph$Dir>.Sprites22") 1720WHEN3:PROCXi(Up,"<Morph$Dir>.Sprites23") 1730ENDCASE:ENDPROC 1770DEFPROCXV(Xj):Xk=Xj!0:Xl=Xj!4:Xm=Xj!8:Xn=Xj!12:Xd=Xj!16:CASEXm OF 1860WHENUY:CASEXn OF 1870WHENXo:IFXd=3 THEN 1880PROCXU(Uj,Xn):PROCXp 1900ENDIF 1910WHENXq:IFXd=5 THEN 1920PROCXU(Uj,Xn):PROCXr(Uj) 1940ENDIF 1950WHENUb:IFXd=Vh THEN 1960IF NOTWY THEN 1970PROCXs(Uj,Wj) 1980ELSE:PROCXs(Uj,Xt) 2000ENDIF 2010ENDIF 2020WHENWj:CASEXd OF 2030WHEN0:IFVj THEN 2040IFINKEY(-2) THEN 2050Xu=FNction_LaunchObject(Xv$,Xu) 2060ELSE:PROCWw(Uh,Uj,Xw, NOTTRUE) 2080ENDIF 2090ENDIF 2100WHEN2:IFVn THEN 2110IFINKEY(-2) THEN 2120Xx=FNction_LaunchObject(Xy$,Xx) 2130ELSE:PROCWw(Uh,Uj,Xz, NOTTRUE) 2150ENDIF 2160ENDIF 2170WHEN7:PROCYU 2180WHEN8:PROCYV 2190WHEN9:PROCYW 2200ENDCASE 2210WHENYX:CASEXd OF 2220WHEN0:PROCYY(+1,0) 2230WHEN1:PROCYY(-1,0) 2240WHEN5:PROCYY(0,+1) 2250WHEN6:PROCYY(0,-1) 2260ENDCASE 2270WHENXw:CASEWX OF 2280WHENFALSE:PROCYZ(Xn,Xk,Xl,TRUE) 2290WHENTRUE:PROCYa(Xn,Xk,Xl, NOTTRUE,TRUE) 2300ENDCASE:IFINKEY(-2) THENXu=FNction_LaunchObject(Xv$,Xu) 2320WHENXz:CASEWX OF 2330WHENFALSE:PROCYZ(Xn,Xk,Xl,TRUE) 2340WHENTRUE:PROCYa(Xn,Xk,Xl, NOTTRUE,TRUE) 2350ENDCASE:IFINKEY(-2) THENXx=FNction_LaunchObject(Xy$,Xx) 2370WHENWz:CASEXd OF 2380WHEN9:PROCYb 2390WHEN5:PROCYc 2400WHEN4:PROCYd 2410WHEN3:PROCYe("All") 2420WHEN7:PROCYe("From") 2430ENDCASE 2440WHENWx:CASEXd OF 2450WHEN2:PROCYf:PROCXU(Uj,Xn):PROCXU(Uj,Wz) 2480WHEN1:PROCXU(Uj,Xn):PROCXU(Uj,Wz):PROCYg:PROCYd 2520WHEN0:PROCYh:PROCXU(Uj,Xn):PROCXU(Uj,Wz) 2550ENDCASE 2560WHENXt:IFXd=2 THEN 2570Yi$=FNction_TagToString("err11"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$,TRUE,TRUE):IFYj<>1 THENPROCYk 2600ENDIF 2610WHENYl:IFXd=2 THENPROCYm( NOTTRUE) 2620WHENYn:IFVr ANDINKEY(-2) THEN 2630Yo=FNction_LaunchObject(Yp$,Yo) 2640ENDIF 2650WHENYq:IFXd=0 THEN 2660PROCUy(Ux):PROCYr(Uj,Xn) 2680ELSE:PROCYs(Xn,Xk,Xl,Ux) 2700ENDIF 2710WHENYt:IFXd=0 THEN 2720PROCUy(Uz):PROCYr(Uj,Xn) 2740ELSE:PROCYs(Xn,Xk,Xl,Uz) 2760ENDIF 2770ENDCASE 2800WHENUZ:CASEXn OF 2810WHENUb:IFXd=Vh THEN 2820PROCYu(Xk) 2830ENDIF 2840WHENXw:PROCYv(Xk,Xl) 2850WHENXz:PROCYw(Xk,Xl) 2860WHENYn:PROCYx(Xk,Xl) 2870WHENWj:CASEXd OF 2880WHEN7:PROCYU 2890WHEN8:PROCYV 2900ENDCASE 2910ENDCASE 2940WHENUa:CASEXn OF 2950WHENWj:CASEXd OF 2960WHEN7:PROCYU 2970WHEN8:PROCYV 2980ENDCASE 2990WHENXw:CASEWX OF 3000WHENFALSE:PROCYZ(Xn,Xk,Xl, NOTTRUE) 3010WHENTRUE:PROCYa(Xn,Xk,Xl,TRUE, NOTTRUE) 3020ENDCASE 3030WHENXz:CASEWX OF 3040WHENFALSE:PROCYZ(Xn,Xk,Xl, NOTTRUE) 3050WHENTRUE:PROCYa(Xn,Xk,Xl,TRUE, NOTTRUE) 3060ENDCASE 3070WHENWx:CASEXd OF 3080WHEN2:PROCYf 3090WHEN1:PROCYg:PROCYd 3110WHEN0:PROCYh 3120ENDCASE 3130WHENWz:CASEXd OF 3140WHEN4:PROCYd 3150WHEN3:PROCYe("All") 3160WHEN7:PROCYe("From") 3170ENDCASE 3180WHENYl:IFXd=2 THENPROCYm(TRUE) 3190WHENYn:IFVr THENPROCYy(Xk,Xl) 3200ENDCASE 3230WHEN64:CASEXn OF 3240WHENXw:CASEWX OF 3250WHENFALSE:Va=2:PROCYz(Xn,Xk,Xl) 3260WHENTRUE:IFWV>0 THENVa=3:PROCZU(Xn,Xk,Xl) 3270ENDCASE 3280WHENXz:CASEWX OF 3290WHENFALSE:Va=2:PROCYz(Xn,Xk,Xl) 3300WHENTRUE:IFWV>0 THENVa=3:PROCZU(Xn,Xk,Xl) 3310ENDCASE 3320WHENYl:IFXd=Wa THEN 3330Va=4:Yj=FNction_BeginDrag(Uj,Xn,Xd) 3350ENDIF 3360ENDCASE 3390WHEN16:CASEXn OF 3410WHENXw:IFWV=0 THEN 3420Va=1:PROCZV(Xn,Xk,Xl) 3430ELSE:CASEWX OF 3450WHENFALSE:Va=2:PROCYz(Xn,Xk,Xl) 3460WHENTRUE:Va=3:PROCZU(Xn,Xk,Xl) 3470ENDCASE 3480ENDIF 3500WHENXz:IFWV=0 THEN 3510Va=1:PROCZV(Xn,Xk,Xl) 3520ELSE:CASEWX OF 3540WHENFALSE:Va=2:PROCYz(Xn,Xk,Xl) 3550WHENTRUE:Va=3:PROCZU(Xn,Xk,Xl) 3560ENDCASE 3570ENDIF 3590WHENYn:Va=1:PROCZV(Xn,Xk,Xl) 3600ENDCASE 3630ENDCASE:ENDPROC 3670DEFPROCXX(Xj):Xn=Xj!0:Xd=Xj!4:ZW=Xj!24:CASEXn OF 3720WHENYX:CASEXd OF 3730WHEN2:IFZW=13 THEN 3740ZX=VALFNction_ReadIconText(Uj,YX,2):ZY=VALFNction_ReadIconText(Uj,YX,4):IFVZ=5 THENZZ$="SOURCE"ELSEZZ$="DEST" 3770PROCWh(ZZ$,ZX,ZY):ZY$=FNction_ReadIconText(Uj,YX,4):PROCZa(YX,4,LENZY$) 3800ENDIF 3810WHEN4:IFZW=13 THEN 3820ZX=VALFNction_ReadIconText(Uj,YX,2):ZY=VALFNction_ReadIconText(Uj,YX,4):IFVZ=5 THENZZ$="SOURCE"ELSEZZ$="DEST" 3850PROCWh(ZZ$,ZX,ZY):PROCZb 3870ENDIF 3880ENDCASE 3890WHENWj:CASEXd OF 3900WHEN6:IFZW=13 THENPROCZb 3910ENDCASE 3920WHENYl:IFXd=0 ANDZW=13 THEN 3930PROCYm( NOTTRUE) 3940ENDIF 3950WHENXw:CASEZW OF 3960WHENASC"X"-64:PROCZc 3970ENDCASE 3980WHENXz:CASEZW OF 3990WHENASC"X"-64:PROCZc 4000ENDCASE 4010WHENWz:IFZW=13 THEN 4020CASEXd OF 4030WHEN11:Zd$=FNction_ReadIconText(Uj,Xn,8):PROCZa(Xn,8,LENZd$) 4050WHEN8:PROCYh:PROCXU(Uj,Xn):PROCXU(Uj,Wx) 4080WHEN13:Zd$=FNction_ReadIconText(Uj,Xn,14):PROCZa(Xn,14,LENZd$) 4100WHEN14:PROCYh:PROCXU(Uj,Xn):PROCXU(Uj,Wx) 4130ENDCASE 4140ENDIF 4150ENDCASE:PROCZe(ZW):ENDPROC 4200DEFPROCXZ(Xj):CASEXj!16 OF 4220WHEN0:IF NOTWY THEN 4230VV=TRUE 4240ELSE:Yi$=FNction_TagToString("err12"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$,TRUE,TRUE):VV= NOT(Yj=1) 4280ENDIF 4290WHEN2:PROCZf(Xj) 4300WHEN3:PROCZg(Xj) 4310WHEN5:IFXj!40=Uf THENPROCZg(Xj) 4320WHEN9:PROCZh:PROCZi 4340WHEN&502:PROCZj(Xj) 4350WHEN&400C1:PROCZh:PROCZi 4370ENDCASE:ENDPROC 4410DEFPROCWv(Xj):Xn=Xj!0:SYS&400C8,,Xj TOZk:Zl=Xj!4:Zm=Xj!12:Zn=Xj!16:Zo=Xj!8:Zp=Xj!20:Zq=Xj!24:WHILEZk:CASEXn OF 4490WHENWj:PROCZr 4500WHENXw:PROCZs 4510WHENXz:PROCZt 4520WHENYn:PROCZu 4530WHENYq:PROCZv(Ux) 4540WHENYt:PROCZv(Uz) 4550ENDCASE:SYS&400CA,,Xj TOZk:ENDWHILE:ENDPROC 4610DEFPROCXW(Xj):CASEVa OF 4630WHEN1 4640WHEN2:PROCZw 4650WHEN3:PROCZx 4660WHEN4:PROCZy(Xj) 4670WHEN5 4680ENDCASE:ENDPROC 4720DEFPROCZy(Xj):SYS&400CF,,Xj:Xk=Xj!0:Xl=Xj!4:Xn=Xj!12:Xd=Xj!16:Zz$=FNction_PathnameOnly(FNction_ReadIconText(Uj,Wj,14)):aU$=FNction_LeafnameOnly(FNction_ReadIconText(Uj,Wj,14)):Xj!0=44+((LENaU$ DIV4)*4)+4:Xj!4=0:Xj!8=0:Xj!12=0:Xj!16=1:Xj!20=Xn:Xj!24=Xd:Xj!28=Xk 4880Xj!32=Xl:Xj!36=64:Xj!40=&FFF:$(Xj+44)=aU$+CHR$0:SYS&400E7,17,Xj,Xn:ENDPROC 4960DEFPROCZf(Xj):aV=Xj!4:Xj!12=Xj!8:Xj!16=3:Zz$=FNction_ExtractString(Xj+44):SYS&400E7,17,Xj,aV:aW$=FNction_ReadIconText(Uj,Yl,0):aW$=FNction_LeafnameOnly(aW$):Zz$=Zz$+aW$:aX$=FNction_ReadIconText(Uj,Yl,Wa):CASEaX$ OF 5070WHEN"directory":PROCaY(Zz$) 5080OTHERWISE:PROCaZ(Zz$) 5100ENDCASE:SYS&400D4,,-1:ENDPROC 5150DEFFNction_BeginDrag(Xc,Xn,Xd):LOCALaa,ab,ac,ad:Xc!0=4:Xc!4=5:Xc!8=11:Xc!12=12:Xc!16=-1:SYS&31,Xc,Xc+32:aa=(Xc!40+1)* 2^( Xc!32 ):ab=(Xc!44+1)* 2^( Xc!36 ):Xc!0=Xn:SYS&400CC,,Xc:ac=Xc!4:ad=Xc!16:Xc!0=Xn:Xc!4=Xd:SYS&400CE,,Xc:Xc!8+=ac:Xc!12+=ad 5310Xc!16+=ac:Xc!20+=ad:Xc!0=0:Xc!4=5:Xc!24=0:Xc!28=0:Xc!32=aa:Xc!36=ab:SYS&400D0,,Xc:=0 5390DEFPROCVb:ae=Un:PROCaf(Uj,"<"+Uc$+"$Dir>.Templates"):ae=FNction_LoadTemplate(Ul,ae,Un+Um,"information"):ag=FNction_MakeTemplateAWindow(Ul):ae=FNction_LoadTemplate(Ul,ae,Un+Um,"source"):Xw=FNction_MakeTemplateAWindow(Ul) 5460ae=FNction_LoadTemplate(Ul,ae,Un+Um,"xfer_send"):Yl=FNction_MakeTemplateAWindow(Ul):ae=FNction_LoadTemplate(Ul,ae,Un+Um,"dest"):Xz=FNction_MakeTemplateAWindow(Ul):ae=FNction_LoadTemplate(Ul,ae,Un+Um,"main"):Wj=FNction_MakeTemplateAWindow(Ul) 5520ae=FNction_LoadTemplate(Ul,ae,Un+Um,"magnifier"):YX=FNction_MakeTemplateAWindow(Ul):ae=FNction_LoadTemplate(Ul,ae,Un+Um,"pref_pane"):Wz=FNction_MakeTemplateAWindow(Ul):ae=FNction_LoadTemplate(Ul,ae,Un+Um,"pref_main"):Wx=FNction_MakeTemplateAWindow(Ul) 5580ae=FNction_LoadTemplate(Ul,ae,Un+Um,"progress"):Xt=FNction_MakeTemplateAWindow(Ul):ae=FNction_LoadTemplate(Ul,ae,Un+Um,"back"):Yn=FNction_MakeTemplateAWindow(Ul):ae=FNction_LoadTemplate(Ul,ae,Un+Um,"xfer_send2"):ah=FNction_MakeTemplateAWindow(Ul) 5640ae=FNction_LoadTemplate(Ul,ae,Un+Um,"colr"):Yq=FNction_MakeTemplateAWindow(Ul):ae=FNction_LoadTemplate(Ul,ae,Un+Um,"mvmt"):Yt=FNction_MakeTemplateAWindow(Ul):ae=FNction_LoadTemplate(Ul,ae,Un+Um,"share_1"):Xo=FNction_MakeTemplateAWindow(Ul) 5700ae=FNction_LoadTemplate(Ul,ae,Un+Um,"share_2"):Xq=FNction_MakeTemplateAWindow(Ul):PROCai:ENDPROC 5760DEFPROCaj(ak$,aa,ab):$(Ur+al)=ak$+CHR$0:?(Ur+al+12)=7:?(Ur+al+13)=2:?(Ur+al+14)=7:?(Ur+al+15)=0:!(Ur+al+16)=aa:!(Ur+al+20)=ab:!(Ur+al+24)=0:al+=28:ENDPROC 5890DEFPROCam(an$,ao,ap,aq):!(Ur+al+0)=ao:!(Ur+al+4)=ap:!(Ur+al+8)=&07000001+ABSaq*2^22:$(Ur+al+12)=an$+CHR$0:al+=24:ENDPROC 5980DEFPROCar(as$,ao,ap,aq):!(Ur+al+0)=ao:!(Ur+al+4)=ap:!(Ur+al+8)=&07000101+ABSaq*2^22:at=au+av:$at=as$+CHR$0:av+=LENas$+1:!(Ur+al+12)=at:!(Ur+al+16)=-1:!(Ur+al+20)=16:al+=24:ENDPROC 6120DEFPROCYu(Xk):VZ=1:al=0:PROCaj(Uc$,160,44):PROCam("Info",0,ag, NOTTRUE):PROCam("Prefs...",0,-1,WY):PROCam("Quit",128,-1, NOTTRUE):SYS&400D4,,Ur,Xk-80,228:ENDPROC 6230DEFPROCYU:VZ=2:al=0:au=Ur+1*1024:av=0:PROCaj("Quality",304,44):FORaw=1 TO5:aw$=FNction_TagToString("qual"+RIGHT$("00"+STR$aw,2)):PROCar(aw$,ABS(aw=!ax),-1,aw>1):NEXTaw:!(Ur+al+0-24)+=128:!Uj=Wj:SYS&400CC,,Uj:Zl=Uj!4:Zo=Uj!8:SYS&400D4,,Ur,Zl+488,Zo+100:ENDPROC 6400DEFPROCYV:VZ=3:al=0:au=Ur+1*1024:av=0:ay$=FNction_ReadIconText(Uj,Wj,6):PROCaj("Frames",128,44):FORaz=1 TO5:az$=FNction_TagToString("frms"+RIGHT$("00"+STR$az,2)):PROCar(az$,ABS(ay$=az$),-1, NOTTRUE):NEXTaz:!(Ur+al+0-24)+=128:!Uj=Wj:SYS&400CC,,Uj:Zl=Uj!4:Zo=Uj!8:SYS&400D4,,Ur,Zl+488,Zo+50 6550ENDPROC 6580DEFPROCYb:VZ=4:al=0:au=Ur+1*1024:av=0:PROCaj("Auto",128,44):FORbU=1 TO5:bU$=FNction_TagToString("auto"+RIGHT$("00"+STR$bU,2)):PROCar(bU$,0,-1, NOTTRUE):NEXTbU:!(Ur+al+0-24)=128:!Uj=Wz:SYS&400CC,,Uj:Zl=Uj!4:Zo=Uj!8:SYS&400D4,,Ur,Zl+448+52,Zo+356-Uj!24:ENDPROC 6750DEFPROCYv(Xk,Xl):PROCbV("file_3e1"):PROCWi(Uj,Yl,0,Wb$):PROCWi(Uj,YX,2,STR$bW):PROCWi(Uj,YX,4,STR$bX):PROCbY(WW):VZ=5:al=0:au=Ur+1*1024:av=0:bZ=Ur+al:PROCaj("Select",128,44):PROCar(FNction_TagToString("delt"),0,-1,WV=0 ORWX):PROCar(FNction_TagToString("colr"),128,Us,(NOTWX) ORWV=0):ba=Ur+al 6900PROCaj("Edit",304,44):PROCar(FNction_TagToString("bgrd"),0,-1, NOTTRUE):PROCar(FNction_TagToString("colc"),0,-1, NOTTRUE):PROCar(FNction_TagToString("movc"),2,-1, NOTTRUE):PROCar(FNction_TagToString("rsrc"),0,-1, NOTVj):PROCar(FNction_TagToString("rdst"),0,-1, NOTVn) 6960PROCar(FNction_TagToString("rbck"),128,-1, NOTVr):bb=Ur+al:PROCaj("Misc",224,44):PROCar(FNction_TagToString("acpt"),0,-1,WX):PROCar(FNction_TagToString("cntr"),2,-1,(Vv%=0 ANDVw%=0)):PROCar(FNction_TagToString("rest"),128,-1, NOTTRUE):bc=Ur+al:PROCaj("Morph",128,44) 7040PROCar(FNction_TagToString("misc"),0,bb, NOTTRUE):PROCar(FNction_TagToString("save"),0,Yl, NOTTRUE):PROCar(FNction_TagToString("slct"),0,bZ, NOTTRUE):PROCar(FNction_TagToString("edit"),0,ba, NOTTRUE):PROCar(FNction_TagToString("zoom"),128,YX, NOTTRUE):SYS&400D4,,bc,Xk-64,Xl:ENDPROC 7130DEFPROCYw(Xk,Xl):PROCbV("file_3e1"):PROCWi(Uj,Yl,0,Wb$):PROCWi(Uj,YX,2,STR$bd):PROCWi(Uj,YX,4,STR$be):PROCbY(WW):VZ=6:al=0:au=Ur+1*1024:av=0:bZ=Ur+al:PROCaj("Select",128,44):PROCar(FNction_TagToString("delt"),0,-1,WV=0 ORWX):PROCar(FNction_TagToString("colr"),128,Us,(NOTWX) ORWV=0):ba=Ur+al 7280PROCaj("Edit",304,44):PROCar(FNction_TagToString("bgrd"),0,-1, NOTTRUE):PROCar(FNction_TagToString("colc"),0,-1, NOTTRUE):PROCar(FNction_TagToString("movc"),2,-1, NOTTRUE):PROCar(FNction_TagToString("rsrc"),0,-1, NOTVj):PROCar(FNction_TagToString("rdst"),0,-1, NOTVn) 7340PROCar(FNction_TagToString("rbck"),128,-1, NOTVr):bb=Ur+al:PROCaj("Misc",224,44):PROCar(FNction_TagToString("acpt"),0,-1,WX):PROCar(FNction_TagToString("cntr"),2,-1,(Vx%=0 ANDVy%=0)):PROCar(FNction_TagToString("rest"),128,-1, NOTTRUE):bc=Ur+al:PROCaj("Morph",128,44) 7420PROCar(FNction_TagToString("misc"),0,bb, NOTTRUE):PROCar(FNction_TagToString("save"),0,Yl, NOTTRUE):PROCar(FNction_TagToString("slct"),0,bZ, NOTTRUE):PROCar(FNction_TagToString("edit"),0,ba, NOTTRUE):PROCar(FNction_TagToString("zoom"),128,YX, NOTTRUE):SYS&400D4,,bc,Xk-64,Xl:ENDPROC 7510DEFPROCYx(Xk,Xl):VZ=8:al=0:au=Ur+1*1024:av=0:bf=Ur+al:PROCaj(FNction_TagToString("upper"),128,44):PROCar(FNction_TagToString("left"),0,-1, NOTVr):PROCar(FNction_TagToString("middle"),0,-1, NOTVr):PROCar(FNction_TagToString("right"),128,-1, NOTVr):bg=Ur+al 7620PROCaj(FNction_TagToString("middle"),128,44):PROCar(FNction_TagToString("left"),0,-1, NOTVr):PROCar(FNction_TagToString("middle"),0,-1, NOTVr):PROCar(FNction_TagToString("right"),128,-1, NOTVr):bh=Ur+al:PROCaj(FNction_TagToString("lower"),128,44) 7680PROCar(FNction_TagToString("left"),0,-1, NOTVr):PROCar(FNction_TagToString("middle"),0,-1, NOTVr):PROCar(FNction_TagToString("right"),128,-1, NOTVr):bc=Ur+al:PROCaj("Align",128,44):PROCar(FNction_TagToString("upper"),0,bf, NOTVr):PROCar(FNction_TagToString("middle"),0,bg, NOTVr) 7750PROCar(FNction_TagToString("lower"),128,bh, NOTVr):SYS&400D4,,bc,Xk-64,Xl:ENDPROC 7800DEFPROCYc:VZ=7:PROCbY(FNction_ColourOfIcon(Uj,Wz,19)):!Uj=Wz:SYS&400CC,,Uj:Zl=Uj!4:Zo=Uj!8:SYS&400D4,,Us,Zl+448+52,Zo+268-Uj!24:ENDPROC 7890DEFPROCbY(bi):PROCbj("Colour",96,44):PROCbk(ABS(bi=&0),-1,&07000011," 0"):PROCbk(ABS(bi=&1),-1,&17000011," 1"):PROCbk(ABS(bi=&2),-1,&27000011," 2"):PROCbk(ABS(bi=&3),-1,&37000011," 3"):PROCbk(ABS(bi=&4),-1,&40000011," 4"):PROCbk(ABS(bi=&5),-1,&50000011," 5") 7970PROCbk(ABS(bi=&6),-1,&60000011," 6"):PROCbk(ABS(bi=&7),-1,&70000011," 7"):PROCbk(ABS(bi=&8),-1,&80000011," 8"):PROCbk(ABS(bi=&9),-1,&97000011," 9"):PROCbk(ABS(bi=&A),-1,&A0000011," A"):PROCbk(ABS(bi=&B),-1,&B0000011," B"):PROCbk(ABS(bi=&C),-1,&C7000011," C") 8040PROCbk(ABS(bi=&D),-1,&D0000011," D"):PROCbk(ABS(bi=&E),-1,&E7000011," E"):PROCbk(ABS(bi=&F)+128,-1,&F7000011," F"):ENDPROC 8100DEFPROCbj(ak$,aa,ab):bl=0:$(Us+bl)=ak$+CHR$0:?(Us+bl+12)=7:?(Us+bl+13)=2:?(Us+bl+14)=7:?(Us+bl+15)=0:!(Us+bl+16)=aa:!(Us+bl+20)=ab:!(Us+bl+24)=0:bl+=28:ENDPROC 8240DEFPROCbk(ao,ap,bm,bn$):?(Us+bl+0)=ao:?(Us+bl+1)=0:?(Us+bl+2)=0:?(Us+bl+3)=0:!(Us+bl+4)=ap:!(Us+bl+8)=bm:$(Us+bl+12)=bn$+CHR$0:bl+=24:ENDPROC 8360DEFPROCXY(Xj):bo=Xj!0:bp=Xj!4:bq=Xj!8:CASEVZ OF 8410WHEN1:CASEbo OF 8420WHEN1:PROCXs(Uj,Wx):PROCWy(Uj,Wx,Wz) 8440WHEN2:IF NOTWY THEN 8450VV=TRUE 8460ELSE:Yi$=FNction_TagToString("err12"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$,TRUE,TRUE):VV= NOT(Yj=1) 8500ENDIF 8510ENDCASE 8520WHEN2:PROCWf(bo+1):!ax=bo+1 8540WHEN3:PROCWg(bo+1) 8550WHEN4:br$=FNction_TagToString("auto"+RIGHT$("00"+STR$(bo+1),2)):PROCWi(Uj,Wz,11,br$):PROCWi(Uj,Wz,8,br$) 8590WHEN5:CASEbo OF 8600WHEN0:CASEbp OF 8610WHEN0:PROCbs(TRUE) 8620WHEN1:Vv%=0:!bt=0:Vw%=0:!bu=0:PROCYr(Uj,Xw) 8640WHEN2:PROCbv 8650ENDCASE 8660WHEN2:CASEbp OF 8670WHEN0:PROCZc 8680WHEN1:PROCbw(bq) 8690ENDCASE 8700WHEN3:CASEbp OF 8710WHEN0:PROCXs(Uj,Yn) 8720WHEN1:PROCWw(Uh,Uj,Yq, NOTTRUE) 8730WHEN2:PROCWw(Uh,Uj,Yt, NOTTRUE) 8740WHEN3:PROCbx("Source") 8750WHEN4:PROCbx("Dest") 8760WHEN5:PROCbx("Back") 8770ENDCASE 8780ENDCASE 8800WHEN6:CASEbo OF 8810WHEN0:CASEbp OF 8820WHEN0:PROCbs(TRUE) 8830WHEN1:Vx%=0:!by=0:Vy%=0:!bz=0:PROCYr(Uj,Xz) 8850WHEN2:PROCbv 8860ENDCASE 8870WHEN2:CASEbp OF 8880WHEN0:PROCZc 8890WHEN1:PROCbw(bq) 8900ENDCASE 8910WHEN3:CASEbp OF 8920WHEN0:PROCXs(Uj,Yn) 8930WHEN1:PROCWw(Uh,Uj,Yq, NOTTRUE) 8940WHEN2:PROCWw(Uh,Uj,Yt, NOTTRUE) 8950WHEN3:PROCbx("Source") 8960WHEN4:PROCbx("Dest") 8970WHEN5:PROCbx("Back") 8980ENDCASE 8990ENDCASE 9010WHEN7:PROCcU(Uj,Wz,19,bo) 9030WHEN8:CASEbo OF 9050WHEN0:CASEbp OF 9060WHEN0:PROCcV("T","L") 9070WHEN1:PROCcV("T","M") 9080WHEN2:PROCcV("T","R") 9090ENDCASE 9110WHEN1:CASEbp OF 9120WHEN0:PROCcV("M","L") 9130WHEN1:PROCcV("M","M") 9140WHEN2:PROCcV("M","R") 9150ENDCASE 9170WHEN2:CASEbp OF 9180WHEN0:PROCcV("B","L") 9190WHEN1:PROCcV("B","M") 9200WHEN2:PROCcV("B","R") 9210ENDCASE 9230ENDCASE 9250ENDCASE:SYS&400CF,,Xj:Xk=Xj!0:Xl=Xj!4:Xm=Xj!8:IFXm=Ua THEN 9310CASEVZ OF 9320WHEN1:PROCYu(Xk) 9330WHEN2:PROCYU 9340WHEN3:PROCYV 9350WHEN4:PROCYb 9360WHEN5:IFVj THENPROCYv(Xk,Xl) 9370WHEN6:IFVn THENPROCYw(Xk,Xl) 9380WHEN7:PROCYc 9390WHEN8:PROCYx(Xk,Xl) 9400ENDCASE 9410ELSE:IFVZ<>1 THEN 9430SYS&400D4,,-1:VZ=0 9450ENDIF 9460ENDIF:ENDPROC 9500DEFPROCZg(Xj):cW=Xj!40:Zz$=FNction_ExtractString(Xj+44):aV=Xj!4:Xj!16=4:Xj!12=Xj!8:SYS&400E7,17,Xj,aV:IFcW<>Ue ANDcW<>Uf THEN 9580Yi$=FNction_TagToString("err01"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$, NOTTRUE,TRUE) 9600ELSE:CASEcW OF 9620WHENUe:PROCcX(Zz$) 9630WHENUf:PROCcY(Zz$) 9640ENDCASE 9650ENDIF:ENDPROC 9690DEFFNction_FileExists(Zz$):SYS&20008,13,Zz$ TOcZ:=(cZ<>0) 9740DEFFNction_SizeOfFile(Zz$):LOCALca:SYS&8,17,Zz$ TOcZ,cb,cc,cd,ce,cf:ca=ce:=ca 9810DEFFNction_TypeOfFile(Zz$):LOCALca:SYS&8,17,Zz$ TOcZ,cb,cc,cd,ce,cf:cg=((cc>>8) AND&FFF):=cg 9880DEFPROCZj(Xj):ch$="":aV=Xj!4:ci=Xj!32:bm=Xj!36:CASEci OF 9940WHENUb:IFbm=Vh THEN 9950IFWY ANDWr THEN 9960ch$="spin" 9970ELSE:ch$="icon" 9990ENDIF 10000ENDIF 10010WHENYq:IFbm=0 THENch$="colw00"ELSEch$="colw" 10020WHENYt:IFbm=0 THENch$="movw00"ELSEch$="movw" 10030WHENXw:ch$="sour" 10040WHENXz:ch$="dstn" 10050WHENYn:ch$="back" 10060WHENXt:CASEbm OF 10070WHEN1:ch$="prog01" 10080WHEN2:ch$="prog02" 10090WHEN3:ch$="prog03" 10100ENDCASE 10110WHENWj:CASEbm OF 10120WHEN0:ch$="main00" 10130WHEN2:ch$="main02" 10140WHEN4:ch$="main04" 10150WHEN6:ch$="main06" 10160WHEN7:ch$="main07" 10170WHEN8:ch$="main08" 10180WHEN9:ch$="main09" 10190OTHERWISE:ch$="main" 10210ENDCASE 10220WHENWx:CASEbm OF 10230WHEN0:ch$="pman00" 10240WHEN1:ch$="pman01" 10250WHEN2:ch$="pman02" 10260OTHERWISE:ch$="pref" 10280ENDCASE 10290WHENWz:CASEbm OF 10300WHEN3:ch$="ppne03" 10310WHEN4:ch$="ppne04" 10320WHEN5:ch$="ppne05" 10330WHEN7:ch$="ppne07" 10340WHEN8:ch$="ppne08" 10350WHEN9:ch$="ppne09" 10360WHEN11:ch$="ppne11" 10370WHEN12:ch$="ppne12" 10380WHEN13:ch$="ppne13" 10390WHEN14:ch$="ppne14" 10400WHEN19:ch$="ppne19" 10410OTHERWISE:ch$="pref" 10430ENDCASE 10440ENDCASE:IFch$<>"" THEN 10460cj$=FNction_TagToString(ch$):Xj!0=20+((LEN(cj$) DIV4)*4)+4:Xj!12=Xj!8:Xj!16=&503:$(Xj+20)=cj$+CHR$0:SYS&400E7,17,Xj,aV 10520ENDIF:ENDPROC 10560DEFPROCWf(ck):aw$=FNction_TagToString("qual"+RIGHT$("00"+STR$ck,2)):PROCWi(Uj,Wj,4,aw$):ENDPROC 10620DEFPROCWg(ck):az$=FNction_TagToString("frms"+RIGHT$("00"+STR$ck,2)):PROCWi(Uj,Wj,6,az$):ENDPROC 10680DEFPROCZV(ci,cl,cm):cn=ci:co=cl+1:cp=cm+0:Uj!0=ci:Uj!4=7:Uj!8=cl:Uj!12=cm:Uj!16=cl:Uj!20=cm:Uj!24=ci:SYS&400C8,,Uj+24:cq=Uj!28:cr=Uj!36:cs=Uj!40:ct=Uj!32:Uj!24=cq:Uj!28=ct:Uj!32=cr:Uj!36=cs:SYS&400D0,,Uj:ENDPROC 10860DEFPROCWp:SYS&400CF,,Uj:cl=Uj!0:cm=Uj!4:cu=Uj!8:ci=cn:IFcu=1 THEN 10910IFcl<>co ORcm<>cp THEN 10920CASEci OF 10930WHENXw:cv=bW/bX 10940WHENXz:cv=bd/be 10950WHENYn:cv=1/1 10960ENDCASE:PROCcw(ci,(cl-co)/cv,(cm-cp)/cv):co=cl:cp=cm 11000ENDIF 11010ELSE:Va=0 11030ENDIF:ENDPROC 11070DEFPROCcw(ci,cx,cy):CASEci OF 11100WHENXw:Vv%+=((cx>>cz)/dU):Vw%+=((cy>>dV)/dW):!bt+=((cx>>cz)/dU):!bu+=((cy>>dV)/dW):PROCYr(Uj,ci) 11160WHENXz:Vx%+=((cx>>cz)/dX):Vy%+=((cy>>dV)/dY):!by+=((cx>>cz)/dX):!bz+=((cy>>dV)/dY):PROCYr(Uj,ci) 11220WHENYn:IFVr THEN 11230Vz%+=((cx>>cz)/dZ):WU%+=((cy>>dV)/da):!db+=((cx>>cz)/dZ):!dc+=((cy>>dV)/da):PROCYy(cl,cm) 11280ENDIF 11300ENDCASE:ENDPROC 11340DEFPROCdd(ci,cl,cm):CASEci OF 11360WHENXw:de=bW/bX:df=dU:dg=dW 11390WHENXz:de=bd/be:df=dX:dg=dY 11420ENDCASE:PROCdh(Uj,ci,cl,cm):di%=(dj>>(df*cz) ) / de:dk%=(dl>>(dg*dV) ) / de:ENDPROC 11490DEFPROCYz(ci,cl,cm):dm=ci:dn=cl:do=cm:co=cl:cp=cm:Uj!0=ci:Uj!4=7:Uj!8=cl:Uj!12=cm:Uj!16=cl:Uj!20=cm:Uj!24=ci:SYS&400CC,,Uj+24:cq=Uj!28:cr=Uj!36:cs=Uj!40:ct=Uj!32:Uj!24=cq:Uj!28=ct:Uj!32=cr:Uj!36=cs:SYS&400D0,,Uj:IFWX THENPROCdpELSEPROCdq 11650ENDPROC 11680DEFPROCdp:dr=Uj:!dr=dm:SYS&400CC,,dr:dr!(0+4)=dr!(40+4):dr!(4+4)=dr!(44+4):dr!(8+4)=dr!(48+4):dr!(12+4)=dr!(52+4):SYS&400C9,,dr TOds:WHILEds:SYS&400E6,48+14:RECTANGLEFILLco-4,cp-4,8,8:SYS&400CA,,dr TOds:ENDWHILE:ENDPROC 11830DEFPROCdq:dr=Uj:!dr=dm:SYS&400CC,,dr:dr!(0+4)=dr!(40+4):dr!(4+4)=dr!(44+4):dr!(8+4)=dr!(48+4):dr!(12+4)=dr!(52+4):SYS&400C9,,dr TOds:WHILEds:SYS&400E6,48+14:LINEdn,do,co,cp:SYS&400CA,,dr TOds:ENDWHILE:ENDPROC 11980DEFPROCWq:SYS&400CF,,Uj:cl=Uj!0:cm=Uj!4:cu=Uj!8:ci=Uj!12:IFcu=4 ORcu=1 THEN 12030IFcl<>co ORcm<>cp THEN 12040IFWX THENPROCdpELSEPROCdq 12050co=cl:cp=cm:IFWX THENPROCdpELSEPROCdq 12080ENDIF 12090ELSE:Va=0 12110ENDIF:ENDPROC 12150DEFPROCZw:IFWX THENPROCdpELSEPROCdq 12170SYS&400CF,,Uj:ci=Uj!12:PROCdd(ci,dn,do):dt=ABS(cp-do):du=ABS(co-dn):IFdu>dt THEN 12230IF NOTFNction_GuideExists(dv,dk%) THEN 12240dw=FNction_Insert_HorV(dv,dk%):PROCdx(Xw,dw,dv):PROCdx(Xz,dw,dv) 12270ENDIF 12280ELSE:IF NOTFNction_GuideExists(dy,di%) THEN 12300dw=FNction_Insert_HorV(dy,di%):PROCdx(Xw,dw,dy):PROCdx(Xz,dw,dy) 12330ENDIF 12340ENDIF:ENDPROC 12380DEFFNction_Insert_HorV(dz,eU%):i=0:eV= NOTTRUE:WHILEi<=255 AND NOTeV:eW%=(dz!(i*4) AND&7FFFFFFF):IFeW%=0 THEN 12440eV=TRUE 12450ELSE:i+=1 12470ENDIF:ENDWHILE:IFi>255 THEN 12500Yi$=FNction_TagToString("err04"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$, NOTTRUE,TRUE) 12520ELSE:dz!(i*4) = eU% + 1 12540ENDIF:=i 12580DEFFNction_GuideExists(dz,eU%):i=0:eV= NOTTRUE:WHILEi<=255 AND NOTeV:eW%=(dz!(i*4) AND&7FFFFFFF)-1:IFeW%=eU% THEN 12640eV=TRUE 12650ELSE:i+=1 12670ENDIF:ENDWHILE:=eV 12720DEFPROCYZ(ci,cl,cm,eX):IFeX THEN 12740eY=USReZ:ea=USReb:IFeY>0 THEN 12770IFeY>1 THEN 12780PROCYr(Uj,Xw):PROCYr(Uj,Xz) 12800ELSE:PROCdx(Xw,!ec,dv):PROCdx(Xz,!ec,dv) 12830ENDIF 12840ENDIF:IFea>0 THEN 12860IFea>1 THEN 12870PROCYr(Uj,Xw):PROCYr(Uj,Xz) 12890ELSE:PROCdx(Xw,!ed,dy):PROCdx(Xz,!ed,dy) 12920ENDIF 12930ENDIF:WV=0 12950ENDIF:PROCdd(ci,cl,cm):ee=FNction_ClosestGuide(dv,dk%):ef=FNction_ClosestGuide(dy,di%):IFee<>-1 THENPROCeg(dv,ee, NOTeX) 13000IFef<>-1 THENPROCeg(dy,ef, NOTeX) 13010ENDPROC 13040DEFFNction_ClosestGuide(dz,eU):i=0:eh=-1:ei=8:WHILEi<=255:eW%=(dz!(i*4) AND&7FFFFFFF)-1:ej=ABS(eW%-eU):IFej<ei ANDeW%<>-1 THEN 13120eh=i:ei=ej 13140ENDIF:i+=1:ENDWHILE:=eh 13200DEFPROCeg(dz,ck,ek):eW%=dz!(ck*4):el%=(eW% AND&80000000):eW%-=el%:em%=&80000000:IFek THEN 13260em%=el% EOR&80000000 13270ENDIF:IFem%<>0 THENWV+=1ELSEWV-=1 13290dz!(ck*4) = eW% + em%:IFFNction_WindowIsOpen(Uj,Xw) THENPROCdx(Xw,ck,dz) 13310IFFNction_WindowIsOpen(Uj,Xz) THENPROCdx(Xz,ck,dz) 13320ENDPROC 13350DEFPROCdx(ci,ck,dz):IFFNction_WindowIsOpen(Uj,ci) THEN 13370CASEci OF 13380WHENXw:en=dW* dV:de=bW/bX:a=dU 13410WHENXz:en=dY* dV:de=bd/be:a=dX 13440ENDCASE:!Uj=ci:SYS&400CC,,Uj:Zl=Uj!4:Zn=Uj!16:Zo=Uj!8:Zp=Uj!20:Zq=Uj!24:Zm=Uj!12:eo=Zl-Zp:ep=Zn-Zq:eU=dz!(ck*4):CASEdz OF 13540WHENdv:eq=Zl:er=Zm:es=ep+((eU<<en)* de ) - 24:et=es+48 13580WHENdy:es=Zo:et=Zn:eq=eo+((eU<<(cz*a)) * de ) - 24:er=eq+48 13630ENDCASE:SYS&400D1,-1,eq,es,er,et 13650ENDIF:ENDPROC 13690DEFPROCZc:eu=USRev:WV=0:IFeu>0 THEN 13730IFeu=1 THEN 13740!(!ew+(!ex*4) ) = !ey:PROCdx(Xw,!ex,!ew):PROCdx(Xz,!ex,!ew):!(!ew+(!ex*4) ) = 0 13780ELSE:IFFNction_WindowIsOpen(Uj,Xw) THENPROCYr(Uj,Xw) 13800IFFNction_WindowIsOpen(Uj,Xz) THENPROCYr(Uj,Xz) 13810ENDIF 13820ENDIF:ENDPROC 13860DEFPROCbs(ez):fU=!fV:fW=!fX:IFez THEN 13900Yj=FNction_Insert_HorV(dv,0):Yj=FNction_Insert_HorV(dv,fW-1):Yj=FNction_Insert_HorV(dy,0):Yj=FNction_Insert_HorV(dy,fU-1) 13940ENDIF:A%=dv:fY%=USRfZ:A%=dy:fa%=USRfZ:A%=dv:CALLfb:A%=dy:CALLfb:PROCfc:CALLfd:FORy=0 TOfY%-1:FORx=0 TOfa%-1:B%=((dv!(y*4)) AND&7FFFFFFF)-1:A%=((dy!(x*4)) AND&7FFFFFFF)-1:C%=WW:CALLfe:NEXTx:NEXTy:WX=TRUE:IFFNction_WindowIsOpen(Uj,Xw) THENPROCYr(Uj,Xw) 14110IFFNction_WindowIsOpen(Uj,Xz) THENPROCYr(Uj,Xz) 14120ENDPROC 14150DEFPROCfc:FORi=0 TOfY%-1:FORj=0 TOfY%-1:A%=dv!(j*4+0) :ff=(A% AND&7FFFFFFF):B%=dv!(j*4+4) :fg=(B% AND&7FFFFFFF):IFff<fg THENSWAPA%,B% 14220dv!(j*4+0) = A%:dv!(j*4+4) = B%:NEXTj:NEXTi:FORi=fa%-2 TO0STEP-1:FORj=fa%-2 TO0STEP-1:A%=dy!(j*4+0) :ff=(A% AND&7FFFFFFF):B%=dy!(j*4+4) :fg=(B% AND&7FFFFFFF):IFff>fg THENSWAPA%,B% 14320dy!(j*4+0) = A%:dy!(j*4+4) = B%:NEXTj:NEXTi:ENDPROC 14390DEFPROCYa(ci,cl,cm,ek,eX):IFeX THEN 14420fh=USRfi:WV=0:IFfh>0 THEN 14450IFfh=1 THEN 14460PROCfj(Xw,!fk):PROCfj(Xz,!fk) 14480ELSE:PROCYr(Uj,Xw):PROCYr(Uj,Xz) 14510ENDIF 14520ENDIF 14530ENDIF:PROCdd(ci,cl,cm):A%=di%:B%=dk%:CASEci OF 14610WHENXw:C%=0 14620WHENXz:C%=8 14630ENDCASE:fl=USRfm:IFfl<>-1 THEN 14670A%=fn!(fl*24+16):IFek THENA%=(A% EOR2)ELSEA%=(A% OR2) 14690IF(A% AND2)<>0 THENWV+=1ELSEWV-=1 14700fn!(fl*24+16) = A%:PROCfj(Xw,fl):PROCfj(Xz,fl) 14730ENDIF:ENDPROC 14780DEFPROCfj(ci,fl):IFFNction_WindowIsOpen(Uj,ci) THEN 14800CASEci OF 14810WHENXw:en=dW* dV:de=bW/bX:fo=0:a=dU 14850WHENXz:en=dY* dV:de=bd/be:fo=8:a=dX 14890ENDCASE:!Uj=ci:SYS&400CC,,Uj:Zl=Uj!4:Zn=Uj!16:Zo=Uj!8:Zp=Uj!20:Zq=Uj!24:Zm=Uj!12:eo=Zl-Zp:ep=Zn-Zq:fp=fn!(fl*24+fo ):fq=fn!(fl*24+fo+4):eq=eo+((fp<<(cz*a)) * de ) - 8:es=ep+((fq<<en)* de ) - 8:er=eq+16:et=es+16:SYS&400D1,-1,eq,es,er,et 15040ENDIF:ENDPROC 15080DEFPROCZU(ci,cl,cm):dm=ci:dn=cl:do=cm:co=cl:cp=cm:Uj!0=ci:Uj!4=7:Uj!8=cl:Uj!12=cm:Uj!16=cl:Uj!20=cm:Uj!24=ci:SYS&400CC,,Uj+24:cq=Uj!28:cr=Uj!36:cs=Uj!40:ct=Uj!32:Uj!24=cq:Uj!28=ct:Uj!32=cr:Uj!36=cs:SYS&400D0,,Uj:IFWX THENPROCdpELSEPROCdq 15240ENDPROC 15270DEFPROCZx:IFWX THENPROCdpELSEPROCdq 15290PROCdd(dm,dn,do):fr=di%:fs=dk%:PROCdd(dm,co,cp):ft=di%:fu=dk%:A%=ft-fr:B%=fu-fs:CASEdm OF 15360WHENXw:C%=0 15370WHENXz:C%=8 15380ENDCASE:!fv=fY%:!fw=fa%:CALLfx:PROCYr(Uj,Xw):PROCYr(Uj,Xz):ENDPROC 15470DEFPROCbw(fy):WW=fy:A%=fy:fz=USRgU:IFfz>0 THEN 15520PROCYr(Uj,Xw):PROCYr(Uj,Xz) 15540ENDIF:ENDPROC 15580DEFPROCYW:IF NOTVj THEN 15600Yi$=FNction_TagToString("err06"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$, NOTTRUE,TRUE) 15620ELSE:IF NOTVn THEN 15640Yi$=FNction_TagToString("err07"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$, NOTTRUE,TRUE) 15660ELSE:IF NOTWX THEN 15680Yi$=FNction_TagToString("err05"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$, NOTTRUE,TRUE) 15700ELSE:gV$=FNction_TagToString("war01"):gW$=FNction_ReadIconText(Uj,Wj,4):gX$=FNction_TagToString("war02"):Yj=FNction_ReportError(Uj,99,Uc$,gV$+gW$+gX$,TRUE,TRUE):IFYj=1 THEN 15760PROCbV("directory"):PROCWi(Uj,Yl,0,Wc$):SYS&400CF,,Uj:SYS&400D4,,Yl,Uj!0,Uj!4 15800ENDIF 15810ENDIF 15820ENDIF 15830ENDIF:ENDPROC 15870DEFPROCbV(gY$):IFWa<>-1 THEN 15890Uj!0=Yl:Uj!4=Wa:SYS&400C4,,Uj 15920ENDIF:!Uj=Yl:Uj!(4+0)=116:Uj!(4+4)=-94:Uj!(4+8)=116+76:Uj!(4+12)=-94+72:Uj!(4+16)=&601A:$(Uj+4+20)=gY$:SYS&400C2,,Uj TOWa:ENDPROC 16020DEFPROCcV(gZ$,ga$):CASEgZ$ OF 16040WHEN"T":WU%=!gb-!fX 16050WHEN"M":WU%=(!gb/2)-(!fX/2) 16060WHEN"B":WU%=0 16070ENDCASE:CASEga$ OF 16090WHEN"L":Vz%=0 16100WHEN"M":Vz%=(!gc/2)-(!fV/2) 16110WHEN"R":Vz%=!gc-!fV 16120ENDCASE:!db=Vz%:!dc=WU%:PROCYr(Uj,Yn):ENDPROC 16190DEFPROCaZ(Zz$):Wb$=Zz$:LOCALERROR:gd=-1:ONERRORLOCALPROCge:ENDPROC 16230gd=OPENOUTZz$:BPUT#gd,ASC"D":BPUT#gd,ASC"A":BPUT#gd,ASC"T":BPUT#gd,ASC"A":PRINT#gd,WX:PRINT#gd,WV:IFWX THEN 16310PRINT#gd,!gf:PRINT#gd,fY%:PRINT#gd,fa%:FORi=0 TO!gf-1:PRINT#gd,fn!(i*24+0):PRINT#gd,fn!(i*24+4):PRINT#gd,fn!(i*24+8):PRINT#gd,fn!(i*24+12):PRINT#gd,fn!(i*24+16):PRINT#gd,fn!(i*24+20):NEXTi 16420ELSE:A%=dv:fY%=USRfZ:A%=dy:fa%=USRfZ:A%=dv:CALLfb:A%=dy:CALLfb:PRINT#gd,fY%:PRINT#gd,fa%:FORi=0 TOfY%-1:PRINT#gd,dv!(i*4):NEXTi:FORi=0 TOfa%-1:PRINT#gd,dy!(i*4):NEXTi 16550ENDIF:FORi=0 TO10:BPUT#gd,Ux?i:BPUT#gd,Uz?i:NEXTi:CLOSE#gd:OSCLI"SetType "+Zz$+" Morph":RESTOREERROR:ENDPROC 16660DEFPROCcY(Zz$):LOCALERROR:gd=-1:ONERRORLOCALPROCge:ENDPROC 16690gd=OPENINZz$:gg=BGET#gd:gh=BGET#gd:gi=BGET#gd:gj=BGET#gd:IFgg=ASC"D" ANDgh=ASC"A" ANDgi=ASC"T" ANDgj=ASC"A" THEN 16730INPUT#gd,WX:INPUT#gd,WV:IFWX THEN 16760INPUT#gd,!gf:INPUT#gd,fY%:INPUT#gd,fa%:FORi=0 TO!gf-1:INPUT#gd,fn!(i*24+0):INPUT#gd,fn!(i*24+4):INPUT#gd,fn!(i*24+8):INPUT#gd,fn!(i*24+12):INPUT#gd,fn!(i*24+16):INPUT#gd,fn!(i*24+20):NEXTi 16870ELSE:INPUT#gd,fY%:INPUT#gd,fa%:FORi=0 TOfY%-1:INPUT#gd,dv!(i*4):NEXTi:FORi=0 TOfa%-1:INPUT#gd,dy!(i*4):NEXTi 16960ENDIF:FORi=0 TO10:Ux?i=BGET#gd:Uz?i=BGET#gd:NEXTi 17010ELSE:Yi$=FNction_TagToString("err01"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$, NOTTRUE,TRUE) 17040ENDIF:CLOSE#gd:RESTOREERROR:IFFNction_WindowIsOpen(Uj,Xw) THENPROCYr(Uj,Xw) 17080IFFNction_WindowIsOpen(Uj,Xz) THENPROCYr(Uj,Xz) 17090IFFNction_WindowIsOpen(Uj,Yq) THENPROCYr(Uj,Yq) 17100IFFNction_WindowIsOpen(Uj,Yt) THENPROCYr(Uj,Yt) 17110ENDPROC 17140DEFPROCge:Yi$=FNction_TagToString("err13"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$+REPORT$+" ("+STR$ERL+")", NOTTRUE,TRUE):IFgd<>-1 THENCLOSE#gd:gd=-1 17180ENDPROC 17210DEFPROCYm(gk):Zz$=FNction_ReadIconText(Uj,Yl,0):gl$=FNction_ReadIconText(Uj,Yl,Wa):IFINSTR(Zz$,".")=0 THEN 17250Yi$=FNction_TagToString("err14"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$, NOTTRUE,TRUE) 17270ELSE:CASEgl$ OF 17290WHEN"directory":PROCaY(Zz$):IF NOTgk THENVZ=0:SYS&400D4,,-1 17310OTHERWISE:PROCaZ(Zz$):IF NOTgk THENVZ=0:SYS&400D4,,-1 17340ENDCASE 17350ENDIF:ENDPROC 17390DEFPROCWu:SYS&90141 TOcZ:IFcZ=-1 THEN 17440SYS&90142 TOcZ:Zz$=FNction_ExtractString(cZ):IFVj THEN 17480IFZz$=FNction_RemoveFSPrefix(Xv$) THEN 17490PROCgm(Xv$):IFFNction_WindowIsOpen(Uj,Yn) THENPROCYr(Uj,Yn) 17510ENDIF 17520ENDIF:IFVn THEN 17550IFZz$=FNction_RemoveFSPrefix(Xy$) THEN 17560PROCgn(Xy$) 17570ENDIF 17580ENDIF:IFVr THEN 17610IFZz$=FNction_RemoveFSPrefix(Yp$) THEN 17620PROCgo(Yp$):IFVj THENPROCYr(Uj,Yn) 17640ENDIF 17650ENDIF 17670ENDIF:ENDPROC 17720DEFFNction_RemoveFSPrefix(gp$):gq= NOTTRUE:REPEAT:gr$=LEFT$(gp$,1):gq=gr$=":":gp$=MID$(gp$,2,LENgp$-1):UNTILgq:=gp$ 17820DEFFNction_LaunchObject(gs$,gt):gu=gt:LOCALERROR:ONERRORLOCALPROCgv:= NOTTRUE 17860IF NOTgt THEN 17870Yi$=FNction_TagToString("err16"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$, NOTTRUE,TRUE) 17890ENDIF:IFgt THENOSCLI"Filer_Run "+gs$ 17910RESTOREERROR:=gu 17950DEFPROCgv:gu= NOTTRUE:Yi$=FNction_TagToString("err15"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$, NOTTRUE,TRUE):ENDPROC 18020DEFPROCbv:Yi$=FNction_TagToString("err17"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$,TRUE,TRUE):IFYj=1 THEN 18060WV=0:WX= NOTTRUE:PROCWl:PROCYr(Uj,Xw):PROCYr(Uj,Xz) 18110ENDIF:ENDPROC 18150DEFPROCYe(gw$):PROCgx(Uj,Wz,3,gw$="All"):PROCgx(Uj,Wz,7,gw$<>"All"):PROCgy(Uj,Wz,13,gw$="All"):PROCgy(Uj,Wz,14,gw$="All"):IFFNction_WindowWithCaret(Uj)=Wz ANDgw$="All" THEN 18210PROCZb 18220ENDIF:ENDPROC 18260DEFPROCUy(gz):FORi=0 TO10:gz?i=i* 10:NEXTi:ENDPROC 18330DEFPROCZv(gz):SYS&400E6,7:MOVEZl,Zo:FORi=0 TO10:eU=gz?i:DRAWZl+(i*10)*4,Zo+eU*2:NEXTi:SYS&400E6,10:FORi=0 TO10:eU=gz?i:CIRCLEFILLZl+(i*10)*4,Zo+eU*2,6:NEXTi:ENDPROC 18480DEFPROCYs(ci,cl,cm,gz):PROCdh(Uj,ci,cl,cm):hU%=(hV%/400)* 100:hW%=((-hX%)/202)* 100:IFhU% MOD10<2 ORhU% MOD10>8 THEN 18530hU%=(hU%+1) DIV10:hY=gz?hU%:hZ=100-hW%:IFhZ<>hY ANDhU%>0 ANDhU%<10 THEN 18570gz?hU%=100-hW%:IFgz?hU%<0 THENgz?hU%=0 18590IFgz?hU%>100 THENgz?hU%=100 18600PROCYr(Uj,ci) 18610ENDIF 18620ENDIF:ENDPROC 18660DEFFNction_GetPercentage(ha,gz):IFha=100 THEN=100 18680hb=ha DIV10:hc=gz?hb:hd=hb+1:he=gz?hd:hf=(ha MOD10)/10:hg=hc* (1-hf):hh=he* hf:=(hg+hh)/100 18760DEFPROCUW:Yi$="Fatal Error : "+REPORT$+" ("+STR$ERL+")":IFWY THENYi$+=FNction_TagToString("err20") 18790Yj=FNction_ReportError(Uj,99,Uc$,Yi$,TRUE, NOTTRUE):IFWY THENPROCYk 18810ENDPROC 18870DEFPROCWn:PROCXs(Uj,Xo):PROChi(Uj,Xo):VDU7:ENDPROC 18940DEFPROCXp:PROCXs(Uj,Xq):PROChi(Uj,Xq):VDU7:ENDPROC 19110DEFPROCVe:hj=13:hk=14:hl=15:DIMhm 37*1024:FORhn=0 TO2STEP2:P%=hm:[OPT hn:.dv FNction_ReserveMemory(256 *4):.dy FNction_ReserveMemory(256 *4):.ho LDR r3,[r0],#4:STR r3,[r1],#4:SUBS r2,r2,#4:BNE ho:MOV PC,hk:.fZ STMFD (hj)!,{hk}:MOV r1,#256:MOV r2,#0 19640.hp LDR r3,[r0],#4:CMP r3,#0:ADDNE r2,r2,#1:SUBS r1,r1,#1:BNE hp:MOV r0,r2:LDMFD (hj)!,{PC}:.fb STMFD (hj)!,{hk}:MOV r1,r0:MOV r2,#256:.hq LDR r3,[r1],#4:STR r3,[r0]:CMP r3,#0:ADDNE r0,r0,#4:SUBS r2,r2,#1:BNE hq:LDMFD (hj)!,{PC}:.eZ STMFD (hj)!,{hk} 19990LDR r0,hr:MOV r2,#0:MOV r5,#0:.hs LDR r3,[r0]:MOVS r4,r3,LSR #31:STRNE r2,ec:ADDNE r5,r5,#1:MOV r3,r3,LSL #1:MOV r3,r3,LSR #1:STR r3,[r0],#4:ADD r2,r2,#1:CMP r2,#256:BNE hs:MOV r0,r5:LDMFD (hj)!,{PC}:.eb STMFD (hj)!,{hk}:LDR r0,ht:MOV r2,#0:MOV r5,#0 20200.hu LDR r3,[r0]:MOVS r4,r3,LSR #31:STRNE r2,ed:ADDNE r5,r5,#1:MOV r3,r3,LSL #1:MOV r3,r3,LSR #1:STR r3,[r0],#4:ADD r2,r2,#1:CMP r2,#256:BNE hu:MOV r0,r5:LDMFD (hj)!,{PC}:.hr DCD dv:.ht DCD dy:.ec DCD 0:.ed DCD 0:.ev STMFD (hj)!,{hk}:LDR r0,hv 20490LDR r1,hw:MOV r2,#0:MOV r6,#0:.hx LDR r3,[r0,r2,ASL #2]:LDR r4,[r1,r2,ASL #2]:MOVS r5,r3,LSR #31:STRNE r3,ey:ADDNE r6,r6,#1:STRNE r2,ex:MOVNE r7,r0:MOVNE r3,#0:MOVS r5,r4,LSR #31:STRNE r4,ey:ADDNE r6,r6,#1:STRNE r2,ex:MOVNE r7,r1:MOVNE r4,#0 20660STR r3,[r0,r2,ASL #2]:STR r4,[r1,r2,ASL #2]:ADD r2,r2,#1:CMP r2,#256:BNE hx:STR r7,ew:MOV r0,r6:LDMFD (hj)!,{PC}:.hv DCD dv:.hw DCD dy:.ex DCD 0:.ew DCD 0:.ey DCD 0:.hy STMFD (hj)!,{hk}:MOV r0,#99:STR r0,hz:LDR r12,iU:LDR r11,iV:LDR r10,iW:LDR r9,iX 20930LDR r8,iY:LDR r7,iZ:LDR r6,ia:LDR r5,ib:LDR r4,ic:MOV r3,#255:.id LDR r2,[r12],#4:MOVS r0,r2,LSR #31:LDREQ r0,ie:LDRNE r0,if:LDR r1,hz:STR r0,hz:CMP r0,r1:SWINE "Wimp_SetColour":BIC r2,r2,#&80000000:SUBS r2,r2,#1:BLT ig:MOV r1,r2,ASL r9:MUL r1,r8,r1 21120MOV r1,r1,ASR #8:MOV r0,r6,ASL r10:MUL r0,r8,r0:MOV r0,r0,ASR #8:BL ih:.ig LDR r2,[r11],#4:MOVS r0,r2,LSR #31:LDREQ r0,ie:LDRNE r0,if:LDR r1,hz:STR r0,hz:CMP r0,r1:SWINE "Wimp_SetColour":BIC r2,r2,#&80000000:SUBS r2,r2,#1:BLT ii:MOV r1,r2,ASL r10 21290MUL r1,r8,r1:MOV r1,r1,ASR #8:MOV r0,r7,ASL r9:MUL r0,r8,r0:MOV r0,r0,ASR #8:BL ij:.ii SUBS r3,r3,#1:BGE id:LDMFD (hj)!,{PC}:.ih STMFD (hj)!,{r3,hk}:STR r1,ik:STR r0,il:MOV r0,#4:LDR r1,ib:LDR r2,ic:LDR r3,ik:ADD r2,r2,r3:SWI "OS_Plot":MOV r0,#5 21500LDR r1,ib:LDR r3,il:ADD r1,r1,r3:SWI "OS_Plot":LDMFD (hj)!,{r3,PC}:.ij STMFD (hj)!,{r3,hk}:STR r1,im:STR r0,in:MOV r0,#4:LDR r1,ib:LDR r2,im:ADD r1,r1,r2:LDR r2,ic:SWI "OS_Plot":MOV r0,#5:LDR r2,io:SWI "OS_Plot":LDMFD (hj)!,{r3,PC}:.hz DCD 0:.ie DCD 0 21740.if DCD 0:.ik DCD 0:.il DCD 0:.im DCD 0:.in DCD 0:.iU DCD dv:.iV DCD dy:.iW DCD 0:.iX DCD 0:.iY DCD 0:.iZ DCD 0:.ia DCD 0:.ib DCD 0:.ic DCD 0:.ip DCD 0:.io DCD 0:.fm STMFD (hj)!,{hk}:LDR r3,iq:LDR r4,gf:MOV r5,#0:.ir LDR r6,[r3,#16]: ANDS r6, r6, #1 22160BEQ is:SUB r4,r4,#1:LDR r7,[r3,r2]: ADD r2,r2,#4:LDR r8,[r3,r2]: SUB r2,r2,#4:SUBS r9,r7,r0 : MVNLT r9,r9 : ADDLT r9,r9,#1:SUBS r10,r8,r1 : MVNLT r10,r10 : ADDLT r10,r10,#1:CMP r9,#1 : BGT is:CMP r10,#1 : BGT is:MOV r0,r5:LDMFD (hj)!,{PC} 22310.is ADD r3,r3,#24:ADD r5,r5,#1:CMP r4,#0:BNE ir:MVN r0,#0:LDMFD (hj)!,{PC}:.iq DCD fn:.fx STMFD (hj)!,{hk}:MOV r6,r2:LDR r2,it:LDR r3,gf:MOV r7,#1 : LDR r8,fw : ADD r8,r8,#1:MOV r9,#1 : LDR r10,fv:SUB r11,r8,#1:SUB r12,r10,#1:.iu LDR r4,[r2,#16] 22660 ANDS r5, r4, #1:SUBNE r3,r3,#1: ANDS r4, r4, #2:BEQ iv:LDR r4,[r2,r6]: ADD r6,r6,#4:LDR r5,[r2,r6]: SUB r6,r6,#4:ADD r4,r4,r0:ADD r5,r5,r1:CMP r7,#1 : CMPNE r7,r11 : SUBEQ r4,r4,r0:CMP r9,#1 : CMPNE r9,r10 : SUBEQ r5,r5,r1:STR r4,[r2,r6]: ADD r6,r6,#4 22790STR r5,[r2,r6]: SUB r6,r6,#4:.iv ADD r7,r7,#1:CMP r7,r8 : MOVGE r7,#1 : ADDGE r9,r9,#1:ADD r2,r2,#24:CMP r3,#0:BNE iu:LDMFD (hj)!,{PC}:.it DCD fn:.fv DCD 0:.fw DCD 0:.gU STMFD (hj)!,{hk}:LDR r1,iw:LDR r2,gf:MOV r3,r0:MOV r0,#0:.ix LDR r4,[r1,#16] 23110 AND r5, r4, #1:CMP r5,#1:BNE iy:SUB r2,r2,#1: AND r5, r4, #2:CMP r5,#2:BNE iy:ADD r0,r0,#1: AND r5, r4, #15:ADD r5,r5,r3,LSL #4:STR r5,[r1,#16]:.iy ADD r1,r1,#24:CMP r2,#0:BGT ix:LDMFD (hj)!,{PC}:.iw DCD fn:.fi STMFD (hj)!,{hk}:MOV r0,#0:LDR r1,iz 23410MOV r2,#32*1024:MOV r5,#0:.jU LDR r3,[r1,#16]: ANDS r4, r3, #2:SUBNE r3,r3,#2:STRNE r3,[r1,#16]:ADDNE r0,r0,#1:STRNE r5,fk:ADD r5,r5,#1:ADD r1,r1,#24:SUBS r2,r2,#24:BGT jU:LDMFD (hj)!,{PC}:.iz DCD fn:.fk DCD 0:.fe STMFD (hj)!,{hk}:MOV r5,r2:LDR r2,jV 23750MOV r4,#0:.jW LDR r3,[r2,#16]: ANDS r3, r3, #1:BEQ jX:ADD r2,r2,#24:ADD r4,r4,#1:B jW:.jX STR r0,[r2,#0]:STR r1,[r2,#4]:STR r0,[r2,#8]:STR r1,[r2,#12]:MOV r3,r5,LSL #4:ADD r3,r3,#1:STR r3,[r2,#16]:LDR r0,gf:ADD r0,r0,#1:STR r0,gf:MOV r0,r4 23930LDMFD (hj)!,{PC}:.jV DCD fn:.jY STMFD (hj)!,{hk}:MOV r0,#11:SWI "Wimp_SetColour":LDR r12,jZ:LDR r1,gf:LDR r2,ja:LDR r3,jb:LDR r4,jc:LDR r5,jd:LDR r6,je:LDR r10,jf:LDR r11,jg:.jh LDR r7,[r12,#16]: ANDS r8, r7, #1:BEQ ji:.jj LDR r0,jk:LDR r8,[r12,#16] 24240 AND r9, r8, #%11110000:MOV r9,r9,LSR #4: ANDS r8, r8, #%00000010:ADDNE r9,r9,#8: AND r9, r9, #15:STR r9,jl:LDR r8,[r12,r0]: ADD r0,r0,#4:LDR r9,[r12,r0]:MOV r8,r8,ASL r3:MOV r9,r9,ASL r4:MUL r8,r2,r8:MUL r9,r2,r9:MOV r8,r8,ASR #8:MOV r9,r9,ASR #8:BL jm 24420SUB r1,r1,#1:.ji ADD r12,r12,#24:CMP r1,#0:BNE jh:LDMFD (hj)!,{PC}:.jm STMFD (hj)!,{r0-r12,hk}:add r8,r8,r10:add r9,r9,r11:.jn MOV r0,r8,LSL #16:ADD r0,r0,r9:STR r0,[r12,#20]:sub r8,r8,r10:sub r9,r9,r11:.jo LDR r0,jl:ADR r1,jp:ADD r1,r1,r0,ASL #1 24620LDRB r0,[r1,#0]:SWI "Wimp_SetColour":MOV r0,#4:SUB r1,r8,#6:SUB r2,r9,#6:add r1,r1,r10:add r2,r2,r11:SWI "OS_Plot":MOV r0,#96+5:ADD r1,r8,#6:ADD r2,r9,#6:add r1,r1,r10:add r2,r2,r11:SWI "OS_Plot":.jq LDR r0,jl:ADR r1,jp:ADD r1,r1,r0,ASL #1 24780LDRB r0,[r1,#1]:SWI "Wimp_SetColour":MOV r0,#4:SUB r1,r8,#6:SUB r2,r9,#6:add r1,r1,r10:add r2,r2,r11:SWI "OS_Plot":MOV r0,#5:ADD r1,r8,#6:SUB r2,r9,#6:add r1,r1,r10:add r2,r2,r11:SWI "OS_Plot":MOV r0,#5:ADD r1,r8,#6:ADD r2,r9,#6 24930add r1,r1,r10:add r2,r2,r11:SWI "OS_Plot":MOV r0,#5:SUB r1,r8,#6:ADD r2,r9,#6:add r1,r1,r10:add r2,r2,r11:SWI "OS_Plot":MOV r0,#5:SUB r1,r8,#6:SUB r2,r9,#6:add r1,r1,r10:add r2,r2,r11:SWI "OS_Plot":LDMFD (hj)!,{r0-r12,PC}:.jZ DCD fn:.ja DCD 0 25100.jb DCD 0:.jc DCD 0:.jd DCD 0:.je DCD 0:.jf DCD 0:.jg DCD 0:.jk DCD 0:.jl DCD 0:.jp DCB 0 : DCB 5:DCB 1 : DCB 6:DCB 2 : DCB 5:DCB 3 : DCB 6:DCB 4 : DCB 1:DCB 5 : DCB 2:DCB 6 : DCB 1:DCB 7 : DCB 2:DCB 8 : DCB 15:DCB 9 : DCB 11:DCB 10 : DCB 0 25330DCB 11 : DCB 14:DCB 12 : DCB 4:DCB 13 : DCB 10:DCB 14 : DCB 11:DCB 15 : DCB 8:.jr STMFD (hj)!,{hk}:LDR r0,js:SWI "Wimp_SetColour":LDR r12,jt:LDR r11,ju:LDR r10,jv:LDR r9,jw:LDR r6,jx:BL jy:LDR r12,jt:BL jz:LDMFD (hj)!,{PC}:.jy STMFD (hj)!,{hk} 25580MOV r7,r10:.kU SUB r8,r11,#1:.kV MOV r0,#4:LDR r1,[r12,#20]: MOV r1,r1,LSR #16:LDR r2,[r12,#20]: AND r2,r2,r9:SWI "OS_Plot":ADD r12,r12,#24:MOV r0,#5:LDR r1,[r12,#20]: MOV r1,r1,LSR #16:LDR r2,[r12,#20]: AND r2,r2,r9:SWI "OS_Plot":SUBS r8,r8,#1:BNE kV 25710ADD r12,r12,#24:SUBS r7,r7,#1:BNE kU:LDMFD (hj)!,{PC}:.jz STMFD (hj)!,{hk}:MOV r7,r11:.kW SUB r8,r10,#1:MOV r5,#0:.kX MOV r0,#4:LDR r1,[r12,#20]: MOV r1,r1,LSR #16:LDR r2,[r12,#20]: AND r2,r2,r9:SWI "OS_Plot":ADD r12,r12,r6:ADD r5,r5,r6:MOV r0,#5 25880LDR r1,[r12,#20]: MOV r1,r1,LSR #16:LDR r2,[r12,#20]: AND r2,r2,r9:SWI "OS_Plot":SUBS r8,r8,#1:BNE kX:SUB r12,r12,r5:ADD r12,r12,#24:SUBS r7,r7,#1:BNE kW:LDMFD (hj)!,{PC}:.jt DCD fn:.ju DCD 0:.jv DCD 0:.jw DCD &0000FFFF:.jx DCD 0:.js DCD 0 26110.fd STMFD (hj)!,{hk}:LDR r0,kY:MOV r1,#32 *1024:MOV r2,#0:.kZ STR r2,[r0,#16]:ADD r0,r0,#24:SUBS r1,r1,#24:BGT kZ:MOV r0,#0:STR r0,gf:LDMFD (hj)!,{PC}:.kY DCD fn:.ka STMFD (hj)!,{hk}:.kb CMP r2,#0:LDMEQFD (hj)!,{PC}:CMP r2,#4:BLT kc:.kd LDR r3,[r0],#4 26440STR r3,[r1],#4:SUB r2,r2,#4:B kb:.kc LDRB r3,[r0],#1:STRB r3,[r1],#1:SUB r2,r2,#1:B kb:.gf DCD 0:.ke DCD (32*1024)/24:.fn FNction_ReserveMemory(32*1024):]:NEXThn:ENDPROC 26800DEFFNction_ReserveMemory(kf):IFhn=0 THEN 26820P%+=kf 26830ELSE:FORi=0 TOkf-1STEP4:P%!i=0:NEXTi:P%+=kf 26880ENDIF:[OPT hn : ALIGN :]:=hn 27120DEFPROCVc:SYS&51 TOkg:kh=FNction_ReadSlotSize:ki=0:kj=HIMEM:ENDPROC 27200DEFFNction_AllocateMemory(kk):LOCALkl,km:LOCALkn,ko,kp:LOCALkq,kr:kl=(kk DIVkg)+1:km=kl* kg:IFFNction_ReadSizeOfFreePool>=kk THEN 27270kn=FNction_ReadSlotSize:ko=kn+kk:kp=FNction_SetSlotSize(ko):ki+=kk:kj+=kk:kr=TRUE 27330ELSE:kr= NOTTRUE 27350ENDIF:=kr 27390DEFFNction_AlignToPageSize(kk):kl=(kk DIVkg)+1:km=kl* kg:=km 27450DEFPROCks:kn=FNction_ReadSlotSize:IFkn>kh THEN 27480Yj=FNction_SetSlotSize(kh):ki=0 27500ENDIF:ENDPROC 27640DEFPROCVg(hn):hj=13:hk=14:hl=15:IFhn=0 THENDIMkt 8*1024 27670P%=kt:[OPT hn:.ku DCD ax:.kv STMFD (hj)!,{r12,hk}:LDR r12,ku:LDR r12,[r12]:CMP r12,#1 : BEQ kw:CMP r12,#2 : BEQ kx:CMP r12,#3 : BEQ kx:CMP r12,#4 : BEQ ky:CMP r12,#5 : BEQ kz:.kw BL lU : LDMFD (hj)!,{r12,PC}:.kx BL lV : LDMFD (hj)!,{r12,PC} 27880.ky BL lW : LDMFD (hj)!,{r12,PC}:.kz BL lX : LDMFD (hj)!,{r12,PC}:.lU STMFD (hj)!,{r1-r4,hk}:.lY ADD r3,r3,#7:MOV r3,r3,LSR #3:MOV r3,r3,LSL #2:.lZ MUL r4,r3,r1:ADD r2,r2,r4:.la ADD r2,r2,r0,ASR #1:LDRB r4,[r2]:.lb ANDS r0, r0, #1 28010 ANDEQ r0, r4, #%00001111: ANDNE r0, r4, #%11110000:MOVNE r0,r0,LSR #4:LDMFD (hj)!,{r1-r4,PC}:.lV STMFD (hj)!,{r1-r4,hk}:LDMFD (hj)!,{r1-r4,PC}:.lX STMFD (hj)!,{r1-r4,hk}:LDMFD (hj)!,{r1-r4,PC}:.lW STMFD (hj)!,{r1-r4,hk}:LDMFD (hj)!,{r1-r4,PC} 28240.lc STMFD (hj)!,{r12,hk}:LDR r12,ku:LDR r12,[r12]:CMP r12,#1 : BEQ ld:CMP r12,#2 : BEQ le:CMP r12,#3 : BEQ le:CMP r12,#4 : BEQ lf:CMP r12,#5 : BEQ lg:.ld BL lh : LDMFD (hj)!,{r12,PC}:.le BL li : LDMFD (hj)!,{r12,PC}:.lf BL lj : LDMFD (hj)!,{r12,PC} 28350.lg BL lk : LDMFD (hj)!,{r12,PC}:.lh STMFD (hj)!,{r0-r5,hk}:.ll ADD r3,r3,#7:MOV r3,r3,LSR #3:MOV r3,r3,LSL #2:.lm MUL r5,r3,r1:ADD r2,r2,r5:.ln ADD r2,r2,r0,ASR #1:LDRB r5,[r2]:.lo ANDS r0, r0, #1: ANDNE r5, r5, #%00001111:ADDNE r5,r5,r4,LSL #4 28490 ANDEQ r5, r5, #%11110000:ADDEQ r5,r5,r4:STRB r5,[r2]:LDMFD (hj)!,{r0-r5,PC}:.li STMFD (hj)!,{r0-r4,hk}:LDMFD (hj)!,{r0-r4,PC}:.lk STMFD (hj)!,{r0-r4,hk}:LDMFD (hj)!,{r0-r4,PC}:.lj STMFD (hj)!,{r0-r6,hk}:LDMFD (hj)!,{r0-r6,PC}:.lp DCD &0000FFFF 28750.lq STMFD (hj)!,{hk}:LDR r12,ku:LDR r12,[r12]:CMP r12,#1 : BEQ lr:CMP r12,#2 : BEQ ls:CMP r12,#3 : BEQ lt:CMP r12,#4 : BEQ lu:CMP r12,#5 : BEQ lv:.lr BL lw : LDMFD (hj)!,{PC}:.ls BL lx : LDMFD (hj)!,{PC}:.lt BL ly : LDMFD (hj)!,{PC} 28860.lv BL lz : LDMFD (hj)!,{PC}:.lu BL mU : LDMFD (hj)!,{PC}:.lw STMFD (hj)!,{hk}:BL mV:LDMFD (hj)!,{PC}:.ly STMFD (hj)!,{hk}:LDMFD (hj)!,{PC}:.lx STMFD (hj)!,{r1-r12,hk}:LDMFD (hj)!,{r1-r12,PC}:.mW FNction_Table_For_8bpp:.lz STMFD (hj)!,{r1-r12,hk} 29070LDMFD (hj)!,{r1-r12,PC}:.mU STMFD (hj)!,{r1-r12,hk}:LDMFD (hj)!,{r1-r12,PC}:.mV STMFD (hj)!,{r1-r3,hk}:LDR r2,mX:LDR r3,mY:SUB r3,r3,r2:MUL r3,r0,r3:MUL r2,r1,r2:ADD r0,r2,r3:MOV r0,r0,ASR #8:LDMFD (hj)!,{r1-r3,PC}:.mX DCD 0:.mY DCD (100/100)*256:]:ENDPROC 29380DEFFNction_Table_For_8bpp:=hn 29640DEFPROCcX(Zz$):SYS&400CF,,Uj:ci=Uj!12:bm=Uj!16:dw$="UNKNOWN":CASEci OF 29700WHENUb:IFbm=Vh THEN 29710IF NOTVj THEN 29720dw$="SOURCE" 29730ELSE:IF NOTVn THENdw$="DESTINATION" 29750ENDIF 29760ENDIF 29770WHENWj:IFbm=0 THENdw$="SOURCE" 29780IFbm=2 THENdw$="DESTINATION" 29790WHENXw:dw$="SOURCE" 29800WHENXz:dw$="DESTINATION" 29810WHENYn:dw$="BACKGROUND" 29820ENDCASE:IFdw$="UNKNOWN" THEN 29840Yi$=FNction_TagToString("err02"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$, NOTTRUE,TRUE) 29860ELSE:CASEdw$ OF 29880WHEN"SOURCE":PROCgm(Zz$) 29890WHEN"DESTINATION":PROCgn(Zz$) 29900WHEN"BACKGROUND":PROCgo(Zz$) 29910ENDCASE 29920ENDIF:ENDPROC 29960DEFPROCZh:IFVj THENPROCmZ(Vk,Ut,Vm) 29980IFVn THENPROCmZ(Vo,Uu,Vu) 29990IFVr THENPROCmZ(Vs,Uv,Vq) 30000ENDPROC 30030DEFPROCmZ(ma,mb,mc):IF NOTmc THEN 30130md$=FNction_NameOfNthSprite(ma,1):me=FNction_ModeOfSprite(ma,md$, NOTTRUE):mf=FNction_SpriteHasPalette(ma,md$):mg=FNction_PointerToSpriteData(ma,md$):SYS&35,me,3 TO,,mh:mi=mg-mf:mj=(mi/8)-1:IFmf<>-1 THEN 30210mk=Uw:FOReW=0 TOmj:!(mk+(eW*4) ) = !( mf + (eW*8) ):NEXTeW 30250ELSE:IFmh=63 THEN 30270mk=0 30280ELSE:mk=Uw:SYS&400E5,,mk:FORi=0 TO15:mk!(i*4) = (mk!(i*4) AND&FFFFFF00):NEXTi 30340ENDIF 30350ENDIF:IFmj<>255 THEN 30370SYS&40740,me,mk,-1,-1,mb 30380ELSE:FOReW=0 TOmj:A%=!(mf+eW*8 ):SYS&40744,A% TOml:mb?eW=ml:NEXTeW 30440ENDIF 30450ELSE:md$=FNction_NameOfNthSprite(ma,1):me=FNction_ModeOfSprite(ma,md$, NOTTRUE):SYS&40740,me,Uw,-1,-1,mb 30570ENDIF:ENDPROC 30610DEFPROCZi:SYS&35,-1,4 TO,,cz:SYS&35,-1,5 TO,,dV:IFVj THEN 30670SYS&35,mm,4 TO,,mn:SYS&35,mm,5 TO,,mo:dU=cz:dU=mn:dW=mo/dV 30720ENDIF:IFVn THEN 30750SYS&35,mp,4 TO,,mn:SYS&35,mp,5 TO,,mo:dX=cz:dX=mn:dY=mo/dV 30800ENDIF:IFVr THEN 30830SYS&35,mq,4 TO,,mn:SYS&35,mq,5 TO,,mo:dZ=cz:dZ=mn:da=mo/dV 30880ENDIF:ENDPROC 30930DEFPROCZr:IFVj THEN 30950eo=Zl+12:ep=Zn-190:aa=142:ab=90:mr=Uj:mr!0=aa/cz:mr!4=ab/dV:mr!8=!fV:mr!12=!fX:SYS&2E,256+52,Vk,ms$,eo,ep,8,mr,Ut 31010ENDIF:IFVn THEN 31030eo=Zl+12+352:ep=Zn-190:aa=142:ab=90:mr=Uj:mr!0=aa/cz:mr!4=ab/dV:mr!8=!mt:mr!12=!mu:SYS&2E,256+52,Vo,mv$,eo,ep,8,mr,Uu 31090ENDIF:ENDPROC 31130DEFPROCZs:eo=Zl-Zp+((Vv%<<(dU))* (bW/bX) ):ep=Zn-Zq+((Vw%<<(dW*dV)) * (bW/bX) ):mr=Uj:mr!0=(!fV* bW) * dU :mr!4=(!fX* bW) * dW:mr!8=(!fV* bX) :mr!12=(!fX* bX):SYS&2E,256+52,Vk,ms$,eo,ep,8,mr,Ut:IF NOTWX THEN 31210PROCmw(Vk,bW,bX,!fV,!fX,mm) 31220ELSE:PROCmx(Vk,bW,bX,!fV,!fX,mm) 31240ENDIF:ENDPROC 31280DEFPROCZt:eo=Zl-Zp+((Vx%<<(dX))* (bd/be) ):ep=Zn-Zq+((Vy%<<(dY*dV)) * (bd/be) ):mr=Uj:mr!0=(!mt* bd) * dX :mr!4=(!mu* bd) * dY:mr!8=(!mt* be) :mr!12=(!mu* be):SYS&2E,256+52,Vo,mv$,eo,ep,8,mr,Uu:IF NOTWX THEN 31360PROCmw(Vo,bd,be,!mt,!mu,mp) 31370ELSE:PROCmx(Vo,bd,be,!mt,!mu,mp) 31390ENDIF:ENDPROC 31430DEFPROCWh(ZZ$,ZX,my):CASEZZ$ OF 31450WHEN"SOURCE":bW=ZX:bX=my:PROCmz(TRUE, NOTTRUE):PROCYr(Uj,Xw) 31490WHEN"DEST":bd=ZX:be=my:PROCmz( NOTTRUE,TRUE):PROCYr(Uj,Xz) 31530ENDCASE:ENDPROC 31570DEFPROCmz(nU,nV):IFVj ANDnU THEN 31590nW=bW/bX:SYS&35,mm,4 TO,,nX:SYS&35,mm,5 TO,,nY:PROCnZ(Uj,Xw,0,(!fV*nW)<<nX,0,(!fX*nW)<<nY):IFFNction_WindowIsOpen(Uj,Xw) THEN 31640!Uj=Xw:SYS&400CB,,Uj:SYS&400C6,,Uj:SYS&400C5,,Uj 31680ENDIF 31690ENDIF:IFVn ANDnV THEN 31710IFVj THEN 31720md$=ms$:aa=!fV:ab=!fX:na=mm 31740ELSE:md$=mv$:aa=!mt:ab=!mu:na=mp 31770ENDIF:nb=bd/be:SYS&35,na,4 TO,,nX:SYS&35,na,5 TO,,nY:PROCnZ(Uj,Xz,0,(aa*nb)<<nX,0,(ab*nb)<<nY):IFFNction_WindowIsOpen(Uj,Xz) THEN 31830!Uj=Xz:SYS&400CB,,Uj:SYS&400C6,,Uj:SYS&400C5,,Uj 31870ENDIF 31880ENDIF:ENDPROC 31920DEFPROCYY(nc,nd):ne=VALFNction_ReadIconText(Uj,YX,2):nf=VALFNction_ReadIconText(Uj,YX,4):ne+=nc:IFne<1 THENne=1 31970IFne>999 THENne=999 31980nf+=nd:IFnf<1 THENnf=1 32000IFnf>999 THENnf=999 32010PROCWi(Uj,YX,2,STR$ne):PROCWi(Uj,YX,4,STR$nf):CASEVZ OF 32040WHEN5:bW=ne:bX=nf 32060WHEN6:bd=ne:be=nf 32080ENDCASE:CASEVZ OF 32100WHEN5:PROCmz(TRUE, NOTTRUE) 32110WHEN6:PROCmz( NOTTRUE,TRUE) 32120ENDCASE:IFFNction_WindowWithCaret(Uj)=YX THEN 32140PROCZb 32150ENDIF:ENDPROC 32190DEFPROCWl:FORi=0 TO255:dv!(i*4) = 0:dy!(i*4) = 0:NEXTi:ENDPROC 32270DEFPROCmw(ng,nh,ni,aa,ab,na):eo=Zl-Zp:ep=Zn-Zq:SYS&35,-1,4 TO,,nj:SYS&35,-1,5 TO,,en:SYS&35,na,4 TO,,mn:SYS&35,na,5 TO,,mo:en=en-(en-mo):nj=cz* mn:CASEng OF 32370WHENVk:en=dW* dV 32380WHENVo:en=dY* dV 32390ENDCASE:SYS&400E6,14:!iW=nj:!iX=en:!iZ=ab:!ia=aa:!ib=eo:!ic=ep:!ip=Zm:!io=Zn:!iY=(nh/ni)* 256:!ie=?(jp+(nk*2)+0):!if=?(jp+(nk*2)+1):CALLhy:ENDPROC 32520DEFPROCmx(ng,nh,ni,aa,ab,na):SYS&35,na,4 TO,,mn:SYS&35,na,5 TO,,mo:eo=Zl-Zp:ep=Zn-Zq:nj=cz*mn:CASEng OF 32590WHENVk:en=dW* dV:!jk=0 32610WHENVo:en=dY* dV:!jk=8 32630ENDCASE:!ja=(nh/ni)* 256:!jb=nj:!jc=en:!jd=0:!je=0:!jf=eo:!jg=ep:CALLjY:!ju=fa%:!jv=fY%:!jx=fa%* 24 :!js=nk:CALLjr:ENDPROC 32750DEFPROCnl:nm=0:FORi=1 TOnn:no=FNction_Insert_HorV(dv,nm):nm+=((!fX)/(nn)):IFnm>!fX THENnm=!fX 32810NEXTi:np=0:FORi=1 TOnq:no=FNction_Insert_HorV(dy,np):np+=((!fV)/(nq)):IFnp>!fV THENnp=!fV 32870NEXTi:PROCbs( NOTTRUE):ENDPROC 32920DEFPROCZu:IFVr THEN 32940eo=Zl:ep=Zo:aa=Zm-Zl:ab=Zn-Zo:mr=Uj:mr!0=(nr/2)/(cz):mr!4=(ns/2)/(dV):mr!8=!gc:mr!12=!gb:SYS&2E,256+52,Vs,nt$,eo,ep,8,mr,Uv:PROCnu 33020ELSE:SYS&400E6,1+128:CLG 33040ENDIF:ENDPROC 33080DEFPROCgm(Zz$):IFVj THEN 33100nv=FNction_WindowIsOpen(Uj,Xw):PROCbx("Source"):IFnv THENPROCWw(Uh,Uj,Xw, NOTTRUE) 33130ENDIF:Vk=kj:nw=FNction_AlignToPageSize(FNction_SizeOfFile(Zz$)+128):kr=FNction_AllocateMemory(nw):IF NOTkr THEN 33180Yi$=FNction_TagToString("err03"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$, NOTTRUE,TRUE) 33200ELSE:Vl=nw:Vj=TRUE:Xv$=Zz$:Xu=TRUE:PROCXh(Vk,Vl):PROCXi(Vk,Zz$):ms$=FNction_NameOfNthSprite(Vk,1):Vm=FNction_SpriteIsOfNewFormat(Vk,ms$):!fV=FNction_WidthOfSprite(Vk,ms$,Vm):!fX=FNction_HeightOfSprite(Vk,ms$,Vm):mm=FNction_ModeOfSprite(Vk,ms$,Vm) 33320as$=FNction_TagToString("srce"):PROCWi(Uj,Wj,1,as$+STR$!fV+"x"+STR$!fX):PROCWk(Uj,Wj,1,7):PROCZh:PROCZi:PROCYr(Uj,Wj):PROCYr(Uj,Yn):PROCmz(TRUE,TRUE):IF NOTVn THENVo=Vk:dY=dW 33410Yj=1:IFFNction_SpriteHasMask(Vk,ms$) THEN 33430Yi$=FNction_TagToString("err18"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$,TRUE,TRUE) 33450ENDIF:IFYj=1 THEN 33470PROCnx(Vk,ms$):IFny AND NOTWX THENPROCnl 33490IF NOTFNction_WindowIsOpen(Uj,Wj) THENPROCXs(Uj,Wj) 33500ELSE:PROCbx("Source") 33520ENDIF 33530ENDIF:ENDPROC 33570DEFPROCgn(Zz$):IFVn THEN 33590nv=FNction_WindowIsOpen(Uj,Xz):PROCbx("Dest"):IFnv THENPROCWw(Uh,Uj,Xz, NOTTRUE) 33620ENDIF:Vo=kj:nw=FNction_AlignToPageSize(FNction_SizeOfFile(Zz$)+128):kr=FNction_AllocateMemory(nw):IF NOTkr THEN 33670Yi$=FNction_TagToString("err03"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$, NOTTRUE,TRUE) 33690ELSE:Vp=nw:Vn=TRUE:Xy$=Zz$:Xx=TRUE:PROCXh(Vo,Vp):PROCXi(Vo,Zz$):mv$=FNction_NameOfNthSprite(Vo,1):Vu=FNction_SpriteIsOfNewFormat(Vo,mv$):!mt=FNction_WidthOfSprite(Vo,mv$,Vu):!mu=FNction_HeightOfSprite(Vo,mv$,Vu):mp=FNction_ModeOfSprite(Vo,mv$,Vu) 33810as$=FNction_TagToString("dest"):PROCWi(Uj,Wj,3,as$+STR$!mt+"x"+STR$!mu):PROCWk(Uj,Wj,3,7):PROCZh:PROCZi:PROCYr(Uj,Wj):PROCmz( NOTTRUE,TRUE):IF NOTVj THENVk=Vo:dW=dY 33890Yj=1:IFFNction_SpriteHasMask(Vo,mv$) THEN 33910Yi$=FNction_TagToString("err18"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$,TRUE,TRUE) 33930ENDIF:IFYj=1 THEN 33950PROCnx(Vo,mv$):IF NOTFNction_WindowIsOpen(Uj,Wj) THENPROCXs(Uj,Wj) 33970ELSE:PROCbx("Dest") 33990ENDIF 34000ENDIF:ENDPROC 34040DEFPROCgo(Zz$):IFVr THEN 34060nv=FNction_WindowIsOpen(Uj,Yn):PROCbx("Back"):IFnv THENPROCWw(Uh,Uj,Yn, NOTTRUE) 34090ENDIF:Vs=kj:nw=FNction_AlignToPageSize(FNction_SizeOfFile(Zz$)+128):kr=FNction_AllocateMemory(nw):IF NOTkr THEN 34140Yi$=FNction_TagToString("err03"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$, NOTTRUE,TRUE) 34160ELSE:Vt=nw:Vr=TRUE:Yp$=Zz$:Yo=TRUE:PROCXh(Vs,Vt):PROCXi(Vs,Zz$):nt$=FNction_NameOfNthSprite(Vs,1):Vq=FNction_SpriteIsOfNewFormat(Vs,nt$):!gc=FNction_WidthOfSprite(Vs,nt$,Vq):!gb=FNction_HeightOfSprite(Vs,nt$,Vq):mq=FNction_ModeOfSprite(Vs,nt$,Vq):IF!gc<!fV OR!gb<!fX THEN 34290Yi$=FNction_TagToString("err19"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$, NOTTRUE,TRUE):PROCbx("Back") 34320ELSE:PROCZh:PROCZi:nr=((260/!gb)* !gc ) ::ns=(260):PROCnZ(Uj,Yn,0,nr,-ns,0):IFFNction_WindowIsOpen(Uj,Yn) THEN 34390PROCnz(Uj,Yn,nr,ns):PROCYr(Uj,Yn) 34410ENDIF:Yj=1:IFFNction_SpriteHasMask(Vs,nt$) THEN 34440Yi$=FNction_TagToString("err18"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$,TRUE,TRUE) 34460ENDIF:IFYj=1 THEN 34480PROCnx(Vs,nt$) 34490ELSE:PROCbx("Back") 34510ENDIF 34520ENDIF 34530ENDIF:ENDPROC 34570DEFPROCnu:IFVj THEN 34590oU=eo+((Vz%/!gc)* aa ):oV=ep+((WU%/!gb)* ab ):oW=(!fV/!gc)* aa:oX=(!fX/!gb)* ab:SYS&400E6,0:RECTANGLEFILLoU,oV,oW,oX:SYS&400E6,7:RECTANGLEoU,oV,oW,oX 34670ENDIF:ENDPROC 34710DEFPROCYy(Xk,Xl):PROCdh(Uj,Yn,Xk,Xl):oY%=(dj/nr)* !gc:oZ%=((dl+ns)/ns)* !gb:IFoY%<>Vz% ORoZ%<>WU% THEN 34760Vz%=oY%:!db=Vz%:WU%=oZ%:!dc=WU%:PROCYr(Uj,Yn) 34790ENDIF:ENDPROC 34830DEFPROCbx(oa$):CASEoa$ OF 34850WHEN"Source":ob=Vo:oc=Vp:od=Vn:oe=Vs:of=Vt:og=Vr:br=Vl:ng=Vk:PROCWk(Uj,Wj,1,3) 34890WHEN"Dest":ob=Vk:oc=Vl:od=Vj:oe=Vs:of=Vt:og=Vr:br=Vp:ng=Vo:PROCWk(Uj,Wj,3,3) 34930WHEN"Back":ob=Vk:oc=Vl:od=Vj:oe=Vo:of=Vp:og=Vn:br=Vt:ng=Vs 34960ENDCASE:oh=ob>oe:IFoh THEN 34990SWAPob,oe:SWAPoc,of:SWAPod,og 35020ENDIF:IFod ANDob>ng THEN 35040A%=ob:B%=ob-br:C%=oc:CALLho:ob-=br 35070ENDIF:IFog ANDoe>ng THEN 35090A%=oe:B%=oe-br:C%=of:CALLho:oe-=br 35120ENDIF:IFoh THEN 35140SWAPob,oe:SWAPoc,of:SWAPod,og 35170ENDIF:kr=FNction_AllocateMemory(-br):CASEoa$ OF 35200WHEN"Source":Vo=ob:Vs=oe:Vj= NOTTRUE:PROCYr(Uj,Wj):IFFNction_WindowIsOpen(Uj,Xw) THEN 35240PROCXU(Uj,Xw) 35250ENDIF:as$=FNction_TagToString("srce"):oi$=FNction_TagToString("none"):PROCWi(Uj,Wj,1,as$+oi$):PROCYr(Uj,Yn) 35300WHEN"Dest":Vk=ob:Vs=oe:Vn= NOTTRUE:PROCYr(Uj,Wj):IFFNction_WindowIsOpen(Uj,Xz) THEN 35340PROCXU(Uj,Xz) 35350ENDIF:as$=FNction_TagToString("dest"):oi$=FNction_TagToString("none"):PROCWi(Uj,Wj,3,as$+oi$) 35390WHEN"Back":Vk=ob:Vo=oe:Vr= NOTTRUE:Vz%=0:!db=0:WU%=0:!dc=0:IFFNction_WindowIsOpen(Uj,Yn) THEN 35440PROCYr(Uj,Yn) 35450ENDIF 35460ENDCASE:ENDPROC 35820DEFPROCWm:LOCALERROR:ONERRORLOCALPROCoj:ENDPROC 35850gd=OPENIN"<Morph$Dir>.Prefs":INPUT#gd,ny:INPUT#gd,nq,nn:INPUT#gd,nk:INPUT#gd,Wr:INPUT#gd,ok,ol,om:CLOSE#gd:PROCYg:PROCYd:RESTOREERROR:ENDPROC 35980DEFPROCoj:CLOSE#gd:PROCon:PROCYg:PROCYd:Yi$=FNction_TagToString("err09"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$, NOTTRUE,TRUE):PROCYf:ENDPROC 36090DEFPROCYf:LOCALERROR:ONERRORLOCALPROCoo:ENDPROC 36120gd=OPENOUT"<Morph$Dir>.Prefs":PROCYh:PRINT#gd,ny:PRINT#gd,nq,nn:PRINT#gd,nk:PRINT#gd,Wr:PRINT#gd,ok,ol,om:CLOSE#gd:OSCLI"Stamp <Morph$Dir>.Prefs ":OSCLI"SetType <Morph$Dir>.Prefs Data":RESTOREERROR:ENDPROC 36260DEFPROCoo:CLOSE#gd:Yi$=FNction_TagToString("err10"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$, NOTTRUE,TRUE):ENDPROC 36330DEFPROCon:ny= NOTTRUE:nq=10:nn=10:nk=14:Wr= NOTTRUE:ok=TRUE:ol=1:om=1:ENDPROC 36450DEFPROCYg:PROCgx(Uj,Wz,4,ny):PROCWi(Uj,Wz,11,STR$nq):PROCWi(Uj,Wz,8,STR$nn):PROCcU(Uj,Wz,19,nk):PROCgx(Uj,Wz,12,Wr):PROCWi(Uj,Wz,13,STR$ol):PROCWi(Uj,Wz,14,STR$om):IFok THEN 36540PROCYe("All") 36550ELSE:PROCYe("From") 36570ENDIF:ENDPROC 36610DEFPROCYh:ny= NOTFNction_IconIsToggled(Uj,Wz,4):nq=VALFNction_ReadIconText(Uj,Wz,11):nn=VALFNction_ReadIconText(Uj,Wz,8):nk=FNction_ColourOfIcon(Uj,Wz,19):Wr= NOTFNction_IconIsToggled(Uj,Wz,12):ok= NOTFNction_IconIsToggled(Uj,Wz,3):ol=VALFNction_ReadIconText(Uj,Wz,13) 36690om=VALFNction_ReadIconText(Uj,Wz,14):PROCYg:IFFNction_WindowIsOpen(Uj,Xw) THENPROCYr(Uj,Xw) 36720IFFNction_WindowIsOpen(Uj,Xz) THENPROCYr(Uj,Xz) 36730ENDPROC 36760DEFPROCYd:ek=FNction_IconIsToggled(Uj,Wz,4):PROCgy(Uj,Wz,11,ek):PROCgy(Uj,Wz,18,ek):PROCgy(Uj,Wz,8,ek):PROCgy(Uj,Wz,9,ek):ENDPROC 37320DEFFNction_WidthOfSprite(op,oq$,mc):IF NOTmc THEN 37340SYS&2E,256+40,op,oq$ TO,,,cd,ce,cf,or:os=cd 37360ELSE:ot=FNction_PointerToSpriteControlBlock(op,oq$):os=ot!(4*4) + 1:ou=ot!(10*4) ::ov=((ou>>27) AND%11111):IFov=5 THENos+=os 37420ENDIF:=os 37460DEFFNction_HeightOfSprite(op,oq$,mc):IF NOTmc THEN 37480SYS&2E,256+40,op,oq$ TO,,,cd,ce,cf,or:ow=ce 37500ELSE:ot=FNction_PointerToSpriteControlBlock(op,oq$):ow=ot!(5*4) + 1 37530ENDIF:=ow 37570DEFFNction_ModeOfSprite(op,oq$,mc):IF NOTmc THEN 37590SYS&2002E,256+40,op,oq$ TO,,,cd,ce,cf,or:ou=or 37610ELSE:ot=FNction_PointerToSpriteControlBlock(op,oq$):ou=ot!(10*4) : 37640ENDIF:=ou 37680DEFFNction_SpriteHasMask(op,oq$):ot=FNction_PointerToSpriteControlBlock(op,oq$):ox=ot!(8*4):oy=ot!(9*4):=oy<>ox 37750DEFFNction_SpriteHasPalette(op,oq$):oz=FNction_PointerToSpriteControlBlock(op,oq$):pU=oz!32:IFpU=11*4 THEN 37790pV=-1 37800ELSE:pV=oz+11*4 37820ENDIF:=pV 37860DEFFNction_NumberOfSpritesInArea(op):=op!4 37900DEFFNction_NameOfNthSprite(op,n):pW=op+op!8:pX=1:WHILEpX<n:pY=pW!0:pW+=pY:pX+=1:ENDWHILE:=LEFT$(FNction_ExtractString(pW+4),12)+CHR$0 38030DEFFNction_PointerToSpriteData(op,oq$):SYS&2E,256+24,op,oq$ TO,,cc:pZ=cc:pU=pZ!32:pa=pZ+pU:=pa 38110DEFFNction_PointerToMaskData(op,oq$):SYS&2E,256+24,op,oq$ TO,,cc:pZ=cc:pb=pZ!36:pc=pZ+pb:=pc 38190DEFFNction_PointerToSpriteControlBlock(op,oq$):SYS&2E,256+24,op,oq$ TO,,cc:pd=cc:=pd 38250DEFPROCpe(op,Zz$):SYS&2E,256+12,op,Zz$:ENDPROC 38300DEFPROCXi(op,Zz$):SYS&2E,256+10,op,Zz$:ENDPROC 38350DEFPROCXh(op,pf):op!0=pf:op!8=16:SYS&2E,256+9,op:ENDPROC 38420DEFFNction_ReadSpritePixel(op,oq$,x,y):LOCALpg,ph:SYS&2E,256+41,op,oq$,x,y TO,,,,,cf,or:pg=cf:ph=or:=pg 38500DEFPROCpi(op,oq$,x,y,pg,ph):SYS&2E,256+42,op,oq$,x,y,pg,ph:ENDPROC 38550DEFPROCpj(op,oq$,pk$):SYS&2E,256+26,op,oq$,pk$:ENDPROC 38600DEFFNction_SpritesType:pl=1:SYS&6,161,133 TO,,pm:pm=(pm>>2) AND3:IF(pm=2) THEN 38670pl=3 38680ELSE:SYS&35,-1,4 TO,,nX:SYS&35,-1,5 TO,,nY:IFnX=nY THEN 38720pl=2 38730ENDIF 38740ENDIF:=pl 38780DEFFNction_SpriteIsOfNewFormat(op,oq$):ot=FNction_PointerToSpriteControlBlock(op,oq$):na=ot!(10*4):=na>40 38840DEFPROCnx(op,oq$):SYS&2E,256+30,op,oq$:ENDPROC 38890DEFPROCpn(op,oq$,aa,ab,na,po):SYS&2E,256+15,op,oq$,ABSpo,aa,ab,na:ENDPROC 39050DEFPROCaY(Zz$):!pp=!bt:!pq=(!fX-!bu)-!fX:!pr=!by:!ps=(!mu-!bz)-!mu:!pt=!db:!pu=(!gb-!dc)-!fX:IFVr THEN 39150pv=Vs:pw=Vt:!px=!gc:!py=!gb 39190ELSE:pv=Vk:pw=Vl:!px=!fV:!py=!fX:!pt=0:!pu=0 39260ENDIF:Wc$=Zz$:pz=kj:kr=FNction_AllocateMemory(pw):IF NOTkr THEN 39340Yi$=FNction_TagToString("err08"):Yj=FNction_ReportError(Uj,99,Uc$,Yi$, NOTTRUE,TRUE) 39370ELSE:PROCqU:qV$=FNction_NameOfNthSprite(Vk,1):qW$=FNction_NameOfNthSprite(pz,1):qX$=FNction_NameOfNthSprite(Vo,1):!qY=FNction_PointerToSpriteData(Vk,qV$):!qZ=FNction_PointerToSpriteData(pz,qW$):!qa=FNction_PointerToSpriteData(Vo,qX$) 39490!qb=VALFNction_ReadIconText(Uj,Wj,6):IFok THEN 39510ol=2:om=!qb-1 39530ENDIF:IFol<1 THENol=1 39550IFol>!qb THENol=!qb 39560IFom<1 THENom=1 39570IFom>!qb THENom=!qb 39580PROCYg:qc=(om-ol)+1:OSCLI"CDir "+Zz$:PROCqd:IFqc>0 THEN 39650IF NOTWr THEN 39660PROCqe 39670ELSE:PROCqf 39690ENDIF 39700ENDIF 39720ENDIF:ENDPROC 39770DEFPROCqe:IFqc>0 THEN 39790SYS&406C0:PROCqf:REPEAT:qg%=((!qh-ol+1)/(om-ol+1))* 100:IFqg%>99 THENqg%=99 39840SYS&406C4,qg%:PROCWt:UNTIL NOTWY:SYS&406C1 39880ENDIF:ENDPROC 39920DEFPROCqf:PROCWi(Uj,Xt,3,""):WZ=FNction_SetIconWidth(Uj,Xt,WZ,1):PROCXU(Uj,Yq):PROCXU(Uj,Yt):PROCXU(Uj,Wj):PROCXU(Uj,Yl):PROCXU(Uj,Xw):PROCXU(Uj,Xz):PROCXU(Uj,Yn):PROCXs(Uj,Xt):!qh=ol:IF!qh=1 THEN!qh=2 40000qi=-1:qj=0:WY=TRUE:PROCqk:PROCql:ENDPROC 40080DEFPROCWt:IF NOTqm THEN 40100PROCqn(Wr) 40110ELSE:PROCqk:PROCqo 40140ENDIF:ENDPROC 40180DEFPROCqk:qi+=1:IFqi>fa%-2 THEN 40220qi=0:qj+=1:IFqj>fY%-2 THEN 40250PROCpe(pz,Wc$+".image"+RIGHT$("000"+STR$!qh,3)):qj=0:!qh+=1:PROCql:IF!qh>om THENWY= NOTTRUE 40300ENDIF 40310ENDIF:IFWY THEN 40340PROCqp(qi,qj):PROCqn(Wr) 40360ELSE:PROCXU(Uj,Xt):PROCqq:PROCXg 40400ENDIF:ENDPROC 40450DEFPROCql:qr$=FNction_TagToString("frme"):ZX$=" "+STR$(!qh-ol+1)+" ":qs$=FNction_TagToString("of"):ZY$=" "+STR$(om+1-ol):PROCWi(Uj,Xt,3,qr$+ZX$+qs$+ZY$):ENDPROC 40540DEFPROCqo:qt=(fa%-1)* (fY%-1):qu=1+qi+qj*(fa%-1):qv=qu/qt:WZ=FNction_SetIconWidth(Uj,Xt,WZ,464*qv):ENDPROC 40620DEFPROCqp(qw,qx):PROCqy(qw,qx,TRUE):!qz=rU%:!rV=rW%:!rX=rY%:!rZ=ra%:!rb=rc%:!rd=re%:!rf=rg%:!rh=ri%:PROCqy(qw,qx,NOTTRUE):!rj=rU%:!rk=rW%:!rl=rY%:!rm=ra%:!rn=rc%:!ro=re%:!rp=rg%:!rq=ri%:rr=!qh-1:az=!qb:ha=FNction_GetPercentage((!qh-1)/(!qb-1)*100,Uz) 40820!rs=!qz+((!rj-!qz)* ha ):!rt=!rX+((!rl-!rX)* ha ):!ru=!rb+((!rn-!rb)* ha ):!rv=!rf+((!rp-!rf)* ha ):!rw=!rV+((!rk-!rV)* ha ):!rx=!rZ+((!rm-!rZ)* ha ):!ry=!rd+((!ro-!rd)* ha ):!rz=!rh+((!rq-!rh)* ha ):!sU=FNction_Lowest_Quad_Y 40930!mX=FNction_GetPercentage(((!qh-1)/(!qb-1))*100,Ux)*256:ENDPROC 40980DEFPROCqy(x,y,qV):sV=fa%* 24:sW=fn+((y*sV) + ( x *24) ):sX=fn+((y*sV) + ((x+1)*24) ):sY=fn+(((y+1)*sV) + ( x *24) ):sZ=fn+(((y+1)*sV) + ((x+1)*24) ):fo=ABS((NOTqV)*8):rU%=sW!(fo+0):rW%=sW!(fo+4):rY%=sX!(fo+0):ra%=sX!(fo+4):rg%=sY!(fo+0):ri%=sY!(fo+4) 41080rc%=sZ!(fo+0):re%=sZ!(fo+4):ENDPROC 41120DEFFNction_Lowest_Quad_Y:sa=!rw:IF!rx<sa THENsa=!rx 41150IF!ry<sa THENsa=!ry 41160IF!rz<sa THENsa=!rz 41170=sa 41200DEFFNction_Highest_Quad_Y:sb=!rw:IF!rx>sb THENsb=!rx 41230IF!ry>sb THENsb=!ry 41240IF!rz>sb THENsb=!rz 41250=sb 41280DEFPROCqn(sc):!sd=FNction_Highest_Quad_Y:!se=FNction_Lowest_Quad_Y:IF NOTsc THEN 41320!sf=!sd-!se:CALLsg:qm=TRUE 41350ELSE:!sf=4:CALLsg:qm=!sU>!sd 41390ENDIF:ENDPROC 41430DEFPROCYk:WY= NOTTRUE:PROCXU(Uj,Xt):PROCqq:PROCXg:ENDPROC 41510DEFPROCqq:sh=FNction_AllocateMemory(-pw):ENDPROC 41560DEFPROCqd:PROCsi:PROCsj:ENDPROC 41620DEFPROCsi:IFok ORol=1 THEN 41640IF NOTVr THEN 41650A%=Vk:B%=pz:C%=Vl:CALLka:CALLsk:PROCpe(pz,Zz$+".image001"):PROCqU 41700ELSE:CALLsl:PROCpe(pz,Zz$+".image001") 41730ENDIF:qc-=1 41750ENDIF:IFol=1 THENol+=1 41770ENDPROC 41800DEFPROCsj:IFok ORom=!qb THEN 41820IF NOTVr THEN 41830A%=Vk:B%=pz:C%=Vl:CALLka:CALLsm:PROCpe(pz,Zz$+".image"+RIGHT$("000"+STR$!qb,3)):PROCqU 41880ELSE:CALLsn:PROCpe(pz,Zz$+".image"+RIGHT$("000"+STR$!qb,3)) 41910ENDIF:qc-=1 41930ENDIF:IFom=!qb THENom-=1 41950ENDPROC 41980DEFPROCqU:A%=pv:B%=pz:C%=pw:CALLka:ENDPROC 42060DEFPROCVf(hn):hj=13:hk=14:hl=15:IFhn=0 THENDIMso 48*1024 42090P%=so:[OPT hn:.sp STMFD (hj)!,{hk}:LDR r10,fV:LDR r9,fX:LDR r8,mt:LDR r7,mu:MOV r12,#0:.sq MOV r11,#0:.sr MOV r0,r11:SUB r1,r9,r12:LDR r2,qY:MOV r3,r10:BL kv:MOV r6,r0:MOV r0,r11:SUB r1,r7,r12:LDR r2,qa:MOV r3,r8:BL kv:MOV r5,r0:MOV r0,r11 42320SUB r1,r9,r12:LDR r2,qY:MOV r3,r10:MOV r4,r5:BL lc:MOV r0,r11:SUB r1,r7,r12:LDR r2,qa:MOV r3,r8:MOV r4,r6:BL lc:ADD r11,r11,#1:CMP r11,r10:BNE sr:ADD r12,r12,#1:CMP r12,r9:BNE sq:LDMFD (hj)!,{PC}:.sl STMFD (hj)!,{hk}:LDR r7,fV:LDR r8,fX:LDR r9,px 42560LDR r10,py:MOV r5,#0:.ss MOV r6,#0:.st MOV r0,r5:SUB r1,r8,r6 : SUB r1,r1,#1:LDR r2,bt : SUB r0,r0,r2:LDR r2,bu : ADD r1,r1,r2:LDR r2,qY:MOV r3,r7:CMP r0,#0 : MOVLT r4,#0 : BLT su:CMP r1,#0 : MOVLT r4,#0 : BLT su:CMP r0,r7 : MOVGE r4,#0 : BGE su 42680CMP r1,r8 : MOVGE r4,#0 : BGE su:BL kv : MOV r4,r0 : .su:.sv MOV r0,r5:SUB r1,r10,r6 : sub r1,r1,#1:LDR r2,qZ:MOV r3,r9:LDR r11,db : ADD r0,r0,r11:LDR r11,dc : SUB r1,r1,r11:CMP r0,#0 : BLT sw:CMP r1,#0 : BLT sw:CMP r0,r9 : BGE sw:CMP r1,r10 : BGE sw 42800BL lc : .sw:.sx ADD r6,r6,#1:CMP r6,r8:BNE st:.sy ADD r5,r5,#1:CMP r5,r7:BNE ss:LDMFD (hj)!,{PC}:.sn STMFD (hj)!,{hk}:LDR r7,fV:LDR r8,fX:LDR r9,px:LDR r10,py:LDR r12,mt:MOV r5,#0:.sz MOV r6,#0:.tU MOV r0,r5:LDR r1,mu:SUB r1,r1,r6 : SUB r1,r1,#1 43010LDR r2,by : SUB r0,r0,r2:LDR r2,bz : ADD r1,r1,r2:LDR r2,qa:MOV r3,r12:CMP r0,#0 : MOVLT r4,#0 : BLT tV:CMP r1,#0 : MOVLT r4,#0 : BLT tV:CMP r0,r7 : MOVGE r4,#0 : BGE tV:LDR r4,mu:CMP r1,r4 : MOVGE r4,#0 : BGE tV:BL kv : MOV r4,r0 : .tV:.tW MOV r0,r5 43120SUB r1,r10,r6 : sub r1,r1,#1:LDR r2,qZ:MOV r3,r9:LDR r11,db : ADD r0,r0,r11:LDR r11,dc : SUB r1,r1,r11:CMP r0,#0 : BLT tX:CMP r1,#0 : BLT tX:CMP r0,r9 : BGE tX:CMP r1,r10 : BGE tX:BL lc : .tX:.tY ADD r6,r6,#1:CMP r6,r8:BNE tU:.tZ ADD r5,r5,#1 43260CMP r5,r7:BNE sz:LDMFD (hj)!,{PC}:.sm STMFD (hj)!,{hk}:LDR r12,fV:LDR r11,fX:MOV r10,#0:.ta MOV r9,#0:.tb MOV r0,r9:LDR r1,mu : SUB r1,r1,r10 : SUB r1,r1,#1:LDR r2,pr : SUB r0,r0,r2:LDR r3,ps : SUB r1,r1,r3:LDR r2,qa:LDR r3,mt 43420CMP r0,#0 : MOVLT r0,#0 : BLT tc:CMP r0,r3 : MOVGE r0,#0 : BGE tc:CMP r1,#0 : MOVLT r0,#0 : BLT tc:LDR r4,mu:CMP r1,r4 : MOVGE r0,#0 : BGE tc:BL kv : .tc:MOV r4,r0:MOV r0,r9:LDR r1,fX : SUB r1,r1,r10 : SUB r1,r1,#1:LDR r2,qZ:LDR r3,fV:BL lc 43540ADD r9,r9,#1:CMP r9,r12 : BNE tb:ADD r10,r10,#1:CMP r10,r11 : BNE ta:LDMFD (hj)!,{PC}:.sk STMFD (hj)!,{hk}:LDR r12,fV:LDR r11,fX:MOV r10,#0:.td MOV r9,#0:.te MOV r0,r9:LDR r1,fX : SUB r1,r1,r10 : SUB r1,r1,#1:LDR r2,pp : SUB r0,r0,r2 43720LDR r3,pq : SUB r1,r1,r3:LDR r2,qY:LDR r3,fV:CMP r0,#0 : MOVLT r0,#0 : BLT tf:CMP r0,r3 : MOVGE r0,#0 : BGE tf:CMP r1,#0 : MOVLT r0,#0 : BLT tf:LDR r4,fX:CMP r1,r4 : MOVGE r0,#0 : BGE tf:BL kv : .tf:MOV r4,r0:MOV r0,r9 43840LDR r1,fX : SUB r1,r1,r10 : SUB r1,r1,#1:LDR r2,qZ:LDR r3,fV:BL lc:ADD r9,r9,#1:CMP r9,r12 : BNE te:ADD r10,r10,#1:CMP r10,r11 : BNE td:LDMFD (hj)!,{PC}:.qY DCD 0:.qZ DCD 0:.qa DCD 0:.tg DCD 0:.sU DCD 0:.th DCD 0 : .ti DCD 0:.tj DCD 0 : .tk DCD 0 44100.tl DCD 0 : .tm DCD 0:.tn DCD 0 : .to DCD 0:.tp DCD 0 : .tq DCD 0:.tr DCD 0 : .ts DCD 0:.tt DCD 0 : .tu DCD 0:.tv DCD 0 : .tw DCD 0:.tx DCD 0 : .ty DCD 0:.tz DCD 0 : .uU DCD 0:.uV:.qz DCD 0 : .rV DCD 0:.rX DCD 0 : .rZ DCD 0:.rb DCD 0 : .rd DCD 0 44280.rf DCD 0 : .rh DCD 0:.uW:.rj DCD 0 : .rk DCD 0:.rl DCD 0 : .rm DCD 0:.rn DCD 0 : .ro DCD 0:.rp DCD 0 : .rq DCD 0:.uX:.rs DCD 0 : .rw DCD 0:.rt DCD 0 : .rx DCD 0:.ru DCD 0 : .ry DCD 0:.rv DCD 0 : .rz DCD 0:.qb DCD 0:.qh DCD 0:.sd DCD 0:.se DCD 0 44530.ax DCD 1:.sf DCD 0:.db DCD 0:.dc DCD 0:.bt DCD 0:.bu DCD 0:.by DCD 0:.bz DCD 0:.fV DCD 0 : .fX DCD 0:.mt DCD 0 : .mu DCD 0:.gc DCD 0 : .gb DCD 0:.px DCD 0 : .py DCD 0:.pp DCD 0:.pq DCD 0:.pr DCD 0:.ps DCD 0:.pt DCD 0:.pu DCD 0:.uY STMFD (hj)!,{hk} 44890MVN r0,#0:STR r0,tg:BL uZ:BL ua:LDR r0,rb : LDR r1,rf:SUB r0,r0,r1 : STR r0,th:LDR r0,rd : LDR r1,rh:SUB r0,r0,r1 : STR r0,ti:LDR r0,rX : LDR r1,qz:SUB r0,r0,r1 : STR r0,tl:LDR r0,rZ : LDR r1,rV:SUB r0,r0,r1 : STR r0,tm:LDR r0,rn : LDR r1,rp 45020SUB r0,r0,r1 : STR r0,tp:LDR r0,ro : LDR r1,rq:SUB r0,r0,r1 : STR r0,tq:LDR r0,rl : LDR r1,rj:SUB r0,r0,r1 : STR r0,tt:LDR r0,rm : LDR r1,rk:SUB r0,r0,r1 : STR r0,tu:LDMFD (hj)!,{PC}:.sg STMFD (hj)!,{hk}:.ub BL uY:LDR r0,uc:STR r0,tg 45220.ud BL ue : LDR r0,uf : CMP r0,#0 : BNE ug:BL uh : LDR r0,ui : CMP r0,#0 : BNE ug:.uj BL uk:LDR r0,tz : ADD r0,r0,#1:LDR r1,uU : ADD r1,r1,#2:LDR r2,fX:SUB r1,r2,r1:LDR r2,pp : SUB r0,r0,r2:LDR r3,pq : SUB r1,r1,r3:LDR r4,fV:LDR r5,fX 45330CMP r0,#0 : BLT ul:CMP r0,r4 : BGE ul:CMP r1,#0 : BLT ul:CMP r1,r5 : BGE ul:LDR r2,um:LDR r2,[r2]:LDR r3,fV:BL kv:STR r0,un:B uo:.ul MOV r0,#0:STR r0,un:.uo BL up:LDR r0,tz : ADD r0,r0,#1:LDR r1,uU : ADD r1,r1,#2:LDR r2,mu:SUB r1,r2,r1 45500LDR r2,pr : SUB r0,r0,r2:LDR r3,ps : SUB r1,r1,r3:LDR r4,mt:LDR r5,mu:CMP r0,#0 : BLT uq:CMP r0,r4 : BGE uq:CMP r1,#0 : BLT uq:CMP r1,r5 : BGE uq:LDR r2,ur:LDR r2,[r2]:LDR r3,mt:BL kv:STR r0,us:B ut:.uq MOV r0,#0:STR r0,us:.ut LDR r0,un:LDR r1,us 45690CMP r0,r1:BLNE lq:MOV r4,r0:LDR r0,tg:LDR r1,sU:LDR r2,fV:CMP r0,r2:BGE uu:LDR r2,py : SUB r1,r2,r1 : SUB r1,r1,#1:LDR r2,db : ADD r0,r0,r2:LDR r3,dc : SUB r1,r1,r3:LDR r5,px:LDR r6,py:CMP r0,#0 : BLT uu:CMP r0,r5 : BGE uu:CMP r1,#0 : BLT uu 45840CMP r1,r6 : BGE uu:LDR r2,uv:LDR r2,[r2]:LDR r3,px:BL lc:.uu:.ug LDR r0,tg:ADD r0,r0,#1:STR r0,tg:LDR r1,uw:CMP r0,r1:BLE ud:.ux LDR r0,sU:ADD r0,r0,#1:STR r0,sU:LDR r1,sd:CMP r0,r1:LDMGTFD (hj)!,{PC}:LDR r1,sf:SUBS r1,r1,#1:STR r1,sf:BNE ub 46110LDMFD (hj)!,{PC}:.um DCD qY:.uv DCD qZ:.ur DCD qa:.un DCD 0:.us DCD 0:.uc DCD 0:.uy DCD 0:.uZ STMFD (hj)!,{hk}:LDR r3,rs:LDR r4,rv:SUBS r5,r3,r4:STREQ r3,uc:LDMEQFD (hj)!,{PC}:LDR r0,rw:LDR r1,rz:SUB r0,r0,r1:MOV r1,r5:mov r0,r0,asl #8:BL uz:STR r0,uy 46440LDR r0,sU:LDR r1,rz:SUB r0,r0,r1:LDR r1,uy:mov r0,r0,asl #8:BL uz:LDR r1,rv:ADD r0,r0,r1:STR r0,uc:LDMFD (hj)!,{PC}:.uw DCD 0:.vU DCD 0:.ua STMFD (hj)!,{hk}:LDR r3,rt:LDR r4,ru:SUBS r5,r3,r4:STREQ r3,uw:LDMEQFD (hj)!,{PC}:LDR r0,rx:LDR r1,ry 46760SUB r0,r0,r1:MOV r1,r5:mov r0,r0,asl #8:BL uz:STR r0,vU:LDR r0,sU:LDR r1,ry:SUB r0,r0,r1:LDR r1,vU:mov r0,r0,asl #8:BL uz:LDR r1,ru:ADD r0,r0,r1:STR r0,uw:LDMFD (hj)!,{PC}:.vV DCD 0:.vW DCD 0:.uf DCD 0:.ue STMFD (hj)!,{hk}:LDR r3,rw:LDR r4,rx 47090SUBS r5,r3,r4:STREQ r3,vV:BEQ vX:MOV r0,r5:LDR r1,rs:LDR r2,rt:SUB r1,r1,r2:mov r0,r0,asl #11:BL uz:STR r0,vW:LDR r0,tg:LDR r1,rs:SUB r0,r0,r1:LDR r1,vW:MUL r0,r1,r0:mov r0,r0,asr #11:LDR r1,rw:ADD r0,r0,r1:STR r0,vV:.vX LDR r0,sU:LDR r1,vV:CMP r0,r1 47370MVNGE r0,#0:MOVLT r0,#0:STR r0,uf:LDMFD (hj)!,{PC}:.vY DCD 0:.vZ DCD 0:.ui DCD 0:.uh STMFD (hj)!,{hk}:LDR r3,rz:LDR r4,ry:SUBS r5,r3,r4:STREQ r3,vY:BEQ va:MOV r0,r5:LDR r1,rv:LDR r2,ru:SUB r1,r1,r2:mov r0,r0,asl #11:BL uz:STR r0,vZ:LDR r0,tg:LDR r1,rv 47700SUB r0,r0,r1:LDR r1,vZ:MUL r0,r1,r0:mov r0,r0,asr #11:LDR r1,rz:ADD r0,r0,r1:STR r0,vY:.va LDR r0,sU:LDR r1,vY:CMP r0,r1:MVNLT r0,#0:MOVGE r0,#0:STR r0,ui:LDMFD (hj)!,{PC}:.uk STMFD (hj)!,{hk}:LDR r0,tg:LDR r1,uc:SUB r0,r0,r1:LDR r1,uw:LDR r2,uc 48000SUB r1,r1,r2:mov r0,r0,asl #8:BL uz:STR r0,ac:LDR r0,sU:LDR r1,vY:SUB r0,r0,r1:LDR r1,vV:LDR r2,vY:SUB r1,r1,r2:mov r0,r0,asl #8:BL uz:STR r0,ad:LDR r0,rf:LDR r1,th:LDR r2,ac:MUL r3,r1,r2:mov r3,r3,asr #8:ADD r0,r0,r3:STR r0,tj:LDR r0,rh:LDR r1,ti 48250LDR r2,ac:MUL r3,r1,r2:mov r3,r3,asr #8:ADD r0,r0,r3:STR r0,tk:LDR r0,qz:LDR r1,tl:LDR r2,ac:MUL r3,r1,r2:mov r3,r3,asr #8:ADD r0,r0,r3:STR r0,tn:LDR r0,rV:LDR r1,tm:LDR r2,ac:MUL r3,r1,r2:mov r3,r3,asr #8:ADD r0,r0,r3:STR r0,to:LDR r0,tn:LDR r1,tj 48490SUB r0,r0,r1:STR r0,tx:LDR r0,to:LDR r1,tk:SUB r0,r0,r1:STR r0,ty:LDR r0,tj:LDR r1,tx:LDR r2,ad:MUL r3,r1,r2:mov r3,r3,asr #8:ADD r0,r0,r3:STR r0,tz:LDR r0,tk:LDR r1,ty:LDR r2,ad:MUL r3,r1,r2:mov r3,r3,asr #8:ADD r0,r0,r3:STR r0,uU:LDMFD (hj)!,{PC} 48800.up STMFD (hj)!,{hk}:LDR r0,tg:LDR r1,uc:SUB r0,r0,r1:LDR r1,uw:LDR r2,uc:SUB r1,r1,r2:mov r0,r0,asl #8:BL uz:STR r0,ac:LDR r0,sU:LDR r1,vY:SUB r0,r0,r1:LDR r1,vV:LDR r2,vY:SUB r1,r1,r2:mov r0,r0,asl #8:BL uz:STR r0,ad:LDR r0,rp:LDR r1,tp:LDR r2,ac 49050MUL r3,r1,r2:mov r3,r3,asr #8:ADD r0,r0,r3:STR r0,tr:LDR r0,rq:LDR r1,tq:LDR r2,ac:MUL r3,r1,r2:mov r3,r3,asr #8:ADD r0,r0,r3:STR r0,ts:LDR r0,rj:LDR r1,tt:LDR r2,ac:MUL r3,r1,r2:mov r3,r3,asr #8:ADD r0,r0,r3:STR r0,tv:LDR r0,rk:LDR r1,tu:LDR r2,ac 49290MUL r3,r1,r2:mov r3,r3,asr #8:ADD r0,r0,r3:STR r0,tw:LDR r0,tv:LDR r1,tr:SUB r0,r0,r1:STR r0,tx:LDR r0,tw:LDR r1,ts:SUB r0,r0,r1:STR r0,ty:LDR r0,tr:LDR r1,tx:LDR r2,ad:MUL r3,r1,r2:mov r3,r3,asr #8:ADD r0,r0,r3:STR r0,tz:LDR r0,ts:LDR r1,ty:LDR r2,ad 49550MUL r3,r1,r2:mov r3,r3,asr #8:ADD r0,r0,r3:STR r0,uU:LDMFD (hj)!,{PC}:.ac DCD 0:.ad DCD 0:.uz ADR r2,vb:cmp r1,#0:addgt r1,r1,#1:suble r1,r1,#1:CMP r1,#0:MVNLT r1,r1:ADDLT r1,r1,#1:LDR r2,[r2,r1,ASL #2]:MUL r0,r2,r0:MVNLT r0,r0:ADDLT r0,r0,#1 49900MOV r0,r0,ASR #16:MOV PC,hk:.vb DCD 1: FNction_Reciprocals:]:ENDPROC 50030DEFFNction_Reciprocals:IFhn<2 THEN 50050P%+=8192* 4 50060ELSE:FORi=1 TO8192:!P%=(1/i)* 2^16:P%+=4:NEXTi 50110ENDIF:=hn 50930DEFFNction_InitialiseTask(vc,vd$):LOCALcZ,cb:SYS&400C0,vc,&4B534154,vd$+CHR$0 TOcZ,cb:ve=cb:=ve 51000DEFPROCXb(ve):SYS&400DD,ve,"TASK":ENDPROC 51050DEFFNction_ReportError(Xc,vf,ak$,Yi$,vg,vh):LOCALao,cb,vi:$Xc=ak$+CHR$0:Xc!32=vf:$(Xc+36)=Yi$+CHR$0:ao=(ABSvg*2^0)+(ABSvh*2^1):SYS&400DF,Xc+32,ao,Xc TO,cb:vi=cb:=vi 51170DEFPROCWw(Xj,Xc,Xn,vj):IF NOTvj THEN 51190!Xc=Xn:SYS&400CB,,Xc:SYS&400C5,,Xc 51220ELSE:!Xc=!Xj:SYS&400CB,,Xc:vk=Xc!28:vl=Xj!28:IFvl=-1 THEN 51280CASE!Xj OF 51290WHENWx:!Xc=Wz:SYS&400CB,,Xc:IFXc!28=-1 THENXj!28=vk 51320ENDCASE 51330ENDIF:SYS&400C5,,Xj 51350ENDIF:ENDPROC 51390DEFPROCXU(Xc,Xn):Xc!0=Xn:SYS&400C6,,Xc:ENDPROC 51450DEFPROCXs(Xc,Xn):LOCALaa,ab,vm,vn,vo,vp:Xc!0=Xn:SYS&400CC,,Xc:aa=ABSXc!52:IFaa>1000 THENaa=1000 51500ab=ABSXc!48:IFab>512 THENab=512 51510Xc!0=4:Xc!4=5:Xc!8=11:Xc!12=12:Xc!16=-1:SYS&31,Xc,Xc+32:vm=Xc!32:vn=Xc!36:vo=Xc!40:vp=Xc!44:x=vo* 2^vm :y=vp* 2^vn:x=(x-aa) DIV2:y=(y-ab) DIV2:Xc!(0)=Xn:Xc!(4+0)=x:Xc!(4+4)=y:Xc!(4+8)=Xc!(4+0)+aa:Xc!(4+12)=Xc!(4+4)+ab:Xc!28=-1:SYS&400C5,,Xc:ENDPROC 51670DEFPROCnZ(Xc,Xn,vq,vr,vs,vt):Xc!0=vq:Xc!4=vs:Xc!8=vr:Xc!12=vt:SYS&400D7,Xn,Xc:ENDPROC 51760DEFFNction_WindowIsOpen(Xc,Xn):LOCALvu,vv:Xc!0=Xn:SYS&400CB,,Xc:vu=Xc!32:vv=(vu AND2^16)=2^16:=vv 51850DEFPROCYr(Xc,Xn):LOCALaa,ab,vw,vx:LOCALvy,vz,wU,wV:Xc!0=Xn:SYS&400CC,,Xc:aa=Xc!12-Uj!4:ab=Xc!16-Xc!8:vw=Xc!20:vx=Xc!24:vy=vw:wV=vx:wU=wV-ab:vz=vy+aa:SYS&400D1,Xn,vy,wU,vz,wV:ENDPROC 51980DEFPROCwW(Xc,Xn,Xd):Xc!0=Xn:Xc!4=Xd:Xc!8=0:Xc!12=0:SYS&400CD,,Xc:ENDPROC 52070DEFPROCZa(Xn,Xd,wX):SYS&400D2,Xn,Xd,0,0,-1,wX:ENDPROC 52120DEFPROCZb:SYS&400D2,-1,-1,-1,-1,-1,-1:ENDPROC 52170DEFFNction_ReadIconText(Xc,Xn,Xd):LOCALao,wY,as$:Xc!0=Xn:Xc!4=Xd:SYS&400CE,,Xc:ao=Xc!(8+16):wY=(ao AND2^8)=2^8:IFwY THEN 52250as$=FNction_ExtractString(Xc!(8+20)) 52260ELSE:as$=FNction_ExtractString(Xc+8+20) 52280ENDIF:=as$ 52320DEFPROCWi(Xc,Xn,Xd,wZ$):LOCALao,wY:Xc!0=Xn:Xc!4=Xd:SYS&400CE,,Xc:ao=Xc!(8+16):wY=(ao AND2^8)=2^8:IFwY THEN 52400$(Xc!(8+20))=wZ$ 52410ELSE:$(Xc+8+20)=wZ$ 52430ENDIF:Xc!0=Xn:Xc!4=Xd:Xc!8=0:Xc!12=0:SYS&400CD,,Xc:ENDPROC 52520DEFPROCZe(wa):SYS&400DC,wa:ENDPROC 52570DEFFNction_ExtractString(wb):wc$="":WHILE?wb>31:wc$+=CHR$?wb:wb+=1:ENDWHILE:=wc$ 52660DEFPROCaf(Xc,Zz$):$Xc=Zz$+CHR$0:SYS&400D9,,Xc:ENDPROC 52720DEFFNction_LoadTemplate(wd,we,wf,wg$):LOCALcc,wh,wi,wj,wk:SYS&400DB,,wd,we,wf,-1,wg$,0 TO,,cc:wh=wd!84:wi=cc:=cc:wj=0:WHILEwj<wh:wk=wd+88+wj*32:IF(wk!16 AND&103)=&102 THENwk!24=Up 52840wj+=1:ENDWHILE:=wi 52890DEFFNction_MakeTemplateAWindow(wd):LOCALXn:SYS&400C1,,wd TOXn:=Xn 52950DEFPROCai:SYS&400DA:ENDPROC 53000DEFFNction_PollWimp(Xj,wl):LOCALcZ:SYS&400C7,wl,Xj TOcZ:wm=cZ:=wm 53070DEFFNction_PollWimpIdle(Xj,wl,wn):LOCALcZ:SYS&400E1,wl,Xj,wn TOcZ:wm=cZ:=wm 53140DEFFNction_SetSlotSize(wo):LOCALcZ,cb,cc,wp:SYS&400EC,wo,-1 TOcZ,cb,cc:wp=cZ:=wp 53210DEFFNction_ReadSlotSize:LOCALcZ,cb,cc,wp:SYS&400EC,-1,-1 TOcZ,cb,cc:wp=cZ:=wp 53280DEFFNction_ReadSizeOfFreePool:LOCALcZ,cb,cc,wq:SYS&400EC,-1,-1 TOcZ,cb,cc:wq=cc:=wq 53350DEFPROCXr(Xc):LOCALvm,vn,vo,vp:Xc!0=4:Xc!4=5:Xc!8=11:Xc!12=12:Xc!16=-1:SYS&31,Xc,Xc+32:vm=Xc!32:vn=Xc!36:vo=Xc!40:vp=Xc!44:MOUSERECTANGLE0,0,vo*2^vm,vp*2^vn:ENDPROC 53460DEFPROChi(Xc,Xn):LOCALaa,ab,vm,vn,vo,vp:!Xc=Xn:SYS&400CC,,Xc:aa=ABSXc!52:ab=ABSXc!48:Xc!0=4:Xc!4=5:Xc!8=11:Xc!12=12:Xc!16=-1:SYS&31,Xc,Xc+32:vm=Xc!32:vn=Xc!36:vo=Xc!40:vp=Xc!44:x=vo* 2^vm :y=vp* 2^vn:x=(x-aa)/2:y=(y-ab)/2:Xc!0=Xn:Xc!(0+4+0)=x:Xc!(0+4+4)=y 53610Xc!(0+4+8)=Xc!(0+4+0)+aa:Xc!(0+4+12)=Xc!(0+4+4)+ab:SYS&400C5,,Xc:x=((vo*2^vm)-aa ) / 2:y=((vp*2^vn)-ab) / 2:MOUSERECTANGLEx,y,aa,ab:ENDPROC 53700DEFPROCwr(Xc,Xn,Xd,ws,wt):!Xc=Xn:SYS&400CC,,Xc:wu=Xc!4:wv=Xc!8:ww=Xc!12:wx=Xc!16:Xc!0=Xn:Xc!4=Xd:SYS&400CE,,Xc:wy=Xc!8:wz=Xc!12:xU=Xc!16:xV=Xc!20:xW=xU-wy:xX=xV-wz:Zl=wu+wy:Zo=wx+wz:MOUSERECTANGLEZl+ws,Zo+wt,xW-ws*2,xX-wt*2:ENDPROC 53860DEFPROCdh(Xc,Xn,Xk,Xl):!Xc=Xn:SYS&400CC,,Xc:dj=Xc!4-Xc!20:dl=Xl-(Xc!16-Xc!24):dj=Xk-dj:hV%=dj:hX%=dl:ENDPROC 53970DEFPROCWy(Xc,Xn,xY):Xc!0=Xn:SYS&400CC,,Xc:xZ=Xc!4:ft=Xc!12:xa=Xc!8:fu=Xc!16:xb=Xc!28:Xc!0=xY:SYS&400CC,,Xc:Xc!4=xZ+8:Xc!12=ft-16:Xc!8=xa+8:Xc!16=Xc!8+424:Xc!20=0:Xc!28=xb:SYS&400C5,,Xc:ENDPROC 54100DEFFNction_WordAlign(eU):=((eU+3) AND(NOT3)) 54140DEFFNction_InstallHelp:SYS&1E,6,,,16 TO,,cc:Vi=cc:SYS&41501,Vi,"<"+Uc$+"$Dir>.Messages",0:=Vi 54210DEFPROCXa(xc):SYS&41504,xc:SYS&1E,7,,xc:ENDPROC 54270DEFFNction_TagToString(ch$):SYS&41502,Vi,ch$,0,0,0,0,0,0 TO,,cc:=FNction_ExtractString(cc) 54320DEFPROCxd(xe,xf,xg):xh=xe:xi=xf:xj=xg:Va=4:PROCwr(Uj,xh,xj,16,0):SYS&1C TOcl,cm,cu:xk=cl-1:PROCxl:ENDPROC 54450DEFPROCxl:CASExh OF 54480WHENxm:CASExj OF 54490WHEN4:xn=FNction_DragABar(xn,6):s=INT(127*(xo/100)):PROCWi(Uj,xm,30,STR$s):SYS&90083,s 54530ENDCASE 54540ENDCASE:ENDPROC 54580DEFFNction_DragABar(xf,xg):SYS&1C TOcl,cm,cu:IFcu=0 THEN 54660Va=0:PROCXr(Uj) 54690ELSE:IFcl<>xk THEN 54740!Uj=xh:SYS&400CC,,Uj:wu=Uj!4:xp=cl-wu:Uj!0=xh:Uj!4=xf:SYS&400CE,,Uj:wy=Uj!(8+0):wz=Uj!(8+4):xU=Uj!(8+8):xV=Uj!(8+12):Uj!(100+0)=xh:Uj!(100+4)=xf:SYS&400C4,,Uj+100:SYS&400D1,xh,wy,wz,xU,xV:Uj!(8+8)=xp:Uj!4=xh:SYS&400C2,,Uj+4 TOxf:PROCwW(Uj,xh,xf):Uj!0=xh 55010Uj!4=xj:SYS&400CE,,Uj:xq=Uj!(8+8)-16:xk=cl:xo=INT((xp/xq)*100) 55080ENDIF 55100ENDIF:=xf 55150DEFPROCxr(Xc,Xn,xs$):LOCALao,wY:!Xc=Xn:SYS&400CC,,Xc:ao=Xc!(4+56):wY=(ao AND2^8)=2^8:IFwY THEN 55220dz=!(Xc+4+72):$!(Xc+4+72)=xs$+CHR$0 55240ELSE:$(Xc+4+72)=wZ$+CHR$0 55260ENDIF:ENDPROC 55300DEFPROCgx(Xc,Xn,Xd,xt):Xc!0=Xn:Xc!4=Xd:Xc!8=(ABSxt)<<21:Xc!12=1<<21:SYS&400CD,,Xc:ENDPROC 55390DEFPROCgy(Xc,Xn,Xd,xu):Xc!0=Xn:Xc!4=Xd:Xc!8=(ABSxu)<<22:Xc!12=1<<22:SYS&400CD,,Xc:ENDPROC 55480DEFFNction_IconIsToggled(Xc,Xn,Xd):Xc!0=Xn:Xc!4=Xd:SYS&400CE,,Xc:xv=(Xc!(8+16)) AND2^21:=NOT(xv=2^21) 55560DEFPROCxw(Xc,Xn,Xd):PROCgx(Xc,Xn,Xd,FNction_IconIsToggled(Xc,Xn,Xd)):ENDPROC 55610DEFFNction_WindowWithCaret(Xc):SYS&400D3,,Xc:=Xc!0 55660DEFFNction_IconWithCaret(Xc):SYS&400D3,,Xc:=Xc!4 55710DEFFNction_PathnameOnly(Zz$):IFZz$="" ORINSTR(Zz$,".")=0 THEN="" 55730LOCALi:i=LENZz$:WHILEMID$(Zz$,i,1)<>".":i-=1:ENDWHILE:=LEFT$(Zz$,i-1) 55810DEFFNction_LeafnameOnly(Zz$):IFZz$="" THEN="" 55830LOCALi:i=LENZz$:WHILEMID$(Zz$,i,1)<>"." ANDi>0:i-=1:ENDWHILE:=MID$(Zz$,i+1,LENZz$) 55910DEFPROCcU(Xc,ci,bm,pg):Xc!0=ci:Xc!4=bm:Xc!8=pg<<28:Xc!12=15<<28:SYS&400CD,,Xc:ENDPROC 56000DEFPROCWk(Xc,ci,bm,pg):Xc!0=ci:Xc!4=bm:Xc!8=pg<<24:Xc!12=15<<24:SYS&400CD,,Xc:ENDPROC 56090DEFFNction_ColourOfIcon(Xc,ci,bm):Xc!0=ci:Xc!4=bm:SYS&400CE,,Xc:pg=((Xc!(8+16)) AND(15<<28))>>28:=(pg AND15) 56170DEFFNction_SetIconWidth(Xc,ci,bm,xx):!Xc=ci:SYS&400CC,,Xc:wu=Xc!4:xp=wu+xx:Xc!0=ci:Xc!4=bm:SYS&400CE,,Xc:wy=Xc!(8+0):wz=Xc!(8+4):xU=Xc!(8+8):xV=Xc!(8+12):Xc!(100+0)=ci:Xc!(100+4)=bm:SYS&400C4,,Xc+100:IFwy+xx<xU THEN 56360SYS&400D1,ci,wy,wz,xU,xV 56370ENDIF:Xc!(8+8)=wy+xx:Xc!4=ci:SYS&400C2,,Xc+4 TOxf:SYS&400D1,ci,xU-4,wz,Xc!(8+8),xV:=xf 56490DEFFNction_IdentifyOS(Xc):OSCLI"Set Version NEW":OSCLI"RmEnsure UtilityModule 3.50 Set Version OLD":SYS&23,"Version",Xc,16,0,0 TOcZ,cb,cc,cd,ce:OSCLI"Unset Version":=LEFT$(FNction_ExtractString(Xc),3) 56570DEFPROCnz(Xc,ci,xy,xz):!Xc=ci:SYS&400CC,,Xc:Xc!12=Xc!4+xy:Xc!16=Xc!8+xz:SYS&400C5,,Xc:ENDPROC
P-���:�"Fatal Error : ";�$;" at Line ";�:� Z �UV:��UW x �UX:� ����UV:UY=4:UZ=2:Ua=1:Ub=-2:Uc$="Morph":Ud$="Morph":Ue=&FF9:Uf=&3E1:Ug=6*1024 :�Uh Ug:Ui=6*1024 :�Uj Ui:Uk=6*1024 :�Ul Uk:Um=6*1024 :�Un Um:Uo=24*1024 :�Up Uo:Uq=6*1024 :�Ur Uq:�Us 1024*2:�Ut 1024:�Uu 1024:�Uv 1024:�Uw 1024:�Ux 10:�Uy(Ux):�Uz 10:�Uy(Uz) ��VU=0:VV= ��:VW=0:�VX 32:VY=�ction_InitialiseTask(2*100,Ud$):VZ=0:Va=0:�Vb:�Vc:�Vd:�Ve:�Vf(0):�Vg(0):�Vf(2):�Vg(2):Vh=�ction_IconbarSprite(Uj):Vi=�ction_InstallHelp:Vj= ��:Vk=0:Vl=0:Vm= ��:Vn= ��:Vo=0:Vp=0:Vq= ��:Vr= ��:Vs=0:Vt=0:Vu= ��:Vv%=0:Vw%=0 X�Vx%=0:Vy%=0:Vz%=0:WU%=0:WV=0:WW=15:WX= ��:WY= ��:WZ=1:Wa=-1:Wb$="Morph-Data":Wc$="Frames":Wd=0:�We:�Wf(1):�Wg(1):�Wh("SOURCE",1,1):�Wh("DEST",1,1):�Wi(Uj,Wj,1,�ction_TagToString("srce")+�ction_TagToString("none")) *n�Wi(Uj,Wj,3,�ction_TagToString("dest")+�ction_TagToString("none")):�Wk(Uj,Wj,1,3):�Wk(Uj,Wj,3,3):�Wl:�Wm:� �/��UX:�Wn:�:Wo=�ction_PollWimp(Uh,VU):ȎWo � ��0:�Va=1 ��Wp ��Va=2 �Va=3 ��Wq � �WY �Wr � ��Ws:�Wt � �:�Wu �1:�Wv(Uh) �2:�Ww(Uh,Uj,-1,�):Ȏ!Uh � $�Wx:�Wy(Uj,Wx,Wz) .� 8�3:�XU(Uj,Uh!0) B�6:�XV(Uh) L�7:�XW(Uh) V�8:�XX(Uh) `�9:�XY(Uh) j�17:�XZ(Uh) t�18:�XZ(Uh) ~�:�VV:�Xa(Vi):�Xb(VY):� �ݤction_IconbarSprite(Xc):Xc!0=-1:Xc!4=0:Xc!8=0:Xc!12=68:Xc!16=68:Xc!20=2^1+2^3+2^4+2^8+(3<<12):$VX=�(�"a"+VW):Xc!24=VX:Xc!28=Up:Xc!32=2:ș&400C2,,Xc �Xd:Xe=�:=Xd �R��We:Uj!0=Ub:Uj!4=Vh:ș&400CE,,Uj:$VX=�(�"a"+VW):Uj!8=0:Uj!12=0:ș&400CD,,Uj:� ���Ws:Xf=�-Xe:�Xf>8 � VW=(VW+1) �16:�We:Xe=� "�:� J��Xg:VW=0:�We:� �*��Vd:�Xh(Up,Uo):Ȏ�ction_SpritesType � �$�1:�Xi(Up,"<Morph$Dir>.Sprites") �&�2:�Xi(Up,"<Morph$Dir>.Sprites22") �&�3:�Xi(Up,"<Morph$Dir>.Sprites23") ��:� �=��XV(Xj):Xk=Xj!0:Xl=Xj!4:Xm=Xj!8:Xn=Xj!12:Xd=Xj!16:ȎXm � D�UY:ȎXn � N�Xo:�Xd=3 � X�XU(Uj,Xn):�Xp l� v�Xq:�Xd=5 � ��XU(Uj,Xn):�Xr(Uj) �� ��Ub:�Xd=Vh � �� �WY � ��Xs(Uj,Wj) ��:�Xs(Uj,Xt) �� �� ��Wj:ȎXd � ��0:�Vj � ��(-2) � "Xu=�ction_LaunchObject(Xv$,Xu) �:�Ww(Uh,Uj,Xw, ��) � *� 4�2:�Vn � >�(-2) � H"Xx=�ction_LaunchObject(Xy$,Xx) R�:�Ww(Uh,Uj,Xz, ��) f� p� z �7:�YU � �8:�YV � �9:�YW �� ��YX:ȎXd � ��0:�YY(+1,0) ��1:�YY(-1,0) ��5:�YY(0,+1) ��6:�YY(0,-1) �� ��Xw:ȎWX � �ɣ:�YZ(Xn,Xk,Xl,�) �ɹ:�Ya(Xn,Xk,Xl, ��,�) �,�:�(-2) �Xu=�ction_LaunchObject(Xv$,Xu) �Xz:ȎWX � ɣ:�YZ(Xn,Xk,Xl,�) $ɹ:�Ya(Xn,Xk,Xl, ��,�) .,�:�(-2) �Xx=�ction_LaunchObject(Xy$,Xx) B�Wz:ȎXd � L �9:�Yb V �5:�Yc ` �4:�Yd j�3:�Ye("All") t�7:�Ye("From") ~� ��Wx:ȎXd � � �2:�Yf:�XU(Uj,Xn):�XU(Uj,Wz) �$�1:�XU(Uj,Xn):�XU(Uj,Wz):�Yg:�Yd � �0:�Yh:�XU(Uj,Xn):�XU(Uj,Wz) �� �Xt:�Xd=2 � XYi$=�ction_TagToString("err11"):Yj=�ction_ReportError(Uj,99,Uc$,Yi$,�,�):�Yj<>1 ��Yk (� 2�Yl:�Xd=2 ��Ym( ��) <�Yn:�Vr ��(-2) � F"Yo=�ction_LaunchObject(Yp$,Yo) P� Z�Yq:�Xd=0 � d�Uy(Ux):�Yr(Uj,Xn) x�:�Ys(Xn,Xk,Xl,Ux) �� ��Yt:�Xd=0 � ��Uy(Uz):�Yr(Uj,Xn) ��:�Ys(Xn,Xk,Xl,Uz) �� �� ��UZ:ȎXn � ��Ub:�Xd=Vh � �Yu(Xk) � �Xw:�Yv(Xk,Xl) "�Xz:�Yw(Xk,Xl) ,�Yn:�Yx(Xk,Xl) 6�Wj:ȎXd � @ �7:�YU J �8:�YV T� ^� |�Ua:ȎXn � ��Wj:ȎXd � � �7:�YU � �8:�YV �� ��Xw:ȎWX � �ɣ:�YZ(Xn,Xk,Xl, ��) �ɹ:�Ya(Xn,Xk,Xl,�, ��) �� ��Xz:ȎWX � �ɣ:�YZ(Xn,Xk,Xl, ��) �ɹ:�Ya(Xn,Xk,Xl,�, ��) �� ��Wx:ȎXd � �2:�Yf �1:�Yg:�Yd & �0:�Yh 0� :�Wz:ȎXd � D �4:�Yd N�3:�Ye("All") X�7:�Ye("From") b� l�Yl:�Xd=2 ��Ym(�) v�Yn:�Vr ��Yy(Xk,Xl) �� ��64:ȎXn � ��Xw:ȎWX � �ɣ:Va=2:�Yz(Xn,Xk,Xl) � ɹ:�WV>0 �Va=3:�ZU(Xn,Xk,Xl) �� ��Xz:ȎWX � �ɣ:Va=2:�Yz(Xn,Xk,Xl) � ɹ:�WV>0 �Va=3:�ZU(Xn,Xk,Xl) �� ��Yl:�Xd=Wa � &Va=4:Yj=�ction_BeginDrag(Uj,Xn,Xd) � � >�16:ȎXn � R�Xw:�WV=0 � \Va=1:�ZV(Xn,Xk,Xl) f�:ȎWX � zɣ:Va=2:�Yz(Xn,Xk,Xl) �ɹ:Va=3:�ZU(Xn,Xk,Xl) �� �� ��Xz:�WV=0 � �Va=1:�ZV(Xn,Xk,Xl) ��:ȎWX � �ɣ:Va=2:�Yz(Xn,Xk,Xl) �ɹ:Va=3:�ZU(Xn,Xk,Xl) �� �� �Yn:Va=1:�ZV(Xn,Xk,Xl) � .�:� V,��XX(Xj):Xn=Xj!0:Xd=Xj!4:ZW=Xj!24:ȎXn � ��YX:ȎXd � ��2:�ZW=13 � �dZX=��ction_ReadIconText(Uj,YX,2):ZY=��ction_ReadIconText(Uj,YX,4):�VZ=5 �ZZ$="SOURCE"�ZZ$="DEST" �B�Wh(ZZ$,ZX,ZY):ZY$=�ction_ReadIconText(Uj,YX,4):�Za(YX,4,�ZY$) �� ��4:�ZW=13 � �dZX=��ction_ReadIconText(Uj,YX,2):ZY=��ction_ReadIconText(Uj,YX,4):�VZ=5 �ZZ$="SOURCE"�ZZ$="DEST" �Wh(ZZ$,ZX,ZY):�Zb � (� 2�Wj:ȎXd � <�6:�ZW=13 ��Zb F� P�Yl:�Xd=0 �ZW=13 � Z�Ym( ��) d� n�Xw:ȎZW � xɗ"X"-64:�Zc �� ��Xz:ȎZW � �ɗ"X"-64:�Zc �� ��Wz:�ZW=13 � � ȎXd � �7�11:Zd$=�ction_ReadIconText(Uj,Xn,8):�Za(Xn,8,�Zd$) � �8:�Yh:�XU(Uj,Xn):�XU(Uj,Wx) �9�13:Zd$=�ction_ReadIconText(Uj,Xn,14):�Za(Xn,14,�Zd$) !�14:�Yh:�XU(Uj,Xn):�XU(Uj,Wx) "� ,� 6�:�Ze(ZW):� h��XZ(Xj):ȎXj!16 � |�0:� �WY � �VV=� �Z�:Yi$=�ction_TagToString("err12"):Yj=�ction_ReportError(Uj,99,Uc$,Yi$,�,�):VV= �(Yj=1) �� ��2:�Zf(Xj) ��3:�Zg(Xj) ��5:�Xj!40=Uf ��Zg(Xj) ��9:�Zh:�Zi ��&502:�Zj(Xj) ��&400C1:�Zh:�Zi �:� :e��Wv(Xj):Xn=Xj!0:ș&400C8,,Xj �Zk:Zl=Xj!4:Zm=Xj!12:Zn=Xj!16:Zo=Xj!8:Zp=Xj!20:Zq=Xj!24:ȕZk:ȎXn � ��Wj:�Zr ��Xw:�Zs ��Xz:�Zt ��Yn:�Zu ��Yq:�Zv(Ux) ��Yt:�Zv(Uz) ��:ș&400CA,,Xj �Zk:�:� ��XW(Xj):ȎVa � �1 �2:�Zw * �3:�Zx 4�4:�Zy(Xj) >�5 H�:� p���Zy(Xj):ș&400CF,,Xj:Xk=Xj!0:Xl=Xj!4:Xn=Xj!12:Xd=Xj!16:Zz$=�ction_PathnameOnly(�ction_ReadIconText(Uj,Wj,14)):aU$=�ction_LeafnameOnly(�ction_ReadIconText(Uj,Wj,14)):Xj!0=44+((�aU$ �4)*4)+4:Xj!4=0:Xj!8=0:Xj!12=0:Xj!16=1:Xj!20=Xn:Xj!24=Xd:Xj!28=Xk DXj!32=Xl:Xj!36=64:Xj!40=&FFF:$(Xj+44)=aU$+�0:ș&400E7,17,Xj,Xn:� `���Zf(Xj):aV=Xj!4:Xj!12=Xj!8:Xj!16=3:Zz$=�ction_ExtractString(Xj+44):ș&400E7,17,Xj,aV:aW$=�ction_ReadIconText(Uj,Yl,0):aW$=�ction_LeafnameOnly(aW$):Zz$=Zz$+aW$:aX$=�ction_ReadIconText(Uj,Yl,Wa):ȎaX$ � ��"directory":�aY(Zz$) �:�aZ(Zz$) ��:ș&400D4,,-1:� �ݤction_BeginDrag(Xc,Xn,Xd):�aa,ab,ac,ad:Xc!0=4:Xc!4=5:Xc!8=11:Xc!12=12:Xc!16=-1:ș&31,Xc,Xc+32:aa=(Xc!40+1)* 2^( Xc!32 ):ab=(Xc!44+1)* 2^( Xc!36 ):Xc!0=Xn:ș&400CC,,Xc:ac=Xc!4:ad=Xc!16:Xc!0=Xn:Xc!4=Xd:ș&400CE,,Xc:Xc!8+=ac:Xc!12+=ad �WXc!16+=ac:Xc!20+=ad:Xc!0=0:Xc!4=5:Xc!24=0:Xc!28=0:Xc!32=aa:Xc!36=ab:ș&400D0,,Xc:=0 ���Vb:ae=Un:�af(Uj,"<"+Uc$+"$Dir>.Templates"):ae=�ction_LoadTemplate(Ul,ae,Un+Um,"information"):ag=�ction_MakeTemplateAWindow(Ul):ae=�ction_LoadTemplate(Ul,ae,Un+Um,"source"):Xw=�ction_MakeTemplateAWindow(Ul) T�ae=�ction_LoadTemplate(Ul,ae,Un+Um,"xfer_send"):Yl=�ction_MakeTemplateAWindow(Ul):ae=�ction_LoadTemplate(Ul,ae,Un+Um,"dest"):Xz=�ction_MakeTemplateAWindow(Ul):ae=�ction_LoadTemplate(Ul,ae,Un+Um,"main"):Wj=�ction_MakeTemplateAWindow(Ul) ��ae=�ction_LoadTemplate(Ul,ae,Un+Um,"magnifier"):YX=�ction_MakeTemplateAWindow(Ul):ae=�ction_LoadTemplate(Ul,ae,Un+Um,"pref_pane"):Wz=�ction_MakeTemplateAWindow(Ul):ae=�ction_LoadTemplate(Ul,ae,Un+Um,"pref_main"):Wx=�ction_MakeTemplateAWindow(Ul) ��ae=�ction_LoadTemplate(Ul,ae,Un+Um,"progress"):Xt=�ction_MakeTemplateAWindow(Ul):ae=�ction_LoadTemplate(Ul,ae,Un+Um,"back"):Yn=�ction_MakeTemplateAWindow(Ul):ae=�ction_LoadTemplate(Ul,ae,Un+Um,"xfer_send2"):ah=�ction_MakeTemplateAWindow(Ul) �ae=�ction_LoadTemplate(Ul,ae,Un+Um,"colr"):Yq=�ction_MakeTemplateAWindow(Ul):ae=�ction_LoadTemplate(Ul,ae,Un+Um,"mvmt"):Yt=�ction_MakeTemplateAWindow(Ul):ae=�ction_LoadTemplate(Ul,ae,Un+Um,"share_1"):Xo=�ction_MakeTemplateAWindow(Ul) DYae=�ction_LoadTemplate(Ul,ae,Un+Um,"share_2"):Xq=�ction_MakeTemplateAWindow(Ul):�ai:� ����aj(ak$,aa,ab):$(Ur+al)=ak$+�0:?(Ur+al+12)=7:?(Ur+al+13)=2:?(Ur+al+14)=7:?(Ur+al+15)=0:!(Ur+al+16)=aa:!(Ur+al+20)=ab:!(Ur+al+24)=0:al+=28:� l��am(an$,ao,ap,aq):!(Ur+al+0)=ao:!(Ur+al+4)=ap:!(Ur+al+8)=&07000001+�aq*2^22:$(Ur+al+12)=an$+�0:al+=24:� \���ar(as$,ao,ap,aq):!(Ur+al+0)=ao:!(Ur+al+4)=ap:!(Ur+al+8)=&07000101+�aq*2^22:at=au+av:$at=as$+�0:av+=�as$+1:!(Ur+al+12)=at:!(Ur+al+16)=-1:!(Ur+al+20)=16:al+=24:� ���Yu(Xk):VZ=1:al=0:�aj(Uc$,160,44):�am("Info",0,ag, ��):�am("Prefs...",0,-1,WY):�am("Quit",128,-1, ��):ș&400D4,,Ur,Xk-80,228:� V���YU:VZ=2:al=0:au=Ur+1*1024:av=0:�aj("Quality",304,44):�aw=1 �5:aw$=�ction_TagToString("qual"+�"00"+�aw,2)):�ar(aw$,�(aw=!ax),-1,aw>1):�aw:!(Ur+al+0-24)+=128:!Uj=Wj:ș&400CC,,Uj:Zl=Uj!4:Zo=Uj!8:ș&400D4,,Ur,Zl+488,Zo+100:� ���YV:VZ=3:al=0:au=Ur+1*1024:av=0:ay$=�ction_ReadIconText(Uj,Wj,6):�aj("Frames",128,44):�az=1 �5:az$=�ction_TagToString("frms"+�"00"+�az,2)):�ar(az$,�(ay$=az$),-1, ��):�az:!(Ur+al+0-24)+=128:!Uj=Wj:ș&400CC,,Uj:Zl=Uj!4:Zo=Uj!8:ș&400D4,,Ur,Zl+488,Zo+50 �� ����Yb:VZ=4:al=0:au=Ur+1*1024:av=0:�aj("Auto",128,44):�bU=1 �5:bU$=�ction_TagToString("auto"+�"00"+�bU,2)):�ar(bU$,0,-1, ��):�bU:!(Ur+al+0-24)=128:!Uj=Wz:ș&400CC,,Uj:Zl=Uj!4:Zo=Uj!8:ș&400D4,,Ur,Zl+448+52,Zo+356-Uj!24:� ^���Yv(Xk,Xl):�bV("file_3e1"):�Wi(Uj,Yl,0,Wb$):�Wi(Uj,YX,2,�bW):�Wi(Uj,YX,4,�bX):�bY(WW):VZ=5:al=0:au=Ur+1*1024:av=0:bZ=Ur+al:�aj("Select",128,44):�ar(�ction_TagToString("delt"),0,-1,WV=0 �WX):�ar(�ction_TagToString("colr"),128,Us,(�WX) �WV=0):ba=Ur+al ���aj("Edit",304,44):�ar(�ction_TagToString("bgrd"),0,-1, ��):�ar(�ction_TagToString("colc"),0,-1, ��):�ar(�ction_TagToString("movc"),2,-1, ��):�ar(�ction_TagToString("rsrc"),0,-1, �Vj):�ar(�ction_TagToString("rdst"),0,-1, �Vn) 0��ar(�ction_TagToString("rbck"),128,-1, �Vr):bb=Ur+al:�aj("Misc",224,44):�ar(�ction_TagToString("acpt"),0,-1,WX):�ar(�ction_TagToString("cntr"),2,-1,(Vv%=0 �Vw%=0)):�ar(�ction_TagToString("rest"),128,-1, ��):bc=Ur+al:�aj("Morph",128,44) ���ar(�ction_TagToString("misc"),0,bb, ��):�ar(�ction_TagToString("save"),0,Yl, ��):�ar(�ction_TagToString("slct"),0,bZ, ��):�ar(�ction_TagToString("edit"),0,ba, ��):�ar(�ction_TagToString("zoom"),128,YX, ��):ș&400D4,,bc,Xk-64,Xl:� ���Yw(Xk,Xl):�bV("file_3e1"):�Wi(Uj,Yl,0,Wb$):�Wi(Uj,YX,2,�bd):�Wi(Uj,YX,4,�be):�bY(WW):VZ=6:al=0:au=Ur+1*1024:av=0:bZ=Ur+al:�aj("Select",128,44):�ar(�ction_TagToString("delt"),0,-1,WV=0 �WX):�ar(�ction_TagToString("colr"),128,Us,(�WX) �WV=0):ba=Ur+al p��aj("Edit",304,44):�ar(�ction_TagToString("bgrd"),0,-1, ��):�ar(�ction_TagToString("colc"),0,-1, ��):�ar(�ction_TagToString("movc"),2,-1, ��):�ar(�ction_TagToString("rsrc"),0,-1, �Vj):�ar(�ction_TagToString("rdst"),0,-1, �Vn) ���ar(�ction_TagToString("rbck"),128,-1, �Vr):bb=Ur+al:�aj("Misc",224,44):�ar(�ction_TagToString("acpt"),0,-1,WX):�ar(�ction_TagToString("cntr"),2,-1,(Vx%=0 �Vy%=0)):�ar(�ction_TagToString("rest"),128,-1, ��):bc=Ur+al:�aj("Morph",128,44) ���ar(�ction_TagToString("misc"),0,bb, ��):�ar(�ction_TagToString("save"),0,Yl, ��):�ar(�ction_TagToString("slct"),0,bZ, ��):�ar(�ction_TagToString("edit"),0,ba, ��):�ar(�ction_TagToString("zoom"),128,YX, ��):ș&400D4,,bc,Xk-64,Xl:� V���Yx(Xk,Xl):VZ=8:al=0:au=Ur+1*1024:av=0:bf=Ur+al:�aj(�ction_TagToString("upper"),128,44):�ar(�ction_TagToString("left"),0,-1, �Vr):�ar(�ction_TagToString("middle"),0,-1, �Vr):�ar(�ction_TagToString("right"),128,-1, �Vr):bg=Ur+al ���aj(�ction_TagToString("middle"),128,44):�ar(�ction_TagToString("left"),0,-1, �Vr):�ar(�ction_TagToString("middle"),0,-1, �Vr):�ar(�ction_TagToString("right"),128,-1, �Vr):bh=Ur+al:�aj(�ction_TagToString("lower"),128,44) ��ar(�ction_TagToString("left"),0,-1, �Vr):�ar(�ction_TagToString("middle"),0,-1, �Vr):�ar(�ction_TagToString("right"),128,-1, �Vr):bc=Ur+al:�aj("Align",128,44):�ar(�ction_TagToString("upper"),0,bf, �Vr):�ar(�ction_TagToString("middle"),0,bg, �Vr) FH�ar(�ction_TagToString("lower"),128,bh, �Vr):ș&400D4,,bc,Xk-64,Xl:� xz��Yc:VZ=7:�bY(�ction_ColourOfIcon(Uj,Wz,19)):!Uj=Wz:ș&400CC,,Uj:Zl=Uj!4:Zo=Uj!8:ș&400D4,,Us,Zl+448+52,Zo+268-Uj!24:� ����bY(bi):�bj("Colour",96,44):�bk(�(bi=&0),-1,&07000011," 0"):�bk(�(bi=&1),-1,&17000011," 1"):�bk(�(bi=&2),-1,&27000011," 2"):�bk(�(bi=&3),-1,&37000011," 3"):�bk(�(bi=&4),-1,&40000011," 4"):�bk(�(bi=&5),-1,&50000011," 5") "��bk(�(bi=&6),-1,&60000011," 6"):�bk(�(bi=&7),-1,&70000011," 7"):�bk(�(bi=&8),-1,&80000011," 8"):�bk(�(bi=&9),-1,&97000011," 9"):�bk(�(bi=&A),-1,&A0000011," A"):�bk(�(bi=&B),-1,&B0000011," B"):�bk(�(bi=&C),-1,&C7000011," C") hi�bk(�(bi=&D),-1,&D0000011," D"):�bk(�(bi=&E),-1,&E7000011," E"):�bk(�(bi=&F)+128,-1,&F7000011," F"):� ����bj(ak$,aa,ab):bl=0:$(Us+bl)=ak$+�0:?(Us+bl+12)=7:?(Us+bl+13)=2:?(Us+bl+14)=7:?(Us+bl+15)=0:!(Us+bl+16)=aa:!(Us+bl+20)=ab:!(Us+bl+24)=0:bl+=28:� 0���bk(ao,ap,bm,bn$):?(Us+bl+0)=ao:?(Us+bl+1)=0:?(Us+bl+2)=0:?(Us+bl+3)=0:!(Us+bl+4)=ap:!(Us+bl+8)=bm:$(Us+bl+12)=bn$+�0:bl+=24:� �+��XY(Xj):bo=Xj!0:bp=Xj!4:bq=Xj!8:ȎVZ � � �1:Ȏbo � ��1:�Xs(Uj,Wx):�Wy(Uj,Wx,Wz) ��2:� �WY � !VV=� !Z�:Yi$=�ction_TagToString("err12"):Yj=�ction_ReportError(Uj,99,Uc$,Yi$,�,�):VV= �(Yj=1) !4� !>� !H�2:�Wf(bo+1):!ax=bo+1 !\�3:�Wg(bo+1) !fY�4:br$=�ction_TagToString("auto"+�"00"+�(bo+1),2)):�Wi(Uj,Wz,11,br$):�Wi(Uj,Wz,8,br$) !� �5:Ȏbo � !� �0:Ȏbp � !� �0:�bs(�) !�)�1:Vv%=0:!bt=0:Vw%=0:!bu=0:�Yr(Uj,Xw) !� �2:�bv !�� !� �2:Ȏbp � !� �0:�Zc !��1:�bw(bq) !�� !� �3:Ȏbp � "�0:�Xs(Uj,Yn) "�1:�Ww(Uh,Uj,Yq, ��) "�2:�Ww(Uh,Uj,Yt, ��) "$�3:�bx("Source") ".�4:�bx("Dest") "8�5:�bx("Back") "B� "L� "` �6:Ȏbo � "j �0:Ȏbp � "t �0:�bs(�) "~)�1:Vx%=0:!by=0:Vy%=0:!bz=0:�Yr(Uj,Xz) "� �2:�bv "�� "� �2:Ȏbp � "� �0:�Zc "��1:�bw(bq) "�� "� �3:Ȏbp � "��0:�Xs(Uj,Yn) "��1:�Ww(Uh,Uj,Yq, ��) "��2:�Ww(Uh,Uj,Yt, ��) "��3:�bx("Source") # �4:�bx("Dest") # �5:�bx("Back") #� #� #2�7:�cU(Uj,Wz,19,bo) #F �8:Ȏbo � #Z �0:Ȏbp � #d�0:�cV("T","L") #n�1:�cV("T","M") #x�2:�cV("T","R") #�� #� �1:Ȏbp � #��0:�cV("M","L") #��1:�cV("M","M") #��2:�cV("M","R") #�� #� �2:Ȏbp � #��0:�cV("B","L") #��1:�cV("B","M") #��2:�cV("B","R") #�� $� $"3�:ș&400CF,,Xj:Xk=Xj!0:Xl=Xj!4:Xm=Xj!8:�Xm=Ua � $^ ȎVZ � $h�1:�Yu(Xk) $r �2:�YU $| �3:�YV $� �4:�Yb $��5:�Vj ��Yv(Xk,Xl) $��6:�Vn ��Yw(Xk,Xl) $� �7:�Yc $��8:�Yx(Xk,Xl) $�� $��:�VZ<>1 � $�ș&400D4,,-1:VZ=0 $�� $��:� %t��Zg(Xj):cW=Xj!40:Zz$=�ction_ExtractString(Xj+44):aV=Xj!4:Xj!16=4:Xj!12=Xj!8:ș&400E7,17,Xj,aV:�cW<>Ue �cW<>Uf � %lNYi$=�ction_TagToString("err01"):Yj=�ction_ReportError(Uj,99,Uc$,Yi$, ��,�) %��:ȎcW � %��Ue:�cX(Zz$) %��Uf:�cY(Zz$) %�� %��:� %�8ݤction_FileExists(Zz$):ș&20008,13,Zz$ �cZ:=(cZ<>0) &Hݤction_SizeOfFile(Zz$):�ca:ș&8,17,Zz$ �cZ,cb,cc,cd,ce,cf:ca=ce:=ca &RUݤction_TypeOfFile(Zz$):�ca:ș&8,17,Zz$ �cZ,cb,cc,cd,ce,cf:cg=((cc>>8) �&FFF):=cg &�4��Zj(Xj):ch$="":aV=Xj!4:ci=Xj!32:bm=Xj!36:Ȏci � &��Ub:�bm=Vh � &� �WY �Wr � &�ch$="spin" &��:ch$="icon" '� '� '&�Yq:�bm=0 �ch$="colw00"�ch$="colw" '$&�Yt:�bm=0 �ch$="movw00"�ch$="movw" '.�Xw:ch$="sour" '8�Xz:ch$="dstn" 'B�Yn:ch$="back" 'L�Xt:Ȏbm � 'V�1:ch$="prog01" '`�2:ch$="prog02" 'j�3:ch$="prog03" 't� '~�Wj:Ȏbm � '��0:ch$="main00" '��2:ch$="main02" '��4:ch$="main04" '��6:ch$="main06" '��7:ch$="main07" '��8:ch$="main08" '��9:ch$="main09" '�:ch$="main" '�� '��Wx:Ȏbm � '��0:ch$="pman00" ( �1:ch$="pman01" ( �2:ch$="pman02" (:ch$="pref" ((� (2�Wz:Ȏbm � (<�3:ch$="ppne03" (F�4:ch$="ppne04" (P�5:ch$="ppne05" (Z�7:ch$="ppne07" (d�8:ch$="ppne08" (n�9:ch$="ppne09" (x�11:ch$="ppne11" (��12:ch$="ppne12" (��13:ch$="ppne13" (��14:ch$="ppne14" (��19:ch$="ppne19" (�:ch$="pref" (�� (��:�ch$<>"" � (�qcj$=�ction_TagToString(ch$):Xj!0=20+((�(cj$) �4)*4)+4:Xj!12=Xj!8:Xj!16=&503:$(Xj+20)=cj$+�0:ș&400E7,17,Xj,aV )�:� )@K��Wf(ck):aw$=�ction_TagToString("qual"+�"00"+�ck,2)):�Wi(Uj,Wj,4,aw$):� )|K��Wg(ck):az$=�ction_TagToString("frms"+�"00"+�ck,2)):�Wi(Uj,Wj,6,az$):� )����ZV(ci,cl,cm):cn=ci:co=cl+1:cp=cm+0:Uj!0=ci:Uj!4=7:Uj!8=cl:Uj!12=cm:Uj!16=cl:Uj!20=cm:Uj!24=ci:ș&400C8,,Uj+24:cq=Uj!28:cr=Uj!36:cs=Uj!40:ct=Uj!32:Uj!24=cq:Uj!28=ct:Uj!32=cr:Uj!36=cs:ș&400D0,,Uj:� *l;��Wp:ș&400CF,,Uj:cl=Uj!0:cm=Uj!4:cu=Uj!8:ci=cn:�cu=1 � *��cl<>co �cm<>cp � *� Ȏci � *��Xw:cv=bW/bX *��Xz:cv=bd/be *��Yn:cv=1/1 *�/�:�cw(ci,(cl-co)/cv,(cm-cp)/cv):co=cl:cp=cm *�� + �:Va=0 +�:� +>��cw(ci,cx,cy):Ȏci � +\^�Xw:Vv%+=((cx>>cz)/dU):Vw%+=((cy>>dV)/dW):!bt+=((cx>>cz)/dU):!bu+=((cy>>dV)/dW):�Yr(Uj,ci) +�^�Xz:Vx%+=((cx>>cz)/dX):Vy%+=((cy>>dV)/dY):!by+=((cx>>cz)/dX):!bz+=((cy>>dV)/dY):�Yr(Uj,ci) +� �Yn:�Vr � +�ZVz%+=((cx>>cz)/dZ):WU%+=((cy>>dV)/da):!db+=((cx>>cz)/dZ):!dc+=((cy>>dV)/da):�Yy(cl,cm) ,� ,$�:� ,L��dd(ci,cl,cm):Ȏci � ,`�Xw:de=bW/bX:df=dU:dg=dW ,~�Xz:de=bd/be:df=dX:dg=dY ,�H�:�dh(Uj,ci,cl,cm):di%=(dj>>(df*cz) ) / de:dk%=(dl>>(dg*dV) ) / de:� ,����Yz(ci,cl,cm):dm=ci:dn=cl:do=cm:co=cl:cp=cm:Uj!0=ci:Uj!4=7:Uj!8=cl:Uj!12=cm:Uj!16=cl:Uj!20=cm:Uj!24=ci:ș&400CC,,Uj+24:cq=Uj!28:cr=Uj!36:cs=Uj!40:ct=Uj!32:Uj!24=cq:Uj!28=ct:Uj!32=cr:Uj!36=cs:ș&400D0,,Uj:�WX ��dp��dq -�� -����dp:dr=Uj:!dr=dm:ș&400CC,,dr:dr!(0+4)=dr!(40+4):dr!(4+4)=dr!(44+4):dr!(8+4)=dr!(48+4):dr!(12+4)=dr!(52+4):ș&400C9,,dr �ds:ȕds:ș&400E6,48+14:ȓȐco-4,cp-4,8,8:ș&400CA,,dr �ds:�:� .6���dq:dr=Uj:!dr=dm:ș&400CC,,dr:dr!(0+4)=dr!(40+4):dr!(4+4)=dr!(44+4):dr!(8+4)=dr!(48+4):dr!(12+4)=dr!(52+4):ș&400C9,,dr �ds:ȕds:ș&400E6,48+14:�dn,do,co,cp:ș&400CA,,dr �ds:�:� .�D��Wq:ș&400CF,,Uj:cl=Uj!0:cm=Uj!4:cu=Uj!8:ci=Uj!12:�cu=4 �cu=1 � .��cl<>co �cm<>cp � /�WX ��dp��dq /co=cl:cp=cm:�WX ��dp��dq /0� /: �:Va=0 /N�:� /v��Zw:�WX ��dp��dq /�Hș&400CF,,Uj:ci=Uj!12:�dd(ci,dn,do):dt=�(cp-do):du=�(co-dn):�du>dt � /�#� ��ction_GuideExists(dv,dk%) � /�=dw=�ction_Insert_HorV(dv,dk%):�dx(Xw,dw,dv):�dx(Xz,dw,dv) /�� /�%�:� ��ction_GuideExists(dy,di%) � 0=dw=�ction_Insert_HorV(dy,di%):�dx(Xw,dw,dy):�dx(Xz,dw,dy) 0*� 04�:� 0\\ݤction_Insert_HorV(dz,eU%):i=0:eV= ��:ȕi<=255 � �eV:eW%=(dz!(i*4) �&7FFFFFFF):�eW%=0 � 0�eV=� 0� �:i+=1 0��:�:�i>255 � 0�NYi$=�ction_TagToString("err04"):Yj=�ction_ReportError(Uj,99,Uc$,Yi$, ��,�) 0��:dz!(i*4) = eU% + 1 0��:=i 1$`ݤction_GuideExists(dz,eU%):i=0:eV= ��:ȕi<=255 � �eV:eW%=(dz!(i*4) �&7FFFFFFF)-1:�eW%=eU% � 1`eV=� 1j �:i+=1 1~�:�:=eV 1���YZ(ci,cl,cm,eX):�eX � 1�eY=�eZ:ea=�eb:�eY>0 � 1��eY>1 � 1��Yr(Uj,Xw):�Yr(Uj,Xz) 2 #�:�dx(Xw,!ec,dv):�dx(Xz,!ec,dv) 2� 2( �:�ea>0 � 2<�ea>1 � 2F�Yr(Uj,Xw):�Yr(Uj,Xz) 2Z#�:�dx(Xw,!ed,dy):�dx(Xz,!ed,dy) 2x� 2� �:WV=0 2�j�:�dd(ci,cl,cm):ee=�ction_ClosestGuide(dv,dk%):ef=�ction_ClosestGuide(dy,di%):�ee<>-1 ��eg(dv,ee, �eX) 2��ef<>-1 ��eg(dy,ef, �eX) 2�� 2�rݤction_ClosestGuide(dz,eU):i=0:eh=-1:ei=8:ȕi<=255:eW%=(dz!(i*4) �&7FFFFFFF)-1:ej=�(eW%-eU):�ej<ei �eW%<>-1 � 3@eh=i:ei=ej 3T�:i+=1:�:=eh 3�R��eg(dz,ck,ek):eW%=dz!(ck*4):el%=(eW% �&80000000):eW%-=el%:em%=&80000000:�ek � 3�em%=el% �&80000000 3��:�em%<>0 �WV+=1�WV-=1 3�Ddz!(ck*4) = eW% + em%:�ction_WindowIsOpen(Uj,Xw) ��dx(Xw,ck,dz) 3�.�ction_WindowIsOpen(Uj,Xz) ��dx(Xz,ck,dz) 4� 4&0��dx(ci,ck,dz):�ction_WindowIsOpen(Uj,ci) � 4: Ȏci � 4D�Xw:en=dW* dV:de=bW/bX:a=dU 4b�Xz:en=dY* dV:de=bd/be:a=dX 4�s�:!Uj=ci:ș&400CC,,Uj:Zl=Uj!4:Zn=Uj!16:Zo=Uj!8:Zp=Uj!20:Zq=Uj!24:Zm=Uj!12:eo=Zl-Zp:ep=Zn-Zq:eU=dz!(ck*4):Ȏdz � 4�7�dv:eq=Zl:er=Zm:es=ep+((eU<<en)* de ) - 24:et=es+48 5<�dy:es=Zo:et=Zn:eq=eo+((eU<<(cz*a)) * de ) - 24:er=eq+48 5>�:ș&400D1,-1,eq,es,er,et 5R�:� 5z��Zc:eu=�ev:WV=0:�eu>0 � 5��eu=1 � 5�M!(!ew+(!ex*4) ) = !ey:�dx(Xw,!ex,!ew):�dx(Xz,!ex,!ew):!(!ew+(!ex*4) ) = 0 5�-�:�ction_WindowIsOpen(Uj,Xw) ��Yr(Uj,Xw) 5�+�ction_WindowIsOpen(Uj,Xz) ��Yr(Uj,Xz) 5�� 5��:� 6$ ��bs(ez):fU=!fV:fW=!fX:�ez � 6LyYj=�ction_Insert_HorV(dv,0):Yj=�ction_Insert_HorV(dv,fW-1):Yj=�ction_Insert_HorV(dy,0):Yj=�ction_Insert_HorV(dy,fU-1) 6t��:A%=dv:fY%=�fZ:A%=dy:fa%=�fZ:A%=dv:�fb:A%=dy:�fb:�fc:�fd:�y=0 �fY%-1:�x=0 �fa%-1:B%=((dv!(y*4)) �&7FFFFFFF)-1:A%=((dy!(x*4)) �&7FFFFFFF)-1:C%=WW:�fe:�x:�y:WX=�:�ction_WindowIsOpen(Uj,Xw) ��Yr(Uj,Xw) 7+�ction_WindowIsOpen(Uj,Xz) ��Yr(Uj,Xz) 7(� 7Ft��fc:�i=0 �fY%-1:�j=0 �fY%-1:A%=dv!(j*4+0) :ff=(A% �&7FFFFFFF):B%=dv!(j*4+4) :fg=(B% �&7FFFFFFF):�ff<fg �ȔA%,B% 7��dv!(j*4+0) = A%:dv!(j*4+4) = B%:�j:�i:�i=fa%-2 �0�-1:�j=fa%-2 �0�-1:A%=dy!(j*4+0) :ff=(A% �&7FFFFFFF):B%=dy!(j*4+4) :fg=(B% �&7FFFFFFF):�ff>fg �ȔA%,B% 7�+dy!(j*4+0) = A%:dy!(j*4+4) = B%:�j:�i:� 86��Ya(ci,cl,cm,ek,eX):�eX � 8Tfh=�fi:WV=0:�fh>0 � 8r�fh=1 � 8|�fj(Xw,!fk):�fj(Xz,!fk) 8��:�Yr(Uj,Xw):�Yr(Uj,Xz) 8�� 8�� 8�(�:�dd(ci,cl,cm):A%=di%:B%=dk%:Ȏci � 9�Xw:C%=0 9�Xz:C%=8 9&�:fl=�fm:�fl<>-1 � 9N/A%=fn!(fl*24+16):�ek �A%=(A% �2)�A%=(A% �2) 9b�(A% �2)<>0 �WV+=1�WV-=1 9l,fn!(fl*24+16) = A%:�fj(Xw,fl):�fj(Xz,fl) 9��:� 9�-��fj(ci,fl):�ction_WindowIsOpen(Uj,ci) � 9� Ȏci � 9�$�Xw:en=dW* dV:de=bW/bX:fo=0:a=dU :$�Xz:en=dY* dV:de=bd/be:fo=8:a=dX :*��:!Uj=ci:ș&400CC,,Uj:Zl=Uj!4:Zn=Uj!16:Zo=Uj!8:Zp=Uj!20:Zq=Uj!24:Zm=Uj!12:eo=Zl-Zp:ep=Zn-Zq:fp=fn!(fl*24+fo ):fq=fn!(fl*24+fo+4):eq=eo+((fp<<(cz*a)) * de ) - 8:es=ep+((fq<<en)* de ) - 8:er=eq+16:et=es+16:ș&400D1,-1,eq,es,er,et :��:� :����ZU(ci,cl,cm):dm=ci:dn=cl:do=cm:co=cl:cp=cm:Uj!0=ci:Uj!4=7:Uj!8=cl:Uj!12=cm:Uj!16=cl:Uj!20=cm:Uj!24=ci:ș&400CC,,Uj+24:cq=Uj!28:cr=Uj!36:cs=Uj!40:ct=Uj!32:Uj!24=cq:Uj!28=ct:Uj!32=cr:Uj!36=cs:ș&400D0,,Uj:�WX ��dp��dq ;�� ;���Zx:�WX ��dp��dq ;�T�dd(dm,dn,do):fr=di%:fs=dk%:�dd(dm,co,cp):ft=di%:fu=dk%:A%=ft-fr:B%=fu-fs:Ȏdm � <