REM>.!RunImage REM Squished by MH's BASIC cruncher v1.30 16/9/89 On 20 Dec 2007 ONERRORREPORT:PRINT" at line ";ERL:END aa%=FALSE:ba%=TRUE:ca%=0:DIMa$(10),a%(10):DIMb%(10):da%=0:IFFNe(".Resources.Gfx0")<>1THENda%+=1 IFFNe(".Resources.Gfx1")<>1THENda%+=1 IFda%THENERROR255,"File Missing!!" OSCLI"SLoad .Resources.Gfx0":OSCLI"SMerge .Resources.Gfx1":IFFNe(".Resources.HiTable")<>1THEN IFNOTFNkTHENba%=FALSE ELSE:PROCj ENDIF c%=0:d%=4:e%=8:h%=12:z%=16:A%=20:q%=24:R%=28:_%=32:ea%=36:fa%=40:ga%=44:ha%=48:ia%=16:ja%=20:ka%=24:v%=28:G%=32:S%=_%:la%=ea%:DIMb% 36,C% 52:MODE28:OFF:PROCf:b%!v%=FNa(8,1):b%!G%=FNa(8,2)+7:C%!e%=FNa(6,1):C%!h%=FNa(6,2):C%!S%=b%!h%-50:C%!la%=30 REPEAT:CLS:aa%=FNl:IFNOTaa%THENCLS:PROCk UNTILaa%:CLS:PROCg("GOODBYE!!!",10):END DEFFNl:LOCALi%,H%,J%,j%,o%,a$,x%,a%,B%,L%:LOCALT%,t%,y%,s$:DIMH% 16,J% 16,j% 16:DIMa% 16,B% 16:H%!e%=FNa(100,1):H%!h%=FNa(40,2):H%!c%=FNd(H%,b%):H%!d%=800:J%!e%=FNa(150,1):J%!h%=FNa(40,2):J%!c%=FNd(J%,b%):J%!d%=H%!d%-J%!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:B%!e%=FNa(20,1):B%!h%=FNa(20,2):B%!c%=j%!c%+150+FNd(B%,a%):L%=FNf(B%,16):T%=FNf(B%,16) B%!d%=j%!d%+100:L%!d%=B%!d%+B%!h%+40:T%!d%=L%!d%+L%!h%+40:PROCd(C%!S%):PROCd(C%!la%):FORi%=0-H%!e%TOH%!c%STEP5:PROCa("space",i%,H%!d%):NEXTi%:FORi%=b%!e%TOJ%!c%STEP-5:PROCa("invaders",i%,J%!d%):NEXTi%:a$="PRESS SPACE TO PLAY":o%=LEN(a$)*b%!v%:y%=170 PROCb(FNb(o%,b%!e%),y%,a$,10):a$="OR Q TO QUIT":o%=LEN(a$)*b%!v%:y%-=b%!G%:PROCb(FNb(o%,b%!e%),y%,a$,10):WHILENOTINKEY(-99)ANDNOTINKEY(-17)ANDNOTINKEY(-82):PROCc(j%):a$="SCORE ADVANCE":o%=LEN(a$)*b%!v%:x%=j%!c%+FNb(o%,j%!e%):y%=j%!d%+j%!h%-20:PROCb(x%,y%,a$,0) a$="TABLE":y%-=b%!G%:o%=LEN(a$)*b%!v%: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",T%!c%,T%!d%):PROCb(x%,T%!d%+20,"= 100 POINTS !",0) PROCa("inv_2",L%!c%,L%!d%):PROCb(x%,L%!d%+20,"= 75 POINTS !",0):PROCa("inv_1",B%!c%,B%!d%):PROCb(x%,B%!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)THENPROCe PROCc(j%):a$="TODAY'S":IFba%THENa$="ALL TIME" o%=LEN(a$)*b%!v%:x%=j%!c%+FNb(o%,j%!e%):y%=j%!d%+j%!h%-20:PROCb(x%,y%,a$,0):a$="HI SCORES":y%-=b%!G%:o%=LEN(a$)*b%!v%: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%!v%:x%=j%!c%+FNb(o%,j%!e%):PROCb(x%,y%,a$,0):y%-=2*b%!G%:FORi%=1TO10:IFi%<10THEN a$=" "+STR$(i%)+". " ELSE:a$=" "+STR$(i%)+". " ENDIF s$=FNh(a$(i%)):a$+=FNc(s$,8," ",FALSE):a$+=" .... ":a$+=FNi(STR$(a%(i%)),10):a$+=" ... "+FNi(STR$(b%(i%)),3):o%=LEN(a$)*b%!v%:x%=j%!c%+FNb(o%,j%!e%):PROCb(x%,y%-(i%*(b%!G%+5)),a$,0):NEXTi%:t%=TIME+750:REPEAT:UNTILTIME=t%ORINKEY(-17)ORINKEY(-99) IFINKEY(-17)THEN=TRUE IFINKEY(-99)THEN=FALSE IFINKEY(-82)THENPROCe ENDWHILE:IFINKEY(-17)THEN=TRUE =FALSE DEFPROCk:LOCALk%,m%,a%,g%,D%:LOCALM%:LOCALU%,ma%,N%,`%:LOCALV%,o%,a$,x%,y%:DIMk% 52,m% 52,a% 52,g% 52,M% 16,c%(10,6):DIMD% 12:U%=0:W%=4:ma%=8:N%=_%:`%=ea%:p%=fa%:X%=ga%:na%=ha%:k%!e%=FNa(30,1):k%!h%=FNa(15,2):k%!c%=FNd(k%,b%) k%!d%=50:k%!A%=6:k%!z%=k%!A%:m%!e%=FNa(5,1):m%!h%=FNa(20,2):m%!q%=FALSE:m%!A%=10:a%!e%=FNa(40,1):a%!h%=FNa(20,2):a%!d%=C%!S%-(10+a%!h%):a%!A%=5:a%!q%=FALSE:M%!e%=FNa(20,1):M%!h%=FNa(20,2):g%!`%=FNa(20,1):g%!X%=10:g%!na%=6 D%!ma%=1:D%!W%=0:D%!U%=3:PROCd(C%!S%):PROCd(C%!la%):PROCl(0,a%(1),D%!U%,D%!ma%):PROCm:PROCh:PROCa("base",k%!c%,k%!d%):REPEAT:V%=0:IFINKEY(-74)THENPROCn(k%!c%,k%!d%) IFINKEY(-98)THENPROCo:V%=1 IFINKEY(-67)THENPROCp:V%=2 IFINKEY(-82)THENPROCe IFINKEY(-17)THEND%!U%=0 IFV%>0THEN IFV%<=2THEN k%!c%+=k%!z%:PROCa("base",k%!c%,k%!d%) ENDIF ENDIF PROCq:PROCr:PROCs:UNTILD%!U%=0:PROCg("GAME OVER!!!",10):PROCi(750):ENDPROC DEFPROCo:IFk%!c%<=0THENk%!c%=0:ENDPROC k%!z%=0-k%!A%:ENDPROC DEFPROCp:IFk%!c%>=b%!e%-k%!e%THEN k%!c%=b%!e%-k%!e%:ENDPROC ELSE:k%!z%=0+k%!A% ENDIF ENDPROC DEFPROCn(x%,y%):IFNOTm%!q%THEN m%!q%=TRUE:m%!c%=x%+(k%!e%/2):m%!d%=y%+k%!h% ENDIF ENDPROC DEFPROCe:REPEAT:UNTILNOTINKEY(-82):OSCLI"ScreenSave .Dump"+STR$(ca%):ca%+=1:ENDPROC DEFPROCq:LOCALoa%,pa%:oa%=_%:IFm%!q%THEN m%!oa%=FALSE:IFm%!d%>=C%!S%-m%!h%THEN m%!q%=FALSE:m%!oa%=TRUE ENDIF IFm%!oa%THEN pa%=FNf(m%,52):pa%!d%-=2:PROCc(pa%) ELSE:PROCa("shell",m%!c%,m%!d%) ENDIF m%!d%+=m%!A% ENDIF ENDPROC DEFPROCr:LOCALK%,p%,Q%:K%=_%:p%=ea%:Q%=fa%:IFNOTa%!q%THEN IFFNg(3)ANDFNg(1)THEN a%!q%=TRUE:a%!R%=FALSE:a%!Q%=0:IFFNg(50)THEN a%!z%=0-a%!A%:a%!c%=b%!e% ELSE:a%!z%=0+a%!A%:a%!c%=0-a%!e% ENDIF ENDIF ELSE:a%!Q%+=1:a%!p%+=1:IFa%!c%<=0-a%!e%ANDSGN(a%!z%)=-1THEN a%!K%=FALSE:a%!q%=FALSE:a%!p%=0:ENDPROC ENDIF IFa%!c%>b%!e%ANDSGN(a%!z%)=1THEN a%!K%=FALSE:a%!q%=FALSE:a%!p%=0:ENDPROC ENDIF IFNOTa%!R%THEN IFFNj(m%,a%)THEN PROCc(m%):PROCa("saucer_2",a%!c%,a%!d%):a%!K%=a%!p%:a%!R%=TRUE:m%!q%=FALSE:PROCt(500) ENDIF ELSE:IFFNj(m%,a%)THEN PROCc(m%):m%!q%=FALSE ENDIF ENDIF IFNOTa%!R%THEN IFa%!Q%>=100THENa%!Q%=0 IFa%!Q%<50THEN PROCa("saucer_0",a%!c%,a%!d%) ELSE:PROCa("saucer_1",a%!c%,a%!d%) ENDIF a%!c%+=a%!z% ELSE:IFa%!p%>=a%!K%+200THEN PROCc(a%):a%!q%=FALSE:a%!K%=FALSE:a%!p%=0 ELSE:IFa%!p%>=a%!K%+175THEN PROCa("saucer_5",a%!c%,a%!d%) ELSE:IFa%!p%>=a%!K%+150THEN PROCa("saucer_4",a%!c%,a%!d%) ELSE:IFa%!p%>=a%!K%+100THEN PROCa("saucer_3",a%!c%,a%!d%) ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDPROC DEFPROCs:LOCALp%,qa%:p%=fa%:g%!p%+=1:IFg%!p%MOD5=0THENPROCu IFg%!p%>10000THENg%!p%=0 qa%=g%!c%+g%!e%:IFqa%>=b%!e%THENg%!z%=0-g%!A% IFg%!c%<=0THENg%!z%=0+g%!A% g%!c%+=g%!z%:PROCh:ENDPROC DEFFNk:LOCALi%,u%,n$:FORi%=1TO10:IFi%MOD2=0THENn$="Software"ELSEn$="DynaByte" a$(i%)=FNh(n$):a%(i%)=(11-i%)*1000:b%(i%)=0:NEXTi%:u%=OPENOUT".Resources.HiTable":IFu%=0THEN=FALSE FORi%=1TO10:PRINT#u%,a$(i%),a%(i%):PRINT#u%,b%(i%):NEXTi%:CLOSE#u%:=TRUE DEFPROCj:LOCALi%,u%:u%=OPENIN".Resources.HiTable":FORi%=1TO10:INPUT#u%,a$(i%),a%(i%):INPUT#u%,b%(i%):NEXTi%:CLOSE#u%:ENDPROC DEFPROCx:LOCALi%,u%:u%=OPENOUT".Resources.HiTable":FORi%=1TO10:PRINT#u%,a$(i%),a%(i%):PRINT#u%,b%(i%):NEXTi%:CLOSE#u%:ENDPROC DEFPROCl(ra%,sa%,l%,r%):LOCALx%,a$:a$="SCORE :-"+FNc(STR$(ra%),10," ",TRUE):PROCb(0,b%!h%-b%!G%,a$,0):a$="HI SCORE :-":a$+=FNc(STR$(sa%),10," ",TRUE):x%=b%!e%-LEN(a$)*b%!v%:PROCb(x%,b%!h%-b%!G%,a$,0):PROCv(l%):PROCw(r%):ENDPROC DEFPROCv(ta%):LOCALa$:PROCa("base",0,0):a$=" = "+STR$(ta%):PROCb(k%!e%,0,a$,0):ENDPROC DEFPROCw(ta%):LOCALx%,a$:a$="RACK :-"+FNc(STR$(ta%),3,"0",TRUE):x%=b%!e%-LEN(a$)*b%!v%:PROCb(x%,0,a$,0):ENDPROC DEFPROCt(ua%):LOCALx%,a$:D%!W%+=ua%:a$="SCORE :-"+FNc(STR$(D%!W%),10," ",TRUE):PROCb(0,b%!h%-b%!G%,a$,0):IFD%!W%>a%(1)THEN a$="HI SCORE :-":a$+=FNc(STR$(D%!W%),10," ",TRUE):x%=b%!e%-LEN(a$)*b%!v%:PROCb(x%,b%!h%-b%!G%,a$,0) ENDIF ENDPROC DEFPROCm:LOCALE%,I%,s%:g%!c%=50:g%!d%=550:g%!N%=0:g%!R%=0:g%!A%=3:g%!z%=g%!A%:s%=(g%!X%*M%!e%)+((g%!X%-1)*g%!`%):g%!e%=s%:g%!h%=g%!na%*M%!h%:FORI%=1TOg%!X%:FORE%=1TOg%!na%:c%(I%,E%)=((E%+1)/2)+(g%!N%*10):NEXTE%:NEXTI%:ENDPROC DEFPROCh:LOCALE%,I%,x%,y%:FORI%=1TOg%!X%:x%=g%!c%+((I%-1)*(M%!e%+g%!`%)):FORE%=1TOg%!na%:y%=g%!d%+((E%-1)*M%!h%):IFc%(I%,E%)>0THEN c%(I%,E%)=((E%+1)/2)+(g%!N%*10) ENDIF PROCa("inv_"+STR$(c%(I%,E%)),x%,y%):NEXTE%:NEXTI%:ENDPROC DEFPROCu:IFg%!N%=0THEN g%!N%=1 ELSE:g%!N%=0 ENDIF ENDPROC DEFPROCy:ENDPROC DEFPROCz:ENDPROC DEFPROCd(d%):LOCALi%,va%:va%=b%!e%/C%!e%:FORi%=1TOva%+1:PROCa("rail",(i%-1)*C%!e%,d%):NEXTi%:ENDPROC DEFPROCf:LOCALw%:DIMw% 20:w%!0=4:w%!4=5:w%!8=11:w%!12=12:w%!16=-1:SYS"OS_ReadVduVariables",w%,w%:b%!ia%=w%!0:b%!ja%=w%!4:b%!e%=(w%!8)+1<b%!ka%THENPROCf CASEwa%OF WHEN1:Y%=O%<>b%!ia% WHEN4:Y%=O%>>b%!ja% OTHERWISE:ERROR255,"Unknown FNconv_units() operation : "+STR$(wa%) ENDCASE =Y% DEFPROCb(x%,y%,a$,ya%):LOCALi%,za%:za%=b%!v%:FORi%=1TOLEN(a$):PROCa(STR$(ASC(MID$(a$,i%,1))),x%+((i%-1)*za%),y%):IFya%>0THENPROCi(ya%) NEXTi%:ENDPROC DEFFNj(F%,P%):LOCALAa%,Ba%,Ca%,Da%:Ca%=FALSE:Da%=FALSE:IFF%!q%ANDP%!q%THEN Aa%=P%!c%+P%!e%:Ba%=P%!d%+P%!h%:IFF%!c%>=P%!c%ANDF%!c%<=Aa%THENCa%=TRUE IFF%!d%>=P%!d%ANDF%!d%<=Ba%THENDa%=TRUE ENDIF =Ca%ANDDa% DEFFNf(F%,O%):LOCALEa%,Fa%:DIMFa% O%:FOREa%=0TOO%-4STEP4:Fa%!Ea%=F%!Ea%:NEXTEa%:=Fa% DEFPROCc(F%):GCOL0,0TINT0:RECTANGLEFILLF%!c%,F%!d%,F%!e%,F%!h%:ENDPROC DEFFNb(Ga%,b%):=(b%/2)-(Ga%/2) DEFPROCg(a$,Ha%):LOCALo%,y%:o%=LEN(a$)*b%!v%:y%=(b%!h%/2)-(b%!G%/2):PROCb(FNb(o%,b%!e%),y%,a$,Ha%):ENDPROC DEFFNd(Ia%,Ja%):=(Ja%!e%/2)-(Ia%!e%/2) DEFPROCa(e$,x%,y%):OSCLI"SChoose "+e$:PLOT237,x%,y%:ENDPROC DEFFNg(n%):LOCALKa%:Ka%=RND(100):=Ka%<=n% DEFFNe(f$):LOCALf%:SYS"XOS_File",17,f$TOf%:=f% DEFFNh(a$):LOCALi%,c$:FORi%=1TOLEN(a$):c$+=CHR$(ASC(MID$(a$,i%,1))EOR131):NEXTi%:=c$ DEFPROCi(n%):LOCALt%:t%=TIME+n%:REPEAT:UNTILTIME>=t%:ENDPROC DEFFNc(a$,Z%,d$,La%):LOCALMa%,b$:Ma%=Z%-LEN(a$):IFMa%<=0THEN b$=LEFT$(a$,Z%) ELSE:IFLa%THEN b$=STRING$(Z%,d$):RIGHT$(b$,LEN(a$))=a$ ELSE:b$=a$+STRING$(Ma%,d$) ENDIF ENDIF =b$ DEFFNi(a$,Z%):LOCALb$:b$=STRING$(Z%," "):RIGHT$(b$,LEN(a$))=a$:=b$