ZXTape! 0Created with Ramsoft MakeTZXrun T TCUV P599597:1:1:1::"screen":6,0;:"main" Gscreen 0u F?8p `<0x???0``<<px ``fdLL@b LL @?<x `<0x ????0``@<<x ``fdLL@b LLL@0`<px `0 `08888pp>>0|``&B@0 ```dO@b@0` ` <0x `00`0``<<0x `` B@0` ` <0x `00`0``<<0x ``b0` ` <0x `00`0``<<0x ``DHH@bHHH@0` ` <0x `00p`0``<<0x ``fdLL@b LL @0` `<0x `88880pp``<<0x ``fdLL@b LL @bBf&& 0"@b~f&& 0"~f`f&& 0"$bf&& 0"F$<~' 0"~$b~~bB$$"BDD@FFF22``` F|f@@FFF220p  8! @!E @Db :Fdf@@2>"8HH&"" """ D <0HD< Fdf@@"HH@ q¢"! P¢!@ (@$HD D|f@>>"HHH B""!  ""@ (@$HD DDDD""><40pGA¢@Ç g`i0800 :7:18,0;:p$:p$+" l"61952:9000(# 6000p:220 3500 -o=1230:2700 :240 "o=3250:1000 .o=2260: 7000X:360h 8o=4280:4000:e=0110n 140 charset & colour subs .236066\,0:236077\,238: -236066\,0:236077\,60<: |60003c,568:60004d,0:60005e,0:60006f,18:60007g,31:60008h: c60003c,214:60004d,x:60005e,y:60006f,x:60007g,z:60008h: 60003c,8*cb:60004d,21:60005e,0:60006f,21:60007g,31:60008h: v60003c,c:60004d,22:60005e,0:60006f,23:60007g,19:60008h: T60421,x:60422,y:60423,c(d):60424,b(d):60425 : I191:0;7;0,0;l$(1);:190: Cx=a(23613=\):x,c(61020\):x+1,b(61020\): 7:7:0:: ""200 z$=:z$=""210  J:x=8:y=9 *(1+(6*)):d=3000 :196: 2x=0:y=546:d=3000 :196: 2x=8:y=63?:d=5000:196: ;7:x=8:y=63?:d=2500 :196: kx=2:y=546:d=2000:196:7:x=3:y=63?:d=2000:196: @7:x=(4*):y=63?:d=2000:196: 2x=8:y=546:d=5000:196: "1x=8:y=9 :d=3000 :196: +riff frills ,7300,:i=117:d,e:d/20,e:i: 62,12 ,1,16,1,12 ,2,7,1,12 ,1,7,2,4,1,7,1,4,3,0,1,-60<,1,7,1,8,1,9 ,1,10 ,1,11 ,1,12 @6320@:i=14:d,e:d/10 ,e:i: JA1,4,1,4,1,4,4,0 T7340T:i=113 :d,e:d/20,e:i: ^2,0,1,4,1,7,2,4,1,7,1,12 ,2,69E,1,7,1,8,1,9 ,1,10 ,1,11 ,1,12 hN360h:i=17:d,e:d/20,e:j=12*d:j:i: rw2,12 ,1.5@,7,.5,7,2,9 ,4,7,2,11 ,2,12 intro screen if any  loading screen  199 *10 ,12 ;"Loading";11 ,12 ;:i=17:" ";:i:11 ,15-(.5*p$);"";p$; 4i=15 >2;5;1;10 -i,12 -i;"";10 -i,18+i;"";11 +i,12 -i;"";11 +i,18+i;""; Hi R editor subroutine Dp=0:199:p$="car"1500:7150:1030 !p$"car"199:1500 Dp$="car"0,0;:i=08:s$;:i:1500 2:0,16:255,0:0:#1;6;1;3,20;" press SPACE";2,20;" press ENTER";0,0;"To run program: press RUN ENTER";s$;:c=112p:195 "1200+200*(p=0) %200:z$=13 p=0 $Lz$=13 0,0;:3,0;:5500|:1010 .&z$=32 1180:1050 8&p$="car"(z$="k"z$="K")1300 Bz$"R"z$"r"1050 L_0,0;:4,0;:p$="car"9 ,0;:i=111 :s$;:i VC197:191:#1;1,0;"RUN";:190 `%200:z$13 1120` j199:7000X tU360h:7:x=(4*):y=63?:d=5000:196:1000 highlight next var 4p=p+1:p>np=0:e=1:1210 "p=1e=1:1210  e=0 .197:p=01400x:1280 γ#1;8;8;8;2,0;"To change this one: ";3,0;"To move to the next: ";0,0;1;6;s$;s$;s$;s$;:1410 $p$="tunes"5000:1280  f=0  5000 6z=y+u(p)-1:193:f01260 Se=1p$="car"2;v(7,1),v(7,2);v$(7);   list other subs /9 ,0;:i=111 :s$;:i 0,0;:4,0;:197:191:#1;1,0;"LIST ";:2500 :199:i=m$:i>4000i=4000 (8i=((i+1)/1000):60064,i:1510 2;:2:0,4:255,0:0:#1;0,0;"Use LIST for other subroutines,"'"or press any other key to go on."; <&200:z$="k"z$="K"1310 F 1000 x#1;8;8;8;2,0;"For CHOICES screen: ";3,0;"To make a change: ";0,0;1;5;s$;s$;s$;s$; #1;1;8;8;1;0,23;" ";0,27;" ";2,27;" ";3,27;" ";  listing subroutine 60064,0 60065 5191:0,0;l$(1);:190  input positive number m$="" 200 7z$13 Ưz$12 (z$<"0"z$>"9")2510 z$=12 m$=""2510 z$=13 m$=""m$="-1" 2z$=13 m=m$:7:0:0: bz$=12 m$=m$(̱m$-1):#1;8;8;8;" ";8;:2510 m$>52510 Bm$="0"m$="":#1;8;8;8;" ";8; 3m$=m$+z$:#1;8;8;8;z$;  2510 put up intro screens pg=1:e=0 |199:0,26;3;"Page ";pg:#1;0,0;" press any key to speed up ";s$; 6500d+10 *pg u#1;0,0;1;"To go to next page: press SPACETo return to Choices:press ENTER" $200:z$=13 0: z$" "2750 e=12700 pg=pg+1:2710 !.02{# =,12 :100d: program menu dn=0:3200 mq=mq:mt=mq g$=f$(mq):3400H 200 z$=13 3100 z$32 3030 .mp=mq:mq=mq+1:mq>5mq=1  3020 "340T:mq0290" &p$=n$(mq,̱p$)mq=-mq: 0p$="":i=1̱n$(mq) :n$(mq,i)" "p$=p$+n$(mq,i) Di E:mt<4mq>3mt>3mq<49 ,8;"Turn over tape,";11 ,8;"then rewind it.":3144H Fmq>mt3144H G.mu011 ,9 ;"Rewind tape." HDmu=1:13 ,1;"Start the tape and press ENTER" I%200:z$13 3145I N Ycb=1:cp=1:ci=7:cq=6:cj=1:cb:cp:ci::194 0,175:255,0:0,-23:-255,0:0,23:1,8;"CHOOSE A PROGRAM"; #1;0,0;7;1;"To pick this program:press ";2;7;"ENTER";7;1;1,0;"To go to the next: press ";7;2;"SPACE"; :i=15:2+3*i,13 ;n$(i);:i  HS1:cp:ci:i=02:1+i+3*mp,12 ;" ";:i RScq:cj:i=02:1+i+3*mq,12 ;" ";:i:0 \#ci:cp:20,1;o$(mq); fr.15~,d(mq):0,147:255,0:0,-143:-255,0:0,143 p editor/run menu 3700t 3900< 200 ;z$=13 280+20*o-40(*(o=3): z$32 3530 #o=o+1:o>4o=1 3520 tYcb=6:cp=6:ci=0:cq=1:cj=7:cb:cp:ci::194 ~>s(1)=17:s(2)=5:s(3)=16 a0,144:255,0:0,-136:-255,0:0,136 t1,9 ;g$:0,175:255,0:0,-23:-255,0:0,23 #1;0,0;7;1;"To choose this one: press ";2;7;"ENTER";7;1;1,0;"To go to the next: press ";7;2;"SPACE"; 7,(16-(s(1)+p$)/2);" Introduction to ";p$;10 ,(16-(s(2)+p$)/2);" Run ";p$;13 ,(16-(s(3)+p$)/2);" See and change ";p$;16,4;" Choose another program ";  <60003c,8*cp+ci:60004d,5:60005e,0:60006f,19:60007g,31:60008h Ffs=4:e=27:o4s=(16-(s(o)+p$)/2):e=(16+(s(o)+p$)/2) P60003c,8*cq+cj:60004d,3*o+4:60005e,4:60006f,3*o+4:60007g,27:60008h Z;.075}*(2+(o=4)),d(2*o-(o<4)) d 1e=m$:z$=z$+m$(1c):m$=m$(c+1): taunt the user dn=1e=0: 8000@:4,0;:1,15-.5*p$;"";p$;"":#1;3,0;" press any key to speed up " z$="" c=1:3990 /e=22c=2:3990:4020 :e16e23c=1:3990:4020 ?"";8;:.02{# =,12 :" ";8;z$;:10 m$""4010 p$="tunes"360h v#1;3,0;"Do you want to go back and try? press Y or N " <0:200:z$="y"z$="Y"o=3:e=-1: z$"n"z$"N"4080  e=0: highlight user variable  {change user variable | oread user program vars p cintroduction screens d Wuser program X ?taunt for user @ #(ii=0::11 ,9 ;"STOP THE TAPE";13 ,7;"Then press ENTER" #2:z$=:z$13 .1}L,i:i=20-i:90102# #< x+ -boxes blotch jingle tunes car K BOXES CHOICESBLOTCH CHOICESJINGLE CHOICES TUNES CHOICES CAR CHOICES ϛ(learn to draw a box anywhere)(splash colour over the telly) (a catchy little number) (compose musical masterpieces) (design your own car) 4S jGJINGLE CHOICESd e y PjingleZ oWruncode 8 '!Och  :cO:d_:f<#!XG:e_:g +"*H +Rz(6 #<*K\~( ( ͸O!f:e<2e!dV́ͽgG>!@Gx•˿GzOx8'':::_xxʳpʺW>GO~A8 7w#ýw !@@>p#=K x :! ##^#V=%Á,Ü3÷:F́ÜR͜Á^ͷn÷!j6#6#6#6:_x(!j~4!k~5!l~4 !m~5 ' *<T]<">22GD2x : 2:D 2!51:! :2!41!: : 2!41!: :D2!51!: :<2G(!4*[R"xx:_>2':<28:_>2':=2 :_>2 ':<2 8:_>2 ':=2 !X???G  #!XO  ~O{wK x :???W:_!X:_'+!\::\( !:\6#ˮ}$$$~$$~$>(> >bd&F(*D:  >>> < >>fff~ff<< L8bdxxdb`````~bvjjbbbrjjfb|bb|db<@|F<~bbbbb<bbbb4bbbj*<Bd8&Bf$~D"~@ pp8T"x ~8LLL>``xdd|ddd8bbjj4d8,DLLL< 8|H$|0p p(255)(p=2m>175)5580:#1;8;8;1,0;"Whole box would be off screen. ";:5510 (p=1m+u(3)>255)(p=3m+u(1)>255)5580:#1;8;8;1,0;"Right edge would be off screen. ";:5510 (p=2m+u(4)>175)(p=4m+u(2)>175)5580:#1;8;8;1,0;"Top edge would be off screen. ";:5510 -(p=3p=4)m=05510 u(p)=m:u$(p)=u(p)  F#1;8;8;0,0;m;" is too big. ";: oread user program vars p 6000p zCn=4:u(n):v(5,n):u$(n,6):60063,6 #i=1n:u(i):u$(i)=u(i):i -i=15:v(i,1)=-1:i l$(1,110n)  &80P,480,100d,84T cintroduction screens dpage jumps follow n 6530 xe=1:6600 >2,5;"INTRODUCTION TO BOXES":2800 4,0;"This program draws a box of any":2800 :"size, anywhere on the screen. It":2800 :"is based upon the program on":2800 :"page 14 of the book.":2800 9 ,3;"BASIC WORDS USED IN BOXES":11 ,0;"PLOT puts a point on the screen.":2800 :"The two numbers after PLOT show":2800 :"where the point is to go. The":2800 "1st number must be between 0 and":2800 :"255, and the 2nd between 0 and":2800 :"175. Refer to page 63 of the":2800 :"book.":2800 c19,0;"DRAW makes a straight line, and":2800 :"is also explained on page 63."  2,7;"WHEN RUNNING BOXES":2800 :4,0;"When you run BOXES, the lines":2800 :"are drawn slowly if you continue":2800 :"to hold down the ENTER key.":2800 ҡ8,0;"Each time the program is run,":2800 :"you will also be given the":2800 :"chance to redraw earlier boxes":2800 ܀"as well. Use this to see how":2800 :"changing the program alters the":2800 :"shape and position of a box."  Wuser program Xk=1::ci=(6*):ci:7::u(1)+u(2)=0u(3)=255u(4)=175dn=1 b#1;0,0;"--------------------------------";1,13 ;"boxes":i=120:i:u(1),u(2):""7200  lu(3),0 v0,u(4) -u(3),0 0,-u(4) 60260d,u(1):60261e,u(2):60262f,u(2)+u(4):60263g:0:7300:j=0k=2 #v(k,1)=-17160 7320:#1;0,7;"Want to see where the box";1,7;"before was? Press Y or N";:200 z$="n"z$="N"7160 z$"y"z$"Y"7080 wci:0:v(k,1)u(1)v(k,3)u(3)v(k,2)u(2)v(k,4)u(4)1 1v(k,1),v(k,2):v(k,3),0 -0,v(k,4):-v(k,3),0 4v(k,4)>00,1-v(k,4) 60:0:k=k+1:k57070 ;:#1;0,0;"--------------------------------":7320:#1;1,9 ;"Press any key to go on";:200  7300  j=0 aj=14:i=41-1:v(i+1,j)=v(i,j):i:v(1,j)=u(j):j:  Oi=1u(3):1,0:=""u(3)-i,0:7030v *i 4Oi=1u(4):0,1:=""0,u(4)-i:7040 >i HPi=1u(3):-1,0:=""i-u(3),0:7050 Ri \Pi=1u(4):0,-1:=""0,i-u(4):7060 fi p 7060 zNi=12 0-1:#1;1,i;"boxes ":i: <j=0:i=14:u(i)v(1,i)j=1 i: ai=12 -12 *(k1)0-1:#1;1,i;"boxes ":i  ? taunt @!m$=22+7+10 J{m$=m$+"BET YOU CAN'T"+22+9 +9 +"MAKE A BOX THAT"+22+11 +5+"FILLS THE WHOLE SCREEN" T1::4:60003c,114r:60005e,4:60007g,27:60004d,6:60006f,12 :60008h ^8:8:8 h emboxes l z)T 10 PLOT , 20 DRAW ,0 30 DRAW 0, 40 DRAW -,0 50 DRAW 0,- 60 STOP blotch 2~)highlight user variable 9f=1p=4x=5:y=20:f=0: "p=1x=0:y=12 "p=2x=3:y=11 /p=3x=3:y=17+u(2) "p=5x=6:y=11 7f=0p=4x=5:y=18:f=1  {change user variable |Q#1;6;1;0,0;s$;s$;s$;s$;:p=45700D r#1;8;8;2,0;s$;2,0;"Type in new value: ";:2500 :m=-1 p=1m>7#1;8;8;0,0;m;" is too big. "'"Colours are numbered 0 to 7. ";:5510 p<5(p=2p=3)m+u(5-p)>8#1;8;8;0,0;m;" is too big. "'"z must never be more than 7 ";:5510 p=5m=0#1;8;8;0,0;"PAUSE 0 means pause forever. Try another value. ";:5510 p=5m>500#1;8;8;0,0;"PAUSE ";m;" is very slow. ";1,0;"Try another value. ";:5510 u(p)=m:u$(p)=u(p)  D#1;8;8;1,0;"Type in a new graphics character";2,15;""" """;2,16;"G" N200:z$=13 XBz$4Ưz$11 j=136+v(z$-3):5760 bz$"0"z$"9"5750v l]#1;8;8;1,0;"use keys 1 to 8, and maybe CAPS ";:5710N v*j=80P+z$:j=136j=128 u$(4)=j B#1;7;0;2,16;u$(4,1)  5710N oread user program vars p 6000p zAn=5:u(n):u$(n,6):v(8):60063,6 +i=1n:u(i):i4u$(i)=u(i) i u$(4)="" i=18:v(i):i l$(1,190)  )0,1,7,0,5 A4,3,5,6,2,7,1,0 cintroduction screens dpage jumps follow n 6540 x 6590 e=1:6650 2,5;"INTRODUCTION TO BLOTCH":2800 :4,0;"This program will cover your TV":2800 :"screen with coloured shapes. It":2800 :"is similar to the one on page 18":2800 "of the book. Even though it":2800 :"looks very simple, it introduces":2800 :"a number of important BASIC":2800 :"words.":2800 12 ,3;"BASIC WORDS USED IN BLOTCH":2800 :14,0;"RND produces random numbers; see":2800 :"page 80, which also explains":2800 :"INT.":2800 18,0;"PRINT AT determines where each":2800 :"blotch will go, and PAUSE tells":2800 :"the computer how long to wait":2800 :"after drawing each blotch."  2,8;"MORE BASIC WORDS":2800 :4,0;"BORDER sets the colour of the":2800 :"edge of the screen, and INK sets":2800 ȭ"the colour of what is printed or":2800 :"drawn. The colours are numbered":2800 :"from 0 to 7 on the top row of":2800 :"the keyboard.":2800 " Line 40 uses a random formula":2800 :"to choose the ink colour. Some":2800 :"number combinations will not be":2800 :"allowed because they may make":2800 ܮ"the value of 'z' bigger than 7.":2800 :"If the first number is large,":2800 :"the second will have to be small":2800 :"and vice-versa":2800 " You can also try out all the":2800 :"graphics characters on the keys":2800 :"1 to 8; using them with CAPS":2800 :"SHIFT will reverse their effect."  2,6;"WHEN RUNNING BLOTCH":2800 :4,0;"When you first tell BLOTCH to":2800 :"stop running, you will be given":2800 m"the chance to restart it with":2800 :"all additional characters":2800 :"flashing."  Wuser program X`199::u(1):u(3)1u(2)=2u(5)=502dn=1 b 7100 lm#1;0,9 ;"Do you want to see some";1,9 ;"flash? Press Y or N"; v@200:z$="y"z$="Y"1:7100:0:z$="n" z$"n"z$"N"7020l  ; g#1;1,0;"blotch":#1;1,11 ;"Press any key to stop";  1 x=(22*) y=(32 *) z=u(2)+(u(3)*) z;x,y;u$(4,1)  u(5)  =""7130  0   ? taunt @6m$=22+6+6+"BET YOU CAN'T PRINT" Jam$=m$+22+8+10 +"ONLY IN RED"+22+10 +8+"WITH A PAUSE OF" T3m$=m$+22+12 +10 +"ONE SECOND" ^1::4:60003c,114r:60004d,5:60006f,13 :60005e,5:60007g,25:60008h h8:8:8 r Zj1eblotch l l*) 10 BORDER 20 LET x=INT (22*RND) 30 LET y=INT (32*RND) 40 LET z=+INT (*RND) 50 INK z 60 PRINT AT x,y;"" 70 PAUSE 80 GO TO 20 90 STOP jingle 2zM'highlight user variable x=p-1:y=12 5p=2p=3p=6p=7y=13  {change user variable |=;:#1;6;1;0,0;s$;s$;s$;s$; v#1;8;8;2,0;s$;2,0;"Type in the new value: ";:2500 :m=-1 sm>21#1;8;8;0,0;"That note is too high pitched. Try again.";:5510 u(p)=m:u$(p)=u(p)  oread user program vars pWn=8:u(n):u$(n,6):60063,6:j$(12 ,2):6000p z)i=18:u(i):u$(i)=u(i):i i=112 :j$(i):i "v=0:l$(1,200)  A2,4,2,7,6,4,6,7 6"C","C#","D","Eb","E","F","F#","G","Ab","A","Bb","B" cintroduction screens djumps n 6530 xe=1:6590 2,5;"INTRODUCTION TO JINGLE":2800 :4,0;"This simple music program is":2800 :"very similar to the one on page":2800 :"21 of the book.":2800 8,3;"BASIC WORDS USED IN JINGLE":2800 :10 ,0;"There is only one new BASIC word":2800 :"used in the program. BEEP is the":2800 :"instruction to make your":2800 "Spectrum create a noise. It is":2800 :"explained on page 50. The first":2800 :"number sets the length of time":2800 "for the sound, and the second":2800 :"sets the pitch of the note. You":2800 :"can only change the second":2800 {"number in this program. Use":2800 :"numbers from 0 to 21. 0 is the":2800 :"note known as middle C."  2,6;"WHEN RUNNING JINGLE":2800 :4,0;"Once you have run the program,":2800 :"you will be asked whether you":2800 S"wish the JINGLE to repeat. It":2800 :"can repeat itself up to 4 times"  Wuser program XE1,.5,.5,1,1,.5,.5,1 bk=v0-1:7000X:6:6::1,13 ;"jingle":v-k:i=15:17,96`+8*i:221,0:i:16,104h:0,32 :239,104h:0,32 li=18:j v.z$=j$(1+u(i)-12 *(u(i)>11 )) (h=z$-67C:h<0h=h+7 u(i)>11 h=h+7 Nh2*(h/2)1;9 -(h/2),3*i+2;"" h=2*(h/2)9 -h/2,3*i+2;"";10 -h/2,3*i+2;"";:h>21;8;"_" bh<724*i+23,96`+4*h:0,22:j<14,-4 bh>624*i+16,96`+4*h:0,-22:j<14,4  12 ,3*i+2;z$ rz$(2)" "9 -h/2,3*i+1;z$(2);:h>1h<12 1;8;"_"; j*.75@,u(i) i:k v0;:#1;0,4;"------------------------  Press any key to go on";:200:v=0:7190: #1;0,1;"Do you want to hear it played with autorepeat? Press Y or N";:200:z$="n"z$="N"v=1:7140 z$"y"z$"Y"7150 l;:#1;1,0;"How many times repeated?(1 to 4)";:200:z$<"1"z$>"4"7170  v=z$:7000X !i=18:dn=1  )dn-1u(i)=0dn=dn-1 *)dn2u(i)=21dn=dn+2 4i: ? taunt @5m$=22+7+7+"BET YOU DON'T KNOW" JBm$=m$+22+9 +2+"THE HIGHEST AND LOWEST NOTES" T?m$=m$+22+11 +4+"THIS PROGRAM WILL ALLOW." ^1::4:60003c,114r:60004d,6:60006f,12 :60005e,1:60007g,30:60008h h8:8:8 r veijingle l l 10 BEEP 1, 20 BEEP .5, 30 BEEP .5, 40 BEEP 1, 50 BEEP 1, 60 BEEP .5, 70 BEEP .5, 80 BEEP 1, 90 STOP AUSE 80 GO TO 20 90 STOP