REM>.!RunImage REM Squished by MH's BASIC cruncher v1.30 16/9/89 On 02 Dec 2007 ONERRORREPORT:PRINT" at line ";ERL:END S%=FALSE:aa%=TRUE:DIMa$(10),a%(10):T%=0:IFFNd(".Resources.Gfx0")<>1THENT%+=1 IFFNd(".Resources.Gfx1")<>1THENT%+=1 IFT%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:z%=16:A%=20:o%=24:N%=28:U%=32:ba%=36:ca%=40:da%=44:ea%=48:V%=16:W%=20:fa%=24:B%=28:I%=32:J%=U%:X%=ba%:DIMe% 36,r% 52:MODE28:OFF:PROCe:e%!B%=FNa(8,1):e%!I%=FNa(8,2)+7:r%!g%=FNa(6,1):r%!l%=FNa(6,2):r%!J%=e%!l%-50:r%!X%=30 REPEAT:CLS:S%=FNj:IFNOTS%THENCLS:PROCh UNTILS%:CLS:PRINT"GoodBye!":END DEFFNj:LOCALi%,v%,C%,j%,m%,a$,x%,a%,q%,E%:LOCALK%,t%,y%,s$:DIMv% 16,C% 16,j% 16:DIMa% 16,q% 16:v%!g%=FNa(100,1):v%!l%=FNa(40,2):v%!d%=FNc(v%,e%):v%!b%=800:C%!g%=FNa(150,1):C%!l%=FNa(40,2):C%!d%=FNc(C%,e%):C%!b%=v%!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:q%!g%=FNa(20,1):q%!l%=FNa(20,2):q%!d%=j%!d%+100+FNc(q%,a%):E%=FNe(q%,16):K%=FNe(q%,16) q%!b%=j%!b%+100:E%!b%=q%!b%+q%!l%+40:K%!b%=E%!b%+E%!l%+40:PROCd(r%!J%):PROCd(r%!X%):FORi%=0-v%!g%TOv%!d%STEP5:PROCa("space",i%,v%!b%):NEXTi%:FORi%=e%!g%TOC%!d%STEP-5:PROCa("invaders",i%,C%!b%):NEXTi%:a$="PRESS SPACE TO PLAY":m%=LEN(a$)*e%!B%:y%=170 PROCb(FNb(m%,e%!g%),y%,a$,10):a$="OR Q TO QUIT":m%=LEN(a$)*e%!B%:y%-=e%!I%:PROCb(FNb(m%,e%!g%),y%,a$,10):WHILENOTINKEY(-99)ANDNOTINKEY(-17):PROCc(j%):a$="SCORE ADVANCE":m%=LEN(a$)*e%!B%:x%=j%!d%+FNb(m%,j%!g%):y%=j%!b%+j%!l%-20:PROCb(x%,y%,a$,0) a$="TABLE":y%-=e%!I%:m%=LEN(a$)*e%!B%:x%=j%!d%+FNb(m%,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",K%!d%,K%!b%):PROCb(x%,K%!b%+20,"= 100 POINTS !",0) PROCa("inv_2",E%!d%,E%!b%):PROCb(x%,E%!b%+20,"= 75 POINTS !",0):PROCa("inv_1",q%!d%,q%!b%):PROCb(x%,q%!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" m%=LEN(a$)*e%!B%:x%=j%!d%+FNb(m%,j%!g%):y%=j%!b%+j%!l%-20:PROCb(x%,y%,a$,0):a$="HI SCORES":y%-=e%!I%:m%=LEN(a$)*e%!B%:x%=j%!d%+FNb(m%,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):m%=LEN(a$)*e%!B%:x%=j%!d%+FNb(m%,j%!g%):PROCb(x%,y%-(i%*(e%!I%+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%,L%,O%,m%,a$,x%,y%:DIMh% 52,k% 52,a% 52:O%=da%:h%!g%=FNa(30,1):h%!l%=FNa(15,2):h%!d%=FNc(h%,e%):h%!b%=50:h%!A%=6:h%!O%=3:h%!z%=h%!A%:k%!g%=FNa(5,1):k%!l%=FNa(20,2):k%!o%=FALSE:k%!A%=10 a%!g%=FNa(40,1):a%!l%=FNa(20,2):a%!b%=r%!J%-(10+a%!l%):a%!A%=5:a%!o%=FALSE:PROCi:REPEAT:L%=0:IFINKEY(-74)THENPROCj(h%!d%,h%!b%) IFINKEY(-98)THENPROCk:L%=1 IFINKEY(-67)THENPROCl:L%=2 IFINKEY(-82)THENPROCm IFINKEY(-17)THENh%!O%=0 IFL%>0THEN IFL%<=2THEN h%!d%+=h%!z%:PROCa("base",h%!d%,h%!b%) ENDIF ENDIF PROCn:PROCo:UNTILh%!O%=0:a$="GAME OVER!!!":m%=LEN(a$)*FNa(8,1):y%=e%!l%/2:PROCb(FNb(m%,e%!g%),y%,a$,10):PROCf(1000):ENDPROC DEFPROCk:IFh%!d%<=0THENh%!d%=0:ENDPROC h%!z%=0-h%!A%:ENDPROC DEFPROCl:IFh%!d%>=e%!g%-h%!g%THEN h%!d%=e%!g%-h%!g%:ENDPROC ELSE:h%!z%=0+h%!A% 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:LOCALP%,Y%:P%=U%:IFNOTk%!o%THENENDPROC k%!P%=FALSE:IFk%!b%>=r%!J%-k%!l%THEN k%!o%=FALSE:k%!P%=TRUE ENDIF IFk%!P%THEN Y%=FNe(k%,52):Y%!b%-=2:PROCc(Y%) ELSE:PROCa("shell",k%!d%,k%!b%) ENDIF k%!b%+=k%!A%:ENDPROC DEFPROCo:LOCALD%,w%,H%:D%=U%:w%=ba%:H%=ca%:IFNOTa%!o%THEN IFFNf(3)ANDFNf(1)THEN a%!o%=TRUE:a%!N%=FALSE:a%!H%=0:IFFNf(50)THEN a%!z%=0-a%!A%:a%!d%=e%!g% ELSE:a%!z%=0+a%!A%:a%!d%=0-a%!g% ENDIF ENDIF ELSE:a%!H%+=1:a%!w%+=1:IFa%!d%<=0-a%!g%ANDSGN(a%!z%)=-1THEN a%!D%=FALSE:a%!o%=FALSE:a%!w%=0:ENDPROC ENDIF IFa%!d%>e%!g%ANDSGN(a%!z%)=1THEN a%!D%=FALSE:a%!o%=FALSE:a%!w%=0:ENDPROC ENDIF IFNOTa%!N%THEN IFFNh(k%,a%)THEN PROCc(k%):PROCa("saucer_2",a%!d%,a%!b%):a%!D%=a%!w%:a%!N%=TRUE:k%!o%=FALSE ENDIF ELSE:IFFNh(k%,a%)THEN PROCc(k%):k%!o%=FALSE ENDIF ENDIF IFNOTa%!N%THEN IFa%!H%>=100THENa%!H%=0 IFa%!H%<50THEN PROCa("saucer_0",a%!d%,a%!b%) ELSE:PROCa("saucer_1",a%!d%,a%!b%) ENDIF a%!d%+=a%!z% ELSE:IFa%!w%>=a%!D%+200THEN PROCc(a%):a%!o%=FALSE:a%!D%=FALSE:a%!w%=0 ELSE:IFa%!w%>=a%!D%+175THEN PROCa("saucer_5",a%!d%,a%!b%) ELSE:IFa%!w%>=a%!D%+150THEN PROCa("saucer_4",a%!d%,a%!b%) ELSE:IFa%!w%>=a%!D%+100THEN PROCa("saucer_3",a%!d%,a%!b%) ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDPROC DEFFNi:LOCALi%,s%,n$:FORi%=1TO10:IFi%MOD2=0THENn$="Software"ELSEn$="DynaByte" a$(i%)=FNg(n$):a%(i%)=(11-i%)*1000:NEXTi%:s%=OPENOUT".Resources.HiTable":IFs%=0THEN=FALSE FORi%=1TO10:PRINT#s%,a$(i%),a%(i%):NEXTi%:CLOSE#s%:=TRUE DEFPROCg:LOCALi%,s%:s%=OPENIN".Resources.HiTable":FORi%=1TO10:INPUT#s%,a$(i%),a%(i%):NEXTi%:CLOSE#s%:ENDPROC DEFPROCp:LOCALi%,s%:s%=OPENOUT".Resources.HiTable":FORi%=1TO10:PRINT#s%,a$(i%),a%(i%):NEXTi%:CLOSE#s%:ENDPROC DEFPROCi:PROCd(r%!J%):PROCd(r%!X%):PROCa("base",h%!d%,h%!b%):ENDPROC DEFPROCd(b%):LOCALi%,ga%:ga%=e%!g%/r%!g%:FORi%=1TOga%+1:PROCa("rail",(i%-1)*r%!g%,b%):NEXTi%:ENDPROC DEFPROCe:LOCALp%:DIMp% 20:p%!0=4:p%!4=5:p%!8=11:p%!12=12:p%!16=-1:SYS"OS_ReadVduVariables",p%,p%:e%!V%=p%!0:e%!W%=p%!4:e%!g%=(p%!8)+1<e%!fa%THENPROCe CASEha%OF WHEN1:M%=F%<>e%!V% WHEN4:M%=F%>>e%!W% OTHERWISE:ERROR255,"Unknown FNconv_units() operation : "+STR$(ha%) ENDCASE =M% DEFPROCb(x%,y%,a$,ja%):LOCALi%,ka%:ka%=e%!B%:FORi%=1TOLEN(a$):PROCa(STR$(ASC(MID$(a$,i%,1))),x%+((i%-1)*ka%),y%):IFja%>0THENPROCf(ja%) NEXTi%:ENDPROC DEFFNh(u%,G%):LOCALla%,ma%,Z%,_%:Z%=FALSE:_%=FALSE:IFu%!o%ANDG%!o%THEN la%=G%!d%+G%!g%:ma%=G%!b%+G%!l%:IFu%!d%>=G%!d%ANDu%!d%<=la%THENZ%=TRUE IFu%!b%>=G%!b%ANDu%!b%<=ma%THEN_%=TRUE ENDIF =Z%AND_% DEFFNe(u%,F%):LOCALQ%,`%:DIM`% F%:FORQ%=0TOF%-4STEP4:`%!Q%=u%!Q%:NEXTQ%:=`% DEFPROCc(u%):GCOL0,0TINT0:RECTANGLEFILLu%!d%,u%!b%,u%!g%,u%!l%:ENDPROC DEFFNb(na%,e%):=(e%/2)-(na%/2) DEFFNc(oa%,pa%):=(pa%!g%/2)-(oa%!g%/2) DEFPROCa(e$,x%,y%):OSCLI"SChoose "+e$:PLOT237,x%,y%:ENDPROC DEFFNf(n%):LOCALqa%:qa%=RND(100):=qa%<=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$,R%,g$):LOCALra%,b$:ra%=R%-LEN(a$):IFra%<=0THEN b$=LEFT$(a$,R%) ELSE:b$=a$+STRING$(ra%,g$) ENDIF =b$ DEFFNm(a$,R%):LOCALb$:b$=STRING$(R%," "):RIGHT$(b$,LEN(a$))=a$:=b$