ZXTape! 0Created with Ramsoft MakeTZXhello hP@: jP1,10 Zcentre=1000 d0:1:6: n*a$="M E P Test page":y=2:centre x 5 /a$="Your volume control ":y=10 :centre /a$="is now properly set.":y=12 :centre 1 "" "y,(16-(a$)/2);a$: '"hello"80P entry Ais now properly set.F rhello hP@:jP1,10 Zcentre=1000 d0:1:6: n*a$="M E P Test page":y=2:centre x 5 /a$="Your volume control ":y=10 :centre /a$="is now properly set.":y=12 :centre 1 "" "y,(16-(a$)/2);a$: '"hello"80P entry Ais now properly set.F hello hP@:t)jP1,10 Zcentre=1000 d0:1:6: n*a$="M E P Test page":y=2:centre x 5 /a$="Your volume control ":y=10 :centre /a$="is now properly set.":y=12 :centre 1 "" "y,(16-(a$)/2);a$: '"hello"80P entry Ais now properly set.F shoot k2+%m2> r<:\&o{0_[\x0_Ð shoot/Shape shooter %Microelectroncs Education Programme MICRO PRIMER Software pack 4  CET 1983 *Program Idea..Joe Telford and Ann Liddle Version 1.00/28 Jul 83 !Modified by David Tee 6/9/82 7BBC Micro (32K) and RML 480Z versions also available. 8Converted for SPECTRUM Micro 12/3/83 by Graham Foster z((23731\)*256+23730\)-(2*21*8):CLEAR SPACE FOR 2 SETS OF UDGS NOT MACHINE DEPENDENT 'UDG=23675{\:POINTER TO UDG START MRAMTOP=((23731\)*256+23730\):SETS TO NEW CLEARED ADDRESS :UDG1=RAMTOP+1:START OF 1ST UDG CHAR SET (FOR GUN) 9UDG2=UDG1+(21*8):START OF 2ND UDG CHAR SET 2UDG,(UDG1/256-(UDG1/256))*256 #HUDG+1,(UDG1/256):HIGH ORDER BYTE OF UDG CHAR SET POINTER (COL0=0:COL1=7 2COL0:COL0:COL1: <A$="Shape Shooter" Fvp=10 :hp=9 P!9910&:Double height chars Y3GETKEY=9500%:GET A KEY AND FLASH THE CURSOR Z7SHAPEDRAW=9300T$:ROUTINE TO DRAW AND FILL SHAPES []max=10 :PROCSCORE=8010J:PROCB=9150#:PROCCHANGE=9100#:GPI=90102# \>PROCA=9200#:PROCSMOKE=5000:PROCSHAPE=4870 ^+PROCFIRE=4790:PROCSNAME=4760 _QPROCSPACE=9070n#:PROCC=4450b:PROCTUNE=5100:PROCEND=9982& ҳA$(10 ,18):S$(3):X$(20):H$(4,8):V(20):N$(15,8):M$(MAX,8):P$(10 ,1):T(10 ):C(10 ,6)  EB$(4,15,4):SHAPE TABLE OF UDGS FOR FILLED SHAPES   (FG=100d:TZ=100d:CP=0 <"CHARS"UDG1,(2*21*8):BOTH SETS OF UDGS "GUN"A$() ""B$() 'COL1:COL0::T$=" " CP=0:PROCB FG=999CP=0 *CP=MAXCP=0:PROCSCORE:455 INDEY=8 0J=110 :INDEY+J,14;A$(J):J 0-CP=CP+1:CP=MAXPROCSCORE:455 :YBULLET=5:S$(1)=" ":S$(2)=157:S$(3)=158 EI=02:I,0;"":I 6I=1819:I,0;"":I :I=12:"":I  COL1:COL0 *#1,10 ;"SHAPE SHOOTER" ?18,0;"NAME"'"SHAPE"'"SHAPES LEFT GOOD SHOTS" ""TIME MISSES "  CV=1  COL0:COL1 B5,0;"Type your "'"name,then"'"press ENTER"''''">"; !gpi1=1:gpi2=8:gpi 8I=04:I+5,0;" ":I 11 ,0;" " Z$"Score"1283 -PROCSCORE:T$="C"CP=CP-1:470  455 $Z$="Change"procchange:470 Z$="End"PROCEND 2"COL0:COL1:18,6;Z$ FCOL1:COL0:PROCFIRE K"PROCTUNE :7130:PROCSHAPE PA=1+(*4) U COL0:COL1 Z19,6;H$(A) nA41800 x!SHI=(A-1)*4+1 K=14  SHAPEDRAW  PROCFIRE  PROCTUNE SHI=SHI+1 K  3580 !SHI=13 :K=14  SHAPEDRAW  PROCFIRE & PROCTUNE 0K PROCSNAME ,MISS=0:SHOT=0:NCOUT=20  COL1:COL0  PROCSPACE PROCFIRE:PROCTUNE $%I=120:V(I)=0:I )I=110 .SHAPE=1+(*20) 3V(SHAPE)03630. 8*A=1V(SHAPE)=(*4)+1 =*A=2V(SHAPE)=(*4)+5 B*A=3V(SHAPE)=(*4)+9 GA=4V(SHAPE)=13 VI [I=120 `V(I)03720 eSHAPE=(*15)+1 jASHAPE>(A-1)*4SHAPE<(A*4+1)3685e o V(I)=SHAPE I INDEX=1 COL1:COL0:SHI=V(INDEX) <2,0;" ";2,0;N$(SHI);" "  SHAPEDRAW FCV=0:23672x\,0:23673y\,0:ZERO THE CLOCK F= =F32 ƾ23672x\023658j\,8::Leave caps on,on exit #64@B<91[)(B>96`B<123{)23658j\,0:9050Z# #K 9047W# #PHGPI1=2B=32 B=46.(B480B579)9050Z# #W .2~L,-15:90168# #ZQ$;:Z$=Z$+Q$:90168# #m PROCSPACE #nSCOL1:COL0:5,0;"Press SPACE"'"to start "'"and to fire"'"the gun." #s" "9075s# #x8I=14:4+I,0;" ":I # # PROCCHANGE # #gpi2=3:gpi1=2 #'7,0;"Secs per shape>> "; #@gpi:Z$<0.3ŰZ$>5.2~L,-15:9101# #=Z$<1Z$(1)=".".3,-15:9101# #)TZ=Z$*502:23672 IS IN 1/50 SECS #CP=CP-1:: #PROCB #I=110 #/T(I)=0:M$(I)=" ":P$(I)=" " #J=16 #C(I,J)=0 #J:I: #PROCA # M$(CP)=Z$ #P$(CP)=H$(A)(12) # T(CP)=TZ #FLG=888x #7V(INDEX)4C(CP,1)=C(CP,1)+1 $HV(INDEX)5V(INDEX)8C(CP,2)=C(CP,2)+1 $ IV(INDEX)9 V(INDEX)12 C(CP,3)=C(CP,3)+1 $8V(INDEX)=13 C(CP,4)=C(CP,4)+1 $8V(INDEX)=14C(CP,5)=C(CP,5)+1 $8V(INDEX)=15C(CP,6)=C(CP,6)+1 $ $S SHAPEDRAW $T4UDG,(UDG2/256-((UDG2/256)))*256 $YUDG+1,(UDG2/256) $[ COL1:COL0 $]I=14 $^INDEY+I,1;B$(I,SHI) $hI $m4UDG,(UDG1/256-((UDG1/256)))*256 $oUDG+1,(UDG1/256) $r ${TDRAWS THE PAGE OF UDGS ONTO THE SCREEN AS A FILLED SHAPE,USING THE 2ND LOT OF UDGS % % %!GETKEY AND CURSOR FLASH ROUTINE %=CURSOR=23329![-(32 *(23689\)+(23688\)) %&/CURSOR<128CURSOR,(CURSOR)+128 %:Q$=:Q$=""9530:% %DCURSOR,(CURSOR)-128 %N%:USES THE ATTRIBUTES AND FLASH BIT & &itarget=144:addt=((target)/256):23763\,addt:23762\,(target-addt*256) &i=1̱a$ & &23764\,a$(i) &23765\ &Hxpos=hp-1+i:vp,xpos;target;vp+1,xpos;(target+1) &i & &23658j\,0 &-23675{\,88X:23676|\,255 '7:7:0: ' 'to merge file properly 'P"shoot"1:"CHARS"UDG1,(2*21*8):"GUN"A$():"P"B$() d{\amtodgdgolol argedd 2#poetke%hapedraT$a rocscorJroc#rocchang#p2#roc#rocsmokrocshaprocfirrocsnamrocspacn#rocbroctunrocen&  % g} U    5 1 dd   T ndeullepipiZursoaYQ GCHARS PER@ @ UU @UUUU??xxxxxxxxxxxx|DB<@<B<BBBBB<??????|BB|DB<@<B<BBBBB<#GUN xr   P 9, O shapeb RJ-rR shapeb / Shape Builder &Microelectronics Education Programme MICRO PRIMER Software Pack 4  CET 1983 - Program Idea..Anne Liddle and Joe Telford Dprogrammers..ICL Software, from an origional by R D Kennedy (CECC) 6Edited by David Tee (MEP) and Nicholas Clifton (MEP) Version 1.00/10 Aug 83 Works on 48K Spectrum 1BBC Model B & RML 480Z versions also available. (65310:x=65310:9510&% *a:x,a:x=x+1:a021 0:0:7: plot=4000 draw=4050 gpinit=3210 gpi=3100 wd=4100 #spc=2960 (prt=2400` +strip=4200h ,$c(a$F)=15.5x-a$/2 -wait=2900T .vshift=14 /yfudge=1.1 0lorrydef=8000@ 1dbl=2850" 2cntr=2800 7truckon=2200 <truckoff=2300 Atitles=2700 Fmenu=350^ Kcheck=550& Pbline=2500 Uspline=2550 Wnoise1=2570 Xnoise2=2590 Zspbar=26102 _instr=3300 a 5 d4d$="Shape Builders":d1=-1:d2=10 :dbl i 7 n+21,5;"Please wait a moment." x7r$="":w$="":c$="":h$="":y$=""   #a$(6,19):b$(6) ,t$(4,15):n$(15,9 ) -n(4):s$(4,9 ):p(6) a(15):b(15) c(15):d(15) e(15):f(15) g(15):h(15) i(15):j(15) x(5):y(5) v$="" ^s$(1)="SQUARES":s$(2)="OBLONGS":s$(3)="TRIANGLES":s$(4)="CIRCLES" lorrydef spline spc1=21:spc truckon titles truckoff 0:0: menu check  260 " , truckon 6Lt$(1)=b$:t$(2)="THE END":t$(3)="":t$(4)="":prt @wait1=1:wait J truckoff O7:7:0: T7:7:0 Y [ \ ] ^(0:0::e=0:4 h9d$="Choice page":d1=-1:d2=2:dbl:5 r5m$="Build a space rocket....1":cntr1=9 :cntr |6m$="Build a ship............2":cntr1=11 :cntr 6m$="Build a house...........3":cntr1=13 :cntr 6m$="End.....................4":cntr1=15:cntr 27:18,16;y$;"Which one? ";w$; ,500:e=1e=0:410     <gpi1=1:gpi2=1:gpi:i$=e$:e$=""e=1:    # &i$=4300, 0$i$<1Űi$>4260 :2i$=19210#:g$="rocket ":600X D2i$=29410$:g$="ship ":600X N2i$=39310^$:g$="house ":600X X truckon bLt$(1)=b$:t$(2)="Build a":t$(4)="":t$(3)=g$:prt l truckoff vbline em$=g$:strip:m$="are building a "+m$:cntr1=19:cntr:18,7;"The shape builders" spc1=21:spc:spline :m$=g$:strip:m$="Here is the "+m$:cntr1=18:cntr wait1=1:wait 0ns,n(1),n(2),n(3),n(4) i=1ns n$(i) i ,i=1n(1)+n(2)+n(3) 3a(i),b(i),c(i),d(i),e(i),f(i),g(i),h(i),i(i),j(i) i ,i=1n(1)+n(2)+n(3) x=a(i):y=b(i):plot x=c(i):y=d(i):draw  x=e(i):y=f(i):draw x=g(i):y=h(i):draw  x=i(i):y=j(i):draw 4i >i=1n(4) H x(i),y(i) \!x(i),y(i)*yfudge+vshift,3 fi pspline zl=14 m$=s$(l):strip:o$=m$ 9m$="How many "+o$+" can you see?":cntr1=19:cntr 4500:e=1e=0:spline:900 /n(l)=e$noise2:wd1=2:wd:1000 )noise1:spline:n(l)=1950 cm$="There are "+n(l)+" "+o$:cntr1=19:cntr:20,9 ;"Look for them!":960 cm$="There is 1 "+o$(1̱o$-1):cntr1=19:cntr:20,10 ;"look for it!" wait1=4:wait +++wait1=4:wait spline l 618,0;"Write this sentence in your book" spc1=21:spc:spline ,wl=0:n(2)=1wl=1 m$=s$(2):strip:j$=m$ $m$="There are "+n(1)+" "+s$(1,17)+", "+n(2)+" "+j$(1̱j$-wl)+",":cntr1=18:cntr )m$=s$(4):strip:j$=m$ .,wl=0:n(4)=1wl=1 8am$=n(3)+" "+s$(3)+" and "+n(4)+" "+j$(1̱j$-wl):cntr1=19:cntr =4m$=g$:strip:m$="in my "+m$:cntr1=20:cntr Bspbar L Vbline `C18,7;"Now you can build the next ";g$ j:21,1;"Go and get the box of shapes!":spbar tspline ~l=1ns A19,5;"Type the name of a shape in the ";g$ 20,20; :gpi1=3:gpi2=8:gpi:e$=01160 'e$=(e$+" ")(19 ) nf=0:j=1 @e$=n$(j)nf=j:j=ns:o$=n$(nf):n$(nf)="USED....":1260 $ with an instruction IF LEFT$..... j=j+1:jns1190 Inf=0spline:18,1;"Out of stock, try another shape" Rnf=020,6;"Look at the sentence in your book" 1nf=0noise1:wait1=6:wait:spline nf=01155 noise2:wd1=2:wd  1400x spline  Fm$=o$:strip:m$="Find this "+m$+" in the box":cntr1=19:cntr 520,0;"and draw round it on your page." spbar ( spline:l 2g$="rocket "1500 <g$="house "1950 Fg$="ship "1700 P 340T Z d n x$j=n(1)+n(2)+n(3) %k=0:nf>jk=nf-j:1440 x=a(nf):y=b(nf):plot x=c(nf):y=d(nf):draw x=e(nf):y=f(nf):draw x=g(nf):y=h(nf):draw x=i(nf):y=j(nf):draw  !x(k),y(k)*yfudge+vshift,3  spline P18,5;"Now the rocket is built,":" you can send it into space." 3m$="Press SPACE to fire it":cntr1=21:cntr " "1540 spline:bline "7j=10 0-1:21,16;j;" " ,(j=515,15;"" 6j51,-40 ( @"j>5i=1502:i Tj ^15,0; m216,15;"":1,-40( nI23692\,255:17,15;"":1,-40( o21,16;" " rOi=118:23692\,255::.4L-i/535,-40(:i  spline I18,5;"Now the ship is built, you can sail it." 3m$="Press SPACE to sail it":cntr1=21:cntr " "1740 spline Jq$=" "+" " Jp$=" "+" "  x=1 k=13 i=1202 .05|L,-502+i  1900l i &i=201-2 0.05|L,-502+i : 1900l Di Nk l4x=115,0;q$;q$;q$:x=2: v)15,0;p$;p$;p$:x=1: b18,6;"Now the house is built, you can turn on the lights.":spc1=21:spc spline :m$="Press SPACE to switch them on":cntr1=21:cntr " "1990 spline:bline  6 I12 ,8;"";13 ,8;"";14,8;"" L12 ,21;"";13 ,21;"";14,21;""  5 i=1502:i j=13 *x=20:y=3:k=06  y,x;"@" i=1502:i  y,x;" " *x=x+1:y=y-.5:k /i=1502:i 4j >    1:1: i=125 tab=32 -i +len=i:len>a$(1)len=a$(1) 36;6,tab;a$(1,1len);" " 36;7,tab;a$(2,1len);" " 36;8,tab;a$(3,1len);" " 36;9 ,tab;a$(4,1len);" " 46;10 ,tab;a$(5,1len);" " 46;11 ,tab;a$(6,1len);" " i /.3,20:3:.3,20     i=70-1 j=12:j 6;6,i;l$ i i=120 $66;6,0;a$(1,i19);" " %66;7,0;a$(2,i19);" " &66;8,0;a$(3,i19);" " '66;9 ,0;a$(4,i19);" " (76;10 ,0;a$(5,i19);" " )76;11 ,0;a$(6,i19);" " .i 8 ] ^ _ `+++ print & centre +++ t=14 q$=t$(t) q$=""2460 5q$(q$)=" "q$=q$(1̱q$-1):2454 >0;5+t,16-q$/2+3;6;q$ t wait1=2:wait     +++ BLINE +++ A1;17,0;"":    +++ SPLINE +++ 18,0;" ":    +++ NOISE1 +++ 1,-15:    +++ NOISE2 +++ (;.1}L,35#:.1}L,40(:.1}L,45-: / 0 1 2+++ SPBAR +++ <&p$=" Press SPACE when you are ready" F%6:m$=p$:cntr1=2:cntr P5:j$= Z%0:m$=p$:cntr1=2:cntr _j$=" "2680x d3:k$= n(k$" ".2~L,-10 :2630F x>7:2,0;" "     +++ TITLE +++ t$(1)=b$ t$(2)="THE SHAPE" t$(4)=b$ t$(3)="BUILDERS" prt:    +++ CENTRE +++ cntr1,c(m$);m$;    !+++ DBL +++ "d1<0d1=(c(d$)) $ o=0 %Oaddt=(("s")/256):65311,addt:65310,("s"-addt*256) &d1=d1-1 'u=1̱d$ ((65312 ,d$(u):dummy=65313! ,d2,d1+u;"" 6d2+1,d1+u;"" ;u =d1=d1+1 @ Q R S T+++ WAIT +++ ^time=0 h =" " rtime=time+.05|L |timewait12920h     +++ space(spc1) +++ (m$="Press SPACE key":cntr1=spc1:cntr " "2980 !spc1,8;" "     +++ GPI(gpi1,gpi2) +++ !23561 \,0 &e$="" 0i=1gpi2:".";:i :i=1gpi2:8;:i D"1:f$=:f$""3140D If$=:f$=""3145I N asc=f$ Sasc=12 3200 T$asc=13 .05|L,30: U(e$=gpi2.2~L,0:3140D Xgpi113180l ]'asc<480asc>5793140D b9.03{u\,-20:f$=asc:f$;:e$=e$+f$:3140D l.asc97aasc122zasc=asc-32 v'asc<65Aasc>90Z3140D { 3170b +e$=0.2~L,0:3140D 4e$=e$(1̱e$-1):8;".";8; 3140D    +++ INSTR(i$,j$) +++ "DEAD ROUTINE": insflag=1 v$=i$(insflag)  v$=j$ ?v$" "insflag=insflag+1:insflag5243320 insflag=0: E F G +++ PLOT x,y +++ Ilastx=(x*255/1279):lasty=(y*175/1023*yfudge) lastx,lasty+vshift     +++ DRAW x,y +++ Ax=(x*255/1279):y=(y*175/1023*yfudge) x-lastx,y-lasty lastx=x:lasty=y     +++ WELL DONE +++ .d$="Well done":d1=-1:d2=1:dbl ,wait1=2:wait 61,11 ;" " ;2,11 ;" " @ e f g h+++ STRIP(m$) +++ i;i=1:i1=m$:m$(1)" "i=0:4204l j$m$(i)=" "i=i+1:4202j l'm$(i1)=" "i1=i1-1:4204l mm$=m$(i+1i1) r i=0 |i=i+1:i2=i+1 i1=m$:ii1 m$(i)" "4220| m$(i2)" "4220| /m$(i2+1)=" "i2=i2+1:4255 $m$=m$(1i-1)+m$(i2i1) i=i2-1:4230    +++ block fill +++ &screenx=120x:screeny=100d #x=1:y=0:cnt=1 .(screenx+x,screeny+y)=15060 7screenx=screenx+x:screeny=screeny+y:screenx,screeny  5030 +cnt=cnt+1:cnt=5cnt=1 5100+cnt "x=1:y=0:5110 #x=0:y=-1:5110 #x=-1:y=0:5110 "x=0:y=1:5110  5030 PY12 ,8;" " = > ? @+++ RESTORE +++ A B?i=65368X65368X+17*8-1:t:i,t:i Dxp(1)=6:p(2)=1:p(3)=3:p(4)=5:p(5)=2:p(6)=4 FLb$=" ":xh=112p:xl=113q:yh=114r:yl=115s Hleft=16784A J#a$(1)=" " T#a$(2)=" " ^#a$(3)=" " h#a$(4)="" r#a$(5)=" " |#a$(6)=" " z$=" " [l$=a$(1)+z$+a$(2)+z$+a$(3)+z$+a$(4)+z$+a$(5)+z$+a$(6)     #(+++ data for lorry +++ #) #2I0,0,0,0,255,255,255,255 #