REM Acorn Invaders REM Packed by Make v1.41 15/5/08 On 28 Aug 2008 ONERRORPROCA:END MODE28:OFF:a$="Acorn Invaders. (c)2008 DynaByte Software":PRINTa$:PRINTSTRING$(LEN(a$),"-"):PRINT:k$=".Resources.":l$=k$+"Graphics.":b$=k$+"Data.":r$=k$+"Sound.":aa%=FALSE:PRINT"Checking files...":IFNOTFNj(l$+"Gfx0","Sprites")THENaa%=TRUE IFNOTFNj(l$+"Gfx1","Charset")THENaa%=TRUE IFNOTFNj(r$+"Intro","Music")THENaa%=TRUE IFNOTFNj(b$+"Creds","Credits")THENaa%=TRUE IFNOTFNj(b$+"Msg","Messages")THENaa%=TRUE IFNOTFNj(b$+"ImgLUT","Lookups")THENaa%=TRUE IFNOTFNj(b$+"SWIs","Lookups")THENaa%=TRUE IFaa%THENERROR255,"File Missing!!" PRINT:PRINT"Loading Messages...";:ba%=FNs(b$+"Msg","SGSM"):DIMg%(ba%),b$(ba%):PROCl(b$+"Msg","SGSM",g%(),b$()):PRINTFNa(14):PRINTFNa(9)+" "+FNa(3);:ca%=FNs(b$+"ImgLUT","TULI"):DIMh%(ca%),c$(ca%):PROCl(b$+"ImgLUT","TULI",h%(),c$()):PRINTFNa(14) PRINTFNa(9)+" "+FNa(13);:da%=FNs(b$+"SWIs","TULS"):DIMi%(da%),d$(da%):PROCl(b$+"SWIs","TULS",i%(),d$()):PRINTFNa(14):PRINT:PRINTFNa(12):PRINTFNa(8)+" "+FNa(2):PROCB:e%=FNf(60,0):e%!0=1:e%!4=-1:e%!40=FNv(0):IFe%!40=-1THENERROR255,FNa(109) PRINTFNa(15)+STR$(e%!40):aa%=FALSE:e%!44=TRUE:e%!52=5:e%!56=5:ea%=0:DIMa$(10),d%(10):DIMe%(10):PRINTFNa(8)+" "+FNa(22):b%=0:a%=4:d%=8:m%=12:Q%=16:R%=20:w%=24:W%=28:fa%=32:ga%=36:ha%=40:ia%=44:ja%=48:ka%=52:la%=56:ma%=60:na%=64 oa%=16:pa%=20:qa%=24:`%=28:X%=32:ra%=16:sa%=20:PRINT:PRINTFNa(8)+" "+FNa(1)+" ";:ta%=0:SYSFNc(30)TOta%:PRINTFNa(21)+" "+STR$(ta%/100):e%!4=FNA(r$+"Intro"):PRINT:PRINTFNa(17)+" "+FNa(16):SYSFNc(1),,FNc(2)TOua%:PRINTFNa(9)+" "+FNa(4);:va%=FNw(l$+"Gfx0"):PRINTFNa(14) PRINTFNa(9)+" "+FNa(5);:wa%=FNw(l$+"Gfx1"):PRINTFNa(14):xa%=va%:PRINT:PRINTFNa(9)+" "+FNa(6);:H%=OPENIN(b$+"Creds"):INPUT#H%,i$:IFi$<>"DERC"THEN CLOSE#H%:ERROR255,FNa(101):END ENDIF INPUT#H%,ea%:DIMe$(ea%),f%(ea%):FORi%=1TOea%:INPUT#H%,f%(i%),e$(i%):NEXTi%:CLOSE#H%:PRINTFNa(14):PRINT:PRINTFNa(7):t$=b$+"HiTable":IFFNq(t$)<>1THEN IFNOTFNx(0,k$)THEN e%!44=FALSE:PRINTFNa(19)+" "+FNa(10)+" "+FNa(20) ELSE:PRINTFNa(19)+" "+FNa(11)+" "+FNa(20) ENDIF PROCC(e%!44) ELSE:IFNOTFNx(1,t$)THEN e%!44=FALSE:PRINTFNa(18)+" "+FNa(10)+" "+FNa(20) ELSE:PRINTFNa(18)+" "+FNa(11)+" "+FNa(20) ENDIF PROCD ENDIF PRINT:PRINTFNa(12):PROCe(150):h%=FNe(36):T%=FNe(24):O%=FNe(16):CLS:PROCq:h%!`%=FNd(8,1):h%!X%=FNd(8,2)+7:T%!d%=FNd(6,1):T%!m%=FNd(6,2):T%!ra%=h%!m%-50:T%!sa%=30:SYSFNc(33),e%!4:SYSFNc(36),e%!4,128:WHILENOTFNB:CLS:PROCE:ENDWHILE CLS:O%!d%=220:O%!m%=40:O%=FNt(O%,h%):O%!a%-=3:PROCm(O%):PROCr(FNa(31),10):IFe%!0=1THEN SYSFNc(36),e%!4,-1TO,ya%:FORi%=ya%TO0STEP-2:SYSFNc(36),e%!4,i%:PROCe(4):NEXTi%:SYSFNc(35),e%!4:SYSFNc(32),e%!4:e%!4=-1 ENDIF PROCs:END DEFFNB:LOCALi%,J%,K%,C%,S%,k%,Y%,za%,Aa%:LOCALo%,U%,Ba%,Ca%,Da%,Ea%,Fa%,Ga%,Ha%:LOCALx%,y%,M%,Ia%,s$,a$:Ia%=44:J%=FNf(16,0):K%=FNf(16,0):C%=FNf(16,0):k%=FNf(16,0):Y%=FNf(16,0):U%=FNf(16,0):o%=FNf(16,0):J%!d%=FNd(100,1):J%!m%=FNd(40,2) J%!b%=FNg(J%,h%):J%!a%=800:K%!d%=FNd(150,1):K%!m%=FNd(40,2):K%!b%=FNg(K%,h%):K%!a%=J%!a%-K%!m%:C%!d%=720:C%!m%=500:C%!b%=FNg(C%,h%):C%!a%=200:k%!d%=FNd(40,1):k%!m%=FNd(20,2):k%!b%=(C%!b%+C%!d%/2)-150:k%!a%=(C%!a%+C%!m%)-125 o%!d%=FNd(30,1):o%!m%=FNd(15,2):Y%!d%=FNd(20,1):Y%!m%=FNd(20,2):Y%!b%=(C%!b%+C%!d%/2)-150:Y%!b%+=FNg(Y%,k%):za%=FNh(Y%):Aa%=FNh(Y%)::Aa%!a%=k%!a%-40-Aa%!m%:za%!a%=Aa%!a%-40-za%!m%:Y%!a%=za%!a%-40-Y%!m% U%!d%=FNd(20,1):U%!m%=FNd(20,2):U%!b%=(C%!b%+C%!d%/2)-120:Ba%=FNh(U%):Ca%=FNh(U%):Da%=FNh(U%):Da%!b%=C%!b%:Ja%=FNh(Da%):Fa%=FNh(Da%):Ea%=FNh(U%):Ea%!b%=C%!b%:Ea%!b%+=(C%!d%/2)+10:Ga%=FNh(Ea%):Ha%=FNh(Ea%) :U%!a%=(C%!a%+C%!m%)-120:Ba%!a%=U%!a%-60:Ca%!a%=Ba%!a%-60:Fa%!a%=Ca%!a%-90:Ja%!a%=Fa%!a%-60:Da%!a%=Ja%!a%-60:Ea%!a%=Ca%!a%-90:Ga%!a%=Ea%!a%-60:Ha%!a%=Ga%!a%-60:CLS:PROCf(T%!ra%):PROCf(T%!sa%):PROCj:FORi%=0-J%!d%TOJ%!b%STEP5 WAIT:PROCa(FNb(100),i%,J%!a%):PROCe(1):NEXTi%:FORi%=h%!d%TOK%!b%STEP-5:WAIT:PROCa(FNb(101),i%,K%!a%):PROCe(1):NEXTi%:a$=FNa(32):S%=LEN(a$)*h%!`%:y%=170:PROCc(FNl(S%,h%!d%),y%,a$,11):a$=FNa(33):S%=LEN(a$)*h%!`%:y%-=h%!X%:PROCc(FNl(S%,h%!d%),y%,a$,11) WHILENOTINKEY(-99)ANDNOTINKEY(-17)ANDNOTINKEY(-82):y%=C%!a%+C%!m%:FORi%=1TOea%:a$=FNp(e$(i%)):x%=FNi(a$):CASEf%(i%)OF WHEN-1:y%-=h%!X% WHEN-2:y%-=(2*h%!X%) OTHERWISE:y%-=f%(i%) ENDCASE PROCc(x%,y%,a$,0):NEXTi%:M%=FNr:IFM%=1THEN=TRUE IFM%=2THEN=FALSE PROCd(C%):a$=FNa(57)+" "+FNa(34):x%=FNi(a$):y%=C%!a%+C%!m%-20:PROCc(x%,y%,a$,0):a$=FNa(35):y%-=h%!X%:x%=FNi(a$):PROCc(x%,y%,a$,0):x%=k%!b%+k%!d%+10:PROCa(FNb(11),k%!b%,k%!a%):a$=FNa(36)+" "+FNa(40):PROCc(x%,k%!a%+10,a$,0) PROCa(FNb(24),Aa%!b%,Aa%!a%):a$=FNa(37)+" "+FNa(40):PROCc(x%,Aa%!a%+12,a$,0):PROCa(FNb(22),za%!b%,za%!a%):a$=FNa(38)+" "+FNa(40):PROCc(x%,za%!a%+12,a$,0):PROCa(FNb(20),Y%!b%,Y%!a%):a$=FNa(39)+" "+FNa(40):PROCc(x%,Y%!a%+12,a$,0) S%=o%!d%/h%!`%+2:s$=FNa(66):a$=s$+STRING$(S%," ")+FNa(67):x%=FNi(a$):y%=Y%!a%-(3*h%!X%):PROCc(x%,y%,a$,0):o%!b%=x%+7+(LEN(s$)*h%!`%):o%!a%=y%:PROCa(FNb(1),o%!b%,o%!a%):M%=FNr:IFM%=1THEN=TRUE IFM%=2THEN=FALSE PROCd(C%):a$=FNa(41):x%=FNi(a$):y%=C%!a%+C%!m%-20:PROCc(x%,y%,a$,0):x%=U%!b%+U%!d%+10:PROCa(FNb(102),U%!b%,U%!a%):a$=FNa(42)+" "+FNa(43):PROCc(x%,U%!a%+12,a$,0):PROCa(FNb(103),Ba%!b%,Ba%!a%):a$=FNa(42)+" "+FNa(44):PROCc(x%,Ba%!a%+12,a$,0) PROCa(FNb(104),Ca%!b%,Ca%!a%):PROCc(x%,Ca%!a%+12,FNa(45),0):x%=Da%!b%+Da%!d%+10:PROCa(FNb(105),Ja%!b%,Ja%!a%):a$=FNa(46)+" "+FNa(49):PROCc(x%,Ja%!a%+12,a$,0):PROCa(FNb(117),Fa%!b%,Fa%!a%):PROCc(x%,Fa%!a%+12,FNa(76),0) PROCa(FNb(107),Da%!b%,Da%!a%):a$=FNa(48)+" "+FNa(49):PROCc(x%,Da%!a%+12,a$,0):x%=Ea%!b%+Ea%!d%+10:PROCa(FNb(106),Ea%!b%,Ea%!a%):a$=FNa(47)+" "+FNa(73):PROCc(x%,Ea%!a%+12,a$,0):PROCa(FNb(115),Ga%!b%,Ga%!a%):a$=FNa(47)+" "+FNa(77)+" ":a$+=FNa(74) PROCc(x%,Ga%!a%+12,a$,0):PROCa(FNb(116),Ha%!b%,Ha%!a%):a$=FNa(47)+" "+FNa(77)+" ":a$+=FNa(75):PROCc(x%,Ha%!a%+12,a$,0):M%=FNr:IFM%=1THEN=TRUE IFM%=2THEN=FALSE PROCd(C%):a$=FNa(50):IFe%!Ia%THENa$=FNa(51) x%=FNi(a$):y%=C%!a%+C%!m%-20:PROCc(x%,y%,a$,0):a$=FNa(58)+" "+FNa(52):x%=FNi(a$):y%-=h%!X%:PROCc(x%,y%,a$,0):y%=(C%!a%+C%!m%)-100:a$=" "+FNa(68)+" "+FNa(69):a$+=STRING$(12," ")+FNa(57)+".":a$+=STRING$(3," ")+FNa(60)+".":x%=FNi(a$):PROCc(x%,y%,a$,0):y%-=2*h%!X% FORi%=1TO10:IFi%<10THEN a$=" "+STR$(i%)+". " ELSE:a$=" "+STR$(i%)+". " ENDIF s$=FNp(a$(i%)):a$+=FNm(s$,8," ",FALSE):a$+=" .... ":a$+=FNy(STR$(d%(i%)),10):a$+=" ... "+FNy(STR$(e%(i%)),3):x%=FNi(a$):PROCc(x%,y%-(i%*(h%!X%+5)),a$,0):NEXTi%:M%=FNr:IFM%=1THEN=TRUE IFM%=2THEN=FALSE PROCd(C%):ENDWHILE:ERROR255,FNa(102):=FALSE DEFFNr:LOCALt%,M%:t%=TIME+750:M%=FALSE:REPEAT:IFINKEY(-82)THENPROCt IFINKEY(-102)THENPROCu IFINKEY(-59)THENPROCk(4) IFINKEY(-60)THENPROCk(-4) UNTILTIME>=t%ORINKEY(-17)ORINKEY(-99):IFINKEY(-17)THENM%=1 IFINKEY(-99)THENM%=2 IFM%THEN PROCb(J%):PROCb(K%):PROCb(C%):PROCb(k%):PROCb(Y%):PROCb(za%):PROCb(Aa%):PROCb(U%):PROCb(Ba%):PROCb(Ca%):PROCb(Da%):PROCb(Ea%):PROCb(Ja%):PROCb(Fa%):PROCb(Ga%):PROCb(Ha%):PROCb(o%) ENDIF =M% DEFFNi(a$):LOCALS%:S%=LEN(a$)*h%!`%:=C%!b%+FNl(S%,C%!d%) DEFPROCE:LOCALo%,v%,k%,f%,A%:LOCALG%:LOCALc%(),a%():LOCALb%(),Ka%:LOCALLa%,Ma%,Na%,Oa%:LOCALPa%,Qa%,Ra%:LOCALSa%:LOCALTa%,Ua%,Va%,Wa%,Xa%:LOCALYa%,S%,a$,x%,y%,i%,j%:o%=FNe(32):v%=FNe(28):k%=FNe(48):f%=FNe(68):G%=FNe(16):A%=FNf(16,0) La%=0:Ma%=4:Na%=8:Oa%=12:Sa%=16:Pa%=28:Ka%=56:Ta%=ga%:Ua%=ha%:Va%=ia%:Wa%=la%:Xa%=ma%:DIMc%(10,6),a%(10),b%(e%!Ka%):o%!d%=FNd(30,1):o%!m%=FNd(15,2):o%!b%=FNg(o%,h%):o%!a%=50:o%!R%=6:o%!Q%=o%!R% G%!d%=FNd(20,1):G%!m%=FNd(20,2):k%!d%=FNd(40,1):k%!m%=FNd(20,2):k%!a%=T%!ra%-(10+k%!m%):k%!R%=5:k%!w%=FALSE:k%!ha%=1:v%!d%=FNd(5,1):v%!m%=FNd(20,2):v%!w%=FALSE:v%!R%=10:A%!Na%=1:A%!La%=3:A%!Oa%=FALSE e%!Sa%=-1:f%!Ta%=FNd(20,1):f%!Ua%=10:f%!Va%=6:f%!w%=TRUE:f%!Xa%=4:SYSFNc(6)TOf%!na%:PROCF:PROCG:PROCf(T%!ra%):PROCf(T%!sa%):PROCH(0,d%(1),A%!La%,A%!Na%):PROCI:PROCv:PROCa(FNb(1),o%!b%,o%!a%):WHILEA%!La%>0:Ya%=FALSE:IFe%!Pa%=0THEN IFINKEY(-74)THENPROCJ(o%!b%,o%!a%) IFINKEY(-98)THENPROCK:Ya%=TRUE IFINKEY(-67)THENPROCL:Ya%=TRUE IFINKEY(-17)THENPROCM ENDIF IFINKEY(-102)THENPROCu IFINKEY(-82)THENPROCt IFINKEY(-56)THENPROCN IFINKEY(-59)THENPROCk(4) IFINKEY(-60)THENPROCk(-4) IFe%!Pa%=0THEN IFYa%THEN o%!b%+=o%!Q%:PROCa(FNb(1),o%!b%,o%!a%) ENDIF ENDIF IFe%!Pa%=0THEN PROCO:PROCP:PROCQ:PROCR:PROCS:PROCT ELSE:PROCU ENDIF WAIT:ENDWHILE:O%!d%=240:O%!m%=40:O%=FNt(O%,h%):O%!a%-=3:PROCd(O%):PROCm(O%):a$=FNa(49)+" "+FNa(53):PROCr(a$,11):PROCe(750):IFNOTA%!Oa%THEN IFA%!Ma%>=d%(10)THEN PROCV(A%) ENDIF ENDIF PROCb(o%):PROCb(f%):PROCb(k%):PROCb(v%):PROCb(A%):PROCb(G%):FORi%=1TO10:PROCb(a%(i%)):NEXTi%:FORi%=1TOe%!Ka%:PROCb(b%(i%)):NEXTi%:ENDPROC DEFPROCK:IFo%!b%<=0THEN o%!b%=0 ELSE:o%!Q%=0-o%!R% ENDIF ENDPROC DEFPROCL:IFo%!b%>=h%!d%-o%!d%THEN o%!b%=h%!d%-o%!d% ELSE:o%!Q%=0+o%!R% ENDIF ENDPROC DEFPROCJ(x%,y%):IFNOTv%!w%THEN v%!w%=TRUE:v%!b%=x%+(o%!d%/2):v%!a%=y%+o%!m%:PROCg(4) ENDIF ENDPROC DEFPROCt:LOCALL%,Za%,u$:L%=40:Za%=44:IFe%!Za%THEN REPEAT:UNTILNOTINKEY(-82):e%!L%=FNv(e%!L%):IFe%!L%=-1THENERROR255,FNa(109) u$=".Screens.Dump"+STR$(e%!L%):OSCLI"ScreenSave "+u$ ENDIF ENDPROC DEFPROCM:LOCALi%:FORi%=1TO7:a%(i%)!w%=FALSE:NEXTi%:A%!La%=0:A%!Oa%=TRUE:ENDPROC DEFPROCu:LOCAL_a%,`a%:_a%=0:`a%=4:REPEAT:UNTILNOTINKEY(-102):e%!_a%+=1:IFe%!_a%>2THENe%!_a%=0 IFe%!_a%=1THEN SYSFNc(33),e%!`a% ELSE:SYSFNc(34),e%!`a% ENDIF PROCj:ENDPROC DEFPROCk(ab%):LOCAL_a%,`a%,bb%,D%,ya%,cb%:_a%=0:`a%=4:bb%=8:IFe%!_a%=1THEN SYSFNc(6)TOD%:IFD%-e%!bb%>=10THEN SYSFNc(36),e%!`a%,-1TO,ya%:cb%=ya%+ab%:IFcb%>=0ANDcb%<=128THEN SYSFNc(36),e%!`a%,cb%:e%!bb%=D% ENDIF ENDIF ENDIF ENDPROC DEFPROCN:LOCALPa%,Qa%,a$:Pa%=28:Qa%=32:REPEATUNTILNOTINKEY(-56):a$=FNa(49)+" "+FNa(61):e%!Pa%=FNn(e%!Pa%):e%!Qa%=e%!Pa%:IFe%!Pa%=0THEN a$=STRING$(LEN(a$)," "):PROCn(a$) ENDIF ENDPROC DEFPROCO:IFv%!w%THEN IFv%!a%>=T%!ra%-v%!m%THEN v%!w%=FALSE:v%!a%-=2:PROCd(v%) ELSE:PROCa(FNb(5),v%!b%,v%!a%) ENDIF v%!a%+=v%!R% ENDIF ENDPROC DEFPROCP:LOCALdb%,eb%,fb%,D%,Z%,d$:db%=fa%:eb%=ga%:fb%=ha%:IFNOTk%!w%THEN IFFNo(4)ANDFNo(5)THEN k%!w%=TRUE:k%!W%=FALSE:k%!eb%=0:IFFNo(50)THEN k%!Q%=0-k%!R%:k%!b%=h%!d% ELSE:k%!Q%=0+k%!R%:k%!b%=0-k%!d% ENDIF ENDIF ELSE:IFk%!b%<=0-k%!d%ANDSGN(k%!Q%)=-1THEN k%!db%=FALSE:k%!w%=FALSE:ENDPROC ENDIF IFk%!b%>h%!d%ANDSGN(k%!Q%)=1THEN k%!db%=FALSE:k%!w%=FALSE:ENDPROC ENDIF IFNOTk%!W%THEN IFFNk(v%,k%)THEN PROCd(v%):PROCa(FNb(12),k%!b%,k%!a%):SYSFNc(6)TOk%!db%:k%!W%=TRUE:v%!w%=FALSE:PROCh(500) ENDIF ELSE:IFFNk(v%,k%)THEN PROCd(v%):v%!w%=FALSE ENDIF ENDIF IFNOTk%!W%THEN SYSFNc(6)TOD%:IFD%-k%!fb%>=40THEN k%!fb%=D%:k%!eb%=FNn(k%!eb%) ENDIF d$=FNb(10)+STR$(k%!eb%):PROCa(d$,k%!b%,k%!a%):k%!b%+=k%!Q% ELSE:SYSFNc(6)TOD%:Z%=D%-k%!db%:IFZ%>=300THEN k%!w%=FALSE:k%!eb%=1:PROCd(k%) ELSE:IFZ%>=250THEN PROCa(FNb(15),k%!b%,k%!a%) ELSE:IFZ%>=200THEN PROCa(FNb(14),k%!b%,k%!a%) ELSE:IFZ%>=100THEN PROCa(FNb(13),k%!b%,k%!a%) ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDPROC DEFPROCQ:LOCALgb%,z%,I%,P%,hb%,ib%,jb%,kb%:LOCALN%,lb%,mb%,D%,nb%,ob%,pb%:N%=fa%:lb%=ja%:mb%=ka%:nb%=na%:ob%=52:pb%=56:SYSFNc(6)TOD%:IFD%-f%!nb%>=50THEN f%!nb%=D%:f%!N%=FNn(f%!N%) ENDIF gb%=f%!b%+f%!d%:kb%=0-((f%!lb%-1)*(G%!d%+f%!Ta%)):IFgb%>=h%!d%THEN f%!Q%=0-f%!R%:PROCw ENDIF IFf%!b%<=kb%THEN f%!Q%=0+f%!R%:PROCw ENDIF kb%=f%!a%+((f%!Wa%-1)*G%!m%):IFkb%<=o%!a%+o%!m%THEN PROCW:ENDPROC ENDIF IFFNk(v%,f%)THEN z%=G%!d%+f%!Ta%:IF(v%!b%-f%!b%)MODz%<=G%!d%THEN I%=((v%!a%-f%!a%)DIVG%!m%)+1:P%=((v%!b%-f%!b%)DIVz%)+1:IFSGN(c%(P%,I%))=1THEN c%(P%,I%)=-5:PROCd(v%):v%!w%=FALSE:f%!W%+=1:PROCg(1):CASEI%OF WHEN1,2:PROCh(50) WHEN3,4:PROCh(75) WHEN5,6:PROCh(100) ENDCASE ENDIF ENDIF ENDIF IFf%!W%>=f%!Ua%*f%!Va%THEN A%!Na%+=1:PROCd(f%):PROCf(T%!sa%):PROCi(A%!La%):PROCo(A%!Na%):PROCj:PROCa(FNb(1),o%!b%,o%!a%):PROCX:PROCv:PROCx:IFA%!Na%>5THENe%!ob%=7 IFA%!Na%>10THENe%!ob%=10 ENDIF hb%=TRUE:ib%=TRUE:FORI%=1TOf%!Va%:IFc%(f%!mb%,I%)<>0THENhb%=FALSE IFc%(f%!lb%,I%)<>0THENib%=FALSE NEXTI%:jb%=TRUE:FORP%=1TOf%!Ua%:IFc%(P%,f%!Wa%)<>0THENjb%=FALSE NEXTP%:IFib%THENf%!lb%+=1 IFhb%THEN f%!d%-=(G%!d%+f%!Ta%):f%!mb%-=1 ENDIF IFjb%THENf%!Wa%+=1 f%!b%+=f%!Q%:PROCp:ENDPROC DEFPROCR:LOCALi%,j%,D%,ob%,pb%:ob%=52:pb%=56:FORi%=1TOe%!ob%:IFNOTa%(i%)!w%THEN PROCY(i%) ELSE:PROCZ(i%):IFa%(i%)!a%<=T%!sa%+(T%!m%+5)THEN a%(i%)!w%=FALSE:PROCd(a%(i%)) ENDIF IFFNk(a%(i%),o%)ANDa%(i%)!w%THEN PROC_(i%) ENDIF FORj%=1TOe%!pb%:IFFNk(a%(i%),b%(j%))THEN PROCy(j%,FALSE):PROCd(a%(i%)):a%(i%)!w%=FALSE ENDIF NEXTj%:IFFNk(v%,a%(i%))THEN PROC`(i%) ENDIF IFa%(i%)!W%THEN PROCaa(i%) ENDIF ENDIF NEXTi%:ENDPROC DEFPROCU:LOCALPa%,Qa%,Ra%,D%,a$:Pa%=28:Qa%=32:Ra%=36:SYSFNc(6)TOD%:IFD%-e%!Ra%>=50THEN e%!Qa%=FNn(e%!Qa%):e%!Ra%=D% ENDIF a$=FNa(49)+" "+FNa(61):IFe%!Qa%=0ORe%!Pa%=0THEN a$=STRING$(LEN(a$)," ") ENDIF PROCn(a$):ENDPROC DEFPROCT:LOCALSa%,qb%,rb%,D%,a$:Sa%=16:qb%=20:rb%=24:IFe%!Sa%>=0THEN SYSFNc(6)TOD%:a$=FNa(66)+" "+FNa(72):IFD%-e%!rb%>=50THEN e%!rb%=D%:e%!qb%=FNn(e%!qb%):IFe%!qb%=1THENe%!Sa%+=1 ENDIF IFe%!qb%=0THEN a$=STRING$(LEN(a$)," ") ENDIF IFe%!Sa%>5THEN a$=STRING$(LEN(a$)," "):e%!Sa%=-1 ENDIF PROCn(a$) ENDIF ENDPROC DEFPROCS:LOCALi%,D%,sb%,nb%,p%:sb%=56:nb%=ga%:p%=FNe(16):FORi%=1TOe%!sb%:IFFNk(v%,b%(i%))THEN PROCd(v%):v%!w%=FALSE:PROCy(i%,TRUE) ENDIF IFb%(i%)!W%THEN SYSFNc(6)TOD%:IFD%-b%(i%)!nb%>=5THEN p%!b%=b%(i%)!b%:p%!d%=b%(i%)!d%:p%!a%=b%(i%)!a%-5:p%!m%=b%(i%)!m%+10:PROCd(p%):PROCa(FNb(16),b%(i%)!b%,b%(i%)!a%):b%(i%)!W%=FALSE ENDIF ENDIF NEXTi%:PROCb(p%):ENDPROC DEFPROCC(tb%):LOCALi%,n$:FORi%=1TO10:IFi%MOD2=0THENn$=FNa(71)ELSEn$=FNa(70) a$(i%)=FNp(n$):d%(i%)=(11-i%)*1000:e%(i%)=0:NEXTi%:IFtb%THENPROCz ENDPROC DEFPROCD:LOCALi%,H%:H%=OPENIN(b$+"HiTable"):FORi%=1TO10:INPUT#H%,a$(i%),d%(i%),e%(i%):NEXTi%:CLOSE#H%:ENDPROC DEFPROCz:LOCALi%,H%:H%=OPENOUT(b$+"HiTable"):FORi%=1TO10:PRINT#H%,a$(i%),d%(i%),e%(i%):NEXTi%:CLOSE#H%:ENDPROC DEFPROCV(A%):LOCALK%,J%,ub%,g%,i%,vb%,S%,x%,y%,a$:LOCALIa%:J%=FNe(16):K%=FNe(16):Ia%=44:J%!d%=FNd(100,1):J%!m%=FNd(40,2):J%!b%=FNg(J%,h%):J%!a%=800:K%!d%=FNd(150,1):K%!m%=FNd(40,2):K%!b%=FNg(K%,h%):K%!a%=J%!a%-K%!m%:vb%=0:FORi%=10TO1STEP-1 IFA%!Ma%>=d%(i%)THENvb%=i% NEXTi%:FORi%=9TOvb%STEP-1:a$(i%+1)=a$(i%):d%(i%+1)=d%(i%):e%(i%+1)=e%(i%):NEXTi%:d%(vb%)=A%!Ma%:e%(vb%)=A%!Na%:CLS:PROCf(T%!ra%):PROCf(T%!sa%):PROCa(FNb(100),J%!b%,J%!a%):PROCa(FNb(101),K%!b%,K%!a%):a$=FNa(54)+" "+STR$(A%!Ma%) a$+=" "+FNa(55)+" "+STR$(vb%)+FNC(vb%):S%=LEN(a$)*h%!`%:x%=FNl(S%,h%!d%):y%=K%!a%-170:PROCc(x%,y%,a$,0):PROCb(J%):PROCb(K%):O%!d%=165:O%!m%=40:O%=FNt(O%,h%):PROCm(O%):x%=O%!b%+20:y%=O%!a%+12:a$="":i%=1:ub%=FALSE OSCLI"FX 21,0":REPEAT:g%=GET:CASEg%OF WHEN13:ub%=TRUE WHEN8:i%-=1:a$=LEFT$(a$,i%-1) OTHERWISE:IFi%<9ANDFND(g%)THENi%+=1:a$+=CHR$(g%) ENDCASE IFi%<1THENi%=1 PROCc(x%,y%,STRING$(8," "),0):IFa$<>""THENPROCc(x%,y%,a$,0) UNTILub%:IFa$=""ORa$=" "THENa$=FNa(56) a$(vb%)=FNp(a$):IFe%!Ia%THENPROCz ENDPROC DEFFND(wb%):LOCALxb%:xb%=FALSE:IFwb%>=32ANDwb%<=126THENxb%=TRUE =xb% DEFPROCH(yb%,zb%,l%,r%):LOCALx%,a$:a$=FNa(57)+" "+FNa(59):a$+=FNm(STR$(yb%),10," ",TRUE):PROCc(0,h%!m%-h%!X%,a$,0):a$=FNa(58)+" "+FNa(57):a$+=" "+FNa(59)+FNm(STR$(zb%),10," ",TRUE):x%=h%!d%-LEN(a$)*h%!`%:PROCc(x%,h%!m%-h%!X%,a$,0):PROCi(l%):PROCo(r%):PROCj:ENDPROC DEFPROCi(L%):LOCALa$:PROCa(FNb(1),0,0):a$=" = "+STR$(L%):PROCc(o%!d%,0,a$,0):ENDPROC DEFPROCo(L%):LOCALx%,a$:a$=FNa(60)+" "+FNa(59):a$+=FNm(STR$(L%),3,"0",TRUE):x%=h%!d%-LEN(a$)*h%!`%:PROCc(x%,0,a$,0):ENDPROC DEFPROCn(a$):LOCALx%,y%,S%:S%=LEN(a$)*h%!`%:x%=FNl(S%,h%!d%):y%=h%!m%-h%!X%:PROCc(x%,y%,a$,0):ENDPROC DEFPROCh(Ab%):LOCALBb%,Sa%,x%,a$:Bb%=12:Sa%=16:A%!Ma%+=Ab%:a$=FNa(57)+" "+FNa(59):a$+=FNm(STR$(A%!Ma%),10," ",TRUE):PROCc(0,h%!m%-h%!X%,a$,0):IFA%!Ma%-e%!Bb%>=5000THEN A%!La%+=1:PROCi(A%!La%):e%!Bb%=A%!Ma%:e%!Sa%=0 ENDIF IFA%!Ma%>d%(1)THEN a$=FNa(58)+" "+FNa(57)+" ":a$+=FNa(59):a$+=FNm(STR$(A%!Ma%),10," ",TRUE):x%=h%!d%-LEN(a$)*h%!`%:PROCc(x%,h%!m%-h%!X%,a$,0) ENDIF ENDPROC DEFPROCj:LOCALCb%,Db%,d$:Db%=FNe(16):Cb%=0:Db%!d%=FNd(20,1):Db%!m%=FNd(10,2):Db%!b%=FNg(Db%,h%):Db%!a%=0:IFe%!Cb%<0ORe%!Cb%>2THEN ERROR255,FNa(111)+" "+STR$(e%!Cb%) ENDIF d$=FNb(120+e%!Cb%):PROCa(d$,Db%!b%,Db%!a%):PROCb(Db%):ENDPROC DEFPROCI:LOCALN%,lb%,mb%,Wa%:N%=fa%:lb%=ja%:mb%=ka%:Wa%=la%:PROCx:PROCp:ENDPROC DEFPROCx:LOCALI%,P%,s%:f%!b%=50:f%!a%=550:f%!N%=0:f%!W%=0:f%!R%=3:f%!Q%=f%!R%:f%!lb%=1:f%!mb%=f%!Ua%:f%!Wa%=1:s%=(f%!Ua%*G%!d%)+((f%!Ua%-1)*f%!Ta%):f%!d%=s%:f%!m%=f%!Va%*G%!m%:FORP%=1TOf%!Ua%:FORI%=1TOf%!Va% c%(P%,I%)=((I%+1)/2)+(f%!N%*10):NEXTI%:NEXTP%:ENDPROC DEFPROCp:LOCALI%,P%,x%,y%,p%:p%=FNe(16):FORP%=f%!lb%TOf%!mb%:x%=f%!b%+((P%-1)*(G%!d%+f%!Ta%)):FORI%=f%!Wa%TOf%!Va%:y%=f%!a%+((I%-1)*G%!m%):IFc%(P%,I%)>0THEN c%(P%,I%)=((I%+1)/2)+(f%!N%*10) ENDIF IFc%(P%,I%)<>0THEN CASESGN(c%(P%,I%))OF WHEN-1:PROCba(x%,y%,P%,I%) WHEN1:PROCa(FNb(27)+STR$(c%(P%,I%)),x%,y%) ENDCASE ELSE:p%!b%=x%:p%!a%=y%:p%!d%=G%!d%:p%!m%=G%!m%:PROCd(p%) ENDIF NEXTI%:NEXTP%:PROCb(p%):ENDPROC DEFPROCba(x%,y%,r%,c%):LOCALp%:c%(r%,c%)+=1:PROCa(FNb(26),x%,y%):IFc%(r%,c%)=0THEN p%=FNe(16):p%!b%=x%:p%!a%=y%:p%!d%=G%!d%:p%!m%=G%!m%:PROCd(p%):PROCb(p%) ENDIF ENDPROC DEFPROCw:LOCALp%,i%:p%=FNe(16):FORi%=1TO3:f%!a%-=G%!m%/3:PROCp:NEXTi%:p%!b%=f%!b%:p%!a%=f%!a%+f%!m%:p%!d%=f%!d%:p%!m%=G%!m%:PROCd(p%):PROCb(p%):ENDPROC DEFPROCW:LOCALV%,Eb%,D%,Fb%,Gb%,R%,i%,o$:R%=1:Hb%=24:V%=FNe(28):Eb%=FNe(28):PROCd(f%):PROCd(o%):IFv%!w%THEN PROCd(v%):v%!w%=FALSE ENDIF IFk%!w%THEN PROCd(k%):k%!w%=FALSE ENDIF PROCca:PROCda:o%!b%=FNg(o%,h%):V%!b%=0-G%!d%:V%!a%=o%!a%:V%!Q%=R%:Eb%!b%=h%!d%:Eb%!a%=o%!a%:Eb%!Q%=0-R%:A%!La%=0:PROCf(T%!sa%):PROCi(A%!La%):PROCo(A%!Na%):PROCa(FNb(1),o%!b%,o%!a%):N%=0:Gb%=FALSE:REPEAT:V%!b%+=V%!Q%:V%!Hb%=V%!b%+G%!d%:Eb%!b%+=Eb%!Q% SYSFNc(6)TOD%:IFD%-Fb%>=50THENGb%=FNn(Gb%):Fb%=D% IFGb%THENo$=FNb(21)ELSEo$=FNb(20) PROCa(o$,V%!b%,V%!a%):PROCa(o$,Eb%!b%,Eb%!a%):PROCe(2):WAIT:UNTILV%!Hb%>=o%!b%:FORi%=1TO10:PROCa(FNb(20),V%!b%,V%!a%):PROCa(FNb(20),Eb%!b%,Eb%!a%):PROCe(20):PROCa(FNb(21),V%!b%,V%!a%):PROCa(FNb(21),Eb%!b%,Eb%!a%):PROCe(20):WAIT:NEXTi%:PROCg(2):FORi%=1TO3 PROCa(FNb(2)+STR$(i%),o%!b%,o%!a%):PROCe(20):WAIT:NEXTi%:PROCe(20):PROCd(o%):PROCb(V%):PROCb(Eb%):ENDPROC DEFPROCF:LOCALi%,Z%,Fb%:Z%=ha%:Fb%=ia%:FORi%=1TO10:a%(i%)=FNf(48,0):a%(i%)!d%=FNd(5,1):a%(i%)!m%=FNd(20,2):SYSFNc(6)TOa%(i%)!Z%:SYSFNc(6)TOa%(i%)!Fb%:a%(i%)!w%=FALSE:NEXTi%:ENDPROC DEFPROCY(q%):LOCALIb%,Jb%,Kb%,Lb%,x%,y%:LOCALN%,Mb%:N%=fa%:Mb%=ga%:Ib%=RND(10):Kb%=A%!Na%+5:IFKb%>100THEN Kb%=100:IFA%!Na%MOD10=0THENf%!Xa%+=1 ENDIF IFFNo(Kb%)ANDFNo(f%!Xa%)THEN IFc%(Ib%,f%!Wa%)>0THEN x%=f%!b%+(Ib%-1)*(G%!d%+f%!Ta%):y%=f%!a%+((f%!Wa%-1)*G%!m%)-G%!m%:Jb%=(G%!d%/2)-(a%(q%)!d%/2):a%(q%)!b%=x%+Jb%:a%(q%)!a%=y%:a%(q%)!w%=TRUE:a%(q%)!W%=FALSE:a%(q%)!Mb%=1:a%(q%)!N%=0:Lb%=4:IFFNo(25)THENa%(q%)!Mb%=2:Lb%=Lb%/2 a%(q%)!R%=Lb%:a%(q%)!Q%=a%(q%)!R%:PROCg(3) ENDIF ENDIF ENDPROC DEFPROCZ(q%):LOCALD%,N%,Fb%,Mb%,d$,p$:N%=fa%:Mb%=ga%:Fb%=ia%:SYSFNc(6)TOD%:IFD%-a%(q%)!Fb%>=40THEN a%(q%)!Fb%=D%:a%(q%)!N%+=1 ENDIF :IFa%(q%)!Mb%=1ANDa%(q%)!N%>1THEN a%(i%)!N%=0 ENDIF IFa%(q%)!Mb%=2ANDa%(q%)!N%>3THEN a%(q%)!N%=0 ENDIF p$=STR$(a%(q%)!N%):IFa%(q%)!Mb%=2ANDa%(q%)!N%=3THEN p$="1" ENDIF d$=FNb(30)+STR$(a%(q%)!Mb%)+p$:IFNOTa%(q%)!W%THEN a%(q%)!a%-=a%(q%)!Q%:PROCa(d$,a%(q%)!b%,a%(q%)!a%) ELSE:d$=FNb(30)+"3":PROCa(d$,a%(q%)!b%,a%(q%)!a%) ENDIF ENDPROC DEFPROC_(q%):LOCALi%:PROCg(2):FORi%=1TO3:PROCa(FNb(2)+STR$(i%),o%!b%,o%!a%):PROCe(20):WAIT:NEXTi%:PROCd(o%):IFv%!w%THEN PROCd(v%):v%!w%=FALSE ENDIF o%!b%=FNg(o%,h%):A%!La%-=1:PROCi(A%!La%):PROCd(a%(q%)):a%(q%)!w%=FALSE:PROCa(FNb(1),o%!b%,o%!a%):ENDPROC DEFPROC`(q%):LOCALMb%,Z%:Mb%=ga%:Z%=ha%:IFa%(q%)!Mb%=1THEN IFNOTa%(q%)!W%THEN a%(q%)!W%=TRUE:PROCh(5):d$=FNb(30)+"3":PROCa(d$,a%(q%)!b%,a%(q%)!a%):SYSFNc(6)TOa%(q%)!Z% ENDIF ENDIF PROCd(v%):v%!w%=FALSE:ENDPROC DEFPROCaa(q%):LOCALZ%,D%:Z%=ha%:SYSFNc(6)TOD%:IFD%-a%(q%)!Z%>=40THEN PROCd(a%(q%)):a%(q%)!w%=FALSE ENDIF ENDPROC DEFPROCca:LOCALi%,Nb%:Nb%=52:FORi%=1TOe%!Nb%:IFa%(i%)!w%THEN PROCd(a%(i%)):a%(i%)!w%=FALSE ENDIF NEXTi%:ENDPROC DEFPROCG:LOCALi%,x%,Ob%,Pb%,L%:L%=e%!56:Pb%=fa%:Ob%=h%!d%/L%:x%=Ob%-150:FORi%=1TOL%:b%(i%)=FNf(48,0):b%(i%)!d%=FNd(30,1):b%(i%)!m%=FNd(15,2):b%(i%)!b%=x%+((i%-1)*Ob%):b%(i%)!a%=o%!a%+100:b%(i%)!w%=TRUE:b%(i%)!Pb%=0:NEXTi%:ENDPROC DEFPROCX:LOCALi%,Pb%,L%:L%=e%!56:Pb%=fa%:FORi%=1TOL%:b%(i%)!w%=TRUE:b%(i%)!Pb%=0:NEXTi%:ENDPROC DEFPROCv:LOCALi%,L%:L%=e%!56:FORi%=1TOL%:IFb%(i%)!w%THEN PROCa(FNb(16),b%(i%)!b%,b%(i%)!a%) ENDIF NEXTi%:ENDPROC DEFPROCy(q%,Qb%):LOCALy%,Pb%:Pb%=fa%:nb%=ga%:b%(q%)!Pb%+=1:IFb%(q%)!Pb%>=10THEN PROCd(b%(q%)):b%(q%)!w%=FALSE ELSE:y%=b%(q%)!a%:IFQb%THENy%+=5ELSEy%-=5 PROCd(b%(q%)):PROCa(FNb(16),b%(q%)!b%,y%):b%(q%)!W%=TRUE:SYSFNc(6)TOb%(q%)!nb% ENDIF ENDPROC DEFPROCda:LOCALi%,p%,L%:L%=e%!56:FORi%=1TOL%:b%(i%)!w%=FALSE:NEXTi%:p%=FNe(16):p%!b%=0:p%!a%=b%(1)!b%:p%!d%=h%!d%:p%!m%=b%(1)!m%:PROCd(p%):PROCb(p%):ENDPROC DEFFNw(e$):LOCALRb%,F%:F%=FNE(e$)+256:Rb%=FNe(F%):!Rb%=F%:Rb%!4=0:Rb%!8=16:Rb%!12=16:SYSua%,256+10,Rb%,e$:SYSua%,256+17,Rb%:=Rb% DEFPROCc(x%,y%,a$,Sb%):LOCALi%,Tb%:xa%=wa%:Tb%=h%!`%:FORi%=1TOLEN(a$):PROCa(STR$(ASC(MID$(a$,i%,1))),x%+((i%-1)*Tb%),y%):IFSb%>0THENPROCe(Sb%) NEXTi%:xa%=va%:ENDPROC DEFPROCa(z$,x%,y%):LOCALUb%:SYSua%,256+24,xa%,z$TO,,Ub%:SYSua%,512+34,xa%,Ub%,x%,y%,0:ENDPROC DEFPROCd(E%):GCOL0,0TINT0:RECTANGLEFILLE%!b%,E%!a%,E%!d%,E%!m%:ENDPROC DEFFNl(Vb%,h%):=(h%/2)-(Vb%/2) DEFPROCr(a$,Wb%):LOCALS%,y%:S%=LEN(a$)*h%!`%:y%=(h%!m%/2)-(h%!X%/2):PROCc(FNl(S%,h%!d%),y%,a$,Wb%):ENDPROC DEFFNg(Xb%,Yb%):=(Yb%!d%/2)-(Xb%!d%/2) DEFFNt(Xb%,Yb%):LOCALx%,y%:Xb%!b%=(Yb%!d%/2)-(Xb%!d%/2):Xb%!a%=(Yb%!m%/2)-(Xb%!m%/2):=Xb% DEFPROCf(a%):LOCALi%,Zb%:Zb%=h%!d%/T%!d%:FORi%=1TOZb%+1:PROCa(FNb(108),(i%-1)*T%!d%,a%):NEXTi%:ENDPROC DEFPROCm(E%):LOCALx%,y%,_b%,`b%,ac%,bc%,i%:_b%=FNd(3,1):`b%=FNd(3,2):ac%=1:bc%=3:FORi%=1TOE%!d%:x%=E%!b%+((i%-1)*ac%):PROCa(FNb(113),x%,E%!a%):PROCa(FNb(113),x%,E%!a%+(E%!m%-(2*bc%))):NEXTi%:x%=E%!b%+(E%!d%-_b%):FORi%=1TOE%!m%-1 PROCa(FNb(114),E%!b%,E%!a%+((i%-1)*ac%)):PROCa(FNb(114),x%,E%!a%+((i%-1)*ac%)):NEXTi%:PROCa(FNb(111),E%!b%,E%!a%):PROCa(FNb(109),E%!b%,(E%!a%+E%!m%)-`b%):PROCa(FNb(112),E%!b%+(E%!d%-_b%),E%!a%):x%=(E%!b%+E%!d%)-_b%:y%=(E%!a%+E%!m%)-`b% PROCa(FNb(110),x%,y%):ENDPROC DEFFNs(e$,i$):LOCALcc%,dc%,j$:cc%=OPENIN(e$):INPUT#cc%,j$:IFj$<>i$THENCLOSE#cc%:ERROR255,"Bad Magic!" INPUT#cc%,dc%:CLOSE#cc%:=dc% DEFPROCl(e$,i$,RETURNj%(),RETURNf$()):LOCALcc%,i%,dc%,j$:cc%=OPENIN(e$):INPUT#cc%,j$:IFj$<>i$THENCLOSE#cc%:ERROR255,"Bad Magic!" INPUT#cc%,dc%:FORi%=1TOdc%:INPUT#cc%,j%(i%),f$(i%):NEXTi%:CLOSE#cc%:ENDPROC DEFFNa(ec%):=FNu(ec%,ba%,g%(),b$(),106) DEFFNb(ec%):=FNu(ec%,ca%,h%(),c$(),107) DEFFNc(ec%):=FNu(ec%,da%,i%(),d$(),108) DEFFNu(ec%,fc%,k%(),g$(),gc%):LOCALi%,hc%:hc%=0:FORi%=1TOfc%:IFk%(i%)=ec%THENhc%=i%:i%=fc% NEXTi%:IFhc%=0THEN IFec%>=106ANDec%<=108THEN ERROR255,"Missing message!!!" ELSE:ERROR255,FNa(gc%)+" "+STR$(ec%) ENDIF ENDIF =FNp(g$(hc%)) DEFFNA(e$):LOCALH%:H%=0:SYSFNc(31),,e$TOH%:=H% DEFPROCg(ic%):LOCALCb%,v$:Cb%=0:v$=FNa(110)+" "+STR$(ic%):IFe%!Cb%>0THEN IFic%<1ANDic%>4THENERROR255,v$ OSCLI"SPlay_fire0"+STR$(ic%)+"mhh" ENDIF ENDPROC DEFPROCq:LOCALp%:p%=FNe(20):p%!0=4:p%!4=5:p%!8=11:p%!12=12:p%!16=-1:SYSFNc(5),p%,p%:h%!oa%=p%!0:h%!pa%=p%!4:h%!d%=(p%!8)+1<h%!qa%THENPROCq CASEjc%OF WHEN1:kc%=F%<>h%!oa% WHEN4:kc%=F%>>h%!pa% OTHERWISE:ERROR255,FNa(103)+" "+STR$(jc%) ENDCASE =kc% DEFFNk(E%,mc%):LOCALnc%,oc%,pc%,qc%:pc%=FALSE:qc%=FALSE:IFE%!w%ANDmc%!w%THEN nc%=mc%!b%+mc%!d%:oc%=mc%!a%+mc%!m%:IFE%!b%>=mc%!b%ANDE%!b%=mc%!a%ANDE%!a%-1THEN SYS"TimPlayer_SongStop",e%!4:SYS"TimPlayer_SongUnload",e%!4 ENDIF PROCs:ENDPROC DEFFNj(A$,w$):LOCALf$,M%,hc%:hc%=FALSE:f$=STRING$(10," "):RIGHT$(f$,3)=" : ":LEFT$(f$,LEN(w$))=w$:M%=FNq(A$):IFM%=1THEN f$+="OK.":hc%=TRUE ELSE:f$+="Missing!!" ENDIF PRINTf$:=hc% DEFFNv(dc%):LOCALg$,q$:q$=".Screens.":g$="Dump"+STR$(dc%):IFFNq(q$+g$)<>0THEN REPEAT:dc%+=1:g$="Dump"+STR$(dc%):UNTILFNq(q$+g$)=0ORLEN(g$)>10:IFLEN(g$)>10THENdc%=-1 ENDIF =dc% DEFFNo(n%):LOCALrc%:rc%=RND(100):=rc%<=n% DEFFNp(a$):LOCALi%,x$:FORi%=1TOLEN(a$):x$+=CHR$(ASC(MID$(a$,i%,1))EOR131):NEXTi%:=x$ DEFPROCe(n%):LOCALt%:t%=TIME+n%:REPEAT:UNTILTIME>=t%:ENDPROC DEFFNn(n%):=n%EOR1 DEFFNC(n%):LOCALc$,u%:u%=VAL(RIGHT$(STR$(n%),1)):c$=FNa(65):IFu%>=1ANDu%<=3THENc$=FNa(u%+61) =c$ DEFFNm(a$,sc%,y$,tc%):LOCALuc%,c$:uc%=sc%-LEN(a$):IFuc%<=0THEN c$=LEFT$(a$,sc%) ELSE:IFtc%THEN c$=STRING$(sc%,y$):RIGHT$(c$,LEN(a$))=a$ ELSE:c$=a$+STRING$(uc%,y$) ENDIF ENDIF =c$ DEFFNy(a$,sc%):LOCALc$:c$=STRING$(sc%," "):RIGHT$(c$,LEN(a$))=a$:=c$ DEFFNq(h$):LOCALhc%:SYS"XOS_File",17,h$TOhc%:=hc% DEFFNE(h$):LOCALF%:SYSFNc(3),5,h$TO,,,,F%:=F% DEFFNx(jc%,h$):LOCALH%,vc%,wc%,xc%:xc%=FALSE:CASEjc%OF WHEN0:H%=OPENUP(h$+"chkfile") WHEN1:H%=OPENUP(h$) OTHERWISE:ERROR255,FNa(104)+" "+STR$(jc%) ENDCASE IFH%<>0THEN SYSFNc(4),254,H%TOwc%;vc%:IF(vc%AND1)THENCLOSE#H%:ERROR255,FNa(105) IF((wc%AND(1<<7))<>0)THENxc%=TRUE CLOSE#H% ENDIF =xc% DEFPROCB:LOCALyc%:zc%=0:Ac%=0:SYSFNc(10),-1,-1TOBc%:SYSFNc(11)TOCc%;yc%:IFyc%AND1THENCc%=16384 PROCea(Cc%):ENDPROC DEFPROCs:IFzc%THEN SYSFNc(10),zc%-32768,-1TOBc%:zc%=0:Ac%=0 ENDIF ENDPROC DEFFNe(_%):LOCALB%,F%:F%=(_%+15)AND-4:B%=FNF(F%):IFB%ELSEERROR254,FNa(211) B%!0=&DEADDEAD:B%!4=_%:!(B%-8+(B%!-4))=&DEADDEAD:=B%+8 DEFFNf(_%,Ab%):LOCALB%:B%=FNe(_%):PROCfa(B%,Ab%):=B% DEFPROCb(RETURNB%):IFFNG(B%)THENERROR254,FNa(212) IFFNH(B%)THENERROR254,FNa(213) B%-=8:Ac%-=B%!-4:SYSFNc(12),3,zc%,B%:B%=0:ENDPROC DEFFNz(B%):LOCALp%:p%=B%-4:=p%!0 DEFPROCfa(B%,Ab%):LOCALkb%,F%:F%=FNz(B%):FORkb%=0TOF%-4STEP4:B%!kb%=Ab%:NEXTkb%:ENDPROC DEFFNh(B%):LOCALDc%,kb%,F%:F%=FNz(B%):Dc%=FNe(F%):FORkb%=0TOF%-4STEP4:Dc%!kb%=B%!kb%:NEXTkb%:=Dc% DEFFNG(B%):B%-=8:IFB%!0<>&DEADDEADTHEN=TRUE =FALSE DEFFNH(B%):B%-=8:IF!(B%-8+(B%!-4))<>&DEADDEADTHEN=TRUE =FALSE DEFPROCea(F%):IFzc%THENERROR254,FNa(215) F%=(F%+Cc%-1)ANDNOT(Cc%-1):zc%=HIMEM:SYSFNc(10),Bc%+F%,-1TOBc%:F%=Bc%+32768-zc%:IFF%<1THEN zc%=0:ERROR254,FNa(216) ELSE:SYSFNc(12),0,zc%,,F% ENDIF Ac%=0:ENDPROC DEFPROCga(_%):LOCALEc%:Ec%=Bc%:SYSFNc(10),Bc%+_%,-1TOBc%:_%=Bc%-Ec%:IF_%THENSYSFNc(12),5,zc%,,_%TO,,,_% ENDPROC DEFFNF(_%):LOCALB%,yc%:SYSFNc(13),2,zc%,,_%TO,,B%;yc%:IFyc%AND1THEN PROCga((_%+Cc%)ANDNOT(Cc%-1)):SYSFNc(13),2,zc%,,_%TO,,B%;yc%:IFyc%AND1THEN=0 ENDIF Ac%+=B%!-4:=B%