REM>.!RunImage REM Squished by MH's BASIC cruncher v1.30 16/9/89 On 08 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:PROCh ENDIF d%=0:c%=4:e%=8:h%=12:D%=16:E%=20:o%=24:N%=28:W%=32:ca%=36:da%=40:ea%=44:X%=48:fa%=16:ga%=20:ha%=24:q%=28:A%=32:O%=W%:ia%=ca%:DIMb% 36,w% 52:MODE28:OFF:PROCf:b%!q%=FNa(8,1):b%!A%=FNa(8,2)+7:w%!e%=FNa(6,1):w%!h%=FNa(6,2):w%!O%=b%!h%-50:w%!ia%=30 REPEAT:CLS:_%=FNl:IFNOT_%THENCLS:PROCi UNTIL_%:CLS:PRINT"GoodBye!":END DEFFNl:LOCALi%,B%,F%,j%,m%,a$,x%,a%,v%,I%:LOCALP%,t%,y%,s$:DIMB% 16,F% 16,j% 16:DIMa% 16,v% 16:B%!e%=FNa(100,1):B%!h%=FNa(40,2):B%!d%=FNd(B%,b%):B%!c%=800:F%!e%=FNa(150,1):F%!h%=FNa(40,2):F%!d%=FNd(F%,b%):F%!c%=B%!c%-F%!h% j%!e%=630:j%!h%=500:j%!d%=FNd(j%,b%):j%!c%=200:a%!e%=FNa(40,1):a%!h%=FNa(20,2):a%!d%=j%!d%+150:a%!c%=(j%!c%+j%!h%)-160:v%!e%=FNa(20,1):v%!h%=FNa(20,2):v%!d%=j%!d%+150+FNd(v%,a%):I%=FNf(v%,16):P%=FNf(v%,16) v%!c%=j%!c%+100:I%!c%=v%!c%+v%!h%+40:P%!c%=I%!c%+I%!h%+40:PROCd(w%!O%):PROCd(w%!ia%):FORi%=0-B%!e%TOB%!d%STEP5:PROCa("space",i%,B%!c%):NEXTi%:FORi%=b%!e%TOF%!d%STEP-5:PROCa("invaders",i%,F%!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%!A%:PROCb(FNb(m%,b%!e%),y%,a$,10):WHILENOTINKEY(-99)ANDNOTINKEY(-17)ANDNOTINKEY(-82):PROCc(j%):a$="SCORE ADVANCE":m%=LEN(a$)*b%!q%:x%=j%!d%+FNb(m%,j%!e%):y%=j%!c%+j%!h%-20:PROCb(x%,y%,a$,0) a$="TABLE":y%-=b%!A%:m%=LEN(a$)*b%!q%:x%=j%!d%+FNb(m%,j%!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(j%):a$="TODAY'S":IFaa%THENa$="ALL TIME" m%=LEN(a$)*b%!q%:x%=j%!d%+FNb(m%,j%!e%):y%=j%!c%+j%!h%-20:PROCb(x%,y%,a$,0):a$="HI SCORES":y%-=b%!A%:m%=LEN(a$)*b%!q%:x%=j%!d%+FNb(m%,j%!e%):PROCb(x%,y%,a$,0):y%=(j%!c%+j%!h%)-100:a$=" POS."+STRING$(21," ")+"SCORE."+STRING$(3," ")+"RACK." m%=LEN(a$)*b%!q%:x%=j%!d%+FNb(m%,j%!e%):PROCb(x%,y%,a$,0):y%-=2*b%!A%: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%=j%!d%+FNb(m%,j%!e%):PROCb(x%,y%-(i%*(b%!A%+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 DEFPROCi:LOCALg%,k%,a%,s%,H%:LOCALQ%:LOCALR%,ja%,ka%,la%:LOCALS%,m%,a$,x%,y%:DIMg% 52,k% 52,a% 52,s% 36,Q% 16,c%(10,6):DIMH% 12:R%=0:ma%=4:ja%=8:ka%=W%:la%=ca%:g%!e%=FNa(30,1):g%!h%=FNa(15,2):g%!d%=FNd(g%,b%):g%!c%=50:g%!E%=6:g%!D%=g%!E% k%!e%=FNa(5,1):k%!h%=FNa(20,2):k%!o%=FALSE:k%!E%=10:a%!e%=FNa(40,1):a%!h%=FNa(20,2):a%!c%=w%!O%-(10+a%!h%):a%!E%=5:a%!o%=FALSE:Q%!e%=FNa(20,1):Q%!h%=FNa(20,2):s%!la%=FNa(20,1):H%!ja%=1:H%!ma%=0:H%!R%=3 PROCd(w%!O%):PROCd(w%!ia%):PROCj(0,a%(1),H%!R%,H%!ja%):PROCk:PROCa("base",g%!d%,g%!c%):REPEAT:S%=0:IFINKEY(-74)THENPROCl(g%!d%,g%!c%) IFINKEY(-98)THENPROCm:S%=1 IFINKEY(-67)THENPROCn:S%=2 IFINKEY(-82)THENPROCe IFINKEY(-17)THENH%!R%=0 IFS%>0THEN IFS%<=2THEN g%!d%+=g%!D%:PROCa("base",g%!d%,g%!c%) ENDIF ENDIF PROCo:PROCp:UNTILH%!R%=0:a$="GAME OVER!!!":m%=LEN(a$)*b%!q%:y%=b%!h%/2:PROCb(FNb(m%,b%!e%),y%,a$,10):PROCg(750):ENDPROC DEFPROCm:IFg%!d%<=0THENg%!d%=0:ENDPROC g%!D%=0-g%!E%:ENDPROC DEFPROCn:IFg%!d%>=b%!e%-g%!e%THEN g%!d%=b%!e%-g%!e%:ENDPROC ELSE:g%!D%=0+g%!E% ENDIF ENDPROC DEFPROCl(x%,y%):IFk%!o%THENENDPROC k%!o%=TRUE:k%!d%=x%+(g%!e%/2):k%!c%=y%+g%!h%:ENDPROC DEFPROCe:REPEAT:UNTILNOTINKEY(-82):OSCLI"ScreenSave .Dump"+STR$(ba%):ba%+=1:ENDPROC DEFPROCo:LOCALY%,na%:Y%=W%:IFNOTk%!o%THENENDPROC k%!Y%=FALSE:IFk%!c%>=w%!O%-k%!h%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%!E%:ENDPROC DEFPROCp:LOCALG%,C%,L%:G%=W%:C%=ca%:L%=da%:IFNOTa%!o%THEN IFFNg(3)ANDFNg(1)THEN a%!o%=TRUE:a%!N%=FALSE:a%!L%=0:IFFNg(50)THEN a%!D%=0-a%!E%:a%!d%=b%!e% ELSE:a%!D%=0+a%!E%:a%!d%=0-a%!e% ENDIF ENDIF ELSE:a%!L%+=1:a%!C%+=1:IFa%!d%<=0-a%!e%ANDSGN(a%!D%)=-1THEN a%!G%=FALSE:a%!o%=FALSE:a%!C%=0:ENDPROC ENDIF IFa%!d%>b%!e%ANDSGN(a%!D%)=1THEN a%!G%=FALSE:a%!o%=FALSE:a%!C%=0:ENDPROC ENDIF IFNOTa%!N%THEN IFFNj(k%,a%)THEN PROCc(k%):PROCa("saucer_2",a%!d%,a%!c%):a%!G%=a%!C%:a%!N%=TRUE:k%!o%=FALSE:PROCq(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%!D% ELSE:IFa%!C%>=a%!G%+200THEN PROCc(a%):a%!o%=FALSE:a%!G%=FALSE:a%!C%=0 ELSE:IFa%!C%>=a%!G%+175THEN PROCa("saucer_5",a%!d%,a%!c%) ELSE:IFa%!C%>=a%!G%+150THEN PROCa("saucer_4",a%!d%,a%!c%) ELSE:IFa%!C%>=a%!G%+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 DEFPROCh:LOCALi%,p%:p%=OPENIN".Resources.HiTable":FORi%=1TO10:INPUT#p%,a$(i%),a%(i%):INPUT#p%,b%(i%):NEXTi%:CLOSE#p%:ENDPROC DEFPROCt:LOCALi%,p%:p%=OPENOUT".Resources.HiTable":FORi%=1TO10:PRINT#p%,a$(i%),a%(i%):PRINT#p%,b%(i%):NEXTi%:CLOSE#p%:ENDPROC DEFPROCj(oa%,pa%,l%,r%):LOCALx%,a$:a$="SCORE :-"+FNc(STR$(oa%),10," ",TRUE):PROCb(0,b%!h%-b%!A%,a$,0):a$="HI SCORE :-":a$+=FNc(STR$(pa%),10," ",TRUE):x%=b%!e%-LEN(a$)*b%!q%:PROCb(x%,b%!h%-b%!A%,a$,0):PROCr(l%):PROCs(r%):ENDPROC DEFPROCr(qa%):LOCALa$:PROCa("base",0,0):a$=" = "+STR$(qa%):PROCb(g%!e%,0,a$,0):ENDPROC DEFPROCs(qa%):LOCALx%,a$:a$="RACK :-"+FNc(STR$(qa%),3,"0",TRUE):x%=b%!e%-LEN(a$)*b%!q%:PROCb(x%,0,a$,0):ENDPROC DEFPROCq(ra%):LOCALx%,a$:g%!X%+=ra%:a$="SCORE :-"+FNc(STR$(g%!X%),10,"0",TRUE):PROCb(0,b%!h%-b%!A%,a$,0):IFg%!X%>a%(1)THEN a$="HI SCORE :-":a$+=FNc(STR$(g%!X%),10,"0",TRUE):x%=b%!e%-LEN(a$)*b%!q%:PROCb(x%,b%!h%-b%!A%,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%!fa%=u%!0:b%!ga%=u%!4:b%!e%=(u%!8)+1<b%!ha%THENPROCf CASEta%OF WHEN1:T%=J%<>b%!fa% WHEN4:T%=J%>>b%!ga% OTHERWISE:ERROR255,"Unknown FNconv_units() operation : "+STR$(ta%) ENDCASE =T% 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%>0THENPROCg(va%) NEXTi%:ENDPROC DEFFNj(z%,K%):LOCALxa%,ya%,za%,Aa%:za%=FALSE:Aa%=FALSE:IFz%!o%ANDK%!o%THEN xa%=K%!d%+K%!e%:ya%=K%!c%+K%!h%:IFz%!d%>=K%!d%ANDz%!d%<=xa%THENza%=TRUE IFz%!c%>=K%!c%ANDz%!c%<=ya%THENAa%=TRUE ENDIF =za%ANDAa% DEFFNf(z%,J%):LOCALZ%,Ba%:DIMBa% J%:FORZ%=0TOJ%-4STEP4:Ba%!Z%=z%!Z%:NEXTZ%:=Ba% DEFPROCc(z%):GCOL0,0TINT0:RECTANGLEFILLz%!d%,z%!c%,z%!e%,z%!h%:ENDPROC DEFFNb(Ca%,b%):=(b%/2)-(Ca%/2) DEFFNd(Da%,Ea%):=(Ea%!e%/2)-(Da%!e%/2) DEFPROCk:LOCALM%,U%,x%,y%:s%!e%=10:s%!h%=6:s%!d%=50:s%!c%=550:s%!ka%=0:s%!N%=0:FORU%=1TOs%!e%:x%=s%!d%+((U%-1)*(Q%!e%+s%!la%)):FORM%=1TOs%!h%:c%(U%,M%)=((M%+1)/2)+(s%!ka%*10):y%=s%!c%+((M%-1)*Q%!h%):PROCa("inv_"+STR$(c%(U%,M%)),x%,y%):NEXTM%:NEXTU%:ENDPROC DEFPROCa(e$,x%,y%):OSCLI"SChoose "+e$:PLOT237,x%,y%:ENDPROC DEFFNg(n%):LOCALFa%:Fa%=RND(100):=Fa%<=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$ 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$