ZXTape! 0Created with Ramsoft MakeTZXwshape P0-*R0> Xe<:\&o{0_[\x0_Ð Vwshape/WHAT SHAPE Microelectronics Education Programme MICRO PRIMER Software Pack 4  CET 1983 & Authors - Joe Telford & Anne Liddle Programmer - L.H.NG Spectrum version by A.Bowker Version 1.00/28 Jul 83 NWorks on ZX Spectrum 48K (BBC Model B and LINK 480Z versions also available) Grect=1110V:tri=1210:square=1310:circle=1410 procdbl=9900& yesno=9200# gpi=9000(# procarray=1500 spacekey=8200  v=1 7:7:1: #1820:1800 ( 700 -!s$(8,9 ):l(8) 2+7:7::900:1000 7#11 ,11 ;"WHAT SHAPE" <500:1000 2 !11 ,11 ;" " E900:1000:900:1000:900:1000 0 -2:10 ,9 ;"CHOOSE A SHAPE" *12 ,9 ;"BUT DON'T TELL ME..." 2 Ij=13:5:1000:6:1000:j:7 s1:21,1;"Have you chosen a shape yet? ":yf=21:xf=29:yesno:n=1270 Tn=030 h r0''" I am going to try to guess"'" your shape." r''" How many sides has your shape?":a=480:c=535:d=1:yf=6:xf=31:gpi:ns=(a$) #ns=1ns=2sh=4 ns=3sh=2 ns=4sh=1  z=0  procarray  1 ns=12000 ns=21900l ns=33000 ns=44000 "prints shapes in flashing colour 1:f=1 06x=8:y=104h:l=63?:b=23:rect : 1000 D+x=176:y=104h:s=31:tri N 1000 X,x=32 :y=32 :s=31:square b 1000 l-x=192:y=480:r=18:circle v 1000  f=2  f=2  5600 sound on or off <4:a$="What Shape":vp=9 :hp=10 :procdbl .0:20,8;"Press SPACE key" i$= i$=""730 Si$="S"i$="s"v=1-v:v=115,1;"Sound ON ":2 Fi$="S"i$="s"v=015,1;"Sound OFF":2 'i$="S"i$="s"j$=:j$""746 i$" "730    sound effect v=0 10 : 0.1}L,-13 :2:0.1}L,26:2:0.1}L,0:2:0.1}L,14:2:0.1}L,12 :2:0.1}L,1:2  L rectangle Vf=21150~ `empty rectangle j3x,y:l,0:0,b:-l,0:0,-b t ~filled rectangle aj=x/8(x+l)/8:k=21-y/821-(y+b)/8-1:k,j;"":k:j   triangle f=21250 empty triangle "x,y:s,0:-s,s:0,-s  filled triangle j=x/8(x+s)/8-1:k=21-y/822+j-(y+s+x)/8-1:k,j;"":k:k,j;"":j:k+1,j;""  square f=21350F (empty square 23x,y:s,0:0,s:-s,0:0,-s < Ffilled square Paj=x/8(x+s)/8:k=21-y/821-(y+s)/8-1:k,j;"":k:j Z xcircle f=21450 empty circle x,y,r  filled circle vj=x/8-r/8x/8+r/8-1:k=21-y/820-y/8+r/8:k,j;"":k:j lj=x/8-r/8+1x/8:k=20-y/821-y/8+r/8:k,j;"":k:j 20-y/8,x/8-r/8;"";20-y/8,x/8+r/8-1;"";21-y/8+r/8,x/8-r/8;"";21-y/8+r/8,x/8+r/8-1;"" kx-1,y,r-1:x,y-1,r-1:x+1,y,r-1:x,y+1,r-1:x,y,r-1   procarray /s$(1)="OBLONG":s$(5)="RECTANGLE" (l(1)=6:l(5)=9 -s$(2)="TRIANGLE":s$(6)="WEDGE" (l(2)=8:l(6)=5 )s$(3)="SQUARE":s$(7)="BOX" (l(3)=6:l(7)=3 +s$(4)="CIRCLE":s$(8)="ROUND"  (l(4)=6:l(8)=5 Gb$="The pupil gave correct answers to indicate the suggestion below" c$="":f$="" " 5j=07:k:"q"+j,k:"r"+7-j,k:j 5j=07:k:"s"+j,k:"t"+7-j,k:j 10000000,11000000,11100000,11110000,11111000,11111100,11111110,11111111 &00000001,00000011,00000111,00001111,00011111,00111111?,01111111,11111111 k lj2:''" You are joking!!!"''" One is the inside and the"'" other is the outside!"''" That's funny!"  spacekey  360h  --circle (1 side)-- %g$="CIRCLE":h$="ROUND":kk=6 a8,0;" Does your shape roll, if you"''" push it?";:yf=10 :xf=10 :yesno n=12000 .z=0:ns=0z=1:ns=1 8n=-1e$="that rolls when I push it":5000  (n=0b$="The shape doesn't roll" >}8,0;" Is your shape round? "''" ";:yf=8:xf=22:yesno:n=121004 H,n=-1e$="that is round":5000 R3n=0c$="The shape isn't round":6000p  --triangle(3 sides)-- 'g$="TRIANGLE":h$="WEDGE":kk=7 y8,0;" Does your shape have a sloping"''" side? ";:yf=10 :xf=7:yesno:n=13030 4n=-1e$="with one sloping side":5000 (n=0b$="One side doesn't slope" &8,0;" ";0;''" ";0:J=1502:J:8,0;" Does your shape have 2 sloping"''" sides?";:yesno:n=13100 05n=-1e$="with two sloping sides":5000 :,n=0c$="No sides slope":6000p  --square/oblong(4 sides)-- 6g$="SQUARE":h$="BOX":sh=3:kk=7:f$="" ]8,0;" Are all the sides the same"''" length?";:yf=10 :xf=9 :yesno n=14000 Cn=-1e$="with all sides":f$="the same length":5000 +n=0b$="Sides of different length" 5g$="OBLONG":h$="RECTANGLE":sh=1:kk=9 8,0;" ";0;''" ";0:J=1502:J:8,0;" Are opposite sides the same"''" length?";:yf=10 ::xf=9 :yesno:n=14120 ,&n=-1e$="with opposite sides" 1f$="the same length" 6In=0c$="Opposite side are different  lengths":6000p  7000X :---correct answer--- F1:''" Copy this sentence into your"''" book then type DONE" 05:'''"" i=815  i,0;"";i,31;"" 'i:"" 71:10 ,kk-2;"A ";ns;" sided shape," 11 ,kk-2;e$; Gline=12 :(f$)>0line,kk-2;f$;:line=line+1 3line,kk-2;"is called a";:sh=1"n"; )" ";2;s$(sh,1l(sh));"." Xa=64@:c=91[:d=4:yf=20:xf=1:gpi:a$"DONE"5100 P:''"Now draw this shape..." Z"2:'"A";:sh=1"N"; [" "; _s$(sh) dsh=15500| esh=25600 fsh=35700D gsh=45800 h x,1:20,1;"Another go? "; 8yf=20:xf=13 :yesno:n=15240x n=-1502 n=06230V |Mx=12 :y=85U:l=64@:b=28:f=2:rect:5230n 5x=25:y=77M:s=45-:tri:5230n D8x=25:y=77M:s=45-:square:5230n 8x=40(:y=96`:r=18:circle:5230n p---wrong guess--- |12 ,1;"Type the word for your shape:":yf=14:xf=1:a=64@:c=91[:d=14:gpi:q$=a$ 918,1;"Ask your teacher to come over" Byf=18:xf=30:a=62>:c=64@:d=1:gpi  $1,0;"Pupil's replies" &2,0;"" z=1ns=ns-1 95,0;"Number of sides:-";22;ns 7,0;b$ $(c$)>09 ,0;c$ D12 ,0;"Pupil's suggestion:-";13 ,15;q$ K16,0;"Computer's suggestion:-";17,15;s$(sh)  Z21,0;"Run again?":yf=21:xf=11 :yesno:n=16155  n=-130 VC6:1:1::10 ,14;"BYE":9990' X---guess shape--j bT16,1;"I think your shape";18,1;"is a";:sh=1"n"; c" "; g3;s$(sh) lF20,1;"Am I correct?":yf=20:xf=15:yesno n=17020l n=-15010 16,1;"Well, is it a ";s$(sh+4,1l(sh+4));"?";18,1;" ";0;20,1;" ";0:yf=16:xf=29:yesno:n=17110 7n=016,1;" ";0:6000p ^16,1;" ";0;18,1;" ";0;20,1;" ";0  *16,1;"A";:sh=1"n"; !" "; %72;s$(sh,1l(sh));" is the proper name" *I18,1;"for a ";s$(sh+4,1l(sh+4));"." 4 spacekey > 5010  spacekey .0:21,8;"Press SPACE key" i$=:i$" "8220 & #(gpi #2.a$="":g=1d:yf,xf+g-1;".";:g #< g=1 #F:yf,xf+g-1;1;1;"_";0;0 #Pi$=:i$=""9040P# #U.01z# =,-10 #Ze=(i$):e=12 g>1yf,xf+g-1;".":g=g-1:yf,xf+g-1;".";:a$=a$(1̱a$-1):e=110 :e:9030F# #de13 9070n# #fa$=""9040P# #gyf,xf+g-1;"." #i #n&e>96`e<123{e=e-32 #oeaec9040P# #syf,xf+g-1;(e); #x#a$=a$+(e):e=110 :e #g=g+1:gd9030F# #i$=:i$=""9095# #s(i$)=12 g=g-1:yf,xf+g-1;".";:a$=a$(1̱a$-1):e=110 :e:9030F# #(i$)13 9095# # # yesno #(a=64@:c=91[:d=3:gpi $p$=a$(11) $ n=1 $"p$="Y"n=-1 $,p$="N"n=0 $6 $S & procdbl &parameters are.... &a$ string to print &vp,hp start print posn &Uuses target to contain the ASCII of UDG & UDG+1 which are lost. Also uses xpos  &"b$(65A):double=23765\ &itarget=144:addt=((target)/256):23763\,addt:23762\,(target-addt*256) &i=1̱a$ &itarget=144:addt=((target)/256):23763\,addt:23762\,(target-addt*256) &23764\,a$(i) & double &Hxpos=hp-1+i:vp,xpos;target;vp+1,xpos;(target+1) &i & ':End of Program '"wshape"1 ecVrquarirclrocdb&esn#p(#rocarrapaceke v  oubl\argedd &pofxy0l?bsra@c[d2# x#nzEthat rolls when I push itFGTRIANGLEHWEDGECNo sides slopeQGPNDA M +AI j symmet yu" y> X4<:\&o{0_[\x0_Ð  SYMMETRY/Axes of Symmetry &Microelectronics Education Programme MICRO PRIMER Software Pack 4   CET 1983 !Authors..J.Telford and A.Liddle GProgrammers..Spectrum version by ICL..from an origional by A.C.Marron 3Edited by A.Lucas(MEP) and Nicholas Clifton (MEP) Version 1.00/10 Aug 83 1BBC Model B and RML480Z versions also available blue=1  red=2 magenta=3 green=4 black=0 cyan=5 yellow=6 white=7 dbl=9900& white:black:green: n=magenta:a$="Axes of Symmetry":vp=6:hp=8:dbl s 5000 u 8100 x2:6,5;blue;"Children using books?" yx=6:y=27 z 9200# |"np<0np>1121y Rr$(4,10 ):t$(4,10 ):l(15):s(15):i(4) er$(1)="Well done":r$(2)="Very good":r$(3)="Excellent":r$(4)="Jolly good" bt$(1)="VERTICAL":t$(2)="HORIZONTAL":T$(3)="DIAGONAL":t$(4)="MULTIPLE" )g$="":n=115:g$=g$+"":n Ih$=""+32 :n=115:h$=h$+"":n:h$=h$+32 +"" )f$="":n=115:f$=f$+"":n Gm$(10 ,10 ):j(10 ):k(10 ):q$(10 ,5) pp=0:p=0 Yo=1:a=0:b=0:e=0:c=0:z=0:d=0:mp=7 white: 6vp=2:xp=10 :blue:a$="Choice page":dbl <vp=6:hp=7:blue:a$="Vertical lines...1":dbl <vp=9 :hp=7:blue:a$="Horizontal lines.2":dbl "=vp=12 :hp=7:blue:a$="Diagonal lines...3":dbl ,=vp=15:hp=7:blue:a$="Multiple lines...4":dbl 6'19,10 ;blue;"Which one?" @Jap=480:cp=535:dp=1:x=19:y=21:9000(# J!g=w$:g<"0"g>"9"320@ Kg=w$ ^white::mp=7 hp=10 500 3pp>05,10 ;blue;"Next person" :8,0;blue;"Type your name then press ENTER" m11 ,7;blue;"Name:";:ap=64@:cp=91[:dp=10 :x=11 :y=13 :9000(# n$=w$ n$="Score"500 n$="Change"250 n$="End":9300T$ p=p+1:pp=1 "q$(p)=t$(g)(14)+"."  m$(p)=n$ p=10 500  660 white::red 51,0;" NAME TYPE ERRORS AXES"  n=1p j(n)=05600 fn+2,0;m$(n);n+2,11 ;q$(n);n+2,20;k(n);n+2,30;j(n) 0n :L0,175:255,0:0,159:255,0 N&0,159:255,0 P&84T,17:0,158 R'140,17:0,158 T'220,17:0,158 b=p<10 19,2;"Press SPACE KEY to continue" l*21,4;"Press ENTER to rerun" ""640 =""642 #=32 p<10 350^ =13 30  640 count=0:mp=4 g=3count=4 g=4count=2 black   *******data******* g>1830>  (1870N+count*10 ) *white::red 4 950 >g>2870f H(1950+count*10 ) Ryellow::blue \ 950 fg>3920 pv1=count-4 z(2030+v1*10 ) cyan::blue  950 v1=count-2 (2070+v1*10 ) white::magenta 1black;2,3;g$;20,3;f$ n=418 black;n,1;h$ n &0,175:255,0:0,-175:-255,0:0,175 num n=1num i(n) n 41,1;t$(g);" LINES OF SYMMETRY.";num-z n=115 l(n) l(n)=010808 *l(n)=99cn=15:n:1090B u=1l(n) s(u) $n+3,s(u);"" .u 8n BJnp=1a=0c=0e=0b=0o=11810 L 1760 V 1230 ` 2630F jo=12540 ~"np=1o=11830& o=02490 d>0z=z+d z=numz=0 count<8710  350^ C19,2;" ":line=19:pos=2 pos<2pos=2 line<4line=4  line,pos; pos=2"":1290  -pos=18line=19"":1290  pos<18"":1290  ""  .1}L,+12 ""1300 =""1302 u$= u$=13 1570": line,pos;" " (%u$8u$9 1260 2u$=81400x k2=line-1 J&.06|u\,0:.06|u\,1 h k2,j2; j-pos=2"":j2=j2+1:1648p l.pos=18"":j2=j2-1:1648p n"" pk2=41660| rk2=k2-1 t 1610J |g<42130R g=42190  n=173-1 &.06|u\,0:.06|u\,1  line,n;"" n g<42160p g=42190  4,21;"Press caps";6,21;"shift and ";8,21;"(5)or(8)";10 ,21;" ";12 ,21;"When in ";14,21;"position ";16,21;"press ";18,21;"ENTER "  ^4,21;"Copy this ";6,21;"shape into";8,21;"your book "  18400 &^4,21;"Draw the ";6,21;"line of ";8,21;"symmetry " 0c12 ,21;"When you've";14,21;"finished, ";16,21;"type'Done'." 518,21;" " :20,21;:x=20:y=21:ap=64@:cp=91[:dp=4:9000(#:w$="Done"12 ,31;" ";16,31;" ";:1855? < 1850: ?20,21;" " @ N2660d : X2690 : b2820 : l2880@ : v2910^ : 2930r : 2950 : 2970 : 3050 : 2990 : 3070 : 3090 : 3110& : 3150N : 3170b : 3190v : 3220 : 3250 : 3290 :  3300 : 3330 :  3340 : *3370* : 43390> : >3400H : H3420\ : R+g=2k(p)=k(p)+1:o=0: \Epos=i(1)count=count+1:j(p)=j(p)+1:o=1: f k(p)=k(p)+1:o=0: p+g2k(p)=k(p)+1:o=0: zNline-1=i(1)count=count+1:o=1:j(p)=j(p)+1:  k(p)=k(p)+1:o=0: v1>32310  d=0 v127000X v1=27020l a=02290 b=02270 8a+b=2count=count+1:a=0:b=0 a+b=2b=0: +d=0k(p)=k(p)+1:o=0:  Zline-1=i(2)pos=18j(p)=j(p)+1:b=1:o=1:d=1  Dpos=i(1)j(p)=j(p)+1:a=1:o=1:d=1   d=0 8000@ line=1923608 9line<19b=1k(p)=k(p)+1:o=0: $Yline-1=i(4)b=1:j(p)=j(p)+1:o=1:d=1:2400` .Nposi(1)posi(2)posi(3)k(p)=k(p)+1:o=0: 8a=02430~ Bc=02450 Le=12400` VDpos=i(3)e=1:j(p)=j(p)+1:o=1:d=1 `+d=0k(p)=k(p)+1:o=0: jRa+b+c+e=4a=0:b=0:c=0:e=0:count=count+1 t ~Dpos=i(1)a=1:j(p)=j(p)+1:o=1:d=1  Dpos=i(2)c=1:j(p)=j(p)+1:o=1:d=1  Dpos=i(3)e=1:j(p)=j(p)+1:o=1:d=1  4,21;"Try again ";6,21;m$(p);8,21;" ";10 ,21;" ";12 ,21;" ";14,21;" " .5,-12 8100  _.1}L,12 :.1}L,10 :.1}L,12 :.1}L,10 :.1}L,12 k(p)>j(p)f=1 k(p)=j(p)f=4 (k(p)2,15,14,0,0,0,0,0,0,0,0,4,13 ,14,16,17,4,13 ,14,16,17,5,13 ,14,15,16,17,1,15,5,13 ,14,15,16,17,4,13 ,14,16,17,4,13 ,14,16,17,99c H***square*** R14,2,18,10 ,10 ,0,0,0,0,7,7,8,9 ,10 ,11 ,12 ,13 ,7,7,8,9 ,10 ,11 ,12 ,13 ,7,7,8,9 ,10 ,11 ,12 ,13 ,7,7,8,9 ,10 ,11 ,12 ,13 ,7,7,8,9 ,10 ,11 ,12 ,13 ,7,7,8,9 ,10 ,11 ,12 ,13 ,7,7,8,9 ,10 ,11 ,12 ,13 ,99c \***diamond*** f4,2,18,10 ,10 ,0,0,1,10 ,3,9 ,10 ,11 ,5,8,9 ,10 ,11 ,12 ,7,7,8,9 ,10 ,11 ,12 ,13 ,9 ,6,7,8,9 ,10 ,11 ,12 ,13 ,14,11 ,5,6,7,8,9 ,10 ,11 ,12 ,13 ,14,15,9 ,6,7,8,9 ,10 ,11 ,12 ,13 ,14,7,7,8,9 ,10 ,11 ,12 ,13 ,5,8,9 ,10 ,11 ,12 ,3,9 ,10 ,11 ,1,10 ,99c ***user graphics***  5090 x$ n=07 row:x$+n,row n x$="o"5080  5020  I"p",0,0,0,255,24,24,0,0 I"q",0,0,24,24,255,0,0,0 G"c",8,8,8,568,568,8,8,8 M"d",16,16,16,28,28,16,16,16  U"e",255,129,129,129,129,129,129,255 Q"f",170,85U,170,85U,170,85U,170,85U O"g",248,240,224,208,136,4,2,1 (J"h",128,64@,32 ,16,8,4,2,0 2Q"i",16,480,112p,255,255,112p,480,16 apxcode96`xcode<123{(ap47/cp58:)xcode=xcode-32 :9080x# #Rhw$>0xcode>64@xcode<91[(ap47/cp58:)xcode=xcode+32 :9046V# #T*xcode=32 xmkr=1:9080x# #V2xmkr=1xmkr=0:xcode=xcode-32 #xw$>dpxcode=0 #}Iap47/cp58:(xcode=12 )xcode>apxcodeapxcodeap+32 xcode0x,y;xcode:y=y+1 # 9030F# # # proc-yes-no # xt=x:yt=y $ ap=64@ $ cp=91[ $ dp=3 $ x=xt:y=yt $ 9000(# $ w$=""9220$ $b$=w$(1) $ np=-1 $" b$="Y"np=1:9299S$ $, b$="N"np=0:9299S$ $6 9220$ $S $T%7::10 ,14;"Bye" $^ & procdbl &parameters are.... &a$ string to print &vp,hp start print posn &Uuses target to contain the ASCII of UDG & UDG+1 which are lost. Also uses xpos  &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 & ' '"symmet"20 lueagentreelacyaellohitb&argedd&po<#oxy05mkcod poabeczd gounu inoNFerdU XoBY- Well done Very good Excellent Jolly good- VERTICAL HORIZONTALDIAGONAL MULTIPLE NNGH Fi 5 5 7  AMultiple lines...4W