REM Acorn Invaders REM Packed by Make v1.41 15/5/08 On 23 Feb 2009 ONERRORPROCB:END MODE28:OFF:a$="Acorn Invaders. (c)2008 DynaByte Software":PRINTa$:PRINTSTRING$(LEN(a$),"-"):PRINT:l$=".Resources.":b$=".":r$=b$+"HiTable.":p$=b$+"Screens.":f$=l$+"Graphics.":b$=l$+"Data.":t$=l$+"Sound." aa%=FALSE:PRINT"Checking files...":IFNOTFNj(f$+"Gfx0","Sprites")THENaa%=TRUE IFNOTFNj(f$+"Gfx1","Charset")THENaa%=TRUE IFNOTFNj(f$+"Gfx2","Numerics")THENaa%=TRUE IFNOTFNj(t$+"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%),c$(ba%):PROCl(b$+"Msg","SGSM",g%(),c$()):PRINTFNa(14):PRINTFNa(9)+" "+FNa(3);:ca%=FNs(b$+"ImgLUT","TULI"):DIMh%(ca%),d$(ca%):PROCl(b$+"ImgLUT","TULI",h%(),d$()):PRINTFNa(14) PRINTFNa(9)+" "+FNa(13);:da%=FNs(b$+"SWIs","TULS"):DIMi%(da%),e$(da%):PROCl(b$+"SWIs","TULS",i%(),e$()):PRINTFNa(14):PRINT:PRINTFNa(12):PRINTFNa(8)+" "+FNa(2):PROCC:e%=FNf(60,0):e%!0=1:e%!4=-1:e%!40=FNw(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:k%=12:R%=16:S%=20:w%=24:X%=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:U%=32:ra%=16:sa%=20:PRINT:PRINTFNa(8)+" "+FNa(1)+" ";:ta%=0:SYSFNc(30)TOta%:PRINTFNa(21)+" "+STR$(ta%/100):e%!4=FNA(t$+"Intro"):PRINT:PRINTFNa(17)+" "+FNa(16):SYSFNc(1),,FNc(2)TOua%:PRINTFNa(9)+" "+FNa(4);:va%=FNt(f$+"Gfx0"):PRINTFNa(14) PRINTFNa(9)+" "+FNa(5);:wa%=FNt(f$+"Gfx1"):PRINTFNa(14):PRINTFNa(9)+" "+FNa(23);:xa%=FNt(f$+"Gfx2"):PRINTFNa(14):ya%=va%:PRINT:PRINTFNa(9)+" "+FNa(6);:H%=OPENIN(b$+"Creds"):INPUT#H%,j$:IFj$<>"DERC"THEN CLOSE#H%:ERROR255,FNa(101):END ENDIF INPUT#H%,ea%,za%,Aa%:DIMb$(ea%),f%(ea%):FORi%=1TOea%:INPUT#H%,f%(i%),b$(i%):NEXTi%:CLOSE#H%:Ba%=0:FORi%=1TOea%:Ba%+=LEN(b$(i%)):NEXTi%:Ca%=Ba%/ea%:IFCa%<>Aa%ORBa%<>za%THEN ERROR255,FNa(113) ELSE:PRINTFNa(14) ENDIF PRINT:PRINTFNa(7):u$=b$+"HiTable":IFFNq(u$)<>1THEN IFNOTFNx(0,l$)THEN e%!44=FALSE:PRINTFNa(19)+" "+FNa(10)+" "+FNa(20) ELSE:PRINTFNa(19)+" "+FNa(11)+" "+FNa(20) ENDIF PROCD(e%!44) ELSE:IFNOTFNx(1,u$)THEN e%!44=FALSE:PRINTFNa(18)+" "+FNa(10)+" "+FNa(20) ELSE:PRINTFNa(18)+" "+FNa(11)+" "+FNa(20) ENDIF PROCE ENDIF PRINT:PRINTFNa(12):PROCe(150):h%=FNe(36):T%=FNe(24):P%=FNe(16):CLS:PROCr:h%!`%=FNd(8,1):h%!U%=FNd(8,2)+7:T%!d%=FNd(6,1):T%!k%=FNd(6,2):T%!ra%=h%!k%-50:T%!sa%=30:SYSFNc(33),e%!4:SYSFNc(36),e%!4,128:WHILENOTFNB:CLS:PROCF:ENDWHILE CLS:P%!d%=220:P%!k%=40:P%=FNu(P%,h%):P%!a%-=3:PROCm(P%):PROCs(FNa(31),10):IFe%!0=1THEN SYSFNc(36),e%!4,-1TO,Da%:FORi%=Da%TO0STEP-2:SYSFNc(36),e%!4,i%:PROCe(4):NEXTi%:SYSFNc(35),e%!4:SYSFNc(32),e%!4:e%!4=-1 ENDIF PROCt:END DEFFNB:LOCALi%,K%,L%,B%,J%,m%,Y%,Ea%,Fa%:LOCALp%,V%,Ga%,Ha%,Ia%,Ja%,Ka%,La%,Ma%:LOCALx%,y%,N%,Na%,s$,a$:Na%=44:K%=FNf(16,0):L%=FNf(16,0):B%=FNf(16,0):m%=FNf(16,0):Y%=FNf(16,0):V%=FNf(16,0):p%=FNf(16,0):K%!d%=FNd(100,1):K%!k%=FNd(40,2) K%!b%=FNg(K%,h%):K%!a%=800:L%!d%=FNd(150,1):L%!k%=FNd(40,2):L%!b%=FNg(L%,h%):L%!a%=K%!a%-L%!k%:B%!d%=720:B%!k%=500:B%!b%=FNg(B%,h%):B%!a%=200:m%!d%=FNd(40,1):m%!k%=FNd(20,2):m%!b%=(B%!b%+B%!d%/2)-150:m%!a%=(B%!a%+B%!k%)-125 p%!d%=FNd(30,1):p%!k%=FNd(15,2):Y%!d%=FNd(20,1):Y%!k%=FNd(20,2):Y%!b%=(B%!b%+B%!d%/2)-150:Y%!b%+=FNg(Y%,m%):Ea%=FNh(Y%):Fa%=FNh(Y%)::Fa%!a%=m%!a%-40-Fa%!k%:Ea%!a%=Fa%!a%-40-Ea%!k%:Y%!a%=Ea%!a%-40-Y%!k% V%!d%=FNd(20,1):V%!k%=FNd(20,2):V%!b%=(B%!b%+B%!d%/2)-120:Ga%=FNh(V%):Ha%=FNh(V%):Ia%=FNh(V%):Ia%!b%=B%!b%:Oa%=FNh(Ia%):Ka%=FNh(Ia%):Ja%=FNh(V%):Ja%!b%=B%!b%:Ja%!b%+=(B%!d%/2)+10:La%=FNh(Ja%):Ma%=FNh(Ja%) :V%!a%=(B%!a%+B%!k%)-120:Ga%!a%=V%!a%-60:Ha%!a%=Ga%!a%-60:Ka%!a%=Ha%!a%-90:Oa%!a%=Ka%!a%-60:Ia%!a%=Oa%!a%-60:Ja%!a%=Ha%!a%-90:La%!a%=Ja%!a%-60:Ma%!a%=La%!a%-60:CLS:PROCf(T%!ra%):PROCf(T%!sa%):PROCj:FORi%=0-K%!d%TOK%!b%STEP5 WAIT:PROCa(FNb(100),i%,K%!a%):PROCe(1):NEXTi%:FORi%=h%!d%TOL%!b%STEP-5:WAIT:PROCa(FNb(101),i%,L%!a%):PROCe(1):NEXTi%:a$=FNa(32):J%=LEN(a$)*h%!`%:y%=170:PROCb(FNk(J%,h%!d%),y%,a$,11,0):a$=FNa(33):J%=LEN(a$)*h%!`%:y%-=h%!U%:PROCb(FNk(J%,h%!d%),y%,a$,11,0) WHILENOTINKEY(-99)ANDNOTINKEY(-17)ANDNOTINKEY(-82):y%=B%!a%+B%!k%:FORi%=1TOea%:a$=FNp(b$(i%)):x%=FNi(a$):CASEf%(i%)OF WHEN-1:y%-=h%!U% WHEN-2:y%-=(2*h%!U%) OTHERWISE:y%-=f%(i%) ENDCASE PROCb(x%,y%,a$,0,0):NEXTi%:N%=FNr:IFN%=1THEN=TRUE IFN%=2THEN=FALSE PROCd(B%):a$=FNa(57)+" "+FNa(34):x%=FNi(a$):y%=B%!a%+B%!k%-20:PROCb(x%,y%,a$,0,0):a$=FNa(35):y%-=h%!U%:x%=FNi(a$):PROCb(x%,y%,a$,0,0):x%=m%!b%+m%!d%+10:PROCa(FNb(11),m%!b%,m%!a%):a$=FNa(36)+" "+FNa(40):PROCb(x%,m%!a%+10,a$,0,0) PROCa(FNb(24),Fa%!b%,Fa%!a%):a$=FNa(37)+" "+FNa(40):PROCb(x%,Fa%!a%+12,a$,0,0):PROCa(FNb(22),Ea%!b%,Ea%!a%):a$=FNa(38)+" "+FNa(40):PROCb(x%,Ea%!a%+12,a$,0,0):PROCa(FNb(20),Y%!b%,Y%!a%):a$=FNa(39)+" "+FNa(40):PROCb(x%,Y%!a%+12,a$,0,0) J%=p%!d%/h%!`%+2:s$=FNa(66):a$=s$+STRING$(J%," ")+FNa(67):x%=FNi(a$):y%=Y%!a%-(3*h%!U%):PROCb(x%,y%,a$,0,0):p%!b%=x%+7+(LEN(s$)*h%!`%):p%!a%=y%:PROCa(FNb(1),p%!b%,p%!a%):N%=FNr:IFN%=1THEN=TRUE IFN%=2THEN=FALSE PROCd(B%):a$=FNa(41):x%=FNi(a$):y%=B%!a%+B%!k%-20:PROCb(x%,y%,a$,0,0):x%=V%!b%+V%!d%+10:PROCa(FNb(102),V%!b%,V%!a%):a$=FNa(42)+" "+FNa(43):PROCb(x%,V%!a%+12,a$,0,0):PROCa(FNb(103),Ga%!b%,Ga%!a%):a$=FNa(42)+" "+FNa(44):PROCb(x%,Ga%!a%+12,a$,0,0) PROCa(FNb(104),Ha%!b%,Ha%!a%):PROCb(x%,Ha%!a%+12,FNa(45),0,0):x%=Ia%!b%+Ia%!d%+10:PROCa(FNb(105),Oa%!b%,Oa%!a%):a$=FNa(46)+" "+FNa(49):PROCb(x%,Oa%!a%+12,a$,0,0):PROCa(FNb(117),Ka%!b%,Ka%!a%):PROCb(x%,Ka%!a%+12,FNa(76),0,0) PROCa(FNb(107),Ia%!b%,Ia%!a%):a$=FNa(48)+" "+FNa(49):PROCb(x%,Ia%!a%+12,a$,0,0):x%=Ja%!b%+Ja%!d%+10:PROCa(FNb(106),Ja%!b%,Ja%!a%):a$=FNa(47)+" "+FNa(73):PROCb(x%,Ja%!a%+12,a$,0,0):PROCa(FNb(115),La%!b%,La%!a%):a$=FNa(47)+" "+FNa(77)+" ":a$+=FNa(74) PROCb(x%,La%!a%+12,a$,0,0):PROCa(FNb(116),Ma%!b%,Ma%!a%):a$=FNa(47)+" "+FNa(77)+" ":a$+=FNa(75):PROCb(x%,Ma%!a%+12,a$,0,0):N%=FNr:IFN%=1THEN=TRUE IFN%=2THEN=FALSE PROCd(B%):a$=FNa(50):IFe%!Na%THENa$=FNa(51) x%=FNi(a$):y%=B%!a%+B%!k%-20:PROCb(x%,y%,a$,0,0):a$=FNa(58)+" "+FNa(52):x%=FNi(a$):y%-=h%!U%:PROCb(x%,y%,a$,0,0):y%=(B%!a%+B%!k%)-100:a$=" "+FNa(68)+" "+FNa(69):a$+=STRING$(12," ")+FNa(57)+".":a$+=STRING$(3," ")+FNa(60)+".":x%=FNi(a$):PROCb(x%,y%,a$,0,0) y%-=2*h%!U%: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$):PROCb(x%,y%-(i%*(h%!U%+5)),a$,0,0):NEXTi%:N%=FNr:IFN%=1THEN=TRUE IFN%=2THEN=FALSE PROCd(B%):ENDWHILE:ERROR255,FNa(102):=FALSE DEFFNr:LOCALt%,N%:t%=TIME+750:N%=FALSE:REPEAT:IFINKEY(-82)THENPROCu IFINKEY(-102)THENPROCv IFINKEY(-59)THENPROCk(4) IFINKEY(-60)THENPROCk(-4) UNTILTIME>=t%ORINKEY(-17)ORINKEY(-99):IFINKEY(-17)THENN%=1 IFINKEY(-99)THENN%=2 IFN%THEN PROCc(K%):PROCc(L%):PROCc(B%):PROCc(m%):PROCc(Y%):PROCc(Ea%):PROCc(Fa%):PROCc(V%):PROCc(Ga%):PROCc(Ha%):PROCc(Ia%):PROCc(Ja%):PROCc(Oa%):PROCc(Ka%):PROCc(La%):PROCc(Ma%):PROCc(p%) ENDIF =N% DEFFNi(a$):LOCALJ%:J%=LEN(a$)*h%!`%:=B%!b%+FNk(J%,B%!d%) DEFPROCF:LOCALp%,v%,m%,f%,A%:LOCALG%:LOCALc%(),a%():LOCALb%(),Pa%:LOCALQa%,Ra%,Sa%,Ta%:LOCALUa%,Va%,Wa%:LOCALXa%:LOCALYa%,Za%,_a%,`a%,ab%:LOCALbb%,J%,a$,x%,y%,i%,j%:p%=FNe(32):v%=FNe(28):m%=FNe(48):f%=FNe(68):G%=FNe(16):A%=FNf(16,0) Qa%=0:Ra%=4:Sa%=8:Ta%=12:Xa%=16:Ua%=28:Pa%=56:Ya%=ga%:Za%=ha%:_a%=ia%:`a%=la%:ab%=ma%:DIMc%(10,6),a%(10),b%(e%!Pa%):p%!d%=FNd(30,1):p%!k%=FNd(15,2):p%!b%=FNg(p%,h%):p%!a%=50:p%!S%=6:p%!R%=p%!S% G%!d%=FNd(20,1):G%!k%=FNd(20,2):m%!d%=FNd(40,1):m%!k%=FNd(20,2):m%!a%=T%!ra%-(10+m%!k%):m%!S%=5:m%!w%=FALSE:m%!ha%=1:v%!d%=FNd(5,1):v%!k%=FNd(20,2):v%!w%=FALSE:v%!S%=10:A%!Sa%=1:A%!Qa%=3:A%!Ta%=FALSE e%!Xa%=-1:f%!Ya%=FNd(20,1):f%!Za%=10:f%!_a%=6:f%!w%=TRUE:f%!ab%=4:SYSFNc(6)TOf%!na%:PROCG:PROCH:PROCf(T%!ra%):PROCf(T%!sa%):PROCI(0,d%(1),A%!Qa%,A%!Sa%):PROCJ:PROCw:PROCa(FNb(1),p%!b%,p%!a%):WHILEA%!Qa%>0:bb%=FALSE:IFe%!Ua%=0THEN IFINKEY(-74)THENPROCK(p%!b%,p%!a%) IFINKEY(-98)THENPROCL:bb%=TRUE IFINKEY(-67)THENPROCM:bb%=TRUE IFINKEY(-17)THENPROCN ENDIF IFINKEY(-102)THENPROCv IFINKEY(-82)THENPROCu IFINKEY(-56)THENPROCO IFINKEY(-59)THENPROCk(4) IFINKEY(-60)THENPROCk(-4) IFe%!Ua%=0THEN IFbb%THEN p%!b%+=p%!R%:PROCa(FNb(1),p%!b%,p%!a%) ENDIF ENDIF IFe%!Ua%=0THEN PROCP:PROCQ:PROCR:PROCS:PROCT:PROCU ELSE:PROCV ENDIF WAIT:ENDWHILE:P%!d%=240:P%!k%=40:P%=FNu(P%,h%):P%!a%-=3:PROCd(P%):PROCm(P%):a$=FNa(49)+" "+FNa(53):PROCs(a$,11):PROCe(750):IFNOTA%!Ta%THEN IFA%!Ra%>=d%(10)THEN PROCW(A%) ENDIF ENDIF PROCc(p%):PROCc(f%):PROCc(m%):PROCc(v%):PROCc(A%):PROCc(G%):FORi%=1TO10:PROCc(a%(i%)):NEXTi%:FORi%=1TOe%!Pa%:PROCc(b%(i%)):NEXTi%:ENDPROC DEFPROCL:IFp%!b%<=0THEN p%!b%=0 ELSE:p%!R%=0-p%!S% ENDIF ENDPROC DEFPROCM:IFp%!b%>=h%!d%-p%!d%THEN p%!b%=h%!d%-p%!d% ELSE:p%!R%=0+p%!S% ENDIF ENDPROC DEFPROCK(x%,y%):IFNOTv%!w%THEN v%!w%=TRUE:v%!b%=x%+(p%!d%/2):v%!a%=y%+p%!k%:PROCg(4) ENDIF ENDPROC DEFPROCu:LOCALM%,cb%:M%=40:cb%=44:IFe%!cb%THEN REPEAT:UNTILNOTINKEY(-82):e%!M%=FNw(e%!M%):IFe%!M%=-1THENERROR255,FNa(109) OSCLI"ScreenSave "+p$+"Dump"+STR$(e%!M%) ENDIF ENDPROC DEFPROCN:LOCALi%,db%:db%=52:FORi%=1TOe%!db%:a%(i%)!w%=FALSE:NEXTi%:A%!Qa%=0:A%!Ta%=TRUE:ENDPROC DEFPROCv:LOCALeb%,fb%:eb%=0:fb%=4:REPEAT:UNTILNOTINKEY(-102):e%!eb%+=1:IFe%!eb%>2THENe%!eb%=0 IFe%!eb%=1THEN SYSFNc(33),e%!fb% ELSE:SYSFNc(34),e%!fb% ENDIF PROCj:ENDPROC DEFPROCk(gb%):LOCALeb%,fb%,hb%,C%,Da%,ib%:eb%=0:fb%=4:hb%=8:IFe%!eb%=1THEN SYSFNc(6)TOC%:IFC%-e%!hb%>=10THEN SYSFNc(36),e%!fb%,-1TO,Da%:ib%=Da%+gb%:IFib%>=0ANDib%<=128THEN SYSFNc(36),e%!fb%,ib%:e%!hb%=C% ENDIF ENDIF ENDIF ENDPROC DEFPROCO:LOCALUa%,Va%,a$:Ua%=28:Va%=32:REPEATUNTILNOTINKEY(-56):a$=FNa(49)+" "+FNa(61):e%!Ua%=FNn(e%!Ua%):e%!Va%=e%!Ua%:IFe%!Ua%=0THEN a$=STRING$(LEN(a$)," "):PROCn(a$) ENDIF ENDPROC DEFPROCP:IFv%!w%THEN IFv%!a%>=T%!ra%-v%!k%THEN v%!w%=FALSE:v%!a%-=2:PROCd(v%) ELSE:PROCa(FNb(5),v%!b%,v%!a%) ENDIF v%!a%+=v%!S% ENDIF ENDPROC DEFPROCQ:LOCALjb%,kb%,lb%,C%,Z%,d$:jb%=fa%:kb%=ga%:lb%=ha%:IFNOTm%!w%THEN IFFNo(4)ANDFNo(5)THEN m%!w%=TRUE:m%!X%=FALSE:m%!kb%=0:IFFNo(50)THEN m%!R%=0-m%!S%:m%!b%=h%!d% ELSE:m%!R%=0+m%!S%:m%!b%=0-m%!d% ENDIF ENDIF ELSE:IFm%!b%<=0-m%!d%ANDSGN(m%!R%)=-1THEN m%!jb%=FALSE:m%!w%=FALSE:ENDPROC ENDIF IFm%!b%>h%!d%ANDSGN(m%!R%)=1THEN m%!jb%=FALSE:m%!w%=FALSE:ENDPROC ENDIF IFNOTm%!X%THEN IFFNl(v%,m%)THEN PROCd(v%):PROCa(FNb(12),m%!b%,m%!a%):SYSFNc(6)TOm%!jb%:m%!X%=TRUE:v%!w%=FALSE:PROCh(500) ENDIF ELSE:IFFNl(v%,m%)THEN PROCd(v%):v%!w%=FALSE ENDIF ENDIF IFNOTm%!X%THEN SYSFNc(6)TOC%:IFC%-m%!lb%>=40THEN m%!lb%=C%:m%!kb%=FNn(m%!kb%) ENDIF d$=FNb(10)+STR$(m%!kb%):PROCa(d$,m%!b%,m%!a%):m%!b%+=m%!R% ELSE:SYSFNc(6)TOC%:Z%=C%-m%!jb%:IFZ%>=300THEN m%!w%=FALSE:m%!kb%=1:PROCd(m%) ELSE:IFZ%>=250THEN PROCa(FNb(15),m%!b%,m%!a%) ELSE:IFZ%>=200THEN PROCa(FNb(14),m%!b%,m%!a%) ELSE:IFZ%>=100THEN PROCa(FNb(13),m%!b%,m%!a%) ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDPROC DEFPROCR:LOCALmb%,z%,I%,Q%,nb%,ob%,pb%,qb%:LOCALO%,rb%,sb%,C%,tb%,ub%,vb%:O%=fa%:rb%=ja%:sb%=ka%:tb%=na%:ub%=52:vb%=56:SYSFNc(6)TOC%:IFC%-f%!tb%>=50THEN f%!tb%=C%:f%!O%=FNn(f%!O%) ENDIF mb%=f%!b%+f%!d%:qb%=0-((f%!rb%-1)*(G%!d%+f%!Ya%)):IFmb%>=h%!d%THEN f%!R%=0-f%!S%:PROCx ENDIF IFf%!b%<=qb%THEN f%!R%=0+f%!S%:PROCx ENDIF qb%=f%!a%+((f%!`a%-1)*G%!k%):IFqb%<=p%!a%+p%!k%THEN PROCX:ENDPROC ENDIF IFFNl(v%,f%)THEN z%=G%!d%+f%!Ya%:IF(v%!b%-f%!b%)MODz%<=G%!d%THEN I%=((v%!a%-f%!a%)DIVG%!k%)+1:Q%=((v%!b%-f%!b%)DIVz%)+1:IFSGN(c%(Q%,I%))=1THEN c%(Q%,I%)=-5:PROCd(v%):v%!w%=FALSE:f%!X%+=1:PROCg(1):CASEI%OF WHEN1,2:PROCh(50) WHEN3,4:PROCh(75) WHEN5,6:PROCh(100) ENDCASE ENDIF ENDIF ENDIF IFf%!X%>=f%!Za%*f%!_a%THEN A%!Sa%+=1:PROCd(f%):PROCf(T%!sa%):PROCi(A%!Qa%):PROCo(A%!Sa%):PROCj:PROCa(FNb(1),p%!b%,p%!a%):PROCY:PROCw:PROCy:IFA%!Sa%>=5THENe%!ub%=7 IFA%!Sa%>=10THENe%!ub%=10 ENDIF nb%=TRUE:ob%=TRUE:FORI%=1TOf%!_a%:IFc%(f%!sb%,I%)<>0THENnb%=FALSE IFc%(f%!rb%,I%)<>0THENob%=FALSE NEXTI%:pb%=TRUE:FORQ%=1TOf%!Za%:IFc%(Q%,f%!`a%)<>0THENpb%=FALSE NEXTQ%:IFob%THENf%!rb%+=1 IFnb%THEN f%!d%-=(G%!d%+f%!Ya%):f%!sb%-=1 ENDIF IFpb%THENf%!`a%+=1 f%!b%+=f%!R%:PROCp:ENDPROC DEFPROCS:LOCALi%,j%,C%,ub%,vb%:ub%=52:vb%=56:FORi%=1TOe%!ub%:IFNOTa%(i%)!w%THEN PROCZ(i%) ELSE:PROC_(i%):IFa%(i%)!a%<=T%!sa%+(T%!k%+5)THEN a%(i%)!w%=FALSE:PROCd(a%(i%)) ENDIF IFFNl(a%(i%),p%)ANDa%(i%)!w%THEN PROC`(i%) ENDIF FORj%=1TOe%!vb%:IFFNl(a%(i%),b%(j%))THEN PROCz(j%,FALSE):PROCd(a%(i%)):a%(i%)!w%=FALSE ENDIF NEXTj%:IFFNl(v%,a%(i%))THEN PROCaa(i%) ENDIF IFa%(i%)!X%THEN PROCba(i%) ENDIF ENDIF NEXTi%:ENDPROC DEFPROCV:LOCALUa%,Va%,Wa%,C%,a$:Ua%=28:Va%=32:Wa%=36:SYSFNc(6)TOC%:IFC%-e%!Wa%>=50THEN e%!Va%=FNn(e%!Va%):e%!Wa%=C% ENDIF a$=FNa(49)+" "+FNa(61):IFe%!Va%=0ORe%!Ua%=0THEN a$=STRING$(LEN(a$)," ") ENDIF PROCn(a$):ENDPROC DEFPROCU:LOCALXa%,wb%,xb%,C%,a$:Xa%=16:wb%=20:xb%=24:IFe%!Xa%>=0THEN SYSFNc(6)TOC%:a$=FNa(66)+" "+FNa(72):IFC%-e%!xb%>=50THEN e%!xb%=C%:e%!wb%=FNn(e%!wb%):IFe%!wb%=1THENe%!Xa%+=1 ENDIF IFe%!wb%=0THEN a$=STRING$(LEN(a$)," ") ENDIF IFe%!Xa%>5THEN a$=STRING$(LEN(a$)," "):e%!Xa%=-1 ENDIF PROCn(a$) ENDIF ENDPROC DEFPROCT:LOCALi%,C%,db%,tb%,q%:db%=56:tb%=ga%:q%=FNe(16):FORi%=1TOe%!db%:IFFNl(v%,b%(i%))THEN PROCd(v%):v%!w%=FALSE:PROCz(i%,TRUE) ENDIF IFb%(i%)!X%THEN SYSFNc(6)TOC%:IFC%-b%(i%)!tb%>=5THEN q%!b%=b%(i%)!b%:q%!d%=b%(i%)!d%:q%!a%=b%(i%)!a%-5:q%!k%=b%(i%)!k%+10:PROCd(q%):PROCq(b%(i%)):b%(i%)!X%=FALSE ENDIF ENDIF NEXTi%:PROCc(q%):ENDPROC DEFPROCD(yb%):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%:IFyb%THENPROCA ENDPROC DEFPROCE:LOCALi%,H%:H%=OPENIN(r$+"HiTable"):FORi%=1TO10:INPUT#H%,a$(i%),d%(i%),e%(i%):NEXTi%:CLOSE#H%:ENDPROC DEFPROCA:LOCALi%,H%:H%=OPENOUT(r$+"HiTable"):FORi%=1TO10:PRINT#H%,a$(i%),d%(i%),e%(i%):NEXTi%:CLOSE#H%:ENDPROC DEFPROCW(A%):LOCALL%,K%,zb%,g%,i%,Ab%,J%,x%,y%,a$:LOCALNa%:K%=FNe(16):L%=FNe(16):Na%=44:K%!d%=FNd(100,1):K%!k%=FNd(40,2):K%!b%=FNg(K%,h%):K%!a%=800:L%!d%=FNd(150,1):L%!k%=FNd(40,2):L%!b%=FNg(L%,h%):L%!a%=K%!a%-L%!k%:Ab%=0:FORi%=10TO1STEP-1 IFA%!Ra%>=d%(i%)THENAb%=i% NEXTi%:FORi%=9TOAb%STEP-1:a$(i%+1)=a$(i%):d%(i%+1)=d%(i%):e%(i%+1)=e%(i%):NEXTi%:d%(Ab%)=A%!Ra%:e%(Ab%)=A%!Sa%:CLS:PROCf(T%!ra%):PROCf(T%!sa%):PROCa(FNb(100),K%!b%,K%!a%):PROCa(FNb(101),L%!b%,L%!a%):a$=FNa(54)+" "+STR$(A%!Ra%) a$+=" "+FNa(55)+" "+STR$(Ab%)+FNC(Ab%):J%=LEN(a$)*h%!`%:x%=FNk(J%,h%!d%):y%=L%!a%-170:PROCb(x%,y%,a$,0,0):PROCc(K%):PROCc(L%):P%!d%=165:P%!k%=40:P%=FNu(P%,h%):PROCm(P%):x%=P%!b%+20:y%=P%!a%+12:a$="":i%=1:zb%=FALSE OSCLI"FX 21,0":REPEAT:g%=GET:CASEg%OF WHEN13:zb%=TRUE WHEN8:i%-=1:a$=LEFT$(a$,i%-1) OTHERWISE:IFi%<9ANDFND(g%)THENi%+=1:a$+=CHR$(g%) ENDCASE IFi%<1THENi%=1 PROCb(x%,y%,STRING$(8," "),0,0):IFa$<>""THENPROCb(x%,y%,a$,0,0) UNTILzb%:IFa$=""ORa$=" "THENa$=FNa(56) a$(Ab%)=FNp(a$):IFe%!Na%THENPROCA ENDPROC DEFFND(Bb%):LOCALCb%:Cb%=FALSE:IFBb%>=32ANDBb%<=126THENCb%=TRUE =Cb% DEFPROCI(Db%,Eb%,l%,r%):LOCALx%,a$:a$=FNa(57)+" "+FNa(59):a$+=FNm(STR$(Db%),10," ",TRUE):PROCb(0,h%!k%-h%!U%,a$,0,0):a$=FNa(58)+" "+FNa(57):a$+=" "+FNa(59)+FNm(STR$(Eb%),10," ",TRUE):x%=h%!d%-LEN(a$)*h%!`%:PROCb(x%,h%!k%-h%!U%,a$,0,0) PROCi(l%):PROCo(r%):PROCj:ENDPROC DEFPROCi(M%):LOCALa$:PROCa(FNb(1),0,0):a$=" = "+STR$(M%):PROCb(p%!d%,0,a$,0,0):ENDPROC DEFPROCo(M%):LOCALx%,a$:a$=FNa(60)+" "+FNa(59):a$+=FNm(STR$(M%),3,"0",TRUE):x%=h%!d%-LEN(a$)*h%!`%:PROCb(x%,0,a$,0,0):ENDPROC DEFPROCn(a$):LOCALx%,y%,J%:J%=LEN(a$)*h%!`%:x%=FNk(J%,h%!d%):y%=h%!k%-h%!U%:PROCb(x%,y%,a$,0,0):ENDPROC DEFPROCh(Fb%):LOCALGb%,Xa%,x%,a$:Gb%=12:Xa%=16:A%!Ra%+=Fb%:a$=FNa(57)+" "+FNa(59):a$+=FNm(STR$(A%!Ra%),10," ",TRUE):PROCb(0,h%!k%-h%!U%,a$,0,0):IFA%!Ra%-e%!Gb%>=5000THEN A%!Qa%+=1:PROCi(A%!Qa%):e%!Gb%=A%!Ra%:e%!Xa%=0 ENDIF IFA%!Ra%>d%(1)THEN a$=FNa(58)+" "+FNa(57)+" ":a$+=FNa(59):a$+=FNm(STR$(A%!Ra%),10," ",TRUE):x%=h%!d%-LEN(a$)*h%!`%:PROCb(x%,h%!k%-h%!U%,a$,0,0) ENDIF ENDPROC DEFPROCj:LOCALHb%,Ib%,d$:Ib%=FNe(16):Hb%=0:Ib%!d%=FNd(20,1):Ib%!k%=FNd(10,2):Ib%!b%=FNg(Ib%,h%):Ib%!a%=0:IFe%!Hb%<0ORe%!Hb%>2THEN ERROR255,FNa(111)+" "+STR$(e%!Hb%) ENDIF d$=FNb(120+e%!Hb%):PROCa(d$,Ib%!b%,Ib%!a%):PROCc(Ib%):ENDPROC DEFPROCJ:LOCALO%,rb%,sb%,`a%:O%=fa%:rb%=ja%:sb%=ka%:`a%=la%:PROCy:PROCp:ENDPROC DEFPROCy:LOCALI%,Q%,s%:f%!b%=50:f%!a%=550:f%!O%=0:f%!X%=0:f%!S%=3:f%!R%=f%!S%:f%!rb%=1:f%!sb%=f%!Za%:f%!`a%=1:s%=(f%!Za%*G%!d%)+((f%!Za%-1)*f%!Ya%):f%!d%=s%:f%!k%=f%!_a%*G%!k%:FORQ%=1TOf%!Za%:FORI%=1TOf%!_a% c%(Q%,I%)=((I%+1)/2)+(f%!O%*10):NEXTI%:NEXTQ%:ENDPROC DEFPROCp:LOCALI%,Q%,x%,y%,q%:q%=FNe(16):FORQ%=f%!rb%TOf%!sb%:x%=f%!b%+((Q%-1)*(G%!d%+f%!Ya%)):FORI%=f%!`a%TOf%!_a%:y%=f%!a%+((I%-1)*G%!k%):IFc%(Q%,I%)>0THEN c%(Q%,I%)=((I%+1)/2)+(f%!O%*10) ENDIF IFc%(Q%,I%)<>0THEN CASESGN(c%(Q%,I%))OF WHEN-1:PROCca(x%,y%,Q%,I%) WHEN1:PROCa(FNb(27)+STR$(c%(Q%,I%)),x%,y%) ENDCASE ELSE:q%!b%=x%:q%!a%=y%:q%!d%=G%!d%:q%!k%=G%!k%:PROCd(q%) ENDIF NEXTI%:NEXTQ%:PROCc(q%):ENDPROC DEFPROCca(x%,y%,r%,c%):LOCALq%:c%(r%,c%)+=1:PROCa(FNb(26),x%,y%):IFc%(r%,c%)=0THEN q%=FNe(16):q%!b%=x%:q%!a%=y%:q%!d%=G%!d%:q%!k%=G%!k%:PROCd(q%):PROCc(q%) ENDIF ENDPROC DEFPROCx:LOCALq%,i%:q%=FNe(16):FORi%=1TO3:f%!a%-=G%!k%/3:PROCp:NEXTi%:q%!b%=f%!b%:q%!a%=f%!a%+f%!k%:q%!d%=f%!d%:q%!k%=G%!k%:PROCd(q%):PROCc(q%):ENDPROC DEFPROCX:LOCALW%,Jb%,C%,Kb%,Lb%,S%,i%,o$:S%=1:Mb%=24:W%=FNe(28):Jb%=FNe(28):PROCd(f%):PROCd(p%):IFv%!w%THEN PROCd(v%):v%!w%=FALSE ENDIF IFm%!w%THEN PROCd(m%):m%!w%=FALSE ENDIF PROCda:PROCea:p%!b%=FNg(p%,h%):W%!b%=0-G%!d%:W%!a%=p%!a%:W%!R%=S%:Jb%!b%=h%!d%:Jb%!a%=p%!a%:Jb%!R%=0-S%:A%!Qa%=0:PROCf(T%!sa%):PROCi(A%!Qa%):PROCo(A%!Sa%):PROCa(FNb(1),p%!b%,p%!a%):O%=0:Lb%=FALSE:REPEAT:W%!b%+=W%!R%:W%!Mb%=W%!b%+G%!d%:Jb%!b%+=Jb%!R% SYSFNc(6)TOC%:IFC%-Kb%>=50THENLb%=FNn(Lb%):Kb%=C% IFLb%THENo$=FNb(21)ELSEo$=FNb(20) PROCa(o$,W%!b%,W%!a%):PROCa(o$,Jb%!b%,Jb%!a%):PROCe(2):WAIT:UNTILW%!Mb%>=p%!b%:FORi%=1TO10:PROCa(FNb(20),W%!b%,W%!a%):PROCa(FNb(20),Jb%!b%,Jb%!a%):PROCe(20):PROCa(FNb(21),W%!b%,W%!a%):PROCa(FNb(21),Jb%!b%,Jb%!a%):PROCe(20):WAIT:NEXTi%:PROCg(2):FORi%=1TO3 PROCa(FNb(2)+STR$(i%),p%!b%,p%!a%):PROCe(20):WAIT:NEXTi%:PROCe(20):PROCd(p%):PROCc(W%):PROCc(Jb%):ENDPROC DEFPROCG:LOCALi%,Z%,Kb%:Z%=ha%:Kb%=ia%:FORi%=1TO10:a%(i%)=FNf(48,0):a%(i%)!d%=FNd(5,1):a%(i%)!k%=FNd(20,2):SYSFNc(6)TOa%(i%)!Z%:SYSFNc(6)TOa%(i%)!Kb%:a%(i%)!w%=FALSE:NEXTi%:ENDPROC DEFPROCZ(o%):LOCALNb%,Ob%,Pb%,Qb%,x%,y%:LOCALO%,Rb%:O%=fa%:Rb%=ga%:Nb%=RND(10):Pb%=A%!Sa%+5:IFPb%>100THEN Pb%=100:IFA%!Sa%MOD10=0THENf%!ab%+=1 ENDIF IFFNo(Pb%)ANDFNo(f%!ab%)THEN IFc%(Nb%,f%!`a%)>0THEN x%=f%!b%+(Nb%-1)*(G%!d%+f%!Ya%):y%=f%!a%+((f%!`a%-1)*G%!k%)-G%!k%:Ob%=(G%!d%/2)-(a%(o%)!d%/2):a%(o%)!b%=x%+Ob%:a%(o%)!a%=y%:a%(o%)!w%=TRUE:a%(o%)!X%=FALSE:a%(o%)!Rb%=1:a%(o%)!O%=0:Qb%=4:IFFNo(25)THENa%(o%)!Rb%=2:Qb%=Qb%/2 a%(o%)!S%=Qb%:a%(o%)!R%=a%(o%)!S%:PROCg(3) ENDIF ENDIF ENDPROC DEFPROC_(o%):LOCALC%,O%,Kb%,Rb%,d$,q$:O%=fa%:Rb%=ga%:Kb%=ia%:SYSFNc(6)TOC%:IFC%-a%(o%)!Kb%>=40THEN a%(o%)!Kb%=C%:a%(o%)!O%+=1 ENDIF :IFa%(o%)!Rb%=1ANDa%(o%)!O%>1THEN a%(i%)!O%=0 ENDIF IFa%(o%)!Rb%=2ANDa%(o%)!O%>3THEN a%(o%)!O%=0 ENDIF q$=STR$(a%(o%)!O%):IFa%(o%)!Rb%=2ANDa%(o%)!O%=3THEN q$="1" ENDIF d$=FNb(30)+STR$(a%(o%)!Rb%)+q$:IFNOTa%(o%)!X%THEN a%(o%)!a%-=a%(o%)!R%:PROCa(d$,a%(o%)!b%,a%(o%)!a%) ELSE:d$=FNb(30)+"3":PROCa(d$,a%(o%)!b%,a%(o%)!a%) ENDIF ENDPROC DEFPROC`(o%):LOCALi%:PROCg(2):FORi%=1TO3:PROCa(FNb(2)+STR$(i%),p%!b%,p%!a%):PROCe(20):WAIT:NEXTi%:PROCd(p%):IFv%!w%THEN PROCd(v%):v%!w%=FALSE ENDIF p%!b%=FNg(p%,h%):A%!Qa%-=1:PROCi(A%!Qa%):PROCd(a%(o%)):a%(o%)!w%=FALSE:PROCa(FNb(1),p%!b%,p%!a%):ENDPROC DEFPROCaa(o%):LOCALRb%,Z%:Rb%=ga%:Z%=ha%:IFa%(o%)!Rb%=1THEN IFNOTa%(o%)!X%THEN a%(o%)!X%=TRUE:PROCh(5):d$=FNb(30)+"3":PROCa(d$,a%(o%)!b%,a%(o%)!a%):SYSFNc(6)TOa%(o%)!Z% ENDIF ENDIF PROCd(v%):v%!w%=FALSE:ENDPROC DEFPROCba(o%):LOCALZ%,C%:Z%=ha%:SYSFNc(6)TOC%:IFC%-a%(o%)!Z%>=40THEN PROCd(a%(o%)):a%(o%)!w%=FALSE ENDIF ENDPROC DEFPROCda:LOCALi%,Sb%:Sb%=52:FORi%=1TOe%!Sb%:IFa%(i%)!w%THEN PROCd(a%(i%)):a%(i%)!w%=FALSE ENDIF NEXTi%:ENDPROC DEFPROCH:LOCALi%,x%,Tb%,Ub%,M%:M%=e%!56:Ub%=fa%:Tb%=h%!d%/M%:x%=Tb%-150:FORi%=1TOM%:b%(i%)=FNf(48,0):b%(i%)!d%=FNd(30,1):b%(i%)!k%=FNd(15,2):b%(i%)!b%=x%+((i%-1)*Tb%):b%(i%)!a%=p%!a%+100:b%(i%)!w%=TRUE:b%(i%)!Ub%=0:NEXTi%:ENDPROC DEFPROCY:LOCALi%,Ub%,M%:M%=e%!56:Ub%=fa%:FORi%=1TOM%:b%(i%)!w%=TRUE:b%(i%)!Ub%=0:NEXTi%:ENDPROC DEFPROCw:LOCALi%,M%:M%=56:FORi%=1TOe%!M%:IFb%(i%)!w%THENPROCq(b%(i%)) NEXTi%:ENDPROC DEFPROCq(o%):LOCALVb%,Wb%,Xb%,J%,Ub%,a$:Ub%=fa%:Xb%=10-o%!Ub%:a$=STR$(Xb%):J%=LEN(a$):Vb%=o%!b%+FNk(J%,o%!d%):Wb%=o%!a%+(o%!k%/2)-(h%!U%/2):Wb%+=7:IFJ%=1THENVb%-=7ELSEVb%-=15 PROCd(o%):PROCa(FNb(16),o%!b%,o%!a%):PROCb(Vb%,Wb%,a$,0,1):ENDPROC DEFPROCz(o%,Yb%):LOCALy%,Ub%:Ub%=fa%:tb%=ga%:b%(o%)!Ub%+=1:IFb%(o%)!Ub%>=10THEN PROCd(b%(o%)):b%(o%)!w%=FALSE ELSE:PROCd(b%(o%)):y%=b%(o%)!a%:IFYb%THENb%(o%)!a%+=5ELSEb%(o%)!a%-=5 PROCq(b%(o%)):b%(o%)!X%=TRUE:b%(o%)!a%=y%:SYSFNc(6)TOb%(o%)!tb% ENDIF ENDPROC DEFPROCea:LOCALi%,q%,M%:M%=e%!56:FORi%=1TOM%:b%(i%)!w%=FALSE:NEXTi%:q%=FNe(16):q%!b%=0:q%!a%=b%(1)!b%:q%!d%=h%!d%:q%!k%=b%(1)!k%:PROCd(q%):PROCc(q%):ENDPROC DEFFNt(e$):LOCALZb%,F%:F%=FNE(e$)+256:Zb%=FNe(F%):!Zb%=F%:Zb%!4=0:Zb%!8=16:Zb%!12=16:SYSua%,256+10,Zb%,e$:SYSua%,256+17,Zb%:=Zb% DEFPROCb(x%,y%,a$,_b%,`b%):LOCALi%,ac%:CASE`b%OF WHEN0:ya%=wa% WHEN1:ya%=xa% OTHERWISE:ERROR255,FNa(112)+" "+STR$(`b%) ENDCASE ac%=h%!`%:FORi%=1TOLEN(a$):PROCa(STR$(ASC(MID$(a$,i%,1))),x%+((i%-1)*ac%),y%):IF_b%>0THENPROCe(_b%) NEXTi%:ya%=va%:ENDPROC DEFPROCa(z$,x%,y%):LOCALbc%:SYSua%,256+24,ya%,z$TO,,bc%:SYSua%,512+34,ya%,bc%,x%,y%,0:ENDPROC DEFPROCd(E%):GCOL0,0TINT0:RECTANGLEFILLE%!b%,E%!a%,E%!d%,E%!k%:ENDPROC DEFFNk(cc%,h%):=(h%/2)-(cc%/2) DEFPROCs(a$,dc%):LOCALJ%,y%:J%=LEN(a$)*h%!`%:y%=(h%!k%/2)-(h%!U%/2):PROCb(FNk(J%,h%!d%),y%,a$,dc%,0):ENDPROC DEFFNg(ec%,fc%):=(fc%!d%/2)-(ec%!d%/2) DEFFNu(ec%,fc%):LOCALx%,y%:ec%!b%=(fc%!d%/2)-(ec%!d%/2):ec%!a%=(fc%!k%/2)-(ec%!k%/2):=ec% DEFPROCf(a%):LOCALi%,gc%:gc%=h%!d%/T%!d%:FORi%=1TOgc%+1:PROCa(FNb(108),(i%-1)*T%!d%,a%):NEXTi%:ENDPROC DEFPROCm(E%):LOCALx%,y%,hc%,ic%,jc%,kc%,i%:hc%=FNd(3,1):ic%=FNd(3,2):jc%=1:kc%=3:FORi%=1TOE%!d%:x%=E%!b%+((i%-1)*jc%):PROCa(FNb(113),x%,E%!a%):PROCa(FNb(113),x%,E%!a%+(E%!k%-(2*kc%))):NEXTi%:x%=E%!b%+(E%!d%-hc%):FORi%=1TOE%!k%-1 PROCa(FNb(114),E%!b%,E%!a%+((i%-1)*jc%)):PROCa(FNb(114),x%,E%!a%+((i%-1)*jc%)):NEXTi%:PROCa(FNb(111),E%!b%,E%!a%):PROCa(FNb(109),E%!b%,(E%!a%+E%!k%)-ic%):PROCa(FNb(112),E%!b%+(E%!d%-hc%),E%!a%):x%=(E%!b%+E%!d%)-hc%:y%=(E%!a%+E%!k%)-ic% PROCa(FNb(110),x%,y%):ENDPROC DEFFNs(e$,j$):LOCALlc%,mc%,za%,Aa%,k$:lc%=OPENIN(e$):INPUT#lc%,k$:IFk$<>j$THENCLOSE#lc%:ERROR255,"Bad Magic!" INPUT#lc%,za%,Aa%,mc%:CLOSE#lc%:=mc% DEFPROCl(e$,j$,RETURNj%(),RETURNf$()):LOCALlc%,i%,mc%,za%,Aa%,Ba%,Ca%,k$:Ba%=0:lc%=OPENIN(e$):INPUT#lc%,k$:IFk$<>j$THENCLOSE#lc%:ERROR255,"Bad Magic!" INPUT#lc%,za%,Aa%,mc%:FORi%=1TOmc%:INPUT#lc%,j%(i%),f$(i%):NEXTi%:CLOSE#lc%:FORi%=1TOmc%:Ba%+=LEN(f$(i%)):NEXTi%:Ca%=Ba%/mc%:IFBa%<>za%THENERROR255,"File Inconsistant with header!" IFCa%<>Aa%THENERROR255,"File Inconsistant with header!" ENDPROC DEFFNa(nc%):=FNv(nc%,ba%,g%(),c$(),106) DEFFNb(nc%):=FNv(nc%,ca%,h%(),d$(),107) DEFFNc(nc%):=FNv(nc%,da%,i%(),e$(),108) DEFFNv(nc%,oc%,k%(),g$(),pc%):LOCALi%,qc%:qc%=0:FORi%=1TOoc%:IFk%(i%)=nc%THENqc%=i%:i%=oc% NEXTi%:IFqc%=0THEN IFnc%>=106ANDnc%<=108THEN ERROR255,"Missing message!!!" ELSE:ERROR255,FNa(pc%)+" "+STR$(nc%) ENDIF ENDIF =FNp(g$(qc%)) DEFFNA(e$):LOCALH%:H%=0:SYSFNc(31),,e$TOH%:=H% DEFPROCg(rc%):LOCALHb%,v$:Hb%=0:v$=FNa(110)+" "+STR$(rc%):IFe%!Hb%>0THEN IFrc%<1ANDrc%>4THENERROR255,v$ OSCLI"SPlay_fire0"+STR$(rc%)+"mhh" ENDIF ENDPROC DEFPROCr:LOCALq%:q%=FNe(20):q%!0=4:q%!4=5:q%!8=11:q%!12=12:q%!16=-1:SYSFNc(5),q%,q%:h%!oa%=q%!0:h%!pa%=q%!4:h%!d%=(q%!8)+1<h%!qa%THENPROCr CASEsc%OF WHEN1:tc%=F%<>h%!oa% WHEN4:tc%=F%>>h%!pa% OTHERWISE:ERROR255,FNa(103)+" "+STR$(sc%) ENDCASE =tc% DEFFNl(E%,vc%):LOCALwc%,xc%,yc%,zc%:yc%=FALSE:zc%=FALSE:IFE%!w%ANDvc%!w%THEN wc%=vc%!b%+vc%!d%:xc%=vc%!a%+vc%!k%:IFE%!b%>=vc%!b%ANDE%!b%=vc%!a%ANDE%!a%-1THEN SYS"TimPlayer_SongStop",e%!4:SYS"TimPlayer_SongUnload",e%!4 ENDIF PROCt:ENDPROC DEFFNj(A$,w$):LOCALg$,N%,qc%:qc%=FALSE:g$=STRING$(10," "):RIGHT$(g$,3)=" : ":LEFT$(g$,LEN(w$))=w$:N%=FNq(A$):IFN%=1THEN g$+="OK.":qc%=TRUE ELSE:g$+="Missing!!" ENDIF PRINTg$:=qc% DEFFNw(mc%):LOCALh$:h$="Dump"+STR$(mc%):IFFNq(p$+h$)<>0THEN REPEAT:mc%+=1:h$="Dump"+STR$(mc%):UNTILFNq(p$+h$)=0ORLEN(h$)>10:IFLEN(h$)>10THENmc%=-1 ENDIF =mc% DEFFNo(n%):LOCALAc%:Ac%=RND(100):=Ac%<=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$,Bc%,y$,Cc%):LOCALDc%,c$:Dc%=Bc%-LEN(a$):IFDc%<=0THEN c$=LEFT$(a$,Bc%) ELSE:IFCc%THEN c$=STRING$(Bc%,y$):RIGHT$(c$,LEN(a$))=a$ ELSE:c$=a$+STRING$(Dc%,y$) ENDIF ENDIF =c$ DEFFNy(a$,Bc%):LOCALc$:c$=STRING$(Bc%," "):RIGHT$(c$,LEN(a$))=a$:=c$ DEFFNq(i$):LOCALqc%:SYS"XOS_File",17,i$TOqc%:=qc% DEFFNE(i$):LOCALF%:SYSFNc(3),5,i$TO,,,,F%:=F% DEFFNx(sc%,i$):LOCALH%,Ec%,Fc%,Gc%:Gc%=FALSE:CASEsc%OF WHEN0:H%=OPENUP(i$+"chkfile") WHEN1:H%=OPENUP(i$) OTHERWISE:ERROR255,FNa(104)+" "+STR$(sc%) ENDCASE IFH%<>0THEN SYSFNc(4),254,H%TOFc%;Ec%:IF(Ec%AND1)THENCLOSE#H%:ERROR255,FNa(105) IF((Fc%AND(1<<7))<>0)THENGc%=TRUE CLOSE#H% ENDIF =Gc% DEFPROCC:LOCALHc%:Ic%=0:Jc%=0:SYSFNc(10),-1,-1TOKc%:SYSFNc(11)TOLc%;Hc%:IFHc%AND1THENLc%=16384 PROCfa(Lc%):ENDPROC DEFPROCt:IFIc%THEN SYSFNc(10),Ic%-32768,-1TOKc%:Ic%=0:Jc%=0 ENDIF ENDPROC DEFFNe(_%):LOCALD%,F%:F%=(_%+15)AND-4:D%=FNF(F%):IFD%ELSEERROR254,FNa(211) D%!0=&DEADDEAD:D%!4=_%:!(D%-8+(D%!-4))=&DEADDEAD:=D%+8 DEFFNf(_%,Fb%):LOCALD%:D%=FNe(_%):PROCga(D%,Fb%):=D% DEFPROCc(RETURND%):CASEFNG(D%)OF WHEN1:ERROR254,FNa(212) WHEN2:ERROR254,FNa(213) WHEN3:ERROR254,FNa(217) ENDCASE D%-=8:Jc%-=D%!-4:SYSFNc(12),3,Ic%,D%:D%=0:ENDPROC DEFFNz(D%):LOCALq%:q%=D%-4:=q%!0 DEFPROCga(D%,Fb%):LOCALqb%,F%:F%=FNz(D%):FORqb%=0TOF%-4STEP4:D%!qb%=Fb%:NEXTqb%:ENDPROC DEFFNh(D%):LOCALMc%,qb%,F%:F%=FNz(D%):Mc%=FNe(F%):FORqb%=0TOF%-4STEP4:Mc%!qb%=D%!qb%:NEXTqb%:=Mc% DEFFNG(D%):LOCALEb%,Nc%:Eb%=FALSE:Nc%=FALSE:D%-=8:IFD%!0<>&DEADDEADTHENNc%=TRUE IF!(D%-8+(D%!-4))<>&DEADDEADTHENEb%=TRUE IFNc%ANDEb%THEN=3 IFEb%THEN=2 IFNc%THEN=1 =0 DEFPROCfa(F%):IFIc%THENERROR254,FNa(215) F%=(F%+Lc%-1)ANDNOT(Lc%-1):Ic%=HIMEM:SYSFNc(10),Kc%+F%,-1TOKc%:F%=Kc%+32768-Ic%:IFF%<1THEN Ic%=0:ERROR254,FNa(216) ELSE:SYSFNc(12),0,Ic%,,F% ENDIF Jc%=0:ENDPROC DEFPROCha(_%):LOCALOc%:Oc%=Kc%:SYSFNc(10),Kc%+_%,-1TOKc%:_%=Kc%-Oc%:IF_%THENSYSFNc(12),5,Ic%,,_%TO,,,_% ENDPROC DEFFNF(_%):LOCALD%,Hc%:SYSFNc(13),2,Ic%,,_%TO,,D%;Hc%:IFHc%AND1THEN PROCha((_%+Lc%)ANDNOT(Lc%-1)):SYSFNc(13),2,Ic%,,_%TO,,D%;Hc%:IFHc%AND1THEN=0 ENDIF Jc%+=D%!-4:=D%