REM>.!RunImage REM Squished by MH's BASIC cruncher v1.30 16/9/89 On 09 Dec 2007 ONERRORREPORT:PRINT" at line ";ERL:END _%=FALSE:aa%=TRUE:ba%=0:DIMa$(10),a%(10):DIMb%(10):`%=0:IFFNe(".Resources.Gfx0")<>1THEN`%+=1 IFFNe(".Resources.Gfx1")<>1THEN`%+=1 IF`%THENERROR255,"File Missing!!" OSCLI"SLoad .Resources.Gfx0":OSCLI"SMerge .Resources.Gfx1":IFFNe(".Resources.HiTable")<>1THEN IFNOTFNkTHENaa%=FALSE ELSE:PROCi ENDIF d%=0:c%=4:e%=8:g%=12:E%=16:F%=20:o%=24:N%=28:X%=32:ca%=36:da%=40:ea%=44:fa%=48:ga%=16:ha%=20:ia%=24:q%=28:B%=32:O%=X%:ja%=ca%:DIMb% 36,w% 52:MODE28:OFF:PROCf:b%!q%=FNa(8,1):b%!B%=FNa(8,2)+7:w%!e%=FNa(6,1):w%!g%=FNa(6,2):w%!O%=b%!g%-50:w%!ja%=30 REPEAT:CLS:_%=FNl:IFNOT_%THENCLS:PROCj UNTIL_%:CLS:PROCg("GOODBYE!!!",10):END DEFFNl:LOCALi%,C%,G%,h%,m%,a$,x%,a%,v%,I%:LOCALP%,t%,y%,s$:DIMC% 16,G% 16,h% 16:DIMa% 16,v% 16:C%!e%=FNa(100,1):C%!g%=FNa(40,2):C%!d%=FNd(C%,b%):C%!c%=800:G%!e%=FNa(150,1):G%!g%=FNa(40,2):G%!d%=FNd(G%,b%):G%!c%=C%!c%-G%!g% h%!e%=630:h%!g%=500:h%!d%=FNd(h%,b%):h%!c%=200:a%!e%=FNa(40,1):a%!g%=FNa(20,2):a%!d%=h%!d%+150:a%!c%=(h%!c%+h%!g%)-160:v%!e%=FNa(20,1):v%!g%=FNa(20,2):v%!d%=h%!d%+150+FNd(v%,a%):I%=FNf(v%,16):P%=FNf(v%,16) v%!c%=h%!c%+100:I%!c%=v%!c%+v%!g%+40:P%!c%=I%!c%+I%!g%+40:PROCd(w%!O%):PROCd(w%!ja%):FORi%=0-C%!e%TOC%!d%STEP5:PROCa("space",i%,C%!c%):NEXTi%:FORi%=b%!e%TOG%!d%STEP-5:PROCa("invaders",i%,G%!c%):NEXTi%:a$="PRESS SPACE TO PLAY":m%=LEN(a$)*b%!q%:y%=170 PROCb(FNb(m%,b%!e%),y%,a$,10):a$="OR Q TO QUIT":m%=LEN(a$)*b%!q%:y%-=b%!B%:PROCb(FNb(m%,b%!e%),y%,a$,10):WHILENOTINKEY(-99)ANDNOTINKEY(-17)ANDNOTINKEY(-82):PROCc(h%):a$="SCORE ADVANCE":m%=LEN(a$)*b%!q%:x%=h%!d%+FNb(m%,h%!e%):y%=h%!c%+h%!g%-20:PROCb(x%,y%,a$,0) a$="TABLE":y%-=b%!B%:m%=LEN(a$)*b%!q%:x%=h%!d%+FNb(m%,h%!e%):PROCb(x%,y%,a$,0):x%=a%!d%+a%!e%+10:PROCa("saucer_0",a%!d%,a%!c%):PROCb(x%,a%!c%+10,"= 500 POINTS !",0):PROCa("inv_3",P%!d%,P%!c%):PROCb(x%,P%!c%+20,"= 100 POINTS !",0) PROCa("inv_2",I%!d%,I%!c%):PROCb(x%,I%!c%+20,"= 75 POINTS !",0):PROCa("inv_1",v%!d%,v%!c%):PROCb(x%,v%!c%+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(h%):a$="TODAY'S":IFaa%THENa$="ALL TIME" m%=LEN(a$)*b%!q%:x%=h%!d%+FNb(m%,h%!e%):y%=h%!c%+h%!g%-20:PROCb(x%,y%,a$,0):a$="HI SCORES":y%-=b%!B%:m%=LEN(a$)*b%!q%:x%=h%!d%+FNb(m%,h%!e%):PROCb(x%,y%,a$,0):y%=(h%!c%+h%!g%)-100:a$=" POS."+STRING$(21," ")+"SCORE."+STRING$(3," ")+"RACK." m%=LEN(a$)*b%!q%:x%=h%!d%+FNb(m%,h%!e%):PROCb(x%,y%,a$,0):y%-=2*b%!B%: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):m%=LEN(a$)*b%!q%:x%=h%!d%+FNb(m%,h%!e%):PROCb(x%,y%-(i%*(b%!B%+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 DEFPROCj:LOCALj%,k%,a%,s%,z%:LOCALQ%:LOCALR%,ka%,la%,ma%:LOCALS%,m%,a$,x%,y%:DIMj% 52,k% 52,a% 52,s% 36,Q% 16,c%(10,6):DIMz% 12:R%=0:T%=4:ka%=8:la%=X%:ma%=ca%:j%!e%=FNa(30,1):j%!g%=FNa(15,2):j%!d%=FNd(j%,b%):j%!c%=50:j%!F%=6:j%!E%=j%!F% k%!e%=FNa(5,1):k%!g%=FNa(20,2):k%!o%=FALSE:k%!F%=10:a%!e%=FNa(40,1):a%!g%=FNa(20,2):a%!c%=w%!O%-(10+a%!g%):a%!F%=5:a%!o%=FALSE:Q%!e%=FNa(20,1):Q%!g%=FNa(20,2):s%!ma%=FNa(20,1):z%!ka%=1:z%!T%=0:z%!R%=3 PROCd(w%!O%):PROCd(w%!ja%):PROCk(0,a%(1),z%!R%,z%!ka%):PROCl:PROCa("base",j%!d%,j%!c%):REPEAT:S%=0:IFINKEY(-74)THENPROCm(j%!d%,j%!c%) IFINKEY(-98)THENPROCn:S%=1 IFINKEY(-67)THENPROCo:S%=2 IFINKEY(-82)THENPROCe IFINKEY(-17)THENz%!R%=0 IFS%>0THEN IFS%<=2THEN j%!d%+=j%!E%:PROCa("base",j%!d%,j%!c%) ENDIF ENDIF PROCp:PROCq:UNTILz%!R%=0:PROCg("GAME OVER!!!",10):PROCh(750):ENDPROC DEFPROCn:IFj%!d%<=0THENj%!d%=0:ENDPROC j%!E%=0-j%!F%:ENDPROC DEFPROCo:IFj%!d%>=b%!e%-j%!e%THEN j%!d%=b%!e%-j%!e%:ENDPROC ELSE:j%!E%=0+j%!F% ENDIF ENDPROC DEFPROCm(x%,y%):IFk%!o%THENENDPROC k%!o%=TRUE:k%!d%=x%+(j%!e%/2):k%!c%=y%+j%!g%:ENDPROC DEFPROCe:REPEAT:UNTILNOTINKEY(-82):OSCLI"ScreenSave .Dump"+STR$(ba%):ba%+=1:ENDPROC DEFPROCp:LOCALY%,na%:Y%=X%:IFNOTk%!o%THENENDPROC k%!Y%=FALSE:IFk%!c%>=w%!O%-k%!g%THEN k%!o%=FALSE:k%!Y%=TRUE ENDIF IFk%!Y%THEN na%=FNf(k%,52):na%!c%-=2:PROCc(na%) ELSE:PROCa("shell",k%!d%,k%!c%) ENDIF k%!c%+=k%!F%:ENDPROC DEFPROCq:LOCALH%,D%,L%:H%=X%:D%=ca%:L%=da%:IFNOTa%!o%THEN IFFNg(3)ANDFNg(1)THEN a%!o%=TRUE:a%!N%=FALSE:a%!L%=0:IFFNg(50)THEN a%!E%=0-a%!F%:a%!d%=b%!e% ELSE:a%!E%=0+a%!F%:a%!d%=0-a%!e% ENDIF ENDIF ELSE:a%!L%+=1:a%!D%+=1:IFa%!d%<=0-a%!e%ANDSGN(a%!E%)=-1THEN a%!H%=FALSE:a%!o%=FALSE:a%!D%=0:ENDPROC ENDIF IFa%!d%>b%!e%ANDSGN(a%!E%)=1THEN a%!H%=FALSE:a%!o%=FALSE:a%!D%=0:ENDPROC ENDIF IFNOTa%!N%THEN IFFNj(k%,a%)THEN PROCc(k%):PROCa("saucer_2",a%!d%,a%!c%):a%!H%=a%!D%:a%!N%=TRUE:k%!o%=FALSE:PROCr(500) ENDIF ELSE:IFFNj(k%,a%)THEN PROCc(k%):k%!o%=FALSE ENDIF ENDIF IFNOTa%!N%THEN IFa%!L%>=100THENa%!L%=0 IFa%!L%<50THEN PROCa("saucer_0",a%!d%,a%!c%) ELSE:PROCa("saucer_1",a%!d%,a%!c%) ENDIF a%!d%+=a%!E% ELSE:IFa%!D%>=a%!H%+200THEN PROCc(a%):a%!o%=FALSE:a%!H%=FALSE:a%!D%=0 ELSE:IFa%!D%>=a%!H%+175THEN PROCa("saucer_5",a%!d%,a%!c%) ELSE:IFa%!D%>=a%!H%+150THEN PROCa("saucer_4",a%!d%,a%!c%) ELSE:IFa%!D%>=a%!H%+100THEN PROCa("saucer_3",a%!d%,a%!c%) ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDPROC DEFFNk:LOCALi%,p%,n$:FORi%=1TO10:IFi%MOD2=0THENn$="Software"ELSEn$="DynaByte" a$(i%)=FNh(n$):a%(i%)=(11-i%)*1000:b%(i%)=0:NEXTi%:p%=OPENOUT".Resources.HiTable":IFp%=0THEN=FALSE FORi%=1TO10:PRINT#p%,a$(i%),a%(i%):PRINT#p%,b%(i%):NEXTi%:CLOSE#p%:=TRUE DEFPROCi:LOCALi%,p%:p%=OPENIN".Resources.HiTable":FORi%=1TO10:INPUT#p%,a$(i%),a%(i%):INPUT#p%,b%(i%):NEXTi%:CLOSE#p%:ENDPROC DEFPROCu:LOCALi%,p%:p%=OPENOUT".Resources.HiTable":FORi%=1TO10:PRINT#p%,a$(i%),a%(i%):PRINT#p%,b%(i%):NEXTi%:CLOSE#p%:ENDPROC DEFPROCk(oa%,pa%,l%,r%):LOCALx%,a$:a$="SCORE :-"+FNc(STR$(oa%),10," ",TRUE):PROCb(0,b%!g%-b%!B%,a$,0):a$="HI SCORE :-":a$+=FNc(STR$(pa%),10," ",TRUE):x%=b%!e%-LEN(a$)*b%!q%:PROCb(x%,b%!g%-b%!B%,a$,0):PROCs(l%):PROCt(r%):ENDPROC DEFPROCs(qa%):LOCALa$:PROCa("base",0,0):a$=" = "+STR$(qa%):PROCb(j%!e%,0,a$,0):ENDPROC DEFPROCt(qa%):LOCALx%,a$:a$="RACK :-"+FNc(STR$(qa%),3,"0",TRUE):x%=b%!e%-LEN(a$)*b%!q%:PROCb(x%,0,a$,0):ENDPROC DEFPROCr(ra%):LOCALx%,a$:z%!T%+=ra%:a$="SCORE :-"+FNc(STR$(z%!T%),10," ",TRUE):PROCb(0,b%!g%-b%!B%,a$,0):IFz%!T%>a%(1)THEN a$="HI SCORE :-":a$+=FNc(STR$(z%!T%),10," ",TRUE):x%=b%!e%-LEN(a$)*b%!q%:PROCb(x%,b%!g%-b%!B%,a$,0) ENDIF ENDPROC DEFPROCd(c%):LOCALi%,sa%:sa%=b%!e%/w%!e%:FORi%=1TOsa%+1:PROCa("rail",(i%-1)*w%!e%,c%):NEXTi%:ENDPROC DEFPROCf:LOCALu%:DIMu% 20:u%!0=4:u%!4=5:u%!8=11:u%!12=12:u%!16=-1:SYS"OS_ReadVduVariables",u%,u%:b%!ga%=u%!0:b%!ha%=u%!4:b%!e%=(u%!8)+1<b%!ia%THENPROCf CASEta%OF WHEN1:U%=J%<>b%!ga% WHEN4:U%=J%>>b%!ha% OTHERWISE:ERROR255,"Unknown FNconv_units() operation : "+STR$(ta%) ENDCASE =U% DEFPROCb(x%,y%,a$,va%):LOCALi%,wa%:wa%=b%!q%:FORi%=1TOLEN(a$):PROCa(STR$(ASC(MID$(a$,i%,1))),x%+((i%-1)*wa%),y%):IFva%>0THENPROCh(va%) NEXTi%:ENDPROC DEFFNj(A%,K%):LOCALxa%,ya%,za%,Aa%:za%=FALSE:Aa%=FALSE:IFA%!o%ANDK%!o%THEN xa%=K%!d%+K%!e%:ya%=K%!c%+K%!g%:IFA%!d%>=K%!d%ANDA%!d%<=xa%THENza%=TRUE IFA%!c%>=K%!c%ANDA%!c%<=ya%THENAa%=TRUE ENDIF =za%ANDAa% DEFFNf(A%,J%):LOCALZ%,Ba%:DIMBa% J%:FORZ%=0TOJ%-4STEP4:Ba%!Z%=A%!Z%:NEXTZ%:=Ba% DEFPROCc(A%):GCOL0,0TINT0:RECTANGLEFILLA%!d%,A%!c%,A%!e%,A%!g%:ENDPROC DEFFNb(Ca%,b%):=(b%/2)-(Ca%/2) DEFPROCg(a$,Da%):LOCALm%,y%:m%=LEN(a$)*b%!q%:y%=b%!g%/2:PROCb(FNb(m%,b%!e%),y%,a$,Da%):ENDPROC DEFFNd(Ea%,Fa%):=(Fa%!e%/2)-(Ea%!e%/2) DEFPROCl:LOCALM%,V%,x%,y%:s%!e%=10:s%!g%=6:s%!d%=50:s%!c%=550:s%!la%=0:s%!N%=0:FORV%=1TOs%!e%:x%=s%!d%+((V%-1)*(Q%!e%+s%!ma%)):FORM%=1TOs%!g%:c%(V%,M%)=((M%+1)/2)+(s%!la%*10):y%=s%!c%+((M%-1)*Q%!g%):PROCa("inv_"+STR$(c%(V%,M%)),x%,y%):NEXTM%:NEXTV%:ENDPROC DEFPROCa(e$,x%,y%):OSCLI"SChoose "+e$:PLOT237,x%,y%:ENDPROC DEFFNg(n%):LOCALGa%:Ga%=RND(100):=Ga%<=n% DEFFNe(f$):LOCALf%:SYS"XOS_File",17,f$TOf%:=f% C(MID$(a$,i%,1))EOR131):NEXTi%:=c$ DEFPROCg(n%):LOCALt%:t%=TIME+n%:REPEAT:UNTILTIME>=t%:ENDPROC DEFFNc(a$,V%,d$,Ga%):LOCALHa%,b$:Ha%=V%-LEN(a$):IFHa%<=0THEN b$=LEFT$(a$,V%) ELSE:IFGa%THEN b$=STRING$(V%,d$):RIGHT$(b$,LEN(a$))=a$ ELSE:b$=a$+STRING$(Ha%,d$) ENDIF ENDIF =b$ DEFFNi(a$,V%):LOCALb$:b$=STRING$(V%," "):RIGHT$(b$,LEN(a$))=a$:=b$