REM Acorn Invaders REM Packed by Make v1.41 15/5/08 On 27 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:f%=FNf(60,0):f%!0=1:f%!4=-1:f%!40=FNv(0):IFf%!40=-1THENERROR255,FNa(109) PRINTFNa(15)+STR$(f%!40):aa%=FALSE:f%!44=TRUE:f%!52=5:f%!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):f%!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 f%!44=FALSE:PRINTFNa(19)+" "+FNa(10)+" "+FNa(20) ELSE:PRINTFNa(19)+" "+FNa(11)+" "+FNa(20) ENDIF PROCC(f%!44) ELSE:IFNOTFNx(1,t$)THEN f%!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),f%!4:SYSFNc(36),f%!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):IFf%!0=1THEN SYSFNc(36),f%!4,-1TO,ya%:FORi%=ya%TO0STEP-2:SYSFNc(36),f%!4,i%:PROCe(4):NEXTi%:SYSFNc(35),f%!4:SYSFNc(32),f%!4:f%!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):IFf%!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%,e%,A%:LOCALG%:LOCALc%(),a%():LOCALb%():LOCALKa%,La%,Ma%,Na%:LOCALOa%,Pa%,Qa%:LOCALRa%:LOCALSa%,Ta%,Ua%,Va%,Wa%:LOCALXa%,S%,a$,x%,y%,i%,j%:o%=FNe(32):v%=FNe(28):k%=FNe(48):e%=FNe(68):G%=FNe(16):A%=FNf(16,0):DIMc%(10,6),a%(10),b%(f%!56) Ka%=0:La%=4:Ma%=8:Na%=12:Ra%=16:Oa%=28:Sa%=ga%:Ta%=ha%:Ua%=ia%:Va%=la%:Wa%=ma%: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%!Ma%=1:A%!Ka%=3:A%!Na%=FALSE:f%!Ra%=-1:e%!Sa%=FNd(20,1):e%!Ta%=10:e%!Ua%=6:e%!w%=TRUE:e%!Wa%=4 SYSFNc(6)TOe%!na%:PROCF:PROCG:PROCf(T%!ra%):PROCf(T%!sa%):PROCH(0,d%(1),A%!Ka%,A%!Ma%):PROCI:PROCv:PROCa(FNb(1),o%!b%,o%!a%):WHILEA%!Ka%>0:Xa%=FALSE:IFf%!Oa%=0THEN IFINKEY(-74)THENPROCJ(o%!b%,o%!a%) IFINKEY(-98)THENPROCK:Xa%=TRUE IFINKEY(-67)THENPROCL:Xa%=TRUE IFINKEY(-17)THENPROCM ENDIF IFINKEY(-102)THENPROCu IFINKEY(-82)THENPROCt IFINKEY(-56)THENPROCN IFINKEY(-59)THENPROCk(4) IFINKEY(-60)THENPROCk(-4) IFf%!Oa%=0THEN IFXa%THEN o%!b%+=o%!Q%:PROCa(FNb(1),o%!b%,o%!a%) ENDIF ENDIF IFf%!Oa%=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%!Na%THEN IFA%!La%>=d%(10)THEN PROCV(A%) ENDIF ENDIF PROCb(o%):PROCb(e%):PROCb(k%):PROCb(v%):PROCb(A%):PROCb(G%):FORi%=1TO7:PROCb(a%(i%)):NEXTi%:FORi%=1TO4: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%,Ya%,u$:L%=40:Ya%=44:IFf%!Ya%THEN REPEAT:UNTILNOTINKEY(-82):f%!L%=FNv(f%!L%):IFf%!L%=-1THENERROR255,FNa(109) u$=".Screens.Dump"+STR$(f%!L%):OSCLI"ScreenSave "+u$ ENDIF ENDPROC DEFPROCM:LOCALi%:FORi%=1TO7:a%(i%)!w%=FALSE:NEXTi%:A%!Ka%=0:A%!Na%=TRUE:ENDPROC DEFPROCu:LOCALZa%,_a%:Za%=0:_a%=4:REPEAT:UNTILNOTINKEY(-102):f%!Za%+=1:IFf%!Za%>2THENf%!Za%=0 IFf%!Za%=1THEN SYSFNc(33),f%!_a% ELSE:SYSFNc(34),f%!_a% ENDIF PROCj:ENDPROC DEFPROCk(`a%):LOCALZa%,_a%,ab%,D%,ya%,bb%:Za%=0:_a%=4:ab%=8:IFf%!Za%=1THEN SYSFNc(6)TOD%:IFD%-f%!ab%>=10THEN SYSFNc(36),f%!_a%,-1TO,ya%:bb%=ya%+`a%:IFbb%>=0ANDbb%<=128THEN SYSFNc(36),f%!_a%,bb%:f%!ab%=D% ENDIF ENDIF ENDIF ENDPROC DEFPROCN:LOCALOa%,Pa%,a$:Oa%=28:Pa%=32:REPEATUNTILNOTINKEY(-56):a$=FNa(49)+" "+FNa(61):f%!Oa%=FNn(f%!Oa%):f%!Pa%=f%!Oa%:IFf%!Oa%=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:LOCALcb%,db%,eb%,D%,Z%,d$:cb%=fa%:db%=ga%:eb%=ha%:IFNOTk%!w%THEN IFFNo(4)ANDFNo(5)THEN k%!w%=TRUE:k%!W%=FALSE:k%!db%=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%!cb%=FALSE:k%!w%=FALSE:ENDPROC ENDIF IFk%!b%>h%!d%ANDSGN(k%!Q%)=1THEN k%!cb%=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%!cb%: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%!eb%>=40THEN k%!eb%=D%:k%!db%=FNn(k%!db%) ENDIF d$=FNb(10)+STR$(k%!db%):PROCa(d$,k%!b%,k%!a%):k%!b%+=k%!Q% ELSE:SYSFNc(6)TOD%:Z%=D%-k%!cb%:IFZ%>=300THEN k%!w%=FALSE:k%!db%=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:LOCALfb%,z%,I%,P%,gb%,hb%,ib%,jb%:LOCALN%,kb%,lb%,D%,mb%,nb%,ob%:N%=fa%:kb%=ja%:lb%=ka%:mb%=na%:nb%=52:ob%=56:SYSFNc(6)TOD%:IFD%-e%!mb%>=50THEN e%!mb%=D%:e%!N%=FNn(e%!N%) ENDIF fb%=e%!b%+e%!d%:jb%=0-((e%!kb%-1)*(G%!d%+e%!Sa%)):IFfb%>=h%!d%THEN e%!Q%=0-e%!R%:PROCw ENDIF IFe%!b%<=jb%THEN e%!Q%=0+e%!R%:PROCw ENDIF jb%=e%!a%+((e%!Va%-1)*G%!m%):IFjb%<=o%!a%+o%!m%THEN PROCW:ENDPROC ENDIF IFFNk(v%,e%)THEN z%=G%!d%+e%!Sa%:IF(v%!b%-e%!b%)MODz%<=G%!d%THEN I%=((v%!a%-e%!a%)DIVG%!m%)+1:P%=((v%!b%-e%!b%)DIVz%)+1:IFSGN(c%(P%,I%))=1THEN c%(P%,I%)=-5:PROCd(v%):v%!w%=FALSE:e%!W%+=1:PROCg(1):CASEI%OF WHEN1,2:PROCh(50) WHEN3,4:PROCh(75) WHEN5,6:PROCh(100) ENDCASE ENDIF ENDIF ENDIF IFe%!W%>=e%!Ta%*e%!Ua%THEN A%!Ma%+=1:PROCd(e%):PROCf(T%!sa%):PROCi(A%!Ka%):PROCo(A%!Ma%):PROCj:PROCa(FNb(1),o%!b%,o%!a%):PROCX:PROCv:PROCx:IFA%!Ma%>5THENf%!nb%=7 IFA%!Ma%>10THENf%!nb%=10 ENDIF gb%=TRUE:hb%=TRUE:FORI%=1TOe%!Ua%:IFc%(e%!lb%,I%)<>0THENgb%=FALSE IFc%(e%!kb%,I%)<>0THENhb%=FALSE NEXTI%:ib%=TRUE:FORP%=1TOe%!Ta%:IFc%(P%,e%!Va%)<>0THENib%=FALSE NEXTP%:IFhb%THENe%!kb%+=1 IFgb%THEN e%!d%-=(G%!d%+e%!Sa%):e%!lb%-=1 ENDIF IFib%THENe%!Va%+=1 e%!b%+=e%!Q%:PROCp:ENDPROC DEFPROCR:LOCALi%,j%,D%,nb%,ob%:nb%=52:ob%=56:FORi%=1TOf%!nb%: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%=1TOf%!ob%: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:LOCALOa%,Pa%,Qa%,D%,a$:Oa%=28:Pa%=32:Qa%=36:SYSFNc(6)TOD%:IFD%-f%!Qa%>=50THEN f%!Pa%=FNn(f%!Pa%):f%!Qa%=D% ENDIF a$=FNa(49)+" "+FNa(61):IFf%!Pa%=0ORf%!Oa%=0THEN a$=STRING$(LEN(a$)," ") ENDIF PROCn(a$):ENDPROC DEFPROCT:LOCALRa%,pb%,qb%,D%,a$:Ra%=16:pb%=20:qb%=24:IFf%!Ra%>=0THEN SYSFNc(6)TOD%:a$=FNa(66)+" "+FNa(72):IFD%-f%!qb%>=50THEN f%!qb%=D%:f%!pb%=FNn(f%!pb%):IFf%!pb%=1THENf%!Ra%+=1 ENDIF IFf%!pb%=0THEN a$=STRING$(LEN(a$)," ") ENDIF IFf%!Ra%>5THEN a$=STRING$(LEN(a$)," "):f%!Ra%=-1 ENDIF PROCn(a$) ENDIF ENDPROC DEFPROCS:LOCALi%,D%,rb%,mb%,p%:rb%=56:mb%=ga%:p%=FNe(16):FORi%=1TOf%!rb%:IFFNk(v%,b%(i%))THEN PROCd(v%):v%!w%=FALSE:PROCy(i%,TRUE) ENDIF IFb%(i%)!W%THEN SYSFNc(6)TOD%:IFD%-b%(i%)!mb%>=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(sb%):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%:IFsb%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%,tb%,g%,i%,ub%,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%:ub%=0:FORi%=10TO1STEP-1 IFA%!La%>=d%(i%)THENub%=i% NEXTi%:FORi%=9TOub%STEP-1:a$(i%+1)=a$(i%):d%(i%+1)=d%(i%):e%(i%+1)=e%(i%):NEXTi%:d%(ub%)=A%!La%:e%(ub%)=A%!Ma%: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%!La%) a$+=" "+FNa(55)+" "+STR$(ub%)+FNC(ub%):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:tb%=FALSE OSCLI"FX 21,0":REPEAT:g%=GET:CASEg%OF WHEN13:tb%=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) UNTILtb%:IFa$=""ORa$=" "THENa$=FNa(56) a$(ub%)=FNp(a$):IFf%!Ia%THENPROCz ENDPROC DEFFND(vb%):LOCALwb%:wb%=FALSE:IFvb%>=32ANDvb%<=126THENwb%=TRUE =wb% DEFPROCH(xb%,yb%,l%,r%):LOCALx%,a$:a$=FNa(57)+" "+FNa(59):a$+=FNm(STR$(xb%),10," ",TRUE):PROCc(0,h%!m%-h%!X%,a$,0):a$=FNa(58)+" "+FNa(57):a$+=" "+FNa(59)+FNm(STR$(yb%),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(zb%):LOCALAb%,Ra%,x%,a$:Ab%=12:Ra%=16:A%!La%+=zb%:a$=FNa(57)+" "+FNa(59):a$+=FNm(STR$(A%!La%),10," ",TRUE):PROCc(0,h%!m%-h%!X%,a$,0):IFA%!La%-f%!Ab%>=5000THEN A%!Ka%+=1:PROCi(A%!Ka%):f%!Ab%=A%!La%:f%!Ra%=0 ENDIF IFA%!La%>d%(1)THEN a$=FNa(58)+" "+FNa(57)+" ":a$+=FNa(59):a$+=FNm(STR$(A%!La%),10," ",TRUE):x%=h%!d%-LEN(a$)*h%!`%:PROCc(x%,h%!m%-h%!X%,a$,0) ENDIF ENDPROC DEFPROCj:LOCALBb%,Cb%,d$:Cb%=FNe(16):Bb%=0:Cb%!d%=FNd(20,1):Cb%!m%=FNd(10,2):Cb%!b%=FNg(Cb%,h%):Cb%!a%=0:IFf%!Bb%<0ORf%!Bb%>2THEN ERROR255,FNa(111)+" "+STR$(f%!Bb%) ENDIF d$=FNb(120+f%!Bb%):PROCa(d$,Cb%!b%,Cb%!a%):PROCb(Cb%):ENDPROC DEFPROCI:LOCALN%,kb%,lb%,Va%:N%=fa%:kb%=ja%:lb%=ka%:Va%=la%:PROCx:PROCp:ENDPROC DEFPROCx:LOCALI%,P%,s%:e%!b%=50:e%!a%=550:e%!N%=0:e%!W%=0:e%!R%=3:e%!Q%=e%!R%:e%!kb%=1:e%!lb%=e%!Ta%:e%!Va%=1:s%=(e%!Ta%*G%!d%)+((e%!Ta%-1)*e%!Sa%):e%!d%=s%:e%!m%=e%!Ua%*G%!m%:FORP%=1TOe%!Ta%:FORI%=1TOe%!Ua% c%(P%,I%)=((I%+1)/2)+(e%!N%*10):NEXTI%:NEXTP%:ENDPROC DEFPROCp:LOCALI%,P%,x%,y%,p%:p%=FNe(16):FORP%=e%!kb%TOe%!lb%:x%=e%!b%+((P%-1)*(G%!d%+e%!Sa%)):FORI%=e%!Va%TOe%!Ua%:y%=e%!a%+((I%-1)*G%!m%):IFc%(P%,I%)>0THEN c%(P%,I%)=((I%+1)/2)+(e%!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:e%!a%-=G%!m%/3:PROCp:NEXTi%:p%!b%=e%!b%:p%!a%=e%!a%+e%!m%:p%!d%=e%!d%:p%!m%=G%!m%:PROCd(p%):PROCb(p%):ENDPROC DEFPROCW:LOCALV%,Db%,D%,Eb%,Fb%,R%,i%,o$:R%=1:Gb%=24:V%=FNe(28):Db%=FNe(28):PROCd(e%):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%:Db%!b%=h%!d%:Db%!a%=o%!a%:Db%!Q%=0-R%:A%!Ka%=0:PROCf(T%!sa%):PROCi(A%!Ka%):PROCo(A%!Ma%):PROCa(FNb(1),o%!b%,o%!a%):N%=0:Fb%=FALSE:REPEAT:V%!b%+=V%!Q%:V%!Gb%=V%!b%+G%!d%:Db%!b%+=Db%!Q% SYSFNc(6)TOD%:IFD%-Eb%>=50THENFb%=FNn(Fb%):Eb%=D% IFFb%THENo$=FNb(21)ELSEo$=FNb(20) PROCa(o$,V%!b%,V%!a%):PROCa(o$,Db%!b%,Db%!a%):PROCe(2):WAIT:UNTILV%!Gb%>=o%!b%:FORi%=1TO10:PROCa(FNb(20),V%!b%,V%!a%):PROCa(FNb(20),Db%!b%,Db%!a%):PROCe(20):PROCa(FNb(21),V%!b%,V%!a%):PROCa(FNb(21),Db%!b%,Db%!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(Db%):ENDPROC DEFPROCF:LOCALi%,Z%,Eb%:Z%=ha%:Eb%=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%)!Eb%:a%(i%)!w%=FALSE:NEXTi%:ENDPROC DEFPROCY(q%):LOCALHb%,Ib%,Jb%,Kb%,x%,y%:LOCALN%,Lb%:N%=fa%:Lb%=ga%:Hb%=RND(10):Jb%=A%!Ma%+5:IFJb%>100THEN Jb%=100:IFA%!Ma%MOD10=0THENe%!Wa%+=1 ENDIF IFFNo(Jb%)ANDFNo(e%!Wa%)THEN IFc%(Hb%,e%!Va%)>0THEN x%=e%!b%+(Hb%-1)*(G%!d%+e%!Sa%):y%=e%!a%+((e%!Va%-1)*G%!m%)-G%!m%:Ib%=(G%!d%/2)-(a%(q%)!d%/2):a%(q%)!b%=x%+Ib%:a%(q%)!a%=y%:a%(q%)!w%=TRUE:a%(q%)!W%=FALSE:a%(q%)!Lb%=1:a%(q%)!N%=0:Kb%=4:IFFNo(25)THENa%(q%)!Lb%=2:Kb%=Kb%/2 a%(q%)!R%=Kb%:a%(q%)!Q%=a%(q%)!R%:PROCg(3) ENDIF ENDIF ENDPROC DEFPROCZ(q%):LOCALD%,N%,Eb%,Lb%,d$,p$:N%=fa%:Lb%=ga%:Eb%=ia%:SYSFNc(6)TOD%:IFD%-a%(q%)!Eb%>=40THEN a%(q%)!Eb%=D%:a%(q%)!N%+=1 ENDIF :IFa%(q%)!Lb%=1ANDa%(q%)!N%>1THEN a%(i%)!N%=0 ENDIF IFa%(q%)!Lb%=2ANDa%(q%)!N%>3THEN a%(q%)!N%=0 ENDIF p$=STR$(a%(q%)!N%):IFa%(q%)!Lb%=2ANDa%(q%)!N%=3THEN p$="1" ENDIF d$=FNb(30)+STR$(a%(q%)!Lb%)+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%!Ka%-=1:PROCi(A%!Ka%):PROCd(a%(q%)):a%(q%)!w%=FALSE:PROCa(FNb(1),o%!b%,o%!a%):ENDPROC DEFPROC`(q%):LOCALLb%,Z%:Lb%=ga%:Z%=ha%:IFa%(q%)!Lb%=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%,Mb%:Mb%=52:FORi%=1TOf%!Mb%:IFa%(i%)!w%THEN PROCd(a%(i%)):a%(i%)!w%=FALSE ENDIF NEXTi%:ENDPROC DEFPROCG:LOCALi%,x%,Nb%,Ob%,L%:L%=f%!56:Ob%=fa%:Nb%=h%!d%/L%:x%=Nb%-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)*Nb%):b%(i%)!a%=o%!a%+100:b%(i%)!w%=TRUE:b%(i%)!Ob%=0:NEXTi%:ENDPROC DEFPROCX:LOCALi%,Ob%,L%:L%=f%!56:Ob%=fa%:FORi%=1TOL%:b%(i%)!w%=TRUE:b%(i%)!Ob%=0:NEXTi%:ENDPROC DEFPROCv:LOCALi%,L%:L%=f%!56:FORi%=1TOL%:IFb%(i%)!w%THEN PROCa(FNb(16),b%(i%)!b%,b%(i%)!a%) ENDIF NEXTi%:ENDPROC DEFPROCy(q%,Pb%):LOCALy%,Ob%:Ob%=fa%:mb%=ga%:b%(q%)!Ob%+=1:IFb%(q%)!Ob%>=10THEN PROCd(b%(q%)):b%(q%)!w%=FALSE ELSE:y%=b%(q%)!a%:IFPb%THENy%+=5ELSEy%-=5 PROCd(b%(q%)):PROCa(FNb(16),b%(q%)!b%,y%):b%(q%)!W%=TRUE:SYSFNc(6)TOb%(q%)!mb% ENDIF ENDPROC DEFPROCda:LOCALi%,p%,L%:L%=f%!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$):LOCALQb%,F%:F%=FNE(e$)+256:Qb%=FNe(F%):!Qb%=F%:Qb%!4=0:Qb%!8=16:Qb%!12=16:SYSua%,256+10,Qb%,e$:SYSua%,256+17,Qb%:=Qb% DEFPROCc(x%,y%,a$,Rb%):LOCALi%,Sb%:xa%=wa%:Sb%=h%!`%:FORi%=1TOLEN(a$):PROCa(STR$(ASC(MID$(a$,i%,1))),x%+((i%-1)*Sb%),y%):IFRb%>0THENPROCe(Rb%) NEXTi%:xa%=va%:ENDPROC DEFPROCa(z$,x%,y%):LOCALTb%:SYSua%,256+24,xa%,z$TO,,Tb%:SYSua%,512+34,xa%,Tb%,x%,y%,0:ENDPROC DEFPROCd(E%):GCOL0,0TINT0:RECTANGLEFILLE%!b%,E%!a%,E%!d%,E%!m%:ENDPROC DEFFNl(Ub%,h%):=(h%/2)-(Ub%/2) DEFPROCr(a$,Vb%):LOCALS%,y%:S%=LEN(a$)*h%!`%:y%=(h%!m%/2)-(h%!X%/2):PROCc(FNl(S%,h%!d%),y%,a$,Vb%):ENDPROC DEFFNg(Wb%,Xb%):=(Xb%!d%/2)-(Wb%!d%/2) DEFFNt(Wb%,Xb%):LOCALx%,y%:Wb%!b%=(Xb%!d%/2)-(Wb%!d%/2):Wb%!a%=(Xb%!m%/2)-(Wb%!m%/2):=Wb% DEFPROCf(a%):LOCALi%,Yb%:Yb%=h%!d%/T%!d%:FORi%=1TOYb%+1:PROCa(FNb(108),(i%-1)*T%!d%,a%):NEXTi%:ENDPROC DEFPROCm(E%):LOCALx%,y%,Zb%,_b%,`b%,ac%,i%:Zb%=FNd(3,1):_b%=FNd(3,2):`b%=1:ac%=3:FORi%=1TOE%!d%:x%=E%!b%+((i%-1)*`b%):PROCa(FNb(113),x%,E%!a%):PROCa(FNb(113),x%,E%!a%+(E%!m%-(2*ac%))):NEXTi%:x%=E%!b%+(E%!d%-Zb%):FORi%=1TOE%!m%-1 PROCa(FNb(114),E%!b%,E%!a%+((i%-1)*`b%)):PROCa(FNb(114),x%,E%!a%+((i%-1)*`b%)):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%-Zb%),E%!a%):x%=(E%!b%+E%!d%)-Zb%:y%=(E%!a%+E%!m%)-_b% PROCa(FNb(110),x%,y%):ENDPROC DEFFNs(e$,i$):LOCALbc%,cc%,j$:bc%=OPENIN(e$):INPUT#bc%,j$:IFj$<>i$THENCLOSE#bc%:ERROR255,"Bad Magic!" INPUT#bc%,cc%:CLOSE#bc%:=cc% DEFPROCl(e$,i$,RETURNj%(),RETURNf$()):LOCALbc%,i%,cc%,j$:bc%=OPENIN(e$):INPUT#bc%,j$:IFj$<>i$THENCLOSE#bc%:ERROR255,"Bad Magic!" INPUT#bc%,cc%:FORi%=1TOcc%:INPUT#bc%,j%(i%),f$(i%):NEXTi%:CLOSE#bc%:ENDPROC DEFFNa(dc%):=FNu(dc%,ba%,g%(),b$(),106) DEFFNb(dc%):=FNu(dc%,ca%,h%(),c$(),107) DEFFNc(dc%):=FNu(dc%,da%,i%(),d$(),108) DEFFNu(dc%,ec%,k%(),g$(),fc%):LOCALi%,gc%:gc%=0:FORi%=1TOec%:IFk%(i%)=dc%THENgc%=i%:i%=ec% NEXTi%:IFgc%=0THEN IFdc%>=106ANDdc%<=108THEN ERROR255,"Missing message!!!" ELSE:ERROR255,FNa(fc%)+" "+STR$(dc%) ENDIF ENDIF =FNp(g$(gc%)) DEFFNA(e$):LOCALH%:H%=0:SYSFNc(31),,e$TOH%:=H% DEFPROCg(hc%):LOCALBb%,v$:Bb%=0:v$=FNa(110)+" "+STR$(hc%):IFf%!Bb%>0THEN IFhc%<1ANDhc%>4THENERROR255,v$ OSCLI"SPlay_fire0"+STR$(hc%)+"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 CASEic%OF WHEN1:jc%=F%<>h%!oa% WHEN4:jc%=F%>>h%!pa% OTHERWISE:ERROR255,FNa(103)+" "+STR$(ic%) ENDCASE =jc% DEFFNk(E%,lc%):LOCALmc%,nc%,oc%,pc%:oc%=FALSE:pc%=FALSE:IFE%!w%ANDlc%!w%THEN mc%=lc%!b%+lc%!d%:nc%=lc%!a%+lc%!m%:IFE%!b%>=lc%!b%ANDE%!b%=lc%!a%ANDE%!a%-1THEN SYS"TimPlayer_SongStop",f%!4:SYS"TimPlayer_SongUnload",f%!4 ENDIF PROCs:ENDPROC DEFFNj(A$,w$):LOCALf$,M%,gc%:gc%=FALSE:f$=STRING$(10," "):RIGHT$(f$,3)=" : ":LEFT$(f$,LEN(w$))=w$:M%=FNq(A$):IFM%=1THEN f$+="OK.":gc%=TRUE ELSE:f$+="Missing!!" ENDIF PRINTf$:=gc% DEFFNv(cc%):LOCALg$,q$:q$=".Screens.":g$="Dump"+STR$(cc%):IFFNq(q$+g$)<>0THEN REPEAT:cc%+=1:g$="Dump"+STR$(cc%):UNTILFNq(q$+g$)=0ORLEN(g$)>10:IFLEN(g$)>10THENcc%=-1 ENDIF =cc% DEFFNo(n%):LOCALqc%:qc%=RND(100):=qc%<=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$,rc%,y$,sc%):LOCALtc%,c$:tc%=rc%-LEN(a$):IFtc%<=0THEN c$=LEFT$(a$,rc%) ELSE:IFsc%THEN c$=STRING$(rc%,y$):RIGHT$(c$,LEN(a$))=a$ ELSE:c$=a$+STRING$(tc%,y$) ENDIF ENDIF =c$ DEFFNy(a$,rc%):LOCALc$:c$=STRING$(rc%," "):RIGHT$(c$,LEN(a$))=a$:=c$ DEFFNq(h$):LOCALgc%:SYS"XOS_File",17,h$TOgc%:=gc% DEFFNE(h$):LOCALF%:SYSFNc(3),5,h$TO,,,,F%:=F% DEFFNx(ic%,h$):LOCALH%,uc%,vc%,wc%:wc%=FALSE:CASEic%OF WHEN0:H%=OPENUP(h$+"chkfile") WHEN1:H%=OPENUP(h$) OTHERWISE:ERROR255,FNa(104)+" "+STR$(ic%) ENDCASE IFH%<>0THEN SYSFNc(4),254,H%TOvc%;uc%:IF(uc%AND1)THENCLOSE#H%:ERROR255,FNa(105) IF((vc%AND(1<<7))<>0)THENwc%=TRUE CLOSE#H% ENDIF =wc% DEFPROCB:LOCALxc%:yc%=0:zc%=0:SYSFNc(10),-1,-1TOAc%:SYSFNc(11)TOBc%;xc%:IFxc%AND1THENBc%=16384 PROCea(Bc%):ENDPROC DEFPROCs:IFyc%THEN SYSFNc(10),yc%-32768,-1TOAc%:yc%=0:zc%=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(_%,zb%):LOCALB%:B%=FNe(_%):PROCfa(B%,zb%):=B% DEFPROCb(RETURNB%):IFFNG(B%)THENERROR254,FNa(212) IFFNH(B%)THENERROR254,FNa(213) B%-=8:zc%-=B%!-4:SYSFNc(12),3,yc%,B%:B%=0:ENDPROC DEFFNz(B%):LOCALp%:p%=B%-4:=p%!0 DEFPROCfa(B%,zb%):LOCALjb%,F%:F%=FNz(B%):FORjb%=0TOF%-4STEP4:B%!jb%=zb%:NEXTjb%:ENDPROC DEFFNh(B%):LOCALCc%,jb%,F%:F%=FNz(B%):Cc%=FNe(F%):FORjb%=0TOF%-4STEP4:Cc%!jb%=B%!jb%:NEXTjb%:=Cc% DEFFNG(B%):B%-=8:IFB%!0<>&DEADDEADTHEN=TRUE =FALSE DEFFNH(B%):B%-=8:IF!(B%-8+(B%!-4))<>&DEADDEADTHEN=TRUE =FALSE DEFPROCea(F%):IFyc%THENERROR254,FNa(215) F%=(F%+Bc%-1)ANDNOT(Bc%-1):yc%=HIMEM:SYSFNc(10),Ac%+F%,-1TOAc%:F%=Ac%+32768-yc%:IFF%<1THEN yc%=0:ERROR254,FNa(216) ELSE:SYSFNc(12),0,yc%,,F% ENDIF zc%=0:ENDPROC DEFPROCga(_%):LOCALDc%:Dc%=Ac%:SYSFNc(10),Ac%+_%,-1TOAc%:_%=Ac%-Dc%:IF_%THENSYSFNc(12),5,yc%,,_%TO,,,_% ENDPROC DEFFNF(_%):LOCALB%,xc%:SYSFNc(13),2,yc%,,_%TO,,B%;xc%:IFxc%AND1THEN PROCga((_%+Bc%)ANDNOT(Bc%-1)):SYSFNc(13),2,yc%,,_%TO,,B%;xc%:IFxc%AND1THEN=0 ENDIF zc%+=B%!-4:=B%