REM>.!RunImage REM Squished by MH's BASIC cruncher v1.30 16/9/89 On 06 Dec 2007 ONERRORREPORT:PRINT" at line ";ERL:END T%=FALSE:aa%=TRUE:ba%=0:DIMa$(10),a%(10):DIMb%(10):U%=0:IFFNe(".Resources.Gfx0")<>1THENU%+=1 IFFNe(".Resources.Gfx1")<>1THENU%+=1 IFU%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:j%=12:A%=16:B%=20:m%=24:P%=28:Q%=32:ca%=36:da%=40:ea%=44:H%=48:V%=16:W%=20:fa%=24:q%=28:v%=32:J%=Q%:X%=ca%:DIMb% 36,s% 52:MODE28:OFF:PROCf:b%!q%=FNa(8,1):b%!v%=FNa(8,2)+7:s%!e%=FNa(6,1):s%!j%=FNa(6,2):s%!J%=b%!j%-50:s%!X%=30 REPEAT:CLS:T%=FNl:IFNOTT%THENCLS:PROCi UNTILT%:CLS:PRINT"GoodBye!":END DEFFNl:LOCALi%,w%,C%,h%,l%,a$,x%,a%,r%,E%:LOCALK%,t%,y%,s$:DIMw% 16,C% 16,h% 16:DIMa% 16,r% 16:w%!e%=FNa(100,1):w%!j%=FNa(40,2):w%!d%=FNd(w%,b%):w%!c%=800:C%!e%=FNa(150,1):C%!j%=FNa(40,2):C%!d%=FNd(C%,b%):C%!c%=w%!c%-C%!j% h%!e%=630:h%!j%=500:h%!d%=FNd(h%,b%):h%!c%=200:a%!e%=FNa(40,1):a%!j%=FNa(20,2):a%!d%=h%!d%+150:a%!c%=(h%!c%+h%!j%)-160:r%!e%=FNa(20,1):r%!j%=FNa(20,2):r%!d%=h%!d%+150+FNd(r%,a%):E%=FNf(r%,16):K%=FNf(r%,16) r%!c%=h%!c%+100:E%!c%=r%!c%+r%!j%+40:K%!c%=E%!c%+E%!j%+40:PROCd(s%!J%):PROCd(s%!X%):FORi%=0-w%!e%TOw%!d%STEP5:PROCb("space",i%,w%!c%):NEXTi%:FORi%=b%!e%TOC%!d%STEP-5:PROCb("invaders",i%,C%!c%):NEXTi%:a$="PRESS SPACE TO PLAY":l%=LEN(a$)*b%!q%:y%=170 PROCa(FNb(l%,b%!e%),y%,a$,10):a$="OR Q TO QUIT":l%=LEN(a$)*b%!q%:y%-=b%!v%:PROCa(FNb(l%,b%!e%),y%,a$,10):WHILENOTINKEY(-99)ANDNOTINKEY(-17)ANDNOTINKEY(-82):PROCc(h%):a$="SCORE ADVANCE":l%=LEN(a$)*b%!q%:x%=h%!d%+FNb(l%,h%!e%):y%=h%!c%+h%!j%-20:PROCa(x%,y%,a$,0) a$="TABLE":y%-=b%!v%:l%=LEN(a$)*b%!q%:x%=h%!d%+FNb(l%,h%!e%):PROCa(x%,y%,a$,0):x%=a%!d%+a%!e%+10:PROCb("saucer_0",a%!d%,a%!c%):PROCa(x%,a%!c%+10,"= 500 POINTS !",0):PROCb("inv_3",K%!d%,K%!c%):PROCa(x%,K%!c%+20,"= 100 POINTS !",0) PROCb("inv_2",E%!d%,E%!c%):PROCa(x%,E%!c%+20,"= 75 POINTS !",0):PROCb("inv_1",r%!d%,r%!c%):PROCa(x%,r%!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" l%=LEN(a$)*b%!q%:x%=h%!d%+FNb(l%,h%!e%):y%=h%!c%+h%!j%-20:PROCa(x%,y%,a$,0):a$="HI SCORES":y%-=b%!v%:l%=LEN(a$)*b%!q%:x%=h%!d%+FNb(l%,h%!e%):PROCa(x%,y%,a$,0):y%=(h%!c%+h%!j%)-100:a$=" POS."+STRING$(21," ")+"SCORE."+STRING$(3," ")+"RACK." l%=LEN(a$)*b%!q%:x%=h%!d%+FNb(l%,h%!e%):PROCa(x%,y%,a$,0):y%-=2*b%!v%: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):l%=LEN(a$)*b%!q%:x%=h%!d%+FNb(l%,h%!e%):PROCa(x%,y%-(i%*(b%!v%+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%,Y%:LOCALL%,Z%:LOCALM%,l%,a$,x%,y%:DIMg% 52,k% 52,a% 52,Y% 52:L%=ea%:Z%=Q%:g%!e%=FNa(30,1):g%!j%=FNa(15,2):g%!d%=FNd(g%,b%):g%!c%=50:g%!B%=6:g%!L%=3:g%!A%=g%!B%:g%!H%=0:k%!e%=FNa(5,1):k%!j%=FNa(20,2):k%!m%=FALSE:k%!B%=10 a%!e%=FNa(40,1):a%!j%=FNa(20,2):a%!c%=s%!J%-(10+a%!j%):a%!B%=5:a%!m%=FALSE:Y%!Z%=1:PROCd(s%!J%):PROCd(s%!X%):a$="SCORE :-"+FNc(STR$(g%!H%),10,"0",TRUE):PROCa(0,b%!j%-b%!v%,a$,0):a$="HI SCORE :-":a$+=FNc(STR$(a%(1)),10,"0",TRUE) x%=b%!e%-LEN(a$)*b%!q%:PROCa(x%,b%!j%-b%!v%,a$,0):PROCb("base",0,0):a$=" = "+STR$(g%!L%):PROCa(g%!e%,0,a$,0):a$="RACK :-"+FNc(STR$(Y%!Z%),3,"0",TRUE):x%=b%!e%-LEN(a$)*b%!q%:PROCa(x%,0,a$,0):PROCb("base",g%!d%,g%!c%) REPEAT:M%=0:IFINKEY(-74)THENPROCj(g%!d%,g%!c%) IFINKEY(-98)THENPROCk:M%=1 IFINKEY(-67)THENPROCl:M%=2 IFINKEY(-82)THENPROCe IFINKEY(-17)THENg%!L%=0 IFM%>0THEN IFM%<=2THEN g%!d%+=g%!A%:PROCb("base",g%!d%,g%!c%) ENDIF ENDIF PROCm:PROCn:UNTILg%!L%=0:a$="GAME OVER!!!":l%=LEN(a$)*FNa(8,1):y%=b%!j%/2:PROCa(FNb(l%,b%!e%),y%,a$,10):PROCg(1000):ENDPROC DEFPROCk:IFg%!d%<=0THENg%!d%=0:ENDPROC g%!A%=0-g%!B%:ENDPROC DEFPROCl:IFg%!d%>=b%!e%-g%!e%THEN g%!d%=b%!e%-g%!e%:ENDPROC ELSE:g%!A%=0+g%!B% ENDIF ENDPROC DEFPROCj(x%,y%):IFk%!m%THENENDPROC k%!m%=TRUE:k%!d%=x%+(g%!e%/2):k%!c%=y%+g%!j%:ENDPROC DEFPROCe:REPEAT:UNTILNOTINKEY(-82):OSCLI"ScreenSave .Dump"+STR$(ba%):ba%+=1:ENDPROC DEFPROCm:LOCALR%,_%:R%=Q%:IFNOTk%!m%THENENDPROC k%!R%=FALSE:IFk%!c%>=s%!J%-k%!j%THEN k%!m%=FALSE:k%!R%=TRUE ENDIF IFk%!R%THEN _%=FNf(k%,52):_%!c%-=2:PROCc(_%) ELSE:PROCb("shell",k%!d%,k%!c%) ENDIF k%!c%+=k%!B%:ENDPROC DEFPROCn:LOCALD%,z%,I%:D%=Q%:z%=ca%:I%=da%:IFNOTa%!m%THEN IFFNg(3)ANDFNg(1)THEN a%!m%=TRUE:a%!P%=FALSE:a%!I%=0:IFFNg(50)THEN a%!A%=0-a%!B%:a%!d%=b%!e% ELSE:a%!A%=0+a%!B%:a%!d%=0-a%!e% ENDIF ENDIF ELSE:a%!I%+=1:a%!z%+=1:IFa%!d%<=0-a%!e%ANDSGN(a%!A%)=-1THEN a%!D%=FALSE:a%!m%=FALSE:a%!z%=0:ENDPROC ENDIF IFa%!d%>b%!e%ANDSGN(a%!A%)=1THEN a%!D%=FALSE:a%!m%=FALSE:a%!z%=0:ENDPROC ENDIF IFNOTa%!P%THEN IFFNj(k%,a%)THEN PROCc(k%):PROCb("saucer_2",a%!d%,a%!c%):a%!D%=a%!z%:a%!P%=TRUE:k%!m%=FALSE:PROCo(500) ENDIF ELSE:IFFNj(k%,a%)THEN PROCc(k%):k%!m%=FALSE ENDIF ENDIF IFNOTa%!P%THEN IFa%!I%>=100THENa%!I%=0 IFa%!I%<50THEN PROCb("saucer_0",a%!d%,a%!c%) ELSE:PROCb("saucer_1",a%!d%,a%!c%) ENDIF a%!d%+=a%!A% ELSE:IFa%!z%>=a%!D%+200THEN PROCc(a%):a%!m%=FALSE:a%!D%=FALSE:a%!z%=0 ELSE:IFa%!z%>=a%!D%+175THEN PROCb("saucer_5",a%!d%,a%!c%) ELSE:IFa%!z%>=a%!D%+150THEN PROCb("saucer_4",a%!d%,a%!c%) ELSE:IFa%!z%>=a%!D%+100THEN PROCb("saucer_3",a%!d%,a%!c%) ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDPROC DEFFNk:LOCALi%,o%,n$:FORi%=1TO10:IFi%MOD2=0THENn$="Software"ELSEn$="DynaByte" a$(i%)=FNh(n$):a%(i%)=(11-i%)*1000:b%(i%)=0:NEXTi%:o%=OPENOUT".Resources.HiTable":IFo%=0THEN=FALSE FORi%=1TO10:PRINT#o%,a$(i%),a%(i%):PRINT#o%,b%(i%):NEXTi%:CLOSE#o%:=TRUE DEFPROCh:LOCALi%,o%:o%=OPENIN".Resources.HiTable":FORi%=1TO10:INPUT#o%,a$(i%),a%(i%):INPUT#o%,b%(i%):NEXTi%:CLOSE#o%:ENDPROC DEFPROCp:LOCALi%,o%:o%=OPENOUT".Resources.HiTable":FORi%=1TO10:PRINT#o%,a$(i%),a%(i%):PRINT#o%,b%(i%):NEXTi%:CLOSE#o%:ENDPROC DEFPROCd(c%):LOCALi%,ga%:ga%=b%!e%/s%!e%:FORi%=1TOga%+1:PROCb("rail",(i%-1)*s%!e%,c%):NEXTi%:ENDPROC DEFPROCf:LOCALp%:DIMp% 20:p%!0=4:p%!4=5:p%!8=11:p%!12=12:p%!16=-1:SYS"OS_ReadVduVariables",p%,p%:b%!V%=p%!0:b%!W%=p%!4:b%!e%=(p%!8)+1<b%!fa%THENPROCf CASEha%OF WHEN1:N%=F%<>b%!V% WHEN4:N%=F%>>b%!W% OTHERWISE:ERROR255,"Unknown FNconv_units() operation : "+STR$(ha%) ENDCASE =N% DEFPROCa(x%,y%,a$,ja%):LOCALi%,ka%:ka%=b%!q%:FORi%=1TOLEN(a$):PROCb(STR$(ASC(MID$(a$,i%,1))),x%+((i%-1)*ka%),y%):IFja%>0THENPROCg(ja%) NEXTi%:ENDPROC DEFFNj(u%,G%):LOCALla%,ma%,`%,na%:`%=FALSE:na%=FALSE:IFu%!m%ANDG%!m%THEN la%=G%!d%+G%!e%:ma%=G%!c%+G%!j%:IFu%!d%>=G%!d%ANDu%!d%<=la%THEN`%=TRUE IFu%!c%>=G%!c%ANDu%!c%<=ma%THENna%=TRUE ENDIF =`%ANDna% DEFFNf(u%,F%):LOCALS%,oa%:DIMoa% F%:FORS%=0TOF%-4STEP4:oa%!S%=u%!S%:NEXTS%:=oa% DEFPROCc(u%):GCOL0,0TINT0:RECTANGLEFILLu%!d%,u%!c%,u%!e%,u%!j%:ENDPROC DEFFNb(pa%,b%):=(b%/2)-(pa%/2) DEFFNd(qa%,ra%):=(ra%!e%/2)-(qa%!e%/2) DEFPROCo(sa%):LOCALx%,a$:g%!H%+=sa%:a$="SCORE :-"+FNc(STR$(g%!H%),10,"0",TRUE):PROCa(0,b%!j%-b%!v%,a$,0):IFg%!H%>a%(1)THEN a$="HI SCORE :-":a$+=FNc(STR$(g%!H%),10,"0",TRUE):x%=b%!e%-LEN(a$)*b%!q%:PROCa(x%,b%!j%-b%!v%,a$,0) ENDIF ENDPROC DEFPROCb(e$,x%,y%):OSCLI"SChoose "+e$:PLOT237,x%,y%:ENDPROC DEFFNg(n%):LOCALta%:ta%=RND(100):=ta%<=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$,O%,d$,ua%):LOCALva%,b$:va%=O%-LEN(a$):IFva%<=0THEN b$=LEFT$(a$,O%) ELSE:IFua%THEN b$=STRING$(O%,d$):RIGHT$(b$,LEN(a$))=a$ ELSE:b$=a$+STRING$(va%,d$) ENDIF ENDIF =b$ DEFFNi(a$,O%):LOCALb$:b$=STRING$(O%," "):RIGHT$(b$,LEN(a$))=a$:=b$