REM Acorn Invaders REM Packed by Make v1.41 15/05/08 On 14 May 2010 ONERRORPROCF:END MODE28:OFF:a$="Acorn Invaders. (c)2007-2010 DynaByte Software":PRINTa$:PRINTSTRING$(LEN(a$),"-"):PRINT:p$=".Resources.":b$=".":h$=b$+"Data.":q$=b$+"Screens.":i$=p$+"Graphics.":b$=p$+"Data.":u$=p$+"Sound." aa%=FALSE:PRINT"Checking files...":IFNOTFNj(i$+"Gfx0","Sprites")THENaa%=TRUE IFNOTFNj(i$+"Gfx1","Charset")THENaa%=TRUE IFNOTFNj(i$+"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 IFNOTFNj(b$+"AshLUT","Lookups")THENaa%=TRUE IFaa%THENERROR255,"File Missing!!" PRINT:PRINT"Loading LibASH Resources.":ba%=FNs(b$+"AshLUT","ALUT"):DIMg%(ba%),f$(ba%):H%=FNt(b$+"AshLUT","ALUT",g%(),f$()):PROCG(H%):a%=FNg(112,0):PRINT"Loading Messages...";:ca%=FNs(b$+"Msg","MSGS"):DIMh%(ca%),g$(ca%) da%=FNt(b$+"Msg","MSGS",h%(),g$()):a%!68=da%:PRINTFNa(14):PRINT:PRINTFNa(12):PRINTFNa(8)+" "+FNa(2):PROCf(a%,206,0):a%!0=1:a%!4=-1:a%!40=FNy(0):IFa%!40=-1THENERROR255,FNa(109) PRINTFNa(15)+STR$(a%!40):a%!44=TRUE:a%!48=128:a%!52=5:a%!56=5:a%!92=FALSE:a%!96=2:a%!100=FALSE:a%!104=FALSE:a%!108=1:DIMa$(10),d%(10):DIMe%(10):PRINTFNa(8)+" "+FNa(22):d%=0:b%=4:e%=8:h%=12:P%=16:S%=20:A%=24:_%=28:ea%=32:fa%=36:ga%=40:ha%=44:ia%=48:ja%=52 ka%=56:la%=60:ma%=64:na%=16:oa%=20:pa%=24:qa%=28:`%=32:ra%=16:sa%=20:PRINTFNa(9)+" "+FNa(3):ta%=FNs(b$+"ImgLUT","ILUT"):DIMi%(ta%),c$(ta%):da%=FNt(b$+"ImgLUT","ILUT",i%(),c$()):PRINTFNa(26):PROCt(ta%,da%,c$()):PRINTFNa(14):PRINT PRINTFNa(9)+" "+FNa(13):ua%=FNs(b$+"SWIs","SLUT"):DIMj%(ua%),d$(ua%):da%=FNt(b$+"SWIs","SLUT",j%(),d$()):PRINTFNa(26):PROCt(ua%,da%,d$()):PRINTFNa(14):PRINT:PRINTFNa(9)+" "+FNa(24)+" ";:IFFNr(h$+"Configs")=1THEN PROCH:PRINTFNa(18) ELSE:PRINTFNa(25):a%!92=TRUE ENDIF PRINT:PRINTFNa(8)+" "+FNa(1)+" ";:va%=0:SYSFNd(30)TOva%:PRINTFNa(21)+" "+STR$(va%/100):a%!4=FNE(u$+"Intro"):PRINT:PRINTFNa(17)+" "+FNa(16):SYSFNd(1),,FNd(2)TOwa%:PRINTFNa(9)+" "+FNa(4):a%!76=FNw(i$+"Gfx0"):PROCf(a%!76,203,0):PRINTFNa(14):PRINT:PRINTFNa(9)+" "+FNa(5) a%!80=FNw(i$+"Gfx1"):PROCf(a%!80,204,0):PRINTFNa(14):PRINT:PRINTFNa(9)+" "+FNa(23):a%!84=FNw(i$+"Gfx2"):PROCf(a%!84,205,0):PRINTFNa(14):PRINT:a%!88=a%!76:PRINT:PRINTFNa(9)+" "+FNa(6);:PROCI:PRINTFNa(14):PRINT:PRINT:PRINTFNa(7):v$=h$+"HiTable":IFFNr(v$)<>1THEN IFNOTFNz(0,h$)THEN a%!44=FALSE:PRINTFNa(19)+" "+FNa(10)+" "+FNa(20) ELSE:PRINTFNa(19)+" "+FNa(11)+" "+FNa(20) ENDIF PROCJ(a%!44) ELSE:IFNOTFNz(1,v$)THEN a%!44=FALSE:PRINTFNa(18)+" "+FNa(10)+" "+FNa(20) ELSE:PRINTFNa(18)+" "+FNa(11)+" "+FNa(20) ENDIF PROCK ENDIF PRINT:PRINTFNa(12):PROCe(150):k%=FNe(36):T%=FNe(24):W%=FNe(16):CLS:PROCu:k%!qa%=FNc(8,1):k%!`%=FNc(8,2)+7:T%!e%=FNc(6,1):T%!h%=FNc(6,2):T%!ra%=k%!h%-50:T%!sa%=30:IFa%!0=1THEN SYSFNd(33),a%!4 ENDIF FORi%=0TOa%!48STEPa%!96:SYSFNd(36),a%!4,i%:NEXTi%:WHILENOTFNF:CLS:PROCL:ENDWHILE:CLS:W%!e%=220:W%!h%=40:PROCn(W%,k%):W%!b%-=3:PROCo(W%):PROCv(FNa(31),10):IFa%!44THENPROCM IFa%!0=1THEN SYSFNd(36),a%!4,-1TO,xa%:FORi%=xa%TO0STEP0-a%!96:SYSFNd(36),a%!4,i%:PROCe(4):NEXTi%:SYSFNd(35),a%!4:SYSFNd(32),a%!4:a%!4=-1 ENDIF PROCb(W%):PROCb(T%):PROCb(k%):FORi%=76TO84STEP4:PROCb(a%!i%):NEXTi%:PROCb(a%):PROCw:END DEFFNF:LOCALi%,M%,N%,E%,L%,m%,ya%,za%,Aa%:LOCALo%:LOCALX%,Ba%,Ca%,Da%,Ea%,Fa%,Ga%,Ha%:LOCALIa%,Ja%:LOCALx%,y%,J%,Ka%,q%,La%,s$,a$:Ka%=44:q%=80:La%=100:M%=FNg(16,0):N%=FNg(16,0):E%=FNg(16,0):m%=FNg(16,0):ya%=FNg(16,0):X%=FNg(16,0):o%=FNg(16,0) M%!e%=FNc(100,1):M%!h%=FNc(40,2):M%!d%=FNi(M%,k%):M%!b%=800:N%!e%=FNc(150,1):N%!h%=FNc(40,2):N%!d%=FNi(N%,k%):N%!b%=M%!b%-N%!h%:E%!e%=720:E%!h%=500:E%!d%=FNi(E%,k%):E%!b%=200:m%!e%=FNc(40,1):m%!h%=FNc(20,2) m%!d%=(E%!d%+E%!e%/2)-150:m%!b%=(E%!b%+E%!h%)-125:o%!e%=FNc(30,1):o%!h%=FNc(15,2):ya%!e%=FNc(20,1):ya%!h%=FNc(20,2):ya%!d%=(E%!d%+E%!e%/2)-150:ya%!d%+=FNi(ya%,m%):za%=FNh(ya%):Aa%=FNh(ya%) :Aa%!b%=m%!b%-40-Aa%!h%:za%!b%=Aa%!b%-40-za%!h%:ya%!b%=za%!b%-40-ya%!h%:X%!e%=FNc(20,1):X%!h%=FNc(20,2):X%!d%=(E%!d%+E%!e%/2)-120:Ba%=FNh(X%):Ca%=FNh(X%):Da%=FNh(X%):Da%!d%=E%!d%:Ma%=FNh(Da%):Fa%=FNh(Da%) Ea%=FNh(X%):Ia%=FNh(Da%):Ea%!d%=E%!d%:Ea%!d%+=(E%!e%/2)+10:Ga%=FNh(Ea%):Ha%=FNh(Ea%):Ja%=FNh(Ea%)::X%!b%=(E%!b%+E%!h%)-90:Ba%!b%=X%!b%-60:Ca%!b%=Ba%!b%-60:Fa%!b%=Ca%!b%-90:Ma%!b%=Fa%!b%-60:Da%!b%=Ma%!b%-60:Ea%!b%=Ca%!b%-90 Ga%!b%=Ea%!b%-60:Ha%!b%=Ga%!b%-60:Ia%!b%=Da%!b%-60:Ja%!b%=Ha%!b%-60:CLS:PROCg(T%!ra%):PROCg(T%!sa%):PROCk:FORi%=0-M%!e%TOM%!d%STEP5:WAIT:PROCa(FNb(100),i%,M%!b%):PROCe(1):NEXTi%:FORi%=k%!e%TON%!d%STEP-5:WAIT:PROCa(FNb(101),i%,N%!b%):PROCe(1):NEXTi% a$=FNa(32):L%=LEN(a$)*k%!qa%:y%=170:PROCc(FNm(L%,k%!e%),y%,a$,11,a%!q%):a$=FNa(33):L%=LEN(a$)*k%!qa%:y%-=k%!`%:PROCc(FNm(L%,k%!e%),y%,a$,11,a%!q%):WHILENOTINKEY(-99)ANDNOTINKEY(-17)ANDNOTINKEY(-82):IFa%!La%THEN a%!La%=FALSE:J%=FNA:IFJ%=1THEN=TRUE IFJ%=2THEN=FALSE PROCd(E%) ENDIF y%=E%!b%+E%!h%:FORi%=1TOa%!72:a$=FNl(e$(i%),a%!60):x%=FNk(a$):CASESGN(f%(i%))OF WHEN-1:y%-=(ABS(f%(i%))*k%!`%) WHEN1:y%-=f%(i%) OTHERWISE:ERROR255,FNa(115)+" "+STR$(f%(i%)) ENDCASE PROCc(x%,y%,a$,0,a%!q%):NEXTi%:J%=FNu:IFJ%=1THEN=TRUE IFJ%=2THEN=FALSE PROCd(E%):a$=FNa(57)+" "+FNa(34):x%=FNk(a$):y%=E%!b%+E%!h%-20:PROCc(x%,y%,a$,0,a%!q%):a$=FNa(35):y%-=k%!`%:x%=FNk(a$):PROCc(x%,y%,a$,0,a%!q%):x%=m%!d%+m%!e%+10:PROCa(FNb(11),m%!d%,m%!b%):a$=FNa(36)+" "+FNa(40) PROCc(x%,m%!b%+10,a$,0,a%!q%):PROCa(FNb(24),Aa%!d%,Aa%!b%):a$=FNa(37)+" "+FNa(40):PROCc(x%,Aa%!b%+12,a$,0,a%!q%):PROCa(FNb(22),za%!d%,za%!b%):a$=FNa(38)+" "+FNa(40):PROCc(x%,za%!b%+12,a$,0,a%!q%):PROCa(FNb(20),ya%!d%,ya%!b%) a$=FNa(39)+" "+FNa(40):PROCc(x%,ya%!b%+12,a$,0,a%!q%):L%=o%!e%/k%!qa%+2:s$=FNa(66):a$=s$+STRING$(L%," ")+FNa(67):x%=FNk(a$):y%=ya%!b%-(3*k%!`%):PROCc(x%,y%,a$,0,a%!q%):o%!d%=x%+7+(LEN(s$)*k%!qa%):o%!b%=y%:PROCa(FNb(1),o%!d%,o%!b%) J%=FNu:IFJ%=1THEN=TRUE IFJ%=2THEN=FALSE PROCd(E%):a$=FNa(41):x%=FNk(a$):y%=E%!b%+E%!h%-20:PROCc(x%,y%,a$,0,a%!q%):x%=X%!d%+X%!e%+10:PROCa(FNb(102),X%!d%,X%!b%):a$=FNa(42)+" "+FNa(43):PROCc(x%,X%!b%+12,a$,0,a%!q%):PROCa(FNb(103),Ba%!d%,Ba%!b%):a$=FNa(42)+" "+FNa(44) PROCc(x%,Ba%!b%+12,a$,0,a%!q%):PROCa(FNb(104),Ca%!d%,Ca%!b%):PROCc(x%,Ca%!b%+12,FNa(45),0,a%!q%):x%=Da%!d%+Da%!e%+10:PROCa(FNb(105),Ma%!d%,Ma%!b%):a$=FNa(46)+" "+FNa(49):PROCc(x%,Ma%!b%+12,a$,0,a%!q%):PROCa(FNb(117),Fa%!d%,Fa%!b%) PROCc(x%,Fa%!b%+12,FNa(76),0,a%!q%):PROCa(FNb(107),Da%!d%,Da%!b%):a$=FNa(48)+" "+FNa(49):PROCc(x%,Da%!b%+12,a$,0,a%!q%):PROCa(FNb(118),Ia%!d%,Ia%!b%):a$=FNa(78)+" "+FNa(75):PROCc(x%,Ia%!b%+12,a$,0,a%!q%):x%=Ea%!d%+Ea%!e%+10 PROCa(FNb(106),Ea%!d%,Ea%!b%):a$=FNa(47)+" "+FNa(73):PROCc(x%,Ea%!b%+12,a$,0,a%!q%):PROCa(FNb(115),Ga%!d%,Ga%!b%):a$=FNa(47)+" "+FNa(77)+" ":a$+=FNa(74):PROCc(x%,Ga%!b%+12,a$,0,a%!q%):PROCa(FNb(116),Ha%!d%,Ha%!b%):a$=FNa(47)+" "+FNa(77)+" ":a$+=FNa(75) PROCc(x%,Ha%!b%+12,a$,0,a%!q%):PROCa(FNb(119),Ja%!d%,Ja%!b%):a$=FNa(78)+" "+FNa(74):PROCc(x%,Ja%!b%+12,a$,0,a%!q%):J%=FNu:IFJ%=1THEN=TRUE IFJ%=2THEN=FALSE PROCd(E%):J%=FNA:IFJ%=1THEN=TRUE IFJ%=2THEN=FALSE PROCd(E%):ENDWHILE:ERROR255,FNa(102):=FALSE DEFFNA:LOCALJ%,x%,y%,i%,q%,a$:q%=80:a$=FNa(50):IFa%!Ka%THENa$=FNa(51) x%=FNk(a$):y%=E%!b%+E%!h%-20:PROCc(x%,y%,a$,0,a%!q%):a$=FNa(58)+" "+FNa(52):x%=FNk(a$):y%-=k%!`%:PROCc(x%,y%,a$,0,a%!q%):y%=(E%!b%+E%!h%)-100:a$=" "+FNa(68)+" "+FNa(69):a$+=STRING$(12," ")+FNa(57)+".":a$+=STRING$(3," ")+FNa(60)+".":x%=FNk(a$) PROCc(x%,y%,a$,0,a%!q%):y%-=2*k%!`%:FORi%=1TO10:IFi%<10THEN a$=" "+STR$(i%)+". " ELSE:a$=" "+STR$(i%)+". " ENDIF s$=FNl(a$(i%),a%!64):a$+=FNp(s$,8," ",FALSE):a$+=" .... ":a$+=FNB(STR$(d%(i%)),10):a$+=" ... "+FNB(STR$(e%(i%)),3):x%=FNk(a$):PROCc(x%,y%-(i%*(k%!`%+5)),a$,0,a%!q%):NEXTi%:=FNu DEFFNu:LOCALt%,J%:t%=TIME+750:J%=FALSE:REPEAT:IFINKEY(-82)THENPROCx IFINKEY(-102)THENPROCy IFINKEY(-59)THENPROCl(4) IFINKEY(-60)THENPROCl(-4) IFINKEY(-103)THENPROCm(0) IFINKEY(-104)THENPROCm(1) UNTILTIME>=t%ORINKEY(-17)ORINKEY(-99):IFINKEY(-17)THENJ%=1 IFINKEY(-99)THENJ%=2 IFJ%THEN PROCb(M%):PROCb(N%):PROCb(E%):PROCb(m%):PROCb(ya%):PROCb(za%):PROCb(Aa%):PROCb(X%):PROCb(Ba%):PROCb(Ca%):PROCb(Da%):PROCb(Ea%):PROCb(Ma%):PROCb(Fa%):PROCb(Ga%):PROCb(Ha%):PROCb(o%):PROCb(Ia%):PROCb(Ja%) ENDIF =J% DEFFNk(a$):LOCALL%:L%=LEN(a$)*k%!qa%:=E%!d%+FNm(L%,E%!e%) DEFPROCL:LOCALo%,w%,m%,f%,B%:LOCALI%:LOCALc%(),a%():LOCALb%(),Na%,Oa%:LOCALY%,Pa%,Qa%,Ra%:LOCALSa%,Ta%,Ua%:LOCALVa%:LOCALWa%:LOCALXa%,Ya%,Za%,_a%,`a%:LOCALab%,L%,a$,x%,y%,i%,j%:o%=FNe(32):w%=FNe(28):m%=FNe(48):f%=FNe(68):I%=FNe(16):Oa%=FNe(16):B%=FNg(16,0) Y%=0:Pa%=4:Qa%=8:Ra%=12:Va%=16:bb%=12:Sa%=28:Na%=56:Xa%=fa%:Ya%=ga%:Za%=ha%:_a%=ka%:`a%=la%:DIMc%(10,6),a%(10),b%(a%!Na%):o%!e%=FNc(30,1):o%!h%=FNc(15,2):o%!d%=FNi(o%,k%):o%!b%=50:o%!S%=6:o%!P%=o%!S% I%!e%=FNc(20,1):I%!h%=FNc(20,2):m%!e%=FNc(40,1):m%!h%=FNc(20,2):m%!b%=T%!ra%-(10+m%!h%):m%!S%=5:m%!A%=FALSE:m%!ga%=1:w%!e%=FNc(5,1):w%!h%=FNc(20,2):w%!A%=FALSE:w%!S%=10:B%!Qa%=1:B%!Y%=3:B%!Ra%=FALSE a%!Va%=-1:a%!bb%=0:f%!Xa%=FNc(20,1):f%!Ya%=10:f%!Za%=6:f%!A%=TRUE:f%!`a%=4:SYSFNd(6)TOf%!ma%:PROCN:PROCO:PROCg(T%!ra%):PROCg(T%!sa%):PROCP(0,d%(1),B%!Y%,B%!Qa%):PROCQ:PROCz:PROCa(FNb(1),o%!d%,o%!b%):OSCLI"VSkip "+STR$(a%!Wa%) WHILEB%!Y%>0:IFa%!Sa%=0THEN IFINKEY(-74)THENPROCR(o%!d%,o%!b%) IFINKEY(-98)THENPROCS IFINKEY(-67)THENPROCT IFINKEY(-17)THENPROCU ENDIF IFINKEY(-102)THENPROCy IFINKEY(-82)THENPROCx IFINKEY(-56)THENPROCV IFINKEY(-59)THENPROCl(4) IFINKEY(-60)THENPROCl(-4) IFINKEY(-103)THENPROCm(0) IFINKEY(-104)THENPROCm(1) IFa%!Sa%=0THEN PROCW:PROCX:PROCY:PROCZ:PROC_:PROC` ELSE:PROCaa ENDIF WAIT:ENDWHILE:W%!e%=240:W%!h%=40:PROCn(W%,k%):W%!b%-=3:PROCd(W%):PROCo(W%):a$=FNa(49)+" "+FNa(53):PROCv(a$,11):PROCe(750):IFNOTB%!Ra%THEN IFB%!Pa%>=d%(10)THEN PROCba(B%) ENDIF ENDIF PROCb(o%):PROCb(f%):PROCb(m%):PROCb(w%):PROCb(B%):PROCb(I%):PROCb(Oa%):FORi%=1TO10:PROCb(a%(i%)):NEXTi%:FORi%=1TOa%!Na%:PROCb(b%(i%)):NEXTi%:OSCLI"VSkip 1":ENDPROC DEFPROCS:IFo%!d%<=0THEN o%!d%=0 ELSE:o%!P%=0-o%!S%:o%!d%+=o%!P%:PROCa(FNb(1),o%!d%,o%!b%) ENDIF ENDPROC DEFPROCT:IFo%!d%>=k%!e%-o%!e%THEN o%!d%=k%!e%-o%!e% ELSE:o%!P%=0+o%!S%:o%!d%+=o%!P%:PROCa(FNb(1),o%!d%,o%!b%) ENDIF ENDPROC DEFPROCR(x%,y%):IFNOTw%!A%THEN w%!A%=TRUE:w%!d%=x%+(o%!e%/2):w%!b%=y%+o%!h%:PROCj(4) ENDIF ENDPROC DEFPROCx:LOCALcb%,db%:cb%=40:db%=44:IFa%!db%THEN REPEAT:UNTILNOTINKEY(-82):a%!cb%=FNy(a%!cb%):IFa%!cb%=-1THENERROR255,FNa(109) OSCLI"ScreenSave "+q$+"Dump"+STR$(a%!cb%) ENDIF ENDPROC DEFPROCU:LOCALi%,eb%:eb%=52:FORi%=1TOa%!eb%:a%(i%)!A%=FALSE:NEXTi%:B%!Y%=0:B%!Ra%=TRUE:ENDPROC DEFPROCy:LOCALfb%,gb%,hb%:fb%=0:gb%=4:hb%=92:REPEAT:UNTILNOTINKEY(-102):a%!fb%+=1:IFa%!fb%>2THENa%!fb%=0 IFa%!fb%=1THEN SYSFNd(33),a%!gb% ELSE:SYSFNd(34),a%!gb% ENDIF a%!hb%=TRUE:PROCk:ENDPROC DEFPROCl(ib%):LOCALfb%,gb%,jb%,kb%,F%,xa%,lb%,hb%:fb%=0:gb%=4:jb%=8:kb%=48:hb%=92:IFa%!fb%=1THEN SYSFNd(6)TOF%:IFF%-a%!jb%>=10THEN SYSFNd(36),a%!gb%,-1TO,xa%:lb%=xa%+ib%:IFlb%>=0ANDlb%<=128THEN SYSFNd(36),a%!gb%,lb%:a%!kb%=lb%:a%!jb%=F%:a%!hb%=TRUE ENDIF ENDIF ENDIF ENDPROC DEFPROCm(mb%):LOCALWa%,hb%:Wa%=108:hb%=92:IFmb%=0THEN REPEAT:UNTILNOTINKEY(-103):IFa%!Wa%<64THENa%!Wa%+=1 ELSE:REPEAT:UNTILNOTINKEY(-104):IFa%!Wa%>1THENa%!Wa%-=1 ENDIF OSCLI"VSkip "+STR$(a%!Wa%):a%!hb%=TRUE:ENDPROC DEFPROCV:LOCALSa%,Ta%,a$:Sa%=28:Ta%=32:REPEATUNTILNOTINKEY(-56):a$=FNa(49)+" "+FNa(61):a%!Sa%=FNq(a%!Sa%):a%!Ta%=a%!Sa%:IFa%!Sa%=0THEN a$=STRING$(LEN(a$)," "):PROCp(a$) ENDIF ENDPROC DEFPROCW:IFw%!A%THEN IFw%!b%>=T%!ra%-w%!h%THEN w%!A%=FALSE:w%!b%-=2:PROCd(w%) ELSE:PROCa(FNb(5),w%!d%,w%!b%) ENDIF w%!b%+=w%!S% ENDIF ENDPROC DEFPROCX:LOCALnb%,ob%,pb%,F%,qb%,Qa%,rb%,d$:LOCALbb%,Va%,Pa%,Y%:nb%=ea%:ob%=fa%:pb%=ga%:Qa%=8:Va%=16:Y%=0:Pa%=4:rb%=104:IFNOTm%!A%THEN IFFNn(4)ANDFNn(5)THEN m%!A%=TRUE:m%!_%=FALSE:m%!ob%=0:IFFNn(50)THEN m%!P%=0-m%!S%:m%!d%=k%!e% ELSE:m%!P%=0+m%!S%:m%!d%=0-m%!e% ENDIF ENDIF ELSE:IFm%!d%<=0-m%!e%ANDSGN(m%!P%)=-1THEN m%!nb%=FALSE:m%!A%=FALSE:ENDPROC ENDIF IFm%!d%>k%!e%ANDSGN(m%!P%)=1THEN m%!nb%=FALSE:m%!A%=FALSE:ENDPROC ENDIF IFNOTm%!_%THEN IFFNo(w%,m%)THEN PROCd(w%):PROCa(FNb(12),m%!d%,m%!b%):SYSFNd(6)TOm%!nb%:m%!_%=TRUE:w%!A%=FALSE:IFa%!rb%THEN PROCh(250) ELSE:IFB%!Qa%>=5ANDFNn(10)THEN B%!Y%+=1:PROCi(B%!Y%):a%!Va%=0 ELSE:PROCh(500) ENDIF ENDIF ENDIF ELSE:IFFNo(w%,m%)THENPROCd(w%):w%!A%=FALSE ENDIF IFNOTm%!_%THEN SYSFNd(6)TOF%:IFF%-m%!pb%>=40THEN m%!pb%=F%:m%!ob%=FNq(m%!ob%) ENDIF d$=FNb(10)+STR$(m%!ob%):PROCa(d$,m%!d%,m%!b%):m%!d%+=m%!P% ELSE:SYSFNd(6)TOF%:qb%=F%-m%!nb%:IFqb%>=300THEN m%!A%=FALSE:m%!ob%=1:PROCd(m%) ELSE:IFqb%>=250THEN PROCa(FNb(15),m%!d%,m%!b%) ELSE:IFqb%>=200THEN PROCa(FNb(14),m%!d%,m%!b%) ELSE:IFqb%>=100THEN PROCa(FNb(13),m%!d%,m%!b%) ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDPROC DEFPROCY:LOCALsb%,z%,K%,Q%,tb%,ub%,vb%,wb%,xb%:LOCALO%,yb%,zb%,F%,Ab%,Bb%,R%:LOCAL_a%,rb%:O%=ea%:yb%=ia%:zb%=ja%:Ab%=ma%:_a%=ka%:Bb%=52:R%=56:rb%=104:SYSFNd(6)TOF%:IFF%-f%!Ab%>=50THENf%!Ab%=F%:f%!O%=FNq(f%!O%) sb%=f%!d%+f%!e%:wb%=0-((f%!yb%-1)*(I%!e%+f%!Xa%)):IFsb%>=k%!e%THENf%!P%=0-f%!S%:PROCA IFf%!d%<=wb%THENf%!P%=0+f%!S%:PROCA IFf%!b%+((f%!_a%-1)*I%!h%)<=Oa%!b%+Oa%!h%THEN PROCB:a%!rb%=TRUE ENDIF wb%=f%!b%+((f%!_a%-1)*I%!h%):IFwb%<=o%!b%+o%!h%THENPROCca:ENDPROC IFFNo(w%,f%)THEN z%=I%!e%+f%!Xa%:IF(w%!d%-f%!d%)MODz%<=I%!e%THEN K%=((w%!b%-f%!b%)DIVI%!h%)+1:Q%=((w%!d%-f%!d%)DIVz%)+1:IFSGN(c%(Q%,K%))=1THEN c%(Q%,K%)=-5:PROCd(w%):w%!A%=FALSE:f%!_%+=1:PROCj(1):xb%=1:IFa%!rb%THENxb%=2 CASEK%OF WHEN1,2:PROCh(INT(50/xb%)) WHEN3,4:PROCh(INT(75/xb%)) WHEN5,6:PROCh(INT(100/xb%)) ENDCASE ENDIF ENDIF ENDIF IFf%!_%>=f%!Ya%*f%!Za%THEN B%!Qa%+=1:PROCd(f%):PROCg(T%!sa%):PROCi(B%!Y%):PROCq(B%!Qa%):PROCk:PROCa(FNb(1),o%!d%,o%!b%):PROCda:PROCz:PROCC:IFB%!Qa%>=5THENa%!Bb%=7 IFB%!Qa%>=10THENa%!Bb%=10 ENDIF tb%=TRUE:ub%=TRUE:FORK%=1TOf%!Za%:IFc%(f%!zb%,K%)<>0THENtb%=FALSE IFc%(f%!yb%,K%)<>0THENub%=FALSE NEXTK%:vb%=TRUE:FORQ%=1TOf%!Ya%:IFc%(Q%,f%!_a%)<>0THENvb%=FALSE NEXTQ%:IFub%THENf%!yb%+=1 IFtb%THENf%!e%-=(I%!e%+f%!Xa%):f%!zb%-=1 IFvb%THENf%!_a%+=1 f%!d%+=f%!P%:PROCr:ENDPROC DEFPROCZ:LOCALi%,j%,F%,Bb%,R%:Bb%=52:R%=56:FORi%=1TOa%!Bb%:IFNOTa%(i%)!A%THEN PROCea(i%) ELSE:PROCfa(i%):IFa%(i%)!b%<=T%!sa%+(T%!h%+5)THEN a%(i%)!A%=FALSE:PROCd(a%(i%)) ENDIF IFFNo(a%(i%),o%)ANDa%(i%)!A%THEN PROCga(i%) ENDIF FORj%=1TOa%!R%:IFFNo(a%(i%),b%(j%))THEN PROCD(j%,FALSE):PROCd(a%(i%)):a%(i%)!A%=FALSE ENDIF NEXTj%:IFFNo(w%,a%(i%))THEN PROCha(i%) ENDIF IFa%(i%)!_%THEN PROCia(i%) ENDIF ENDIF NEXTi%:ENDPROC DEFPROCaa:LOCALSa%,Ta%,Ua%,F%,a$:Sa%=28:Ta%=32:Ua%=36:SYSFNd(6)TOF%:IFF%-a%!Ua%>=50THEN a%!Ta%=FNq(a%!Ta%):a%!Ua%=F% ENDIF a$=FNa(49)+" "+FNa(61):IFa%!Ta%=0ORa%!Sa%=0THEN a$=STRING$(LEN(a$)," ") ENDIF PROCp(a$):ENDPROC DEFPROC`:LOCALVa%,Cb%,Db%,F%,a$:Va%=16:Cb%=20:Db%=24:IFa%!Va%>=0THEN SYSFNd(6)TOF%:a$=FNa(66)+" "+FNa(72):IFF%-a%!Db%>=50THEN a%!Db%=F%:a%!Cb%=FNq(a%!Cb%):IFa%!Cb%=1THENa%!Va%+=1 ENDIF IFa%!Cb%=0THEN a$=STRING$(LEN(a$)," ") ENDIF IFa%!Va%>5THEN a$=STRING$(LEN(a$)," "):a%!Va%=-1 ENDIF PROCp(a$) ENDIF ENDPROC DEFPROC_:LOCALi%,F%,R%,Ab%,s%:R%=56:Ab%=fa%:s%=FNe(16):FORi%=1TOa%!R%:IFFNo(w%,b%(i%))THEN PROCd(w%):w%!A%=FALSE:PROCD(i%,TRUE) ENDIF IFb%(i%)!_%THEN SYSFNd(6)TOF%:IFF%-b%(i%)!Ab%>=5THEN s%!d%=b%(i%)!d%:s%!e%=b%(i%)!e%:s%!b%=b%(i%)!b%-5:s%!h%=b%(i%)!h%+10:PROCd(s%):PROCs(b%(i%)):b%(i%)!_%=FALSE ENDIF ENDIF NEXTi%:PROCb(s%):ENDPROC DEFPROCJ(Eb%):LOCALi%,n$,U%:U%=64:a%!U%=RND(128)+127:FORi%=1TO10:IFi%MOD2=0THENn$=FNa(71)ELSEn$=FNa(70) a$(i%)=FNl(n$,a%!U%):d%(i%)=(11-i%)*1000:e%(i%)=0:NEXTi%:IFEb%THENPROCE ENDPROC DEFPROCK:LOCALi%,v%,Fb%,Gb%,Hb%,V%,H%,e$:v%=OPENIN(h$+"HiTable"):INPUT#v%,e$:IFe$<>"xBATSH"THENCLOSE#v%:ERROR255,FNa(115) INPUT#v%,H%,Gb%,Fb%:Gb%=Gb%EORH%:Fb%=Fb%EORH%:FORi%=1TO10:INPUT#v%,a$(i%),d%(i%),e%(i%):NEXTi%:CLOSE#v%:FORi%=1TO10:V%+=LEN(a$(i%)):NEXTi%:Hb%=V%/10:IFGb%<>V%ORFb%<>Hb%THENERROR255:FNa(113) a%!64=H%:ENDPROC DEFPROCE:LOCALi%,v%,V%,Hb%,U%,Ib%,w$:U%=64:Ib%=RND(128)+127:FORi%=1TO10:w$=FNl(a$(i%),a%!U%):a$(i%)=FNl(w$,Ib%):NEXTi%:a%!U%=Ib%:FORi%=1TO10:V%+=LEN(a$(i%)):NEXTi%:Hb%=V%/10:V%=V%EORa%!U%:Hb%=Hb%EORa%!U%:v%=OPENOUT(h$+"HiTable"):PRINT#v%,"xBATSH",a%!U%,V%,Hb%:FORi%=1TO10 PRINT#v%,a$(i%),d%(i%),e%(i%):NEXTi%:CLOSE#v%:ENDPROC DEFPROCba(B%):LOCALN%,M%,Jb%,g%,i%,Kb%,L%,x%,y%,a$:LOCALKa%,q%,U%,La%:M%=FNe(16):N%=FNe(16):Ka%=44:q%=80:U%=64:La%=100:M%!e%=FNc(100,1):M%!h%=FNc(40,2):M%!d%=FNi(M%,k%):M%!b%=800:N%!e%=FNc(150,1):N%!h%=FNc(40,2):N%!d%=FNi(N%,k%) N%!b%=M%!b%-N%!h%:Kb%=0:FORi%=10TO1STEP-1:IFB%!Pa%>=d%(i%)THENKb%=i% NEXTi%:FORi%=9TOKb%STEP-1:a$(i%+1)=a$(i%):d%(i%+1)=d%(i%):e%(i%+1)=e%(i%):NEXTi%:d%(Kb%)=B%!Pa%:e%(Kb%)=B%!Qa%:CLS:PROCg(T%!ra%):PROCg(T%!sa%):PROCa(FNb(100),M%!d%,M%!b%):PROCa(FNb(101),N%!d%,N%!b%):a$=FNa(54)+" "+STR$(B%!Pa%) a$+=" "+FNa(55)+" "+STR$(Kb%)+FNG(Kb%):L%=LEN(a$)*k%!qa%:x%=FNm(L%,k%!e%):y%=N%!b%-170:PROCc(x%,y%,a$,0,a%!q%):PROCb(M%):PROCb(N%):W%!e%=165:W%!h%=40:PROCn(W%,k%):PROCo(W%):x%=W%!d%+20:y%=W%!b%+12:a$="":i%=1:Jb%=FALSE OSCLI"FX 21,0":REPEAT:g%=GET:CASEg%OF WHEN13:Jb%=TRUE WHEN8:i%-=1:a$=LEFT$(a$,i%-1) OTHERWISE:IFi%<9ANDFNH(g%)THENi%+=1:a$+=CHR$(g%) ENDCASE IFi%<1THENi%=1 PROCc(x%,y%,STRING$(8," "),0,a%!q%):IFa$<>""THENPROCc(x%,y%,a$,0,a%!q%) UNTILJb%:IFa$=""ORa$=" "THENa$=FNa(56) a$(Kb%)=FNl(a$,a%!U%):a%!La%=TRUE:IFa%!Ka%THENPROCE ENDPROC DEFFNH(Lb%):=Lb%>=32ANDLb%<=126 DEFPROCP(Mb%,Nb%,l%,r%):LOCALx%,q%,a$:q%=80:a$=FNa(57)+" "+FNa(59):a$+=FNp(STR$(Mb%),10," ",TRUE):PROCc(0,k%!h%-k%!`%,a$,0,a%!q%):a$=FNa(58)+" "+FNa(57):a$+=" "+FNa(59)+FNp(STR$(Nb%),10," ",TRUE):x%=k%!e%-LEN(a$)*k%!qa% PROCc(x%,k%!h%-k%!`%,a$,0,a%!q%):PROCi(l%):PROCq(r%):PROCk:ENDPROC DEFPROCi(cb%):LOCALq%,a$:q%=80:PROCa(FNb(1),0,0):a$=" = "+STR$(cb%):PROCc(o%!e%,0,a$,0,a%!q%):ENDPROC DEFPROCq(cb%):LOCALx%,q%,a$:q%=80:a$=FNa(60)+" "+FNa(59):a$+=FNp(STR$(cb%),3,"0",TRUE):x%=k%!e%-LEN(a$)*k%!qa%:PROCc(x%,0,a$,0,a%!q%):ENDPROC DEFPROCp(a$):LOCALx%,y%,L%,q%:q%=80:L%=LEN(a$)*k%!qa%:x%=FNm(L%,k%!e%):y%=k%!h%-k%!`%:PROCc(x%,y%,a$,0,a%!q%):ENDPROC DEFPROCh(Ob%):LOCALbb%,Va%,q%,x%,a$:bb%=12:Va%=16:q%=80:B%!Pa%+=Ob%:a$=FNa(57)+" "+FNa(59):a$+=FNp(STR$(B%!Pa%),10," ",TRUE):PROCc(0,k%!h%-k%!`%,a$,0,a%!q%):IFB%!Pa%-a%!bb%>=5000THEN B%!Y%+=1:PROCi(B%!Y%):a%!bb%=B%!Pa%:a%!Va%=0 ENDIF IFB%!Pa%>d%(1)THEN a$=FNa(58)+" "+FNa(57)+" ":a$+=FNa(59):a$+=FNp(STR$(B%!Pa%),10," ",TRUE):x%=k%!e%-LEN(a$)*k%!qa%:PROCc(x%,k%!h%-k%!`%,a$,0,a%!q%) ENDIF ENDPROC DEFPROCk:LOCALPb%,Qb%,d$:Qb%=FNe(16):Pb%=0:Qb%!e%=FNc(20,1):Qb%!h%=FNc(10,2):Qb%!d%=FNi(Qb%,k%):Qb%!b%=0:IFa%!Pb%<0ORa%!Pb%>2THEN ERROR255,FNa(111)+" "+STR$(a%!Pb%) ENDIF d$=FNb(120+a%!Pb%):PROCa(d$,Qb%!d%,Qb%!b%):PROCb(Qb%):ENDPROC DEFPROCQ:LOCALO%,yb%,zb%,_a%:O%=ea%:yb%=ia%:zb%=ja%:_a%=ka%:PROCC:PROCr:ENDPROC DEFPROCC:LOCALK%,Q%,rb%:rb%=104:f%!d%=50:f%!b%=550:f%!O%=0:f%!_%=0:f%!S%=3:f%!P%=f%!S%:f%!yb%=1:f%!zb%=f%!Ya%:f%!_a%=1:f%!e%=(f%!Ya%*I%!e%)+((f%!Ya%-1)*f%!Xa%):f%!h%=f%!Za%*I%!h%:FORQ%=1TOf%!Ya%:FORK%=1TOf%!Za% c%(Q%,K%)=((K%+1)/2)+(f%!O%*10):NEXTK%:NEXTQ%:a%!rb%=FALSE:ENDPROC DEFPROCr:LOCALK%,Q%,x%,y%,s%:s%=FNe(16):FORQ%=f%!yb%TOf%!zb%:x%=f%!d%+((Q%-1)*(I%!e%+f%!Xa%)):FORK%=f%!_a%TOf%!Za%:y%=f%!b%+((K%-1)*I%!h%):IFc%(Q%,K%)>0THEN c%(Q%,K%)=((K%+1)/2)+(f%!O%*10) ENDIF IFc%(Q%,K%)<>0THEN CASESGN(c%(Q%,K%))OF WHEN-1:PROCja(x%,y%,Q%,K%) WHEN1:PROCa(FNb(27)+STR$(c%(Q%,K%)),x%,y%) ENDCASE ELSE:s%!d%=x%:s%!b%=y%:s%!e%=I%!e%:s%!h%=I%!h%:PROCd(s%) ENDIF NEXTK%:NEXTQ%:PROCb(s%):ENDPROC DEFPROCja(x%,y%,r%,c%):LOCALs%:c%(r%,c%)+=1:PROCa(FNb(26),x%,y%):IFc%(r%,c%)=0THEN s%=FNe(16):s%!d%=x%:s%!b%=y%:s%!e%=I%!e%:s%!h%=I%!h%:PROCd(s%):PROCb(s%) ENDIF ENDPROC DEFPROCA:LOCALs%,i%:s%=FNe(16):FORi%=1TO3:f%!b%-=I%!h%/3:PROCr:NEXTi%:s%!d%=f%!d%:s%!b%=f%!b%+f%!h%:s%!e%=f%!e%:s%!h%=I%!h%:PROCd(s%):PROCb(s%):ENDPROC DEFPROCca:LOCALZ%,Rb%,F%,Sb%,Tb%,S%,i%,o$:S%=1:Ub%=24:Z%=FNe(28):Rb%=FNe(28):PROCd(f%):PROCd(o%):IFw%!A%THENPROCd(w%):w%!A%=FALSE IFm%!A%THENPROCd(m%):m%!A%=FALSE PROCka:PROCB:o%!d%=FNi(o%,k%):Z%!d%=0-I%!e%:Z%!b%=o%!b%:Z%!P%=S%:Rb%!d%=k%!e%:Rb%!b%=o%!b%:Rb%!P%=0-S%:B%!Y%=0:PROCg(T%!sa%):PROCi(B%!Y%):PROCq(B%!Qa%):PROCa(FNb(1),o%!d%,o%!b%):O%=0:Tb%=FALSE:REPEAT:Z%!d%+=Z%!P%:Z%!Ub%=Z%!d%+I%!e%:Rb%!d%+=Rb%!P% SYSFNd(6)TOF%:IFF%-Sb%>=50THENTb%=FNq(Tb%):Sb%=F% IFTb%THENo$=FNb(21)ELSEo$=FNb(20) PROCa(o$,Z%!d%,Z%!b%):PROCa(o$,Rb%!d%,Rb%!b%):PROCe(2):WAIT:UNTILZ%!Ub%>=o%!d%:FORi%=1TO10:PROCa(FNb(20),Z%!d%,Z%!b%):PROCa(FNb(20),Rb%!d%,Rb%!b%):PROCe(20):PROCa(FNb(21),Z%!d%,Z%!b%):PROCa(FNb(21),Rb%!d%,Rb%!b%):PROCe(20):WAIT:NEXTi%:PROCj(2):FORi%=1TO3 PROCa(FNb(2)+STR$(i%),o%!d%,o%!b%):PROCe(20):WAIT:NEXTi%:PROCe(20):PROCd(o%):PROCb(Z%):PROCb(Rb%):ENDPROC DEFPROCN:LOCALi%,qb%,Sb%:qb%=ga%:Sb%=ha%:FORi%=1TO10:a%(i%)=FNg(48,0):a%(i%)!e%=FNc(5,1):a%(i%)!h%=FNc(20,2):SYSFNd(6)TOa%(i%)!qb%:SYSFNd(6)TOa%(i%)!Sb%:a%(i%)!A%=FALSE:NEXTi%:ENDPROC DEFPROCea(p%):LOCALVb%,Wb%,Xb%,Yb%,x%,y%:LOCALO%,Zb%:O%=ea%:Zb%=fa%:Vb%=RND(10):Xb%=B%!Qa%+5:IFXb%>100THEN Xb%=100:IFB%!Qa%MOD10=0THENf%!`a%+=1 ENDIF IFFNn(Xb%)ANDFNn(f%!`a%)THEN IFc%(Vb%,f%!_a%)>0THEN x%=f%!d%+(Vb%-1)*(I%!e%+f%!Xa%):y%=f%!b%+((f%!_a%-1)*I%!h%)-I%!h%:Wb%=(I%!e%/2)-(a%(p%)!e%/2):a%(p%)!d%=x%+Wb%:a%(p%)!b%=y%:a%(p%)!A%=TRUE:a%(p%)!_%=FALSE:a%(p%)!Zb%=1:a%(p%)!O%=0:Yb%=4:IFFNn(25)THENa%(p%)!Zb%=2:Yb%=Yb%/2 a%(p%)!S%=Yb%:a%(p%)!P%=a%(p%)!S%:PROCj(3) ENDIF ENDIF ENDPROC DEFPROCfa(p%):LOCALF%,O%,Sb%,Zb%,d$,r$:O%=ea%:Zb%=fa%:Sb%=ha%:SYSFNd(6)TOF%:IFF%-a%(p%)!Sb%>=40THEN a%(p%)!Sb%=F%:a%(p%)!O%+=1 ENDIF :IFa%(p%)!Zb%=1ANDa%(p%)!O%>1THEN a%(p%)!O%=0 ENDIF IFa%(p%)!Zb%=2ANDa%(p%)!O%>3THEN a%(p%)!O%=0 ENDIF r$=STR$(a%(p%)!O%):IFa%(p%)!Zb%=2ANDa%(p%)!O%=3THEN r$="1" ENDIF d$=FNb(30)+STR$(a%(p%)!Zb%)+r$:IFNOTa%(p%)!_%THEN a%(p%)!b%-=a%(p%)!P%:PROCa(d$,a%(p%)!d%,a%(p%)!b%) ELSE:d$=FNb(30)+"3":PROCa(d$,a%(p%)!d%,a%(p%)!b%) ENDIF ENDPROC DEFPROCga(p%):LOCALi%:PROCj(2):FORi%=1TO3:PROCa(FNb(2)+STR$(i%),o%!d%,o%!b%):PROCe(20):WAIT:NEXTi%:PROCd(o%):IFw%!A%THEN PROCd(w%):w%!A%=FALSE ENDIF o%!d%=FNi(o%,k%):B%!Y%-=1:PROCi(B%!Y%):PROCd(a%(p%)):a%(p%)!A%=FALSE:PROCa(FNb(1),o%!d%,o%!b%):ENDPROC DEFPROCha(p%):LOCALZb%,qb%:Zb%=fa%:qb%=ga%:IFa%(p%)!Zb%=1THEN IFNOTa%(p%)!_%THEN a%(p%)!_%=TRUE:PROCh(5):d$=FNb(30)+"3":PROCa(d$,a%(p%)!d%,a%(p%)!b%):SYSFNd(6)TOa%(p%)!qb% ENDIF ENDIF PROCd(w%):w%!A%=FALSE:ENDPROC DEFPROCia(p%):LOCALqb%,F%:qb%=ga%:SYSFNd(6)TOF%:IFF%-a%(p%)!qb%>=40THEN PROCd(a%(p%)):a%(p%)!A%=FALSE ENDIF ENDPROC DEFPROCka:LOCALi%,Bb%:Bb%=52:FORi%=1TOa%!Bb%:IFa%(i%)!A%THEN PROCd(a%(i%)):a%(i%)!A%=FALSE ENDIF NEXTi%:ENDPROC DEFPROCO:LOCALi%,x%,_b%,`b%,R%:`b%=ea%:R%=56:Oa%!d%=0:Oa%!b%=0:Oa%!e%=FNc(30,1):Oa%!h%=FNc(15,2):_b%=k%!e%/a%!R%:x%=_b%-150:FORi%=1TOa%!R%:b%(i%)=FNg(48,0):b%(i%)!e%=Oa%!e%:b%(i%)!h%=Oa%!h%:b%(i%)!d%=x%+((i%-1)*_b%) b%(i%)!b%=o%!b%+100:b%(i%)!A%=TRUE:b%(i%)!`b%=0:NEXTi%:Oa%!d%=b%(1)!d%:Oa%!b%=b%(1)!b%:ENDPROC DEFPROCda:LOCALi%,`b%,R%:`b%=ea%:R%=56:FORi%=1TOa%!R%:b%(i%)!A%=TRUE:b%(i%)!`b%=0:NEXTi%:ENDPROC DEFPROCz:LOCALi%,R%:R%=56:FORi%=1TOa%!R%:IFb%(i%)!A%THENPROCs(b%(i%)) NEXTi%:ENDPROC DEFPROCs(p%):LOCALac%,bc%,cc%,L%,`b%,q%,a$:`b%=ea%:q%=84:cc%=10-p%!`b%:a$=STR$(cc%):L%=LEN(a$):ac%=p%!d%+FNm(L%,p%!e%):bc%=p%!b%+(p%!h%/2)-(k%!`%/2):bc%+=7:IFL%=1THENac%-=7ELSEac%-=15 PROCd(p%):PROCa(FNb(16),p%!d%,p%!b%):PROCc(ac%,bc%,a$,0,a%!q%):ENDPROC DEFPROCD(p%,mb%):LOCALy%,`b%:`b%=ea%:Ab%=fa%:b%(p%)!`b%+=1:IFb%(p%)!`b%>=10THEN PROCd(b%(p%)):b%(p%)!A%=FALSE ELSE:PROCd(b%(p%)):y%=b%(p%)!b%:IFmb%THENb%(p%)!b%+=5ELSEb%(p%)!b%-=5 PROCs(b%(p%)):b%(p%)!_%=TRUE:b%(p%)!b%=y%:SYSFNd(6)TOb%(p%)!Ab% ENDIF ENDPROC DEFPROCB:LOCALi%,s%,R%:R%=56:s%=FNe(16):FORi%=1TOa%!R%:IFb%(i%)!A%THEN b%(i%)!A%=FALSE:s%!d%=b%(i%)!d%:s%!b%=b%(i%)!b%:s%!e%=Oa%!e%:s%!h%=Oa%!h%:PROCd(s%) ENDIF NEXTi%:PROCb(s%):ENDPROC DEFFNw(f$):LOCALC%,dc%,ec%,fc%,gc%,hc%,Pb%,i%,g$:C%=FNI(f$):fc%=FNg(C%,0):PROCf(fc%,208,0):SYSFNd(3),16,f$,fc%,0:FORi%=0TO3:g$+=CHR$(fc%?i%):NEXTi%:IFg$="SQSH"THEN PRINTFNa(27)+"...":SYSFNd(7),1<<3,C%TOdc%,ec%:IFec%=-1THENec%=fc%!4 gc%=FNg(dc%,0):PROCf(gc%,207,0):hc%=FNC(ec%+4):SYSFNd(7),1<<2,gc%,fc%+20,C%-20,hc%+4,ec%TOPb%:IFPb%<>0THENERROR255,FNa(114)+" "+STR$(Pb%) PROCf(gc%,0,1):PROCf(fc%,0,1):PROCb(gc%):PROCb(fc%) ELSE:hc%=FNC(C%+256):SYSwa%,256+10,hc%,f$ ENDIF SYSwa%,256+17,hc%:=hc% DEFFNC(C%):LOCALhc%:hc%=FNg(C%,0):hc%!0=C%:hc%!4=0:hc%!8=16:hc%!12=16:=hc% DEFPROCc(x%,y%,a$,ic%,jc%):LOCALi%,kc%,q%,lc%:q%=88:lc%=76:IFjc%<>a%!80ANDjc%<>a%!84THEN ERROR255,FNa(112) ENDIF a%!q%=jc%:kc%=k%!qa%:FORi%=1TOLEN(a$):PROCa(STR$(ASC(MID$(a$,i%,1))),x%+((i%-1)*kc%),y%):IFic%>0THENPROCe(ic%) NEXTi%:a%!q%=a%!lc%:ENDPROC DEFPROCa(B$,x%,y%):LOCALmc%,q%:q%=88:SYSwa%,256+24,a%!q%,B$TO,,mc%:SYSwa%,512+34,a%!q%,mc%,x%,y%,0:ENDPROC DEFPROCd(G%):GCOL0,0TINT0:RECTANGLEFILLG%!d%,G%!b%,G%!e%,G%!h%:ENDPROC DEFFNm(nc%,k%):=(k%/2)-(nc%/2) DEFPROCv(a$,oc%):LOCALL%,x%,y%,q%:q%=80:L%=LEN(a$)*k%!qa%:x%=FNm(L%,k%!e%):y%=(k%!h%/2)-(k%!`%/2):PROCc(x%,y%,a$,oc%,a%!q%):ENDPROC DEFFNi(pc%,qc%):=(qc%!e%/2)-(pc%!e%/2) DEFPROCn(pc%,qc%):LOCALx%,y%:pc%!d%=(qc%!e%/2)-(pc%!e%/2):pc%!b%=(qc%!h%/2)-(pc%!h%/2):ENDPROC DEFPROCg(b%):LOCALi%,rc%:rc%=k%!e%/T%!e%:FORi%=1TOrc%+1:PROCa(FNb(108),(i%-1)*T%!e%,b%):NEXTi%:ENDPROC DEFPROCo(G%):LOCALx%,y%,sc%,tc%,uc%,vc%,i%:sc%=FNc(3,1):tc%=FNc(3,2):uc%=1:vc%=3:FORi%=1TOG%!e%:x%=G%!d%+((i%-1)*uc%):PROCa(FNb(113),x%,G%!b%):PROCa(FNb(113),x%,G%!b%+(G%!h%-(2*vc%))):NEXTi%:x%=G%!d%+(G%!e%-sc%):FORi%=1TOG%!h%-1 PROCa(FNb(114),G%!d%,G%!b%+((i%-1)*uc%)):PROCa(FNb(114),x%,G%!b%+((i%-1)*uc%)):NEXTi%:PROCa(FNb(111),G%!d%,G%!b%):PROCa(FNb(109),G%!d%,(G%!b%+G%!h%)-tc%):PROCa(FNb(112),G%!d%+(G%!e%-sc%),G%!b%):x%=(G%!d%+G%!e%)-sc%:y%=(G%!b%+G%!h%)-tc% PROCa(FNb(110),x%,y%):ENDPROC DEFFNs(f$,g$):LOCALv%,wc%,xc%,H%,e$:v%=OPENIN(f$):INPUT#v%,e$:e$=FND(e$):IFe$<>g$THENCLOSE#v%:ERROR255,"Bad Magic!" INPUT#v%,H%,xc%,xc%,wc%:CLOSE#v%:=wc%EORH% DEFFNt(f$,g$,RETURNk%(),RETURNh$()):LOCALv%,i%,wc%,H%,Gb%,Fb%,V%,Hb%,e$:V%=0:v%=OPENIN(f$):INPUT#v%,e$:e$=FND(e$):IFe$<>g$THENCLOSE#v%:ERROR255,"Bad Magic!" INPUT#v%,H%,Gb%,Fb%,wc%:Gb%=Gb%EORH%:Fb%=Fb%EORH%:wc%=wc%EORH%:FORi%=1TOwc%:INPUT#v%,k%(i%),h$(i%):NEXTi%:CLOSE#v%:FORi%=1TOwc%:V%+=LEN(h$(i%)):NEXTi%:Hb%=V%/wc%:IFV%<>Gb%ORHb%<>Fb%THEN ERROR255,"File Inconsistant with header!" ENDIF =H% DEFFND(C$):LOCALi%,c$:FORi%=LEN(a$)TO1STEP-1:c$+=MID$(C$,i%,1):NEXTi%:=c$ DEFPROCt(yc%,H%,RETURNb$()):LOCALi%:FORi%=1TOyc%:b$(i%)=FNl(b$(i%),H%):NEXTi%:ENDPROC DEFFNa(zc%):LOCALH%:H%=a%!68:=FNv(zc%,ca%,h%(),g$(),H%,106) DEFFNb(zc%):=FNv(zc%,ta%,i%(),c$(),-1,107) DEFFNd(zc%):=FNv(zc%,ua%,j%(),d$(),-1,108) DEFFNf(zc%):=FNv(zc%,ba%,g%(),f$(),Ac%,109) DEFFNv(zc%,yc%,l%(),b$(),H%,Bc%):LOCALi%,Cc%:Cc%=0:FORi%=1TOyc%:IFl%(i%)=zc%THENCc%=i%:i%=yc% NEXTi%:IFCc%=0THEN IFzc%>=106ANDzc%<=108THEN ERROR255,"Missing message!!!" ELSE:IFBc%=109THEN ERROR255,"Can't find LibASH resource : "+STR$(zc%) ELSE:ERROR255,FNa(Bc%)+" "+STR$(zc%) ENDIF ENDIF ENDIF IFH%=-1THEN=b$(Cc%) =FNl(b$(Cc%),H%) DEFFNE(f$):LOCALv%:v%=0:SYSFNd(31),,f$TOv%:=v% DEFPROCj(Dc%):LOCALPb%,x$:Pb%=0:x$=FNa(110)+" "+STR$(Dc%):IFa%!Pb%>0THEN IFDc%<1ANDDc%>4THENERROR255,x$ OSCLI"SPlay_fire0"+STR$(Dc%)+"mhh" ENDIF ENDPROC DEFPROCu:LOCALs%:s%=FNe(20):s%!0=4:s%!4=5:s%!8=11:s%!12=12:s%!16=-1:SYSFNd(5),s%,s%:k%!na%=s%!0:k%!oa%=s%!4:k%!e%=(s%!8)+1<k%!pa%THENPROCu CASEEc%OF WHEN1:Fc%=C%<>k%!na% WHEN4:Fc%=C%>>k%!oa% OTHERWISE:ERROR255,FNa(103)+" "+STR$(Ec%) ENDCASE =Fc% DEFFNo(G%,Hc%):LOCALIc%,Jc%,Kc%,Lc%:Kc%=FALSE:Lc%=FALSE:IFG%!A%ANDHc%!A%THEN Ic%=Hc%!d%+Hc%!e%:Jc%=Hc%!b%+Hc%!h%:IFG%!d%>=Hc%!d%ANDG%!d%=Hc%!b%ANDG%!b%-1THEN SYS"TimPlayer_SongStop",a%!4:SYS"TimPlayer_SongUnload",a%!4 ENDIF PROCw:ENDPROC DEFFNj(D$,y$):LOCALl$,t$,J%,Cc%:l$=STRING$(10," "):RIGHT$(l$,3)=" : ":LEFT$(l$,LEN(y$))=y$:J%=FNr(D$):t$="Missing!!":Cc%=FALSE:IFJ%=1THENt$="OK.":Cc%=TRUE l$+=t$:PRINTl$:=Cc% DEFPROCH:LOCALv%,fb%,kb%,Mc%,ib%,hb%,Wa%,Nc%:fb%=0:kb%=48:Wa%=108:hb%=92:v%=OPENIN(h$+"Configs"):INPUT#v%,Mc%,ib%,Nc%:CLOSE#v%:IFMc%>=0ANDMc%<=2THENa%!fb%=Mc% IFib%>=0ANDib%<=128THENa%!kb%=ib% IFNc%>=1ANDNc%<=64THENa%!Wa%=Nc% a%!hb%=FALSE:ENDPROC DEFPROCM:LOCALv%,fb%,kb%,hb%,Wa%:fb%=0:kb%=48:Wa%=108:hb%=92:IFa%!hb%THEN v%=OPENOUT(h$+"Configs"):PRINT#v%,a%!fb%,a%!kb%:PRINT#v%,a%!Wa%:CLOSE#v% ENDIF ENDPROC DEFFNy(wc%):LOCALj$:j$="Dump"+STR$(wc%):IFFNr(q$+j$)<>0THEN REPEAT:wc%+=1:j$="Dump"+STR$(wc%):UNTILFNr(q$+j$)=0ORLEN(j$)>10:IFLEN(j$)>10THENwc%=-1 ENDIF =wc% DEFPROCf(D%,zc%,Ec%):LOCALa$:IFEc%=0THENa$=FNa(200)ELSEa$=FNa(209) a$+=" &":PRINTa$;~FNx(D%);:PRINT" "+FNa(201)+" &";~D%;:IFEc%=0THEN a$=" "+FNa(202)+" "+FNa(zc%) ELSE:a$="." ENDIF PRINTa$:ENDPROC DEFPROCI:LOCALv%,V%,Hb%,Gb%,Fb%,i%,da%,g$:LOCALU%,C%:U%=60:C%=72:v%=OPENIN(b$+"Creds"):INPUT#v%,g$:IFg$<>"DERC"THEN CLOSE#v%:ERROR255,FNa(101):END ENDIF INPUT#v%,a%!U%,da%,Gb%,Fb%:a%!C%=da%EORa%!U%:Gb%=Gb%EORa%!U%:Fb%=Fb%EORa%!U%:DIMe$(a%!C%),f%(a%!C%):FORi%=1TOa%!C%:INPUT#v%,f%(i%),e$(i%):NEXTi%:CLOSE#v%:V%=0:FORi%=1TOa%!C%:V%+=LEN(e$(i%)):NEXTi%:Hb%=V%/a%!C%:IFHb%<>Fb%ORV%<>Gb%THENERROR255,FNa(113) ENDPROC DEFFNn(n%):=RND(100)<=n% DEFFNl(a$,H%):LOCALi%,z$:FORi%=1TOLEN(a$):z$+=CHR$(ASC(MID$(a$,i%,1))EORH%):NEXTi%:=z$ DEFPROCe(n%):LOCALt%:t%=TIME+n%:REPEAT:UNTILTIME>=t%:ENDPROC DEFFNq(n%):=n%EOR1 DEFFNG(n%):LOCALc$,u%:u%=VAL(RIGHT$(STR$(n%),1)):c$=FNa(65):IFu%>=1ANDu%<=3THENc$=FNa(u%+61) =c$ DEFFNp(a$,Oc%,A$,Pc%):LOCALQc%,c$:Qc%=Oc%-LEN(a$):IFQc%<=0THEN c$=LEFT$(a$,Oc%) ELSE:IFPc%THEN c$=STRING$(Oc%,A$):RIGHT$(c$,LEN(a$))=a$ ELSE:c$=a$+STRING$(Qc%,A$) ENDIF ENDIF =c$ DEFFNB(a$,Oc%):LOCALc$:c$=STRING$(Oc%," "):RIGHT$(c$,LEN(a$))=a$:=c$ DEFFNr(k$):LOCALCc%:SYS"XOS_File",17,k$TOCc%:=Cc% DEFFNI(k$):LOCALC%:SYSFNd(3),17,k$TO,,,,C%:=C% DEFFNz(Ec%,k$):LOCALv%,Rc%,Sc%,Tc%:Tc%=FALSE:CASEEc%OF WHEN0:v%=OPENUP(k$+"chkfile") WHEN1:v%=OPENUP(k$) OTHERWISE:ERROR255,FNa(104)+" "+STR$(Ec%) ENDCASE IFv%<>0THEN SYSFNd(4),254,v%TOSc%;Rc%:IF(Rc%AND1)THENCLOSE#v%:ERROR255,FNa(105) IF((Sc%AND(1<<7))<>0)THENTc%=TRUE CLOSE#v% ENDIF =Tc% DEFPROCG(H%):LOCALUc%:Vc%=0:Wc%=0:Ac%=H%:SYSFNf(210),-1,-1TOXc%:SYSFNf(211)TOYc%;Uc%:IFUc%AND1THENYc%=16384 PROCla(Yc%):ENDPROC DEFPROCw:IFVc%THEN SYSFNf(210),Vc%-32768,-1TOXc%:Vc%=0:Wc%=0 ENDIF ENDPROC DEFFNe(Zc%):LOCALD%,C%:C%=(Zc%+15)AND-4:D%=FNJ(C%):IFD%ELSEERROR254,FNf(110) D%!0=&DEADDEAD:D%!4=Zc%:!(D%-8+(D%!-4))=&DEADDEAD:=D%+8 DEFFNg(Zc%,Ob%):LOCALD%:D%=FNe(Zc%):PROCma(D%,Ob%):=D% DEFPROCb(RETURND%):CASEFNK(D%)OF WHEN1:ERROR254,FNf(111) WHEN2:ERROR254,FNf(112) WHEN3:ERROR254,FNf(113) ENDCASE D%-=8:Wc%-=D%!-4:SYSFNf(212),3,Vc%,D%:D%=0:ENDPROC DEFFNx(D%):LOCALs%:s%=D%-4:=s%!0 DEFPROCma(D%,Ob%):LOCALwb%,C%:C%=FNx(D%):FORwb%=0TOC%-4STEP4:D%!wb%=Ob%:NEXTwb%:ENDPROC DEFFNh(D%):LOCAL_c%,wb%,C%:C%=FNx(D%):_c%=FNe(C%):FORwb%=0TOC%-4STEP4:_c%!wb%=D%!wb%:NEXTwb%:=_c% DEFFNK(D%):LOCALNb%,`c%:Nb%=FALSE:`c%=FALSE:D%-=8:IFD%!0<>&DEADDEADTHEN`c%=TRUE IF!(D%-8+(D%!-4))<>&DEADDEADTHENNb%=TRUE IF`c%ANDNb%THEN=3 IFNb%THEN=2 IF`c%THEN=1 =0 DEFPROCla(C%):IFVc%THENERROR254,FNf(114) C%=(C%+Yc%-1)ANDNOT(Yc%-1):Vc%=HIMEM:SYSFNf(210),Xc%+C%,-1TOXc%:C%=Xc%+32768-Vc%:IFC%<1THEN Vc%=0:ERROR254,FNf(115) ELSE:SYSFNf(212),0,Vc%,,C% ENDIF Wc%=0:ENDPROC DEFPROCna(Zc%):LOCALad%:ad%=Xc%:SYSFNf(210),Xc%+Zc%,-1TOXc%:Zc%=Xc%-ad%:IFZc%THENSYSFNf(212),5,Vc%,,Zc%TO,,,Zc% ENDPROC DEFFNJ(Zc%):LOCALD%,Uc%:SYSFNf(213),2,Vc%,,Zc%TO,,D%;Uc%:IFUc%AND1THEN PROCna((Zc%+Yc%)ANDNOT(Yc%-1)):SYSFNf(213),2,Vc%,,Zc%TO,,D%;Uc%:IFUc%AND1THEN=0 ENDIF Wc%+=D%!-4:=D%