ZXTape! 0Created with Ramsoft MakeTZXrun T TCV P599597:1:1:1::"screen":6,0;:"main" Gscreen 0u ?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(3)  z=1 0zDZu$(p)u$(p,z)" "z=z+1:5020 z=z+8:193  {change user variable |=;:#1;6;1;0,0;s$;s$;s$;s$; #1;8;8;1,0;"Enter the data for the line:";3,1+(p<5);10 *p+60<;" DATA ";:y=10 k$="":d=0 $5800:(k$+m$+z$)=13 (k$+m$=""ů(m$+z$)=13 5530 m$=""5700D m=m$:d=0m>5#1;8;8;0,0;"Warning:"'"5 seconds is the longest note.";:m=10 d=1m<-60<#1;8;8;0,0;"Warning:"'"-60 is the lowest pitch. ";:m=-60< }d=1m>60<#1;8;8;0,0;"Warning:"'"60 is the highest pitch. ";:m=69E  k$=k$+m$ z$=","5690: rd=0#1;8;8;0,0;"Carry on,"'"need a pitch for the last note";:5690: u$(p)=k$:i=1 R5950>:z$="0"u(p,i,1)=-1:u(p,i,2)=-1:5670& Du(p,i,1)=z$:u(p,i,1)>5u(p,i,1)=5 T5950>:u(p,i,2)=z$:u(p,i,2)<-60<u(p,i,2)=-60< 2u(p,i,2)>60<u(p,i,2)=60< & k$""i=i+1:5630 02j=i+15:u(p,j,1)=0:j: :]k$=k$+",":#1;8;8;3,y;",";:y=y+1:d=1-d:5530 Dd=1-d:5790 Nj=k$-1 X.k$(j)","j>1j=j-1:5720X bk$(j)","j=j-1 l)m$=k$(j+1̱k$-1):k$=k$(j) v5810:5540 M#1;8;8;3,y;8;" ";8;:y=y-1: input one item in line m$=""  r=0 F200:m$=""#1;8;8;0,0;s$;s$; e(z$13 (d1y>30))Ưz$12 (z$<"0"z$>"9")z$","z$"."z$"-"5820 z$=","m$=""5820 ڡy>30Ưz$12 Ưz$13 #1;8;8;0,0;"Warning: line cannot be any"'"longer, enter now or delete some";:5820 ,z$=","ůz$=13 (z$=12 m$="") Mz$=12 y>30#1;8;8;0,0;s$;s$; ;z$=12 m$=m$(̱m$-1):5790:5820 &z$="-"(d=0m$"")5820  >k$=""m$=""#1;8;8;1,0;s$; "m$="0"z$"."m$="":5790  z$="."r=15820 *z$="."r=1 4Nm$=m$+z$:#1;8;8;3,y;z$;:y=y+1:5820 =unpack string get first >z$="" H k$="" RAk$(1)","z$=z$+k$(1):k$=k$(2):5960H \k$=k$(2) f oread user program vars p 6000p zYn=6:u(6,5,2):v(8):u$(n,22):60063,22 ~i=16:u(i,1,1),u(i,1,2),u$(i):i:u(5,2,1),u(5,2,2) i=18:v(i):i l$(1,285)  .2~L,0,".2,0",.2~L,4,".2,4",.2~L,7,".2,7",.2~L,12 ,".2,12",.2~L,7,".2,7,.2,4",.8L,0,".8,0",.2~L,4 E12 ,7,7,9 ,7,11 ,12 ,-1 cintroduction screens djumps n 6530 xe=1:6590 2,5;"INTRODUCTION TO TUNES":2800 :'"This program shows you how to":2800 :"develop the Spectrum's tune":2800 "playing facilities. Refer to":2800 :"Chapter 3 for more information.":2800 :9 ,3;"BASIC WORDS USED IN TUNES":2800 '"The program allows you to change":2800 :"both the time and the pitch of":2800 :"the BEEP. Instead of putting":2800 "numbers after BEEP, we will use":2800 :"DATA and READ statements. These":2800 :"words are explained in Chapter 6":2800 "of the Spectrum manual.":2800 :'"We also use an IF...THEN test in":2800 :"line 30. This tells the program":2800 :"to stop at the end of the DATA."  2,9 ;"CHANGING TUNES":2800 :'"When you change this program,":2800 :"you will be asked for whole":2800 :"lines of data. You can put up to":2800 Ȑ"8 numbers on each line - enough":2800 :"for 4 notes. You must always put":2800 :"a comma between the numbers. A":2800 Ґ"pair of zeros mark the end of":2800 :"the tune data, therefore you":2800 :"cannot change the last line":2800 ܁"(line 130): However, the tune":2800 :"will halt earlier if you insert":2800 :"zeros in any line before 130." :"The coloured squares which":2800 :"display when you run the program":2800 :"are simply for visual effect."  Wuser program XT199:0,14;"tunes"::i=16:j=1 bqj<6u(i,j,1)>0d=u(i,j,1):q=u(i,j,2):7110:d,q:j=j+1:7010b l/j<6u(i,j,1)<07040 vi a12 ,9 ;" press any key ";13 ,9 ;" to go on ";:200  x=1 i=16 7j=15:u(i,j,2)=07100 "x<9 u(i,j,2)v(x) x=x+1:j i:dn=1: ƾ59983O,64@+9 *(8*):59988T,64@+9 *(8*):59993Y,64@+9 *(8*):59998^,64@+9 *(8*):x=599608: ? taunt @`m$=22+8+10 +"BET YOU CAN'T"+22+10 +9 +"COPY THIS TUNE." J1::4:60003c,114r:60004d,7:60006f,11 :60005e,7:60007g,25:60008h T8:8:8 ^ S pn3~L~L~L ~L~LL+   Չ12121212,0,12121212,0 .2,4 .2,7 .2,12 .2,7,.2,4 .8,0 2" ydrmM0Z0K0etunes l V, 10 REM the program 20 READ d,p 30 IF d=0 THEN STOP 40 BEEP d,p 50 GO TO 20 60 REM the data 70 DATA 80 DATA 90 DATA 100 DATA 110 DATA 120 DATA 130 DATA 0,0A car {+highlight user variable Gx=p-1+n*(p<2):2;v(x,1),v(x,2);v$(x); >6;2;8;v(p,1),v(p,2);v$(p); $p=1x=0:y=11 : 3p=2*(p/2)x=p/2:y=11 : 2x=(p-1)/2:y=19+u(p-1)  {change user variable |P0,0;:;:#1;6;1;0,0;s$;s$;s$;s$; #1;8;8;2,0;s$;2,0;"Type in the new value: ";:2500 :m=-15530 Z#1;8;8;0,0;:5500|+40(*p:u(p)=m:u$(p)=u(p)  bm+(u(2)/3)+u(2)/4250z$=w$+"car would be too long.":5820 Ym170z$=w$+"car would be too tall.":5820 Cmu(7)+3z$=w$+"no room for wheel arch.":5820  Z1.75`*m+u(5)+u(4)u(1)z$=w$+"passengers need room.":5820 Om+u(2)+u(7)170z$=w$+"car would be too tall.":5820  Zm+u(5)+1.75`*u(3)u(1)z$=w$+"passengers need room.":5820 & DYm+1.75`*u(3)+u(4)u(1)z$=w$+"passengers need room":5820 N lTm+2*(u(7)+3)u(1)z$=w$+"wheelbase too long.":5820 vJm2*(u(7)+3)z$=w$+"wheelbase too short.":5820  Cm+3u(2)z$=w$+"no room for wheel arch.":5820 J2*(m+3)u(6)z$=w$+"wheelbase too short.":5820 Ou(2)+u(3)+m>170z$=w$+"car would be too tall.":5820  5840 N#1;8;8;0,0;z$:i=1200:=""i Xm=u(p):#1;8;8;0,0;"warning: ";0,0;s$;: Tu(6)+2*(m+3)u(1)z$=w$+"wheelbase too long.":5820  oread user program vars px6000p:n=7:t(n):u(n):v(n,6):u$(n,6):v$(n,1):60063,6:w$="Warning: " z#i=1n:u(i):u$(i)=u(i):i i=1n:v$(i):i:i=1n:v(i,1),v(i,2):i:i=1n:v(i,3),v(i,4):i:i=1n:v(i,5):i:i=1n:v(i,6):i l$(1,250): B190,32 ,25,502,25,120x,14 "l","a","b","c","d","e","r" ~10 ,16,15,7,13 ,24,11 ,11 ,11 ,21,17,16,16,24 80P,91[,66B,44,,189,60<,80P,77M,162,77M,98b,30,189,37% ?95_,16,13 ,25,13 ,60<,7 90,1,1,0,0,0,1 cintroduction screens d n 6530 xe=1:6590 2,6;"INTRODUCTION TO CAR":2800 :'"This program which helps you to":2800 :"design a car is based upon the":2800 I"details given in Chapter 5 of":2800 :"the book.":2800 9 ,5;"BASIC WORDS USED IN CAR":2800 :'"This is the first program which":2800 :"uses GO SUB, a word you will":2800 "find explained on page 52. Each":2800 :"part of the car is called by GO":2800 :"SUB statements.":2800 :'"Within these subroutines, you":2800 "will find the PLOT and DRAW":2800 :"words you have already used, as":2800 :"well as CIRCLE, which is":2800 :"explained in Chapter 5."  2,10 ;"CHANGING CAR":2800 :'"You will not see the listings":2800 :"for the subroutines unless you":2800 :"use the keyword LIST, followed":2800 Ȑ"by the line number of the":2800 :"subroutine you wish to examine.":2800 :"You cannot change the":2800 }"subroutines, but you can change":2800 :"all of the variables given at":2800 :"the start of the program."  Wuser program X199:0:;:#1;1,0;"car":x=250-(u(2)/4):y=1+u(7):7050 bu#1;0,7;"-------------------------":#1;1,7;"Press any key to move on!"; l200:;:60380 v x,y:(u(2)/4),(u(2)/2):-(u(2)/4),(u(2)/2):-u(5),0:-(.75@*u(3)),u(3):u(4)+u(5)+(1.75`*u(3))-u(1),0 -u(3),-u(3):-u(4),0:-(u(2)/3),-(u(2)/2):(u(2)/3),-(u(2)/2) ((u(1)-u(6))/2)-u(7)-3,0:2*u(7)+6,0,-:u(6)-2*u(7)-6,0:2*u(7)+6,0,-:((u(1)-u(6)+1)/2)-u(7)-3,0 x-u(5),y+2*(u(2)/2):u(4)+u(5)-u(1),0:(u(1)-u(4)-u(5))/2,0:0,u(3) =x-((u(1)-u(6)+1)/2):x-u(6),y,u(7):x,y,u(7)  <7150:1:i=17:t(i)=u(i):u(i):i ?95_,16,13 ,25,13 ,60<,7 _47/,24:161,0:0,76L:-161,0:0,-76L  .0:x=175:y=44,:7050 !i=17:u(i)=t(i):i  i=1n:1:v(i,3),v(i,4):v(i,6)=02,2:0,-4:-2,2:v(i,5),0:-2,2:0,-4:2,2:72204 *-2,2:4,0:-2,-2:0,v(i,5):-2,-2:4,0:-2,2 4/2:v(i,1),v(i,2);v$(i);:i > ? taunt @hm$=22+6+7+"BET YOU DIDN'T FIND"+22+8+7+"THE DELIBERATE BUG!" Jxm$=m$+22+10 +6+"HINT: THE WINDOWS FOR"+22+12 +2+"SHORT PASSENGER COMPARTMENTS" T1::4:60003c,114r:60004d,5:60006f,13 :60005e,1:60007g,30:60008h ^8:8:8 h n xS y,& 2x& 2x P[_B, <  PM M b<%/190 32 25 50 25 120 14 labcderW warning:  ecar l  10 LET l= 20 LET a=: LET b= 30 LET c=: LET d= 40 LET e=: LET r= 50 GO SUB 1000: REM draw body, 60 GO SUB 2000: REM underside, 70 GO SUB 3000: REM windows, 80 GO SUB 4000: REM and wheels 90 STOP