REM>.!RunImage REM Squished by MH's BASIC cruncher v1.30 16/9/89 On 28 Nov 2007 ONERRORREPORT:PRINT" at line ";ERL:END T%=FALSE:aa%=TRUE:DIMa$(10),a%(10):U%=0:IFFNd(".Resources.Gfx0")<>1THENU%+=1 IFFNd(".Resources.Gfx1")<>1THENU%+=1 IFU%THENERROR255,"File Missing!!" OSCLI"SLoad .Resources.Gfx0":OSCLI"SMerge .Resources.Gfx1":IFFNd(".Resources.HiTable")<>1THEN IFNOTFNiTHENaa%=FALSE ELSE:PROCg ENDIF d%=0:b%=4:e%=8:j%=12:w%=16:z%=20:o%=24:G%=28:H%=32:J%=36:O%=40:V%=44:ba%=48:W%=H%:X%=J%:ca%=O%:K%=H%:Y%=J%:DIMk% 52,u% 52:MODE28:OFF:PROCe:u%!e%=FNa(6,1):u%!j%=FNa(6,2):u%!K%=k%!j%-50:u%!Y%=30 REPEAT:CLS:T%=FNj:IFNOTT%THENCLS:PROCh UNTILT%:CLS:PRINT"GoodBye!":END DEFFNj:LOCALi%,A%,C%,g%,p%,a$,x%,a%,s%,E%:LOCALL%,t%,y%,s$:DIMA% 52,C% 52,g% 52:DIMa% 52,s% 52:A%!e%=FNa(100,1):A%!j%=FNa(40,2):A%!d%=FNc(A%,k%):A%!b%=800:C%!e%=FNa(150,1):C%!j%=FNa(40,2):C%!d%=FNc(C%,k%):C%!b%=A%!b%-C%!j% g%!e%=530:g%!j%=500:g%!d%=FNc(g%,k%):g%!b%=200:a%!e%=FNa(40,1):a%!j%=FNa(20,2):a%!d%=g%!d%+100:a%!b%=(g%!b%+g%!j%)-160:s%!e%=FNa(20,1):s%!j%=FNa(20,2):s%!d%=g%!d%+100+FNc(s%,a%):E%=FNe(s%):L%=FNe(s%) s%!b%=g%!b%+100:E%!b%=s%!b%+s%!j%+40:L%!b%=E%!b%+E%!j%+40:PROCd(u%!K%):PROCd(u%!Y%):FORi%=0-A%!e%TOA%!d%STEP5:PROCa("space",i%,A%!b%):NEXTi%:FORi%=k%!e%TOC%!d%STEP-5:PROCa("invaders",i%,C%!b%):NEXTi%:a$="PRESS SPACE TO PLAY":p%=LEN(a$)*FNa(8,1) PROCb(FNb(p%,k%!e%),170,a$,10):a$="OR Q TO QUIT":p%=LEN(a$)*FNa(8,1):PROCb(FNb(p%,k%!e%),145,a$,10):WHILENOTINKEY(-99)ANDNOTINKEY(-17):PROCc(g%):a$="SCORE ADVANCE":p%=LEN(a$)*FNa(8,1):x%=g%!d%+FNb(p%,g%!e%):PROCb(x%,(g%!b%+g%!j%)-20,a$,0):a$="TABLE" p%=LEN(a$)*FNa(8,1):x%=g%!d%+FNb(p%,g%!e%):PROCb(x%,(g%!b%+g%!j%)-45,a$,0):x%=a%!d%+a%!e%+10:PROCa("saucer_0",a%!d%,a%!b%):PROCb(x%,a%!b%+10,"= 500 POINTS !",0):PROCa("inv_3",L%!d%,L%!b%):PROCb(x%,L%!b%+20,"= 100 POINTS !",0) PROCa("inv_2",E%!d%,E%!b%):PROCb(x%,E%!b%+20,"= 75 POINTS !",0):PROCa("inv_1",s%!d%,s%!b%):PROCb(x%,s%!b%+20,"= 50 POINTS !",0):t%=TIME+1000:REPEAT:UNTILTIME=t%ORINKEY(-17)ORINKEY(-99):IFINKEY(-17)THEN=TRUE IFINKEY(-99)THEN=FALSE PROCc(g%):a$="TODAY'S":IFaa%THENa$="ALL TIME" p%=LEN(a$)*FNa(8,1):x%=g%!d%+FNb(p%,g%!e%):PROCb(x%,(g%!b%+g%!j%)-20,a$,0):a$="HI SCORES":p%=LEN(a$)*FNa(8,1):x%=g%!d%+FNb(p%,g%!e%):PROCb(x%,(g%!b%+g%!j%)-45,a$,0):y%=(g%!b%+g%!j%)-100:FORi%=1TO10:IFi%<10THEN a$=" "+STR$(i%)+". " ELSE:a$=STR$(i%)+". " ENDIF s$=FNk(FNg(a$(i%)),8," "):a$+=FNl(s$):a$+=" ... ":a$+=FNm(STR$(a%(i%)),6):p%=LEN(a$)*FNa(8,1):x%=g%!d%+FNb(p%,g%!e%):PROCb(x%,y%-(i%*FNa(15,2)),a$,0):NEXTi%:t%=TIME+1000:REPEAT:UNTILTIME=t%ORINKEY(-17)ORINKEY(-99):IFINKEY(-17)THEN=TRUE IFINKEY(-99)THEN=FALSE ENDWHILE:IFINKEY(-17)THEN=TRUE =FALSE DEFPROCh:LOCALh%,l%,a%,M%,P%,p%,a$,x%,y%:DIMh% 52,l% 52,a% 52:P%=V%:h%!e%=FNa(30,1):h%!j%=FNa(15,2):h%!d%=FNc(h%,k%):h%!b%=50:h%!z%=6:h%!P%=3:h%!w%=h%!z%:l%!e%=FNa(5,1):l%!j%=FNa(20,2):l%!o%=FALSE:l%!z%=10 a%!e%=FNa(40,1):a%!j%=FNa(20,2):a%!b%=u%!K%-(10+a%!j%):a%!z%=5:a%!o%=FALSE:PROCi:REPEAT:M%=0:IFINKEY(-74)THENPROCj(h%!d%,h%!b%) IFINKEY(-98)THENPROCk:M%=1 IFINKEY(-67)THENPROCl:M%=2 IFINKEY(-82)THENPROCm IFINKEY(-17)THENh%!P%=0 IFM%>0THEN IFM%<=2THEN h%!d%+=h%!w%:PROCa("base",h%!d%,h%!b%) ENDIF ENDIF PROCn:PROCo:UNTILh%!P%=0:a$="GAME OVER!!!":p%=LEN(a$)*FNa(8,1):y%=k%!j%/2:PROCb(FNb(p%,k%!e%),y%,a$,10):PROCf(1000):ENDPROC DEFPROCk:IFh%!d%<=0THENh%!d%=0:ENDPROC h%!w%=0-h%!z%:ENDPROC DEFPROCl:IFh%!d%>=k%!e%-h%!e%THEN h%!d%=k%!e%-h%!e%:ENDPROC ELSE:h%!w%=0+h%!z% ENDIF ENDPROC DEFPROCj(x%,y%):IFl%!o%THENENDPROC l%!o%=TRUE:l%!d%=x%+(h%!e%/2):l%!b%=y%+h%!j%:ENDPROC DEFPROCm:ENDPROC REPEAT:UNTILNOTINKEY(-82):OSCLI"ScreenSave .Dump":ENDPROC DEFPROCn:LOCALQ%,Z%:Q%=H%:IFNOTl%!o%THENENDPROC l%!Q%=FALSE:IFl%!b%>=u%!K%-l%!j%THEN l%!o%=FALSE:l%!Q%=TRUE ENDIF IFl%!Q%THEN Z%=FNe(l%):Z%!b%-=2:PROCc(Z%) ELSE:PROCa("shell",l%!d%,l%!b%) ENDIF l%!b%+=l%!z%:ENDPROC DEFPROCo:LOCALD%,B%,I%:D%=H%:B%=J%:I%=O%:IFNOTa%!o%THEN IFFNf(3)ANDFNf(1)THEN a%!o%=TRUE:a%!G%=FALSE:a%!I%=0:IFFNf(50)THEN a%!w%=0-a%!z%:a%!d%=k%!e% ELSE:a%!w%=0+a%!z%:a%!d%=0-a%!e% ENDIF ENDIF ELSE:a%!I%+=1:a%!B%+=1:IFa%!d%<=0-a%!e%ANDSGN(a%!w%)=-1THEN a%!D%=FALSE:a%!o%=FALSE:a%!B%=0:ENDPROC ENDIF IFa%!d%>k%!e%ANDSGN(a%!w%)=1THEN a%!D%=FALSE:a%!o%=FALSE:a%!B%=0:ENDPROC ENDIF IFNOTa%!G%THEN IFFNh(l%,a%)THEN PROCc(l%):PROCa("saucer_2",a%!d%,a%!b%):a%!D%=a%!B%:a%!G%=TRUE:l%!o%=FALSE ENDIF ELSE:IFFNh(l%,a%)THEN PROCc(l%):l%!o%=FALSE ENDIF ENDIF IFNOTa%!G%THEN IFa%!I%>=100THENa%!I%=0 IFa%!I%<50THEN PROCa("saucer_0",a%!d%,a%!b%) ELSE:PROCa("saucer_1",a%!d%,a%!b%) ENDIF a%!d%+=a%!w% ELSE:IFa%!B%>=a%!D%+200THEN PROCc(a%):a%!o%=FALSE:a%!D%=FALSE:a%!B%=0 ELSE:IFa%!B%>=a%!D%+175THEN PROCa("saucer_5",a%!d%,a%!b%) ELSE:IFa%!B%>=a%!D%+150THEN PROCa("saucer_4",a%!d%,a%!b%) ELSE:IFa%!B%>=a%!D%+100THEN PROCa("saucer_3",a%!d%,a%!b%) ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDPROC DEFFNi:LOCALi%,v%,n$:FORi%=1TO10:IFi%MOD2=0THENn$="Software"ELSEn$="DynaByte" a$(i%)=FNg(n$):a%(i%)=(11-i%)*1000:NEXTi%:v%=OPENOUT".Resources.HiTable":IFv%=0THEN=FALSE FORi%=1TO10:PRINT#v%,a$(i%),a%(i%):NEXTi%:CLOSE#v%:=TRUE DEFPROCg:LOCALi%,v%:v%=OPENIN".Resources.HiTable":FORi%=1TO10:INPUT#v%,a$(i%),a%(i%):NEXTi%:CLOSE#v%:ENDPROC DEFPROCp:LOCALi%,v%:v%=OPENOUT".Resources.HiTable":FORi%=1TO10:PRINT#v%,a$(i%),a%(i%):NEXTi%:CLOSE#v%:ENDPROC DEFPROCi:PROCd(u%!K%):PROCd(u%!Y%):PROCa("base",h%!d%,h%!b%):ENDPROC DEFPROCd(b%):LOCALi%,da%:da%=k%!e%/u%!e%:FORi%=1TOda%+1:PROCa("rail",(i%-1)*u%!e%,b%):NEXTi%:ENDPROC DEFPROCe:LOCALr%:DIMr% 20:r%!0=4:r%!4=5:r%!8=11:r%!12=12:r%!16=-1:SYS"OS_ReadVduVariables",r%,r%:k%!W%=r%!0:k%!X%=r%!4:k%!e%=(r%!8)+1<k%!ca%THENPROCe CASEea%OF WHEN1:N%=R%<>k%!W% WHEN4:N%=R%>>k%!X% OTHERWISE:ERROR255,"Unknown FNconv_units() operation : "+STR$(ea%) ENDCASE =N% DEFPROCb(x%,y%,a$,ga%):LOCALi%,ha%:ha%=FNa(8,1):FORi%=1TOLEN(a$):PROCa(STR$(ASC(MID$(a$,i%,1))),x%+((i%-1)*ha%),y%):IFga%>0THENPROCf(ga%) NEXTi%:ENDPROC DEFFNh(m%,F%):LOCALia%,ja%,_%,`%:_%=FALSE:`%=FALSE:IFm%!o%ANDF%!o%THEN ia%=F%!d%+F%!e%:ja%=F%!b%+F%!j%:IFm%!d%>=F%!d%ANDm%!d%<=ia%THEN_%=TRUE IFm%!b%>=F%!b%ANDm%!b%<=ja%THEN`%=TRUE ENDIF =_%AND`% DEFFNe(m%):LOCALq%:DIMq% 52:q%!d%=m%!d%:q%!b%=m%!b%:q%!e%=m%!e%:q%!j%=m%!j%:q%!w%=m%!w%:q%!z%=m%!z%:q%!o%=m%!o%:q%!G%=m%!G%:q%!H%=m%!H%:q%!J%=m%!J%:q%!O%=m%!O%:q%!V%=m%!V%:q%!ba%=m%!ba%:=q% DEFPROCc(m%):GCOL0,0TINT0:RECTANGLEFILLm%!d%,m%!b%,m%!e%,m%!j%:ENDPROC DEFFNb(ka%,k%):=(k%/2)-(ka%/2) DEFFNc(la%,ma%):=(ma%!e%/2)-(la%!e%/2) DEFPROCa(e$,x%,y%):OSCLI"SChoose "+e$:PLOT237,x%,y%:ENDPROC DEFFNf(n%):LOCALna%:na%=RND(100):=na%<=n% DEFFNd(f$):LOCALf%:SYS"XOS_File",17,f$TOf%:=f% DEFFNg(a$):LOCALi%,c$:FORi%=1TOLEN(a$):c$+=CHR$(ASC(MID$(a$,i%,1))EOR131):NEXTi%:=c$ DEFPROCf(n%):LOCALt%:t%=TIME+n%:REPEAT:UNTILTIME>=t%:ENDPROC DEFFNl(d$):LOCALi%,b$,c%:b$="":FORi%=1TOLEN(d$):c%=ASC(MID$(d$,i%,1)):IFc%>=97ANDc%<=122THEN b$=b$+CHR$(c%-32) ELSE:b$=b$+CHR$(c%) ENDIF NEXTi%:=b$ DEFFNk(a$,S%,g$):LOCALoa%,b$:oa%=S%-LEN(a$):IFoa%<=0THEN b$=LEFT$(a$,S%) ELSE:b$=a$+STRING$(oa%,g$) ENDIF =b$ DEFFNm(a$,S%):LOCALb$:b$=STRING$(S%," "):RIGHT$(b$,LEN(a$))=a$:=b$