REM Acorn Invaders REM Packed by Make v1.41 15/05/08 On 11 Jan 2010 ONERRORPROCE: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$()):PROCF(H%):a%=FNg(104,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:DIMa$(10),d%(10):DIMe%(10):PRINTFNa(8)+" "+FNa(22):d%=0:b%=4:e%=8:k%=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):PROCs(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):PROCs(ua%,da%,d$()):PRINTFNa(14):PRINT:PRINTFNa(9)+" "+FNa(24)+" ";:IFFNr(h$+"Configs")=1THEN PROCG: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);:PROCH: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 PROCI(a%!44) ELSE:IFNOTFNz(1,v$)THEN a%!44=FALSE:PRINTFNa(18)+" "+FNa(10)+" "+FNa(20) ELSE:PRINTFNa(18)+" "+FNa(11)+" "+FNa(20) ENDIF PROCJ ENDIF PRINT:PRINTFNa(12):PROCe(150):h%=FNe(36):T%=FNe(24):W%=FNe(16):CLS:PROCt:h%!qa%=FNc(8,1):h%!`%=FNc(8,2)+7:T%!e%=FNc(6,1):T%!k%=FNc(6,2):T%!ra%=h%!k%-50:T%!sa%=30:IFa%!0=1THEN SYSFNd(33),a%!4 ENDIF FORi%=0TOa%!48STEPa%!96:SYSFNd(36),a%!4,i%:NEXTi%:WHILENOTFNF:CLS:PROCK:ENDWHILE:CLS:W%!e%=220:W%!k%=40:PROCm(W%,h%):W%!b%-=3:PROCn(W%):PROCu(FNa(31),10):IFa%!44THENPROCL 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(h%):PROCv:END DEFFNF:LOCALi%,M%,N%,E%,L%,m%,ya%,za%,Aa%:LOCALo%,X%,Ba%,Ca%,Da%,Ea%,Fa%,Ga%,Ha%:LOCALx%,y%,J%,Ia%,q%,Ja%,s$,a$:Ia%=44:q%=80:Ja%=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%!k%=FNc(40,2):M%!d%=FNh(M%,h%):M%!b%=800:N%!e%=FNc(150,1):N%!k%=FNc(40,2):N%!d%=FNh(N%,h%):N%!b%=M%!b%-N%!k%:E%!e%=720:E%!k%=500:E%!d%=FNh(E%,h%):E%!b%=200:m%!e%=FNc(40,1):m%!k%=FNc(20,2) m%!d%=(E%!d%+E%!e%/2)-150:m%!b%=(E%!b%+E%!k%)-125:o%!e%=FNc(30,1):o%!k%=FNc(15,2):ya%!e%=FNc(20,1):ya%!k%=FNc(20,2):ya%!d%=(E%!d%+E%!e%/2)-150:ya%!d%+=FNh(ya%,m%):za%=FNi(ya%):Aa%=FNi(ya%) :Aa%!b%=m%!b%-40-Aa%!k%:za%!b%=Aa%!b%-40-za%!k%:ya%!b%=za%!b%-40-ya%!k%:X%!e%=FNc(20,1):X%!k%=FNc(20,2):X%!d%=(E%!d%+E%!e%/2)-120:Ba%=FNi(X%):Ca%=FNi(X%):Da%=FNi(X%):Da%!d%=E%!d%:Ka%=FNi(Da%):Fa%=FNi(Da%):Ea%=FNi(X%) Ea%!d%=E%!d%:Ea%!d%+=(E%!e%/2)+10:Ga%=FNi(Ea%):Ha%=FNi(Ea%)::X%!b%=(E%!b%+E%!k%)-120:Ba%!b%=X%!b%-60:Ca%!b%=Ba%!b%-60:Fa%!b%=Ca%!b%-90:Ka%!b%=Fa%!b%-60:Da%!b%=Ka%!b%-60:Ea%!b%=Ca%!b%-90:Ga%!b%=Ea%!b%-60:Ha%!b%=Ga%!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%=h%!e%TON%!d%STEP-5:WAIT:PROCa(FNb(101),i%,N%!b%):PROCe(1):NEXTi%:a$=FNa(32):L%=LEN(a$)*h%!qa%:y%=170 PROCc(FNm(L%,h%!e%),y%,a$,11,a%!q%):a$=FNa(33):L%=LEN(a$)*h%!qa%:y%-=h%!`%:PROCc(FNm(L%,h%!e%),y%,a$,11,a%!q%):WHILENOTINKEY(-99)ANDNOTINKEY(-17)ANDNOTINKEY(-82):IFa%!Ja%THEN a%!Ja%=FALSE:J%=FNA:IFJ%=1THEN=TRUE IFJ%=2THEN=FALSE PROCd(E%) ENDIF y%=E%!b%+E%!k%:FORi%=1TOa%!72:a$=FNl(e$(i%),a%!60):x%=FNk(a$):CASESGN(f%(i%))OF WHEN-1:y%-=(ABS(f%(i%))*h%!`%) 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%!k%-20:PROCc(x%,y%,a$,0,a%!q%):a$=FNa(35):y%-=h%!`%: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%/h%!qa%+2:s$=FNa(66):a$=s$+STRING$(L%," ")+FNa(67):x%=FNk(a$):y%=ya%!b%-(3*h%!`%):PROCc(x%,y%,a$,0,a%!q%):o%!d%=x%+7+(LEN(s$)*h%!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%!k%-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),Ka%!d%,Ka%!b%):a$=FNa(46)+" "+FNa(49):PROCc(x%,Ka%!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%):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%):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%!Ia%THENa$=FNa(51) x%=FNk(a$):y%=E%!b%+E%!k%-20:PROCc(x%,y%,a$,0,a%!q%):a$=FNa(58)+" "+FNa(52):x%=FNk(a$):y%-=h%!`%:PROCc(x%,y%,a$,0,a%!q%):y%=(E%!b%+E%!k%)-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*h%!`%: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%*(h%!`%+5)),a$,0,a%!q%):NEXTi%:=FNu DEFFNu:LOCALt%,J%:t%=TIME+750:J%=FALSE:REPEAT:IFINKEY(-82)THENPROCw IFINKEY(-102)THENPROCx IFINKEY(-59)THENPROCl(4) IFINKEY(-60)THENPROCl(-4) 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(Ka%):PROCb(Fa%):PROCb(Ga%):PROCb(Ha%):PROCb(o%) ENDIF =J% DEFFNk(a$):LOCALL%:L%=LEN(a$)*h%!qa%:=E%!d%+FNm(L%,E%!e%) DEFPROCK:LOCALo%,w%,m%,f%,B%:LOCALI%:LOCALc%(),a%():LOCALb%(),La%,Ma%:LOCALY%,Na%,Oa%,Pa%:LOCALQa%,Ra%,Sa%:LOCALTa%:LOCALUa%,Va%,Wa%,Xa%,Ya%:LOCALZa%,L%,a$,x%,y%,i%,j%:o%=FNe(32):w%=FNe(28):m%=FNe(48):f%=FNe(68):I%=FNe(16):Ma%=FNe(16):B%=FNg(16,0) Y%=0:Na%=4:Oa%=8:Pa%=12:Ta%=16:_a%=12:Qa%=28:La%=56:Ua%=fa%:Va%=ga%:Wa%=ha%:Xa%=ka%:Ya%=la%:DIMc%(10,6),a%(10),b%(a%!La%):o%!e%=FNc(30,1):o%!k%=FNc(15,2):o%!d%=FNh(o%,h%):o%!b%=50:o%!S%=6:o%!P%=o%!S% I%!e%=FNc(20,1):I%!k%=FNc(20,2):m%!e%=FNc(40,1):m%!k%=FNc(20,2):m%!b%=T%!ra%-(10+m%!k%):m%!S%=5:m%!A%=FALSE:m%!ga%=1:w%!e%=FNc(5,1):w%!k%=FNc(20,2):w%!A%=FALSE:w%!S%=10:B%!Oa%=1:B%!Y%=3:B%!Pa%=FALSE a%!Ta%=-1:a%!_a%=0:f%!Ua%=FNc(20,1):f%!Va%=10:f%!Wa%=6:f%!A%=TRUE:f%!Ya%=4:SYSFNd(6)TOf%!ma%:PROCM:PROCN:PROCg(T%!ra%):PROCg(T%!sa%):PROCO(0,d%(1),B%!Y%,B%!Oa%):PROCP:PROCy:PROCa(FNb(1),o%!d%,o%!b%):WHILEB%!Y%>0:IFa%!Qa%=0THEN IFINKEY(-74)THENPROCQ(o%!d%,o%!b%) IFINKEY(-98)THENPROCR IFINKEY(-67)THENPROCS IFINKEY(-17)THENPROCT ENDIF IFINKEY(-102)THENPROCx IFINKEY(-82)THENPROCw IFINKEY(-56)THENPROCU IFINKEY(-59)THENPROCl(4) IFINKEY(-60)THENPROCl(-4) IFa%!Qa%=0THEN PROCV:PROCW:PROCX:PROCY:PROCZ:PROC_ ELSE:PROC` ENDIF WAIT:ENDWHILE:W%!e%=240:W%!k%=40:PROCm(W%,h%):W%!b%-=3:PROCd(W%):PROCn(W%):a$=FNa(49)+" "+FNa(53):PROCu(a$,11):PROCe(750):IFNOTB%!Pa%THEN IFB%!Na%>=d%(10)THEN PROCaa(B%) ENDIF ENDIF PROCb(o%):PROCb(f%):PROCb(m%):PROCb(w%):PROCb(B%):PROCb(I%):PROCb(Ma%):FORi%=1TO10:PROCb(a%(i%)):NEXTi%:FORi%=1TOa%!La%:PROCb(b%(i%)):NEXTi%:ENDPROC DEFPROCR: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 DEFPROCS:IFo%!d%>=h%!e%-o%!e%THEN o%!d%=h%!e%-o%!e% ELSE:o%!P%=0+o%!S%:o%!d%+=o%!P%:PROCa(FNb(1),o%!d%,o%!b%) ENDIF ENDPROC DEFPROCQ(x%,y%):IFNOTw%!A%THEN w%!A%=TRUE:w%!d%=x%+(o%!e%/2):w%!b%=y%+o%!k%:PROCi(4) ENDIF ENDPROC DEFPROCw:LOCAL`a%,ab%:`a%=40:ab%=44:IFa%!ab%THEN REPEAT:UNTILNOTINKEY(-82):a%!`a%=FNy(a%!`a%):IFa%!`a%=-1THENERROR255,FNa(109) OSCLI"ScreenSave "+q$+"Dump"+STR$(a%!`a%) ENDIF ENDPROC DEFPROCT:LOCALi%,bb%:bb%=52:FORi%=1TOa%!bb%:a%(i%)!A%=FALSE:NEXTi%:B%!Y%=0:B%!Pa%=TRUE:ENDPROC DEFPROCx:LOCALcb%,db%,eb%:cb%=0:db%=4:eb%=92:REPEAT:UNTILNOTINKEY(-102):a%!cb%+=1:IFa%!cb%>2THENa%!cb%=0 IFa%!cb%=1THEN SYSFNd(33),a%!db% ELSE:SYSFNd(34),a%!db% ENDIF a%!eb%=TRUE:PROCk:ENDPROC DEFPROCl(fb%):LOCALcb%,db%,gb%,hb%,F%,xa%,ib%,eb%:cb%=0:db%=4:gb%=8:hb%=48:eb%=92:IFa%!cb%=1THEN SYSFNd(6)TOF%:IFF%-a%!gb%>=10THEN SYSFNd(36),a%!db%,-1TO,xa%:ib%=xa%+fb%:IFib%>=0ANDib%<=128THEN SYSFNd(36),a%!db%,ib%:a%!hb%=ib%:a%!gb%=F%:a%!eb%=TRUE ENDIF ENDIF ENDIF ENDPROC DEFPROCU:LOCALQa%,Ra%,a$:Qa%=28:Ra%=32:REPEATUNTILNOTINKEY(-56):a$=FNa(49)+" "+FNa(61):a%!Qa%=FNq(a%!Qa%):a%!Ra%=a%!Qa%:IFa%!Qa%=0THEN a$=STRING$(LEN(a$)," "):PROCo(a$) ENDIF ENDPROC DEFPROCV:IFw%!A%THEN IFw%!b%>=T%!ra%-w%!k%THEN w%!A%=FALSE:w%!b%-=2:PROCd(w%) ELSE:PROCa(FNb(5),w%!d%,w%!b%) ENDIF w%!b%+=w%!S% ENDIF ENDPROC DEFPROCW:LOCALjb%,kb%,lb%,F%,mb%,Oa%,d$:LOCAL_a%,Ta%,Na%,Y%:jb%=ea%:kb%=fa%:lb%=ga%:Oa%=8:Ta%=16:Y%=0:Na%=4:IFNOTm%!A%THEN IFFNn(4)ANDFNn(5)THEN m%!A%=TRUE:m%!_%=FALSE:m%!kb%=0:IFFNn(50)THEN m%!P%=0-m%!S%:m%!d%=h%!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%!jb%=FALSE:m%!A%=FALSE:ENDPROC ENDIF IFm%!d%>h%!e%ANDSGN(m%!P%)=1THEN m%!jb%=FALSE:m%!A%=FALSE:ENDPROC ENDIF IFNOTm%!_%THEN IFFNo(w%,m%)THEN PROCd(w%):PROCa(FNb(12),m%!d%,m%!b%):SYSFNd(6)TOm%!jb%:m%!_%=TRUE:w%!A%=FALSE:IFB%!Oa%>=5ANDFNn(10)THEN B%!Y%+=1:PROCh(B%!Y%):a%!Ta%=0 ELSE:PROCj(500) ENDIF ENDIF ELSE:IFFNo(w%,m%)THEN PROCd(w%):w%!A%=FALSE ENDIF ENDIF IFNOTm%!_%THEN SYSFNd(6)TOF%:IFF%-m%!lb%>=40THEN m%!lb%=F%:m%!kb%=FNq(m%!kb%) ENDIF d$=FNb(10)+STR$(m%!kb%):PROCa(d$,m%!d%,m%!b%):m%!d%+=m%!P% ELSE:SYSFNd(6)TOF%:mb%=F%-m%!jb%:IFmb%>=300THEN m%!A%=FALSE:m%!kb%=1:PROCd(m%) ELSE:IFmb%>=250THEN PROCa(FNb(15),m%!d%,m%!b%) ELSE:IFmb%>=200THEN PROCa(FNb(14),m%!d%,m%!b%) ELSE:IFmb%>=100THEN PROCa(FNb(13),m%!d%,m%!b%) ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDPROC DEFPROCX:LOCALnb%,z%,K%,Q%,ob%,pb%,qb%,rb%:LOCALO%,sb%,tb%,F%,ub%,vb%,R%:O%=ea%:sb%=ia%:tb%=ja%:ub%=ma%:vb%=52:R%=56:SYSFNd(6)TOF%:IFF%-f%!ub%>=50THEN f%!ub%=F%:f%!O%=FNq(f%!O%) ENDIF nb%=f%!d%+f%!e%:rb%=0-((f%!sb%-1)*(I%!e%+f%!Ua%)):IFnb%>=h%!e%THEN f%!P%=0-f%!S%:PROCz ENDIF IFf%!d%<=rb%THEN f%!P%=0+f%!S%:PROCz ENDIF IFf%!b%<=Ma%!b%+Ma%!k%THENPROCA rb%=f%!b%+((f%!Xa%-1)*I%!k%):IFrb%<=o%!b%+o%!k%THEN PROCba:ENDPROC ENDIF IFFNo(w%,f%)THEN z%=I%!e%+f%!Ua%:IF(w%!d%-f%!d%)MODz%<=I%!e%THEN K%=((w%!b%-f%!b%)DIVI%!k%)+1:Q%=((w%!d%-f%!d%)DIVz%)+1:IFSGN(c%(Q%,K%))=1THEN c%(Q%,K%)=-5:PROCd(w%):w%!A%=FALSE:f%!_%+=1:PROCi(1):CASEK%OF WHEN1,2:PROCj(50) WHEN3,4:PROCj(75) WHEN5,6:PROCj(100) ENDCASE ENDIF ENDIF ENDIF IFf%!_%>=f%!Va%*f%!Wa%THEN B%!Oa%+=1:PROCd(f%):PROCg(T%!sa%):PROCh(B%!Y%):PROCp(B%!Oa%):PROCk:PROCa(FNb(1),o%!d%,o%!b%):PROCca:PROCy:PROCB:IFB%!Oa%>=5THENa%!vb%=7 IFB%!Oa%>=10THENa%!vb%=10 ENDIF ob%=TRUE:pb%=TRUE:FORK%=1TOf%!Wa%:IFc%(f%!tb%,K%)<>0THENob%=FALSE IFc%(f%!sb%,K%)<>0THENpb%=FALSE NEXTK%:qb%=TRUE:FORQ%=1TOf%!Va%:IFc%(Q%,f%!Xa%)<>0THENqb%=FALSE NEXTQ%:IFpb%THENf%!sb%+=1 IFob%THENf%!e%-=(I%!e%+f%!Ua%):f%!tb%-=1 IFqb%THENf%!Xa%+=1 f%!d%+=f%!P%:PROCq:ENDPROC DEFPROCY:LOCALi%,j%,F%,vb%,R%:vb%=52:R%=56:FORi%=1TOa%!vb%:IFNOTa%(i%)!A%THEN PROCda(i%) ELSE:PROCea(i%):IFa%(i%)!b%<=T%!sa%+(T%!k%+5)THEN a%(i%)!A%=FALSE:PROCd(a%(i%)) ENDIF IFFNo(a%(i%),o%)ANDa%(i%)!A%THEN PROCfa(i%) ENDIF FORj%=1TOa%!R%:IFFNo(a%(i%),b%(j%))THEN PROCC(j%,FALSE):PROCd(a%(i%)):a%(i%)!A%=FALSE ENDIF NEXTj%:IFFNo(w%,a%(i%))THEN PROCga(i%) ENDIF IFa%(i%)!_%THEN PROCha(i%) ENDIF ENDIF NEXTi%:ENDPROC DEFPROC`:LOCALQa%,Ra%,Sa%,F%,a$:Qa%=28:Ra%=32:Sa%=36:SYSFNd(6)TOF%:IFF%-a%!Sa%>=50THEN a%!Ra%=FNq(a%!Ra%):a%!Sa%=F% ENDIF a$=FNa(49)+" "+FNa(61):IFa%!Ra%=0ORa%!Qa%=0THEN a$=STRING$(LEN(a$)," ") ENDIF PROCo(a$):ENDPROC DEFPROC_:LOCALTa%,wb%,xb%,F%,a$:Ta%=16:wb%=20:xb%=24:IFa%!Ta%>=0THEN SYSFNd(6)TOF%:a$=FNa(66)+" "+FNa(72):IFF%-a%!xb%>=50THEN a%!xb%=F%:a%!wb%=FNq(a%!wb%):IFa%!wb%=1THENa%!Ta%+=1 ENDIF IFa%!wb%=0THEN a$=STRING$(LEN(a$)," ") ENDIF IFa%!Ta%>5THEN a$=STRING$(LEN(a$)," "):a%!Ta%=-1 ENDIF PROCo(a$) ENDIF ENDPROC DEFPROCZ:LOCALi%,F%,R%,ub%,s%:R%=56:ub%=fa%:s%=FNe(16):FORi%=1TOa%!R%:IFFNo(w%,b%(i%))THEN PROCd(w%):w%!A%=FALSE:PROCC(i%,TRUE) ENDIF IFb%(i%)!_%THEN SYSFNd(6)TOF%:IFF%-b%(i%)!ub%>=5THEN s%!d%=b%(i%)!d%:s%!e%=b%(i%)!e%:s%!b%=b%(i%)!b%-5:s%!k%=b%(i%)!k%+10:PROCd(s%):PROCr(b%(i%)):b%(i%)!_%=FALSE ENDIF ENDIF NEXTi%:PROCb(s%):ENDPROC DEFPROCI(yb%):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%:IFyb%THENPROCD ENDPROC DEFPROCJ:LOCALi%,v%,zb%,Ab%,Bb%,V%,H%,e$:v%=OPENIN(h$+"HiTable"):INPUT#v%,e$:IFe$<>"xBATSH"THENCLOSE#v%:ERROR255,FNa(115) INPUT#v%,H%,Ab%,zb%:Ab%=Ab%EORH%:zb%=zb%EORH%:FORi%=1TO10:INPUT#v%,a$(i%),d%(i%),e%(i%):NEXTi%:CLOSE#v%:FORi%=1TO10:V%+=LEN(a$(i%)):NEXTi%:Bb%=V%/10:IFAb%<>V%ORzb%<>Bb%THENERROR255:FNa(113) a%!64=H%:ENDPROC DEFPROCD:LOCALi%,v%,V%,Bb%,U%,Cb%,w$:U%=64:Cb%=RND(128)+127:FORi%=1TO10:w$=FNl(a$(i%),a%!U%):a$(i%)=FNl(w$,Cb%):NEXTi%:a%!U%=Cb%:FORi%=1TO10:V%+=LEN(a$(i%)):NEXTi%:Bb%=V%/10:V%=V%EORa%!U%:Bb%=Bb%EORa%!U%:v%=OPENOUT(h$+"HiTable"):PRINT#v%,"xBATSH",a%!U%,V%,Bb%:FORi%=1TO10 PRINT#v%,a$(i%),d%(i%),e%(i%):NEXTi%:CLOSE#v%:ENDPROC DEFPROCaa(B%):LOCALN%,M%,Db%,g%,i%,Eb%,L%,x%,y%,a$:LOCALIa%,q%,U%,Ja%:M%=FNe(16):N%=FNe(16):Ia%=44:q%=80:U%=64:Ja%=100:M%!e%=FNc(100,1):M%!k%=FNc(40,2):M%!d%=FNh(M%,h%):M%!b%=800:N%!e%=FNc(150,1):N%!k%=FNc(40,2):N%!d%=FNh(N%,h%) N%!b%=M%!b%-N%!k%:Eb%=0:FORi%=10TO1STEP-1:IFB%!Na%>=d%(i%)THENEb%=i% NEXTi%:FORi%=9TOEb%STEP-1:a$(i%+1)=a$(i%):d%(i%+1)=d%(i%):e%(i%+1)=e%(i%):NEXTi%:d%(Eb%)=B%!Na%:e%(Eb%)=B%!Oa%: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%!Na%) a$+=" "+FNa(55)+" "+STR$(Eb%)+FNG(Eb%):L%=LEN(a$)*h%!qa%:x%=FNm(L%,h%!e%):y%=N%!b%-170:PROCc(x%,y%,a$,0,a%!q%):PROCb(M%):PROCb(N%):W%!e%=165:W%!k%=40:PROCm(W%,h%):PROCn(W%):x%=W%!d%+20:y%=W%!b%+12:a$="":i%=1:Db%=FALSE OSCLI"FX 21,0":REPEAT:g%=GET:CASEg%OF WHEN13:Db%=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%) UNTILDb%:IFa$=""ORa$=" "THENa$=FNa(56) a$(Eb%)=FNl(a$,a%!U%):a%!Ja%=TRUE:IFa%!Ia%THENPROCD ENDPROC DEFFNH(Fb%):=Fb%>=32ANDFb%<=126 DEFPROCO(Gb%,Hb%,l%,r%):LOCALx%,q%,a$:q%=80:a$=FNa(57)+" "+FNa(59):a$+=FNp(STR$(Gb%),10," ",TRUE):PROCc(0,h%!k%-h%!`%,a$,0,a%!q%):a$=FNa(58)+" "+FNa(57):a$+=" "+FNa(59)+FNp(STR$(Hb%),10," ",TRUE):x%=h%!e%-LEN(a$)*h%!qa% PROCc(x%,h%!k%-h%!`%,a$,0,a%!q%):PROCh(l%):PROCp(r%):PROCk:ENDPROC DEFPROCh(`a%):LOCALq%,a$:q%=80:PROCa(FNb(1),0,0):a$=" = "+STR$(`a%):PROCc(o%!e%,0,a$,0,a%!q%):ENDPROC DEFPROCp(`a%):LOCALx%,q%,a$:q%=80:a$=FNa(60)+" "+FNa(59):a$+=FNp(STR$(`a%),3,"0",TRUE):x%=h%!e%-LEN(a$)*h%!qa%:PROCc(x%,0,a$,0,a%!q%):ENDPROC DEFPROCo(a$):LOCALx%,y%,L%,q%:q%=80:L%=LEN(a$)*h%!qa%:x%=FNm(L%,h%!e%):y%=h%!k%-h%!`%:PROCc(x%,y%,a$,0,a%!q%):ENDPROC DEFPROCj(Ib%):LOCAL_a%,Ta%,q%,x%,a$:_a%=12:Ta%=16:q%=80:B%!Na%+=Ib%:a$=FNa(57)+" "+FNa(59):a$+=FNp(STR$(B%!Na%),10," ",TRUE):PROCc(0,h%!k%-h%!`%,a$,0,a%!q%):IFB%!Na%-a%!_a%>=5000THEN B%!Y%+=1:PROCh(B%!Y%):a%!_a%=B%!Na%:a%!Ta%=0 ENDIF IFB%!Na%>d%(1)THEN a$=FNa(58)+" "+FNa(57)+" ":a$+=FNa(59):a$+=FNp(STR$(B%!Na%),10," ",TRUE):x%=h%!e%-LEN(a$)*h%!qa%:PROCc(x%,h%!k%-h%!`%,a$,0,a%!q%) ENDIF ENDPROC DEFPROCk:LOCALJb%,Kb%,d$:Kb%=FNe(16):Jb%=0:Kb%!e%=FNc(20,1):Kb%!k%=FNc(10,2):Kb%!d%=FNh(Kb%,h%):Kb%!b%=0:IFa%!Jb%<0ORa%!Jb%>2THEN ERROR255,FNa(111)+" "+STR$(a%!Jb%) ENDIF d$=FNb(120+a%!Jb%):PROCa(d$,Kb%!d%,Kb%!b%):PROCb(Kb%):ENDPROC DEFPROCP:LOCALO%,sb%,tb%,Xa%:O%=ea%:sb%=ia%:tb%=ja%:Xa%=ka%:PROCB:PROCq:ENDPROC DEFPROCB:LOCALK%,Q%:f%!d%=50:f%!b%=550:f%!O%=0:f%!_%=0:f%!S%=3:f%!P%=f%!S%:f%!sb%=1:f%!tb%=f%!Va%:f%!Xa%=1:f%!e%=(f%!Va%*I%!e%)+((f%!Va%-1)*f%!Ua%):f%!k%=f%!Wa%*I%!k%:FORQ%=1TOf%!Va%:FORK%=1TOf%!Wa%:c%(Q%,K%)=((K%+1)/2)+(f%!O%*10):NEXTK%:NEXTQ%:ENDPROC DEFPROCq:LOCALK%,Q%,x%,y%,s%:s%=FNe(16):FORQ%=f%!sb%TOf%!tb%:x%=f%!d%+((Q%-1)*(I%!e%+f%!Ua%)):FORK%=f%!Xa%TOf%!Wa%:y%=f%!b%+((K%-1)*I%!k%):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:PROCia(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%!k%=I%!k%:PROCd(s%) ENDIF NEXTK%:NEXTQ%:PROCb(s%):ENDPROC DEFPROCia(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%!k%=I%!k%:PROCd(s%):PROCb(s%) ENDIF ENDPROC DEFPROCz:LOCALs%,i%:s%=FNe(16):FORi%=1TO3:f%!b%-=I%!k%/3:PROCq:NEXTi%:s%!d%=f%!d%:s%!b%=f%!b%+f%!k%:s%!e%=f%!e%:s%!k%=I%!k%:PROCd(s%):PROCb(s%):ENDPROC DEFPROCba:LOCALZ%,Lb%,F%,Mb%,Nb%,S%,i%,o$:S%=1:Ob%=24:Z%=FNe(28):Lb%=FNe(28):PROCd(f%):PROCd(o%):IFw%!A%THENPROCd(w%):w%!A%=FALSE IFm%!A%THENPROCd(m%):m%!A%=FALSE PROCja:PROCA:o%!d%=FNh(o%,h%):Z%!d%=0-I%!e%:Z%!b%=o%!b%:Z%!P%=S%:Lb%!d%=h%!e%:Lb%!b%=o%!b%:Lb%!P%=0-S%:B%!Y%=0:PROCg(T%!sa%):PROCh(B%!Y%):PROCp(B%!Oa%):PROCa(FNb(1),o%!d%,o%!b%):O%=0:Nb%=FALSE:REPEAT:Z%!d%+=Z%!P%:Z%!Ob%=Z%!d%+I%!e%:Lb%!d%+=Lb%!P% SYSFNd(6)TOF%:IFF%-Mb%>=50THENNb%=FNq(Nb%):Mb%=F% IFNb%THENo$=FNb(21)ELSEo$=FNb(20) PROCa(o$,Z%!d%,Z%!b%):PROCa(o$,Lb%!d%,Lb%!b%):PROCe(2):WAIT:UNTILZ%!Ob%>=o%!d%:FORi%=1TO10:PROCa(FNb(20),Z%!d%,Z%!b%):PROCa(FNb(20),Lb%!d%,Lb%!b%):PROCe(20):PROCa(FNb(21),Z%!d%,Z%!b%):PROCa(FNb(21),Lb%!d%,Lb%!b%):PROCe(20):WAIT:NEXTi%:PROCi(2):FORi%=1TO3 PROCa(FNb(2)+STR$(i%),o%!d%,o%!b%):PROCe(20):WAIT:NEXTi%:PROCe(20):PROCd(o%):PROCb(Z%):PROCb(Lb%):ENDPROC DEFPROCM:LOCALi%,mb%,Mb%:mb%=ga%:Mb%=ha%:FORi%=1TO10:a%(i%)=FNg(48,0):a%(i%)!e%=FNc(5,1):a%(i%)!k%=FNc(20,2):SYSFNd(6)TOa%(i%)!mb%:SYSFNd(6)TOa%(i%)!Mb%:a%(i%)!A%=FALSE:NEXTi%:ENDPROC DEFPROCda(p%):LOCALPb%,Qb%,Rb%,Sb%,x%,y%:LOCALO%,Tb%:O%=ea%:Tb%=fa%:Pb%=RND(10):Rb%=B%!Oa%+5:IFRb%>100THEN Rb%=100:IFB%!Oa%MOD10=0THENf%!Ya%+=1 ENDIF IFFNn(Rb%)ANDFNn(f%!Ya%)THEN IFc%(Pb%,f%!Xa%)>0THEN x%=f%!d%+(Pb%-1)*(I%!e%+f%!Ua%):y%=f%!b%+((f%!Xa%-1)*I%!k%)-I%!k%:Qb%=(I%!e%/2)-(a%(p%)!e%/2):a%(p%)!d%=x%+Qb%:a%(p%)!b%=y%:a%(p%)!A%=TRUE:a%(p%)!_%=FALSE:a%(p%)!Tb%=1:a%(p%)!O%=0:Sb%=4:IFFNn(25)THENa%(p%)!Tb%=2:Sb%=Sb%/2 a%(p%)!S%=Sb%:a%(p%)!P%=a%(p%)!S%:PROCi(3) ENDIF ENDIF ENDPROC DEFPROCea(p%):LOCALF%,O%,Mb%,Tb%,d$,r$:O%=ea%:Tb%=fa%:Mb%=ha%:SYSFNd(6)TOF%:IFF%-a%(p%)!Mb%>=40THEN a%(p%)!Mb%=F%:a%(p%)!O%+=1 ENDIF :IFa%(p%)!Tb%=1ANDa%(p%)!O%>1THEN a%(p%)!O%=0 ENDIF IFa%(p%)!Tb%=2ANDa%(p%)!O%>3THEN a%(p%)!O%=0 ENDIF r$=STR$(a%(p%)!O%):IFa%(p%)!Tb%=2ANDa%(p%)!O%=3THEN r$="1" ENDIF d$=FNb(30)+STR$(a%(p%)!Tb%)+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 DEFPROCfa(p%):LOCALi%:PROCi(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%=FNh(o%,h%):B%!Y%-=1:PROCh(B%!Y%):PROCd(a%(p%)):a%(p%)!A%=FALSE:PROCa(FNb(1),o%!d%,o%!b%):ENDPROC DEFPROCga(p%):LOCALTb%,mb%:Tb%=fa%:mb%=ga%:IFa%(p%)!Tb%=1THEN IFNOTa%(p%)!_%THEN a%(p%)!_%=TRUE:PROCj(5):d$=FNb(30)+"3":PROCa(d$,a%(p%)!d%,a%(p%)!b%):SYSFNd(6)TOa%(p%)!mb% ENDIF ENDIF PROCd(w%):w%!A%=FALSE:ENDPROC DEFPROCha(p%):LOCALmb%,F%:mb%=ga%:SYSFNd(6)TOF%:IFF%-a%(p%)!mb%>=40THEN PROCd(a%(p%)):a%(p%)!A%=FALSE ENDIF ENDPROC DEFPROCja:LOCALi%,vb%:vb%=52:FORi%=1TOa%!vb%:IFa%(i%)!A%THEN PROCd(a%(i%)):a%(i%)!A%=FALSE ENDIF NEXTi%:ENDPROC DEFPROCN:LOCALi%,x%,Ub%,Vb%,R%:Vb%=ea%:R%=56:Ma%!d%=0:Ma%!b%=0:Ma%!e%=FNc(30,1):Ma%!k%=FNc(15,2):Ub%=h%!e%/a%!R%:x%=Ub%-150:FORi%=1TOa%!R%:b%(i%)=FNg(48,0):b%(i%)!e%=Ma%!e%:b%(i%)!k%=Ma%!k%:b%(i%)!d%=x%+((i%-1)*Ub%) b%(i%)!b%=o%!b%+100:b%(i%)!A%=TRUE:b%(i%)!Vb%=0:NEXTi%:Ma%!d%=b%(1)!d%:Ma%!b%=b%(1)!b%:ENDPROC DEFPROCca:LOCALi%,Vb%,R%:Vb%=ea%:R%=56:FORi%=1TOa%!R%:b%(i%)!A%=TRUE:b%(i%)!Vb%=0:NEXTi%:ENDPROC DEFPROCy:LOCALi%,R%:R%=56:FORi%=1TOa%!R%:IFb%(i%)!A%THENPROCr(b%(i%)) NEXTi%:ENDPROC DEFPROCr(p%):LOCALWb%,Xb%,Yb%,L%,Vb%,q%,a$:Vb%=ea%:q%=84:Yb%=10-p%!Vb%:a$=STR$(Yb%):L%=LEN(a$):Wb%=p%!d%+FNm(L%,p%!e%):Xb%=p%!b%+(p%!k%/2)-(h%!`%/2):Xb%+=7:IFL%=1THENWb%-=7ELSEWb%-=15 PROCd(p%):PROCa(FNb(16),p%!d%,p%!b%):PROCc(Wb%,Xb%,a$,0,a%!q%):ENDPROC DEFPROCC(p%,Zb%):LOCALy%,Vb%:Vb%=ea%:ub%=fa%:b%(p%)!Vb%+=1:IFb%(p%)!Vb%>=10THEN PROCd(b%(p%)):b%(p%)!A%=FALSE ELSE:PROCd(b%(p%)):y%=b%(p%)!b%:IFZb%THENb%(p%)!b%+=5ELSEb%(p%)!b%-=5 PROCr(b%(p%)):b%(p%)!_%=TRUE:b%(p%)!b%=y%:SYSFNd(6)TOb%(p%)!ub% ENDIF ENDPROC DEFPROCA: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%=Ma%!e%:s%!k%=Ma%!k%:PROCd(s%) ENDIF NEXTi%:PROCb(s%):ENDPROC DEFFNw(f$):LOCALC%,_b%,`b%,ac%,bc%,cc%,Jb%,i%,g$:C%=FNI(f$):ac%=FNg(C%,0):PROCf(ac%,208,0):SYSFNd(3),16,f$,ac%,0:FORi%=0TO3:g$+=CHR$(ac%?i%):NEXTi%:IFg$="SQSH"THEN PRINTFNa(27)+"...":SYSFNd(7),1<<3,C%TO_b%,`b%:IF`b%=-1THEN`b%=ac%!4 bc%=FNg(_b%,0):PROCf(bc%,207,0):cc%=FNC(`b%+4):SYSFNd(7),1<<2,bc%,ac%+20,C%-20,cc%+4,`b%TOJb%:IFJb%<>0THENERROR255,FNa(114)+" "+STR$(Jb%) PROCf(bc%,0,1):PROCf(ac%,0,1):PROCb(bc%):PROCb(ac%) ELSE:cc%=FNC(C%+256):SYSwa%,256+10,cc%,f$ ENDIF SYSwa%,256+17,cc%:=cc% DEFFNC(C%):LOCALcc%:cc%=FNg(C%,0):cc%!0=C%:cc%!4=0:cc%!8=16:cc%!12=16:=cc% DEFPROCc(x%,y%,a$,dc%,ec%):LOCALi%,fc%,q%,gc%:q%=88:gc%=76:IFec%<>a%!80ANDec%<>a%!84THEN ERROR255,FNa(112) ENDIF a%!q%=ec%:fc%=h%!qa%:FORi%=1TOLEN(a$):PROCa(STR$(ASC(MID$(a$,i%,1))),x%+((i%-1)*fc%),y%):IFdc%>0THENPROCe(dc%) NEXTi%:a%!q%=a%!gc%:ENDPROC DEFPROCa(B$,x%,y%):LOCALhc%,q%:q%=88:SYSwa%,256+24,a%!q%,B$TO,,hc%:SYSwa%,512+34,a%!q%,hc%,x%,y%,0:ENDPROC DEFPROCd(G%):GCOL0,0TINT0:RECTANGLEFILLG%!d%,G%!b%,G%!e%,G%!k%:ENDPROC DEFFNm(ic%,h%):=(h%/2)-(ic%/2) DEFPROCu(a$,jc%):LOCALL%,x%,y%,q%:q%=80:L%=LEN(a$)*h%!qa%:x%=FNm(L%,h%!e%):y%=(h%!k%/2)-(h%!`%/2):PROCc(x%,y%,a$,jc%,a%!q%):ENDPROC DEFFNh(kc%,lc%):=(lc%!e%/2)-(kc%!e%/2) DEFPROCm(kc%,lc%):LOCALx%,y%:kc%!d%=(lc%!e%/2)-(kc%!e%/2):kc%!b%=(lc%!k%/2)-(kc%!k%/2):ENDPROC DEFPROCg(b%):LOCALi%,mc%:mc%=h%!e%/T%!e%:FORi%=1TOmc%+1:PROCa(FNb(108),(i%-1)*T%!e%,b%):NEXTi%:ENDPROC DEFPROCn(G%):LOCALx%,y%,nc%,oc%,pc%,qc%,i%:nc%=FNc(3,1):oc%=FNc(3,2):pc%=1:qc%=3:FORi%=1TOG%!e%:x%=G%!d%+((i%-1)*pc%):PROCa(FNb(113),x%,G%!b%):PROCa(FNb(113),x%,G%!b%+(G%!k%-(2*qc%))):NEXTi%:x%=G%!d%+(G%!e%-nc%):FORi%=1TOG%!k%-1 PROCa(FNb(114),G%!d%,G%!b%+((i%-1)*pc%)):PROCa(FNb(114),x%,G%!b%+((i%-1)*pc%)):NEXTi%:PROCa(FNb(111),G%!d%,G%!b%):PROCa(FNb(109),G%!d%,(G%!b%+G%!k%)-oc%):PROCa(FNb(112),G%!d%+(G%!e%-nc%),G%!b%):x%=(G%!d%+G%!e%)-nc%:y%=(G%!b%+G%!k%)-oc% PROCa(FNb(110),x%,y%):ENDPROC DEFFNs(f$,g$):LOCALv%,rc%,sc%,H%,e$:v%=OPENIN(f$):INPUT#v%,e$:e$=FND(e$):IFe$<>g$THENCLOSE#v%:ERROR255,"Bad Magic!" INPUT#v%,H%,sc%,sc%,rc%:CLOSE#v%:=rc%EORH% DEFFNt(f$,g$,RETURNk%(),RETURNh$()):LOCALv%,i%,rc%,H%,Ab%,zb%,V%,Bb%,e$:V%=0:v%=OPENIN(f$):INPUT#v%,e$:e$=FND(e$):IFe$<>g$THENCLOSE#v%:ERROR255,"Bad Magic!" INPUT#v%,H%,Ab%,zb%,rc%:Ab%=Ab%EORH%:zb%=zb%EORH%:rc%=rc%EORH%:FORi%=1TOrc%:INPUT#v%,k%(i%),h$(i%):NEXTi%:CLOSE#v%:FORi%=1TOrc%:V%+=LEN(h$(i%)):NEXTi%:Bb%=V%/rc%:IFV%<>Ab%ORBb%<>zb%THEN ERROR255,"File Inconsistant with header!" ENDIF =H% DEFFND(C$):LOCALi%,c$:FORi%=LEN(a$)TO1STEP-1:c$+=MID$(C$,i%,1):NEXTi%:=c$ DEFPROCs(tc%,H%,RETURNb$()):LOCALi%:FORi%=1TOtc%:b$(i%)=FNl(b$(i%),H%):NEXTi%:ENDPROC DEFFNa(uc%):LOCALH%:H%=a%!68:=FNv(uc%,ca%,h%(),g$(),H%,106) DEFFNb(uc%):=FNv(uc%,ta%,i%(),c$(),-1,107) DEFFNd(uc%):=FNv(uc%,ua%,j%(),d$(),-1,108) DEFFNf(uc%):=FNv(uc%,ba%,g%(),f$(),vc%,109) DEFFNv(uc%,tc%,l%(),b$(),H%,wc%):LOCALi%,xc%:xc%=0:FORi%=1TOtc%:IFl%(i%)=uc%THENxc%=i%:i%=tc% NEXTi%:IFxc%=0THEN IFuc%>=106ANDuc%<=108THEN ERROR255,"Missing message!!!" ELSE:IFwc%=109THEN ERROR255,"Can't find LibASH resource : "+STR$(uc%) ELSE:ERROR255,FNa(wc%)+" "+STR$(uc%) ENDIF ENDIF ENDIF IFH%=-1THEN=b$(xc%) =FNl(b$(xc%),H%) DEFFNE(f$):LOCALv%:v%=0:SYSFNd(31),,f$TOv%:=v% DEFPROCi(yc%):LOCALJb%,x$:Jb%=0:x$=FNa(110)+" "+STR$(yc%):IFa%!Jb%>0THEN IFyc%<1ANDyc%>4THENERROR255,x$ OSCLI"SPlay_fire0"+STR$(yc%)+"mhh" ENDIF ENDPROC DEFPROCt:LOCALs%:s%=FNe(20):s%!0=4:s%!4=5:s%!8=11:s%!12=12:s%!16=-1:SYSFNd(5),s%,s%:h%!na%=s%!0:h%!oa%=s%!4:h%!e%=(s%!8)+1<h%!pa%THENPROCt CASEzc%OF WHEN1:Ac%=C%<>h%!na% WHEN4:Ac%=C%>>h%!oa% OTHERWISE:ERROR255,FNa(103)+" "+STR$(zc%) ENDCASE =Ac% DEFFNo(G%,Cc%):LOCALDc%,Ec%,Fc%,Gc%:Fc%=FALSE:Gc%=FALSE:IFG%!A%ANDCc%!A%THEN Dc%=Cc%!d%+Cc%!e%:Ec%=Cc%!b%+Cc%!k%:IFG%!d%>=Cc%!d%ANDG%!d%=Cc%!b%ANDG%!b%-1THEN SYS"TimPlayer_SongStop",a%!4:SYS"TimPlayer_SongUnload",a%!4 ENDIF PROCv:ENDPROC DEFFNj(D$,y$):LOCALl$,t$,J%,xc%:l$=STRING$(10," "):RIGHT$(l$,3)=" : ":LEFT$(l$,LEN(y$))=y$:J%=FNr(D$):t$="Missing!!":xc%=FALSE:IFJ%=1THENt$="OK.":xc%=TRUE l$+=t$:PRINTl$:=xc% DEFPROCG:LOCALv%,cb%,hb%,Hc%,fb%,eb%:cb%=0:hb%=48:eb%=92:v%=OPENIN(h$+"Configs"):INPUT#v%,Hc%,fb%:CLOSE#v%:IFHc%>=0ANDHc%<=2THENa%!cb%=Hc% IFfb%>=0ANDfb%<=128THENa%!hb%=fb% a%!eb%=FALSE:ENDPROC DEFPROCL:LOCALv%,cb%,hb%,eb%:cb%=0:hb%=48:eb%=92:IFa%!eb%THEN v%=OPENOUT(h$+"Configs"):PRINT#v%,a%!cb%,a%!hb%:CLOSE#v% ENDIF ENDPROC DEFFNy(rc%):LOCALj$:j$="Dump"+STR$(rc%):IFFNr(q$+j$)<>0THEN REPEAT:rc%+=1:j$="Dump"+STR$(rc%):UNTILFNr(q$+j$)=0ORLEN(j$)>10:IFLEN(j$)>10THENrc%=-1 ENDIF =rc% DEFPROCf(D%,uc%,zc%):LOCALa$:IFzc%=0THENa$=FNa(200)ELSEa$=FNa(209) a$+=" &":PRINTa$;~FNx(D%);:PRINT" "+FNa(201)+" &";~D%;:IFzc%=0THEN a$=" "+FNa(202)+" "+FNa(uc%) ELSE:a$="." ENDIF PRINTa$:ENDPROC DEFPROCH:LOCALv%,V%,Bb%,Ab%,zb%,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%,Ab%,zb%:a%!C%=da%EORa%!U%:Ab%=Ab%EORa%!U%:zb%=zb%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%:Bb%=V%/a%!C%:IFBb%<>zb%ORV%<>Ab%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$,Ic%,A$,Jc%):LOCALKc%,c$:Kc%=Ic%-LEN(a$):IFKc%<=0THEN c$=LEFT$(a$,Ic%) ELSE:IFJc%THEN c$=STRING$(Ic%,A$):RIGHT$(c$,LEN(a$))=a$ ELSE:c$=a$+STRING$(Kc%,A$) ENDIF ENDIF =c$ DEFFNB(a$,Ic%):LOCALc$:c$=STRING$(Ic%," "):RIGHT$(c$,LEN(a$))=a$:=c$ DEFFNr(k$):LOCALxc%:SYS"XOS_File",17,k$TOxc%:=xc% DEFFNI(k$):LOCALC%:SYSFNd(3),17,k$TO,,,,C%:=C% DEFFNz(zc%,k$):LOCALv%,Lc%,Mc%,Nc%:Nc%=FALSE:CASEzc%OF WHEN0:v%=OPENUP(k$+"chkfile") WHEN1:v%=OPENUP(k$) OTHERWISE:ERROR255,FNa(104)+" "+STR$(zc%) ENDCASE IFv%<>0THEN SYSFNd(4),254,v%TOMc%;Lc%:IF(Lc%AND1)THENCLOSE#v%:ERROR255,FNa(105) IF((Mc%AND(1<<7))<>0)THENNc%=TRUE CLOSE#v% ENDIF =Nc% DEFPROCF(H%):LOCALOc%:Pc%=0:Qc%=0:vc%=H%:SYSFNf(210),-1,-1TORc%:SYSFNf(211)TOSc%;Oc%:IFOc%AND1THENSc%=16384 PROCka(Sc%):ENDPROC DEFPROCv:IFPc%THEN SYSFNf(210),Pc%-32768,-1TORc%:Pc%=0:Qc%=0 ENDIF ENDPROC DEFFNe(Tc%):LOCALD%,C%:C%=(Tc%+15)AND-4:D%=FNJ(C%):IFD%ELSEERROR254,FNf(110) D%!0=&DEADDEAD:D%!4=Tc%:!(D%-8+(D%!-4))=&DEADDEAD:=D%+8 DEFFNg(Tc%,Ib%):LOCALD%:D%=FNe(Tc%):PROCla(D%,Ib%):=D% DEFPROCb(RETURND%):CASEFNK(D%)OF WHEN1:ERROR254,FNf(111) WHEN2:ERROR254,FNf(112) WHEN3:ERROR254,FNf(113) ENDCASE D%-=8:Qc%-=D%!-4:SYSFNf(212),3,Pc%,D%:D%=0:ENDPROC DEFFNx(D%):LOCALs%:s%=D%-4:=s%!0 DEFPROCla(D%,Ib%):LOCALrb%,C%:C%=FNx(D%):FORrb%=0TOC%-4STEP4:D%!rb%=Ib%:NEXTrb%:ENDPROC DEFFNi(D%):LOCALUc%,rb%,C%:C%=FNx(D%):Uc%=FNe(C%):FORrb%=0TOC%-4STEP4:Uc%!rb%=D%!rb%:NEXTrb%:=Uc% DEFFNK(D%):LOCALHb%,Vc%:Hb%=FALSE:Vc%=FALSE:D%-=8:IFD%!0<>&DEADDEADTHENVc%=TRUE IF!(D%-8+(D%!-4))<>&DEADDEADTHENHb%=TRUE IFVc%ANDHb%THEN=3 IFHb%THEN=2 IFVc%THEN=1 =0 DEFPROCka(C%):IFPc%THENERROR254,FNf(114) C%=(C%+Sc%-1)ANDNOT(Sc%-1):Pc%=HIMEM:SYSFNf(210),Rc%+C%,-1TORc%:C%=Rc%+32768-Pc%:IFC%<1THEN Pc%=0:ERROR254,FNf(115) ELSE:SYSFNf(212),0,Pc%,,C% ENDIF Qc%=0:ENDPROC DEFPROCma(Tc%):LOCALWc%:Wc%=Rc%:SYSFNf(210),Rc%+Tc%,-1TORc%:Tc%=Rc%-Wc%:IFTc%THENSYSFNf(212),5,Pc%,,Tc%TO,,,Tc% ENDPROC DEFFNJ(Tc%):LOCALD%,Oc%:SYSFNf(213),2,Pc%,,Tc%TO,,D%;Oc%:IFOc%AND1THEN PROCma((Tc%+Sc%)ANDNOT(Sc%-1)):SYSFNf(213),2,Pc%,,Tc%TO,,D%;Oc%:IFOc%AND1THEN=0 ENDIF Qc%+=D%!-4:=D%