Home » Archimedes archive » Archimedes World » AW-1995-02-Disc1.adf » Disk1Feb95 » !AWFeb95/Goodies/BasicComp/v1_24/fe/!RunImage
!AWFeb95/Goodies/BasicComp/v1_24/fe/!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-02-Disc1.adf » Disk1Feb95 |
Filename: | !AWFeb95/Goodies/BasicComp/v1_24/fe/!RunImage |
Read OK: | ✔ |
File size: | 7F3F bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
1REM><In$Dir>.!RunImage 2REMProduced by BasCompress v1.30 (09 Sep 1992) 3ONERRORPROCO 4PROCKy(20,12):Ly%=-2:Py%=FALSE:Ny%=Py%:PROCF("<BasicV$Lib>.CAsm",1):PROCF("<BasicV$Lib>.Template",1):X_%=Py%:PROChy("stdio, stdlib, string, message, wimp"):PROCFy(2000,FALSE,FALSE):PROCF("<BasicV$Lib>.FileType",1):PROCF("<BasicV$Lib>.IntMath",4):PROCF("<BasicV$Lib>.ModeInfo",1) 5PROCF("<BasicV$Lib>.Wimp",20):m%=TRUE:b%=FNg("<BasCompressFE$Dir>",-1,C_%):IFC_%>0THEN 6ERROR!b%,"BasCompressFE can't load its' message file: "+FNN(b%+4) 7ENDIF:ay%=3:`%=23:Uu%=8:R%=4:zJ%=0:Oy%=1:MJ%=3:Ry%=4:Fu%=6:Ky%=7:zu%=9:py%=10:VJ%=0:FJ%=1:d_%=2:E_%=3:Au%=4:a_%=5:t_%=6:XJ%=7:iJ%=0:w_%=1:L_%=2:uJ%=3:yJ%=4:Ju%=0:n_%=1:OJ%=2:HJ%=3:BJ%=4:GJ%=5:Mu%=6:G_%=0:Gu%=1:Zu%=2:LJ%=3:ZJ%=4:kJ%=5:ku%=0:QJ%=1:b_%=2 8EJ%=3:DJ%=4:tJ%=5:eJ%=6:j_%=0:PJ%=1:fJ%=2:`J%=0:Cu%=1:gJ%=2:dJ%=3:SJ%=4:NJ%=5:RJ%=6:nJ%=0:g_%=1:hJ%=2:h_%=0:CJ%=1:jJ%=2:V=0:K=1:qy=2:Ey=3:zy=4:Ty=4:S=8:J=-1:Y=0:Ky=1:dy=2:P=1:Q=2:W=3:Ny=4:y=0:Ly=11:Hy=22:b$="":c$="":iy%=0:yy%=0:DIMM%(R%):DIMS%(R%) 9DIMZ%(R%):by%=-1:fy%=-1:z$="":Z=P:s_%=-1:R=y:PROCuy("BasCompressFE",1,24,1,10,1992):Ny%=Py%:PROCSy:PROCK:IFFNx(X%) 10ONERRORPROCO 11PROCJy:REPEAT:PROCB_:UNTILFALSE:END 12DEFPROCa:LOCALmy,n:IFC%AND2THEN 13S%=P%:YJ%=C%:O%=P%:P%=0:C%=C%OR4:[OPTC%:ALIGN:]:P%=S%:C%=YJ% 14ENDIF:[OPTC%:ALIGN:.B:.Jy DCD0:._ DCD0:.h DCD0:.C DCD0:DCD0:.m DCD0:DCD0:.x DCD0:.o DCD0:.p DCD0:.i DCD0:.l DCD0:DCD0:DCD0:DCD0:DCD0:DCD0:.Fy DCD0:DCD0:.` DCD0:.w DCD0:.t DCD0:.j DCD0:.b DCD0:.Wy DCD0:.Cy DCD0:.Zy DCD0:.My DCD0:.q DCD0:.z DCD0:DCD0:DCD0 15DCD0:DCD0:DCD0:.g DCD0:.Py DCD0:DCD0:.f DCD0:.Gy DCD0:.k DCD0:.Ay DCD0:.c DCD0:.By DCD0:.L:ALIGN:.my:EQUS"[0,w>,m>,m>,m>,m>,m>,dm>,>":DCB0:EQUS"[100,<t>,<t>,<t>,<t>,<s<t>,d<s<t>,<t>":DCB0:EQUS"[200,w>,<t>,<t>,m>,m>,<tm>":DCB0 16EQUS"[300,<t>,<t>,<t>,<t>,<t>,<t>":DCB0:EQUS"[400,<t>,<t>":DCB0:EQUS"[250,i4":DCB0:EQUS"[500,w>,<t>,<t>,<t>,<t>,<t>,<t>":DCB0:EQUS"[600,<t>,<t>,i256":DCB0:EQUS"[700,w>,m>,m>,w>,<t>":DCB0:EQUS"[800,m>,m>,w>":DCB0:EQUS"<t[900,>,>,>,>,>":DCB0 17EQUS"[300,<t>,<t>,<t>,<t>,<t>,<t>":DCB0:EQUS"[1000,m>,m>,w>":DCB0:EQUS"<t[900,>,>,>,>,>":DCB0:EQUS"[400,<t>,<t>":DCB0:EQUS"[1100,>,d>,<t>,<t>,<t>,<t>,<t>":DCB0:ALIGN:.n DCD0:DCD0:DCD0:ALIGN:.jy:FNP:STMFD(A)!,{4-9,M}:SUB A,A,#L-B:MOV2,#L-B:ADR1,B 18MOV0,A:BL ky:ADR1,n+4:ADR0,my:BL ry:STRvc0,n:ADRvc0,n:ADD A,A,#L-B:LDMFD(A)!,{4-9,pc}:]:PROCoy:ENDPROC 19DEFPROCt:ENDPROC 20DEFPROCiy:I%=FNV("Order",s%):X%=FNG("Control",0,+1):q%=FNV("SaveAs",+1):PROCwy:ENDPROC 21DEFPROCpy(U%,D%,V%,F%):IF(V%AND1)THEN 22IFNOTFNM(z$)THEN 23U%=FNO(z$) 24ENDIF 25ELSE:PROCD_(X%,-1) 26ENDIF:ENDPROC 27DEFPROCey:CASE!W%OF 28OTHERWISE:SYS&400c5,,W% 29ENDCASE:ENDPROC 30DEFPROCzy:SYS&400c6,,W%:ENDPROC 31DEFPROCU_:LOCALK_%:LOCALERROR:ONERRORLOCALRESTOREERROR:SYS&606c1:PROCx 32SYS&606c0:SYS&400c8,,W%TOK_%:WHILEK_%:SYS&81681,,W%:SYS&400ca,,W%TOK_%:ENDWHILE:SYS&606c1:ENDPROC 33DEFPROCM_:LOCALT%,F%,d%:T%=W%!0:F%=W%!4:d%=W%!24:CASET%OF 34WHENq%:PROCky(F%,d%) 35WHENX%:PROC`(F%,d%) 36OTHERWISE:SYS&400dc,d% 37ENDCASE:ENDPROC 38DEFPROCh:PROCS:ENDPROC 39DEFPROCHy:LOCALF$,T%,F%,A%,Z%,u%:F$="":T%=W%!32:F%=W%!36:CASET%OF 40WHEN-2:F$="IconBar" 41WHENo%:F$="ProgInfo" 42WHENI%:F$="Order":IFFNz(F%)THEN 43PROCy(F%,Z%,u%):IFu%=STHEN 44F$+=",R" 45ELSE:F$+=","+CHR$(ASC("A")+u%) 46ENDIF 47ELSE:F$+=",_" 48ENDIF 49WHENX%:F$="Control":IFF%=-1THEN 50F$+=",_" 51ELSE:F$+=","+STR$(F%) 52ENDIF 53WHENq%:PROCj("SaveAsType",Z):F$="SaveAs" 54ENDCASE:IFF$<>""THEN 55PROCi("H"+F$,W%+20):IFW%?20THEN 56W%!16=1283:W%!12=W%!8:A%=W%+20:WHILE?A%:A%+=1:ENDWHILE:IFA%>=(W%+256)THENA%=W%+255:?A%=0 57W%!0=(A%-W%+4)AND-4:SYS&400e7,17,W%,W%!4 58ENDIF 59ENDIF:ENDPROC 60DEFPROCg:PROCdy(-1):ENDPROC 61DEFPROCS_:ENDPROC 62DEFPROCS:ONERRORPRINT"Error in error handler: ";REPORT$:END 63PROCCy:CALLv:IFm%THEN 64SYS&a1683,Qy% 65ENDIF:SYS&400dd:END:ENDPROC 66DEFPROCTy:LOCALU%,D%,V%,Q%,F%,n%,u%:U%=W%!0:D%=W%!4:V%=W%!8:Q%=W%!12:F%=W%!16:CASEV%OF 67WHEN2:CASEQ%OF 68WHEN-2:PROCD:D%=96+(44*mJ%)+(24*aJ%):SYS&400d4,,sy%,U%-64,D% 69WHENX%:PROCD:SYS&400d4,,sy%,U%-64,D% 70ENDCASE 71WHEN1*16,4*16:CASEQ%OF 72WHENX%:CASEF%OF 73WHENMJ%:Z=P:PROCR(Q%,F%,V%,"FileName_Control") 74WHENFu%:Z=Q:PROCR(Q%,F%,V%,"FileName_Control") 75WHENzJ%:Z=W:PROCR(Q%,F%,V%,"FileName_Control") 76ENDCASE 77WHENq%:CASEF%OF 78WHEN1:PROCR(Q%,F%,V%,"FileName_SaveAs") 79ENDCASE 80ENDCASE 81OTHERWISE:CASEQ%OF 82WHEN-2:PROCpy(U%,D%,V%,F%) 83WHENe_%:PROCQ_(U%,D%,V%,F%) 84WHENq%:PROCZ_(U%,D%,V%,F%) 85WHENo%:PROCMy(U%,D%,V%,F%) 86WHENI%:PROCV_(U%,D%,V%,F%) 87WHENX%:PROCqy(U%,D%,V%,F%) 88ENDCASE 89ENDCASE:ENDPROC 90DEFPROCMy(U%,D%,V%,F%):CASEF%OF 91WHEN14,15:PROCM(Fy%,FN_(0)):IFV%<>1THEN 92PROCQ 93ENDIF 94ENDCASE:ENDPROC 95DEFPROC`y:By%=FALSE:_y%=&1040a31+0:ENDPROC 96DEFPROCD:LOCALA%:mJ%=8:aJ%=1:A%=USR(jy):sy%=!A%:yy%=A%!4:iy%=A%!8:$yy%=STR$(a):$iy%=D$:By%=_y%:ENDPROC 97DEFPROCay:LOCALU%,D%,ly%,r%,e%,x%:U%=W%!24:D%=W%!28:ly%=W%!32:r%=W%!36:e%=W%!40:x%=p%:CASEBy%OF 98WHEN_y%:CASEly%OF 99WHENVJ%:SYS&400e8,,o%,U%,D% 100WHENd_%:CASEr%OF 101WHENG_%:Z=W:PROCI:SYS&400e8,,q%,U%,D% 102OTHERWISE:PROCM(x%,"Unexpected MenuWarning Message") 103ENDCASE 104WHENE_%:CASEr%OF 105WHENG_%:Z=P:PROCI:SYS&400e8,,q%,U%,D% 106OTHERWISE:PROCM(x%,"Unexpected MenuWarning Message") 107ENDCASE 108WHENa_%:CASEr%OF 109WHENiJ%:Z=Q:PROCI:SYS&400e8,,q%,U%,D% 110WHENw_%:CASEe%OF 111WHENhJ%:R=Ly:PROC_(S%()):SYS&400e8,,I%,U%,D% 112OTHERWISE:PROCM(x%,"Unexpected MenuWarning Message") 113ENDCASE 114WHENL_%:CASEe%OF 115WHENjJ%:R=Hy:PROC_(M%()):SYS&400e8,,I%,U%,D% 116OTHERWISE:PROCM(x%,"Unexpected MenuWarning Message") 117ENDCASE 118WHENuJ%:R=y:PROC_(Z%()):SYS&400e8,,I%,U%,D% 119OTHERWISE:PROCM(x%,"Unexpected MenuWarning Message") 120ENDCASE 121OTHERWISE:PROCM(x%,"Unexpected MenuWarning Message") 122ENDCASE 123OTHERWISE:PROCM(x%,"Unexpected MenuWarning Message") 124ENDCASE:ENDPROC 125DEFPROCC_:LOCALly%,M%,o_%,p_%,rJ%,r%,A%,e%:LOCALj%:M%=FNA(512):SYS&400cf,,M%:o_%=M%!0:p_%=M%!4:rJ%=M%!8:PROCC(M%,512):ly%=!W%:r%=W%!4:e%=W%!8:j%=W%!12:CASEBy%OF 126WHEN_y%:CASEly%OF 127WHENFJ%:CASEr%OF 128WHENJu%:PROCZ(Jy) 129WHENn_%:PROCZ(_) 130WHENOJ%:PROCZ(h) 131WHENHJ%:PROCZ(C):PROCZ(C+4):PROCZ(C+12) 132WHENBJ%:PROCZ(m) 133WHENGJ%:PROCZ(x) 134WHENMu%:PROCZ(o) 135ENDCASE 136WHENd_%:CASEr%OF 137WHENGu%:PROCZ(p) 138WHENZu%:PROCZ(i) 139WHENLJ%:IFe%<>-1THEN 140PROCZ(l+(e%<<2)) 141ENDIF 142WHENZJ%:IFe%<>-1THEN 143PROCZ(Fy+(e%<<2)) 144ENDIF 145WHENkJ%:CASEe%OF 146WHEN-1:PROCZ(`) 147WHEN0:a=VAL($yy%) 148ENDCASE 149ENDCASE 150WHENE_%:CASEr%OF 151WHENQJ%:PROCZ(w) 152WHENb_%:PROCZ(t) 153WHENEJ%:PROCZ(j) 154WHENDJ%:PROCZ(b) 155WHENtJ%:PROCZ(Wy) 156WHENeJ%:PROCZ(Cy) 157ENDCASE 158WHENAu%:CASEr%OF 159WHENfJ%:PROCd($iy%) 160WHENj_%:PROCZ(Zy) 161WHENPJ%:PROCZ(My) 162ENDCASE 163WHENa_%:CASEr%OF 164WHENw_%:CASEe%OF 165WHENnJ%:IFj%<>-1THEN 166!q=j% 167ENDIF 168WHENg_%:IFj%<>-1THEN 169PROCZ(z+(j%<<2)) 170ENDIF 171ENDCASE 172WHENL_%:CASEe%OF 173WHENh_%:IFj%<>-1THEN 174!g=j% 175ENDIF 176WHENCJ%:IFj%<>-1THEN 177PROCZ(Py+(j%<<2)) 178ENDIF 179ENDCASE 180WHENyJ%:PROCZ(f) 181ENDCASE 182WHENt_%:CASEr%OF 183WHEN`J%:PROCA_ 184WHENCu%:PROCgy 185WHENgJ%:PROCZ(Gy) 186WHENdJ%:PROCZ(k) 187WHENSJ%:PROCZ(Ay) 188WHENNJ%:PROCZ(c) 189WHENRJ%:PROCZ(By) 190ENDCASE 191WHENXJ%:PROCh 192ENDCASE 193ENDCASE:IFrJ%=1THEN 194CASEBy%OF 195WHEN_y%:PROCD 196ENDCASE:SYS&400d4,,sy%,o_%,p_% 197ELSE:PROCQ 198ENDIF:ENDPROC 199DEFPROCQ:SYS&400d4,,-1:By%=FALSE:ENDPROC 200DEFPROCZ(y%):!y%=(!y%=0):ENDPROC 201DEFPROCd(A$):IFA$=""THEN 202A$=c$ 203ENDIF:D$=A$:PROCN(X%,py%,D$):ENDPROC 204DEFPROCk(A$):IFA$=""THEN 205A$=E$ 206ENDIF:C$=A$:PROCN(X%,Oy%,A$):ENDPROC 207DEFPROCX_(A$):IFA$=""THEN 208A$=R$ 209ENDIF:W$=A$:PROCN(X%,Ky%,A$):ENDPROC 210DEFPROCRy(A$):IFA$=""THEN 211A$=K$ 212ENDIF:P$=A$:PROCN(X%,Ry%,A$):ENDPROC 213DEFPROCx:IFPy%THEN 214ERRORERR,REPORT$+" ["+STR$(ERL)+"]" 215ELSE:ERRORERR,REPORT$ 216ENDIF:PROCS:ENDPROC 217DEFPROCgy:PROCb:PROCK:ENDPROC 218DEFPROCSy:LOCALJ%,_$,Sl%:PROCb:D$=c$:C$=E$:W$=R$:P$=K$:J%=OPENIN("<BasCompressFE$Dir>.Choices"):IFJ%THEN 219LOCALERROR:ONERRORLOCALRESTOREERROR:CLOSE#J%:ENDPROC 220SYS12,4,J%,B,L-B:PROCz(J%,M%()):PROCz(J%,S%()):PROCz(J%,Z%()):INPUT#J%,P$:K$=P$:INPUT#J%,W$:R$=W$:INPUT#J%,C$:E$=C$:CLOSE#J%:RESTOREERROR 221ENDIF:ENDPROC 222DEFPROCz(J%,RETURNA%()):LOCALZ%:FORZ%=0TOR%-1:INPUT#J%,A%(Z%):NEXTZ%:ENDPROC 223DEFPROCA_:LOCALJ%:J%=OPENOUT("<BasCompressFE$Dir>.Choices"):IFJ%THEN 224LOCALERROR:ONERRORLOCALRESTOREERROR:CLOSE#J%:PROCx 225SYS12,2,J%,B,L-B:PROCs(J%,M%()):PROCs(J%,S%()):PROCs(J%,Z%()):PRINT#J%,FNS(P$):PRINT#J%,FNS(W$):PRINT#J%,FNS(C$):CLOSE#J%:RESTOREERROR 226ENDIF:ENDPROC 227DEFPROCs(J%,A%()):LOCALZ%:FORZ%=0TOR%-1:PRINT#J%,A%(Z%):NEXTZ%:ENDPROC 228DEFPROCb:LOCALF:!Jy=FALSE:!_=TRUE:!h=TRUE:!C=TRUE:C!4=(!C=0):C!12=(!C=0):!m=TRUE:!x=TRUE:!o=FALSE:!p=TRUE:!i=TRUE:FORF=0TO5:l!(F<<2)=TRUE:NEXTF:FORF=0TO1:Fy!(F<<2)=TRUE:NEXTF:!`=FALSE:a=16:!w=TRUE:!t=TRUE:!j=TRUE:!b=TRUE:!Wy=TRUE:!Cy=FALSE:!Zy=FALSE:!My=FALSE:!q=3:FORF=0TO5:z!(F<<2)=TRUE:NEXTF:!g=3:FORF=0TO1:Py!(F<<2)=TRUE:NEXTF:!f=FALSE:!Gy=FALSE:!k=TRUE:!Ay=TRUE 229!c=FALSE:!By=FALSE:M%()=J:S%()=J:Z%()=J:M%()=V,K:S%()=V,K:Z%()=V,K,Ey:K$="Log":E$="Output":R$="XRef":ENDPROC 230DEFPROCK:PROCV(X%,py%,D$,c$):PROCV(X%,Ry%,P$,K$):PROCV(X%,Ky%,W$,R$):PROCV(X%,Oy%,C$,E$):ENDPROC 231DEFPROCqy(U%,D%,V%,F%):ENDPROC 232DEFPROC`(F%,d%):CASEd%OF 233WHEN13,398,399:CASEF%OF 234WHENRy%:Z=P 235WHENKy%:Z=Q 236WHENOy%:Z=W 237WHENpy%:Z=Ny 238ENDCASE:PROCT(FNF(X%,F%)):IFd%=398THENPROCjy(X%,F%) 239IFd%=399THENPROCsy(X%,F%) 240IFd%=13THENPROCcy 241WHEN27:PROCK 242OTHERWISE:SYS&400dc,d% 243ENDCASE:ENDPROC 244DEFPROC_(A%()):LOCALZ%,n%,G%:IFFNa("Order",I%)THEN 245ELSE:Z%=0:WHILEZ%<R%ANDA%(Z%)<>J:n%=A%(Z%)AND(NOTS):FORG%=0TOTy:PROCB(I%,FNC(G%,Z%),n%=G%):NEXTG%:PROCB(I%,`%+Z%,A%(Z%)ANDS):Z%+=1:ENDWHILE:WHILEZ%<R%:FORG%=0TOTy:PROCB(I%,FNC(G%,Z%),FALSE):NEXTG%:PROCB(I%,`%+Z%,FALSE):Z%+=1:ENDWHILE 246ENDIF:ENDPROC 247DEFPROCV_(U%,D%,V%,F%):CASEROF 248WHENy:PROCe(Z%(),V%,F%) 249WHENHy:PROCe(M%(),V%,F%) 250WHENLy:PROCe(S%(),V%,F%) 251ENDCASE:ENDPROC 252DEFPROCe(RETURNA%(),V%,F%):LOCALZ%,G%,u%,Y%,n%:IFFNz(F%)THEN 253PROCy(F%,Z%,u%):n%=NOTS:IF(A%(Z%)ANDn%)=u%THEN 254IFFNf(I%,F%)=FALSETHEN 255PROCo(A%(),Z%) 256ENDIF 257ELSE:IFu%=STHEN 258IFA%(Z%)=JTHEN 259PROCB(I%,F%,FALSE) 260ELSE:A%(Z%)=A%(Z%)EORS:PROCv(A%(),Z%) 261ENDIF 262ELSE:IFA%(Z%)=JTHEN 263A%(Z%)=u% 264ELSE:A%(Z%)=(A%(Z%)ANDS)ORu% 265ENDIF:PROCv(A%(),Z%):G%=0:Y%=FALSE:REPEAT:IFG%<>Z%THEN 266Y%=((A%(G%)ANDn%)=u%):IFY%THEN 267PROCGy(A%(),Z%) 268ENDIF 269ENDIF:G%+=1:UNTILY%ORG%>=R% 270ENDIF 271ENDIF 272ENDIF:ENDPROC 273DEFPROCv(RETURNA%(),RETURNZ%):LOCALY%:Y%=(Z%<=0):WHILENOTY%:Y%=(A%(Z%-1)<>J):IFNOTY%THEN 274Z%-=1:PROCo(A%(),Z%):Y%=(Z%<=0) 275ENDIF:ENDWHILE:ENDPROC 276DEFPROCo(RETURNA%(),Z%):LOCALG%,Y%,A_%:G%=Z%:REPEAT:A%(G%)=J:PROCB(I%,`%+G%,FALSE):G%+=1:Y%=(G%>=R%):IFNOTY%THEN 277Y%=(A%(G%)=J):IFNOTY%THEN 278A%(G%-1)=A%(G%):PROCB(I%,FNC(A%(G%),G%-1),TRUE):PROCB(I%,FNC(A%(G%),G%),FALSE):A_%=A%(G%)ANDS:PROCB(I%,`%+G%-1,A_%) 279ENDIF 280ENDIF:UNTILY%:ENDPROC 281DEFPROCGy(RETURNA%(),G%):LOCALZ%,Y%:Z%=0:Y%=FALSE:WHILEFNu(A%(),Z%):Z%+=1:ENDWHILE:PROCB(I%,FNC(A%(G%),G%),FALSE):A%(G%)=Z%OR(A%(G%)ANDS):PROCB(I%,FNC(A%(G%),G%),TRUE):ENDPROC 282DEFFNu(A%(),Z%):LOCALZ_%,G%:G%=0:Z_%=FALSE:WHILEG%<R%AND(NOTZ_%):Z_%=((A%(G%)AND(NOTS))=Z%):G%+=1:ENDWHILE:=Z_% 283DEFFNz(F%):=(F%>=ay%)AND(F%<(`%+R%)) 284DEFPROCy(F%,RETURNu_%,RETURND_%):IFF%>=`%THEN 285D_%=S 286ELSE:D_%=(F%-ay%)DIVR% 287ENDIF:u_%=(F%-ay%)MODR%:ENDPROC 288DEFFNC(D_%,u_%):=(((D_%AND(NOTS))*R%)+ay%)+u_% 289DEFPROCky(F%,d%):CASEd%OF 290WHEN13,398:PROCT(FNF(q%,2)):PROCQ 291WHEN27:PROCQ 292OTHERWISE:SYS&400dc,d% 293ENDCASE:ENDPROC 294DEFPROCZ_(U%,D%,V%,F%):CASEF%OF 295WHEN0:PROCT(FNF(q%,2)):IFV%AND1THEN 296PROCD:SYS&400d4,,sy% 297ELSE:PROCQ 298ENDIF 299ENDCASE:ENDPROC 300DEFPROCI:IFFNa("SaveAs",q%)THEN 301ELSE:PROCN(q%,2,FNY):IFZ=WTHEN 302PROCp(q%,1,"file_"+STR$~(r)) 303ELSE:PROCp(q%,1,"file_"+STR$~(I)) 304ENDIF 305ENDIF:ENDPROC 306DEFFNY:LOCALM$:CASEZOF 307WHENP:M$=P$ 308WHENQ:M$=W$ 309WHENW:M$=C$ 310WHENNy:M$=D$ 311ENDCASE:=M$ 312DEFPROCV(Q%,Z%,M$,p$):IFM$=""THENM$=p$ 313PROCN(Q%,Z%,M$):ENDPROC 314DEFFN_Dragged_FileName_Control:CASEZOF 315WHENP:PROCL(FNF(X%,Ry%)) 316WHENQ:PROCL(FNF(X%,Ky%)) 317WHENW:PROCL(FNF(X%,Oy%)) 318ENDCASE:=0 319DEFFN_Dragged_FileName_SaveAs:PROCL(FNF(q%,2)):=0 320DEFPROCL(S$):LOCALQ%,Z%,M%,U%,D%:M%=FNA(320):SYS&400cf,,M%:Q%=M%!12:Z%=M%!16:IF(Q%<>-2)AND(Q%<>X%)THEN 321IFS$=""THEN 322CASEZOF 323WHENP:S$=K$ 324WHENQ:S$=R$ 325WHENW:S$=E$ 326ENDCASE 327ELSE:S$=FNS(S$) 328ENDIF:U%=!M%:D%=M%!4:!M%=(LEN(S$)+48)AND-4:M%!12=0:M%!16=1:M%!20=Q%:M%!24=Z%:M%!28=U%:M%!32=D%:M%!36=-1:M%!40=I:$(M%+44)=S$+CHR$(0):SYS&400e7,17,M%,Q%,Z%:s_%=M%!8 329ENDIF:PROCC(M%,320):ENDPROC 330DEFPROCT(S$):IFS$<>FNYTHEN 331CASEZOF 332WHENP:PROCRy(S$) 333WHENQ:PROCX_(S$) 334WHENW:PROCk(S$) 335WHENNy:PROCd(S$) 336ENDCASE 337ENDIF:PROCI:PROCK:ENDPROC 338DEFPROCly:CASEW%!12OF 339WHEN0:CASEW%!8OF 340WHENby%:SYS&400de,"/"+P$:by%=-1 341WHENfy%:SYS&400de,"/"+W$:fy%=-1 342ENDCASE 343ENDCASE:ENDPROC 344DEFPROCyy:LOCALF_%,`$,T%,F%,U%,D%:`$=FNB(W%+44):F_%=W%!40:T%=W%!20:F%=W%!24:U%=W%!28:D%=W%!32:CASEF_%OF 345WHENr:PROCOy 346ENDCASE:ENDPROC 347DEFPROCL_:LOCALF_%,e$,T%,F%,U%,D%:T%=W%!20:F%=W%!24:U%=W%!28:D%=W%!32:F_%=W%!40:e$=FNN(W%+44):CASEF_%OF 348WHENr:U%=FNO(e$) 349WHENI:IFNOTFNM(e$)THEN 350PROCd(e$) 351ENDIF 352OTHERWISE:PROCM(Fy%,FN_(1)) 353ENDCASE:ENDPROC 354DEFPROCW_:LOCALS$,ny%:IF(W%!12)<>s_%THEN 355PROCJ(10) 356ELSE:ny%=TRUE:S$=FNB(W%+44):CASEW%!40OF 357WHENI:PROCT(S$):ny%=FALSE 358OTHERWISE:PROCJ(10):ny%=FALSE 359ENDCASE:IFny%THEN 360W%!12=ky%:W%!16=3:SYS&400e7,18,W%,W%!20,W%!24:oJ%=W%!8 361ENDIF 362ENDIF:ENDPROC 363DEFPROCQy:ENDPROC 364DEFPROCBy:ENDPROC 365DEFFNE(J$):LOCALZ%,S%:IFJ$<>""THEN 366FORZ%=1TOLEN(J$):S%=INSTR("ABCDEFGHIJKLMNOPQRSTUVWXYZ",MID$(J$,Z%,1)):IFS%>0THENMID$(J$,Z%,1)=CHR$(S%+ASC("a")-1) 367NEXTZ% 368ENDIF:=J$ 369DEFFNM(M$):=(FNS(M$)="")OR(FNE(M$)=b$)OR(INSTR(M$,".")<1) 370DEFFNO(L$):LOCALZ$,Z%:IF!ByAND(NOTFNM(C$))THEN 371Z%=INSTR(L$,"."):IFZ%>0THEN 372Z$=LEFT$(C$,LEN(C$)-LEN(FNS(C$)))+FNS(L$):PROCk(Z$) 373ENDIF 374ENDIF:z$=L$:Z$="":IF!Jy<>0THENZ$+=" -MultiDEF" 375IF!_<>0THENZ$+=" -WEndRtn" 376IF!h<>0THENZ$+=" -Number" 377IF!C=0THENZ$+=" -SWI" 378IF!m=0THENZ$+=" -SWIBad" 379IF!x=0THENZ$+=" -SWIExist" 380IF!o<>0THENZ$+=" -Library" 381IF!i=0THENZ$+=" -Unused" 382IFNOTFNM(C$)THEN 383IF!p=0THENZ$+=" -Single" 384Z$+=" -ReduceVar "+FNq(l):Z$+=" -ReduceRtn "+FNL(Fy):IF!`<>0THENZ$+=" -ListOut "+STR$(a) 385ENDIF:IFNOTFNM(P$)THEN 386IF!w=0THENZ$+=" -Stats" 387IF!t=0THENZ$+=" -EVAL" 388IF!j=0THENZ$+=" -DATA" 389IF!b=0THENZ$+=" -READ" 390IF!Wy=0THENZ$+=" -GOTO" 391IF!Cy<>0THENZ$+=" -List" 392ENDIF:IFNOTFNM(D$)THEN 393IF!Zy<>0THENZ$+=" -UnusedS" 394IF!My<>0THENZ$+=" -WSpLabel" 395ENDIF:IFFNM(W$)THEN 396Z$+=" -XRef 0" 397ELSE:Z$+=" -XVar "+STR$(!q):Z$+=" -XIncVar "+FNq(z):Z$+=" -XRtn "+STR$(!g):Z$+=" -XIncRtn "+FNL(Py):Z$+=" -SRef "+FND(Z%()):Z$+=" -SVar "+FND(S%()):Z$+=" -SRtn "+FND(M%()):IF!f=0THENZ$+=" -Deleted" 398ENDIF:PROCq("BasCompress$Options",Z$):PROCE("BasCompress$Special",D$):PROCE("BasCompress$XRef",W$):PROCE("BasCompress$Out",C$):PROCE("BasCompress$Log",P$):IF!cTHEN 399PROCq("Main",L$):L$="<Main>" 400ENDIF:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCU(Y):PROCx 401IFFNM(P$)THEN 402PROCU(dy):SYS&400de,"BasCompress "+L$+" { > null: }" 403ELSE:PROCU(Ky):SYS&400de,"BasCompress "+L$ 404ENDIF:RESTOREERROR:PROCU(Y):IF((!k)<>0)AND(NOTFNM(P$))THEN 405PROCn(by%,P$) 406ENDIF:IF((!Ay)<>0)AND(NOTFNM(W$))THEN 407PROCn(fy%,W$) 408ENDIF:IF((!Gy)<>0)AND(NOTFNM(C$))THEN 409SYS&400de,C$ 410ENDIF:=0 411DEFPROCn(RETURNOu%,_$):LOCALS%,Zy%,vJ%,Pl%:SYS8,5,_$TOvJ%,,Zy%,,a%:IFvJ%<>0THEN 412S%=FNA(256):S%!20=-1:S%!28=0:S%!32=0:S%!36=a%:S%!40=(Zy%AND&fff00)>>8:PROCH(S%+44,_$):S%!0=(LEN(_$)+1+3+44)AND(NOT3):S%!12=0:S%!16=5:SYS&400e7,18,S%,0:Ou%=S%!8:PROCC(S%,256) 413ENDIF:ENDPROC 414DEFPROCq(v$,d$):LOCALS%:S%=FNA(512):PROCH(S%,v$):PROCH(S%+256,d$):SYS36,S%,S%+256,LEN(d$),0,0:PROCC(S%,512):ENDPROC 415DEFPROCE(v$,d$):IFFNM(d$)THEN 416SYS&20024,v$,0,-1,0,2 417ELSE:PROCq(v$,d$) 418ENDIF:ENDPROC 419DEFFND(A%()):LOCALZ%,G%,A$,J$:A$="":Z%=0:G%=TRUE:WHILEG%ANDZ%<R%:CASEA%(Z%)AND(NOTS)OF 420WHENV:J$="N" 421WHENzy:J$="D" 422WHENqy:J$="U" 423WHENK:J$="T" 424WHENEy:J$="P" 425OTHERWISEG%=FALSE 426ENDCASE:IFG%THEN 427IFA%(Z%)ANDSTHEN 428A$+=FNE(J$) 429ELSE:A$+=J$ 430ENDIF:Z%+=1 431ENDIF:ENDWHILE:IFLEN(A$)=0THENA$="""""" 432=A$ 433DEFFNq(U):LOCALA$:A$="":IFU!0THENA$+="i" 434IFU!4THENA$+="r" 435IFU!8THENA$+="s" 436IFU!12THENA$+="I" 437IFU!16THENA$+="R" 438IFU!20THENA$+="S" 439IFLEN(A$)=0THENA$="""""" 440=A$ 441DEFFNL(U):LOCALA$:A$="":IFU!0THENA$+="p" 442IFU!4THENA$+="f" 443IFLEN(A$)=0THENA$="""""" 444=A$ 15481DEFFNU=13 15482DEFPROCKy(m_%,bu%):LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%LibHandler: hard_initialise") 15483IFFNU<bu%THEN 15484ERROR0,"LibHandler too old" 15485ENDIF:IFm_%<1THEN 15486ERROR1,"LibHandler: bad max librarys parameter" 15487ENDIF:`y%=m_%:DIMM$(`y%-1):DIMJ%(`y%-1):O_%=0:DIMl%256:oy%=40:K%=0:Ly%=12:bJ%=FALSE:DIMA$(oy%-1):Gy%=FALSE:Ny%=FALSE:ENDPROC 15488DEFPROCF(G$,fu%):LOCALZy%,Z%,I$,t$:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.LibHandler: load_library") 15489Z%=0:Zy%=TRUE:I$=MID$(G$,1+INSTR(G$,".")):WHILEZ%<O_%ANDZy%:Zy%=(I$<>M$(Z%)):IFZy%THEN 15490Z%+=1 15491ENDIF:ENDWHILE:IFZy%THEN 15492IFZ%=`y%THEN 15493ERROR0,"LibHandler: Too many librarys to load!" 15494ENDIF:M$(Z%)=I$:t$="'"+G$+"' does not have a FN_":LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA(t$+I$+"_version") 15495J%(Z%)=EVAL("FN_"+I$+"_version"):RESTOREERROR:O_%+=1:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA(t$+"_hard_initialise_"+I$) 15496IFEVAL("FN_hard_initialise_"+I$)THEN 15497ERROR1,"Library file '"+G$+"'s hard init'ion failed" 15498ENDIF:RESTOREERROR 15499ENDIF:IFfu%>J%(Z%)THEN 15500ERROR1,"Library file '"+G$+"' too old" 15501ENDIF:ENDPROC 15502DEFPROCA(B$):IFGy%THEN 15503IFNy%THEN 15504ERRORERR,REPORT$+" ["+STR$ERL+"]." 15505ELSE:ERRORERR,REPORT$ 15506ENDIF 15507ELSE:IFNOTbJ%THEN 15508IFK%=oy%THEN 15509A(oy%-1)="Errors too deep!!!!!":PROCO 15510ENDIF:IFRIGHT$(B$,2)=": "THEN 15511B$=LEFT$(B$,LEN(B$)-2) 15512ENDIF:IFNy%THEN 15513A$(K%)=REPORT$ 15514ELSE:IFK%=0THEN 15515A$(K%)="Error `"+REPORT$+"' (line ":A$(K%)+=STR$(ERL)+") in ":A$(K%)+="`"+B$+"'" 15516ELSE:A$(K%)="`"+B$+"'" 15517ENDIF 15518ENDIF:K%+=1:ERRORERR,"" 15519ENDIF 15520ENDIF:ENDPROC 15521DEFPROCO:LOCALt%,Ay$:ONERROR:REPORT:PRINT"::"+STR$(ERL):END 15522IFGy%THEN 15523IFNy%THEN 15524PROCM(ERR,REPORT$+" ["+STR$(ERL)+"]."):PROCS:END 15525ELSE:PROCM(ERR,REPORT$):IFERR=p%THEN 15526PROCS:END 15527ENDIF 15528ENDIF 15529ELSE:IFLy%=-2THEN 15530IFK%>0THEN 15531ERROREXTERR,A$(0) 15532ELSE:ERROREXTERR,REPORT$ 15533ENDIF:END 15534ENDIF:IFLy%=-3THEN 15535$l%="TASK":SYS&400c0,200,!l%,"LibHandler"+CHR$(0):IFK%THEN 15536FORt%=0TOK%-1:IFt%<(K%-1)THEN 15537PROCw(A$(t%)+" in") 15538ELSE:PROCw(A$(t%)) 15539ENDIF:NEXTt% 15540ELSE:PROCw(REPORT$+" (line "STR$(ERL)+")") 15541ENDIF:SYS&600dd:END 15542ENDIF:IFLy%>=0THEN 15543MODELy% 15544ENDIF:PRINT"An error has occured...":PRINT:IFK%THEN 15545FORt%=0TOK%-1:COLOUR((7-(t%<<1))AND6)+1:PRINTA$(t%);:IFt%<(K%-1)THEN 15546PRINT" in "; 15547ENDIF:NEXTt% 15548ELSE:PRINTREPORT$;" (line ";STR$(ERL);")" 15549ENDIF:PRINT:COLOUR7:END 15550ENDIF:ENDPROC 15551DEFPROCw(Y$):LOCALlJ%:lJ%=20+(LEN(Y$)+5)AND-4:!l%=lJ%:l%!16=&804c0:$(l%+20)=Y$:l%?(20+LEN(Y$))=10:l%?(21+LEN(Y$))=0:SYS&600e7,17,l%,0:ENDPROC 15552DEFFN_CAsm_version=10 15553DEFFN_hard_initialise_CAsm:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.CAsm: hard_initialise") 15554PROCF("<BasicV_Assembler$Lib>.Misc",27):SYS5,"RMEnsure CAssembler 0.03 RMLoad System:Modules.CAssembler":SYS5,"If ""<CAsm$Dir>""="""" Then Set CAsm$Dir <d>.Library.CAsm":CAsmLibrary_stdlib=1:CAsmLibrary_stdio=2:CAsmLibrary_string=3:fJ=4:mi=5:qu=6:Bi=7 15555CAsmLibrary_wimp=8:M_=9:CAsmLibrary_message=10:Ki=11:ou=12:El=13:fi=14:ku=15:Di=16:A_=17:su=18:ql=19:ci=20:q_=21:j_=22:Hl=23:fl=24:p_=25:Xa=26:s=26:Au=0:Gu=1:du=2:HJ=3:E_=4:O_=5:w_=6:gi=7:py=8:Z_=9:E=10:X=11:u=12:A=13:M=14:PJ=15:ay=&6d734143:g%=0 15556Sy%=13:O=0:G=0:d=10*1024:ty=d+(1*1024):X_%=TRUE:vy=FALSE:=0 15557DEFPROChy(Q$):LOCALS%,h%,E%,L%,O%,P%,C%,G$:LOCALERROR:ONERRORLOCALRESTOREERROR:SYS&400ec,Vy%,-1:PROCA("%.CAsm: ClaimCAsmLibrary") 15558Vy%=HIMEM-32768:SYS&400ec,Vy%+32768,-1TOL%:L%+=32768:O%=Vy%+32768:P%=0:C%=14:IFO%=L%THEN 15559ERROR1,"Not enough memory to start application" 15560ENDIF:IFg%<>0THEN 15561ERROR1,"Only one call to ClaimCAsmLibrary allowed" 15562ENDIF:DIMU_%s*8:DIMS$(s):IFFNh_DEFAULT 15563WHILEQ$<>"":G$=LEFT$(Q$,INSTR(Q$,",")-1):LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("Attempted to claim the non-existent library: `"+G$+"'!") 15564h%=EVAL("CAsmLibrary_"+G$):RESTOREERROR:E%=U_%:S%=E%+(g%*8):WHILES%>E%:IF!E%=h%THEN 15565E%=S%+1 15566ELSE:E%+=8 15567ENDIF:ENDWHILE:IFE%=S%THEN 15568IFg%>=sTHEN 15569ERROR1,"Too many librarys have been claimed!" 15570ENDIF:!S%=h%:S$(h%)=G$:g%+=1:O%=Vy%+32768:P%=0:IFFNZ("FNh_"+G$) 15571ENDIF:Q$=MID$(Q$,LEN(G$)+2):WHILEASC(Q$)=ASC(" "):Q$=MID$(Q$,2):ENDWHILE:ENDWHILE:SYS&400ec,Vy%,-1:RESTOREERROR:ENDPROC 15572DEFPROCf:LOCAL_%,S%,Z%,z%:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.CAsm: AssembleCAsmTables") 15573IFg%=0THEN 15574IFFNh_DEFAULT 15575ENDIF:z%=U_%:Z%=g%:IF(C%AND2)=0THEN 15576DIMS%g%*4:SYS79,g%,S%+&c0000000,3,,z%,8 15577ENDIF:[OPTC%:.Dy DCDay:DCDny:]:WHILEZ%>0:[OPTC%:DCD!z%:DCDz%!4:]:z%+=8:Z%-=1:ENDWHILE:[OPTC%:DCD0:]:[OPTC%:ALIGN:.e:]:S%=P%:IFFNjumpblock_DEFAULT 15578ny=(P%-S%)>>2:Z%=g%:z%=U_%:WHILEZ%>0:S%=P%:IFFNZ("FNjumpblock_"+S$(!z%)) 15579z%!4=(P%-S%)>>2:z%+=8:Z%-=1:ENDWHILE:ENDPROC 15580DEFPROCvy:LOCALSy:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.CAsm: AssembleCAsmBasic") 15581[OPTC%:ALIGN:.Vy:STMFD(A)!,{4-5,M}:BL P%+(13<<2):.Sy DCDDy-Sy:DCDe-Sy:DCDO-Sy:DCDG:DCDd:.D:DCD0:DCD0:DCD0:DCD0:LDR A,D:LDMFD(A)!,{E,X,u,M}:MOVpc,M:BIC5,M,#&fc000003:LDMIA5,{0-4}:ADD0,0,5:ADD1,1,5:ADD2,2,5:MOV5,#0:SWI &fcb80:STRvc0,D+(1<<2) 15582STRvc1,D+(3<<2):LDMFD(A)!,{4-5,pc}:.v:FNP:MOV2,M:MOV1,A:MOV0,E:SWI &fcb81:MOVvc1,#0:STRvc1,D+(3<<2):MOVpc,2:MOV13,12:]:O=P%:PROCW:PROCt:G=(G+3)AND-4:P%+=G-1:O%+=G-1:[OPTC%:DCB0:]:ENDPROC 15583DEFPROCZy:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.CAsm: AssembleCAsmApplication") 15584IFP%<>32768THENERROR1,"Expect P% to be &8000" 15585[OPTC%:ADR4,T:MOV5,#fy:SWI &fcb80:FNT("vc",2,yu):Bvc _y:SWI 43:.T:DCDDy-T:DCDe-T:DCDO-T:DCDG:DCDd:DCDty:]:ENDPROC 15586DEFFNP:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.CAsm: StartCAssemblerSession") 15587[OPTC%:STMFD(A)!,{E,X,u,M}:MOV X,pc:FNT("",M,D):STR A,[M],#4:LDMIA(M)!,{E,u,A}:AND X,X,#&fc000003:ORR M,M,X:]:=0 15588DEFFNN(A%):LOCALN$:N$="":WHILE?A%:N$+=CHR$(?A%):A%+=1:ENDWHILE:=N$ 15589DEFFNy(A%,B%):LOCALN$:N$="":WHILEB%>=0AND?A%:N$+=CHR$(?A%):A%+=1:B%-=1:ENDWHILE:=N$ 15590DEFPROCH(A%,N$):$A%=N$:A%?LEN(N$)=0:ENDPROC 15591DEFFNZ(n$):LOCALERROR:ONERRORLOCALRESTOREERROR:PROCny 15592=EVAL(n$) 15593DEFPROCny:IFX_%THEN 15594ERRORERR,REPORT$+" (evaluating `"+n$+"')" 15595ELSE:ERRORERR,REPORT$ 15596ENDIF:ENDPROC 15597DEFPROCFy(qy%,Jy%,i_%):LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.CAsm: assemble_CAsm") 15598PROCF("<BasicV$Lib>.Heap",8):PROCF("<BasicV$Lib>.Message",1):IFFNw(qy%,Jy%,i_%,0) 15599CALLVy:ONERRORCALLv:PROCO 15600ENDPROC 15601DEFPROCW:IFC%AND4THEN 15602SYS&606c4,(O%-f%)*100DIVH% 15603ELSE:SYS&606c4,(P%-f%)*100DIVH% 15604ENDIF:ENDPROC 15605DEFFNw(qy%,Jy%,i_%,Uy%):LOCALL%,O%,P%,C%,Fl%,H%:LOCALPu:LOCALOJ,sJ,DJ,zJ,YJ,UJ:LOCALgy,oy,ji:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.CAsm: assemble_CAsm_External") 15606IFUy%=0THEN 15607PROCF("<BasicV$Lib>.Heap",8):PROCF("<BasicV$Lib>.Message",1) 15608ENDIF:DIMf%qy%:Pu=A:OJ=1<<31:sJ=1<<30:DJ=1<<29:zJ=1<<28:YJ=1<<27:UJ=1<<26:gy=1<<17:oy=256:ji=oy+gy:SYS&606c0:LOCALERROR:ONERRORLOCALRESTOREERROR:SYS&606c1:PROCA("hourglass") 15609H%=qy%:L%=f%+qy%:IFJy%<>0THENJy%=4 15610FORC%=8+Jy%TO10+Jy%STEP2:IF(C%AND4)<>0THEN 15611O%=f%:IFUy%=1THEN 15612P%=32768 15613ELSE:P%=0 15614ENDIF 15615ELSE:O%=0:P%=f% 15616ENDIF:CASEUy%OF 15617WHEN1:PROCW:PROCZy:PROCW:PROCa:PROCW:PROCf:O=P%:PROCW:PROCt:G=(G+3)AND-4 15618WHEN0:PROCW:PROCa:PROCW:PROCH_:PROCW:PROCJ_:PROCW:PROCf:PROCW:PROCvy 15619WHEN2:PROCW:PROCa 15620ENDCASE:IFC%AND4THENL%=O%ELSEL%=P% 15621IF(C%AND2)=0THEN 15622SYS&dcb93,0,f%,L%-f% 15623ENDIF:H%=L%-f%:NEXTC%:SYS&606c1:IFJy%THEN 15624IFUy%=0THEN 15625Vy+=f%:v+=f% 15626ENDIF 15627ENDIF:IFvyANDUy%<>2THEN 15628IFJy%THEN 15629H%=e:IFUy%THENH%-=32768 15630ELSE:ERROR1,"CAsmTablesInBSS TRUE without offset assembly?" 15631ENDIF 15632ENDIF:IFi_%THEN 15633PRINT"Assembled to &";~H%;" = ";((H%*10+512)DIV1024)/10;"K":PRINT"Could assemble with ";qy%-H%;" less" 15634ENDIF:=H% 15635DEFFN_Template_version=3 15636DEFFN_hard_initialise_Template:LOCALc%:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.Template: hard_initialise") 15637jy%=FALSE:=0 15638DEFPROCfy:LOCALa%,c%,w%,M%,O$,z_%:O$="<"+H$+"$Dir>.Sprites":a%=FNH(O$):IFa%>0THEN 15639PROCX(s%,a%+16):s%!0=a%+16:s%!4=0:s%!8=16:s%!12=16:SYS&2002e,522,s%,O$TOc%;w%:IFFNJ(w%)THEN 15640PROCP("Reason","Sprites"):PROCc(c%):PROCJ(4):PROCS 15641ENDIF 15642ELSE:s%=0 15643ENDIF:PROCVy("Templates"):IFjy%THEN 15644IFs%>0THEN 15645PROCu("ProgInfo",s%,"ProgInfo") 15646ELSE:PROCu("ProgInfo",+1,"ProgInfo") 15647ENDIF:o%=0 15648ELSE:IFs%>0THEN 15649o%=FNG("ProgInfo",z_%,s%) 15650ELSE:o%=FNG("ProgInfo",z_%,+1) 15651ENDIF 15652ENDIF:e_%=FNG("Query",z_%,+1):PROCiy:ENDPROC 15653DEFPROCVy(A$):LOCALy_%,h%,a%,c%,w%,N%:LOCALSu%,O$,Ay%,ey%:O$="<"+H$+"$Dir>."+A$:a%=FNH(O$):IFa%<=0THEN 15654PROCP("Reason",A$):PROCP("Sys","Not found"):PROCJ(4):PROCS 15655ENDIF:PROCX(h%,a%):PROCX(Ay%,a%+N):ey%=Ay%+Iy:Su%=Ay%+N:SYS&600d9,,O$TOc%;w%:IFFNJ(w%)THEN 15656PROCP("Reason","Templates"):PROCc(c%):PROCJ(4):SYS&600da:PROCS 15657ENDIF:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCNy 15658zy%=0:REPEAT:ey%!0=ASC("*"):SYS&600db,,Su%,h%,h%+a%,-1,ey%,zy%TOc%,,y_%,,,,zy%;w%:IFFNJ(w%)THEN 15659PROCY(c%):SYS&600da:PROCS 15660ENDIF:IFzy%THEN 15661FORw%=0TO11:IFey%?w%=13THENey%?w%=0:w%=12 15662NEXTw%:Ay%!yy=y_%-h%:Ay%!by=h%:N%=FNb(Ay%):IFN%=0THEN 15663PROCJ(16):SYS&600da:PROCS 15664ENDIF:N%!H=!xy%:!xy%=N% 15665ENDIF:UNTILzy%=0:RESTOREERROR:SYS&400da:PROCr(Ay%):PROCr(h%):ENDPROC 15666DEFPROCNy:SYS&600da:PROCA("Template"):ENDPROC 15667DEFFNG(X$,du%,S_%):=FNm(X$,du%,S_%,"") 15668DEFFNm(X$,du%,S_%,B$):LOCALN%,cJ%,J%:N%=FNW(X$):IFN%=0THEN 15669PROCS 15670ENDIF:cJ%=N%+N:cJ%!64=S_%:IFB$<>""THEN 15671J%=FNZ("FN"+B$) 15672ENDIF:IFFNI(N%,J%)THEN 15673PROCS 15674ENDIF:PROCl(N%):=J% 15675DEFPROCu(X$,S_%,B$):LOCALN%,Q%:N%=FNW(X$):IFN%=0THEN 15676PROCS 15677ENDIF:Q%=N%+N:Q%!64=S_%:IFB$<>""THEN 15678Q%=FNZ("FN"+B$+"("+STR$(Q%)+")") 15679ENDIF:ENDPROC 15680DEFFNV(X$,S_%):LOCALN%,Q%:N%=FNW(X$):IFN%=0THEN 15681PROCS 15682ENDIF:Q%=N%+N:Q%!64=S_%:=0 15683DEFFNa(X$,RETURNwy%):LOCALN%,My%:My%=FALSE:IFwy%<=0THEN 15684N%=FNW(X$):IFN%THEN 15685My%=FNI(N%,wy%):IFMy%=FALSETHEN 15686PROCl(N%) 15687ENDIF 15688ELSE:My%=TRUE 15689ENDIF 15690ENDIF:=My% 15691DEFFNd(X$):LOCALN%,A$,x%:N%=!xy%:x%=FALSE:WHILEN%AND(NOTx%):x%=(FNy(N%+Iy,12)=X$):IFNOTx%THEN 15692N%=N%!H 15693ENDIF:ENDWHILE:=N% 15694DEFFNW(X$):LOCALN%:N%=FNd(X$):IFN%=0THEN 15695PROCP("Reason",X$):PROCJ(3) 15696ENDIF:=N% 15697DEFFNI(N%,RETURNwy%):SYS&600c1,,N%+NTOwy%;N%:N%=FNJ(N%):IFN%THEN 15698PROCY(wy%):wy%=0 15699ENDIF:=N% 15700DEFPROCl(N%):LOCALS%:S%=xy%:WHILE!S%<>0AND!S%<>N%:S%=!S%+H:ENDWHILE:IF!S%=N%THEN 15701!S%=N%!H:N%!H=0:PROCr(N%) 15702ENDIF:ENDPROC 15703DEFFNj(A%):=USR(xy) 15704DEFFNb(A%):A%=FNj(A%):IFA%=0THEN 15705PROCJ(16) 15706ENDIF:=A% 15707DEFPROCoy:IF(C%AND2)=0THENPROCIy("Template") 15708[OPTC%:ALIGN:.xy:FNP:B hy:]:ENDPROC 15709DEFFN_Declare_Local_Variables_Template:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("@.Template") 15710DIMxy%4:!xy%=0:P%=0:[OPTC%:.H DCD0:.lJ DCD0:.by DCD0:.yy DCD0:.Iy DCD0:DCD0:DCD0:.N:]:=0 15711DEFFNh_DEFAULT:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("@.h.DEFAULT") 15712jl=16:Wi=1<<30:Fl=0:_l=1:qJ=2:Ca=3:RJ=4:pJ=5:`i=6:NJ=7:oi=8:Ol=1<<0:fy=1<<1:hi=1<<2:=0 15713DEFFNjumpblock_DEFAULT:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("@.h.DEFAULT") 15714[OPTC%ANDSy%:.si DCDx_:.Uu DCDtl:.ZJ DCDe_:.V_ DCDMi:.s_ DCDDu:.XJ DCDcl:.cJ DCDHi:.k_ DCDSl:._y DCDul:]:=0 15715DEFFNh_stdio:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("@.h.stdio") 15716WJ=0:wi=17:kl=34:=0 15717DEFFNjumpblock_stdio:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("@.h.stdio") 15718[OPTC%ANDSy%:.el DCDiJ:.oJ DCDzl:.Q_ DCDhl:.Ma DCD`l:.F_ DCDIJ:.wu%DCDau%:.tu%DCDru%:.vu%DCDxu%:.Pi DCDol:.al DCDAi:.Ui DCDxi:.Ni DCDni:.Zl DCDLu:]:=0 15719DEFFNh_stdlib:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("@.h.stdlib") 15720=0 15721DEFFNjumpblock_stdlib:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("@.h.stdlib") 15722[OPTC%ANDSy%:.Oy DCDhu:.cy DCDJl:.Pa DCDVi:.ey DCDll:.tJ DCDh_:.D_ DCDZa:.bl DCDQl:.J_ DCDQa:.__ DCD`u:.K_ DCDxJ:.S_ DCDdJ:.a_ DCDwJ:.Tu DCDP_:.Pl DCDt_:.uu DCDXl:]:=0 15723DEFFNh_string:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("@.h.string") 15724P%=0:[OPTC%:.Fu DCB0:.c_ DCB0:.Oi DCB0:.aJ DCB0:.nu DCB0:.Ul DCB0:.Bl DCB0:]:=0 15725DEFFNjumpblock_string:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("@.h.string") 15726[OPTC%ANDSy%:.SJ DCDuJ:.bJ DCDwl:.vJ DCDb_:.Ou DCDH_:.Kl DCDru:.ky DCDFi:.ly DCDTJ:.QJ DCDml:.f_ DCDZi:.Ei DCDjJ:.ei DCDI_:.Ti DCDg_:.nJ DCDRu:.Y_ DCDCu:.C_ DCDMu:._J DCDvi:.Yi DCDmJ:.eJ DCDSu:.VJ DCDT_:.cu DCDy_:.zu DCDR_:.vu DCDri:.mu DCDTl 15727._i DCDv_:.Nl DCDBJ:.qi DCDu_:.Gi DCDrJ:.Ji DCDJu:.vl DCDyJ:.Ii DCDUa:.Gl DCD`J:.il DCDtu:.dl DCDMJ:._u DCDgu:.ju DCDn_:.au DCDd_:.Wu DCDDa:.Bu DCDFJ:.m_ DCDr_:.Ml DCDJa:.Yu DCDpu:.G_ DCDIl:]:=0 15728DEFFNh_message:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("@.h.message") 15729=0 15730DEFFNjumpblock_message:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("@.h.message") 15731[OPTC%ANDSy%:.sy DCDWa:.W_ DCD`_:.li DCDAl:.Sa DCDiu:.X_ DCDlu:]:=0 15732DEFFNh_wimp:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("@.h.wimp") 15733Nu=12:N_=0:P%=0:[OPTC%:.Qy DCB0:.Cl DCB0:.uy DCB0:.z_ DCB0:.ai DCB0:.Uy DCB0:.Na DCB0:.iy DCB0:.wy DCB0:.Qu DCB0:.Xu DCB0:.Hu DCB0:.Ga DCB0:.Vl DCB0:.i_ DCB0:.Xi DCB0:.EJ DCB0:]:P%=0:[OPTC%:.Aa DCB0:.Si DCB0:.Yy DCB0:.wu DCB0:.Eu DCB0:.Zu DCB0 15734.LJ DCB0:.ii DCB0:.CJ DCB0:.Rl DCB0:.sl DCB0:.xu DCB0:]:P%=0:[OPTC%:.Wl DCB0:.kJ DCB0:.Fa DCB0:.gJ DCB0:.Vu DCB0:]:=0 15735DEFFNjumpblock_wimp:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("@.h.wimp") 15736[OPTC%ANDSy%:.Ba DCDLl:.Iu DCDrl:.GJ DCDU_:.Ci DCDpl:.ry DCDl_:.Li DCDyl:.`y DCDhJ:.Yl DCDzi:.hy DCDo_:.KJ DCDKu:.L_ DCDgl:.bi DCDeu:.bu DCDDl:.ui DCDnl:.Ri DCDB_:.ki DCDdi:.yi DCDpi:.fu DCDAJ:]:=0 15737DEFPROCwy:LOCALTy%,A_%,U$:LOCALDATA:RESTORE+0:IFjy%THEN 15738Ty%=!(FNW("ProgInfo")+N+88+(16<<5)+20) 15739ELSE:Ty%=FNe(o%,16) 15740ENDIF:READU$:A_%=ASC(U$):U$=MID$(U$,2):WHILEU$<>"":?Ty%=ASC(U$)EORA_%:U$=MID$(U$,2):Ty%+=1:ENDWHILE:?Ty%=0 15741DATA"�����������",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 15742ENDPROC 15743DEFPROCXy:LOCALM%:Xy%=13:DIMvy%Xy%:DIMqJ%LEN (H$)+2+1:M%=FNA(512):M%!0=-1:M%!4=0:M%!8=-16:M%!12=68+(Xy%-5)*8*2:M%!16=84:M%!20=&1700312b:M%!24=vy%:$vy%="":$qJ%="S!BC":M%!28=qJ%:M%!32=Xy%:SYS&400c2,,M%TOUJ%:PROCC(M%,512):PROCU(Y):ENDPROC 15744DEFPROCU(KJ%):IFKJ%<>YTHEN 15745PROCj("IconBar",KJ%+1):$vy%=LEFT$(FNv("IconBar"),Xy%-1) 15746ELSE:$vy%=LEFT$("UnRegistered",Xy%-1) 15747ENDIF:PROCxy(-1,UJ%,0,0,0):ENDPROC 15748DEFFN_FileType_version=1 15749DEFFN_hard_initialise_FileType:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.FileType: hard_initialise_FileType") 15750I=4095:JJ=4093:r=4091:xl=4089:=0 15751DEFFN_IntMath_version=4 15752DEFFN_hard_initialise_IntMath=0 15753DEFFN_ModeInfo_version=5 15754DEFFN_hard_initialise_ModeInfo=0 15755DEFPROCdy(v%):SYS53,v%,1TO,,q_%:q_%+=1:SYS53,v%,2TO,,x_%:x_%+=1:SYS53,v%,3TO,,wJ%:wJ%+=1:SYS53,v%,4TO,,Wu%:SYS53,v%,5TO,,Bu%:SYS53,v%,6TO,,Qu%:SYS53,v%,7TO,,_u%:SYS53,v%,9TO,,r_%:JJ%=1<<r_%:SYS53,v%,11TO,,my%:my%+=1:SYS53,v%,12TO,,ty%:ty%+=1:Vu%=my%DIVq_%:hu%=ty%DIVx_% 15756uy%=(my%<<Wu%)-1:ry%=(ty%<<Bu%)-1:eu%=32DIVJJ%:ENDPROC 15757DEFFN_Wimp_version=27 15758DEFFN_hard_initialise_Wimp:LOCALc%:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.Wimp: hard_initialise_Wimp") 15759IFFNU<12THEN 15760ERROR1,"%.Wimp needs more recent version of the LibHandler" 15761ENDIF:SYS&400f2,0TOc%:IFc%=0THEN 15762ERROR0,"Application needs to be run from the desktop" 15763ENDIF:PROCF("<BasicV$Lib>.Heap",8):PROCF("<BasicV$Lib>.Message",3):PROCF("<BasicV$Lib>.Template",1):Gy%=FALSE:Dy%=3*1024:PROCX(dy%,Dy%):Dy%+=dy%:Cy%=dy%:PROCX(W%,512):m$="":x$="":H_%=0:H$="Application":T$="0.00 (01-Jan-1900)":Qy%=-1:p%=2400:Fy%=2401:Du%=16*1024:m%=FALSE:=0 15764DEFFNJ(Xu%):=(Xu%AND1)<>0 15765DEFPROCcy:SYS&400d2,-1,-1:ENDPROC 15766DEFFNx(T%):SYS&dcb8d,Yy,T%,-1:=TRUE 15767DEFPROCD_(Q%,qu%):LOCALS%:S%=FNA(128):!S%=Q%:SYS&400cb,,S%:S%!28=qu%:SYS&400e7,2,S%,Q%:PROCC(S%,128):ENDPROC 15768DEFPROCxy(T%,F%,IJ%,nu%,mu%):LOCALM%:M%=FNA(16):M%!0=T%:M%!4=F%:M%!8=nu%<<IJ%:M%!12=mu%<<IJ%:SYS&400cd,,M%:PROCC(M%,16):ENDPROC 15769DEFFNf(T%,F%):SYS&dcb8c,wy,T%,F%TOF%:=F% 15770DEFPROCB(T%,F%,ou%):SYS&dcb8c,iy,T%,F%,ou%:ENDPROC 15771DEFPROCp(T%,F%,y$):LOCALM%,Zl%,lu%,Al%,Cl%,`u%,pu%:M%=FNA(64):!M%=T%:M%!4=F%:SYS&400ce,,M%:IF((M%!24)AND259)<>2THEN 15772PROCG("Bad rename icon to "+y$) 15773ENDIF:SYS&400c4,,M%:$(M%+28)=y$:M%!4=T%:SYS&400c2,,M%+4:SYS&400d1,T%,M%!8,M%!12,M%!16,M%!20:PROCC(M%,64):ENDPROC 15774DEFPROCjy(Q%,Z%):SYS&dcb8c,Uy,Q%,Z%,+1:ENDPROC 15775DEFPROCsy(Q%,Z%):SYS&dcb8c,Uy,Q%,Z%,-1:ENDPROC 15776DEFPROCM(WJ%,F$):LOCALM%:M%=FNA(300):M%!0=WJ%:$(M%+4)=F$+CHR$(0):PROCY(M%):PROCC(M%,300):ENDPROC 15777DEFPROCG(F$):ERRORp%,F$:ENDPROC 15778DEFPROCJ(WJ%):LOCALM%:M%=FNA(300):M%!0=Fy%:PROCi("LE"+STR$(WJ%),M%+4):PROCY(M%):PROCC(M%,300):ENDPROC 15779DEFPROCY(Yu%):SYS&400df,Yu%,1,H$:ENDPROC 15780DEFPROCUy:LOCALM%:M%=FNA(256):M%?0=1:M%?1=0:M%?2=0:M%?3=0:M%?4=0:M%?5=uy%MOD256:M%?6=uy%DIV256:M%?7=ry%MOD256:M%?8=ry%DIV256:SYS7,21,M%:!M%=e_%:SYS&400c6,,M%:PROCC(M%,256):ENDPROC 15781DEFPROCQ_(U%,D%,V%,F%):LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.Wimp: Mouse_Click_Query") 15782PROCUy:U%=FNZ("FN_Stop_Action_"+k$+"("+STR$(F%=0)+")"):ENDPROC 15783DEFFNB(S%):LOCALf$:f$="":WHILE?S%>31:f$+=CHR$(?S%):S%+=1:ENDWHILE:=f$ 15784DEFFNS(M$):WHILEINSTR(M$,"."):M$=MID$(M$,INSTR(M$,".")+1):ENDWHILE:=M$ 15785DEFPROCN(T%,F%,J$):SYS&dcb8c,uy,T%,F%,J$:ENDPROC 15786DEFFNF(Q%,Z%):SYS&dcb8c,Qy,Q%,Z%TOQ%:=FNB(Q%) 15787DEFFNe(Q%,Z%):SYS&dcb8c,Qy,Q%,Z%TOQ%:=Q% 15788DEFFNH(S$):LOCALc%,a%,w%:SYS&20008,17,S$TOc%,,,,a%;w%:IFFNJ(w%)THEN 15789PROCP("Reason",FNS(S$)):PROCc(c%):PROCG(FNR(4)) 15790ENDIF:IFc%<>1THEN 15791a%=-1 15792ENDIF:=a% 15793DEFFNA(Hy%):LOCALMy%:IF(Cy%+Hy%)<Dy%THEN 15794My%=Cy%:Cy%+=Hy% 15795ELSE:PROCG("Wimp Stack full") 15796ENDIF:=My% 15797DEFPROCJy:Cy%=dy%:ENDPROC 15798DEFPROCC(hy%,Hy%):IF(hy%<dy%)OR(hy%>Dy%)THEN 15799PROCG("Release_Stack: Invalid stack chunk") 15800ELSE:IF(Hy%<0)OR((hy%+Hy%)>Dy%)THEN 15801PROCG("Release_Stack: Invalid chunk size") 15802ELSE:Cy%-=Hy%:IFCy%<>hy%THEN 15803PROCG("Release_Stack: Bad pop") 15804ENDIF 15805ENDIF 15806ENDIF:ENDPROC 15807DEFPROCuy(_$,y%,Lu%,ju%,Hu%,iu%):T$=STR$(y%)+"."+RIGHT$("0"+STR$(Lu%),2):T$+=" ("+RIGHT$("0"+STR$(ju%),2)+"-":T$+=MID$("CBJanFebMarAprMayJunJulAugSepOctNovDec",Hu%*3,3):T$+="-"+RIGHT$("19"+STR$(iu%),4)+")":H$=_$:PROCP("App",H$):SYS&400c0,200,&4b534154,_$TOy%,Qy%:ONERRORPROCG_ 15808SYS&606c0:IFy%<200THEN 15809ERRORp%,FNR(5) 15810ENDIF:IFm%THEN 15811SYS&81682,Qy% 15812ENDIF:Gy%=TRUE:PROCfy:PROC`y:Gy%=-2:PROCXy:PROCmy:IFjy%=0THEN 15813PROCN(o%,7,T$) 15814ENDIF:oJ%=-1:ky%=-1:P_%=-1:M_%=-1:pJ%=FALSE:_J%=-1:Pu%=-1:w$="":g$="":PROCg:SYS&606c1:ENDPROC 15815DEFPROCG_:SYS&606c1:IFPy%THEN 15816PROCM(Fy%,REPORT$+" ["+STR$ERL+"]") 15817ELSE:PROCM(Fy%,REPORT$) 15818ENDIF:PROCS:END:ENDPROC 15819DEFFNProgInfo(Q%):PROCH(Q%!(88+(7<<5)+20),T$):=0 15820DEFPROCB_:LOCALB_%,k_%:k_%=TRUE:IFm%THEN 15821cy%=cy%ANDNOT(49) 15822ENDIF:REPEAT:SYS&400c7,cy%,W%TOB_%:IFm%THENSYS&81686,B_%,,Qy% 15823CASEB_%OF 15824WHEN0:PROCN_ 15825WHEN1:PROCU_ 15826WHEN2:PROCey 15827WHEN3:PROCzy 15828WHEN4:PROC_y 15829WHEN5:PROCPy 15830WHEN6:PROCTy 15831WHEN7:PROCby 15832WHEN8:PROCM_ 15833WHEN9:PROCC_ 15834WHEN10:PROCP_ 15835WHEN11:PROCDy 15836WHEN12:PROCT_ 15837WHEN17:PROCm 15838WHEN18:PROCI_ 15839WHEN19:PROCly 15840ENDCASE:UNTILNOT(k_%):ENDPROC 15841DEFPROC_y:IFNOT(m%)THEN 15842PROCM(p%,"Unexpected Pointer_Leaving_Window") 15843ENDIF:ENDPROC 15844DEFPROCPy:IFNOT(m%)THEN 15845PROCM(p%,"Unexpected Pointer_Entering_Window") 15846ENDIF:ENDPROC 15847DEFPROCP_:PROCG("Unexpected Scroll_Request"):ENDPROC 15848DEFPROCDy:PROCG("Unexpected Lose_Caret"):ENDPROC 15849DEFPROCT_:PROCG("Unexpected Gain_Caret"):ENDPROC 15850DEFPROCmy:DIMZ$(10):DIMF%(DIM(Z$(),1)):s$="�":Z$()=s$:F%()=-1:f_%=0:cy%=6193:ENDPROC 15851DEFPROCN_:LOCAL_%,q$,z%,W_%:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.Wimp: Null_Reason_Code") 15852_%=DIM(Z$(),1):WHILE_%>0:_%-=1:q$=Z$(_%):IFq$<>s$THEN 15853z%=F%(_%):IFz%=-1THEN 15854W_%=FNZ("FN_Null_Reason_"+q$) 15855ELSE:W_%=FNZ("FN_Null_Reason_"+q$+"("+STR$(z%)+")") 15856ENDIF:IFW_%AND(Z$(_%)=q$)AND(F%(_%)=z%)THEN 15857Z$(_%)=s$:f_%-=1 15858ENDIF 15859ENDIF:ENDWHILE:ENDPROC 15860DEFPROCby:LOCALU%:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.Wimp: User_Drag") 15861U%=FNZ("FN_Dragged_"+x$):IFH_%<>(1*16)THEN 15862PROCQ 15863ENDIF:SYS&400d0,,-1:x$="":ENDPROC 15864DEFPROCR(T%,F%,Iu%,B$):LOCALS%,E%,N_%,Q_%:S%=FNA(64):E%=FNA(256):S%!0=T%:S%!4=F%:SYS&400ce,,S%:E%!0=T%:SYS&400cb,,E%:N_%=E%!20:Q_%=E%!24:S%!0=T%:S%!4=5:S%!8+=E%!4-N_%:S%!12+=E%!16-Q_%:S%!16+=E%!4-N_%:S%!20+=E%!16-Q_%:S%!24=0:S%!28=0:S%!32=uy%:S%!36=ry% 15865SYS&400d0,,S%:PROCC(E%,256):PROCC(S%,64):x$=B$:H_%=Iu%:ENDPROC 15866DEFPROCI_:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.Wimp: User_Message_Recorded") 15867PROCm:ENDPROC 15868DEFPROCm:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.Wimp: User_Message") 15869CASEW%!16OF 15870WHEN0:PROCS 15871WHEN1:PROCyy 15872WHEN2:PROCW_ 15873WHEN3:PROCL_ 15874WHEN4:PROCQy 15875WHEN5:PROCBy 15876WHEN6:PROCAy 15877WHEN7:PROCWy 15878WHEN8:PROCh 15879WHEN9:PROCS_ 15880WHEN1282:PROCHy 15881WHEN&400c0:PROCay 15882WHEN&400c1:PROCg 15883WHEN&400c5:PROCF_ 15884ENDCASE:ENDPROC 15885DEFPROCF_:ENDPROC 15886DEFPROCWy:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("Message_RAM_Transmit: ") 15887IFW%!12<>M_%THEN 15888PROCM(Fy%,"Unexpected RAM_Transmit message") 15889ELSE:J_%+=W%!24:IF(W%!24)=__%THEN 15890PROCYy 15891ELSE:IFFNZ("FN_RAM_Load_Completed_"+w$+"("+STR$(J_%)+")")THEN 15892PROCJ(6) 15893ENDIF 15894ENDIF 15895ENDIF:ENDPROC 15896DEFPROCYy:LOCALRAM_start%:IFFNZ("FN_RAM_Load_"+w$+"("+STR$(J_%)+", "+STR$(__%)+", RAM_start%)")THEN 15897IFJ_%<>0THEN 15898PROCJ(7) 15899ELSE:IFFNZ("FN_RAM_Load_Failed_"+w$) 15900PROCEy 15901ENDIF 15902ELSE:W%!12=W%!8:W%!16=6:W%!20=RAM_start%:W%!24=__%:SYS&400e7,18,W%,W%!4:M_%=W%!8 15903ENDIF:ENDPROC 15904DEFPROCEy:LOCALMl%:SYS&20023,"Wimp$Scrap",0,-1,0,3TO,,gy%:IFgy%=0THEN 15905PROCJ(8) 15906ELSE:$(W%+44)="<Wimp$Scrap>"+CHR$(0):W%!36=-1:W%!16=2:W%!12=Pu%:W%!0=60:SYS&400e7,17,W%,_J%:P_%=W%!8:M_%=P_%:pJ%=FALSE 15907ENDIF:ENDPROC 15908DEFPROCOy:LOCALMl%:SYS&20023,"Wimp$Scrap",0,-1,0,3TO,,gy%:IFgy%=0THEN 15909PROCJ(8) 15910ELSE:$(W%+44)="<Wimp$Scrap>"+CHR$(0):W%!36=-1:W%!16=2:W%!12=W%!8:W%!0=60:SYS&400e7,17,W%,W%!4:P_%=W%!8 15911ENDIF:ENDPROC 15912DEFPROCAy:LOCALLa,RAM_start%,RAM_length%:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("Message_RAM_Fetch: ") 15913IFW%!12<>ky%THEN 15914PROCJ(9) 15915ELSE:IFg$=""THEN 15916ELSE:IFFNZ("FN_RAM_Save_"+g$+"("+STR$(c_%)+", "+STR$(W%!24)+", RAM_start%, RAM_length%)")THEN 15917ELSE:c_%+=RAM_length%:SYS&400f1,Qy%,RAM_start%,W%!4,W%!20,RAM_length%:W%!12=W%!8:W%!16=7:W%!24=RAM_length%:SYS&400e7,17-(RAM_length%=(W%!24)),W%,W%!4:ky%=W%!8 15918ENDIF 15919ENDIF 15920ENDIF:ENDPROC 15921DEFFN_Misc_version=34 15922DEFFN_hard_initialise_Misc:LOCALZ%,n%,_%:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.Misc: hard_initialise_Misc") 15923IFFNU<12THENERROR1,"Needs newer %.LibHandler" 15924TJ%=13:u$=CHR$(TJ%):xJ%=10:h$=CHR$(xJ%):i$=u$+h$:ti=256:DIMC%(15,1):n%=255:_%=3:FORZ%=0TO15:C%(Z%,0)=n%:C%(Z%,1)=_%:n%=FNK(n%,2):_%=FNK(_%,2):NEXTZ%:j$="":Nu%=100:su%=&7fff00:uu%=TRUE:Ru%=0:DIMJl%16:=0 15925DEFFNT(V$,Wy%,yu%):LOCALEy%,R_%,Y_%,I_%,T_%:i%=FNh(V$):IFC%AND2=0THEN 15926[OPTC%:DCD0:DCD0:] 15927ELSE:Ey%=yu%-P%-8:IFABS(Ey%)>65535THENERROR1,"adrl out of range" 15928Y_%=ABS(Ey%)AND255:R_%=ABS(Ey%)AND65280:IFEy%>=0THEN 15929I_%=i%OR(&28f0000+(Wy%<<12)+Y_%):T_%=i%OR(&2800c00+(Wy%<<16)+(Wy%<<12)+(R_%>>8)) 15930ELSE:I_%=i%OR(&24f0000+(Wy%<<12)+Y_%):T_%=i%OR(&2400c00+(Wy%<<16)+(Wy%<<12)+(R_%>>8)) 15931ENDIF:[OPTC%:DCDI_%:DCDT_%:] 15932ENDIF:=0 15933DEFFNK(U%,Yy%):LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.Misc: rol") 15934Yy%=Yy%MOD32:=(U%<<Yy%)OR(((NOT((-1)>>>Yy%))ANDU%)>>>(32-Yy%)) 15935DEFPROCIy(M$):LOCALv_%,l_%,AJ%:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.Misc: Define_Local_Variables(`"+M$+"')") 15936v_%=P%:l_%=O%:AJ%=C%:IF(C%AND4)=0THEN 15937O%=P% 15938ENDIF:P%=0:C%=C%OR6:P%=EVAL("FN_Declare_Local_Variables_"+M$):P%=v_%:O%=l_%:C%=AJ%:ENDPROC 15939DEFFNh(V$):LOCALi%:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.Misc: FNcc") 15940IFV$=""ORV$=" "THEN=14<<28 15941IFV$="lo"THEN=3<<28 15942IFV$="hs"THEN=2<<28 15943i%=INSTR("eqnecsccmiplvsvchilsgeltgtlealnv",V$):IFi%MOD2THEN=((i%-1)>>1)<<28 15944ERROR1,"Unrecognised condition code `"+V$+"'":=0 15945DEFFN_Heap_version=8 15946DEFFN_hard_initialise_Heap:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.Heap: hard_initialise_Heap") 15947=0 15948DEFFNs(RETURNIy%,A%):Iy%=USR(sJ%):IF!k%THENIy%=0 15949=!k% 15950DEFPROCX(RETURNIy%,Hy%):IFFNs(Iy%,Hy%)THEN 15951Iy%=!k%:ERROR!Iy%,FNN(Iy%+4) 15952ENDIF:ENDPROC 15953DEFPROCr(RETURNA%):IFFNt(A%)THEN 15954A%=!k%:ERROR!A%,FNN(A%+4) 15955ENDIF:ENDPROC 15956DEFFNt(RETURNA%):CALL`_%:A%=0:=!k% 15957DEFPROCH_:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.Heap: assembler") 15958[OPTC%:FNX(sJ%,Oy):FNX(`_%,cy):FNX(cu%,ey):ALIGN:.k%DCD0:]:ENDPROC 15959DEFFNX(RETURNEu%,gu%):[OPTC%:ALIGN:.Eu%:FNP:STMFD(A)!,{M}:MOV M,#0:STR M,k%:BL gu%:STRvs0,k%:LDMFD(A)!,{pc}^:]:=0 15960DEFFN_Message_version=4 15961DEFFN_hard_initialise_Message:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.Message: hard_initialise_Message") 15962Qi=31:SYS5,"RMEnsure CAssembler 0.01 RMLoad System:Modules.CAssembler":DIMRy 256:=0 15963DEFFNg(l$,Ku%,RETURNC_%):LOCALA%:SYS&fcb83,l$+".Messages.",Ku%,0TOA%,C_%:IFC_%=0THENCALLXy 15964=A% 15965DEFFNr(J%,a$,V_%):SYS&fcb85,a$,V_%,J%TOV_%;J%:=V_%AND((J%AND2)=2) 15966DEFFNn(J%,a$,Y$):LOCALy%:SYS&fcb85,a$,Y$,J%TOy%;J%:=y%AND((J%AND2)=2) 15967DEFFNc(J%):LOCALy%:SYS&fcb86,J%TOy%;J%:=y%AND((J%AND2)=2) 15968DEFFNQ(J%,a$):LOCALy%:SYS&fcb84,a$,Ry,256,J%,0TOy%,J%:?J%=13:=$Ry 15969DEFPROCty(J%,a$,Tu%):J%=FNr(J%,a$,Tu%):ENDPROC 15970DEFPROCLy(J%,a$,Y$):J%=FNn(J%,a$,Y$):ENDPROC 15971DEFPROCry(J%):J%=FNc(J%):ENDPROC 15972DEFFN_(_%):=FNQ(b%,"E"+STR$(_%)) 15973DEFFNv(r$):=FNQ(b%,r$) 15974DEFPROCj(r$,_%):PROCty(b%,r$,_%):ENDPROC 15975DEFPROCP(r$,o$):PROCLy(b%,r$,o$):ENDPROC 15976DEFPROCi(r$,B%):SYS&dcb84,r$,B%,256,b%,0:ENDPROC 15977DEFPROCCy:PROCry(b%):ENDPROC 15978DEFPROCc(V%):IFV%<=0THEN 15979PROCP("Sys",""):PROCP("SysN","") 15980ELSE:PROCP("Sys",FNB(V%+4)):PROCP("SysN",STR$~(!V%)) 15981ENDIF:ENDPROC 15982DEFFNR(_%):=FNQ(b%,"LE"+STR$(_%)) 15983DEFPROCJ_:LOCALERROR:ONERRORLOCALRESTOREERROR:PROCA("%.Message: assemble") 15984[OPTC%:ALIGN:.Xy:FNP:B sy:]:IFC%AND4THENXy+=f% 15985ENDPROC
�><In$Dir>.!RunImage 0�Produced by BasCompress v1.30 (09 Sep 1992) ��O ��Ky(20,12):Ly%=-2:Py%=�:Ny%=Py%:�F("<BasicV$Lib>.CAsm",1):�F("<BasicV$Lib>.Template",1):X_%=Py%:�hy("stdio, stdlib, string, message, wimp"):�Fy(2000,�,�):�F("<BasicV$Lib>.FileType",1):�F("<BasicV$Lib>.IntMath",4):�F("<BasicV$Lib>.ModeInfo",1) O�F("<BasicV$Lib>.Wimp",20):m%=�:b%=�g("<BasCompressFE$Dir>",-1,C_%):�C_%>0� @�!b%,"BasCompressFE can't load its' message file: "+�N(b%+4) ��:ay%=3:`%=23:Uu%=8:R%=4:zJ%=0:Oy%=1:MJ%=3:Ry%=4:Fu%=6:Ky%=7:zu%=9:py%=10:VJ%=0:FJ%=1:d_%=2:E_%=3:Au%=4:a_%=5:t_%=6:XJ%=7:iJ%=0:w_%=1:L_%=2:uJ%=3:yJ%=4:Ju%=0:n_%=1:OJ%=2:HJ%=3:BJ%=4:GJ%=5:Mu%=6:G_%=0:Gu%=1:Zu%=2:LJ%=3:ZJ%=4:kJ%=5:ku%=0:QJ%=1:b_%=2 �EJ%=3:DJ%=4:tJ%=5:eJ%=6:j_%=0:PJ%=1:fJ%=2:`J%=0:Cu%=1:gJ%=2:dJ%=3:SJ%=4:NJ%=5:RJ%=6:nJ%=0:g_%=1:hJ%=2:h_%=0:CJ%=1:jJ%=2:V=0:K=1:qy=2:Ey=3:zy=4:Ty=4:S=8:J=-1:Y=0:Ky=1:dy=2:P=1:Q=2:W=3:Ny=4:y=0:Ly=11:Hy=22:b$="":c$="":iy%=0:yy%=0:�M%(R%):�S%(R%) i�Z%(R%):by%=-1:fy%=-1:z$="":Z=P:s_%=-1:R=y:�uy("BasCompressFE",1,24,1,10,1992):Ny%=Py%:�Sy:�K:�x(X%) ��O �Jy:�:�B_:��:� ��a:�my,n:�C%�2� ?S%=P%:YJ%=C%:O%=P%:P%=0:C%=C%�4:[OPTC%:ALIGN:]:P%=S%:C%=YJ% ��:[OPTC%:ALIGN:.B:.Jy DCD0:._ DCD0:.h DCD0:.C DCD0:DCD0:.m DCD0:DCD0:.x DCD0:.o DCD0:.p DCD0:.i DCD0:.l DCD0:DCD0:DCD0:DCD0:DCD0:DCD0:.Fy DCD0:DCD0:.` DCD0:.w DCD0:.t DCD0:.j DCD0:.b DCD0:.Wy DCD0:.Cy DCD0:.Zy DCD0:.My DCD0:.q DCD0:.z DCD0:DCD0:DCD0 �DCD0:DCD0:DCD0:.g DCD0:.Py DCD0:DCD0:.f DCD0:.Gy DCD0:.k DCD0:.Ay DCD0:.c DCD0:.By DCD0:.L:ALIGN:.my:EQUS"[0,w>,m>,m>,m>,m>,m>,dm>,>":DCB0:EQUS"[100,<t>,<t>,<t>,<t>,<s<t>,d<s<t>,<t>":DCB0:EQUS"[200,w>,<t>,<t>,m>,m>,<tm>":DCB0 �EQUS"[300,<t>,<t>,<t>,<t>,<t>,<t>":DCB0:EQUS"[400,<t>,<t>":DCB0:EQUS"[250,i4":DCB0:EQUS"[500,w>,<t>,<t>,<t>,<t>,<t>,<t>":DCB0:EQUS"[600,<t>,<t>,i256":DCB0:EQUS"[700,w>,m>,m>,w>,<t>":DCB0:EQUS"[800,m>,m>,w>":DCB0:EQUS"<t[900,>,>,>,>,>":DCB0 �EQUS"[300,<t>,<t>,<t>,<t>,<t>,<t>":DCB0:EQUS"[1000,m>,m>,w>":DCB0:EQUS"<t[900,>,>,>,>,>":DCB0:EQUS"[400,<t>,<t>":DCB0:EQUS"[1100,>,d>,<t>,<t>,<t>,<t>,<t>":DCB0:ALIGN:.n DCD0:DCD0:DCD0:ALIGN:.jy:�P:STMFD(A)!,{4-9,M}:SUB A,A,#L-B:MOV2,#L-B:ADR1,B aMOV0,A:BL ky:ADR1,n+4:ADR0,my:BL ry:STRvc0,n:ADRvc0,n:ADD A,A,#L-B:LDMFD(A)!,{4-9,pc}:]:�oy:� ��t:� I��iy:I%=�V("Order",s%):X%=�G("Control",0,+1):q%=�V("SaveAs",+1):�wy:� ��py(U%,D%,V%,F%):�(V%�1)� 笤M(z$)� U%=�O(z$) � �:�D_(X%,-1) �:� ��ey:Ȏ!W%� :ș&400c5,,W% �:� ��zy:ș&400c6,,W%:� "��U_:�K_%:�:��:ș&606c1:�x Nș&606c0:ș&400c8,,W%�K_%:ȕK_%:ș&81681,,W%:ș&400ca,,W%�K_%:�:ș&606c1:� !1��M_:�T%,F%,d%:T%=W%!0:F%=W%!4:d%=W%!24:ȎT%� "�q%:�ky(F%,d%) #�X%:�`(F%,d%) $:ș&400dc,d% %�:� &��h:�S:� '9��Hy:�F$,T%,F%,A%,Z%,u%:F$="":T%=W%!32:F%=W%!36:ȎT%� (�-2:F$="IconBar" )�o%:F$="ProgInfo" *�I%:F$="Order":�z(F%)� +�y(F%,Z%,u%):�u%=S� ,F$+=",R" -�:F$+=","+�(�("A")+u%) .� /�:F$+=",_" 0� 1�X%:F$="Control":�F%=-1� 2F$+=",_" 3�:F$+=","+�(F%) 4� 5&�q%:�j("SaveAsType",Z):F$="SaveAs" 6�:�F$<>""� 7�i("H"+F$,W%+20):�W%?20� 8NW%!16=1283:W%!12=W%!8:A%=W%+20:ȕ?A%:A%+=1:�:�A%>=(W%+256)�A%=W%+255:?A%=0 9)W%!0=(A%-W%+4)�-4:ș&400e7,17,W%,W%!4 :� ;�:� <��g:�dy(-1):� = ��S_:� >*��S:��"Error in error handler: ";�$:� ?�Cy:�v:�m%� @ș&a1683,Qy% A�:ș&400dd:�:� BN��Ty:�U%,D%,V%,Q%,F%,n%,u%:U%=W%!0:D%=W%!4:V%=W%!8:Q%=W%!12:F%=W%!16:ȎV%� C�2:ȎQ%� D9�-2:�D:D%=96+(44*mJ%)+(24*aJ%):ș&400d4,,sy%,U%-64,D% E!�X%:�D:ș&400d4,,sy%,U%-64,D% F� G�1*16,4*16:ȎQ%� H �X%:ȎF%� I,�MJ%:Z=P:�R(Q%,F%,V%,"FileName_Control") J,�Fu%:Z=Q:�R(Q%,F%,V%,"FileName_Control") K,�zJ%:Z=W:�R(Q%,F%,V%,"FileName_Control") L� M �q%:ȎF%� N%�1:�R(Q%,F%,V%,"FileName_SaveAs") O� P� Q:ȎQ%� R�-2:�py(U%,D%,V%,F%) S�e_%:�Q_(U%,D%,V%,F%) T�q%:�Z_(U%,D%,V%,F%) U�o%:�My(U%,D%,V%,F%) V�I%:�V_(U%,D%,V%,F%) W�X%:�qy(U%,D%,V%,F%) X� Y�:� Z��My(U%,D%,V%,F%):ȎF%� [ �14,15:�M(Fy%,�_(0)):�V%<>1� \�Q ]� ^�:� _��`y:By%=�:_y%=&1040a31+0:� `V��D:�A%:mJ%=8:aJ%=1:A%=�(jy):sy%=!A%:yy%=A%!4:iy%=A%!8:$yy%=�(a):$iy%=D$:By%=_y%:� aW��ay:�U%,D%,ly%,r%,e%,x%:U%=W%!24:D%=W%!28:ly%=W%!32:r%=W%!36:e%=W%!40:x%=p%:ȎBy%� b�_y%:Ȏly%� c�VJ%:ș&400e8,,o%,U%,D% d�d_%:Ȏr%� e"�G_%:Z=W:�I:ș&400e8,,q%,U%,D% f-:�M(x%,"Unexpected MenuWarning Message") g� h�E_%:Ȏr%� i"�G_%:Z=P:�I:ș&400e8,,q%,U%,D% j-:�M(x%,"Unexpected MenuWarning Message") k� l�a_%:Ȏr%� m"�iJ%:Z=Q:�I:ș&400e8,,q%,U%,D% n�w_%:Ȏe%� o)�hJ%:R=Ly:�_(S%()):ș&400e8,,I%,U%,D% p-:�M(x%,"Unexpected MenuWarning Message") q� r�L_%:Ȏe%� s)�jJ%:R=Hy:�_(M%()):ș&400e8,,I%,U%,D% t-:�M(x%,"Unexpected MenuWarning Message") u� v(�uJ%:R=y:�_(Z%()):ș&400e8,,I%,U%,D% w-:�M(x%,"Unexpected MenuWarning Message") x� y-:�M(x%,"Unexpected MenuWarning Message") z� {-:�M(x%,"Unexpected MenuWarning Message") |�:� }���C_:�ly%,M%,o_%,p_%,rJ%,r%,A%,e%:�j%:M%=�A(512):ș&400cf,,M%:o_%=M%!0:p_%=M%!4:rJ%=M%!8:�C(M%,512):ly%=!W%:r%=W%!4:e%=W%!8:j%=W%!12:ȎBy%� ~�_y%:Ȏly%� �FJ%:Ȏr%� ��Ju%:�Z(Jy) ��n_%:�Z(_) ��OJ%:�Z(h) ��HJ%:�Z(C):�Z(C+4):�Z(C+12) ��BJ%:�Z(m) ��GJ%:�Z(x) ��Mu%:�Z(o) �� ��d_%:Ȏr%� ��Gu%:�Z(p) ��Zu%:�Z(i) ��LJ%:�e%<>-1� ��Z(l+(e%<<2)) �� ��ZJ%:�e%<>-1� ��Z(Fy+(e%<<2)) �� ��kJ%:Ȏe%� � �-1:�Z(`) ��0:a=�($yy%) �� �� ��E_%:Ȏr%� ��QJ%:�Z(w) ��b_%:�Z(t) ��EJ%:�Z(j) ��DJ%:�Z(b) ��tJ%:�Z(Wy) ��eJ%:�Z(Cy) �� ��Au%:Ȏr%� ��fJ%:�d($iy%) ��j_%:�Z(Zy) ��PJ%:�Z(My) �� ��a_%:Ȏr%� ��w_%:Ȏe%� ��nJ%:�j%<>-1� � !q=j% �� ��g_%:�j%<>-1� ��Z(z+(j%<<2)) �� �� ��L_%:Ȏe%� ��h_%:�j%<>-1� � !g=j% �� ��CJ%:�j%<>-1� ��Z(Py+(j%<<2)) �� �� ��yJ%:�Z(f) �� ��t_%:Ȏr%� ��`J%:�A_ ��Cu%:�gy ��gJ%:�Z(Gy) ��dJ%:�Z(k) ��SJ%:�Z(Ay) ��NJ%:�Z(c) ��RJ%:�Z(By) �� ��XJ%:�h �� � �:�rJ%=1� � ȎBy%� ��_y%:�D ��:ș&400d4,,sy%,o_%,p_% ��:�Q ��:� ���Q:ș&400d4,,-1:By%=�:� ���Z(y%):!y%=(!y%=0):� ���d(A$):�A$=""� � A$=c$ ��:D$=A$:�N(X%,py%,D$):� ���k(A$):�A$=""� � A$=E$ ��:C$=A$:�N(X%,Oy%,A$):� ���X_(A$):�A$=""� � A$=R$ ��:W$=A$:�N(X%,Ky%,A$):� ���Ry(A$):�A$=""� � A$=K$ ��:P$=A$:�N(X%,Ry%,A$):� � ��x:�Py%� ���,�$+" ["+�(�)+"]" ��:��,�$ � �:�S:� ���gy:�b:�K:� �W��Sy:�J%,_$,Sl%:�b:D$=c$:C$=E$:W$=R$:P$=K$:J%=�("<BasCompressFE$Dir>.Choices"):�J%� ��:��:�#J%:� �iș12,4,J%,B,L-B:�z(J%,M%()):�z(J%,S%()):�z(J%,Z%()):�#J%,P$:K$=P$:�#J%,W$:R$=W$:�#J%,C$:E$=C$:�#J%:�� ��:� �2��z(J%,�A%()):�Z%:�Z%=0�R%-1:�#J%,A%(Z%):�Z%:� �5��A_:�J%:J%=�("<BasCompressFE$Dir>.Choices"):�J%� ��:��:�#J%:�x �cș12,2,J%,B,L-B:�s(J%,M%()):�s(J%,S%()):�s(J%,Z%()):�#J%,�S(P$):�#J%,�S(W$):�#J%,�S(C$):�#J%:�� ��:� �1��s(J%,A%()):�Z%:�Z%=0�R%-1:�#J%,A%(Z%):�Z%:� ���b:�F:!Jy=�:!_=�:!h=�:!C=�:C!4=(!C=0):C!12=(!C=0):!m=�:!x=�:!o=�:!p=�:!i=�:�F=0�5:l!(F<<2)=�:�F:�F=0�1:Fy!(F<<2)=�:�F:!`=�:a=16:!w=�:!t=�:!j=�:!b=�:!Wy=�:!Cy=�:!Zy=�:!My=�:!q=3:�F=0�5:z!(F<<2)=�:�F:!g=3:�F=0�1:Py!(F<<2)=�:�F:!f=�:!Gy=�:!k=�:!Ay=� �b!c=�:!By=�:M%()=J:S%()=J:Z%()=J:M%()=V,K:S%()=V,K:Z%()=V,K,Ey:K$="Log":E$="Output":R$="XRef":� �M��K:�V(X%,py%,D$,c$):�V(X%,Ry%,P$,K$):�V(X%,Ky%,W$,R$):�V(X%,Oy%,C$,E$):� ���qy(U%,D%,V%,F%):� ���`(F%,d%):Ȏd%� ��13,398,399:ȎF%� ��Ry%:Z=P ��Ky%:Z=Q ��Oy%:Z=W � �py%:Z=Ny �&�:�T(�F(X%,F%)):�d%=398��jy(X%,F%) ��d%=399��sy(X%,F%) ��d%=13��cy � �27:�K �:ș&400dc,d% ��:� �(��_(A%()):�Z%,n%,G%:�a("Order",I%)� ���:Z%=0:ȕZ%<R%�A%(Z%)<>J:n%=A%(Z%)�(�S):�G%=0�Ty:�B(I%,�C(G%,Z%),n%=G%):�G%:�B(I%,`%+Z%,A%(Z%)�S):Z%+=1:�:ȕZ%<R%:�G%=0�Ty:�B(I%,�C(G%,Z%),�):�G%:�B(I%,`%+Z%,�):Z%+=1:� ��:� ���V_(U%,D%,V%,F%):ȎR� ��y:�e(Z%(),V%,F%) ��Hy:�e(M%(),V%,F%) ��Ly:�e(S%(),V%,F%) ��:� �-��e(�A%(),V%,F%):�Z%,G%,u%,Y%,n%:�z(F%)� �'�y(F%,Z%,u%):n%=�S:�(A%(Z%)�n%)=u%� ��f(I%,F%)=�� ��o(A%(),Z%) � �:�u%=S� �A%(Z%)=J� �B(I%,F%,�) !�:A%(Z%)=A%(Z%)�S:�v(A%(),Z%) � �:�A%(Z%)=J� A%(Z%)=u% �:A%(Z%)=(A%(Z%)�S)�u% &�:�v(A%(),Z%):G%=0:Y%=�:�:�G%<>Z%� Y%=((A%(G%)�n%)=u%):�Y%� �Gy(A%(),Z%) � �:G%+=1:�Y%�G%>=R% � � �:� >��v(�A%(),�Z%):�Y%:Y%=(Z%<=0):ȕ�Y%:Y%=(A%(Z%-1)<>J):�Y%� Z%-=1:�o(A%(),Z%):Y%=(Z%<=0) �:�:� T��o(�A%(),Z%):�G%,Y%,A_%:G%=Z%:�:A%(G%)=J:�B(I%,`%+G%,�):G%+=1:Y%=(G%>=R%):�Y%� Y%=(A%(G%)=J):�Y%� cA%(G%-1)=A%(G%):�B(I%,�C(A%(G%),G%-1),�):�B(I%,�C(A%(G%),G%),�):A_%=A%(G%)�S:�B(I%,`%+G%-1,A_%) � �:�Y%:� ~��Gy(�A%(),G%):�Z%,Y%:Z%=0:Y%=�:ȕ�u(A%(),Z%):Z%+=1:�:�B(I%,�C(A%(G%),G%),�):A%(G%)=Z%�(A%(G%)�S):�B(I%,�C(A%(G%),G%),�):� Vݤu(A%(),Z%):�Z_%,G%:G%=0:Z_%=�:ȕG%<R%�(�Z_%):Z_%=((A%(G%)�(�S))=Z%):G%+=1:�:=Z_% #ݤz(F%):=(F%>=ay%)�(F%<(`%+R%)) ��y(F%,�u_%,�D_%):�F%>=`%� D_%=S �:D_%=(F%-ay%)�R% �:u_%=(F%-ay%)�R%:� +ݤC(D_%,u_%):=(((D_%�(�S))*R%)+ay%)+u_% !��ky(F%,d%):Ȏd%� "�13,398:�T(�F(q%,2)):�Q # �27:�Q $:ș&400dc,d% %�:� &��Z_(U%,D%,V%,F%):ȎF%� '�0:�T(�F(q%,2)):�V%�1� (�D:ș&400d4,,sy% )�:�Q *� +�:� ,��I:�a("SaveAs",q%)� -�:�N(q%,2,�Y):�Z=W� .�p(q%,1,"file_"+�~(r)) /�:�p(q%,1,"file_"+�~(I)) 0� 1�:� 2ݤY:�M$:ȎZ� 3�P:M$=P$ 4�Q:M$=W$ 5�W:M$=C$ 6 �Ny:M$=D$ 7 �:=M$ 8!��V(Q%,Z%,M$,p$):�M$=""�M$=p$ 9�N(Q%,Z%,M$):� :$ݤ_Dragged_FileName_Control:ȎZ� ;�P:�L(�F(X%,Ry%)) <�Q:�L(�F(X%,Ky%)) =�W:�L(�F(X%,Oy%)) >�:=0 ?.ݤ_Dragged_FileName_SaveAs:�L(�F(q%,2)):=0 @Y��L(S$):�Q%,Z%,M%,U%,D%:M%=�A(320):ș&400cf,,M%:Q%=M%!12:Z%=M%!16:�(Q%<>-2)�(Q%<>X%)� A�S$=""� BȎZ� C�P:S$=K$ D�Q:S$=R$ E�W:S$=E$ F� G�:S$=�S(S$) H��:U%=!M%:D%=M%!4:!M%=(�(S$)+48)�-4:M%!12=0:M%!16=1:M%!20=Q%:M%!24=Z%:M%!28=U%:M%!32=D%:M%!36=-1:M%!40=I:$(M%+44)=S$+�(0):ș&400e7,17,M%,Q%,Z%:s_%=M%!8 I�:�C(M%,320):� J��T(S$):�S$<>�Y� KȎZ� L�P:�Ry(S$) M�Q:�X_(S$) N �W:�k(S$) O�Ny:�d(S$) P� Q �:�I:�K:� R��ly:ȎW%!12� S�0:ȎW%!8� T�by%:ș&400de,"/"+P$:by%=-1 U�fy%:ș&400de,"/"+W$:fy%=-1 V� W�:� X^��yy:�F_%,`$,T%,F%,U%,D%:`$=�B(W%+44):F_%=W%!40:T%=W%!20:F%=W%!24:U%=W%!28:D%=W%!32:ȎF_%� Y �r:�Oy Z�:� [^��L_:�F_%,e$,T%,F%,U%,D%:T%=W%!20:F%=W%!24:U%=W%!28:D%=W%!32:F_%=W%!40:e$=�N(W%+44):ȎF_%� \�r:U%=�O(e$) ]�I:笤M(e$)� ^ �d(e$) _� `:�M(Fy%,�_(1)) a�:� b��W_:�S$,ny%:�(W%!12)<>s_%� c �J(10) d!�:ny%=�:S$=�B(W%+44):ȎW%!40� e�I:�T(S$):ny%=� f:�J(10):ny%=� g�:�ny%� h9W%!12=ky%:W%!16=3:ș&400e7,18,W%,W%!20,W%!24:oJ%=W%!8 i� j�:� k ��Qy:� l ��By:� mݤE(J$):�Z%,S%:�J$<>""� nZ�Z%=1��(J$):S%=�"ABCDEFGHIJKLMNOPQRSTUVWXYZ",�J$,Z%,1)):�S%>0��J$,Z%,1)=�(S%+�("a")-1) o�Z% p �:=J$ q1ݤM(M$):=(�S(M$)="")�(�E(M$)=b$)�(�M$,".")<1) r"ݤO(L$):�Z$,Z%:�!By�(��M(C$))� sZ%=�L$,"."):�Z%>0� t)Z$=�C$,�(C$)-�(�S(C$)))+�S(L$):�k(Z$) u� v*�:z$=L$:Z$="":�!Jy<>0�Z$+=" -MultiDEF" w�!_<>0�Z$+=" -WEndRtn" x�!h<>0�Z$+=" -Number" y�!C=0�Z$+=" -SWI" z�!m=0�Z$+=" -SWIBad" {�!x=0�Z$+=" -SWIExist" |�!o<>0�Z$+=" -Library" }�!i=0�Z$+=" -Unused" ~ 笤M(C$)� �!p=0�Z$+=" -Single" �SZ$+=" -ReduceVar "+�q(l):Z$+=" -ReduceRtn "+�L(Fy):�!`<>0�Z$+=" -ListOut "+�(a) ��:笤M(P$)� ��!w=0�Z$+=" -Stats" ��!t=0�Z$+=" -EVAL" ��!j=0�Z$+=" -DATA" ��!b=0�Z$+=" -READ" ��!Wy=0�Z$+=" -GOTO" ��!Cy<>0�Z$+=" -List" ��:笤M(D$)� ��!Zy<>0�Z$+=" -UnusedS" ��!My<>0�Z$+=" -WSpLabel" ��:�M(W$)� �Z$+=" -XRef 0" ���:Z$+=" -XVar "+�(!q):Z$+=" -XIncVar "+�q(z):Z$+=" -XRtn "+�(!g):Z$+=" -XIncRtn "+�L(Py):Z$+=" -SRef "+�D(Z%()):Z$+=" -SVar "+�D(S%()):Z$+=" -SRtn "+�D(M%()):�!f=0�Z$+=" -Deleted" ���:�q("BasCompress$Options",Z$):�E("BasCompress$Special",D$):�E("BasCompress$XRef",W$):�E("BasCompress$Out",C$):�E("BasCompress$Log",P$):�!c� ��q("Main",L$):L$="<Main>" ��:�:��:�U(Y):�x ��M(P$)� �4�U(dy):ș&400de,"BasCompress "+L$+" { > null: }" �'�:�U(Ky):ș&400de,"BasCompress "+L$ �$�:��:�U(Y):�((!k)<>0)�(��M(P$))� ��n(by%,P$) ��:�((!Ay)<>0)�(��M(W$))� ��n(fy%,W$) ��:�((!Gy)<>0)�(��M(C$))� �ș&400de,C$ ��:=0 �?��n(�Ou%,_$):�S%,Zy%,vJ%,Pl%:ș8,5,_$�vJ%,,Zy%,,a%:�vJ%<>0� ��S%=�A(256):S%!20=-1:S%!28=0:S%!32=0:S%!36=a%:S%!40=(Zy%�&fff00)>>8:�H(S%+44,_$):S%!0=(�(_$)+1+3+44)�(�3):S%!12=0:S%!16=5:ș&400e7,18,S%,0:Ou%=S%!8:�C(S%,256) ��:� �[��q(v$,d$):�S%:S%=�A(512):�H(S%,v$):�H(S%+256,d$):ș36,S%,S%+256,�(d$),0,0:�C(S%,512):� ���E(v$,d$):�M(d$)� �ș&20024,v$,0,-1,0,2 ��:�q(v$,d$) ��:� �DݤD(A%()):�Z%,G%,A$,J$:A$="":Z%=0:G%=�:ȕG%�Z%<R%:ȎA%(Z%)�(�S)� � �V:J$="N" ��zy:J$="D" ��qy:J$="U" � �K:J$="T" ��Ey:J$="P" � G%=� � �:�G%� ��A%(Z%)�S� �A$+=�E(J$) ��:A$+=J$ ��:Z%+=1 ��:�:�(A$)=0�A$="""""" �=A$ �!ݤq(U):�A$:A$="":�U!0�A$+="i" ��U!4�A$+="r" ��U!8�A$+="s" ��U!12�A$+="I" ��U!16�A$+="R" ��U!20�A$+="S" ��(A$)=0�A$="""""" �=A$ �!ݤL(U):�A$:A$="":�U!0�A$+="p" ��U!4�A$+="f" ��(A$)=0�A$="""""" �=A$ <y ݤU=13 <z=��Ky(m_%,bu%):�:��:�A("%LibHandler: hard_initialise") <{�U<bu%� <|�0,"LibHandler too old" <} �:�m_%<1� <~/�1,"LibHandler: bad max librarys parameter" <b�:`y%=m_%:�M$(`y%-1):�J%(`y%-1):O_%=0:�l%256:oy%=40:K%=0:Ly%=12:bJ%=�:�A$(oy%-1):Gy%=�:Ny%=�:� <�G��F(G$,fu%):�Zy%,Z%,I$,t$:�:��:�A("%.LibHandler: load_library") <�EZ%=0:Zy%=�:I$=�G$,1+�G$,".")):ȕZ%<O_%�Zy%:Zy%=(I$<>M$(Z%)):�Zy%� <� Z%+=1 <� �:�:�Zy%� <��Z%=`y%� <�/�0,"LibHandler: Too many librarys to load!" <�O�:M$(Z%)=I$:t$="'"+G$+"' does not have a FN_":�:��:�A(t$+I$+"_version") <�RJ%(Z%)=�("FN_"+I$+"_version"):��:O_%+=1:�:��:�A(t$+"_hard_initialise_"+I$) <�!�("FN_hard_initialise_"+I$)� <�4�1,"Library file '"+G$+"'s hard init'ion failed" <��:�� <��:�fu%>J%(Z%)� <�&�1,"Library file '"+G$+"' too old" <��:� <���A(B$):�Gy%� <� �Ny%� <���,�$+" ["+Þ+"]." <��:��,�$ <�� <��:�bJ%� <��K%=oy%� <�&A(oy%-1)="Errors too deep!!!!!":�O <��:��B$,2)=": "� <�B$=�B$,�(B$)-2) <��:�Ny%� <� A$(K%)=�$ <��:�K%=0� <�JA$(K%)="Error `"+�$+"' (line ":A$(K%)+=�(�)+") in ":A$(K%)+="`"+B$+"'" <��:A$(K%)="`"+B$+"'" <�� <��:K%+=1:��,"" <�� <��:� <�!��O:�t%,Ay$:�:�:�"::"+�(�):� <� �Gy%� <� �Ny%� <� �M(�,�$+" ["+�(�)+"]."):�S:� <��:�M(�,�$):�=p%� <��S:� <�� <�� <��:�Ly%=-2� <� �K%>0� <� ���,A$(0) <��:���,�$ <��:� <��:�Ly%=-3� <�6$l%="TASK":ș&400c0,200,!l%,"LibHandler"+�(0):�K%� <��t%=0�K%-1:�t%<(K%-1)� <��w(A$(t%)+" in") <��:�w(A$(t%)) <� �:�t% <��:�w(�$+" (line "�(�)+")") <��:ș&600dd:� <��:�Ly%>=0� <��Ly% <�'�:�"An error has occured...":�:�K%� <�6�t%=0�K%-1:�((7-(t%<<1))�6)+1:�A$(t%);:�t%<(K%-1)� <��" in "; <� �:�t% <��:�$;" (line ";�(�);")" <��:�:�7:� <��:� <�y��w(Y$):�lJ%:lJ%=20+(�(Y$)+5)�-4:!l%=lJ%:l%!16=&804c0:$(l%+20)=Y$:l%?(20+�(Y$))=10:l%?(21+�(Y$))=0:ș&600e7,17,l%,0:� <�ݤ_CAsm_version=10 <�Bݤ_hard_initialise_CAsm:�:��:�A("%.CAsm: hard_initialise") <��F("<BasicV_Assembler$Lib>.Misc",27):ș5,"RMEnsure CAssembler 0.03 RMLoad System:Modules.CAssembler":ș5,"If ""<CAsm$Dir>""="""" Then Set CAsm$Dir <d>.Library.CAsm":CAsmLibrary_stdlib=1:CAsmLibrary_stdio=2:CAsmLibrary_string=3:fJ=4:mi=5:qu=6:Bi=7 <�CAsmLibrary_wimp=8:M_=9:CAsmLibrary_message=10:Ki=11:ou=12:El=13:fi=14:ku=15:Di=16:A_=17:su=18:ql=19:ci=20:q_=21:j_=22:Hl=23:fl=24:p_=25:Xa=26:s=26:Au=0:Gu=1:du=2:HJ=3:E_=4:O_=5:w_=6:gi=7:py=8:Z_=9:E=10:X=11:u=12:A=13:M=14:PJ=15:ay=&6d734143:g%=0 <�8Sy%=13:O=0:G=0:d=10*1024:ty=d+(1*1024):X_%=�:vy=�:=0 <�]��hy(Q$):�S%,h%,E%,L%,O%,P%,C%,G$:�:��:ș&400ec,Vy%,-1:�A("%.CAsm: ClaimCAsmLibrary") <�RVy%=�-32768:ș&400ec,Vy%+32768,-1�L%:L%+=32768:O%=Vy%+32768:P%=0:C%=14:�O%=L%� <�/�1,"Not enough memory to start application" <� �:�g%<>0� <�2�1,"Only one call to ClaimCAsmLibrary allowed" <� �:�U_%s*8:�S$(s):�h_DEFAULT <�eȕQ$<>"":G$=�Q$,�Q$,",")-1):�:��:�A("Attempted to claim the non-existent library: `"+G$+"'!") <�Ch%=�("CAsmLibrary_"+G$):��:E%=U_%:S%=E%+(g%*8):ȕS%>E%:�!E%=h%� <�E%=S%+1 <��:E%+=8 <��:�:�E%=S%� <��g%>=s� <�-�1,"Too many librarys have been claimed!" <�=�:!S%=h%:S$(h%)=G$:g%+=1:O%=Vy%+32768:P%=0:�Z("FNh_"+G$) <�G�:Q$=�Q$,�(G$)+2):ȕ�(Q$)=�(" "):Q$=�Q$,2):�:�:ș&400ec,Vy%,-1:��:� <�>��f:�_%,S%,Z%,z%:�:��:�A("%.CAsm: AssembleCAsmTables") <� �g%=0� <��h_DEFAULT <��:z%=U_%:Z%=g%:�(C%�2)=0� <�(�S%g%*4:ș79,g%,S%+&c0000000,3,,z%,8 <م�:[OPTC%:.Dy DCDay:DCDny:]:ȕZ%>0:[OPTC%:DCD!z%:DCDz%!4:]:z%+=8:Z%-=1:�:[OPTC%:DCD0:]:[OPTC%:ALIGN:.e:]:S%=P%:�jumpblock_DEFAULT <�Gny=(P%-S%)>>2:Z%=g%:z%=U_%:ȕZ%>0:S%=P%:�Z("FNjumpblock_"+S$(!z%)) <�#z%!4=(P%-S%)>>2:z%+=8:Z%-=1:�:� <�5��vy:�Sy:�:��:�A("%.CAsm: AssembleCAsmBasic") <��[OPTC%:ALIGN:.Vy:STMFD(A)!,{4-5,M}:BL P%+(13<<2):.Sy DCDDy-Sy:DCDe-Sy:DCDO-Sy:DCDG:DCDd:.D:DCD0:DCD0:DCD0:DCD0:LDR A,D:LDMFD(A)!,{E,X,u,M}:MOVpc,M:BIC5,M,#&fc000003:LDMIA5,{0-4}:ADD0,0,5:ADD1,1,5:ADD2,2,5:MOV5,#0:SWI &fcb80:STRvc0,D+(1<<2) <ޯSTRvc1,D+(3<<2):LDMFD(A)!,{4-5,pc}:.v:�P:MOV2,M:MOV1,A:MOV0,E:SWI &fcb81:MOVvc1,#0:STRvc1,D+(3<<2):MOVpc,2:MOV13,12:]:O=P%:�W:�t:G=(G+3)�-4:P%+=G-1:O%+=G-1:[OPTC%:DCB0:]:� <�7��Zy:�:��:�A("%.CAsm: AssembleCAsmApplication") <�)�P%<>32768��1,"Expect P% to be &8000" <�n[OPTC%:ADR4,T:MOV5,#fy:SWI &fcb80:�T("vc",2,yu):Bvc _y:SWI 43:.T:DCDDy-T:DCDe-T:DCDO-T:DCDG:DCDd:DCDty:]:� <�5ݤP:�:��:�A("%.CAsm: StartCAssemblerSession") <�p[OPTC%:STMFD(A)!,{E,X,u,M}:MOV X,pc:�T("",M,D):STR A,[M],#4:LDMIA(M)!,{E,u,A}:� X,X,#&fc000003:�R M,M,X:]:=0 <�2ݤN(A%):�N$:N$="":ȕ?A%:N$+=�(?A%):A%+=1:�:=N$ <�Aݤy(A%,B%):�N$:N$="":ȕB%>=0�?A%:N$+=�(?A%):A%+=1:B%-=1:�:=N$ <�"��H(A%,N$):$A%=N$:A%?�(N$)=0:� <�ݤZ(n$):�:��:�ny <� =�(n$) <���ny:�X_%� <�"��,�$+" (evaluating `"+n$+"')" <��:��,�$ <��:� <�:��Fy(qy%,Jy%,i_%):�:��:�A("%.CAsm: assemble_CAsm") <�M�F("<BasicV$Lib>.Heap",8):�F("<BasicV$Lib>.Message",1):�w(qy%,Jy%,i_%,0) <��Vy:��v:�O <�� <���W:�C%�4� <�ș&606c4,(O%-f%)*100�H% <��:ș&606c4,(P%-f%)*100�H% <��:� <�{ݤw(qy%,Jy%,i_%,Uy%):�L%,O%,P%,C%,Fl%,H%:�Pu:�OJ,sJ,DJ,zJ,YJ,UJ:�gy,oy,ji:�:��:�A("%.CAsm: assemble_CAsm_External") <��Uy%=0� <�:�F("<BasicV$Lib>.Heap",8):�F("<BasicV$Lib>.Message",1) <���:�f%qy%:Pu=A:OJ=1<<31:sJ=1<<30:DJ=1<<29:zJ=1<<28:YJ=1<<27:UJ=1<<26:gy=1<<17:oy=256:ji=oy+gy:ș&606c0:�:��:ș&606c1:�A("hourglass") <�"H%=qy%:L%=f%+qy%:�Jy%<>0�Jy%=4 <�"�C%=8+Jy%�10+Jy%�2:�(C%�4)<>0� <�O%=f%:�Uy%=1� <�P%=32768 <� �:P%=0 <�� <��:O%=0:P%=f% = �:ȎUy%� =/�1:�W:�Zy:�W:�a:�W:�f:O=P%:�W:�t:G=(G+3)�-4 ='�0:�W:�a:�W:�H_:�W:�J_:�W:�f:�W:�vy =�2:�W:�a =�:�C%�4�L%=O%�L%=P% =�(C%�2)=0� =ș&dcb93,0,f%,L%-f% =!�:H%=L%-f%:�C%:ș&606c1:�Jy%� =�Uy%=0� = Vy+=f%:v+=f% = � =�:�vy�Uy%<>2� = �Jy%� = H%=e:�Uy%�H%-=32768 =8�:�1,"CAsmTablesInBSS TRUE without offset assembly?" =� =�:�i_%� =`�"Assembled to &";~H%;" = ";((H%*10+512)�1024)/10;"K":�"Could assemble with ";qy%-H%;" less" = �:=H% =ݤ_Template_version=3 =Nݤ_hard_initialise_Template:�c%:�:��:�A("%.Template: hard_initialise") =jy%=�:=0 =G��fy:�a%,c%,w%,M%,O$,z_%:O$="<"+H$+"$Dir>.Sprites":a%=�H(O$):�a%>0� =U�X(s%,a%+16):s%!0=a%+16:s%!4=0:s%!8=16:s%!12=16:ș&2002e,522,s%,O$�c%;w%:�J(w%)� =*�P("Reason","Sprites"):�c(c%):�J(4):�S =� = �:s%=0 =�:�Vy("Templates"):�jy%� = �s%>0� = �u("ProgInfo",s%,"ProgInfo") ="�:�u("ProgInfo",+1,"ProgInfo") = �:o%=0 = �:�s%>0� =!o%=�G("ProgInfo",z_%,s%) ="�:o%=�G("ProgInfo",z_%,+1) =#� =$"�:e_%=�G("Query",z_%,+1):�iy:� =%X��Vy(A$):�y_%,h%,a%,c%,w%,N%:�Su%,O$,Ay%,ey%:O$="<"+H$+"$Dir>."+A$:a%=�H(O$):�a%<=0� =&2�P("Reason",A$):�P("Sys","Not found"):�J(4):�S ='M�:�X(h%,a%):�X(Ay%,a%+N):ey%=Ay%+Iy:Su%=Ay%+N:ș&600d9,,O$�c%;w%:�J(w%)� =(5�P("Reason","Templates"):�c(c%):�J(4):ș&600da:�S =)�:�:��:�Ny =*Uzy%=0:�:ey%!0=�("*"):ș&600db,,Su%,h%,h%+a%,-1,ey%,zy%�c%,,y_%,,,,zy%;w%:�J(w%)� =+�Y(c%):ș&600da:�S =,�:�zy%� =-&�w%=0�11:�ey%?w%=13�ey%?w%=0:w%=12 =.1�w%:Ay%!yy=y_%-h%:Ay%!by=h%:N%=�b(Ay%):�N%=0� =/�J(16):ș&600da:�S =0�:N%!H=!xy%:!xy%=N% =1)�:�zy%=0:��:ș&400da:�r(Ay%):�r(h%):� =2"��Ny:ș&600da:�A("Template"):� =3&ݤG(X$,du%,S_%):=�m(X$,du%,S_%,"") =42ݤm(X$,du%,S_%,B$):�N%,cJ%,J%:N%=�W(X$):�N%=0� =5�S =6"�:cJ%=N%+N:cJ%!64=S_%:�B$<>""� =7J%=�Z("FN"+B$) =8�:�I(N%,J%)� =9�S =:�:�l(N%):=J% =;*��u(X$,S_%,B$):�N%,Q%:N%=�W(X$):�N%=0� =<�S == �:Q%=N%+N:Q%!64=S_%:�B$<>""� => Q%=�Z("FN"+B$+"("+�(Q%)+")") =?�:� =@'ݤV(X$,S_%):�N%,Q%:N%=�W(X$):�N%=0� =A�S =B�:Q%=N%+N:Q%!64=S_%:=0 =C'ݤa(X$,�wy%):�N%,My%:My%=�:�wy%<=0� =DN%=�W(X$):�N%� =EMy%=�I(N%,wy%):�My%=�� =F �l(N%) =G� =H�:My%=� =I� =J �:=My% =KHݤd(X$):�N%,A$,x%:N%=!xy%:x%=�:ȕN%�(�x%):x%=(�y(N%+Iy,12)=X$):�x%� =LN%=N%!H =M�:�:=N% =N ݤW(X$):�N%:N%=�d(X$):�N%=0� =O�P("Reason",X$):�J(3) =P �:=N% =Q5ݤI(N%,�wy%):ș&600c1,,N%+N�wy%;N%:N%=�J(N%):�N%� =R�Y(wy%):wy%=0 =S �:=N% =T;��l(N%):�S%:S%=xy%:ȕ!S%<>0�!S%<>N%:S%=!S%+H:�:�!S%=N%� =U!S%=N%!H:N%!H=0:�r(N%) =V�:� =Wݤj(A%):=�(xy) =Xݤb(A%):A%=�j(A%):�A%=0� =Y �J(16) =Z �:=A% =["��oy:�(C%�2)=0��Iy("Template") =\ [OPTC%:ALIGN:.xy:�P:B hy:]:� =]Aݤ_Declare_Local_Variables_Template:�:��:�A("@.Template") =^Z�xy%4:!xy%=0:P%=0:[OPTC%:.H DCD0:.lJ DCD0:.by DCD0:.yy DCD0:.Iy DCD0:DCD0:DCD0:.N:]:=0 =_*ݤh_DEFAULT:�:��:�A("@.h.DEFAULT") =`Zjl=16:Wi=1<<30:Fl=0:_l=1:qJ=2:Ca=3:RJ=4:pJ=5:`i=6:NJ=7:oi=8:Ol=1<<0:fy=1<<1:hi=1<<2:=0 =a2ݤjumpblock_DEFAULT:�:��:�A("@.h.DEFAULT") =bm[OPTC%�Sy%:.si DCDx_:.Uu DCDtl:.ZJ DCDe_:.V_ DCDMi:.s_ DCDDu:.XJ DCDcl:.cJ DCDHi:.k_ DCDSl:._y DCDul:]:=0 =c&ݤh_stdio:�:��:�A("@.h.stdio") =dWJ=0:wi=17:kl=34:=0 =e.ݤjumpblock_stdio:�:��:�A("@.h.stdio") =f�[OPTC%�Sy%:.el DCDiJ:.oJ DCDzl:.Q_ DCDhl:.Ma DCD`l:.F_ DCDIJ:.wu%DCDau%:.tu%DCDru%:.vu%DCDxu%:.Pi DCDol:.al DCDAi:.Ui DCDxi:.Ni DCDni:.Zl DCDLu:]:=0 =g(ݤh_stdlib:�:��:�A("@.h.stdlib") =h=0 =i0ݤjumpblock_stdlib:�:��:�A("@.h.stdlib") =j�[OPTC%�Sy%:.Oy DCDhu:.cy DCDJl:.Pa DCDVi:.ey DCDll:.tJ DCDh_:.D_ DCDZa:.bl DCDQl:.J_ DCDQa:.__ DCD`u:.K_ DCDxJ:.S_ DCDdJ:.a_ DCDwJ:.Tu DCDP_:.Pl DCDt_:.uu DCDXl:]:=0 =k(ݤh_string:�:��:�A("@.h.string") =lSP%=0:[OPTC%:.Fu DCB0:.c_ DCB0:.Oi DCB0:.aJ DCB0:.nu DCB0:.Ul DCB0:.Bl DCB0:]:=0 =m0ݤjumpblock_string:�:��:�A("@.h.string") =n�[OPTC%�Sy%:.SJ DCDuJ:.bJ DCDwl:.vJ DCDb_:.Ou DCDH_:.Kl DCDru:.ky DCDFi:.ly DCDTJ:.QJ DCDml:.f_ DCDZi:.Ei DCDjJ:.ei DCDI_:.Ti DCDg_:.nJ DCDRu:.Y_ DCDCu:.C_ DCDMu:._J DCDvi:.Yi DCDmJ:.eJ DCDSu:.VJ DCDT_:.cu DCDy_:.zu DCDR_:.vu DCDri:.mu DCDTl =o�._i DCDv_:.Nl DCDBJ:.qi DCDu_:.Gi DCDrJ:.Ji DCDJu:.vl DCDyJ:.Ii DCDUa:.Gl DCD`J:.il DCDtu:.dl DCDMJ:._u DCDgu:.ju DCDn_:.au DCDd_:.Wu DCDDa:.Bu DCDFJ:.m_ DCDr_:.Ml DCDJa:.Yu DCDpu:.G_ DCDIl:]:=0 =p*ݤh_message:�:��:�A("@.h.message") =q=0 =r2ݤjumpblock_message:�:��:�A("@.h.message") =sE[OPTC%�Sy%:.sy DCDWa:.W_ DCD`_:.li DCDAl:.Sa DCDiu:.X_ DCDlu:]:=0 =t$ݤh_wimp:�:��:�A("@.h.wimp") =u�Nu=12:N_=0:P%=0:[OPTC%:.Qy DCB0:.Cl DCB0:.uy DCB0:.z_ DCB0:.ai DCB0:.Uy DCB0:.Na DCB0:.iy DCB0:.wy DCB0:.Qu DCB0:.Xu DCB0:.Hu DCB0:.Ga DCB0:.Vl DCB0:.i_ DCB0:.Xi DCB0:.EJ DCB0:]:P%=0:[OPTC%:.Aa DCB0:.Si DCB0:.Yy DCB0:.wu DCB0:.Eu DCB0:.Zu DCB0 =vy.LJ DCB0:.ii DCB0:.CJ DCB0:.Rl DCB0:.sl DCB0:.xu DCB0:]:P%=0:[OPTC%:.Wl DCB0:.kJ DCB0:.Fa DCB0:.gJ DCB0:.Vu DCB0:]:=0 =w,ݤjumpblock_wimp:�:��:�A("@.h.wimp") =x�[OPTC%�Sy%:.Ba DCDLl:.Iu DCDrl:.GJ DCDU_:.Ci DCDpl:.ry DCDl_:.Li DCDyl:.`y DCDhJ:.Yl DCDzi:.hy DCDo_:.KJ DCDKu:.L_ DCDgl:.bi DCDeu:.bu DCDDl:.ui DCDnl:.Ri DCDB_:.ki DCDdi:.yi DCDpi:.fu DCDAJ:]:=0 =y!��wy:�Ty%,A_%,U$:��:�+0:�jy%� =z)Ty%=!(�W("ProgInfo")+N+88+(16<<5)+20) ={�:Ty%=�e(o%,16) =|O�:�U$:A_%=�(U$):U$=�U$,2):ȕU$<>"":?Ty%=�(U$)�A_%:U$=�U$,2):Ty%+=1:�:?Ty%=0 =}8�"Λ�����������",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, =~� =���Xy:�M%:Xy%=13:�vy%Xy%:�qJ%� (H$)+2+1:M%=�A(512):M%!0=-1:M%!4=0:M%!8=-16:M%!12=68+(Xy%-5)*8*2:M%!16=84:M%!20=&1700312b:M%!24=vy%:$vy%="":$qJ%="S!BC":M%!28=qJ%:M%!32=Xy%:ș&400c2,,M%�UJ%:�C(M%,512):�U(Y):� =���U(KJ%):�KJ%<>Y� =�2�j("IconBar",KJ%+1):$vy%=��v("IconBar"),Xy%-1) =�!�:$vy%=�"UnRegistered",Xy%-1) =��:�xy(-1,UJ%,0,0,0):� =�ݤ_FileType_version=1 =�Sݤ_hard_initialise_FileType:�:��:�A("%.FileType: hard_initialise_FileType") =�$I=4095:JJ=4093:r=4091:xl=4089:=0 =�ݤ_IntMath_version=4 =� ݤ_hard_initialise_IntMath=0 =�ݤ_ModeInfo_version=5 =�!ݤ_hard_initialise_ModeInfo=0 =����dy(v%):ș53,v%,1�,,q_%:q_%+=1:ș53,v%,2�,,x_%:x_%+=1:ș53,v%,3�,,wJ%:wJ%+=1:ș53,v%,4�,,Wu%:ș53,v%,5�,,Bu%:ș53,v%,6�,,Qu%:ș53,v%,7�,,_u%:ș53,v%,9�,,r_%:JJ%=1<<r_%:ș53,v%,11�,,my%:my%+=1:ș53,v%,12�,,ty%:ty%+=1:Vu%=my%�q_%:hu%=ty%�x_% =�2uy%=(my%<<Wu%)-1:ry%=(ty%<<Bu%)-1:eu%=32�JJ%:� =�ݤ_Wimp_version=27 =�Kݤ_hard_initialise_Wimp:�c%:�:��:�A("%.Wimp: hard_initialise_Wimp") =��U<12� =�;�1,"%.Wimp needs more recent version of the LibHandler" =��:ș&400f2,0�c%:�c%=0� =�5�0,"Application needs to be run from the desktop" =���:�F("<BasicV$Lib>.Heap",8):�F("<BasicV$Lib>.Message",3):�F("<BasicV$Lib>.Template",1):Gy%=�:Dy%=3*1024:�X(dy%,Dy%):Dy%+=dy%:Cy%=dy%:�X(W%,512):m$="":x$="":H_%=0:H$="Application":T$="0.00 (01-Jan-1900)":Qy%=-1:p%=2400:Fy%=2401:Du%=16*1024:m%=�:=0 =�ݤJ(Xu%):=(Xu%�1)<>0 =���cy:ș&400d2,-1,-1:� =� ݤx(T%):ș&dcb8d,Yy,T%,-1:=� =�[��D_(Q%,qu%):�S%:S%=�A(128):!S%=Q%:ș&400cb,,S%:S%!28=qu%:ș&400e7,2,S%,Q%:�C(S%,128):� =�o��xy(T%,F%,IJ%,nu%,mu%):�M%:M%=�A(16):M%!0=T%:M%!4=F%:M%!8=nu%<<IJ%:M%!12=mu%<<IJ%:ș&400cd,,M%:�C(M%,16):� =�'ݤf(T%,F%):ș&dcb8c,wy,T%,F%�F%:=F% =�*��B(T%,F%,ou%):ș&dcb8c,iy,T%,F%,ou%:� =�f��p(T%,F%,y$):�M%,Zl%,lu%,Al%,Cl%,`u%,pu%:M%=�A(64):!M%=T%:M%!4=F%:ș&400ce,,M%:�((M%!24)�259)<>2� =� �G("Bad rename icon to "+y$) =�d�:ș&400c4,,M%:$(M%+28)=y$:M%!4=T%:ș&400c2,,M%+4:ș&400d1,T%,M%!8,M%!12,M%!16,M%!20:�C(M%,64):� =�&��jy(Q%,Z%):ș&dcb8c,Uy,Q%,Z%,+1:� =�&��sy(Q%,Z%):ș&dcb8c,Uy,Q%,Z%,-1:� =�K��M(WJ%,F$):�M%:M%=�A(300):M%!0=WJ%:$(M%+4)=F$+�(0):�Y(M%):�C(M%,300):� =���G(F$):�p%,F$:� =�M��J(WJ%):�M%:M%=�A(300):M%!0=Fy%:�i("LE"+�(WJ%),M%+4):�Y(M%):�C(M%,300):� =� ��Y(Yu%):ș&400df,Yu%,1,H$:� =����Uy:�M%:M%=�A(256):M%?0=1:M%?1=0:M%?2=0:M%?3=0:M%?4=0:M%?5=uy%�256:M%?6=uy%�256:M%?7=ry%�256:M%?8=ry%�256:ș7,21,M%:!M%=e_%:ș&400c6,,M%:�C(M%,256):� =�>��Q_(U%,D%,V%,F%):�:��:�A("%.Wimp: Mouse_Click_Query") =�5�Uy:U%=�Z("FN_Stop_Action_"+k$+"("+�(F%=0)+")"):� =�5ݤB(S%):�f$:f$="":ȕ?S%>31:f$+=�(?S%):S%+=1:�:=f$ =�/ݤS(M$):ȕ�M$,"."):M$=�M$,�M$,".")+1):�:=M$ =�(��N(T%,F%,J$):ș&dcb8c,uy,T%,F%,J$:� =�+ݤF(Q%,Z%):ș&dcb8c,Qy,Q%,Z%�Q%:=�B(Q%) =�'ݤe(Q%,Z%):ș&dcb8c,Qy,Q%,Z%�Q%:=Q% =�9ݤH(S$):�c%,a%,w%:ș&20008,17,S$�c%,,,,a%;w%:�J(w%)� =�(�P("Reason",�S(S$)):�c(c%):�G(�R(4)) =� �:�c%<>1� =� a%=-1 =� �:=a% =�!ݤA(Hy%):�My%:�(Cy%+Hy%)<Dy%� =�My%=Cy%:Cy%+=Hy% =��:�G("Wimp Stack full") =� �:=My% =���Jy:Cy%=dy%:� =�&��C(hy%,Hy%):�(hy%<dy%)�(hy%>Dy%)� =�,�G("Release_Stack: Invalid stack chunk") =��:�(Hy%<0)�((hy%+Hy%)>Dy%)� =�+�G("Release_Stack: Invalid chunk size") =��:Cy%-=Hy%:�Cy%<>hy%� =� �G("Release_Stack: Bad pop") =�� =�� =��:� =����uy(_$,y%,Lu%,ju%,Hu%,iu%):T$=�(y%)+"."+�"0"+�(Lu%),2):T$+=" ("+�"0"+�(ju%),2)+"-":T$+=�"CBJanFebMarAprMayJunJulAugSepOctNovDec",Hu%*3,3):T$+="-"+�"19"+�(iu%),4)+")":H$=_$:�P("App",H$):ș&400c0,200,&4b534154,_$�y%,Qy%:��G_ =�ș&606c0:�y%<200� =� �p%,�R(5) =� �:�m%� =�ș&81682,Qy% =�*�:Gy%=�:�fy:�`y:Gy%=-2:�Xy:�my:�jy%=0� =��N(o%,7,T$) =�O�:oJ%=-1:ky%=-1:P_%=-1:M_%=-1:pJ%=�:_J%=-1:Pu%=-1:w$="":g$="":�g:ș&606c1:� =���G_:ș&606c1:�Py%� =��M(Fy%,�$+" ["+Þ+"]") =��:�M(Fy%,�$) =��:�S:�:� =�.ݤProgInfo(Q%):�H(Q%!(88+(7<<5)+20),T$):=0 =���B_:�B_%,k_%:k_%=�:�m%� =�cy%=cy%��(49) =�1�:�:ș&400c7,cy%,W%�B_%:�m%�ș&81686,B_%,,Qy% =� ȎB_%� =� �0:�N_ =� �1:�U_ =� �2:�ey =� �3:�zy =� �4:�_y =� �5:�Py =� �6:�Ty =� �7:�by =� �8:�M_ =� �9:�C_ =��10:�P_ =��11:�Dy =��12:�T_ =� �17:�m =��18:�I_ =��19:�ly =��:��(k_%):� =���_y:�(m%)� =�.�M(p%,"Unexpected Pointer_Leaving_Window") =��:� =���Py:�(m%)� =�/�M(p%,"Unexpected Pointer_Entering_Window") =��:� =�*��P_:�G("Unexpected Scroll_Request"):� =�&��Dy:�G("Unexpected Lose_Caret"):� =�&��T_:�G("Unexpected Gain_Caret"):� =�G��my:�Z$(10):�F%(�(Z$(),1)):s$="�":Z$()=s$:F%()=-1:f_%=0:cy%=6193:� =�>��N_:�_%,q$,z%,W_%:�:��:�A("%.Wimp: Null_Reason_Code") =�0_%=�(Z$(),1):ȕ_%>0:_%-=1:q$=Z$(_%):�q$<>s$� =�z%=F%(_%):�z%=-1� =� W_%=�Z("FN_Null_Reason_"+q$) =�0�:W_%=�Z("FN_Null_Reason_"+q$+"("+�(z%)+")") =�#�:�W_%�(Z$(_%)=q$)�(F%(_%)=z%)� =�Z$(_%)=s$:f_%-=1 =�� =� �:�:� =�-��by:�U%:�:��:�A("%.Wimp: User_Drag") =�)U%=�Z("FN_Dragged_"+x$):�H_%<>(1*16)� =��Q =��:ș&400d0,,-1:x$="":� =����R(T%,F%,Iu%,B$):�S%,E%,N_%,Q_%:S%=�A(64):E%=�A(256):S%!0=T%:S%!4=F%:ș&400ce,,S%:E%!0=T%:ș&400cb,,E%:N_%=E%!20:Q_%=E%!24:S%!0=T%:S%!4=5:S%!8+=E%!4-N_%:S%!12+=E%!16-Q_%:S%!16+=E%!4-N_%:S%!20+=E%!16-Q_%:S%!24=0:S%!28=0:S%!32=uy%:S%!36=ry% =�5ș&400d0,,S%:�C(E%,256):�C(S%,64):x$=B$:H_%=Iu%:� =�5��I_:�:��:�A("%.Wimp: User_Message_Recorded") =��m:� =�+��m:�:��:�A("%.Wimp: User_Message") =�ȎW%!16� =� �0:�S =� �1:�yy >