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
>