REM Acorn Invaders REM Squished by MH's BASIC cruncher v1.30 16/9/89 On 18 Jan 2008 ONERRORREPORT:PRINT" at line ";ERL:END aa%=FALSE:ba%=TRUE:ca%=0:DIMa$(10),a%(10):DIMc%(10):SYS"OS_SWINumberFromString",,"OS_SpriteOp"TOda%:ea%=FNk(".Resources.Gfx0"):ea%+=256:DIMM% ea%:!M%=ea%:M%!4=0:M%!8=16:M%!12=16:f$=".Resources.Gfx0" IFFNe(f$)<>1THENERROR255,"File Missing!!" SYSda%,256+10,M%,f$:SYSda%,256+17,M%:IFFNe(".Resources.HiTable")<>1THEN IFNOTFNlTHENba%=FALSE ELSE:PROCj ENDIF c%=0:d%=4:e%=8:h%=12:B%=16:C%=20:u%=24:V%=28:fa%=32:ga%=36:ha%=40:ia%=44:ja%=48:ka%=16:la%=20:ma%=24:z%=28:H%=32:W%=fa%:na%=ga%:DIMb% 36,E% 52:MODE28:OFF:PROCg:b%!z%=FNa(8,1):b%!H%=FNa(8,2)+7:E%!e%=FNa(6,1):E%!h%=FNa(6,2):E%!W%=b%!h%-50:E%!na%=30 REPEAT:CLS:aa%=FNm:IFNOTaa%THENCLS:PROCk UNTILaa%:CLS:PROCh("GOODBYE!!!",10):END DEFFNm:LOCALi%,J%,K%,j%,o%,a$,x%,a%,D%,N%:LOCALX%,t%,y%,s$:DIMJ% 16,K% 16,j% 16:DIMa% 16,D% 16:J%!e%=FNa(100,1):J%!h%=FNa(40,2):J%!c%=FNd(J%,b%):J%!d%=800:K%!e%=FNa(150,1):K%!h%=FNa(40,2):K%!c%=FNd(K%,b%):K%!d%=J%!d%-K%!h% j%!e%=630:j%!h%=500:j%!c%=FNd(j%,b%):j%!d%=200:a%!e%=FNa(40,1):a%!h%=FNa(20,2):a%!c%=j%!c%+150:a%!d%=(j%!d%+j%!h%)-160:D%!e%=FNa(20,1):D%!h%=FNa(20,2):D%!c%=j%!c%+150+FNd(D%,a%):N%=FNf(D%,16):X%=FNf(D%,16) D%!d%=j%!d%+100:N%!d%=D%!d%+D%!h%+40:X%!d%=N%!d%+N%!h%+40:PROCd(E%!W%):PROCd(E%!na%):FORi%=0-J%!e%TOJ%!c%STEP5:PROCa("space",i%,J%!d%):PROCe(1):NEXTi%:FORi%=b%!e%TOK%!c%STEP-5:PROCa("invaders",i%,K%!d%):PROCe(1):NEXTi%:a$="PRESS SPACE TO PLAY" o%=LEN(a$)*b%!z%:y%=170:PROCb(FNb(o%,b%!e%),y%,a$,11):a$="OR Q TO QUIT":o%=LEN(a$)*b%!z%:y%-=b%!H%:PROCb(FNb(o%,b%!e%),y%,a$,11):WHILENOTINKEY(-99)ANDNOTINKEY(-17)ANDNOTINKEY(-82):PROCc(j%):a$="SCORE ADVANCE":o%=LEN(a$)*b%!z%:x%=j%!c%+FNb(o%,j%!e%):y%=j%!d%+j%!h%-20 PROCb(x%,y%,a$,0):a$="TABLE":y%-=b%!H%:o%=LEN(a$)*b%!z%:x%=j%!c%+FNb(o%,j%!e%):PROCb(x%,y%,a$,0):x%=a%!c%+a%!e%+10:PROCa("saucer_0",a%!c%,a%!d%):PROCb(x%,a%!d%+10,"= 500 POINTS !",0):PROCa("inv_3",X%!c%,X%!d%):PROCb(x%,X%!d%+20,"= 100 POINTS !",0) PROCa("inv_2",N%!c%,N%!d%):PROCb(x%,N%!d%+20,"= 75 POINTS !",0):PROCa("inv_1",D%!c%,D%!d%):PROCb(x%,D%!d%+20,"= 50 POINTS !",0):t%=TIME+750:REPEAT:UNTILTIME=t%ORINKEY(-17)ORINKEY(-99):IFINKEY(-17)THEN=TRUE IFINKEY(-99)THEN=FALSE IFINKEY(-82)THENPROCf PROCc(j%):a$="TODAY'S":IFba%THENa$="ALL TIME" o%=LEN(a$)*b%!z%:x%=j%!c%+FNb(o%,j%!e%):y%=j%!d%+j%!h%-20:PROCb(x%,y%,a$,0):a$="HI SCORES":y%-=b%!H%:o%=LEN(a$)*b%!z%:x%=j%!c%+FNb(o%,j%!e%):PROCb(x%,y%,a$,0):y%=(j%!d%+j%!h%)-100:a$=" POS."+STRING$(21," ")+"SCORE."+STRING$(3," ")+"RACK." o%=LEN(a$)*b%!z%:x%=j%!c%+FNb(o%,j%!e%):PROCb(x%,y%,a$,0):y%-=2*b%!H%:FORi%=1TO10:IFi%<10THEN a$=" "+STR$(i%)+". " ELSE:a$=" "+STR$(i%)+". " ENDIF s$=FNi(a$(i%)):a$+=FNc(s$,8," ",FALSE):a$+=" .... ":a$+=FNj(STR$(a%(i%)),10):a$+=" ... "+FNj(STR$(c%(i%)),3):o%=LEN(a$)*b%!z%:x%=j%!c%+FNb(o%,j%!e%):PROCb(x%,y%-(i%*(b%!H%+5)),a$,0):NEXTi%:t%=TIME+750:REPEAT:UNTILTIME=t%ORINKEY(-17)ORINKEY(-99) IFINKEY(-17)THEN=TRUE IFINKEY(-99)THEN=FALSE IFINKEY(-82)THENPROCf ENDWHILE:IFINKEY(-17)THEN=TRUE =FALSE DEFPROCk:LOCALk%,m%,a%,g%,F%:LOCALI%:LOCALb%():LOCALY%,oa%,O%,Z%:LOCAL_%,o%,a$,x%,y%:DIMk% 52,m% 52,a% 52,g% 52,I% 16,b%(10,6):DIMF% 12:Y%=0:`%=4:oa%=8:O%=fa%:Z%=ga%:q%=ha%:S%=ia%:pa%=ja%:k%!e%=FNa(30,1):k%!h%=FNa(15,2):k%!c%=FNd(k%,b%) k%!d%=50:k%!C%=6:k%!B%=k%!C%:m%!e%=FNa(5,1):m%!h%=FNa(20,2):m%!u%=FALSE:m%!C%=10:a%!e%=FNa(40,1):a%!h%=FNa(20,2):a%!d%=E%!W%-(10+a%!h%):a%!C%=5:a%!u%=FALSE:a%!ia%=TRUE:I%!e%=FNa(20,1):I%!h%=FNa(20,2) g%!Z%=FNa(20,1):g%!S%=10:g%!pa%=6:F%!oa%=1:F%!`%=0:F%!Y%=3:PROCd(E%!W%):PROCd(E%!na%):PROCl(0,a%(1),F%!Y%,F%!oa%):PROCm:PROCi:PROCa("base",k%!c%,k%!d%):REPEAT:_%=0:IFINKEY(-74)THENPROCn(k%!c%,k%!d%) IFINKEY(-98)THENPROCo:_%=1 IFINKEY(-67)THENPROCp:_%=2 IFINKEY(-82)THENPROCf IFINKEY(-17)THENF%!Y%=0 IF_%>0THEN IF_%<=2THEN k%!c%+=k%!B%:PROCa("base",k%!c%,k%!d%) ENDIF ENDIF PROCq:PROCr:PROCs:UNTILF%!Y%=0:PROCh("GAME OVER!!!",11):PROCe(750):ENDPROC DEFPROCo:IFk%!c%<=0THENk%!c%=0:ENDPROC k%!B%=0-k%!C%:ENDPROC DEFPROCp:IFk%!c%>=b%!e%-k%!e%THEN k%!c%=b%!e%-k%!e%:ENDPROC ELSE:k%!B%=0+k%!C% ENDIF ENDPROC DEFPROCn(x%,y%):IFNOTm%!u%THEN m%!u%=TRUE:m%!c%=x%+(k%!e%/2):m%!d%=y%+k%!h% ENDIF ENDPROC DEFPROCf:REPEAT:UNTILNOTINKEY(-82):OSCLI"ScreenSave .Dump"+STR$(ca%):ca%+=1:ENDPROC DEFPROCq:LOCALqa%,ra%:qa%=fa%:IFm%!u%THEN m%!qa%=FALSE:IFm%!d%>=E%!W%-m%!h%THEN m%!u%=FALSE:m%!qa%=TRUE ENDIF IFm%!qa%THEN ra%=FNf(m%,52):ra%!d%-=2:PROCc(ra%) ELSE:PROCa("shell",m%!c%,m%!d%) ENDIF m%!d%+=m%!C% ENDIF ENDPROC DEFPROCr:LOCALL%,q%,T%,P%:L%=fa%:q%=ga%:T%=ha%:P%=ia%:IFNOTa%!u%THEN IFFNg(4)ANDFNg(5)THEN a%!u%=TRUE:a%!V%=FALSE:a%!T%=0:a%!P%=TRUE:IFFNg(50)THEN a%!B%=0-a%!C%:a%!c%=b%!e% ELSE:a%!B%=0+a%!C%:a%!c%=0-a%!e% ENDIF ENDIF ELSE:a%!T%+=1:a%!q%+=1:IFa%!c%<=0-a%!e%ANDSGN(a%!B%)=-1THEN a%!L%=FALSE:a%!u%=FALSE:a%!q%=0:ENDPROC ENDIF IFa%!c%>b%!e%ANDSGN(a%!B%)=1THEN a%!L%=FALSE:a%!u%=FALSE:a%!q%=0:ENDPROC ENDIF IFNOTa%!V%THEN IFFNh(m%,a%)THEN PROCc(m%):PROCa("saucer_2",a%!c%,a%!d%):a%!L%=a%!q%:a%!V%=TRUE:m%!u%=FALSE:PROCt(500) ENDIF ELSE:IFFNh(m%,a%)THEN PROCc(m%):m%!u%=FALSE ENDIF ENDIF IFNOTa%!V%THEN IFa%!T%>=100THENa%!T%=0 IFa%!T%MOD10=0THEN IFa%!P%=TRUETHEN a%!P%=FALSE ELSE:a%!P%=TRUE ENDIF ENDIF IFa%!P%THEN PROCa("saucer_0",a%!c%,a%!d%) ELSE:PROCa("saucer_1",a%!c%,a%!d%) ENDIF a%!c%+=a%!B% ELSE:IFa%!q%>=a%!L%+125THEN PROCc(a%):a%!u%=FALSE:a%!L%=FALSE:a%!q%=0:a%!P%=TRUE ELSE:IFa%!q%>=a%!L%+100THEN PROCa("saucer_5",a%!c%,a%!d%) ELSE:IFa%!q%>=a%!L%+75THEN PROCa("saucer_4",a%!c%,a%!d%) ELSE:IFa%!q%>=a%!L%+50THEN PROCa("saucer_3",a%!c%,a%!d%) ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDPROC DEFPROCs:LOCALq%,sa%,U%,p%,v%,x%,y%:q%=ha%:g%!q%+=1:IFg%!q%MOD5=0THENPROCu IFg%!q%>10000THENg%!q%=0 sa%=g%!c%+g%!e%:IFsa%>=b%!e%THENg%!B%=0-g%!C% IFg%!c%<=0THENg%!B%=0+g%!C% DIMU% 16:FORv%=1TOg%!S%:x%=g%!c%+((v%-1)*(I%!e%+g%!Z%)):FORp%=1TOg%!pa%:y%=g%!d%+((p%-1)*I%!h%):IFb%(v%,p%)>0THEN U%!c%=x%:U%!d%=y%:U%!e%=I%!e%:U%!h%=I%!h%:IFFNh(m%,U%)THEN b%(v%,p%)=-1:PROCc(m%):m%!u%=FALSE ENDIF ENDIF NEXTp%:NEXTv%:g%!c%+=g%!B%:PROCi:ENDPROC DEFFNl:LOCALi%,w%,n$:FORi%=1TO10:IFi%MOD2=0THENn$="Software"ELSEn$="DynaByte" a$(i%)=FNi(n$):a%(i%)=(11-i%)*1000:c%(i%)=0:NEXTi%:w%=OPENOUT".Resources.HiTable":IFw%=0THEN=FALSE FORi%=1TO10:PRINT#w%,a$(i%),a%(i%):PRINT#w%,c%(i%):NEXTi%:CLOSE#w%:=TRUE DEFPROCj:LOCALi%,w%:w%=OPENIN".Resources.HiTable":FORi%=1TO10:INPUT#w%,a$(i%),a%(i%):INPUT#w%,c%(i%):NEXTi%:CLOSE#w%:ENDPROC DEFPROCx:LOCALi%,w%:w%=OPENOUT".Resources.HiTable":FORi%=1TO10:PRINT#w%,a$(i%),a%(i%):PRINT#w%,c%(i%):NEXTi%:CLOSE#w%:ENDPROC DEFPROCl(ta%,ua%,l%,r%):LOCALx%,a$:a$="SCORE :-"+FNc(STR$(ta%),10," ",TRUE):PROCb(0,b%!h%-b%!H%,a$,0):a$="HI SCORE :-":a$+=FNc(STR$(ua%),10," ",TRUE):x%=b%!e%-LEN(a$)*b%!z%:PROCb(x%,b%!h%-b%!H%,a$,0):PROCv(l%):PROCw(r%):ENDPROC DEFPROCv(va%):LOCALa$:PROCa("base",0,0):a$=" = "+STR$(va%):PROCb(k%!e%,0,a$,0):ENDPROC DEFPROCw(va%):LOCALx%,a$:a$="RACK :-"+FNc(STR$(va%),3,"0",TRUE):x%=b%!e%-LEN(a$)*b%!z%:PROCb(x%,0,a$,0):ENDPROC DEFPROCt(wa%):LOCALx%,a$:F%!`%+=wa%:a$="SCORE :-"+FNc(STR$(F%!`%),10," ",TRUE):PROCb(0,b%!h%-b%!H%,a$,0):IFF%!`%>a%(1)THEN a$="HI SCORE :-":a$+=FNc(STR$(F%!`%),10," ",TRUE):x%=b%!e%-LEN(a$)*b%!z%:PROCb(x%,b%!h%-b%!H%,a$,0) ENDIF ENDPROC DEFPROCm:LOCALp%,v%,s%:g%!c%=50:g%!d%=550:g%!O%=0:g%!V%=0:g%!C%=3:g%!B%=g%!C%:s%=(g%!S%*I%!e%)+((g%!S%-1)*g%!Z%):g%!e%=s%:g%!h%=g%!pa%*I%!h%:FORv%=1TOg%!S%:FORp%=1TOg%!pa%:b%(v%,p%)=((p%+1)/2)+(g%!O%*10):NEXTp%:NEXTv%:ENDPROC DEFPROCi:LOCALp%,v%,x%,y%:FORv%=1TOg%!S%:x%=g%!c%+((v%-1)*(I%!e%+g%!Z%)):FORp%=1TOg%!pa%:y%=g%!d%+((p%-1)*I%!h%):IFb%(v%,p%)>0THEN b%(v%,p%)=((p%+1)/2)+(g%!O%*10) ENDIF PROCa("inv_"+STR$(b%(v%,p%)),x%,y%):NEXTp%:NEXTv%:ENDPROC DEFPROCu:IFg%!O%=0THEN g%!O%=1 ELSE:g%!O%=0 ENDIF ENDPROC DEFPROCy:ENDPROC DEFPROCz:ENDPROC DEFPROCd(d%):LOCALi%,xa%:xa%=b%!e%/E%!e%:FORi%=1TOxa%+1:PROCa("rail",(i%-1)*E%!e%,d%):NEXTi%:ENDPROC DEFPROCg:LOCALA%:DIMA% 20:A%!0=4:A%!4=5:A%!8=11:A%!12=12:A%!16=-1:SYS"OS_ReadVduVariables",A%,A%:b%!ka%=A%!0:b%!la%=A%!4:b%!e%=(A%!8)+1<b%!ma%THENPROCg CASEya%OF WHEN1:za%=Q%<>b%!ka% WHEN4:za%=Q%>>b%!la% OTHERWISE:ERROR255,"Unknown FNconv_units() operation : "+STR$(ya%) ENDCASE =za% DEFPROCb(x%,y%,a$,Ba%):LOCALi%,Ca%:Ca%=b%!z%:FORi%=1TOLEN(a$):PROCa(STR$(ASC(MID$(a$,i%,1))),x%+((i%-1)*Ca%),y%):IFBa%>0THENPROCe(Ba%) NEXTi%:ENDPROC DEFFNh(G%,R%):LOCALDa%,Ea%,Fa%,Ga%:Fa%=FALSE:Ga%=FALSE:IFG%!u%ANDR%!u%THEN Da%=R%!c%+R%!e%:Ea%=R%!d%+R%!h%:IFG%!c%>=R%!c%ANDG%!c%<=Da%THENFa%=TRUE IFG%!d%>=R%!d%ANDG%!d%<=Ea%THENGa%=TRUE ENDIF =Fa%ANDGa% DEFFNf(G%,Q%):LOCALHa%,Ia%:DIMIa% Q%:FORHa%=0TOQ%-4STEP4:Ia%!Ha%=G%!Ha%:NEXTHa%:=Ia% DEFPROCc(G%):GCOL0,0TINT0:RECTANGLEFILLG%!c%,G%!d%,G%!e%,G%!h%:ENDPROC DEFFNb(Ja%,b%):=(b%/2)-(Ja%/2) DEFPROCh(a$,Ka%):LOCALo%,y%:o%=LEN(a$)*b%!z%:y%=(b%!h%/2)-(b%!H%/2):PROCb(FNb(o%,b%!e%),y%,a$,Ka%):ENDPROC DEFFNd(La%,Ma%):=(Ma%!e%/2)-(La%!e%/2) DEFPROCa(e$,x%,y%):LOCALNa%:SYSda%,256+24,M%,e$TO,,Na%:SYSda%,512+34,M%,Na%,x%,y%,0:ENDPROC DEFFNg(n%):LOCALOa%:Oa%=RND(100):=Oa%<=n% DEFFNi(a$):LOCALi%,c$:FORi%=1TOLEN(a$):c$+=CHR$(ASC(MID$(a$,i%,1))EOR131):NEi(a$,`%):LOCALb$:b$=STRING$(`%," "):RIGHT$(b$,LEN(a$))=a$:=b$ DEFFNe(f$):LOCALf%:SYS"XOS_File",17,f$TOf%:=f% DEFFNk(f$):LOCALs%:IFFNe(f$)=0THEN=0 SYS"XOS_File",5,f$TO,,,,s%:=s% áèûE€\ *!À³1!InstTrans/NewsHound/!AltGroup/o/wimpcffdACARC0Kýÿÿ°:¨žUT «ë=PKNŠ"nSé|,!íœ6!InstTrans/NewsHound/!AltGroup/TemplatesfecACARC0Gìÿÿ,PZxUTC+L3PK¯’!€ËXŒ¾ª