REM Acorn Invaders REM Packed by Make v1.41 15/5/08 On 18 Aug 2008 ONERRORPROCz:END MODE28:OFF:a$="Acorn Invaders. (c)2008 DynaByte Software":PRINTa$:PRINTSTRING$(LEN(a$),"-"):PRINT:k$=".Resources.":l$=k$+"Graphics.":b$=k$+"Data.":r$=k$+"Sound.":aa%=FALSE:PRINT"Checking files...":IFNOTFNj(l$+"Gfx0","Sprites")THENaa%=TRUE IFNOTFNj(l$+"Gfx1","Charset")THENaa%=TRUE IFNOTFNj(r$+"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%),b$(ba%):PROCl(b$+"Msg","SGSM",g%(),b$()):PRINTFNa(14):PRINTFNa(9)+" "+FNa(3);:ca%=FNs(b$+"ImgLUT","TULI"):DIMh%(ca%),c$(ca%):PROCl(b$+"ImgLUT","TULI",h%(),c$()):PRINTFNa(14) PRINTFNa(9)+" "+FNa(13);:da%=FNs(b$+"SWIs","TULS"):DIMi%(da%),d$(da%):PROCl(b$+"SWIs","TULS",i%(),d$()):PRINTFNa(14):PRINT:PRINTFNa(12):PRINTFNa(8)+" "+FNa(2):PROCA:f%=FNf(60,0):f%!0=1:f%!4=-1:f%!40=FNv(0):IFf%!40=-1THENERROR255,FNa(109) PRINTFNa(15)+STR$(f%!40):aa%=FALSE:f%!44=TRUE:f%!52=5:f%!56=5:ea%=0:DIMa$(10),d%(10):DIMe%(10):PRINTFNa(8)+" "+FNa(22):b%=0:a%=4:d%=8:m%=12:P%=16:Q%=20:w%=24:fa%=28:ga%=32:ha%=36:ia%=40:ja%=44:ka%=48:la%=52:ma%=56:na%=60:oa%=64 pa%=16:qa%=20:ra%=24:_%=28:W%=32:sa%=16:ta%=20:PRINT:PRINTFNa(8)+" "+FNa(1)+" ";:ua%=0:SYSFNc(30)TOua%:PRINTFNa(21)+" "+STR$(ua%/100):f%!4=FNA(r$+"Intro"):PRINT:PRINTFNa(17)+" "+FNa(16):SYSFNc(1),,FNc(2)TOva%:PRINTFNa(9)+" "+FNa(4);:wa%=FNw(l$+"Gfx0"):PRINTFNa(14) PRINTFNa(9)+" "+FNa(5);:xa%=FNw(l$+"Gfx1"):PRINTFNa(14):ya%=wa%:PRINT:PRINTFNa(9)+" "+FNa(6);:H%=OPENIN(b$+"Creds"):INPUT#H%,i$:IFi$<>"DERC"THEN CLOSE#H%:ERROR255,FNa(101):END ENDIF INPUT#H%,ea%:DIMe$(ea%),f%(ea%):FORi%=1TOea%:INPUT#H%,f%(i%),e$(i%):NEXTi%:CLOSE#H%:PRINTFNa(14):PRINT:PRINTFNa(7):t$=b$+"HiTable":IFFNq(t$)<>1THEN IFNOTFNx(0,k$)THEN f%!44=FALSE:PRINTFNa(19)+" "+FNa(10)+" "+FNa(20) ELSE:PRINTFNa(19)+" "+FNa(11)+" "+FNa(20) ENDIF PROCB(f%!44) ELSE:IFNOTFNx(1,t$)THEN f%!44=FALSE:PRINTFNa(18)+" "+FNa(10)+" "+FNa(20) ELSE:PRINTFNa(18)+" "+FNa(11)+" "+FNa(20) ENDIF PROCC ENDIF PRINT:PRINTFNa(12):PROCe(150):h%=FNe(36):S%=FNe(24):N%=FNe(16):CLS:PROCq:h%!_%=FNd(8,1):h%!W%=FNd(8,2)+7:S%!d%=FNd(6,1):S%!m%=FNd(6,2):S%!sa%=h%!m%-50:S%!ta%=30:SYSFNc(33),f%!4:SYSFNc(36),f%!4,128:WHILENOTFNB:CLS:PROCD:ENDWHILE CLS:N%!d%=220:N%!m%=40:N%=FNt(N%,h%):N%!a%-=3:PROCm(N%):PROCr(FNa(31),10):IFf%!0=1THEN SYSFNc(36),f%!4,-1TO,za%:FORi%=za%TO0STEP-2:SYSFNc(36),f%!4,i%:PROCe(4):NEXTi%:SYSFNc(35),f%!4:SYSFNc(32),f%!4:f%!4=-1 ENDIF PROCs:END DEFFNB:LOCALi%,J%,K%,C%,R%,k%,X%,Aa%,Ba%:LOCALo%,U%,Ca%,Da%,Ea%,`%,Fa%,Ga%,Ha%:LOCALx%,y%,L%,Ia%,s$,a$:Ia%=44:J%=FNf(16,0):K%=FNf(16,0):C%=FNf(16,0):k%=FNf(16,0):X%=FNf(16,0):U%=FNf(16,0):o%=FNf(16,0):J%!d%=FNd(100,1):J%!m%=FNd(40,2) J%!b%=FNg(J%,h%):J%!a%=800:K%!d%=FNd(150,1):K%!m%=FNd(40,2):K%!b%=FNg(K%,h%):K%!a%=J%!a%-K%!m%:C%!d%=720:C%!m%=500:C%!b%=FNg(C%,h%):C%!a%=200:k%!d%=FNd(40,1):k%!m%=FNd(20,2):k%!b%=(C%!b%+C%!d%/2)-150:k%!a%=(C%!a%+C%!m%)-125 o%!d%=FNd(30,1):o%!m%=FNd(15,2):X%!d%=FNd(20,1):X%!m%=FNd(20,2):X%!b%=(C%!b%+C%!d%/2)-150:X%!b%+=FNg(X%,k%):Aa%=FNh(X%):Ba%=FNh(X%)::Ba%!a%=k%!a%-40-Ba%!m%:Aa%!a%=Ba%!a%-40-Aa%!m%:X%!a%=Aa%!a%-40-X%!m% U%!d%=FNd(20,1):U%!m%=FNd(20,2):U%!b%=(C%!b%+C%!d%/2)-120:Ca%=FNh(U%):Da%=FNh(U%):Ea%=FNh(U%):Ea%!b%=C%!b%:Ja%=FNh(Ea%):Fa%=FNh(Ea%):`%=FNh(U%):`%!b%=C%!b%:`%!b%+=(C%!d%/2)+10:Ga%=FNh(`%):Ha%=FNh(`%) :U%!a%=(C%!a%+C%!m%)-120:Ca%!a%=U%!a%-60:Da%!a%=Ca%!a%-60:Fa%!a%=Da%!a%-90:Ja%!a%=Fa%!a%-60:Ea%!a%=Ja%!a%-60:`%!a%=Da%!a%-90:Ga%!a%=`%!a%-60:Ha%!a%=Ga%!a%-60:CLS:PROCf(S%!sa%):PROCf(S%!ta%):PROCj:FORi%=0-J%!d%TOJ%!b%STEP5 WAIT:PROCa(FNb(100),i%,J%!a%):PROCe(1):NEXTi%:FORi%=h%!d%TOK%!b%STEP-5:WAIT:PROCa(FNb(101),i%,K%!a%):PROCe(1):NEXTi%:a$=FNa(32):R%=LEN(a$)*h%!_%:y%=170:PROCb(FNl(R%,h%!d%),y%,a$,11):a$=FNa(33):R%=LEN(a$)*h%!_%:y%-=h%!W%:PROCb(FNl(R%,h%!d%),y%,a$,11) WHILENOTINKEY(-99)ANDNOTINKEY(-17)ANDNOTINKEY(-82):y%=C%!a%+C%!m%:FORi%=1TOea%:a$=FNp(e$(i%)):x%=FNi(a$):CASEf%(i%)OF WHEN-1:y%-=h%!W% WHEN-2:y%-=(2*h%!W%) OTHERWISE:y%-=f%(i%) ENDCASE PROCb(x%,y%,a$,0):NEXTi%:L%=FNr:IFL%=1THEN=TRUE IFL%=2THEN=FALSE PROCd(C%):a$=FNa(57)+" "+FNa(34):x%=FNi(a$):y%=C%!a%+C%!m%-20:PROCb(x%,y%,a$,0):a$=FNa(35):y%-=h%!W%:x%=FNi(a$):PROCb(x%,y%,a$,0):x%=k%!b%+k%!d%+10:PROCa(FNb(11),k%!b%,k%!a%):a$=FNa(36)+" "+FNa(40):PROCb(x%,k%!a%+10,a$,0) PROCa(FNb(24),Ba%!b%,Ba%!a%):a$=FNa(37)+" "+FNa(40):PROCb(x%,Ba%!a%+12,a$,0):PROCa(FNb(22),Aa%!b%,Aa%!a%):a$=FNa(38)+" "+FNa(40):PROCb(x%,Aa%!a%+12,a$,0):PROCa(FNb(20),X%!b%,X%!a%):a$=FNa(39)+" "+FNa(40):PROCb(x%,X%!a%+12,a$,0) R%=o%!d%/h%!_%+2:s$=FNa(66):a$=s$+STRING$(R%," ")+FNa(67):x%=FNi(a$):y%=X%!a%-(3*h%!W%):PROCb(x%,y%,a$,0):o%!b%=x%+7+(LEN(s$)*h%!_%):o%!a%=y%:PROCa(FNb(1),o%!b%,o%!a%):L%=FNr:IFL%=1THEN=TRUE IFL%=2THEN=FALSE PROCd(C%):a$=FNa(41):x%=FNi(a$):y%=C%!a%+C%!m%-20:PROCb(x%,y%,a$,0):x%=U%!b%+U%!d%+10:PROCa(FNb(102),U%!b%,U%!a%):a$=FNa(42)+" "+FNa(43):PROCb(x%,U%!a%+12,a$,0):PROCa(FNb(103),Ca%!b%,Ca%!a%):a$=FNa(42)+" "+FNa(44):PROCb(x%,Ca%!a%+12,a$,0) PROCa(FNb(104),Da%!b%,Da%!a%):PROCb(x%,Da%!a%+12,FNa(45),0):x%=Ea%!b%+Ea%!d%+10:PROCa(FNb(105),Ja%!b%,Ja%!a%):a$=FNa(46)+" "+FNa(49):PROCb(x%,Ja%!a%+12,a$,0):PROCa(FNb(117),Fa%!b%,Fa%!a%):PROCb(x%,Fa%!a%+12,FNa(76),0) PROCa(FNb(107),Ea%!b%,Ea%!a%):a$=FNa(48)+" "+FNa(49):PROCb(x%,Ea%!a%+12,a$,0):x%=`%!b%+`%!d%+10:PROCa(FNb(106),`%!b%,`%!a%):a$=FNa(47)+" "+FNa(73):PROCb(x%,`%!a%+12,a$,0):PROCa(FNb(115),Ga%!b%,Ga%!a%):a$=FNa(47)+" "+FNa(77)+" ":a$+=FNa(74) PROCb(x%,Ga%!a%+12,a$,0):PROCa(FNb(116),Ha%!b%,Ha%!a%):a$=FNa(47)+" "+FNa(77)+" ":a$+=FNa(75):PROCb(x%,Ha%!a%+12,a$,0):L%=FNr:IFL%=1THEN=TRUE IFL%=2THEN=FALSE PROCd(C%):a$=FNa(50):IFf%!Ia%THENa$=FNa(51) x%=FNi(a$):y%=C%!a%+C%!m%-20:PROCb(x%,y%,a$,0):a$=FNa(58)+" "+FNa(52):x%=FNi(a$):y%-=h%!W%:PROCb(x%,y%,a$,0):y%=(C%!a%+C%!m%)-100:a$=" "+FNa(68)+" "+FNa(69):a$+=STRING$(12," ")+FNa(57)+".":a$+=STRING$(3," ")+FNa(60)+".":x%=FNi(a$):PROCb(x%,y%,a$,0):y%-=2*h%!W% FORi%=1TO10:IFi%<10THEN a$=" "+STR$(i%)+". " ELSE:a$=" "+STR$(i%)+". " ENDIF s$=FNp(a$(i%)):a$+=FNm(s$,8," ",FALSE):a$+=" .... ":a$+=FNy(STR$(d%(i%)),10):a$+=" ... "+FNy(STR$(e%(i%)),3):x%=FNi(a$):PROCb(x%,y%-(i%*(h%!W%+5)),a$,0):NEXTi%:L%=FNr:IFL%=1THEN=TRUE IFL%=2THEN=FALSE PROCd(C%):ENDWHILE:ERROR255,FNa(102):=FALSE DEFFNr:LOCALt%,L%:t%=TIME+750:L%=FALSE:REPEAT:IFINKEY(-82)THENPROCt IFINKEY(-102)THENPROCu IFINKEY(-59)THENPROCk(4) IFINKEY(-60)THENPROCk(-4) UNTILTIME>=t%ORINKEY(-17)ORINKEY(-99):IFINKEY(-17)THENL%=1 IFINKEY(-99)THENL%=2 IFL%THEN PROCc(J%):PROCc(K%):PROCc(C%):PROCc(k%):PROCc(X%):PROCc(Aa%):PROCc(Ba%):PROCc(U%):PROCc(Ca%):PROCc(Da%):PROCc(Ea%):PROCc(`%):PROCc(Ja%):PROCc(Fa%):PROCc(Ga%):PROCc(Ha%):PROCc(o%) ENDIF =L% DEFFNi(a$):LOCALR%:R%=LEN(a$)*h%!_%:=C%!b%+FNl(R%,C%!d%) DEFPROCD:LOCALo%,v%,k%,e%,A%:LOCALG%:LOCALc%(),a%():LOCALb%():LOCALKa%,La%,Ma%,Na%:LOCALOa%,Pa%,Qa%:LOCALRa%:LOCALSa%,Ta%,Ua%,Va%,Wa%:LOCALXa%,R%,a$,x%,y%,i%,j%:o%=FNe(32):v%=FNe(28):k%=FNe(48):e%=FNe(68):G%=FNe(16):A%=FNf(16,0):DIMc%(10,6),a%(10),b%(f%!56) Ka%=0:La%=4:Ma%=8:Na%=12:Ra%=16:Oa%=28:Sa%=ha%:Ta%=ia%:Ua%=ja%:Va%=ma%:Wa%=na%:o%!d%=FNd(30,1):o%!m%=FNd(15,2):o%!b%=FNg(o%,h%):o%!a%=50:o%!Q%=6:o%!P%=o%!Q%:G%!d%=FNd(20,1):G%!m%=FNd(20,2) k%!d%=FNd(40,1):k%!m%=FNd(20,2):k%!a%=S%!sa%-(10+k%!m%):k%!Q%=5:k%!w%=FALSE:k%!ia%=1:v%!d%=FNd(5,1):v%!m%=FNd(20,2):v%!w%=FALSE:v%!Q%=10:A%!Ma%=1:A%!Ka%=3:A%!Na%=FALSE:f%!Ra%=-1:e%!Sa%=FNd(20,1):e%!Ta%=10:e%!Ua%=6:e%!w%=TRUE:e%!Wa%=4 SYSFNc(6)TOe%!oa%:PROCE:PROCF(f%!56):PROCf(S%!sa%):PROCf(S%!ta%):PROCG(0,d%(1),A%!Ka%,A%!Ma%):PROCH:PROCv(f%!56):PROCa(FNb(1),o%!b%,o%!a%):WHILEA%!Ka%>0:Xa%=FALSE:IFf%!Oa%=0THEN IFINKEY(-74)THENPROCI(o%!b%,o%!a%) IFINKEY(-98)THENPROCJ:Xa%=TRUE IFINKEY(-67)THENPROCK:Xa%=TRUE IFINKEY(-17)THENPROCL ENDIF IFINKEY(-102)THENPROCu IFINKEY(-82)THENPROCt IFINKEY(-56)THENPROCM IFINKEY(-59)THENPROCk(4) IFINKEY(-60)THENPROCk(-4) IFf%!Oa%=0THEN IFXa%THEN o%!b%+=o%!P%:PROCa(FNb(1),o%!b%,o%!a%) ENDIF ENDIF IFf%!Oa%=0THEN PROCN:PROCO:PROCP:PROCQ:PROCR:PROCS ELSE:PROCT ENDIF WAIT:ENDWHILE:N%!d%=240:N%!m%=40:N%=FNt(N%,h%):N%!a%-=3:PROCd(N%):PROCm(N%):a$=FNa(49)+" "+FNa(53):PROCr(a$,11):PROCe(750):IFNOTA%!Na%THEN IFA%!La%>=d%(10)THEN PROCU(A%) ENDIF ENDIF PROCc(o%):PROCc(e%):PROCc(k%):PROCc(v%):PROCc(A%):PROCc(G%):FORi%=1TO7:PROCc(a%(i%)):NEXTi%:FORi%=1TO4:PROCc(b%(i%)):NEXTi%:ENDPROC DEFPROCJ:IFo%!b%<=0THEN o%!b%=0 ELSE:o%!P%=0-o%!Q% ENDIF ENDPROC DEFPROCK:IFo%!b%>=h%!d%-o%!d%THEN o%!b%=h%!d%-o%!d% ELSE:o%!P%=0+o%!Q% ENDIF ENDPROC DEFPROCI(x%,y%):IFNOTv%!w%THEN v%!w%=TRUE:v%!b%=x%+(o%!d%/2):v%!a%=y%+o%!m%:PROCg(4) ENDIF ENDPROC DEFPROCt:LOCALT%,Ya%,u$:T%=40:Ya%=44:IFf%!Ya%THEN REPEAT:UNTILNOTINKEY(-82):f%!T%=FNv(f%!T%):IFf%!T%=-1THENERROR255,FNa(109) u$=".Screens.Dump"+STR$(f%!T%):OSCLI"ScreenSave "+u$ ENDIF ENDPROC DEFPROCL:LOCALi%:FORi%=1TO7:a%(i%)!w%=FALSE:NEXTi%:A%!Ka%=0:A%!Na%=TRUE:ENDPROC DEFPROCu:LOCALZa%,_a%:Za%=0:_a%=4:REPEAT:UNTILNOTINKEY(-102):f%!Za%+=1:IFf%!Za%>2THENf%!Za%=0 IFf%!Za%=1THEN SYSFNc(33),f%!_a% ELSE:SYSFNc(34),f%!_a% ENDIF PROCj:ENDPROC DEFPROCk(`a%):LOCALZa%,_a%,ab%,E%,za%,bb%:Za%=0:_a%=4:ab%=8:IFf%!Za%=1THEN SYSFNc(6)TOE%:IFE%-f%!ab%>=10THEN SYSFNc(36),f%!_a%,-1TO,za%:bb%=za%+`a%:IFbb%>=0ANDbb%<=128THEN SYSFNc(36),f%!_a%,bb%:f%!ab%=E% ENDIF ENDIF ENDIF ENDPROC DEFPROCM:LOCALOa%,Pa%,a$:Oa%=28:Pa%=32:REPEATUNTILNOTINKEY(-56):a$=FNa(49)+" "+FNa(61):f%!Oa%=FNn(f%!Oa%):f%!Pa%=f%!Oa%:IFf%!Oa%=0THEN a$=STRING$(LEN(a$)," "):PROCn(a$) ENDIF ENDPROC DEFPROCN:IFv%!w%THEN IFv%!a%>=S%!sa%-v%!m%THEN v%!w%=FALSE:v%!a%-=2:PROCd(v%) ELSE:PROCa(FNb(5),v%!b%,v%!a%) ENDIF v%!a%+=v%!Q% ENDIF ENDPROC DEFPROCO:LOCALcb%,db%,eb%,E%,Y%,d$:cb%=ga%:db%=ha%:eb%=ia%:IFNOTk%!w%THEN IFFNo(4)ANDFNo(5)THEN k%!w%=TRUE:k%!fa%=FALSE:k%!db%=0:IFFNo(50)THEN k%!P%=0-k%!Q%:k%!b%=h%!d% ELSE:k%!P%=0+k%!Q%:k%!b%=0-k%!d% ENDIF ENDIF ELSE:IFk%!b%<=0-k%!d%ANDSGN(k%!P%)=-1THEN k%!cb%=FALSE:k%!w%=FALSE:ENDPROC ENDIF IFk%!b%>h%!d%ANDSGN(k%!P%)=1THEN k%!cb%=FALSE:k%!w%=FALSE:ENDPROC ENDIF IFNOTk%!fa%THEN IFFNk(v%,k%)THEN PROCd(v%):PROCa(FNb(12),k%!b%,k%!a%):SYSFNc(6)TOk%!cb%:k%!fa%=TRUE:v%!w%=FALSE:PROCh(500) ENDIF ELSE:IFFNk(v%,k%)THEN PROCd(v%):v%!w%=FALSE ENDIF ENDIF IFNOTk%!fa%THEN SYSFNc(6)TOE%:IFE%-k%!eb%>=40THEN k%!eb%=E%:k%!db%=FNn(k%!db%) ENDIF d$=FNb(10)+STR$(k%!db%):PROCa(d$,k%!b%,k%!a%):k%!b%+=k%!P% ELSE:SYSFNc(6)TOE%:Y%=E%-k%!cb%:IFY%>=300THEN k%!w%=FALSE:k%!db%=1:PROCd(k%) ELSE:IFY%>=250THEN PROCa(FNb(15),k%!b%,k%!a%) ELSE:IFY%>=200THEN PROCa(FNb(14),k%!b%,k%!a%) ELSE:IFY%>=100THEN PROCa(FNb(13),k%!b%,k%!a%) ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDPROC DEFPROCP:LOCALfb%,z%,I%,O%,gb%,hb%,ib%,jb%:LOCALM%,kb%,lb%,E%,mb%,nb%,ob%:M%=ga%:kb%=ka%:lb%=la%:mb%=oa%:nb%=52:ob%=56:SYSFNc(6)TOE%:IFE%-e%!mb%>=50THEN e%!mb%=E%:e%!M%=FNn(e%!M%) ENDIF fb%=e%!b%+e%!d%:jb%=0-((e%!kb%-1)*(G%!d%+e%!Sa%)):IFfb%>=h%!d%THEN e%!P%=0-e%!Q%:PROCw ENDIF IFe%!b%<=jb%THEN e%!P%=0+e%!Q%:PROCw ENDIF jb%=e%!a%+((e%!Va%-1)*G%!m%):IFjb%<=o%!a%+o%!m%THEN PROCV:ENDPROC ENDIF IFFNk(v%,e%)THEN z%=G%!d%+e%!Sa%:IF(v%!b%-e%!b%)MODz%<=G%!d%THEN I%=((v%!a%-e%!a%)DIVG%!m%)+1:O%=((v%!b%-e%!b%)DIVz%)+1:IFSGN(c%(O%,I%))=1THEN c%(O%,I%)=-5:PROCd(v%):v%!w%=FALSE:e%!fa%+=1:PROCg(1):CASEI%OF WHEN1,2:PROCh(50) WHEN3,4:PROCh(75) WHEN5,6:PROCh(100) ENDCASE ENDIF ENDIF ENDIF IFe%!fa%>=e%!Ta%*e%!Ua%THEN A%!Ma%+=1:PROCd(e%):PROCf(S%!ta%):PROCi(A%!Ka%):PROCo(A%!Ma%):PROCj:PROCa(FNb(1),o%!b%,o%!a%):PROCW(f%!ob%):PROCv(f%!ob%):PROCx:IFA%!Ma%>5THENf%!nb%=7 IFA%!Ma%>10THENf%!nb%=10 ENDIF gb%=TRUE:hb%=TRUE:FORI%=1TOe%!Ua%:IFc%(e%!lb%,I%)<>0THENgb%=FALSE IFc%(e%!kb%,I%)<>0THENhb%=FALSE NEXTI%:ib%=TRUE:FORO%=1TOe%!Ta%:IFc%(O%,e%!Va%)<>0THENib%=FALSE NEXTO%:IFhb%THENe%!kb%+=1 IFgb%THEN e%!d%-=(G%!d%+e%!Sa%):e%!lb%-=1 ENDIF IFib%THENe%!Va%+=1 e%!b%+=e%!P%:PROCp:ENDPROC DEFPROCQ:LOCALi%,j%,E%,nb%,ob%:nb%=52:ob%=56:FORi%=1TOf%!nb%:IFNOTa%(i%)!w%THEN PROCX(i%) ELSE:PROCY(i%):IFa%(i%)!a%<=S%!ta%+(S%!m%+5)THEN a%(i%)!w%=FALSE:PROCd(a%(i%)) ENDIF IFFNk(a%(i%),o%)ANDa%(i%)!w%THEN PROCZ(i%) ENDIF FORj%=1TOf%!ob%:IFFNk(a%(i%),b%(j%))THEN PROCd(a%(i%)):a%(i%)!w%=FALSE ENDIF NEXTj%:IFFNk(v%,a%(i%))THEN PROC_(i%) ENDIF IFa%(i%)!fa%THEN PROC`(i%) ENDIF ENDIF NEXTi%:ENDPROC DEFPROCT:LOCALOa%,Pa%,Qa%,E%,a$:Oa%=28:Pa%=32:Qa%=36:SYSFNc(6)TOE%:IFE%-f%!Qa%>=50THEN f%!Pa%=FNn(f%!Pa%):f%!Qa%=E% ENDIF a$=FNa(49)+" "+FNa(61):IFf%!Pa%=0ORf%!Oa%=0THEN a$=STRING$(LEN(a$)," ") ENDIF PROCn(a$):ENDPROC DEFPROCS:LOCALRa%,pb%,qb%,E%,a$:Ra%=16:pb%=20:qb%=24:IFf%!Ra%>=0THEN SYSFNc(6)TOE%:a$=FNa(66)+" "+FNa(72):IFE%-f%!qb%>=50THEN f%!qb%=E%:f%!pb%=FNn(f%!pb%):IFf%!pb%=1THENf%!Ra%+=1 ENDIF IFf%!pb%=0THEN a$=STRING$(LEN(a$)," ") ENDIF IFf%!Ra%>5THEN a$=STRING$(LEN(a$)," "):f%!Ra%=-1 ENDIF PROCn(a$) ENDIF ENDPROC DEFPROCR:LOCALi%,j%,rb%:rb%=56:FORi%=1TOf%!rb%:IFFNk(v%,b%(i%))THEN PROCd(v%):v%!w%=FALSE ENDIF NEXTi%:ENDPROC DEFPROCB(sb%):LOCALi%,n$:FORi%=1TO10:IFi%MOD2=0THENn$=FNa(71)ELSEn$=FNa(70) a$(i%)=FNp(n$):d%(i%)=(11-i%)*1000:e%(i%)=0:NEXTi%:IFsb%THENPROCy ENDPROC DEFPROCC:LOCALi%,H%:H%=OPENIN(b$+"HiTable"):FORi%=1TO10:INPUT#H%,a$(i%),d%(i%),e%(i%):NEXTi%:CLOSE#H%:ENDPROC DEFPROCy:LOCALi%,H%:H%=OPENOUT(b$+"HiTable"):FORi%=1TO10:PRINT#H%,a$(i%),d%(i%),e%(i%):NEXTi%:CLOSE#H%:ENDPROC DEFPROCU(A%):LOCALK%,J%,tb%,g%,i%,ub%,R%,x%,y%,a$:LOCALIa%:J%=FNe(16):K%=FNe(16):Ia%=44:J%!d%=FNd(100,1):J%!m%=FNd(40,2):J%!b%=FNg(J%,h%):J%!a%=800:K%!d%=FNd(150,1):K%!m%=FNd(40,2):K%!b%=FNg(K%,h%):K%!a%=J%!a%-K%!m%:ub%=0:FORi%=10TO1STEP-1 IFA%!La%>=d%(i%)THENub%=i% NEXTi%:FORi%=9TOub%STEP-1:a$(i%+1)=a$(i%):d%(i%+1)=d%(i%):e%(i%+1)=e%(i%):NEXTi%:d%(ub%)=A%!La%:e%(ub%)=A%!Ma%:CLS:PROCf(S%!sa%):PROCf(S%!ta%):PROCa(FNb(100),J%!b%,J%!a%):PROCa(FNb(101),K%!b%,K%!a%):a$=FNa(54)+" "+STR$(A%!La%) a$+=" "+FNa(55)+" "+STR$(ub%)+FNC(ub%):R%=LEN(a$)*h%!_%:x%=FNl(R%,h%!d%):y%=K%!a%-170:PROCb(x%,y%,a$,0):PROCc(J%):PROCc(K%):N%!d%=165:N%!m%=40:N%=FNt(N%,h%):PROCm(N%):x%=N%!b%+20:y%=N%!a%+12:a$="":i%=1:tb%=FALSE OSCLI"FX 21,0":REPEAT:g%=GET:CASEg%OF WHEN13:tb%=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):IFa$<>""THENPROCb(x%,y%,a$,0) UNTILtb%:IFa$=""ORa$=" "THENa$=FNa(56) a$(ub%)=FNp(a$):IFf%!Ia%THENPROCy ENDPROC DEFFND(vb%):LOCALwb%:wb%=FALSE:IFvb%>=32ANDvb%<=126THENwb%=TRUE =wb% DEFPROCG(xb%,yb%,l%,r%):LOCALx%,a$:a$=FNa(57)+" "+FNa(59):a$+=FNm(STR$(xb%),10," ",TRUE):PROCb(0,h%!m%-h%!W%,a$,0):a$=FNa(58)+" "+FNa(57):a$+=" "+FNa(59)+FNm(STR$(yb%),10," ",TRUE):x%=h%!d%-LEN(a$)*h%!_%:PROCb(x%,h%!m%-h%!W%,a$,0):PROCi(l%):PROCo(r%):PROCj:ENDPROC DEFPROCi(T%):LOCALa$:PROCa(FNb(1),0,0):a$=" = "+STR$(T%):PROCb(o%!d%,0,a$,0):ENDPROC DEFPROCo(T%):LOCALx%,a$:a$=FNa(60)+" "+FNa(59):a$+=FNm(STR$(T%),3,"0",TRUE):x%=h%!d%-LEN(a$)*h%!_%:PROCb(x%,0,a$,0):ENDPROC DEFPROCn(a$):LOCALx%,y%,R%:R%=LEN(a$)*h%!_%:x%=FNl(R%,h%!d%):y%=h%!m%-h%!W%:PROCb(x%,y%,a$,0):ENDPROC DEFPROCh(zb%):LOCALAb%,Ra%,x%,a$:Ab%=12:Ra%=16:A%!La%+=zb%:a$=FNa(57)+" "+FNa(59):a$+=FNm(STR$(A%!La%),10," ",TRUE):PROCb(0,h%!m%-h%!W%,a$,0):IFA%!La%-f%!Ab%>=5000THEN A%!Ka%+=1:PROCi(A%!Ka%):f%!Ab%=A%!La%:f%!Ra%=0 ENDIF IFA%!La%>d%(1)THEN a$=FNa(58)+" "+FNa(57)+" ":a$+=FNa(59):a$+=FNm(STR$(A%!La%),10," ",TRUE):x%=h%!d%-LEN(a$)*h%!_%:PROCb(x%,h%!m%-h%!W%,a$,0) ENDIF ENDPROC DEFPROCj:LOCALBb%,Cb%,d$:Cb%=FNe(16):Bb%=0:Cb%!d%=FNd(20,1):Cb%!m%=FNd(10,2):Cb%!b%=FNg(Cb%,h%):Cb%!a%=0:IFf%!Bb%<0ORf%!Bb%>2THEN ERROR255,FNa(111)+" "+STR$(f%!Bb%) ENDIF d$=FNb(120+f%!Bb%):PROCa(d$,Cb%!b%,Cb%!a%):PROCc(Cb%):ENDPROC DEFPROCH:LOCALM%,kb%,lb%,Va%:M%=ga%:kb%=ka%:lb%=la%:Va%=ma%:PROCx:PROCp:ENDPROC DEFPROCx:LOCALI%,O%,s%:e%!b%=50:e%!a%=550:e%!M%=0:e%!fa%=0:e%!Q%=3:e%!P%=e%!Q%:e%!kb%=1:e%!lb%=e%!Ta%:e%!Va%=1:s%=(e%!Ta%*G%!d%)+((e%!Ta%-1)*e%!Sa%):e%!d%=s%:e%!m%=e%!Ua%*G%!m%:FORO%=1TOe%!Ta%:FORI%=1TOe%!Ua% c%(O%,I%)=((I%+1)/2)+(e%!M%*10):NEXTI%:NEXTO%:ENDPROC DEFPROCp:LOCALI%,O%,x%,y%,p%:p%=FNe(16):FORO%=e%!kb%TOe%!lb%:x%=e%!b%+((O%-1)*(G%!d%+e%!Sa%)):FORI%=e%!Va%TOe%!Ua%:y%=e%!a%+((I%-1)*G%!m%):IFc%(O%,I%)>0THEN c%(O%,I%)=((I%+1)/2)+(e%!M%*10) ENDIF IFc%(O%,I%)<>0THEN CASESGN(c%(O%,I%))OF WHEN-1:PROCaa(x%,y%,O%,I%) WHEN1:PROCa(FNb(27)+STR$(c%(O%,I%)),x%,y%) ENDCASE ELSE:p%!b%=x%:p%!a%=y%:p%!d%=G%!d%:p%!m%=G%!m%:PROCd(p%) ENDIF NEXTI%:NEXTO%:PROCc(p%):ENDPROC DEFPROCaa(x%,y%,r%,c%):LOCALp%:c%(r%,c%)+=1:PROCa(FNb(26),x%,y%):IFc%(r%,c%)=0THEN p%=FNe(16):p%!b%=x%:p%!a%=y%:p%!d%=G%!d%:p%!m%=G%!m%:PROCd(p%):PROCc(p%) ENDIF ENDPROC DEFPROCw:LOCALp%,i%:p%=FNe(16):FORi%=1TO3:e%!a%-=G%!m%/3:PROCp:NEXTi%:p%!b%=e%!b%:p%!a%=e%!a%+e%!m%:p%!d%=e%!d%:p%!m%=G%!m%:PROCd(p%):PROCc(p%):ENDPROC DEFPROCV:LOCALV%,Db%,E%,Eb%,Fb%,Q%,i%,o$:Q%=1:Gb%=24:V%=FNe(28):Db%=FNe(28):PROCd(e%):PROCd(o%):IFv%!w%THEN PROCd(v%):v%!w%=FALSE ENDIF IFk%!w%THEN PROCd(k%):k%!w%=FALSE ENDIF PROCba:PROCca(5):o%!b%=FNg(o%,h%):V%!b%=0-G%!d%:V%!a%=o%!a%:V%!P%=Q%:Db%!b%=h%!d%:Db%!a%=o%!a%:Db%!P%=0-Q%:A%!Ka%=0:PROCf(S%!ta%):PROCi(A%!Ka%):PROCo(A%!Ma%):PROCa(FNb(1),o%!b%,o%!a%):M%=0:Fb%=FALSE:REPEAT:V%!b%+=V%!P%:V%!Gb%=V%!b%+G%!d% Db%!b%+=Db%!P%:SYSFNc(6)TOE%:IFE%-Eb%>=50THENFb%=FNn(Fb%):Eb%=E% IFFb%THENo$=FNb(21)ELSEo$=FNb(20) PROCa(o$,V%!b%,V%!a%):PROCa(o$,Db%!b%,Db%!a%):PROCe(2):WAIT:UNTILV%!Gb%>=o%!b%:FORi%=1TO10:PROCa(FNb(20),V%!b%,V%!a%):PROCa(FNb(20),Db%!b%,Db%!a%):PROCe(20):PROCa(FNb(21),V%!b%,V%!a%):PROCa(FNb(21),Db%!b%,Db%!a%):PROCe(20):WAIT:NEXTi%:PROCg(2):FORi%=1TO3 PROCa(FNb(2)+STR$(i%),o%!b%,o%!a%):PROCe(20):WAIT:NEXTi%:PROCe(20):PROCd(o%):PROCc(V%):PROCc(Db%):ENDPROC DEFPROCE:LOCALi%,Y%,Eb%:Y%=ia%:Eb%=ja%:FORi%=1TO10:a%(i%)=FNf(48,0):a%(i%)!d%=FNd(5,1):a%(i%)!m%=FNd(20,2):SYSFNc(6)TOa%(i%)!Y%:SYSFNc(6)TOa%(i%)!Eb%:a%(i%)!w%=FALSE:NEXTi%:ENDPROC DEFPROCX(q%):LOCALHb%,Ib%,Jb%,Kb%,x%,y%:LOCALM%,Lb%:M%=ga%:Lb%=ha%:Hb%=RND(10):Jb%=A%!Ma%+5:IFJb%>100THEN Jb%=100:IFA%!Ma%MOD10=0THENe%!Wa%+=1 ENDIF IFFNo(Jb%)ANDFNo(e%!Wa%)THEN IFc%(Hb%,e%!Va%)>0THEN x%=e%!b%+(Hb%-1)*(G%!d%+e%!Sa%):y%=e%!a%+((e%!Va%-1)*G%!m%)-G%!m%:Ib%=(G%!d%/2)-(a%(q%)!d%/2):a%(q%)!b%=x%+Ib%:a%(q%)!a%=y%:a%(q%)!w%=TRUE:a%(q%)!fa%=FALSE:a%(q%)!Lb%=1:a%(q%)!M%=0:Kb%=4:IFFNo(25)THENa%(q%)!Lb%=2:Kb%=Kb%/2 a%(q%)!Q%=Kb%:a%(q%)!P%=a%(q%)!Q%:PROCg(3) ENDIF ENDIF ENDPROC DEFPROCY(q%):LOCALE%,M%,Eb%,Lb%,d$,p$:M%=ga%:Lb%=ha%:Eb%=ja%:SYSFNc(6)TOE%:IFE%-a%(q%)!Eb%>=40THEN a%(q%)!Eb%=E%:a%(q%)!M%+=1 ENDIF :IFa%(q%)!Lb%=1ANDa%(q%)!M%>1THEN a%(i%)!M%=0 ENDIF IFa%(q%)!Lb%=2ANDa%(q%)!M%>3THEN a%(q%)!M%=0 ENDIF p$=STR$(a%(q%)!M%):IFa%(q%)!Lb%=2ANDa%(q%)!M%=3THEN p$="1" ENDIF d$=FNb(30)+STR$(a%(q%)!Lb%)+p$:IFNOTa%(q%)!fa%THEN a%(q%)!a%-=a%(q%)!P%:PROCa(d$,a%(q%)!b%,a%(q%)!a%) ELSE:d$=FNb(30)+"3":PROCa(d$,a%(q%)!b%,a%(q%)!a%) ENDIF ENDPROC DEFPROCZ(q%):LOCALi%:PROCg(2):FORi%=1TO3:PROCa(FNb(2)+STR$(i%),o%!b%,o%!a%):PROCe(20):WAIT:NEXTi%:PROCd(o%):IFv%!w%THEN PROCd(v%):v%!w%=FALSE ENDIF o%!b%=FNg(o%,h%):A%!Ka%-=1:PROCi(A%!Ka%):PROCd(a%(q%)):a%(q%)!w%=FALSE:PROCa(FNb(1),o%!b%,o%!a%):ENDPROC DEFPROC_(q%):LOCALLb%,Y%:Lb%=ha%:Y%=ia%:IFa%(q%)!Lb%=1THEN IFNOTa%(q%)!fa%THEN a%(q%)!fa%=TRUE:PROCh(5):d$=FNb(30)+"3":PROCa(d$,a%(q%)!b%,a%(q%)!a%):SYSFNc(6)TOa%(q%)!Y% ENDIF ENDIF PROCd(v%):v%!w%=FALSE:ENDPROC DEFPROC`(q%):LOCALY%,E%:Y%=ia%:SYSFNc(6)TOE%:IFE%-a%(q%)!Y%>=40THEN PROCd(a%(q%)):a%(q%)!w%=FALSE ENDIF ENDPROC DEFPROCba:LOCALi%,Mb%:Mb%=52:FORi%=1TOf%!Mb%:IFa%(i%)!w%THEN PROCd(a%(i%)):a%(i%)!w%=FALSE ENDIF NEXTi%:ENDPROC DEFPROCF(T%):LOCALi%,x%,Nb%:Nb%=h%!d%/T%:x%=Nb%-150:FORi%=1TOT%:b%(i%)=FNf(48,0):b%(i%)!d%=FNd(30,1):b%(i%)!m%=FNd(15,2):b%(i%)!b%=x%+((i%-1)*Nb%):b%(i%)!a%=o%!a%+100:b%(i%)!w%=TRUE:NEXTi%:ENDPROC DEFPROCW(T%):LOCALi%:FORi%=1TOT%:b%(i%)!w%=TRUE:NEXTi%:ENDPROC DEFPROCv(T%):LOCALi%:FORi%=1TOT%:IFb%(i%)!w%THEN PROCa(FNb(16),b%(i%)!b%,b%(i%)!a%) ENDIF NEXTi%:ENDPROC DEFPROCca(T%):LOCALi%,p%:FORi%=1TOT%:b%(i%)!w%=FALSE:NEXTi%:p%=FNe(16):p%!b%=0:p%!a%=b%(1)!b%:p%!d%=h%!d%:p%!m%=b%(1)!m%:PROCd(p%):PROCc(p%):ENDPROC DEFFNw(e$):LOCALOb%,F%:F%=FNE(e$)+256:Ob%=FNe(F%):!Ob%=F%:Ob%!4=0:Ob%!8=16:Ob%!12=16:SYSva%,256+10,Ob%,e$:SYSva%,256+17,Ob%:=Ob% DEFPROCb(x%,y%,a$,Pb%):LOCALi%,Qb%:ya%=xa%:Qb%=h%!_%:FORi%=1TOLEN(a$):PROCa(STR$(ASC(MID$(a$,i%,1))),x%+((i%-1)*Qb%),y%):IFPb%>0THENPROCe(Pb%) NEXTi%:ya%=wa%:ENDPROC DEFPROCa(z$,x%,y%):LOCALRb%:SYSva%,256+24,ya%,z$TO,,Rb%:SYSva%,512+34,ya%,Rb%,x%,y%,0:ENDPROC DEFPROCd(D%):GCOL0,0TINT0:RECTANGLEFILLD%!b%,D%!a%,D%!d%,D%!m%:ENDPROC DEFFNl(Sb%,h%):=(h%/2)-(Sb%/2) DEFPROCr(a$,Tb%):LOCALR%,y%:R%=LEN(a$)*h%!_%:y%=(h%!m%/2)-(h%!W%/2):PROCb(FNl(R%,h%!d%),y%,a$,Tb%):ENDPROC DEFFNg(Ub%,Vb%):=(Vb%!d%/2)-(Ub%!d%/2) DEFFNt(Ub%,Vb%):LOCALx%,y%:Ub%!b%=(Vb%!d%/2)-(Ub%!d%/2):Ub%!a%=(Vb%!m%/2)-(Ub%!m%/2):=Ub% DEFPROCf(a%):LOCALi%,Wb%:Wb%=h%!d%/S%!d%:FORi%=1TOWb%+1:PROCa(FNb(108),(i%-1)*S%!d%,a%):NEXTi%:ENDPROC DEFPROCm(D%):LOCALx%,y%,Xb%,Yb%,Zb%,_b%,i%:Xb%=FNd(3,1):Yb%=FNd(3,2):Zb%=1:_b%=3:FORi%=1TOD%!d%:x%=D%!b%+((i%-1)*Zb%):PROCa(FNb(113),x%,D%!a%):PROCa(FNb(113),x%,D%!a%+(D%!m%-(2*_b%))):NEXTi%:x%=D%!b%+(D%!d%-Xb%):FORi%=1TOD%!m%-1 PROCa(FNb(114),D%!b%,D%!a%+((i%-1)*Zb%)):PROCa(FNb(114),x%,D%!a%+((i%-1)*Zb%)):NEXTi%:PROCa(FNb(111),D%!b%,D%!a%):PROCa(FNb(109),D%!b%,(D%!a%+D%!m%)-Yb%):PROCa(FNb(112),D%!b%+(D%!d%-Xb%),D%!a%):x%=(D%!b%+D%!d%)-Xb%:y%=(D%!a%+D%!m%)-Yb% PROCa(FNb(110),x%,y%):ENDPROC DEFFNs(e$,i$):LOCAL`b%,ac%,j$:`b%=OPENIN(e$):INPUT#`b%,j$:IFj$<>i$THENCLOSE#`b%:ERROR255,"Bad Magic!" INPUT#`b%,ac%:CLOSE#`b%:=ac% DEFPROCl(e$,i$,RETURNj%(),RETURNf$()):LOCAL`b%,i%,ac%,j$:`b%=OPENIN(e$):INPUT#`b%,j$:IFj$<>i$THENCLOSE#`b%:ERROR255,"Bad Magic!" INPUT#`b%,ac%:FORi%=1TOac%:INPUT#`b%,j%(i%),f$(i%):NEXTi%:CLOSE#`b%:ENDPROC DEFFNa(bc%):=FNu(bc%,ba%,g%(),b$(),106) DEFFNb(bc%):=FNu(bc%,ca%,h%(),c$(),107) DEFFNc(bc%):=FNu(bc%,da%,i%(),d$(),108) DEFFNu(bc%,cc%,k%(),g$(),dc%):LOCALi%,ec%:ec%=0:FORi%=1TOcc%:IFk%(i%)=bc%THENec%=i%:i%=cc% NEXTi%:IFec%=0THEN IFbc%>=106ANDbc%<=108THEN ERROR255,"Missing message!!!" ELSE:ERROR255,FNa(dc%)+" "+STR$(bc%) ENDIF ENDIF =FNp(g$(ec%)) DEFFNA(e$):LOCALH%:H%=0:SYSFNc(31),,e$TOH%:=H% DEFPROCg(fc%):LOCALBb%,v$:Bb%=0:v$=FNa(110)+" "+STR$(fc%):IFf%!Bb%>0THEN IFfc%<1ANDfc%>4THENERROR255,v$ OSCLI"SPlay_fire0"+STR$(fc%)+"mhh" ENDIF ENDPROC DEFPROCq:LOCALp%:p%=FNe(20):p%!0=4:p%!4=5:p%!8=11:p%!12=12:p%!16=-1:SYSFNc(5),p%,p%:h%!pa%=p%!0:h%!qa%=p%!4:h%!d%=(p%!8)+1<h%!ra%THENPROCq CASEgc%OF WHEN1:hc%=F%<>h%!pa% WHEN4:hc%=F%>>h%!qa% OTHERWISE:ERROR255,FNa(103)+" "+STR$(gc%) ENDCASE =hc% DEFFNk(D%,jc%):LOCALkc%,lc%,mc%,nc%:mc%=FALSE:nc%=FALSE:IFD%!w%ANDjc%!w%THEN kc%=jc%!b%+jc%!d%:lc%=jc%!a%+jc%!m%:IFD%!b%>=jc%!b%ANDD%!b%=jc%!a%ANDD%!a%-1THEN SYS"TimPlayer_SongStop",f%!4:SYS"TimPlayer_SongUnload",f%!4 ENDIF PROCs:ENDPROC DEFFNj(A$,w$):LOCALf$,L%,ec%:ec%=FALSE:f$=STRING$(10," "):RIGHT$(f$,3)=" : ":LEFT$(f$,LEN(w$))=w$:L%=FNq(A$):IFL%=1THEN f$+="OK.":ec%=TRUE ELSE:f$+="Missing!!" ENDIF PRINTf$:=ec% DEFFNv(ac%):LOCALg$,q$:q$=".Screens.":g$="Dump"+STR$(ac%):IFFNq(q$+g$)<>0THEN REPEAT:ac%+=1:g$="Dump"+STR$(ac%):UNTILFNq(q$+g$)=0ORLEN(g$)>10:IFLEN(g$)>10THENac%=-1 ENDIF =ac% DEFFNo(n%):LOCALoc%:oc%=RND(100):=oc%<=n% DEFFNp(a$):LOCALi%,x$:FORi%=1TOLEN(a$):x$+=CHR$(ASC(MID$(a$,i%,1))EOR131):NEXTi%:=x$ DEFPROCe(n%):LOCALt%:t%=TIME+n%:REPEAT:UNTILTIME>=t%:ENDPROC DEFFNn(n%):=n%EOR1 DEFFNC(n%):LOCALc$,u%:u%=VAL(RIGHT$(STR$(n%),1)):c$=FNa(65):IFu%>=1ANDu%<=3THENc$=FNa(u%+61) =c$ DEFFNm(a$,pc%,y$,qc%):LOCALrc%,c$:rc%=pc%-LEN(a$):IFrc%<=0THEN c$=LEFT$(a$,pc%) ELSE:IFqc%THEN c$=STRING$(pc%,y$):RIGHT$(c$,LEN(a$))=a$ ELSE:c$=a$+STRING$(rc%,y$) ENDIF ENDIF =c$ DEFFNy(a$,pc%):LOCALc$:c$=STRING$(pc%," "):RIGHT$(c$,LEN(a$))=a$:=c$ DEFFNq(h$):LOCALec%:SYS"XOS_File",17,h$TOec%:=ec% DEFFNE(h$):LOCALF%:SYSFNc(3),5,h$TO,,,,F%:=F% DEFFNx(gc%,h$):LOCALH%,sc%,tc%,uc%:uc%=FALSE:CASEgc%OF WHEN0:H%=OPENUP(h$+"chkfile") WHEN1:H%=OPENUP(h$) OTHERWISE:ERROR255,FNa(104)+" "+STR$(gc%) ENDCASE IFH%<>0THEN SYSFNc(4),254,H%TOtc%;sc%:IF(sc%AND1)THENCLOSE#H%:ERROR255,FNa(105) IF((tc%AND(1<<7))<>0)THENuc%=TRUE CLOSE#H% ENDIF =uc% DEFPROCA:LOCALvc%:wc%=0:xc%=0:SYSFNc(10),-1,-1TOyc%:SYSFNc(11)TOzc%;vc%:IFvc%AND1THENzc%=16384 PROCda(zc%):ENDPROC DEFPROCs:IFwc%THEN SYSFNc(10),wc%-32768,-1TOyc%:wc%=0:xc%=0 ENDIF ENDPROC DEFFNe(Z%):LOCALB%,F%:F%=(Z%+15)AND-4:B%=FNF(F%):IFB%ELSEERROR254,FNa(211) B%!0=&DEADDEAD:B%!4=Z%:!(B%-8+(B%!-4))=&DEADDEAD:=B%+8 DEFFNf(Z%,zb%):LOCALB%:B%=FNe(Z%):PROCea(B%,zb%):=B% DEFPROCc(RETURNB%):IFFNG(B%)THENERROR254,FNa(212) IFFNH(B%)THENERROR254,FNa(213) B%-=8:xc%-=B%!-4:SYSFNc(12),3,wc%,B%:B%=0:ENDPROC DEFFNz(B%):LOCALp%:p%=B%-4:=p%!0 DEFPROCea(B%,zb%):LOCALjb%,F%:F%=FNz(B%):FORjb%=0TOF%-4STEP4:B%!jb%=zb%:NEXTjb%:ENDPROC DEFFNh(B%):LOCALAc%,jb%,F%:F%=FNz(B%):Ac%=FNe(F%):FORjb%=0TOF%-4STEP4:Ac%!jb%=B%!jb%:NEXTjb%:=Ac% DEFFNG(B%):B%-=8:IFB%!0<>&DEADDEADTHEN=TRUE =FALSE DEFFNH(B%):B%-=8:IF!(B%-8+(B%!-4))<>&DEADDEADTHEN=TRUE =FALSE DEFPROCda(F%):IFwc%THENERROR254,FNa(215) F%=(F%+zc%-1)ANDNOT(zc%-1):wc%=HIMEM:SYSFNc(10),yc%+F%,-1TOyc%:F%=yc%+32768-wc%:IFF%<1THEN wc%=0:ERROR254,FNa(216) ELSE:SYSFNc(12),0,wc%,,F% ENDIF xc%=0:ENDPROC DEFPROCfa(Z%):LOCALBc%:Bc%=yc%:SYSFNc(10),yc%+Z%,-1TOyc%:Z%=yc%-Bc%:IFZ%THENSYSFNc(12),5,wc%,,Z%TO,,,Z% ENDPROC DEFFNF(Z%):LOCALB%,vc%:SYSFNc(13),2,wc%,,Z%TO,,B%;vc%:IFvc%AND1THEN PROCfa((Z%+zc%)ANDNOT(zc%-1)):SYSFNc(13),2,wc%,,Z%TO,,B%;vc%:IFvc%AND1THEN=0 ENDIF xc%+=B%!-4:=B%