REM>.!RunImage REM Squished by MH's BASIC cruncher v1.30 16/9/89 On 01 Dec 2007 ONERRORREPORT:PRINT" at line ";ERL:END U%=FALSE:aa%=TRUE:DIMa$(10),a%(10):V%=0:IFFNd(".Resources.Gfx0")<>1THENV%+=1 IFFNd(".Resources.Gfx1")<>1THENV%+=1 IFV%THENERROR255,"File Missing!!" OSCLI"SLoad .Resources.Gfx0":OSCLI"SMerge .Resources.Gfx1":IFFNd(".Resources.HiTable")<>1THEN IFNOTFNiTHENaa%=FALSE ELSE:PROCg ENDIF d%=0:b%=4:g%=8:l%=12:w%=16:z%=20:o%=24:H%=28:J%=32:P%=36:W%=40:X%=44:ba%=48:Y%=16:Z%=20:ca%=24:E%=28:K%=32:L%=J%:_%=P%:DIMe% 36,u% 52:MODE28:OFF:PROCe:e%!E%=FNa(8,1):e%!K%=FNa(8,2)+7:u%!g%=FNa(6,1):u%!l%=FNa(6,2):u%!L%=e%!l%-50:u%!_%=30 REPEAT:CLS:U%=FNj:IFNOTU%THENCLS:PROCh UNTILU%:CLS:PRINT"GoodBye!":END DEFFNj:LOCALi%,A%,C%,j%,p%,a$,x%,a%,s%,F%:LOCALM%,t%,y%,s$:DIMA% 16,C% 16,j% 16:DIMa% 16,s% 16:A%!g%=FNa(100,1):A%!l%=FNa(40,2):A%!d%=FNc(A%,e%):A%!b%=800:C%!g%=FNa(150,1):C%!l%=FNa(40,2):C%!d%=FNc(C%,e%):C%!b%=A%!b%-C%!l% j%!g%=530:j%!l%=500:j%!d%=FNc(j%,e%):j%!b%=200:a%!g%=FNa(40,1):a%!l%=FNa(20,2):a%!d%=j%!d%+100:a%!b%=(j%!b%+j%!l%)-160:s%!g%=FNa(20,1):s%!l%=FNa(20,2):s%!d%=j%!d%+100+FNc(s%,a%):F%=FNe(s%):M%=FNe(s%) s%!b%=j%!b%+100:F%!b%=s%!b%+s%!l%+40:M%!b%=F%!b%+F%!l%+40:PROCd(u%!L%):PROCd(u%!_%):FORi%=0-A%!g%TOA%!d%STEP5:PROCa("space",i%,A%!b%):NEXTi%:FORi%=e%!g%TOC%!d%STEP-5:PROCa("invaders",i%,C%!b%):NEXTi%:a$="PRESS SPACE TO PLAY":p%=LEN(a$)*e%!E%:y%=170 PROCb(FNb(p%,e%!g%),y%,a$,10):a$="OR Q TO QUIT":p%=LEN(a$)*e%!E%:y%-=e%!K%:PROCb(FNb(p%,e%!g%),y%,a$,10):WHILENOTINKEY(-99)ANDNOTINKEY(-17):PROCc(j%):a$="SCORE ADVANCE":p%=LEN(a$)*e%!E%:x%=j%!d%+FNb(p%,j%!g%):y%=j%!b%+j%!l%-20:PROCb(x%,y%,a$,0) a$="TABLE":y%-=e%!K%:p%=LEN(a$)*e%!E%:x%=j%!d%+FNb(p%,j%!g%):PROCb(x%,y%,a$,0):x%=a%!d%+a%!g%+10:PROCa("saucer_0",a%!d%,a%!b%):PROCb(x%,a%!b%+10,"= 500 POINTS !",0):PROCa("inv_3",M%!d%,M%!b%):PROCb(x%,M%!b%+20,"= 100 POINTS !",0) PROCa("inv_2",F%!d%,F%!b%):PROCb(x%,F%!b%+20,"= 75 POINTS !",0):PROCa("inv_1",s%!d%,s%!b%):PROCb(x%,s%!b%+20,"= 50 POINTS !",0):t%=TIME+750:REPEAT:UNTILTIME=t%ORINKEY(-17)ORINKEY(-99):IFINKEY(-17)THEN=TRUE IFINKEY(-99)THEN=FALSE PROCc(j%):a$="TODAY'S":IFaa%THENa$="ALL TIME" p%=LEN(a$)*e%!E%:x%=j%!d%+FNb(p%,j%!g%):y%=j%!b%+j%!l%-20:PROCb(x%,y%,a$,0):a$="HI SCORES":y%-=e%!K%:p%=LEN(a$)*e%!E%:x%=j%!d%+FNb(p%,j%!g%):PROCb(x%,y%,a$,0):y%=(j%!b%+j%!l%)-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$)*e%!E%:x%=j%!d%+FNb(p%,j%!g%):PROCb(x%,y%-(i%*(e%!K%+5)),a$,0):NEXTi%:t%=TIME+750:REPEAT:UNTILTIME=t%ORINKEY(-17)ORINKEY(-99):IFINKEY(-17)THEN=TRUE IFINKEY(-99)THEN=FALSE ENDWHILE:IFINKEY(-17)THEN=TRUE =FALSE DEFPROCh:LOCALh%,k%,a%,N%,Q%,p%,a$,x%,y%:DIMh% 52,k% 52,a% 52:Q%=X%:h%!g%=FNa(30,1):h%!l%=FNa(15,2):h%!d%=FNc(h%,e%):h%!b%=50:h%!z%=6:h%!Q%=3:h%!w%=h%!z%:k%!g%=FNa(5,1):k%!l%=FNa(20,2):k%!o%=FALSE:k%!z%=10 a%!g%=FNa(40,1):a%!l%=FNa(20,2):a%!b%=u%!L%-(10+a%!l%):a%!z%=5:a%!o%=FALSE:PROCi:REPEAT:N%=0:IFINKEY(-74)THENPROCj(h%!d%,h%!b%) IFINKEY(-98)THENPROCk:N%=1 IFINKEY(-67)THENPROCl:N%=2 IFINKEY(-82)THENPROCm IFINKEY(-17)THENh%!Q%=0 IFN%>0THEN IFN%<=2THEN h%!d%+=h%!w%:PROCa("base",h%!d%,h%!b%) ENDIF ENDIF PROCn:PROCo:UNTILh%!Q%=0:a$="GAME OVER!!!":p%=LEN(a$)*FNa(8,1):y%=e%!l%/2:PROCb(FNb(p%,e%!g%),y%,a$,10):PROCf(1000):ENDPROC DEFPROCk:IFh%!d%<=0THENh%!d%=0:ENDPROC h%!w%=0-h%!z%:ENDPROC DEFPROCl:IFh%!d%>=e%!g%-h%!g%THEN h%!d%=e%!g%-h%!g%:ENDPROC ELSE:h%!w%=0+h%!z% ENDIF ENDPROC DEFPROCj(x%,y%):IFk%!o%THENENDPROC k%!o%=TRUE:k%!d%=x%+(h%!g%/2):k%!b%=y%+h%!l%:ENDPROC DEFPROCm:ENDPROC REPEAT:UNTILNOTINKEY(-82):OSCLI"ScreenSave .Dump":ENDPROC DEFPROCn:LOCALR%,`%:R%=J%:IFNOTk%!o%THENENDPROC k%!R%=FALSE:IFk%!b%>=u%!L%-k%!l%THEN k%!o%=FALSE:k%!R%=TRUE ENDIF IFk%!R%THEN `%=FNe(k%):`%!b%-=2:PROCc(`%) ELSE:PROCa("shell",k%!d%,k%!b%) ENDIF k%!b%+=k%!z%:ENDPROC DEFPROCo:LOCALD%,B%,I%:D%=J%:B%=P%:I%=W%:IFNOTa%!o%THEN IFFNf(3)ANDFNf(1)THEN a%!o%=TRUE:a%!H%=FALSE:a%!I%=0:IFFNf(50)THEN a%!w%=0-a%!z%:a%!d%=e%!g% ELSE:a%!w%=0+a%!z%:a%!d%=0-a%!g% ENDIF ENDIF ELSE:a%!I%+=1:a%!B%+=1:IFa%!d%<=0-a%!g%ANDSGN(a%!w%)=-1THEN a%!D%=FALSE:a%!o%=FALSE:a%!B%=0:ENDPROC ENDIF IFa%!d%>e%!g%ANDSGN(a%!w%)=1THEN a%!D%=FALSE:a%!o%=FALSE:a%!B%=0:ENDPROC ENDIF IFNOTa%!H%THEN IFFNh(k%,a%)THEN PROCc(k%):PROCa("saucer_2",a%!d%,a%!b%):a%!D%=a%!B%:a%!H%=TRUE:k%!o%=FALSE ENDIF ELSE:IFFNh(k%,a%)THEN PROCc(k%):k%!o%=FALSE ENDIF ENDIF IFNOTa%!H%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%!L%):PROCd(u%!_%):PROCa("base",h%!d%,h%!b%):ENDPROC DEFPROCd(b%):LOCALi%,da%:da%=e%!g%/u%!g%:FORi%=1TOda%+1:PROCa("rail",(i%-1)*u%!g%,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%:e%!Y%=r%!0:e%!Z%=r%!4:e%!g%=(r%!8)+1<e%!ca%THENPROCe CASEea%OF WHEN1:O%=S%<>e%!Y% WHEN4:O%=S%>>e%!Z% OTHERWISE:ERROR255,"Unknown FNconv_units() operation : "+STR$(ea%) ENDCASE =O% 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%,G%):LOCALia%,ja%,ka%,la%:ka%=FALSE:la%=FALSE:IFm%!o%ANDG%!o%THEN ia%=G%!d%+G%!g%:ja%=G%!b%+G%!l%:IFm%!d%>=G%!d%ANDm%!d%<=ia%THENka%=TRUE IFm%!b%>=G%!b%ANDm%!b%<=ja%THENla%=TRUE ENDIF =ka%ANDla% DEFFNe(m%):LOCALq%:DIMq% 52:q%!d%=m%!d%:q%!b%=m%!b%:q%!g%=m%!g%:q%!l%=m%!l%:q%!w%=m%!w%:q%!z%=m%!z%:q%!o%=m%!o%:q%!H%=m%!H%:q%!J%=m%!J%:q%!P%=m%!P%:q%!W%=m%!W%:q%!X%=m%!X%:q%!ba%=m%!ba%:=q% DEFPROCc(m%):GCOL0,0TINT0:RECTANGLEFILLm%!d%,m%!b%,m%!g%,m%!l%:ENDPROC DEFFNb(ma%,e%):=(e%/2)-(ma%/2) DEFFNc(na%,oa%):=(oa%!g%/2)-(na%!g%/2) DEFPROCa(e$,x%,y%):OSCLI"SChoose "+e$:PLOT237,x%,y%:ENDPROC DEFFNf(n%):LOCALpa%:pa%=RND(100):=pa%<=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$,T%,g$):LOCALqa%,b$:qa%=T%-LEN(a$):IFqa%<=0THEN b$=LEFT$(a$,T%) ELSE:b$=a$+STRING$(qa%,g$) ENDIF =b$ DEFFNm(a$,T%):LOCALb$:b$=STRING$(T%," "):RIGHT$(b$,LEN(a$))=a$:=b$