REM Acorn Invaders REM Packed by Make v1.41 15/5/08 On 04 Jul 2008 ONERRORPROCx:END MODE28:OFF:a$="Acorn Invaders. (c)2008 DynaByte Software":PRINTa$:PRINTSTRING$(LEN(a$),"-"):PRINT:aa%=FALSE:b$=".Resources.":PRINT"Checking files...":IFNOTFNj(b$+"Gfx0","Sprites")THENaa%=TRUE IFNOTFNj(b$+"Gfx1","Charset")THENaa%=TRUE IFNOTFNj(b$+"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"):DIMf%(ba%),b$(ba%):PROCj(b$+"Msg","SGSM",f%(),b$()):PRINTFNa(14):PRINTFNa(9)+" "+FNa(3);:ca%=FNs(b$+"ImgLUT","TULI"):DIMg%(ca%),c$(ca%):PROCj(b$+"ImgLUT","TULI",g%(),c$()):PRINTFNa(14) PRINTFNa(9)+" "+FNa(13);:da%=FNs(b$+"SWIs","TULS"):DIMh%(da%),d$(da%):PROCj(b$+"SWIs","TULS",h%(),d$()):PRINTFNa(14):PRINTFNa(8)+" "+FNa(1):OSCLI"PlayVolume 0":OSCLI"Playmod "+b$+"Intro":OSCLI"PlayPause":PRINT:PRINTFNa(12):PRINTFNa(8)+" "+FNa(2) PROCy:o%=FNi(FNe(44),0):o%!0=1:o%!4=127:o%!40=FNv(0):IFo%!40=-1THENERROR255,FNa(109) PRINTFNa(15)+STR$(o%!40):aa%=FALSE:ea%=TRUE:fa%=0:DIMa$(10),c%(10):DIMd%(10):PRINT:PRINTFNa(17)+" "+FNa(16):SYSFNd(1),,FNd(2)TOga%:PRINTFNa(9)+" "+FNa(4);:ha%=FNw(b$+"Gfx0"):PRINTFNa(14):PRINTFNa(9)+" "+FNa(5);:ia%=FNw(b$+"Gfx1"):PRINTFNa(14):ja%=ha% PRINT:PRINTFNa(9)+" "+FNa(6);:_%=OPENIN(b$+"Creds"):INPUT#_%,i$:IFi$<>"DERC"THEN CLOSE#_%:ERROR255,FNa(101):END ENDIF INPUT#_%,fa%:DIMe$(fa%),e%(fa%):FORi%=1TOfa%:INPUT#_%,e%(i%),e$(i%):NEXTi%:CLOSE#_%:PRINTFNa(14):PRINT:PRINTFNa(7):p$=b$+"HiTable":IFFNq(p$)<>1THEN IFNOTFNx(0,b$)THEN ea%=FALSE:PRINTFNa(19)+" "+FNa(10)+" "+FNa(20) ELSE:PRINTFNa(19)+" "+FNa(11)+" "+FNa(20) ENDIF PROCz(ea%) ELSE:IFNOTFNx(1,p$)THEN ea%=FALSE:PRINTFNa(18)+" "+FNa(10)+" "+FNa(20) ELSE:PRINTFNa(18)+" "+FNa(11)+" "+FNa(20) ENDIF PROCA ENDIF PRINT:PRINTFNa(12):PROCe(150):b%=0:a%=4:e%=8:k%=12:M%=16:N%=20:B%=24:`%=28:ka%=32:la%=36:ma%=40:na%=44:oa%=48:pa%=52:qa%=56:ra%=60:sa%=64:ta%=16:ua%=20:va%=24:V%=28:T%=32:wa%=16:xa%=20:f%=FNe(36):Q%=FNe(24):K%=FNe(16) CLS:PROCo:f%!V%=FNc(8,1):f%!T%=FNc(8,2)+7:Q%!e%=FNc(6,1):Q%!k%=FNc(6,2):Q%!wa%=f%!k%-50:Q%!xa%=30:OSCLI"PlayVolume "+STR$(o%!4):OSCLI"PlayStart":WHILENOTFNA:CLS:PROCB:ENDWHILE:CLS:K%!e%=220:K%!k%=40:K%=FNt(K%,f%):K%!a%-=3:PROCk(K%):PROCp(FNa(31),10):IFo%!0=1THEN FORi%=o%!4TO1STEP-2:OSCLI"PlayVolume "+STR$(i%):PROCe(4):NEXTi%:OSCLI"PlayStop":OSCLI"PlayVolume 127" ENDIF PROCq:END DEFFNA:LOCALi%,H%,I%,v%,O%,h%,U%,ya%,za%:LOCALm%,R%,Aa%,Ba%,Ca%,W%,Da%,Ea%,Fa%:LOCALx%,y%,J%,s$,a$:H%=FNi(FNe(16),0):I%=FNi(FNe(16),0):v%=FNi(FNe(16),0):h%=FNi(FNe(16),0):U%=FNi(FNe(16),0):R%=FNi(FNe(16),0):m%=FNi(FNe(16),0) H%!e%=FNc(100,1):H%!k%=FNc(40,2):H%!b%=FNg(H%,f%):H%!a%=800:I%!e%=FNc(150,1):I%!k%=FNc(40,2):I%!b%=FNg(I%,f%):I%!a%=H%!a%-I%!k%:v%!e%=720:v%!k%=500:v%!b%=FNg(v%,f%):v%!a%=200:h%!e%=FNc(40,1):h%!k%=FNc(20,2) h%!b%=(v%!b%+v%!e%/2)-150:h%!a%=(v%!a%+v%!k%)-125:m%!e%=FNc(30,1):m%!k%=FNc(15,2):U%!e%=FNc(20,1):U%!k%=FNc(20,2):U%!b%=(v%!b%+v%!e%/2)-150:U%!b%+=FNg(U%,h%):ya%=FNf(U%):za%=FNf(U%)::za%!a%=h%!a%-40-za%!k%:ya%!a%=za%!a%-40-ya%!k% U%!a%=ya%!a%-40-U%!k%:R%!e%=FNc(20,1):R%!k%=FNc(20,2):R%!b%=(v%!b%+v%!e%/2)-120:Aa%=FNf(R%):Ba%=FNf(R%):Ca%=FNf(R%):Ca%!b%=v%!b%:Ga%=FNf(Ca%):Da%=FNf(Ca%):W%=FNf(R%):W%!b%=v%!b%:W%!b%+=(v%!e%/2)+10 Ea%=FNf(W%):Fa%=FNf(W%)::R%!a%=(v%!a%+v%!k%)-120:Aa%!a%=R%!a%-60:Ba%!a%=Aa%!a%-60:Da%!a%=Ba%!a%-90:Ga%!a%=Da%!a%-60:Ca%!a%=Ga%!a%-60:W%!a%=Ba%!a%-90:Ea%!a%=W%!a%-60:Fa%!a%=Ea%!a%-60:CLS:PROCf(Q%!wa%):PROCf(Q%!xa%) FORi%=0-H%!e%TOH%!b%STEP5:WAIT:PROCa(FNb(100),i%,H%!a%):PROCe(1):NEXTi%:FORi%=f%!e%TOI%!b%STEP-5:WAIT:PROCa(FNb(101),i%,I%!a%):PROCe(1):NEXTi%:a$=FNa(32):O%=LEN(a$)*f%!V%:y%=170:PROCb(FNl(O%,f%!e%),y%,a$,11):a$=FNa(33):O%=LEN(a$)*f%!V%:y%-=f%!T% PROCb(FNl(O%,f%!e%),y%,a$,11):WHILENOTINKEY(-99)ANDNOTINKEY(-17)ANDNOTINKEY(-82):y%=v%!a%+v%!k%:FORi%=1TOfa%:a$=FNo(e$(i%)):x%=FNh(a$):CASEe%(i%)OF WHEN-1:y%-=f%!T% WHEN-2:y%-=(2*f%!T%) OTHERWISE:y%-=e%(i%) ENDCASE PROCb(x%,y%,a$,0):NEXTi%:J%=FNr:IFJ%=1THEN=TRUE IFJ%=2THEN=FALSE PROCd(v%):a$=FNa(57)+" "+FNa(34):x%=FNh(a$):y%=v%!a%+v%!k%-20:PROCb(x%,y%,a$,0):a$=FNa(35):y%-=f%!T%:x%=FNh(a$):PROCb(x%,y%,a$,0):x%=h%!b%+h%!e%+10:PROCa(FNb(11),h%!b%,h%!a%):a$=FNa(36)+" "+FNa(40):PROCb(x%,h%!a%+10,a$,0) PROCa(FNb(24),za%!b%,za%!a%):a$=FNa(37)+" "+FNa(40):PROCb(x%,za%!a%+12,a$,0):PROCa(FNb(22),ya%!b%,ya%!a%):a$=FNa(38)+" "+FNa(40):PROCb(x%,ya%!a%+12,a$,0):PROCa(FNb(20),U%!b%,U%!a%):a$=FNa(39)+" "+FNa(40):PROCb(x%,U%!a%+12,a$,0) O%=m%!e%/f%!V%+2:s$=FNa(66):a$=s$+STRING$(O%," ")+FNa(67):x%=FNh(a$):y%=U%!a%-(3*f%!T%):PROCb(x%,y%,a$,0):m%!b%=x%+7+(LEN(s$)*f%!V%):m%!a%=y%:PROCa(FNb(1),m%!b%,m%!a%):J%=FNr:IFJ%=1THEN=TRUE IFJ%=2THEN=FALSE PROCd(v%):a$=FNa(41):x%=FNh(a$):y%=v%!a%+v%!k%-20:PROCb(x%,y%,a$,0):x%=R%!b%+R%!e%+10:PROCa(FNb(102),R%!b%,R%!a%):a$=FNa(42)+" "+FNa(43):PROCb(x%,R%!a%+12,a$,0):PROCa(FNb(103),Aa%!b%,Aa%!a%):a$=FNa(42)+" "+FNa(44):PROCb(x%,Aa%!a%+12,a$,0) PROCa(FNb(104),Ba%!b%,Ba%!a%):PROCb(x%,Ba%!a%+12,FNa(45),0):x%=Ca%!b%+Ca%!e%+10:PROCa(FNb(105),Ga%!b%,Ga%!a%):a$=FNa(46)+" "+FNa(49):PROCb(x%,Ga%!a%+12,a$,0):PROCa(FNb(117),Da%!b%,Da%!a%):PROCb(x%,Da%!a%+12,FNa(76),0) PROCa(FNb(107),Ca%!b%,Ca%!a%):a$=FNa(48)+" "+FNa(49):PROCb(x%,Ca%!a%+12,a$,0):x%=W%!b%+W%!e%+10:PROCa(FNb(106),W%!b%,W%!a%):a$=FNa(47)+" "+FNa(73):PROCb(x%,W%!a%+12,a$,0):PROCa(FNb(115),Ea%!b%,Ea%!a%):a$=FNa(47)+" "+FNa(77)+" ":a$+=FNa(74) PROCb(x%,Ea%!a%+12,a$,0):PROCa(FNb(116),Fa%!b%,Fa%!a%):a$=FNa(47)+" "+FNa(77)+" ":a$+=FNa(75):PROCb(x%,Fa%!a%+12,a$,0):J%=FNr:IFJ%=1THEN=TRUE IFJ%=2THEN=FALSE PROCd(v%):a$=FNa(50):IFea%THENa$=FNa(51) x%=FNh(a$):y%=v%!a%+v%!k%-20:PROCb(x%,y%,a$,0):a$=FNa(58)+" "+FNa(52):x%=FNh(a$):y%-=f%!T%:PROCb(x%,y%,a$,0):y%=(v%!a%+v%!k%)-100:a$=" "+FNa(68)+" "+FNa(69):a$+=STRING$(12," ")+FNa(57)+".":a$+=STRING$(3," ")+FNa(60)+".":x%=FNh(a$):PROCb(x%,y%,a$,0):y%-=2*f%!T% FORi%=1TO10:IFi%<10THEN a$=" "+STR$(i%)+". " ELSE:a$=" "+STR$(i%)+". " ENDIF s$=FNo(a$(i%)):a$+=FNm(s$,8," ",FALSE):a$+=" .... ":a$+=FNy(STR$(c%(i%)),10):a$+=" ... "+FNy(STR$(d%(i%)),3):x%=FNh(a$):PROCb(x%,y%-(i%*(f%!T%+5)),a$,0):NEXTi%:J%=FNr:IFJ%=1THEN=TRUE IFJ%=2THEN=FALSE PROCd(v%):ENDWHILE:ERROR255,FNa(102):=FALSE DEFFNr:LOCALt%,J%:t%=TIME+750:J%=FALSE:REPEAT:IFINKEY(-82)THENPROCr IFINKEY(-102)THENPROCs IFINKEY(-59)THENPROCi(2) IFINKEY(-60)THENPROCi(-2) UNTILTIME>=t%ORINKEY(-17)ORINKEY(-99):IFINKEY(-17)THENJ%=1 IFINKEY(-99)THENJ%=2 IFJ%THEN PROCc(H%):PROCc(I%):PROCc(v%):PROCc(h%):PROCc(U%):PROCc(ya%):PROCc(za%):PROCc(R%):PROCc(Aa%):PROCc(Ba%):PROCc(Ca%):PROCc(W%):PROCc(Ga%):PROCc(Da%):PROCc(Ea%):PROCc(Fa%):PROCc(m%) ENDIF =J% DEFFNh(a$):LOCALO%:O%=LEN(a$)*f%!V%:=v%!b%+FNl(O%,v%!e%) DEFPROCB:LOCALm%,p%,h%,d%,w%:LOCALF%:LOCALb%(),a%():LOCALHa%,Ia%,Ja%,Ka%:LOCALX%,La%,Ma%:LOCALNa%:LOCALOa%,Pa%,Qa%,Ra%,Sa%:LOCALTa%,O%,a$,x%,y%,i%,j%:m%=FNe(32):p%=FNe(40):h%=FNe(48):d%=FNe(68):F%=FNe(16):w%=FNe(16):DIMb%(10,6),a%(7) Ha%=0:Ia%=4:Ja%=8:Ka%=12:Na%=16:X%=28:Oa%=la%:Pa%=ma%:Qa%=na%:Ra%=qa%:Sa%=ra%:m%!e%=FNc(30,1):m%!k%=FNc(15,2):m%!b%=FNg(m%,f%):m%!a%=50:m%!N%=6:m%!M%=m%!N%:F%!e%=FNc(20,1):F%!k%=FNc(20,2) h%!e%=FNc(40,1):h%!k%=FNc(20,2):h%!a%=Q%!wa%-(10+h%!k%):h%!N%=5:h%!B%=FALSE:h%!ma%=1:p%!e%=FNc(5,1):p%!k%=FNc(20,2):p%!B%=FALSE:p%!N%=10:w%!Ja%=1:w%!Ha%=3:w%!Ka%=FALSE:o%!Na%=-1:d%!Oa%=FNc(20,1):d%!Pa%=10:d%!Qa%=6:d%!B%=TRUE:d%!Sa%=4 SYSFNd(6)TOd%!sa%:FORi%=1TO7:a%(i%)=FNe(48):PROCt(a%(i%),0):a%(i%)!e%=FNc(5,1):a%(i%)!k%=FNc(20,2):SYSFNd(6)TOa%(i%)!ma%:SYSFNd(6)TOa%(i%)!na%:NEXTi%:PROCf(Q%!wa%):PROCf(Q%!xa%):PROCC(0,c%(1),w%!Ha%,w%!Ja%):PROCD:PROCa(FNb(1),m%!b%,m%!a%) WHILEw%!Ha%>0:Ta%=FALSE:IFo%!X%=0THEN IFINKEY(-74)THENPROCE(m%!b%,m%!a%) IFINKEY(-98)THENPROCF:Ta%=TRUE IFINKEY(-67)THENPROCG:Ta%=TRUE IFINKEY(-17)THENPROCH ENDIF IFINKEY(-102)THENPROCs IFINKEY(-82)THENPROCr IFINKEY(-56)THENPROCI IFINKEY(-59)THENPROCi(2) IFINKEY(-60)THENPROCi(-2) IFo%!X%=0THEN IFTa%THEN m%!b%+=m%!M%:PROCa(FNb(1),m%!b%,m%!a%) ENDIF ENDIF IFo%!X%=0THEN PROCJ:PROCK:PROCL:PROCM:PROCN ELSE:PROCO ENDIF WAIT:ENDWHILE:K%!e%=240:K%!k%=40:K%=FNt(K%,f%):K%!a%-=3:PROCd(K%):PROCk(K%):a$=FNa(49)+" "+FNa(53):PROCp(a$,11):PROCe(750):IFNOTw%!Ka%THEN IFw%!Ia%>=c%(10)THEN PROCP(w%) ENDIF ENDIF PROCc(m%):PROCc(d%):PROCc(h%):PROCc(p%):PROCc(w%):PROCc(F%):FORi%=1TO7:PROCc(a%(i%)):NEXTi%:ENDPROC DEFPROCF:IFm%!b%<=0THEN m%!b%=0 ELSE:m%!M%=0-m%!N% ENDIF ENDPROC DEFPROCG:IFm%!b%>=f%!e%-m%!e%THEN m%!b%=f%!e%-m%!e% ELSE:m%!M%=0+m%!N% ENDIF ENDPROC DEFPROCE(x%,y%):IFNOTp%!B%THEN p%!B%=TRUE:p%!b%=x%+(m%!e%/2):p%!a%=y%+m%!k% ENDIF ENDPROC DEFPROCr:LOCALUa%,q$:Ua%=40:REPEAT:UNTILNOTINKEY(-82):o%!Ua%=FNv(o%!Ua%):IFo%!Ua%=-1THENERROR255,FNa(109) q$=".Screens.Dump"+STR$(o%!Ua%):OSCLI"ScreenSave "+q$:ENDPROC DEFPROCH:LOCALi%:FORi%=1TO7:a%(i%)!B%=FALSE:NEXTi%:w%!Ha%=0:w%!Ka%=TRUE:ENDPROC DEFPROCs:LOCALVa%:Va%=0:REPEAT:UNTILNOTINKEY(-102):o%!Va%=FNk(o%!Va%):IFo%!Va%=1THEN OSCLI"PlayStart" ELSE:OSCLI"PlayPause" ENDIF ENDPROC DEFPROCi(Wa%):LOCALVa%,Xa%,Ya%,C%:Va%=0:Xa%=4:Ya%=8:IFo%!Va%=1THEN SYSFNd(6)TOC%:IFC%-o%!Ya%>=10THEN IFo%!Xa%>=1ANDo%!Xa%<=127THEN o%!Xa%+=Wa%:o%!Ya%=C%:IFo%!Xa%<1THENo%!Xa%=1 IFo%!Xa%>127THENo%!Xa%=127 OSCLI"PlayVolume "+STR$(o%!Xa%) ENDIF ENDIF ENDIF ENDPROC DEFPROCI:LOCALX%,La%,a$:X%=28:La%=32:REPEATUNTILNOTINKEY(-56):a$=FNa(49)+" "+FNa(61):o%!X%=FNk(o%!X%):o%!La%=o%!X%:IFo%!X%=0THEN a$=STRING$(LEN(a$)," "):PROCl(a$) ENDIF ENDPROC DEFPROCJ:LOCALZa%,_a%:Za%=ka%:IFp%!B%THEN p%!Za%=FALSE:IFp%!a%>=Q%!wa%-p%!k%THEN p%!B%=FALSE:p%!Za%=TRUE ENDIF IFp%!Za%THEN _a%=FNf(p%):_a%!a%-=2:PROCd(_a%):PROCc(_a%) ELSE:PROCa(FNb(5),p%!b%,p%!a%) ENDIF p%!a%+=p%!N% ENDIF ENDPROC DEFPROCK:LOCAL`a%,ab%,bb%,C%,cb%,d$:`a%=ka%:ab%=la%:bb%=ma%:IFNOTh%!B%THEN IFFNn(4)ANDFNn(5)THEN h%!B%=TRUE:h%!`%=FALSE:h%!ab%=0:IFFNn(50)THEN h%!M%=0-h%!N%:h%!b%=f%!e% ELSE:h%!M%=0+h%!N%:h%!b%=0-h%!e% ENDIF ENDIF ELSE:IFh%!b%<=0-h%!e%ANDSGN(h%!M%)=-1THEN h%!`a%=FALSE:h%!B%=FALSE:ENDPROC ENDIF IFh%!b%>f%!e%ANDSGN(h%!M%)=1THEN h%!`a%=FALSE:h%!B%=FALSE:ENDPROC ENDIF IFNOTh%!`%THEN IFFNp(p%,h%)THEN PROCd(p%):PROCa(FNb(12),h%!b%,h%!a%):SYSFNd(6)TOh%!`a%:h%!`%=TRUE:p%!B%=FALSE:PROCg(500) ENDIF ELSE:IFFNp(p%,h%)THEN PROCd(p%):p%!B%=FALSE ENDIF ENDIF IFNOTh%!`%THEN SYSFNd(6)TOC%:IFC%-h%!bb%>=40THEN h%!bb%=C%:h%!ab%=FNk(h%!ab%) ENDIF d$=FNb(10)+STR$(h%!ab%):PROCa(d$,h%!b%,h%!a%):h%!b%+=h%!M% ELSE:SYSFNd(6)TOC%:cb%=C%-h%!`a%:IFcb%>=300THEN h%!B%=FALSE:h%!ab%=1:PROCd(h%) ELSE:IFcb%>=250THEN PROCa(FNb(15),h%!b%,h%!a%) ELSE:IFcb%>=200THEN PROCa(FNb(14),h%!b%,h%!a%) ELSE:IFcb%>=100THEN PROCa(FNb(13),h%!b%,h%!a%) ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDPROC DEFPROCL:LOCALdb%,z%,G%,L%,eb%,fb%,gb%,Y%:LOCALP%,hb%,ib%,C%,jb%:P%=ka%:hb%=oa%:ib%=pa%:jb%=sa%:SYSFNd(6)TOC%:IFC%-d%!jb%>=50THEN d%!jb%=C%:d%!P%=FNk(d%!P%) ENDIF db%=d%!b%+d%!e%:Y%=0-((d%!hb%-1)*(F%!e%+d%!Oa%)):IFdb%>=f%!e%THEN d%!M%=0-d%!N%:PROCu ENDIF IFd%!b%<=Y%THEN d%!M%=0+d%!N%:PROCu ENDIF Y%=d%!a%+((d%!Ra%-1)*F%!k%):IFY%<=m%!a%+m%!k%THEN PROCQ:ENDPROC ENDIF IFFNp(p%,d%)THEN z%=F%!e%+d%!Oa%:IF(p%!b%-d%!b%)MODz%<=F%!e%THEN G%=((p%!a%-d%!a%)DIVF%!k%)+1:L%=((p%!b%-d%!b%)DIVz%)+1:IFSGN(b%(L%,G%))=1THEN b%(L%,G%)=-5:PROCd(p%):p%!B%=FALSE:d%!`%+=1:CASEG%OF WHEN1,2:PROCg(50) WHEN3,4:PROCg(75) WHEN5,6:PROCg(100) ENDCASE ENDIF ENDIF ENDIF IFd%!`%>=d%!Pa%*d%!Qa%THEN w%!Ja%+=1:PROCd(d%):PROCf(Q%!xa%):PROCh(w%!Ha%):PROCm(w%!Ja%):PROCa(FNb(1),m%!b%,m%!a%):PROCv ENDIF eb%=TRUE:fb%=TRUE:FORG%=1TOd%!Qa%:IFb%(d%!ib%,G%)<>0THENeb%=FALSE IFb%(d%!hb%,G%)<>0THENfb%=FALSE NEXTG%:gb%=TRUE:FORL%=1TOd%!Pa%:IFb%(L%,d%!Ra%)<>0THENgb%=FALSE NEXTL%:IFfb%THENd%!hb%+=1 IFeb%THEN d%!e%-=(F%!e%+d%!Oa%):d%!ib%-=1 ENDIF IFgb%THENd%!Ra%+=1 d%!b%+=d%!M%:PROCn:ENDPROC DEFPROCM:LOCALP%,kb%,cb%,lb%,i%,j%,x%,y%:LOCALmb%,nb%,d$,l$,ob%,C%:P%=ka%:kb%=la%:cb%=ma%:pb%=na%:FORi%=1TO7:IFNOTa%(i%)!B%THEN mb%=RND(10):nb%=w%!Ja%+5:IFnb%>100THEN nb%=100:IFw%!Ja%MOD10=0THENd%!Sa%+=1 ENDIF IFFNn(nb%)ANDFNn(d%!Sa%)THEN IFb%(mb%,d%!Ra%)>0THEN x%=d%!b%+(mb%-1)*(F%!e%+d%!Oa%):y%=d%!a%+((d%!Ra%-1)*F%!k%)-F%!k%:ob%=(F%!e%/2)-(a%(i%)!e%/2):a%(i%)!b%=x%+ob%:a%(i%)!a%=y%:a%(i%)!B%=TRUE:a%(i%)!`%=FALSE:a%(i%)!kb%=1:a%(i%)!P%=0:lb%=4:IFFNn(25)THENa%(i%)!kb%=2:lb%=lb%/2 a%(i%)!N%=lb%:a%(i%)!M%=a%(i%)!N% ENDIF ENDIF ELSE:SYSFNd(6)TOC%:IFC%-a%(i%)!pb%>=40THEN a%(i%)!pb%=C%:a%(i%)!P%+=1 ENDIF IFa%(i%)!kb%=1ANDa%(i%)!P%>1THEN a%(i%)!P%=0 ENDIF IFa%(i%)!kb%=2ANDa%(i%)!P%>3THEN a%(i%)!P%=0 ENDIF l$=STR$(a%(i%)!P%):IFa%(i%)!kb%=2ANDa%(i%)!P%=3THENl$="1" d$=FNb(30)+STR$(a%(i%)!kb%)+l$:IFNOTa%(i%)!`%THEN a%(i%)!a%-=a%(i%)!M%:PROCa(d$,a%(i%)!b%,a%(i%)!a%) ELSE:d$=FNb(30)+"3":PROCa(d$,a%(i%)!b%,a%(i%)!a%) ENDIF IFa%(i%)!a%<=Q%!xa%+(Q%!k%+5)THEN a%(i%)!B%=FALSE:PROCd(a%(i%)) ENDIF IFFNp(a%(i%),m%)ANDa%(i%)!B%THEN FORj%=1TO3:PROCa(FNb(2)+STR$(j%),m%!b%,m%!a%):PROCe(20):WAIT:NEXTj%:PROCd(m%):IFp%!B%THEN PROCd(p%):p%!B%=FALSE ENDIF m%!b%=FNg(m%,f%):w%!Ha%-=1:PROCh(w%!Ha%):PROCd(a%(i%)):a%(i%)!B%=FALSE:PROCa(FNb(1),m%!b%,m%!a%) ENDIF IFFNp(p%,a%(i%))THEN IFa%(i%)!kb%=1THEN IFNOTa%(i%)!`%THEN a%(i%)!`%=TRUE:PROCg(5):d$=FNb(30)+"3":PROCa(d$,a%(i%)!b%,a%(i%)!a%):SYSFNd(6)TOa%(i%)!cb% ENDIF ENDIF PROCd(p%):p%!B%=FALSE ENDIF IFa%(i%)!`%THEN SYSFNd(6)TOC%:IFC%-a%(i%)!cb%>=40THEN PROCd(a%(i%)):a%(i%)!B%=FALSE ENDIF ENDIF ENDIF NEXTi%:ENDPROC DEFPROCO:LOCALX%,La%,Ma%,C%,a$:X%=28:La%=32:Ma%=36:SYSFNd(6)TOC%:IFC%-o%!Ma%>=50THEN o%!La%=FNk(o%!La%):o%!Ma%=C% ENDIF a$=FNa(49)+" "+FNa(61):IFo%!La%=0ORo%!X%=0THEN a$=STRING$(LEN(a$)," ") ENDIF PROCl(a$):ENDPROC DEFPROCN:LOCALNa%,qb%,rb%,C%,a$:Na%=16:qb%=20:rb%=24:IFo%!Na%>=0THEN SYSFNd(6)TOC%:a$=FNa(66)+" "+FNa(72):IFC%-o%!rb%>=50THEN o%!rb%=C%:o%!qb%=FNk(o%!qb%):IFo%!qb%=1THENo%!Na%+=1 ENDIF IFo%!qb%=0THEN a$=STRING$(LEN(a$)," ") ENDIF IFo%!Na%>5THEN a$=STRING$(LEN(a$)," "):o%!Na%=-1 ENDIF PROCl(a$) ENDIF ENDPROC DEFPROCz(sb%):LOCALi%,n$:FORi%=1TO10:IFi%MOD2=0THENn$=FNa(71)ELSEn$=FNa(70) a$(i%)=FNo(n$):c%(i%)=(11-i%)*1000:d%(i%)=0:NEXTi%:IFsb%THENPROCw ENDPROC DEFPROCA:LOCALi%,tb%:tb%=OPENIN".Resources.HiTable":FORi%=1TO10:INPUT#tb%,a$(i%),c%(i%):INPUT#tb%,d%(i%):NEXTi%:CLOSE#tb%:ENDPROC DEFPROCw:LOCALi%,tb%:tb%=OPENOUT".Resources.HiTable":FORi%=1TO10:PRINT#tb%,a$(i%),c%(i%):PRINT#tb%,d%(i%):NEXTi%:CLOSE#tb%:ENDPROC DEFPROCP(w%):LOCALI%,H%,ub%,g%,i%,vb%,O%,x%,y%,a$:H%=FNe(16):I%=FNe(16):H%!e%=FNc(100,1):H%!k%=FNc(40,2):H%!b%=FNg(H%,f%):H%!a%=800:I%!e%=FNc(150,1):I%!k%=FNc(40,2):I%!b%=FNg(I%,f%):I%!a%=H%!a%-I%!k%:vb%=0:FORi%=10TO1STEP-1 IFw%!Ia%>=c%(i%)THENvb%=i% NEXTi%:FORi%=9TOvb%STEP-1:a$(i%+1)=a$(i%):c%(i%+1)=c%(i%):d%(i%+1)=d%(i%):NEXTi%:c%(vb%)=w%!Ia%:d%(vb%)=w%!Ja%:CLS:PROCf(Q%!wa%):PROCf(Q%!xa%):PROCa(FNb(100),H%!b%,H%!a%):PROCa(FNb(101),I%!b%,I%!a%):a$=FNa(54)+" "+STR$(w%!Ia%) a$+=" "+FNa(55)+" "+STR$(vb%)+FNB(vb%):O%=LEN(a$)*f%!V%:x%=FNl(O%,f%!e%):y%=I%!a%-170:PROCb(x%,y%,a$,0):PROCc(H%):PROCc(I%):K%!e%=165:K%!k%=40:K%=FNt(K%,f%):PROCk(K%):x%=K%!b%+20:y%=K%!a%+12:a$="":i%=1:ub%=FALSE OSCLI"FX 21,0":REPEAT:g%=GET:CASEg%OF WHEN13:ub%=TRUE WHEN8:i%-=1:a$=LEFT$(a$,i%-1) OTHERWISE:IFi%<9ANDFNC(g%)THENi%+=1:a$+=CHR$(g%) ENDCASE IFi%<1THENi%=1 PROCb(x%,y%,STRING$(8," "),0):IFa$=""THEN PROCb(x%,y%," ",0) ELSE:PROCb(x%,y%,a$,0) ENDIF UNTILub%:IFa$=""ORa$=" "THENa$=FNa(56) a$(vb%)=FNo(a$):IFea%THENPROCw ENDPROC DEFFNC(wb%):LOCALZa%:Za%=FALSE:IFwb%>=32ANDwb%<=126THENZa%=TRUE =Za% DEFPROCC(xb%,yb%,l%,r%):LOCALx%,a$:a$=FNa(57)+FNm(STR$(xb%),10," ",TRUE):PROCb(0,f%!k%-f%!T%,a$,0):a$=FNa(58)+" "+FNa(57):a$+=" "+FNa(59)+FNm(STR$(yb%),10," ",TRUE):x%=f%!e%-LEN(a$)*f%!V%:PROCb(x%,f%!k%-f%!T%,a$,0):PROCh(l%):PROCm(r%):ENDPROC DEFPROCh(Ua%):LOCALa$:PROCa(FNb(1),0,0):a$=" = "+STR$(Ua%):PROCb(m%!e%,0,a$,0):ENDPROC DEFPROCm(Ua%):LOCALx%,a$:a$=FNa(60)+" "+FNa(59):a$+=FNm(STR$(Ua%),3,"0",TRUE):x%=f%!e%-LEN(a$)*f%!V%:PROCb(x%,0,a$,0):ENDPROC DEFPROCl(a$):LOCALx%,y%,O%:O%=LEN(a$)*f%!V%:x%=FNl(O%,f%!e%):y%=f%!k%-f%!T%:PROCb(x%,y%,a$,0):ENDPROC DEFPROCg(zb%):LOCALAb%,Na%,x%,a$:Ab%=12:Na%=16:w%!Ia%+=zb%:a$=FNa(57)+" "+FNa(59):a$+=FNm(STR$(w%!Ia%),10," ",TRUE):PROCb(0,f%!k%-f%!T%,a$,0):IFw%!Ia%-o%!Ab%>=5000THEN w%!Ha%+=1:PROCh(w%!Ha%):o%!Ab%=w%!Ia%:o%!Na%=0 ENDIF IFw%!Ia%>c%(1)THEN a$=FNa(58)+" "+FNa(57)+" ":a$+=FNa(59):a$+=FNm(STR$(w%!Ia%),10," ",TRUE):x%=f%!e%-LEN(a$)*f%!V%:PROCb(x%,f%!k%-f%!T%,a$,0) ENDIF ENDPROC DEFPROCD:LOCALP%,hb%,ib%,Ra%:P%=ka%:hb%=oa%:ib%=pa%:Ra%=qa%:PROCv:PROCn:ENDPROC DEFPROCv:LOCALG%,L%,s%:d%!b%=50:d%!a%=550:d%!P%=0:d%!`%=0:d%!N%=3:d%!M%=d%!N%:d%!hb%=1:d%!ib%=d%!Pa%:d%!Ra%=1:s%=(d%!Pa%*F%!e%)+((d%!Pa%-1)*d%!Oa%):d%!e%=s%:d%!k%=d%!Qa%*F%!k%:FORL%=1TOd%!Pa%:FORG%=1TOd%!Qa% b%(L%,G%)=((G%+1)/2)+(d%!P%*10):NEXTG%:NEXTL%:ENDPROC DEFPROCn:LOCALG%,L%,x%,y%,q%:q%=FNe(16):FORL%=d%!hb%TOd%!ib%:x%=d%!b%+((L%-1)*(F%!e%+d%!Oa%)):FORG%=d%!Ra%TOd%!Qa%:y%=d%!a%+((G%-1)*F%!k%):IFb%(L%,G%)>0THEN b%(L%,G%)=((G%+1)/2)+(d%!P%*10) ENDIF IFb%(L%,G%)<>0THEN CASESGN(b%(L%,G%))OF WHEN-1:PROCR(x%,y%,L%,G%) WHEN1:PROCa(FNb(27)+STR$(b%(L%,G%)),x%,y%) ENDCASE ELSE:q%!b%=x%:q%!a%=y%:q%!e%=F%!e%:q%!k%=F%!k%:PROCd(q%) ENDIF NEXTG%:NEXTL%:PROCc(q%):ENDPROC DEFPROCR(x%,y%,r%,c%):LOCALq%:b%(r%,c%)+=1:PROCa(FNb(26),x%,y%):IFb%(r%,c%)=0THEN q%=FNe(16):q%!b%=x%:q%!a%=y%:q%!e%=F%!e%:q%!k%=F%!k%:PROCd(q%):PROCc(q%) ENDIF ENDPROC DEFPROCu:LOCALq%,i%:q%=FNe(16):FORi%=1TO3:d%!a%-=F%!k%/3:PROCn:NEXTi%:q%!b%=d%!b%:q%!a%=d%!a%+d%!k%:q%!e%=d%!e%:q%!k%=F%!k%:PROCd(q%):PROCc(q%):ENDPROC DEFPROCQ:LOCALS%,Z%,C%,pb%,Bb%,N%,i%,k$:N%=1:Cb%=24:S%=FNe(28):Z%=FNe(28):PROCd(d%):PROCd(m%):IFp%!B%THEN PROCd(p%):p%!B%=FALSE ENDIF IFh%!B%THEN PROCd(h%):h%!B%=FALSE ENDIF FORi%=1TO7:IFa%(i%)!B%THEN PROCd(a%(i%)):a%(i%)!B%=FALSE ENDIF NEXTi%:m%!b%=FNg(m%,f%):S%!b%=0-F%!e%:S%!a%=m%!a%:S%!M%=N%:Z%!b%=f%!e%:Z%!a%=m%!a%:Z%!M%=0-N%:w%!Ha%=0:PROCf(Q%!xa%):PROCh(w%!Ha%):PROCm(w%!Ja%):PROCa(FNb(1),m%!b%,m%!a%):P%=0:Bb%=FALSE:REPEAT:S%!b%+=S%!M%:S%!Cb%=S%!b%+F%!e%:Z%!b%+=Z%!M% SYSFNd(6)TOC%:IFC%-pb%>=50THENBb%=FNk(Bb%):pb%=C% IFBb%THENk$=FNb(21)ELSEk$=FNb(20) PROCa(k$,S%!b%,S%!a%):PROCa(k$,Z%!b%,Z%!a%):PROCe(2):WAIT:UNTILS%!Cb%>=m%!b%:FORi%=1TO10:PROCa(FNb(20),S%!b%,S%!a%):PROCa(FNb(20),Z%!b%,Z%!a%):PROCe(20):PROCa(FNb(21),S%!b%,S%!a%):PROCa(FNb(21),Z%!b%,Z%!a%):PROCe(20):WAIT:NEXTi%:FORi%=1TO3 PROCa(FNb(2)+STR$(i%),m%!b%,m%!a%):PROCe(20):WAIT:NEXTi%:PROCe(20):PROCd(m%):PROCc(S%):PROCc(Z%):ENDPROC DEFFNw(e$):LOCALDb%,E%:E%=FND(e$)+256:Db%=FNe(E%):!Db%=E%:Db%!4=0:Db%!8=16:Db%!12=16:SYSga%,256+10,Db%,e$:SYSga%,256+17,Db%:=Db% DEFPROCb(x%,y%,a$,Eb%):LOCALi%,Fb%:ja%=ia%:Fb%=f%!V%:FORi%=1TOLEN(a$):PROCa(STR$(ASC(MID$(a$,i%,1))),x%+((i%-1)*Fb%),y%):IFEb%>0THENPROCe(Eb%) NEXTi%:ja%=ha%:ENDPROC DEFPROCa(v$,x%,y%):LOCALGb%:SYSga%,256+24,ja%,v$TO,,Gb%:SYSga%,512+34,ja%,Gb%,x%,y%,0:ENDPROC DEFPROCd(A%):GCOL0,0TINT0:RECTANGLEFILLA%!b%,A%!a%,A%!e%,A%!k%:ENDPROC DEFFNl(Hb%,f%):=(f%/2)-(Hb%/2) DEFPROCp(a$,Ib%):LOCALO%,y%:O%=LEN(a$)*f%!V%:y%=(f%!k%/2)-(f%!T%/2):PROCb(FNl(O%,f%!e%),y%,a$,Ib%):ENDPROC DEFFNg(Jb%,Kb%):=(Kb%!e%/2)-(Jb%!e%/2) DEFFNt(Jb%,Kb%):LOCALx%,y%:Jb%!b%=(Kb%!e%/2)-(Jb%!e%/2):Jb%!a%=(Kb%!k%/2)-(Jb%!k%/2):=Jb% DEFPROCf(a%):LOCALi%,Lb%:Lb%=f%!e%/Q%!e%:FORi%=1TOLb%+1:PROCa(FNb(108),(i%-1)*Q%!e%,a%):NEXTi%:ENDPROC DEFPROCk(A%):LOCALx%,y%,Mb%,Nb%,Ob%,Pb%,i%:Mb%=FNc(3,1):Nb%=FNc(3,2):Ob%=1:Pb%=3:FORi%=1TOA%!e%:x%=A%!b%+((i%-1)*Ob%):PROCa(FNb(113),x%,A%!a%):PROCa(FNb(113),x%,A%!a%+(A%!k%-(2*Pb%))):NEXTi%:x%=A%!b%+(A%!e%-Mb%):FORi%=1TOA%!k%-1 PROCa(FNb(114),A%!b%,A%!a%+((i%-1)*Ob%)):PROCa(FNb(114),x%,A%!a%+((i%-1)*Ob%)):NEXTi%:PROCa(FNb(111),A%!b%,A%!a%):PROCa(FNb(109),A%!b%,(A%!a%+A%!k%)-Nb%):PROCa(FNb(112),A%!b%+(A%!e%-Mb%),A%!a%):x%=(A%!b%+A%!e%)-Mb%:y%=(A%!a%+A%!k%)-Nb% PROCa(FNb(110),x%,y%):ENDPROC DEFFNs(e$,i$):LOCALQb%,Rb%,j$:Qb%=OPENIN(e$):INPUT#Qb%,j$:IFj$<>i$THENCLOSE#Qb%:ERROR255,"Bad Magic!" INPUT#Qb%,Rb%:CLOSE#Qb%:=Rb% DEFPROCj(e$,i$,RETURNi%(),RETURNf$()):LOCALQb%,i%,Rb%,j$:Qb%=OPENIN(e$):INPUT#Qb%,j$:IFj$<>i$THENCLOSE#Qb%:ERROR255,"Bad Magic!" INPUT#Qb%,Rb%:FORi%=1TORb%:INPUT#Qb%,i%(i%),f$(i%):NEXTi%:CLOSE#Qb%:ENDPROC DEFFNa(Sb%):=FNu(Sb%,ba%,f%(),b$(),106) DEFFNb(Sb%):=FNu(Sb%,ca%,g%(),c$(),107) DEFFNd(Sb%):=FNu(Sb%,da%,h%(),d$(),108) DEFFNu(Sb%,Tb%,j%(),g$(),Ub%):LOCALi%,Vb%:Vb%=0:FORi%=1TOTb%:IFj%(i%)=Sb%THENVb%=i%:i%=Tb% NEXTi%:IFVb%=0THENERROR255,FNa(Ub%)+" "+STR$(Sb%) =FNo(g$(Vb%)) DEFPROCo:LOCALq%:q%=FNe(20):q%!0=4:q%!4=5:q%!8=11:q%!12=12:q%!16=-1:SYSFNd(5),q%,q%:f%!ta%=q%!0:f%!ua%=q%!4:f%!e%=(q%!8)+1<f%!va%THENPROCo CASEWb%OF WHEN1:Xb%=E%<>f%!ta% WHEN4:Xb%=E%>>f%!ua% OTHERWISE:ERROR255,FNa(103)+" "+STR$(Wb%) ENDCASE =Xb% DEFFNp(A%,Zb%):LOCAL_b%,`b%,ac%,bc%:ac%=FALSE:bc%=FALSE:IFA%!B%ANDZb%!B%THEN _b%=Zb%!b%+Zb%!e%:`b%=Zb%!a%+Zb%!k%:IFA%!b%>=Zb%!b%ANDA%!b%<_b%THENac%=TRUE IFA%!a%>=Zb%!a%ANDA%!a%<`b%THENbc%=TRUE ENDIF =ac%ANDbc% DEFPROCx:LOCALm$:ONERROROFF m$=" Panic!!!":CASEERROF WHEN17:m$="Program Terminated." WHEN254:m$="ASH"+m$ WHEN255:m$="Game"+m$ OTHERWISE:m$="System"+m$ ENDCASE PRINTm$:PRINTSTRING$(LEN(m$),"="):PRINT:REPORT:PRINT" at line : ";ERL:OSCLI"PlayStop":PROCq:ENDPROC DEFFNj(w$,r$):LOCALf$,J%,Vb%:Vb%=FALSE:f$=STRING$(10," "):RIGHT$(f$,3)=" : ":LEFT$(f$,LEN(r$))=r$:J%=FNq(w$):IFJ%=1THEN f$+="OK.":Vb%=TRUE ELSE:f$+="Missing!!" ENDIF PRINTf$:=Vb% DEFFNv(Rb%):LOCALg$,o$:o$=".Screens.":g$="Dump"+STR$(Rb%):IFFNq(o$+g$)<>0THEN REPEAT:Rb%+=1:g$="Dump"+STR$(Rb%):UNTILFNq(o$+g$)=0ORLEN(g$)>10:IFLEN(g$)>10THENRb%=-1 ENDIF =Rb% DEFFNn(n%):LOCALcc%:cc%=RND(100):=cc%<=n% DEFFNo(a$):LOCALi%,t$:FORi%=1TOLEN(a$):t$+=CHR$(ASC(MID$(a$,i%,1))EOR131):NEXTi%:=t$ DEFPROCe(n%):LOCALt%:t%=TIME+n%:REPEAT:UNTILTIME>=t%:ENDPROC DEFFNk(n%):=n%EOR1 DEFFNB(n%):LOCALc$,u%:u%=VAL(RIGHT$(STR$(n%),1)):c$=FNa(65):IFu%>=1ANDu%<=3THENc$=FNa(u%+61) =c$ DEFFNm(a$,dc%,u$,ec%):LOCALfc%,c$:fc%=dc%-LEN(a$):IFfc%<=0THEN c$=LEFT$(a$,dc%) ELSE:IFec%THEN c$=STRING$(dc%,u$):RIGHT$(c$,LEN(a$))=a$ ELSE:c$=a$+STRING$(fc%,u$) ENDIF ENDIF =c$ DEFFNy(a$,dc%):LOCALc$:c$=STRING$(dc%," "):RIGHT$(c$,LEN(a$))=a$:=c$ DEFFNq(h$):LOCALVb%:SYS"XOS_File",17,h$TOVb%:=Vb% DEFFND(h$):LOCALE%:SYSFNd(3),5,h$TO,,,,E%:=E% DEFFNx(Wb%,h$):LOCAL_%,gc%,hc%,ic%:ic%=FALSE:CASEWb%OF WHEN0:_%=OPENUP(h$+"chkfile") WHEN1:_%=OPENUP(h$) OTHERWISE:ERROR255,FNa(104)+" "+STR$(Wb%) ENDCASE IF_%<>0THEN SYSFNd(4),254,_%TOhc%;gc%:IF(gc%AND1)THENCLOSE#_%:ERROR255,FNa(105) IF((hc%AND(1<<7))<>0)THENic%=TRUE CLOSE#_% ENDIF =ic% DEFPROCy:LOCALjc%:kc%=0:lc%=0:SYSFNd(10),-1,-1TOmc%:SYSFNd(11)TOnc%;jc%:IFjc%AND1THENnc%=16384 PROCS(nc%):ENDPROC DEFPROCq:IFkc%THEN SYSFNd(10),kc%-32768,-1TOmc%:kc%=0:lc%=0 ENDIF ENDPROC DEFFNe(oc%):LOCALD%,E%:E%=(oc%+15)AND-4:D%=FNE(E%):IFD%ELSEERROR254,FNa(111) D%!0=&DEADDEAD:D%!4=oc%:!(D%-8+(D%!-4))=&DEADDEAD:=D%+8 DEFPROCc(RETURND%):D%-=8:IFD%!0<>&DEADDEADTHENERROR254,FNa(112) IF!(D%-8+(D%!-4))<>&DEADDEADTHEN ERROR254,FNa(113) ENDIF lc%-=D%!-4:SYSFNd(12),3,kc%,D%:D%=0:ENDPROC DEFFNz(D%):LOCALq%:q%=D%-4:=q%!0 DEFFNi(D%,zb%):PROCt(D%,zb%):=D% DEFPROCt(D%,zb%):LOCALY%,E%:E%=FNz(D%):FORY%=0TOE%-4STEP4:D%!Y%=zb%:NEXTY%:ENDPROC DEFFNf(D%):LOCALpc%,Y%,E%:E%=FNz(D%):pc%=FNe(E%):FORY%=0TOE%-4STEP4:pc%!Y%=D%!Y%:NEXTY%:=pc% DEFPROCS(E%):IFkc%THENERROR254,FNa(115) E%=(E%+nc%-1)ANDNOT(nc%-1):kc%=HIMEM:SYSFNd(10),mc%+E%,-1TOmc%:E%=mc%+32768-kc%:IFE%<1THEN kc%=0:ERROR254,FNa(116) ELSE:SYSFNd(12),0,kc%,,E% ENDIF lc%=0:ENDPROC DEFPROCT(oc%):LOCALqc%:qc%=mc%:SYSFNd(10),mc%+oc%,-1TOmc%:oc%=mc%-qc%:IFoc%THENSYSFNd(12),5,kc%,,oc%TO,,,oc% ENDPROC DEFFNE(oc%):LOCALD%,jc%:SYSFNd(13),2,kc%,,oc%TO,,D%;jc%:IFjc%AND1THEN PROCT((oc%+nc%)ANDNOT(nc%-1)):SYSFNd(13),2,kc%,,oc%TO,,D%;jc%:IFjc%AND1THEN=0 ENDIF lc%+=D%!-4:=D%