REM Acorn Invaders REM Packed by Make v1.41 15/5/08 On 31 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%):=Db%>=32ANDDb%<=126 DEFPROCL(Eb%,Fb%,l%,r%):LOCALx%,a$:a$=FNa(57)+" "+FNa(59):a$+=FNn(STR$(Eb%),10," ",TRUE):PROCb(0,h%!k%-h%!U%,a$,0,0):a$=FNa(58)+" "+FNa(57):a$+=" "+FNa(59)+FNn(STR$(Fb%),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(Gb%):LOCALdb%,Ya%,x%,a$:db%=12:Ya%=16:B%!Sa%+=Gb%: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:LOCALHb%,Ib%,d$:Ib%=FNe(16):Hb%=0:Ib%!e%=FNd(20,1):Ib%!k%=FNd(10,2):Ib%!b%=FNg(Ib%,h%):Ib%!a%=0:IFd%!Hb%<0ORd%!Hb%>2THEN ERROR255,FNa(111)+" "+STR$(d%!Hb%) ENDIF d$=FNb(120+d%!Hb%):PROCa(d$,Ib%!b%,Ib%!a%):PROCc(Ib%):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%,Jb%,D%,Kb%,Lb%,S%,i%,o$:S%=1:Mb%=24:W%=FNe(28):Jb%=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%:Jb%!b%=h%!e%:Jb%!a%=p%!a%:Jb%!R%=0-S%:B%!Ra%=0:PROCf(T%!ta%):PROCi(B%!Ra%):PROCo(B%!Ta%):PROCa(FNb(1),p%!b%,p%!a%):O%=0:Lb%=FALSE:REPEAT:W%!b%+=W%!R%:W%!Mb%=W%!b%+H%!e%:Jb%!b%+=Jb%!R% SYSFNc(6)TOD%:IFD%-Kb%>=50THENLb%=FNo(Lb%):Kb%=D% 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 DEFPROCJ:LOCALi%,_%,Kb%:_%=ha%:Kb%=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%)!Kb%:a%(i%)!A%=FALSE:NEXTi%:ENDPROC DEFPROCaa(o%):LOCALNb%,Ob%,Pb%,Qb%,x%,y%:LOCALO%,Rb%:O%=fa%:Rb%=ga%:Nb%=RND(10):Pb%=B%!Ta%+5:IFPb%>100THEN Pb%=100:IFB%!Ta%MOD10=0THENf%!bb%+=1 ENDIF IFFNp(Pb%)ANDFNp(f%!bb%)THEN IFc%(Nb%,f%!ab%)>0THEN x%=f%!b%+(Nb%-1)*(H%!e%+f%!Za%):y%=f%!a%+((f%!ab%-1)*H%!k%)-H%!k%:Ob%=(H%!e%/2)-(a%(o%)!e%/2):a%(o%)!b%=x%+Ob%:a%(o%)!a%=y%:a%(o%)!A%=TRUE:a%(o%)!X%=FALSE:a%(o%)!Rb%=1:a%(o%)!O%=0:Qb%=4:IFFNp(25)THENa%(o%)!Rb%=2:Qb%=Qb%/2 a%(o%)!S%=Qb%:a%(o%)!R%=a%(o%)!S%:PROCg(3) ENDIF ENDIF ENDPROC DEFPROCba(o%):LOCALD%,O%,Kb%,Rb%,d$,r$:O%=fa%:Rb%=ga%:Kb%=ia%:SYSFNc(6)TOD%:IFD%-a%(o%)!Kb%>=40THEN a%(o%)!Kb%=D%:a%(o%)!O%+=1 ENDIF :IFa%(o%)!Rb%=1ANDa%(o%)!O%>1THEN a%(o%)!O%=0 ENDIF IFa%(o%)!Rb%=2ANDa%(o%)!O%>3THEN a%(o%)!O%=0 ENDIF r$=STR$(a%(o%)!O%):IFa%(o%)!Rb%=2ANDa%(o%)!O%=3THEN r$="1" ENDIF d$=FNb(30)+STR$(a%(o%)!Rb%)+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%):LOCALRb%,_%:Rb%=ga%:_%=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%)!_% 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%,Sb%:Sb%=52:FORi%=1TOd%!Sb%:IFa%(i%)!A%THEN PROCd(a%(i%)):a%(i%)!A%=FALSE ENDIF NEXTi%:ENDPROC DEFPROCK:LOCALi%,x%,Tb%,Ub%,M%:M%=d%!56:Ub%=fa%:Tb%=h%!e%/M%:x%=Tb%-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)*Tb%):b%(i%)!a%=p%!a%+100:b%(i%)!A%=TRUE:b%(i%)!Ub%=0:NEXTi%:ENDPROC DEFPROC`:LOCALi%,Ub%,M%:M%=d%!56:Ub%=fa%:FORi%=1TOM%:b%(i%)!A%=TRUE:b%(i%)!Ub%=0:NEXTi%:ENDPROC DEFPROCx:LOCALi%,M%:M%=56:FORi%=1TOd%!M%:IFb%(i%)!A%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%!e%):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 DEFPROCA(o%,Yb%):LOCALy%,Ub%:Ub%=fa%:vb%=ga%:b%(o%)!Ub%+=1:IFb%(o%)!Ub%>=10THEN PROCd(b%(o%)):b%(o%)!A%=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%)!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$):LOCALZb%,G%:G%=FNE(e$)+256:Zb%=FNe(G%):!Zb%=G%:Zb%!4=0:Zb%!8=16:Zb%!12=16:SYSva%,256+10,Zb%,e$:SYSva%,256+17,Zb%:=Zb% DEFPROCb(x%,y%,a$,_b%,`b%):LOCALi%,ac%:CASE`b%OF WHEN0:za%=xa% WHEN1:za%=ya% OTHERWISE:ERROR255,FNa(112)+" "+STR$(`b%) ENDCASE ac%=h%!ra%:FORi%=1TOLEN(a$):PROCa(STR$(ASC(MID$(a$,i%,1))),x%+((i%-1)*ac%),y%):IF_b%>0THENPROCe(_b%) NEXTi%:za%=wa%:ENDPROC DEFPROCa(A$,x%,y%):LOCALbc%:SYSva%,256+24,za%,A$TO,,bc%:SYSva%,512+34,za%,bc%,x%,y%,0:ENDPROC DEFPROCd(F%):GCOL0,0TINT0:RECTANGLEFILLF%!b%,F%!a%,F%!e%,F%!k%:ENDPROC DEFFNk(cc%,h%):=(h%/2)-(cc%/2) DEFPROCt(a$,dc%):LOCALJ%,y%:J%=LEN(a$)*h%!ra%:y%=(h%!k%/2)-(h%!U%/2):PROCb(FNk(J%,h%!e%),y%,a$,dc%,0):ENDPROC DEFFNg(ec%,fc%):=(fc%!e%/2)-(ec%!e%/2) DEFFNu(ec%,fc%):LOCALx%,y%:ec%!b%=(fc%!e%/2)-(ec%!e%/2):ec%!a%=(fc%!k%/2)-(ec%!k%/2):=ec% DEFPROCf(a%):LOCALi%,gc%:gc%=h%!e%/T%!e%:FORi%=1TOgc%+1:PROCa(FNb(108),(i%-1)*T%!e%,a%):NEXTi%:ENDPROC DEFPROCm(F%):LOCALx%,y%,hc%,ic%,jc%,kc%,i%:hc%=FNd(3,1):ic%=FNd(3,2):jc%=1:kc%=3:FORi%=1TOF%!e%:x%=F%!b%+((i%-1)*jc%):PROCa(FNb(113),x%,F%!a%):PROCa(FNb(113),x%,F%!a%+(F%!k%-(2*kc%))):NEXTi%:x%=F%!b%+(F%!e%-hc%):FORi%=1TOF%!k%-1 PROCa(FNb(114),F%!b%,F%!a%+((i%-1)*jc%)):PROCa(FNb(114),x%,F%!a%+((i%-1)*jc%)):NEXTi%:PROCa(FNb(111),F%!b%,F%!a%):PROCa(FNb(109),F%!b%,(F%!a%+F%!k%)-ic%):PROCa(FNb(112),F%!b%+(F%!e%-hc%),F%!a%):x%=(F%!b%+F%!e%)-hc%:y%=(F%!a%+F%!k%)-ic% PROCa(FNb(110),x%,y%):ENDPROC DEFFNs(e$,j$):LOCALv%,lc%,mc%,k$:v%=OPENIN(e$):INPUT#v%,k$:IFk$<>j$THENCLOSE#v%:ERROR255,"Bad Magic!" INPUT#v%,mc%,mc%,lc%:CLOSE#v%:=lc% DEFPROCl(e$,j$,RETURNj%(),RETURNg$()):LOCALv%,i%,lc%,Aa%,Ba%,Ca%,Da%,k$:Ca%=0:v%=OPENIN(e$):INPUT#v%,k$:IFk$<>j$THENCLOSE#v%:ERROR255,"Bad Magic!" INPUT#v%,Aa%,Ba%,lc%:FORi%=1TOlc%:INPUT#v%,j%(i%),g$(i%):NEXTi%:CLOSE#v%:FORi%=1TOlc%:Ca%+=LEN(g$(i%)):NEXTi%:Da%=Ca%/lc%:IFCa%<>Aa%ORDa%<>Ba%THEN ERROR255,"File Inconsistant with header!" ENDIF ENDPROC DEFPROCr(nc%,oc%,RETURNb$()):LOCALi%:FORi%=1TOnc%:b$(i%)=FNm(b$(i%),oc%):NEXTi%:ENDPROC DEFFNa(pc%):=FNv(pc%,ba%,g%(),f$(),131,106) DEFFNb(pc%):=FNv(pc%,ca%,h%(),c$(),-1,107) DEFFNc(pc%):=FNv(pc%,da%,i%(),d$(),-1,108) DEFFNv(pc%,nc%,k%(),b$(),oc%,qc%):LOCALi%,rc%,c$:rc%=0:FORi%=1TOnc%:IFk%(i%)=pc%THENrc%=i%:i%=nc% NEXTi%:IFrc%=0THEN IFpc%>=106ANDpc%<=108THEN ERROR255,"Missing message!!!" ELSE:ERROR255,FNa(qc%)+" "+STR$(pc%) ENDIF ENDIF IFoc%=-1THEN=b$(rc%) =FNm(b$(rc%),oc%) DEFFNA(e$):LOCALv%:v%=0:SYSFNc(31),,e$TOv%:=v% DEFPROCg(sc%):LOCALHb%,w$:Hb%=0:w$=FNa(110)+" "+STR$(sc%):IFd%!Hb%>0THEN IFsc%<1ANDsc%>4THENERROR255,w$ OSCLI"SPlay_fire0"+STR$(sc%)+"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 CASEtc%OF WHEN1:uc%=G%<>h%!oa% WHEN4:uc%=G%>>h%!pa% OTHERWISE:ERROR255,FNa(103)+" "+STR$(tc%) ENDCASE =uc% DEFFNl(F%,wc%):LOCALxc%,yc%,zc%,Ac%:zc%=FALSE:Ac%=FALSE:IFF%!A%ANDwc%!A%THEN xc%=wc%!b%+wc%!e%:yc%=wc%!a%+wc%!k%:IFF%!b%>=wc%!b%ANDF%!b%=wc%!a%ANDF%!a%-1THEN SYS"TimPlayer_SongStop",d%!4:SYS"TimPlayer_SongUnload",d%!4 ENDIF PROCu:ENDPROC DEFFNj(B$,x$):LOCALl$,t$,N%,rc%:l$=STRING$(10," "):RIGHT$(l$,3)=" : ":LEFT$(l$,LEN(x$))=x$:N%=FNq(B$):t$="Missing!!":rc%=FALSE:IFN%=1THENt$="OK.":rc%=TRUE l$+=t$:PRINTl$:=rc% DEFFNw(lc%):LOCALh$:h$="Dump"+STR$(lc%):IFFNq(q$+h$)<>0THEN REPEAT:lc%+=1:h$="Dump"+STR$(lc%):UNTILFNq(q$+h$)=0ORLEN(h$)>10:IFLEN(h$)>10THENlc%=-1 ENDIF =lc% DEFPROCE:LOCALv%,Z%,jb%,Bc%,hb%:Z%=0:jb%=48:v%=OPENIN(f$+"Configs"):INPUT#v%,Bc%,hb%:CLOSE#v%:IFBc%>=0ANDBc%<=2THENd%!Z%=Bc% 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$,oc%):LOCALi%,y$:FORi%=1TOLEN(a$):y$+=CHR$(ASC(MID$(a$,i%,1))EORoc%):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$,Cc%,z$,Dc%):LOCALEc%,c$:Ec%=Cc%-LEN(a$):IFEc%<=0THEN c$=LEFT$(a$,Cc%) ELSE:IFDc%THEN c$=STRING$(Cc%,z$):RIGHT$(c$,LEN(a$))=a$ ELSE:c$=a$+STRING$(Ec%,z$) ENDIF ENDIF =c$ DEFFNy(a$,Cc%):LOCALc$:c$=STRING$(Cc%," "):RIGHT$(c$,LEN(a$))=a$:=c$ DEFFNq(i$):LOCALrc%:SYS"XOS_File",17,i$TOrc%:=rc% DEFFNE(i$):LOCALG%:SYSFNc(3),5,i$TO,,,,G%:=G% DEFFNx(tc%,i$):LOCALv%,Fc%,Gc%,Hc%:Hc%=FALSE:CASEtc%OF WHEN0:v%=OPENUP(i$+"chkfile") WHEN1:v%=OPENUP(i$) OTHERWISE:ERROR255,FNa(104)+" "+STR$(tc%) ENDCASE IFv%<>0THEN SYSFNc(4),254,v%TOGc%;Fc%:IF(Fc%AND1)THENCLOSE#v%:ERROR255,FNa(105) IF((Gc%AND(1<<7))<>0)THENHc%=TRUE CLOSE#v% ENDIF =Hc% DEFPROCD:LOCALIc%:Jc%=0:Kc%=0:SYSFNc(10),-1,-1TOLc%:SYSFNc(11)TOMc%;Ic%:IFIc%AND1THENMc%=16384 PROCia(Mc%):ENDPROC DEFPROCu:IFJc%THEN SYSFNc(10),Jc%-32768,-1TOLc%:Jc%=0:Kc%=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(`%,Gb%):LOCALE%:E%=FNe(`%):PROCja(E%,Gb%):=E% DEFPROCc(RETURNE%):CASEFNG(E%)OF WHEN1:ERROR254,FNa(212) WHEN2:ERROR254,FNa(213) WHEN3:ERROR254,FNa(217) ENDCASE E%-=8:Kc%-=E%!-4:SYSFNc(12),3,Jc%,E%:E%=0:ENDPROC DEFFNz(E%):LOCALq%:q%=E%-4:=q%!0 DEFPROCja(E%,Gb%):LOCALsb%,G%:G%=FNz(E%):FORsb%=0TOG%-4STEP4:E%!sb%=Gb%:NEXTsb%:ENDPROC DEFFNh(E%):LOCALNc%,sb%,G%:G%=FNz(E%):Nc%=FNe(G%):FORsb%=0TOG%-4STEP4:Nc%!sb%=E%!sb%:NEXTsb%:=Nc% DEFFNG(E%):LOCALFb%,Oc%:Fb%=FALSE:Oc%=FALSE:E%-=8:IFE%!0<>&DEADDEADTHENOc%=TRUE IF!(E%-8+(E%!-4))<>&DEADDEADTHENFb%=TRUE IFOc%ANDFb%THEN=3 IFFb%THEN=2 IFOc%THEN=1 =0 DEFPROCia(G%):IFJc%THENERROR254,FNa(215) G%=(G%+Mc%-1)ANDNOT(Mc%-1):Jc%=HIMEM:SYSFNc(10),Lc%+G%,-1TOLc%:G%=Lc%+32768-Jc%:IFG%<1THEN Jc%=0:ERROR254,FNa(216) ELSE:SYSFNc(12),0,Jc%,,G% ENDIF Kc%=0:ENDPROC DEFPROCka(`%):LOCALPc%:Pc%=Lc%:SYSFNc(10),Lc%+`%,-1TOLc%:`%=Lc%-Pc%:IF`%THENSYSFNc(12),5,Jc%,,`%TO,,,`% ENDPROC DEFFNF(`%):LOCALE%,Ic%:SYSFNc(13),2,Jc%,,`%TO,,E%;Ic%:IFIc%AND1THEN PROCka((`%+Mc%)ANDNOT(Mc%-1)):SYSFNc(13),2,Jc%,,`%TO,,E%;Ic%:IFIc%AND1THEN=0 ENDIF Kc%+=E%!-4:=E%