REM Acorn Invaders REM Packed by Make v1.41 15/5/08 On 30 Mar 2009 ONERRORPROCC:END MODE28:OFF:a$="Acorn Invaders. (c)2007-2009 DynaByte Software":PRINTa$:PRINTSTRING$(LEN(a$),"-"):PRINT:p$=".Resources.":b$=".":f$=b$+"Data.":q$=b$+"Screens.":g$=p$+"Graphics.":b$=p$+"Data.":u$=p$+"Sound." aa%=FALSE:PRINT"Checking files...":IFNOTFNj(g$+"Gfx0","Sprites")THENaa%=TRUE IFNOTFNj(g$+"Gfx1","Charset")THENaa%=TRUE IFNOTFNj(g$+"Gfx2","Numerics")THENaa%=TRUE IFNOTFNj(u$+"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%),f$(ba%):PROCl(b$+"Msg","SGSM",g%(),f$()):PRINTFNa(14):PRINTFNa(9)+" "+FNa(3);:ca%=FNs(b$+"ImgLUT","TULI"):DIMh%(ca%),c$(ca%):PROCl(b$+"ImgLUT","TULI",h%(),c$()) PRINTFNa(26):PROCr(ca%,132,c$()):PRINTFNa(14):PRINTFNa(9)+" "+FNa(13);:da%=FNs(b$+"SWIs","TULS"):DIMi%(da%),d$(da%):PROCl(b$+"SWIs","TULS",i%(),d$()):PRINTFNa(26):PROCr(da%,132,d$()):PRINTFNa(14):PRINT:PRINTFNa(12):PRINTFNa(8)+" "+FNa(2) PROCD:d%=FNf(60,0):d%!0=1:d%!4=-1:d%!40=FNw(0):IFd%!40=-1THENERROR255,FNa(109) PRINTFNa(15)+STR$(d%!40):d%!44=TRUE:d%!48=128:d%!52=5:d%!56=5:PRINTFNa(9)+" "+FNa(24)+" ";:IFFNq(f$+"Configs")=1THEN PROCE:PRINTFNa(18) ELSE:PRINTFNa(25) ENDIF ea%=0:DIMa$(10),d%(10):DIMe%(10):PRINTFNa(8)+" "+FNa(22):b%=0:a%=4:e%=8:k%=12:R%=16:S%=20:A%=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:ra%=28:U%=32 sa%=16:ta%=20:PRINT:PRINTFNa(8)+" "+FNa(1)+" ";:ua%=0:SYSFNc(30)TOua%:PRINTFNa(21)+" "+STR$(ua%/100):d%!4=FNA(u$+"Intro"):PRINT:PRINTFNa(17)+" "+FNa(16):SYSFNc(1),,FNc(2)TOva%:PRINTFNa(9)+" "+FNa(4);:wa%=FNt(g$+"Gfx0"):PRINTFNa(14):PRINTFNa(9)+" "+FNa(5);:xa%=FNt(g$+"Gfx1"):PRINTFNa(14) PRINTFNa(9)+" "+FNa(23);:ya%=FNt(g$+"Gfx2"):PRINTFNa(14):za%=wa%:PRINT:PRINTFNa(9)+" "+FNa(6);:v%=OPENIN(b$+"Creds"):INPUT#v%,j$:IFj$<>"DERC"THEN CLOSE#v%:ERROR255,FNa(101):END ENDIF INPUT#v%,ea%,Aa%,Ba%:DIMe$(ea%),f%(ea%):FORi%=1TOea%:INPUT#v%,f%(i%),e$(i%):NEXTi%:CLOSE#v%:Ca%=0:FORi%=1TOea%:Ca%+=LEN(e$(i%)):NEXTi%:Da%=Ca%/ea%:IFDa%<>Ba%ORCa%<>Aa%THEN ERROR255,FNa(113) ELSE:PRINTFNa(14) ENDIF PRINT:PRINTFNa(7):v$=f$+"HiTable":IFFNq(v$)<>1THEN IFNOTFNx(0,f$)THEN d%!44=FALSE:PRINTFNa(19)+" "+FNa(10)+" "+FNa(20) ELSE:PRINTFNa(19)+" "+FNa(11)+" "+FNa(20) ENDIF PROCF(d%!44) ELSE:IFNOTFNx(1,v$)THEN d%!44=FALSE:PRINTFNa(18)+" "+FNa(10)+" "+FNa(20) ELSE:PRINTFNa(18)+" "+FNa(11)+" "+FNa(20) ENDIF PROCG ENDIF PRINT:PRINTFNa(12):PROCe(150):h%=FNe(36):T%=FNe(24):P%=FNe(16):CLS:PROCs:h%!ra%=FNd(8,1):h%!U%=FNd(8,2)+7:T%!e%=FNd(6,1):T%!k%=FNd(6,2):T%!sa%=h%!k%-50:T%!ta%=30:IFd%!0=1THEN SYSFNc(33),d%!4 ENDIF SYSFNc(36),d%!4,d%!48:WHILENOTFNB:CLS:PROCH:ENDWHILE:CLS:P%!e%=220:P%!k%=40:P%=FNu(P%,h%):P%!a%-=3:PROCm(P%):PROCt(FNa(31),10):IFd%!44THENPROCI IFd%!0=1THEN SYSFNc(36),d%!4,-1TO,Ea%:FORi%=Ea%TO0STEP-2:SYSFNc(36),d%!4,i%:PROCe(4):NEXTi%:SYSFNc(35),d%!4:SYSFNc(32),d%!4:d%!4=-1 ENDIF PROCu:END DEFFNB:LOCALi%,K%,L%,C%,J%,m%,Y%,Fa%,Ga%:LOCALp%,V%,Ha%,Ia%,Ja%,Ka%,La%,Ma%,Na%:LOCALx%,y%,N%,Oa%,s$,a$:Oa%=44:K%=FNf(16,0):L%=FNf(16,0):C%=FNf(16,0):m%=FNf(16,0):Y%=FNf(16,0):V%=FNf(16,0):p%=FNf(16,0):K%!e%=FNd(100,1):K%!k%=FNd(40,2) K%!b%=FNg(K%,h%):K%!a%=800:L%!e%=FNd(150,1):L%!k%=FNd(40,2):L%!b%=FNg(L%,h%):L%!a%=K%!a%-L%!k%:C%!e%=720:C%!k%=500:C%!b%=FNg(C%,h%):C%!a%=200:m%!e%=FNd(40,1):m%!k%=FNd(20,2):m%!b%=(C%!b%+C%!e%/2)-150:m%!a%=(C%!a%+C%!k%)-125 p%!e%=FNd(30,1):p%!k%=FNd(15,2):Y%!e%=FNd(20,1):Y%!k%=FNd(20,2):Y%!b%=(C%!b%+C%!e%/2)-150:Y%!b%+=FNg(Y%,m%):Fa%=FNh(Y%):Ga%=FNh(Y%)::Ga%!a%=m%!a%-40-Ga%!k%:Fa%!a%=Ga%!a%-40-Fa%!k%:Y%!a%=Fa%!a%-40-Y%!k% V%!e%=FNd(20,1):V%!k%=FNd(20,2):V%!b%=(C%!b%+C%!e%/2)-120:Ha%=FNh(V%):Ia%=FNh(V%):Ja%=FNh(V%):Ja%!b%=C%!b%:Pa%=FNh(Ja%):La%=FNh(Ja%):Ka%=FNh(V%):Ka%!b%=C%!b%:Ka%!b%+=(C%!e%/2)+10:Ma%=FNh(Ka%):Na%=FNh(Ka%) :V%!a%=(C%!a%+C%!k%)-120:Ha%!a%=V%!a%-60:Ia%!a%=Ha%!a%-60:La%!a%=Ia%!a%-90:Pa%!a%=La%!a%-60:Ja%!a%=Pa%!a%-60:Ka%!a%=Ia%!a%-90:Ma%!a%=Ka%!a%-60:Na%!a%=Ma%!a%-60:CLS:PROCf(T%!sa%):PROCf(T%!ta%):PROCj:FORi%=0-K%!e%TOK%!b%STEP5 WAIT:PROCa(FNb(100),i%,K%!a%):PROCe(1):NEXTi%:FORi%=h%!e%TOL%!b%STEP-5:WAIT:PROCa(FNb(101),i%,L%!a%):PROCe(1):NEXTi%:a$=FNa(32):J%=LEN(a$)*h%!ra%:y%=170:PROCb(FNk(J%,h%!e%),y%,a$,11,0):a$=FNa(33):J%=LEN(a$)*h%!ra%:y%-=h%!U%:PROCb(FNk(J%,h%!e%),y%,a$,11,0) WHILENOTINKEY(-99)ANDNOTINKEY(-17)ANDNOTINKEY(-82):y%=C%!a%+C%!k%:FORi%=1TOea%:a$=FNm(e$(i%),131):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(C%):a$=FNa(57)+" "+FNa(34):x%=FNi(a$):y%=C%!a%+C%!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%!e%+10:PROCa(FNb(11),m%!b%,m%!a%):a$=FNa(36)+" "+FNa(40):PROCb(x%,m%!a%+10,a$,0,0) PROCa(FNb(24),Ga%!b%,Ga%!a%):a$=FNa(37)+" "+FNa(40):PROCb(x%,Ga%!a%+12,a$,0,0):PROCa(FNb(22),Fa%!b%,Fa%!a%):a$=FNa(38)+" "+FNa(40):PROCb(x%,Fa%!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%!e%/h%!ra%+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%!ra%):p%!a%=y%:PROCa(FNb(1),p%!b%,p%!a%):N%=FNr:IFN%=1THEN=TRUE IFN%=2THEN=FALSE PROCd(C%):a$=FNa(41):x%=FNi(a$):y%=C%!a%+C%!k%-20:PROCb(x%,y%,a$,0,0):x%=V%!b%+V%!e%+10:PROCa(FNb(102),V%!b%,V%!a%):a$=FNa(42)+" "+FNa(43):PROCb(x%,V%!a%+12,a$,0,0):PROCa(FNb(103),Ha%!b%,Ha%!a%):a$=FNa(42)+" "+FNa(44):PROCb(x%,Ha%!a%+12,a$,0,0) PROCa(FNb(104),Ia%!b%,Ia%!a%):PROCb(x%,Ia%!a%+12,FNa(45),0,0):x%=Ja%!b%+Ja%!e%+10:PROCa(FNb(105),Pa%!b%,Pa%!a%):a$=FNa(46)+" "+FNa(49):PROCb(x%,Pa%!a%+12,a$,0,0):PROCa(FNb(117),La%!b%,La%!a%):PROCb(x%,La%!a%+12,FNa(76),0,0) PROCa(FNb(107),Ja%!b%,Ja%!a%):a$=FNa(48)+" "+FNa(49):PROCb(x%,Ja%!a%+12,a$,0,0):x%=Ka%!b%+Ka%!e%+10:PROCa(FNb(106),Ka%!b%,Ka%!a%):a$=FNa(47)+" "+FNa(73):PROCb(x%,Ka%!a%+12,a$,0,0):PROCa(FNb(115),Ma%!b%,Ma%!a%):a$=FNa(47)+" "+FNa(77)+" ":a$+=FNa(74) PROCb(x%,Ma%!a%+12,a$,0,0):PROCa(FNb(116),Na%!b%,Na%!a%):a$=FNa(47)+" "+FNa(77)+" ":a$+=FNa(75):PROCb(x%,Na%!a%+12,a$,0,0):N%=FNr:IFN%=1THEN=TRUE IFN%=2THEN=FALSE PROCd(C%):a$=FNa(50):IFd%!Oa%THENa$=FNa(51) x%=FNi(a$):y%=C%!a%+C%!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%=(C%!a%+C%!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$=FNm(a$(i%),131):a$+=FNn(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(C%):ENDWHILE:ERROR255,FNa(102):=FALSE DEFFNr:LOCALt%,N%:t%=TIME+750:N%=FALSE:REPEAT:IFINKEY(-82)THENPROCv IFINKEY(-102)THENPROCw 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(C%):PROCc(m%):PROCc(Y%):PROCc(Fa%):PROCc(Ga%):PROCc(V%):PROCc(Ha%):PROCc(Ia%):PROCc(Ja%):PROCc(Ka%):PROCc(Pa%):PROCc(La%):PROCc(Ma%):PROCc(Na%):PROCc(p%) ENDIF =N% DEFFNi(a$):LOCALJ%:J%=LEN(a$)*h%!ra%:=C%!b%+FNk(J%,C%!e%) DEFPROCH:LOCALp%,w%,m%,f%,B%:LOCALH%:LOCALc%(),a%():LOCALb%(),Qa%:LOCALRa%,Sa%,Ta%,Ua%:LOCALVa%,Wa%,Xa%:LOCALYa%:LOCALZa%,_a%,`a%,ab%,bb%:LOCALcb%,J%,a$,x%,y%,i%,j%:p%=FNe(32):w%=FNe(28):m%=FNe(48):f%=FNe(68):H%=FNe(16):B%=FNf(16,0) Ra%=0:Sa%=4:Ta%=8:Ua%=12:Ya%=16:db%=12:Va%=28:Qa%=56:Za%=ga%:_a%=ha%:`a%=ia%:ab%=la%:bb%=ma%:DIMc%(10,6),a%(10),b%(d%!Qa%):p%!e%=FNd(30,1):p%!k%=FNd(15,2):p%!b%=FNg(p%,h%):p%!a%=50:p%!S%=6:p%!R%=p%!S% H%!e%=FNd(20,1):H%!k%=FNd(20,2):m%!e%=FNd(40,1):m%!k%=FNd(20,2):m%!a%=T%!sa%-(10+m%!k%):m%!S%=5:m%!A%=FALSE:m%!ha%=1:w%!e%=FNd(5,1):w%!k%=FNd(20,2):w%!A%=FALSE:w%!S%=10:B%!Ta%=1:B%!Ra%=3:B%!Ua%=FALSE d%!Ya%=-1:d%!db%=0:f%!Za%=FNd(20,1):f%!_a%=10:f%!`a%=6:f%!A%=TRUE:f%!bb%=4:SYSFNc(6)TOf%!na%:PROCJ:PROCK:PROCf(T%!sa%):PROCf(T%!ta%):PROCL(0,d%(1),B%!Ra%,B%!Ta%):PROCM:PROCx:PROCa(FNb(1),p%!b%,p%!a%):WHILEB%!Ra%>0:cb%=FALSE:IFd%!Va%=0THEN IFINKEY(-74)THENPROCN(p%!b%,p%!a%) IFINKEY(-98)THENPROCO:cb%=TRUE IFINKEY(-67)THENPROCP:cb%=TRUE IFINKEY(-17)THENPROCQ ENDIF IFINKEY(-102)THENPROCw IFINKEY(-82)THENPROCv IFINKEY(-56)THENPROCR IFINKEY(-59)THENPROCk(4) IFINKEY(-60)THENPROCk(-4) IFd%!Va%=0THEN IFcb%THEN p%!b%+=p%!R%:PROCa(FNb(1),p%!b%,p%!a%) ENDIF ENDIF IFd%!Va%=0THEN PROCS:PROCT:PROCU:PROCV:PROCW:PROCX ELSE:PROCY ENDIF WAIT:ENDWHILE:P%!e%=240:P%!k%=40:P%=FNu(P%,h%):P%!a%-=3:PROCd(P%):PROCm(P%):a$=FNa(49)+" "+FNa(53):PROCt(a$,11):PROCe(750):IFNOTB%!Ua%THEN IFB%!Sa%>=d%(10)THEN PROCZ(B%) ENDIF ENDIF PROCc(p%):PROCc(f%):PROCc(m%):PROCc(w%):PROCc(B%):PROCc(H%):FORi%=1TO10:PROCc(a%(i%)):NEXTi%:FORi%=1TOd%!Qa%:PROCc(b%(i%)):NEXTi%:ENDPROC DEFPROCO:IFp%!b%<=0THEN p%!b%=0 ELSE:p%!R%=0-p%!S% ENDIF ENDPROC DEFPROCP:IFp%!b%>=h%!e%-p%!e%THEN p%!b%=h%!e%-p%!e% ELSE:p%!R%=0+p%!S% ENDIF ENDPROC DEFPROCN(x%,y%):IFNOTw%!A%THEN w%!A%=TRUE:w%!b%=x%+(p%!e%/2):w%!a%=y%+p%!k%:PROCg(4) ENDIF ENDPROC DEFPROCv:LOCALM%,eb%:M%=40:eb%=44:IFd%!eb%THEN REPEAT:UNTILNOTINKEY(-82):d%!M%=FNw(d%!M%):IFd%!M%=-1THENERROR255,FNa(109) OSCLI"ScreenSave "+q$+"Dump"+STR$(d%!M%) ENDIF ENDPROC DEFPROCQ:LOCALi%,fb%:fb%=52:FORi%=1TOd%!fb%:a%(i%)!A%=FALSE:NEXTi%:B%!Ra%=0:B%!Ua%=TRUE:ENDPROC DEFPROCw:LOCALZ%,gb%:Z%=0:gb%=4:REPEAT:UNTILNOTINKEY(-102):d%!Z%+=1:IFd%!Z%>2THENd%!Z%=0 IFd%!Z%=1THEN SYSFNc(33),d%!gb% ELSE:SYSFNc(34),d%!gb% ENDIF PROCj:ENDPROC DEFPROCk(hb%):LOCALZ%,gb%,ib%,jb%,D%,Ea%,kb%:Z%=0:gb%=4:ib%=8:jb%=48:IFd%!Z%=1THEN SYSFNc(6)TOD%:IFD%-d%!ib%>=10THEN SYSFNc(36),d%!gb%,-1TO,Ea%:kb%=Ea%+hb%:IFkb%>=0ANDkb%<=128THEN SYSFNc(36),d%!gb%,kb%:d%!jb%=kb%:d%!ib%=D% ENDIF ENDIF ENDIF ENDPROC DEFPROCR:LOCALVa%,Wa%,a$:Va%=28:Wa%=32:REPEATUNTILNOTINKEY(-56):a$=FNa(49)+" "+FNa(61):d%!Va%=FNo(d%!Va%):d%!Wa%=d%!Va%:IFd%!Va%=0THEN a$=STRING$(LEN(a$)," "):PROCn(a$) ENDIF ENDPROC DEFPROCS:IFw%!A%THEN IFw%!a%>=T%!sa%-w%!k%THEN w%!A%=FALSE:w%!a%-=2:PROCd(w%) ELSE:PROCa(FNb(5),w%!b%,w%!a%) ENDIF w%!a%+=w%!S% ENDIF ENDPROC DEFPROCT:LOCALlb%,mb%,nb%,D%,_%,d$:lb%=fa%:mb%=ga%:nb%=ha%:IFNOTm%!A%THEN IFFNp(4)ANDFNp(5)THEN m%!A%=TRUE:m%!X%=FALSE:m%!mb%=0:IFFNp(50)THEN m%!R%=0-m%!S%:m%!b%=h%!e% ELSE:m%!R%=0+m%!S%:m%!b%=0-m%!e% ENDIF ENDIF ELSE:IFm%!b%<=0-m%!e%ANDSGN(m%!R%)=-1THEN m%!lb%=FALSE:m%!A%=FALSE:ENDPROC ENDIF IFm%!b%>h%!e%ANDSGN(m%!R%)=1THEN m%!lb%=FALSE:m%!A%=FALSE:ENDPROC ENDIF IFNOTm%!X%THEN IFFNl(w%,m%)THEN PROCd(w%):PROCa(FNb(12),m%!b%,m%!a%):SYSFNc(6)TOm%!lb%:m%!X%=TRUE:w%!A%=FALSE:PROCh(500) ENDIF ELSE:IFFNl(w%,m%)THEN PROCd(w%):w%!A%=FALSE ENDIF ENDIF IFNOTm%!X%THEN SYSFNc(6)TOD%:IFD%-m%!nb%>=40THEN m%!nb%=D%:m%!mb%=FNo(m%!mb%) ENDIF d$=FNb(10)+STR$(m%!mb%):PROCa(d$,m%!b%,m%!a%):m%!b%+=m%!R% ELSE:SYSFNc(6)TOD%:_%=D%-m%!lb%:IF_%>=300THEN m%!A%=FALSE:m%!mb%=1:PROCd(m%) ELSE:IF_%>=250THEN PROCa(FNb(15),m%!b%,m%!a%) ELSE:IF_%>=200THEN PROCa(FNb(14),m%!b%,m%!a%) ELSE:IF_%>=100THEN PROCa(FNb(13),m%!b%,m%!a%) ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDPROC DEFPROCU:LOCALob%,z%,I%,Q%,pb%,qb%,rb%,sb%:LOCALO%,tb%,ub%,D%,vb%,wb%,xb%:O%=fa%:tb%=ja%:ub%=ka%:vb%=na%:wb%=52:xb%=56:SYSFNc(6)TOD%:IFD%-f%!vb%>=50THEN f%!vb%=D%:f%!O%=FNo(f%!O%) ENDIF ob%=f%!b%+f%!e%:sb%=0-((f%!tb%-1)*(H%!e%+f%!Za%)):IFob%>=h%!e%THEN f%!R%=0-f%!S%:PROCy ENDIF IFf%!b%<=sb%THEN f%!R%=0+f%!S%:PROCy ENDIF sb%=f%!a%+((f%!ab%-1)*H%!k%):IFsb%<=p%!a%+p%!k%THEN PROC_:ENDPROC ENDIF IFFNl(w%,f%)THEN z%=H%!e%+f%!Za%:IF(w%!b%-f%!b%)MODz%<=H%!e%THEN I%=((w%!a%-f%!a%)DIVH%!k%)+1:Q%=((w%!b%-f%!b%)DIVz%)+1:IFSGN(c%(Q%,I%))=1THEN c%(Q%,I%)=-5:PROCd(w%):w%!A%=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%!_a%*f%!`a%THEN B%!Ta%+=1:PROCd(f%):PROCf(T%!ta%):PROCi(B%!Ra%):PROCo(B%!Ta%):PROCj:PROCa(FNb(1),p%!b%,p%!a%):PROC`:PROCx:PROCz:IFB%!Ta%>=5THENd%!wb%=7 IFB%!Ta%>=10THENd%!wb%=10 ENDIF pb%=TRUE:qb%=TRUE:FORI%=1TOf%!`a%:IFc%(f%!ub%,I%)<>0THENpb%=FALSE IFc%(f%!tb%,I%)<>0THENqb%=FALSE NEXTI%:rb%=TRUE:FORQ%=1TOf%!_a%:IFc%(Q%,f%!ab%)<>0THENrb%=FALSE NEXTQ%:IFqb%THENf%!tb%+=1 IFpb%THEN f%!e%-=(H%!e%+f%!Za%):f%!ub%-=1 ENDIF IFrb%THENf%!ab%+=1 f%!b%+=f%!R%:PROCp:ENDPROC DEFPROCV:LOCALi%,j%,D%,wb%,xb%:wb%=52:xb%=56:FORi%=1TOd%!wb%:IFNOTa%(i%)!A%THEN PROCaa(i%) ELSE:PROCba(i%):IFa%(i%)!a%<=T%!ta%+(T%!k%+5)THEN a%(i%)!A%=FALSE:PROCd(a%(i%)) ENDIF IFFNl(a%(i%),p%)ANDa%(i%)!A%THEN PROCca(i%) ENDIF FORj%=1TOd%!xb%:IFFNl(a%(i%),b%(j%))THEN PROCA(j%,FALSE):PROCd(a%(i%)):a%(i%)!A%=FALSE ENDIF NEXTj%:IFFNl(w%,a%(i%))THEN PROCda(i%) ENDIF IFa%(i%)!X%THEN PROCea(i%) ENDIF ENDIF NEXTi%:ENDPROC DEFPROCY:LOCALVa%,Wa%,Xa%,D%,a$:Va%=28:Wa%=32:Xa%=36:SYSFNc(6)TOD%:IFD%-d%!Xa%>=50THEN d%!Wa%=FNo(d%!Wa%):d%!Xa%=D% ENDIF a$=FNa(49)+" "+FNa(61):IFd%!Wa%=0ORd%!Va%=0THEN a$=STRING$(LEN(a$)," ") ENDIF PROCn(a$):ENDPROC DEFPROCX:LOCALYa%,yb%,zb%,D%,a$:Ya%=16:yb%=20:zb%=24:IFd%!Ya%>=0THEN SYSFNc(6)TOD%:a$=FNa(66)+" "+FNa(72):IFD%-d%!zb%>=50THEN d%!zb%=D%:d%!yb%=FNo(d%!yb%):IFd%!yb%=1THENd%!Ya%+=1 ENDIF IFd%!yb%=0THEN a$=STRING$(LEN(a$)," ") ENDIF IFd%!Ya%>5THEN a$=STRING$(LEN(a$)," "):d%!Ya%=-1 ENDIF PROCn(a$) ENDIF ENDPROC DEFPROCW:LOCALi%,D%,fb%,vb%,q%:fb%=56:vb%=ga%:q%=FNe(16):FORi%=1TOd%!fb%:IFFNl(w%,b%(i%))THEN PROCd(w%):w%!A%=FALSE:PROCA(i%,TRUE) ENDIF IFb%(i%)!X%THEN SYSFNc(6)TOD%:IFD%-b%(i%)!vb%>=5THEN q%!b%=b%(i%)!b%:q%!e%=b%(i%)!e%: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 DEFPROCF(Ab%):LOCALi%,n$:FORi%=1TO10:IFi%MOD2=0THENn$=FNa(71)ELSEn$=FNa(70) a$(i%)=FNm(n$,131):d%(i%)=(11-i%)*1000:e%(i%)=0:NEXTi%:IFAb%THENPROCB ENDPROC DEFPROCG:LOCALi%,v%:v%=OPENIN(f$+"HiTable"):FORi%=1TO10:INPUT#v%,a$(i%),d%(i%),e%(i%):NEXTi%:CLOSE#v%:ENDPROC DEFPROCB:LOCALi%,v%:v%=OPENOUT(f$+"HiTable"):FORi%=1TO10:PRINT#v%,a$(i%),d%(i%),e%(i%):NEXTi%:CLOSE#v%:ENDPROC DEFPROCZ(B%):LOCALL%,K%,Bb%,g%,i%,Cb%,J%,x%,y%,a$:LOCALOa%:K%=FNe(16):L%=FNe(16):Oa%=44:K%!e%=FNd(100,1):K%!k%=FNd(40,2):K%!b%=FNg(K%,h%):K%!a%=800:L%!e%=FNd(150,1):L%!k%=FNd(40,2):L%!b%=FNg(L%,h%):L%!a%=K%!a%-L%!k%:Cb%=0:FORi%=10TO1STEP-1 IFB%!Sa%>=d%(i%)THENCb%=i% NEXTi%:FORi%=9TOCb%STEP-1:a$(i%+1)=a$(i%):d%(i%+1)=d%(i%):e%(i%+1)=e%(i%):NEXTi%:d%(Cb%)=B%!Sa%:e%(Cb%)=B%!Ta%:CLS:PROCf(T%!sa%):PROCf(T%!ta%):PROCa(FNb(100),K%!b%,K%!a%):PROCa(FNb(101),L%!b%,L%!a%):a$=FNa(54)+" "+STR$(B%!Sa%) a$+=" "+FNa(55)+" "+STR$(Cb%)+FNC(Cb%):J%=LEN(a$)*h%!ra%:x%=FNk(J%,h%!e%):y%=L%!a%-170:PROCb(x%,y%,a$,0,0):PROCc(K%):PROCc(L%):P%!e%=165:P%!k%=40:P%=FNu(P%,h%):PROCm(P%):x%=P%!b%+20:y%=P%!a%+12:a$="":i%=1:Bb%=FALSE OSCLI"FX 21,0":REPEAT:g%=GET:CASEg%OF WHEN13:Bb%=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) UNTILBb%:IFa$=""ORa$=" "THENa$=FNa(56) a$(Cb%)=FNm(a$,131):IFd%!Oa%THENPROCB ENDPROC DEFFND(Db%):LOCALEb%:Eb%=FALSE:IFDb%>=32ANDDb%<=126THENEb%=TRUE =Eb% DEFPROCL(Fb%,Gb%,l%,r%):LOCALx%,a$:a$=FNa(57)+" "+FNa(59):a$+=FNn(STR$(Fb%),10," ",TRUE):PROCb(0,h%!k%-h%!U%,a$,0,0):a$=FNa(58)+" "+FNa(57):a$+=" "+FNa(59)+FNn(STR$(Gb%),10," ",TRUE):x%=h%!e%-LEN(a$)*h%!ra%: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%!e%,0,a$,0,0):ENDPROC DEFPROCo(M%):LOCALx%,a$:a$=FNa(60)+" "+FNa(59):a$+=FNn(STR$(M%),3,"0",TRUE):x%=h%!e%-LEN(a$)*h%!ra%:PROCb(x%,0,a$,0,0):ENDPROC DEFPROCn(a$):LOCALx%,y%,J%:J%=LEN(a$)*h%!ra%:x%=FNk(J%,h%!e%):y%=h%!k%-h%!U%:PROCb(x%,y%,a$,0,0):ENDPROC DEFPROCh(Hb%):LOCALdb%,Ya%,x%,a$:db%=12:Ya%=16:B%!Sa%+=Hb%:a$=FNa(57)+" "+FNa(59):a$+=FNn(STR$(B%!Sa%),10," ",TRUE):PROCb(0,h%!k%-h%!U%,a$,0,0):IFB%!Sa%-d%!db%>=5000THEN B%!Ra%+=1:PROCi(B%!Ra%):d%!db%=B%!Sa%:d%!Ya%=0 ENDIF IFB%!Sa%>d%(1)THEN a$=FNa(58)+" "+FNa(57)+" ":a$+=FNa(59):a$+=FNn(STR$(B%!Sa%),10," ",TRUE):x%=h%!e%-LEN(a$)*h%!ra%:PROCb(x%,h%!k%-h%!U%,a$,0,0) ENDIF ENDPROC DEFPROCj:LOCALIb%,Jb%,d$:Jb%=FNe(16):Ib%=0:Jb%!e%=FNd(20,1):Jb%!k%=FNd(10,2):Jb%!b%=FNg(Jb%,h%):Jb%!a%=0:IFd%!Ib%<0ORd%!Ib%>2THEN ERROR255,FNa(111)+" "+STR$(d%!Ib%) ENDIF d$=FNb(120+d%!Ib%):PROCa(d$,Jb%!b%,Jb%!a%):PROCc(Jb%):ENDPROC DEFPROCM:LOCALO%,tb%,ub%,ab%:O%=fa%:tb%=ja%:ub%=ka%:ab%=la%:PROCz:PROCp:ENDPROC DEFPROCz:LOCALI%,Q%,s%:f%!b%=50:f%!a%=550:f%!O%=0:f%!X%=0:f%!S%=3:f%!R%=f%!S%:f%!tb%=1:f%!ub%=f%!_a%:f%!ab%=1:s%=(f%!_a%*H%!e%)+((f%!_a%-1)*f%!Za%):f%!e%=s%:f%!k%=f%!`a%*H%!k%:FORQ%=1TOf%!_a%: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%!tb%TOf%!ub%:x%=f%!b%+((Q%-1)*(H%!e%+f%!Za%)):FORI%=f%!ab%TOf%!`a%:y%=f%!a%+((I%-1)*H%!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:PROCfa(x%,y%,Q%,I%) WHEN1:PROCa(FNb(27)+STR$(c%(Q%,I%)),x%,y%) ENDCASE ELSE:q%!b%=x%:q%!a%=y%:q%!e%=H%!e%:q%!k%=H%!k%:PROCd(q%) ENDIF NEXTI%:NEXTQ%:PROCc(q%):ENDPROC DEFPROCfa(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%!e%=H%!e%:q%!k%=H%!k%:PROCd(q%):PROCc(q%) ENDIF ENDPROC DEFPROCy:LOCALq%,i%:q%=FNe(16):FORi%=1TO3:f%!a%-=H%!k%/3:PROCp:NEXTi%:q%!b%=f%!b%:q%!a%=f%!a%+f%!k%:q%!e%=f%!e%:q%!k%=H%!k%:PROCd(q%):PROCc(q%):ENDPROC DEFPROC_:LOCALW%,Kb%,D%,Lb%,Mb%,S%,i%,o$:S%=1:Nb%=24:W%=FNe(28):Kb%=FNe(28):PROCd(f%):PROCd(p%):IFw%!A%THEN PROCd(w%):w%!A%=FALSE ENDIF IFm%!A%THEN PROCd(m%):m%!A%=FALSE ENDIF PROCga:PROCha:p%!b%=FNg(p%,h%):W%!b%=0-H%!e%:W%!a%=p%!a%:W%!R%=S%:Kb%!b%=h%!e%:Kb%!a%=p%!a%:Kb%!R%=0-S%:B%!Ra%=0:PROCf(T%!ta%):PROCi(B%!Ra%):PROCo(B%!Ta%):PROCa(FNb(1),p%!b%,p%!a%):O%=0:Mb%=FALSE:REPEAT:W%!b%+=W%!R%:W%!Nb%=W%!b%+H%!e%:Kb%!b%+=Kb%!R% SYSFNc(6)TOD%:IFD%-Lb%>=50THENMb%=FNo(Mb%):Lb%=D% IFMb%THENo$=FNb(21)ELSEo$=FNb(20) PROCa(o$,W%!b%,W%!a%):PROCa(o$,Kb%!b%,Kb%!a%):PROCe(2):WAIT:UNTILW%!Nb%>=p%!b%:FORi%=1TO10:PROCa(FNb(20),W%!b%,W%!a%):PROCa(FNb(20),Kb%!b%,Kb%!a%):PROCe(20):PROCa(FNb(21),W%!b%,W%!a%):PROCa(FNb(21),Kb%!b%,Kb%!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(Kb%):ENDPROC DEFPROCJ:LOCALi%,_%,Lb%:_%=ha%:Lb%=ia%:FORi%=1TO10:a%(i%)=FNf(48,0):a%(i%)!e%=FNd(5,1):a%(i%)!k%=FNd(20,2):SYSFNc(6)TOa%(i%)!_%:SYSFNc(6)TOa%(i%)!Lb%:a%(i%)!A%=FALSE:NEXTi%:ENDPROC DEFPROCaa(o%):LOCALOb%,Pb%,Qb%,Rb%,x%,y%:LOCALO%,Sb%:O%=fa%:Sb%=ga%:Ob%=RND(10):Qb%=B%!Ta%+5:IFQb%>100THEN Qb%=100:IFB%!Ta%MOD10=0THENf%!bb%+=1 ENDIF IFFNp(Qb%)ANDFNp(f%!bb%)THEN IFc%(Ob%,f%!ab%)>0THEN x%=f%!b%+(Ob%-1)*(H%!e%+f%!Za%):y%=f%!a%+((f%!ab%-1)*H%!k%)-H%!k%:Pb%=(H%!e%/2)-(a%(o%)!e%/2):a%(o%)!b%=x%+Pb%:a%(o%)!a%=y%:a%(o%)!A%=TRUE:a%(o%)!X%=FALSE:a%(o%)!Sb%=1:a%(o%)!O%=0:Rb%=4:IFFNp(25)THENa%(o%)!Sb%=2:Rb%=Rb%/2 a%(o%)!S%=Rb%:a%(o%)!R%=a%(o%)!S%:PROCg(3) ENDIF ENDIF ENDPROC DEFPROCba(o%):LOCALD%,O%,Lb%,Sb%,d$,r$:O%=fa%:Sb%=ga%:Lb%=ia%:SYSFNc(6)TOD%:IFD%-a%(o%)!Lb%>=40THEN a%(o%)!Lb%=D%:a%(o%)!O%+=1 ENDIF :IFa%(o%)!Sb%=1ANDa%(o%)!O%>1THEN a%(i%)!O%=0 ENDIF IFa%(o%)!Sb%=2ANDa%(o%)!O%>3THEN a%(o%)!O%=0 ENDIF r$=STR$(a%(o%)!O%):IFa%(o%)!Sb%=2ANDa%(o%)!O%=3THEN r$="1" ENDIF d$=FNb(30)+STR$(a%(o%)!Sb%)+r$: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 DEFPROCca(o%):LOCALi%:PROCg(2):FORi%=1TO3:PROCa(FNb(2)+STR$(i%),p%!b%,p%!a%):PROCe(20):WAIT:NEXTi%:PROCd(p%):IFw%!A%THEN PROCd(w%):w%!A%=FALSE ENDIF p%!b%=FNg(p%,h%):B%!Ra%-=1:PROCi(B%!Ra%):PROCd(a%(o%)):a%(o%)!A%=FALSE:PROCa(FNb(1),p%!b%,p%!a%):ENDPROC DEFPROCda(o%):LOCALSb%,_%:Sb%=ga%:_%=ha%:IFa%(o%)!Sb%=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%)!_% ENDIF ENDIF PROCd(w%):w%!A%=FALSE:ENDPROC DEFPROCea(o%):LOCAL_%,D%:_%=ha%:SYSFNc(6)TOD%:IFD%-a%(o%)!_%>=40THEN PROCd(a%(o%)):a%(o%)!A%=FALSE ENDIF ENDPROC DEFPROCga:LOCALi%,Tb%:Tb%=52:FORi%=1TOd%!Tb%:IFa%(i%)!A%THEN PROCd(a%(i%)):a%(i%)!A%=FALSE ENDIF NEXTi%:ENDPROC DEFPROCK:LOCALi%,x%,Ub%,Vb%,M%:M%=d%!56:Vb%=fa%:Ub%=h%!e%/M%:x%=Ub%-150:FORi%=1TOM%:b%(i%)=FNf(48,0):b%(i%)!e%=FNd(30,1):b%(i%)!k%=FNd(15,2):b%(i%)!b%=x%+((i%-1)*Ub%):b%(i%)!a%=p%!a%+100:b%(i%)!A%=TRUE:b%(i%)!Vb%=0:NEXTi%:ENDPROC DEFPROC`:LOCALi%,Vb%,M%:M%=d%!56:Vb%=fa%:FORi%=1TOM%:b%(i%)!A%=TRUE:b%(i%)!Vb%=0:NEXTi%:ENDPROC DEFPROCx:LOCALi%,M%:M%=56:FORi%=1TOd%!M%:IFb%(i%)!A%THENPROCq(b%(i%)) NEXTi%:ENDPROC DEFPROCq(o%):LOCALWb%,Xb%,Yb%,J%,Vb%,a$:Vb%=fa%:Yb%=10-o%!Vb%:a$=STR$(Yb%):J%=LEN(a$):Wb%=o%!b%+FNk(J%,o%!e%):Xb%=o%!a%+(o%!k%/2)-(h%!U%/2):Xb%+=7:IFJ%=1THENWb%-=7ELSEWb%-=15 PROCd(o%):PROCa(FNb(16),o%!b%,o%!a%):PROCb(Wb%,Xb%,a$,0,1):ENDPROC DEFPROCA(o%,Zb%):LOCALy%,Vb%:Vb%=fa%:vb%=ga%:b%(o%)!Vb%+=1:IFb%(o%)!Vb%>=10THEN PROCd(b%(o%)):b%(o%)!A%=FALSE ELSE:PROCd(b%(o%)):y%=b%(o%)!a%:IFZb%THENb%(o%)!a%+=5ELSEb%(o%)!a%-=5 PROCq(b%(o%)):b%(o%)!X%=TRUE:b%(o%)!a%=y%:SYSFNc(6)TOb%(o%)!vb% ENDIF ENDPROC DEFPROCha:LOCALi%,q%,M%:M%=d%!56:FORi%=1TOM%:b%(i%)!A%=FALSE:NEXTi%:q%=FNe(16):q%!b%=0:q%!a%=b%(1)!b%:q%!e%=h%!e%:q%!k%=b%(1)!k%:PROCd(q%):PROCc(q%):ENDPROC DEFFNt(e$):LOCAL_b%,G%:G%=FNE(e$)+256:_b%=FNe(G%):!_b%=G%:_b%!4=0:_b%!8=16:_b%!12=16:SYSva%,256+10,_b%,e$:SYSva%,256+17,_b%:=_b% DEFPROCb(x%,y%,a$,`b%,ac%):LOCALi%,bc%:CASEac%OF WHEN0:za%=xa% WHEN1:za%=ya% OTHERWISE:ERROR255,FNa(112)+" "+STR$(ac%) ENDCASE bc%=h%!ra%:FORi%=1TOLEN(a$):PROCa(STR$(ASC(MID$(a$,i%,1))),x%+((i%-1)*bc%),y%):IF`b%>0THENPROCe(`b%) NEXTi%:za%=wa%:ENDPROC DEFPROCa(A$,x%,y%):LOCALcc%:SYSva%,256+24,za%,A$TO,,cc%:SYSva%,512+34,za%,cc%,x%,y%,0:ENDPROC DEFPROCd(F%):GCOL0,0TINT0:RECTANGLEFILLF%!b%,F%!a%,F%!e%,F%!k%:ENDPROC DEFFNk(dc%,h%):=(h%/2)-(dc%/2) DEFPROCt(a$,ec%):LOCALJ%,y%:J%=LEN(a$)*h%!ra%:y%=(h%!k%/2)-(h%!U%/2):PROCb(FNk(J%,h%!e%),y%,a$,ec%,0):ENDPROC DEFFNg(fc%,gc%):=(gc%!e%/2)-(fc%!e%/2) DEFFNu(fc%,gc%):LOCALx%,y%:fc%!b%=(gc%!e%/2)-(fc%!e%/2):fc%!a%=(gc%!k%/2)-(fc%!k%/2):=fc% DEFPROCf(a%):LOCALi%,hc%:hc%=h%!e%/T%!e%:FORi%=1TOhc%+1:PROCa(FNb(108),(i%-1)*T%!e%,a%):NEXTi%:ENDPROC DEFPROCm(F%):LOCALx%,y%,ic%,jc%,kc%,lc%,i%:ic%=FNd(3,1):jc%=FNd(3,2):kc%=1:lc%=3:FORi%=1TOF%!e%:x%=F%!b%+((i%-1)*kc%):PROCa(FNb(113),x%,F%!a%):PROCa(FNb(113),x%,F%!a%+(F%!k%-(2*lc%))):NEXTi%:x%=F%!b%+(F%!e%-ic%):FORi%=1TOF%!k%-1 PROCa(FNb(114),F%!b%,F%!a%+((i%-1)*kc%)):PROCa(FNb(114),x%,F%!a%+((i%-1)*kc%)):NEXTi%:PROCa(FNb(111),F%!b%,F%!a%):PROCa(FNb(109),F%!b%,(F%!a%+F%!k%)-jc%):PROCa(FNb(112),F%!b%+(F%!e%-ic%),F%!a%):x%=(F%!b%+F%!e%)-ic%:y%=(F%!a%+F%!k%)-jc% PROCa(FNb(110),x%,y%):ENDPROC DEFFNs(e$,j$):LOCALv%,mc%,nc%,k$:v%=OPENIN(e$):INPUT#v%,k$:IFk$<>j$THENCLOSE#v%:ERROR255,"Bad Magic!" INPUT#v%,nc%,nc%,mc%:CLOSE#v%:=mc% DEFPROCl(e$,j$,RETURNj%(),RETURNg$()):LOCALv%,i%,mc%,Aa%,Ba%,Ca%,Da%,k$:Ca%=0:v%=OPENIN(e$):INPUT#v%,k$:IFk$<>j$THENCLOSE#v%:ERROR255,"Bad Magic!" INPUT#v%,Aa%,Ba%,mc%:FORi%=1TOmc%:INPUT#v%,j%(i%),g$(i%):NEXTi%:CLOSE#v%:FORi%=1TOmc%:Ca%+=LEN(g$(i%)):NEXTi%:Da%=Ca%/mc%:IFCa%<>Aa%ORDa%<>Ba%THEN ERROR255,"File Inconsistant with header!" ENDIF ENDPROC DEFPROCr(oc%,pc%,RETURNb$()):LOCALi%:FORi%=1TOoc%:b$(i%)=FNm(b$(i%),pc%):NEXTi%:ENDPROC DEFFNa(qc%):=FNv(qc%,ba%,g%(),f$(),131,106) DEFFNb(qc%):=FNv(qc%,ca%,h%(),c$(),-1,107) DEFFNc(qc%):=FNv(qc%,da%,i%(),d$(),-1,108) DEFFNv(qc%,oc%,k%(),b$(),pc%,rc%):LOCALi%,sc%,c$:sc%=0:FORi%=1TOoc%:IFk%(i%)=qc%THENsc%=i%:i%=oc% NEXTi%:IFsc%=0THEN IFqc%>=106ANDqc%<=108THEN ERROR255,"Missing message!!!" ELSE:ERROR255,FNa(rc%)+" "+STR$(qc%) ENDIF ENDIF IFpc%=-1THEN=b$(sc%) =FNm(b$(sc%),pc%) DEFFNA(e$):LOCALv%:v%=0:SYSFNc(31),,e$TOv%:=v% DEFPROCg(tc%):LOCALIb%,w$:Ib%=0:w$=FNa(110)+" "+STR$(tc%):IFd%!Ib%>0THEN IFtc%<1ANDtc%>4THENERROR255,w$ OSCLI"SPlay_fire0"+STR$(tc%)+"mhh" ENDIF ENDPROC DEFPROCs: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%!e%=(q%!8)+1<h%!qa%THENPROCs CASEuc%OF WHEN1:vc%=G%<>h%!oa% WHEN4:vc%=G%>>h%!pa% OTHERWISE:ERROR255,FNa(103)+" "+STR$(uc%) ENDCASE =vc% DEFFNl(F%,xc%):LOCALyc%,zc%,Ac%,Bc%:Ac%=FALSE:Bc%=FALSE:IFF%!A%ANDxc%!A%THEN yc%=xc%!b%+xc%!e%:zc%=xc%!a%+xc%!k%:IFF%!b%>=xc%!b%ANDF%!b%=xc%!a%ANDF%!a%-1THEN SYS"TimPlayer_SongStop",d%!4:SYS"TimPlayer_SongUnload",d%!4 ENDIF PROCu:ENDPROC DEFFNj(B$,x$):LOCALl$,t$,N%,sc%:l$=STRING$(10," "):RIGHT$(l$,3)=" : ":LEFT$(l$,LEN(x$))=x$:N%=FNq(B$):t$="Missing!!":sc%=FALSE:IFN%=1THENt$="OK.":sc%=TRUE l$+=t$:PRINTl$:=sc% DEFFNw(mc%):LOCALh$:h$="Dump"+STR$(mc%):IFFNq(q$+h$)<>0THEN REPEAT:mc%+=1:h$="Dump"+STR$(mc%):UNTILFNq(q$+h$)=0ORLEN(h$)>10:IFLEN(h$)>10THENmc%=-1 ENDIF =mc% DEFPROCE:LOCALv%,Z%,jb%,Cc%,hb%:Z%=0:jb%=48:v%=OPENIN(f$+"Configs"):INPUT#v%,Cc%,hb%:CLOSE#v%:IFCc%>=0ANDCc%<=2THENd%!Z%=Cc% IFhb%>=0ANDhb%<=128THENd%!jb%=hb% ENDPROC DEFPROCI:LOCALv%,Z%,jb%:Z%=0:jb%=48:v%=OPENOUT(f$+"Configs"):PRINT#v%,d%!Z%,d%!jb%:CLOSE#v%:ENDPROC DEFFNp(n%):=RND(100)<=n% DEFFNm(a$,pc%):LOCALi%,y$:FORi%=1TOLEN(a$):y$+=CHR$(ASC(MID$(a$,i%,1))EORpc%):NEXTi%:=y$ DEFPROCe(n%):LOCALt%:t%=TIME+n%:REPEAT:UNTILTIME>=t%:ENDPROC DEFFNo(n%):=n%EOR1 DEFFNC(n%):LOCALc$,u%:u%=VAL(RIGHT$(STR$(n%),1)):c$=FNa(65):IFu%>=1ANDu%<=3THENc$=FNa(u%+61) =c$ DEFFNn(a$,Dc%,z$,Ec%):LOCALFc%,c$:Fc%=Dc%-LEN(a$):IFFc%<=0THEN c$=LEFT$(a$,Dc%) ELSE:IFEc%THEN c$=STRING$(Dc%,z$):RIGHT$(c$,LEN(a$))=a$ ELSE:c$=a$+STRING$(Fc%,z$) ENDIF ENDIF =c$ DEFFNy(a$,Dc%):LOCALc$:c$=STRING$(Dc%," "):RIGHT$(c$,LEN(a$))=a$:=c$ DEFFNq(i$):LOCALsc%:SYS"XOS_File",17,i$TOsc%:=sc% DEFFNE(i$):LOCALG%:SYSFNc(3),5,i$TO,,,,G%:=G% DEFFNx(uc%,i$):LOCALv%,Gc%,Hc%,Ic%:Ic%=FALSE:CASEuc%OF WHEN0:v%=OPENUP(i$+"chkfile") WHEN1:v%=OPENUP(i$) OTHERWISE:ERROR255,FNa(104)+" "+STR$(uc%) ENDCASE IFv%<>0THEN SYSFNc(4),254,v%TOHc%;Gc%:IF(Gc%AND1)THENCLOSE#v%:ERROR255,FNa(105) IF((Hc%AND(1<<7))<>0)THENIc%=TRUE CLOSE#v% ENDIF =Ic% DEFPROCD:LOCALJc%:Kc%=0:Lc%=0:SYSFNc(10),-1,-1TOMc%:SYSFNc(11)TONc%;Jc%:IFJc%AND1THENNc%=16384 PROCia(Nc%):ENDPROC DEFPROCu:IFKc%THEN SYSFNc(10),Kc%-32768,-1TOMc%:Kc%=0:Lc%=0 ENDIF ENDPROC DEFFNe(`%):LOCALE%,G%:G%=(`%+15)AND-4:E%=FNF(G%):IFE%ELSEERROR254,FNa(211) E%!0=&DEADDEAD:E%!4=`%:!(E%-8+(E%!-4))=&DEADDEAD:=E%+8 DEFFNf(`%,Hb%):LOCALE%:E%=FNe(`%):PROCja(E%,Hb%):=E% DEFPROCc(RETURNE%):CASEFNG(E%)OF WHEN1:ERROR254,FNa(212) WHEN2:ERROR254,FNa(213) WHEN3:ERROR254,FNa(217) ENDCASE E%-=8:Lc%-=E%!-4:SYSFNc(12),3,Kc%,E%:E%=0:ENDPROC DEFFNz(E%):LOCALq%:q%=E%-4:=q%!0 DEFPROCja(E%,Hb%):LOCALsb%,G%:G%=FNz(E%):FORsb%=0TOG%-4STEP4:E%!sb%=Hb%:NEXTsb%:ENDPROC DEFFNh(E%):LOCALOc%,sb%,G%:G%=FNz(E%):Oc%=FNe(G%):FORsb%=0TOG%-4STEP4:Oc%!sb%=E%!sb%:NEXTsb%:=Oc% DEFFNG(E%):LOCALGb%,Pc%:Gb%=FALSE:Pc%=FALSE:E%-=8:IFE%!0<>&DEADDEADTHENPc%=TRUE IF!(E%-8+(E%!-4))<>&DEADDEADTHENGb%=TRUE IFPc%ANDGb%THEN=3 IFGb%THEN=2 IFPc%THEN=1 =0 DEFPROCia(G%):IFKc%THENERROR254,FNa(215) G%=(G%+Nc%-1)ANDNOT(Nc%-1):Kc%=HIMEM:SYSFNc(10),Mc%+G%,-1TOMc%:G%=Mc%+32768-Kc%:IFG%<1THEN Kc%=0:ERROR254,FNa(216) ELSE:SYSFNc(12),0,Kc%,,G% ENDIF Lc%=0:ENDPROC DEFPROCka(`%):LOCALQc%:Qc%=Mc%:SYSFNc(10),Mc%+`%,-1TOMc%:`%=Mc%-Qc%:IF`%THENSYSFNc(12),5,Kc%,,`%TO,,,`% ENDPROC DEFFNF(`%):LOCALE%,Jc%:SYSFNc(13),2,Kc%,,`%TO,,E%;Jc%:IFJc%AND1THEN PROCka((`%+Nc%)ANDNOT(Nc%-1)):SYSFNc(13),2,Kc%,,`%TO,,E%;Jc%:IFJc%AND1THEN=0 ENDIF Lc%+=E%!-4:=E%