ZXTape! 0Created with Ramsoft MakeTZXcover#15 }\  10 `1:1:1:1:5:4:6:2:1:=""5 a$=:0: )9990':0:7:0:  a=1 :a*100d:#1;0,0;6;" Page ";a;" ENTER=Next SPACE=Back":a=2#1;1,0;" PRESS C TO COPY TO ZX PRINTER" (""40( 2 5 <)a$=" "a>1a=a-1:30 F/a$=13 a<8a=a+1:30 Ka$="c"a$="C":40( PW(a$="l"a$="L")a=81:1::10 ,8;"START THE TAPE":"" Z 20 d'" This magazine is composed of a number of programs that chain together, so that each one will LOAD the next when you are ready for it." n\'" Some of the programs on the tape may not be suitable for use with microdrives. " x'" Any particular program can be LOADed using its file name listed on the contents page, but to 'read' everything in the magazine, it is easier to use the chaining." N'6'" Press ENTER to go to next page"'" Press SPACE to go back a page"  ȝ'" SPECTRUM COMPUTING - ISSUE 16 FUTURE SUMMERS 1985  APS LTD 222 REGENT ST. LONDON WIR 7DB TELEPHONE 01-439 0666 EDITOR - ROY GIBSON"  " CONTENTS - SIDE ONE"  " Editorial 'cover'" "" Disco light show 'patterns'" "" Classic arcade 'invaders'" " Fruit machine 'fruit'"  " CONTENTS - SIDE TWO"  " Memory test 'simeon'" " " Four 'reviews'" !" Star game '20 tons'"  ,&''''''''''" CHANGES CHANGES" J "" Welcome to Spectrum Computing" $ "issue 16. I hope you caught the"  "article in CRASH about tape " ""magazines. In this editorial I" "would like to clarify some" "things for new viewers."  ""First, submissions, we welcome" #"all your programs, letters etc." ""To contribute simply send your" "tape to the address at the " ""start of this section. Payment" #"is always on publication and is" "between 20 and 100 pounds." %:"The subject is up to you but in" #"each issue we will suggest some" "areas we are short of."   "Another point is that we are" #"happy to accept 16 or 48K progs" #"for inclusion in Spectrum Comp."  #"Here are a few areas for you to" #"think about, submissions on the" "following subjects are more" "likely to be accepted."  " Unusual adventure games" " Useful utility programs" #" Hints on how to get more from" " your Spectrum"  !"The following are less likely" #"to be accepted for publication:"  " Platform games" " Simple arcade games" " Copies of current games"  X":" Enough of the future issues" Y" what about this one ?." Z%:" Well the next program is quite" [$" unusual and we hope you like it" \#" It's called 'patterns' and was" ]#" written by Pete Cook of Leics." ^"" It allows you to create Disco" _" lighting effects on your" `" SPECTRUM." a%:" Invaders is just what it says." b#:" Fruit is by Jason Smith from" c$" Caithness. It is a full feature" d$" Fruit machine which should save" e" you a fortune in 10p's."  $:" Side 2 starts with Simeon and" #" should test your memory to the"  " limit." ":" The rest of side 2 contains"  "20 tons which is a very good" ""arcade game written in machine"  "code."   {'" EXTRA BITS!"''" That's right folks, 2 extra programs on the end of sides one and two. Many readers write requesting for early back issues of the tape mag. So due to popular demand, we have taken a trip down olde memory bank lane to bring you a total of four extra programs from issues two and three" )D'" PRESS L TO LOAD THE NEXT FILE"''" Or any other to read again." *  #( '1:1:1::9 :21,0;" STOP THE TAPE AND PRESS A KEY ":(23637U\+256*23638V\+6): '*U\@@>2\:@ H >2@>.g=(+͵v:\(>!XX#= = *@##"@@F#NAR0!X> 0:@w6 = !"@ ```````````````````````````````````````````````````````````````...................................................... '"cover"1 aA patterns ' " JPATTERN GENERATOR PETE COOKE APRIL 85 %:10 ,9 ;"STOP THE TAPE" Z$=:Z$=""12 6P(X,Y)=22528X+24+X+32 *Y  P=23675{\:Q=23676|\ 0"23658","8":"23675","40":"23676","110" (9H(X=(XX)=(X/256):L(X=X-2X)=X-256*H(X) dç:7:ç:ç: n]8,8;"PATTERN DISPLAY";9 ,8;"***************":6:8E3@ MAXFRAME="957":SPEED= 7:ç:7: 2ç,8;"PATTERN DISPLAY";,2;"MENU." I5,5;"1. RUN";7,5;"2. ALTER SEQUENCE";9 ,5;"3. ALTER COLOURS";11 ,5;"4. INSTRUCTIONS";13 ,5;"5. ALTER SPEED/NO.OF FRAMES";15,5;"6. SAVE>TAPE";17,5;"7. LOAD"9"1040 Z$="9":10 ,9 ;"START THE TAPE":23675{\,P:23676|\,Q:23658j\,0::10 ,9 ;"START THE TAPE":"" L,Z$<"5"1E3+1E3*Z$:1E3 V.6E3p+100d*(Z$-5):1E3 ç:7:ç: hN=ç7:2*n,8;"";2*n+1,8;"":n #;,ç;6;"Q=QUIT"; 4HFRAME=1:28238Nn,0::28239On,0:28240Pn >28240Pn HSPEEDSPEED R1FRAME=FRAME+1:FRAME>MAXFRAME21004 \"Q"2110>  :"ALTER FROM FRAME?";FRAME X=ç:Y=ç 12 ,14;"FRAME";17,ç;"Q-QUIT N-NEXT B-BACKUP R-REPEAT";19,ç;"CURSORS (+S-SHIFT=FLIP BIT)";21,ç;"F-FILL C-CLEAR"; ("28238",L(FRAME):"28239",H(FRAME) 7000X "28246" )Z$="N"FRAME=FRAME+1:3010 9Z$="B"FRAME=FRAME-(1FRAME>0):3010 kZ$="R"FRAME=FRAME+1:N=07:"28460+8*FRAME+N","(28460+8*FRAME+N-8)":N:3010  :ç,9 ;"ALTER COLOURS" 5"INK COLOUR (1-7)";INK:INK"7"4010 5,5;"INK ";INK 9"BRIGHT (0-1) ";BRIGHT:BRIGHT<çBRIGHT>4030 #7,5;"BRIGHT ";BRIGHT "28237","INK+64*BRIGHT"  8E3@: :ç,10 ;"INSTRUCTIONS" ,2;"This program simulates the"'"lights often found in disco's"'"and allows you to design a"'"sequence of patterns of"'"lights." o" The program will display this"'"sequence for up to 500 (16k)"'"or 4500 (48k) frames in an"'"endless loop."  8e3@: p*:ç,7;"ALTER SPEED/NO.OF FRAMES" uP5,5;"OLD SPEED ";SPEED;7,5;"OLD NO.FRAMES ";MAXFRAME z"SPEED (0-100)";SPEED "10 ,5;"SPEED ";SPEED ("NO OF FRAMES (TILL REPEAT) ";MAXFRAME ,12 ,5;"NO OF FRAMES ";MAXFRAME  8E3@: :ç,10 ;"SAVE>TAPE" "NAME OF FILE ";F$ F$"28460","8*MAXFRAME"  8:ç,10 ;"LOAD0) =Y=Y+((Z$="6"Z$="&")Y<7)-((Z$="7"Z$="'")Y>0) 3Z$="%"Z$="&"Z$="'"Z$="("APEEK=63?-APEEK VZ$="C"N=07:N,24;5;1;" ";:N:APEEK=ADDR VZ$="F"N=07:N,24;2;6;" ";:N:APEEK=ADDR  5ADDR,APEEK:Z$"Q"Z$"N"Z$"B"Z$"R"7100  @#21,10 ;"PRESS SPACE"; J" "8010J T '4"28199"::10 ,9 ;"LOADING....":"": 'J"patterns"9998':"patcode"28200(n,300,+8*957 ZzpXqpatcode (n >F8\nnçno*Nn))),o !X(XN:Mn!8>w#w#>0o|g>0_zW#*Nn#"Nn*Nn))),o !X~#(y>o|g*Nn))),o BXN>!8>)#>_zW> _zW!,o-6# x ``00 ``00 Á灁~~<<0pА          xxxx<<<<<<<<xxxxxxxx<<<<<<<<xxxxxxx<(  ~BZZB~~BZZB~======_=]=]=]-],],,],,], U, U,U,U(U(U(U(U(U(UUUUQQQ!!   ?~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~p~~~~~`~~~~~@~~~~^@~~~^^@~~^^^@~^^^^@~N^^^@~F^^^@~B^^^@~BZ^^@~BZZ^@~BZR^@~BRR^@~BBR^@~BBB^@~BBBN@~BBBF@~BBBB@~BBB@@~BB@@@~B@@@@~@@@@@|@@@@@x@@@@@p@@@@@`@@@@@@@@@@@@@@@@@@@@@@@@@@? @@@@@@@@@@@@@@@@  @@@@@@  **UTTPP@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$<<$$$$<<$$<<<<''<<<<<<<<<<~~<<@`` 00  00 ``00`` ``0000`` ``00<<~~ @@  @@   @ @ @@ @@  @P  @P  DP "DP "DP  "DP  "DP  "DP $ "DP $J"DP $J"DP $JbDP $JbdP $JbdP $JbdX $JbdX$$JbdZ$$JbdZ$$JbdZ$$JbfZ$$JffZ$$JffZ$$ZffZ$$ZffZ$$J"fZ$$BfZ$$BDR$$BB$"9")z$" "557 F#z$" "26999wi,z$:40( dA=27000xi:8,10 ;1;" Game Over ":A0A6348610 ,6;1;" A NEW HIGH SCORE " nn=11000:n x 10 'm26998vi:5,8;"Loading ...";7,8;"PLEASE WAIT":"":"":26999wi,5: '\"invaders"9998':"invcode1"27000xi,21004:"invcode2""A",21*8 amtoWZqinvcode1 4xi#+6n n>2Nq:MqG:Nq8 ()m>2Nq͊l͜kSkjj͢j:Nq2Nqx/ >:(q(:"q(=2"qj:Mq nj͢jnj͢jnj͢jnj*%q[#qR8K#qC%q:pO>2Cp> ͉o > ͉o > ͉o>2po>2Cp:"q0͉o>2(qnj͢jnj͢jnj͢jnjͳj͊l͢j!X~w# x !Dp~ ##~++8 >2(q>2"q###:wiG x @ x !p~(c#N#F++o~ >2(q65kG(5kx8>w3o~( #q#p++Dk 65k >2(q6###>2Cp> ͉o>2Cp>͉o!p~(###:Lq2Lq!DpO o|g~(+++#N #F>w#q#p:pKpo~(((! 0l>2Cp> ͉o>2p>2Cp> ͉ox >2pCpo~(6 >2Cp> ͉o>2p 0l>2p >2Cp> ͉o>2p>2Cp>͉o!Dp~ I#^#V++z ?y096>2CpKB> ͉o > ͉o > ͉o*#q "#q>2Cpp:Mq=2Mqx/2Kq(6:p(/(cO>2Cp> ͉o >2Cp>͉o >͉o >͉o:p<2p6:Kq(/:p((=2pO>2Cp>͉o >͉o >͉o >2Cp> ͉o:px/>2p:p~ A#N#F+>2Cp> ͉o > ͉o > ͉o *n DMq#p>2Cp>͉o >͉o >͉o = :Iq_:Jq2Iq(:n >2Jq>2Iq- >2Jq>2Iq:Jq >2Jq>2Iq >2Jq>2Iq*)q#")q~!+q")qDp!p:'q<2'qO~#~#~#>2Mq>!pZ6#>2p2p!"p>2Cpo>2Cpno>n< oEo!+q")q>2Iq>2Jq>2(q>2Cp*#qp*%qp:"q0͉oSCORE ..... HI ..... LIVES >2"q!"#q>2'q!DpGo|g~#N#F>2Cp>͉o >͉o >͉o:pO>2Cp>͉o >͉o >͉o!DpGo|g#N#F> ͉o > ͉o > ͉o>2Cp>͉o >͉o >͉oyO8>͉o >͉o >͉oyO8x80[6\[{\֐o&)))xЇ!Oqo|g~#foyo|gw$o:Cpwh&)))))yo|Xg!@6@!X:Cp6# x CAp͉oKAp '/p/pd/p /p}0͉o>>:>>:6>>:2>>6>>:>>:6:6:>226:7=54A5A7=54?=539=4A5A7<7A7AA2A2227<2A>A7<7?:9@>27<2A9@7@?>2>:6:26:>>2>6:>>>6:>22>2>>:7=57=A7A>A7@A7<27va``````v>|xp8?p``p?`p?`p88p``acw>|8`p88p`8p8 $$~(PP|P|T|BH$J(*D: 00>>> @|LTTd|(>|D8@||DD|(H~|@|D||@|DD||D|D8DD||DD|| >>|D p|DD||$ p|@| x 8DDD~DD(8TTT~((DD||~D"~p p`0<==" 0Z5;2;" ";0;" - = 20p";7;" ";3;"*******" 1Z5;4;" ";0;" - = 20p";7;" ";6;"*******" 2l5;3;" ";0;" - = 20p";7;2;" ";6;0;"GAMBLE:" 3l5;6;" ";0;" - = 20p";7;2;" ";6;0;"8 times" 4Z5;2;" ";0;" - = 20p";7;" ";6;"4 times" 5Z5;6;" ";0;" - = 40p";7;" ";6;"2 times" 6Z5;1;" ";0;" - = 50p";7;" ";6;"1 times" 7Z5;2;" ";0;" = 50p";7;" ";6;"Nothing" 8N5;4;" ";0;" = 50p";6;"*******" 9Z5;3;" ";0;" = 50p";4;" ";7;" " :x5;6;" ";0;" = 50p";4;2;" ";7;1;" ";4;" " ;x5;2;" ";0;" = 50p";4;2;" ";7;1;" ";4;" " o5;"Any line or";4;5;" ";7;" ";5;0;"10P'S";7;" " ?E5;" diagonal: ";4;" ^Q ^W ^E ";7;" 010 " @W5;1;" ";4;5;" ";7;" " A5;1;" ";0;" = `1 ";4;5;" ";7;" ";3;0;"TURNS";7;" " BW5;1;" ";4;0;" ^A ^S ^D ";7;" 000 " C23659k\,0:22,0;5;" ";4;" ";7;" ":23659k\,2 DY#0;1,0;1;7;1;"FRUIT MACHINE  1985 Jason Smith" Ef=13:1;8,f*8-5:1;23,0:f:1;-24,-16:1;9 ,18:1;24,-16 236066\,128:236077\,253:f=13:g=13:9000(#:g:f:236066\,134:236077\,93]:1240 print up reels Df=13:9300T$:f:f=13:9100#:f Scheck if win or not Xbonus=0 b)a$(1,r(1)+1)="7"a$(2,r(2)+1)="7"a$(3,r(3)+1)="7"a$(1,r(1)+2)="7"a$(2,r(2)+2)="7"a$(3,r(3)+2)="7"a$(1,r(1)+3)="7"a$(2,r(2)+3)="7"a$(3,r(3)+3)="7"a$(1,r(1)+1)="7"a$(2,r(2)+2)="7"a$(3,r(3)+3)="7"a$(1,r(1)+3)="7"a$(2,r(2)+2)="7"a$(3,r(3)+1)="7"bonus=10 :700 la$(1,r(1)+2)="6"a$(2,r(2)+2)="6"a$(3,r(3)+2)="6"bonus=8:700 vna$(1,r(1)+2)="5"a$(2,r(2)+2)="5"a$(3,r(3)+2)="5"a$(1,r(1)+2)="4"a$(2,r(2)+2)="4"a$(3,r(3)+2)="4"a$(1,r(1)+2)="3"a$(2,r(2)+2)="3"a$(3,r(3)+2)="3"a$(1,r(1)+2)="2"a$(2,r(2)+2)="2"a$(3,r(3)+2)="2"a$(1,r(1)+2)="1"a$(2,r(2)+2)="1"a$(3,r(3)+2)="1"a$(1,r(1)+2)="7"a$(2,r(2)+2)="7"bonus=5:700 aa$(1,r(1)+2)="6"a$(2,r(2)+2)="6"bonus=4:700 ya$(1,r(1)+2)="5"a$(2,r(2)+2)="5"a$(1,r(1)+2)="4"a$(2,r(2)+2)="4"a$(1,r(1)+2)="3"a$(2,r(2)+2)="3"a$(1,r(1)+2)="2"a$(2,r(2)+2)="2"a$(1,r(1)+2)="1"a$(2,r(2)+2)="1"bonus=2:700 >a$(1,r(1)+2)="5"bonus=1:700  1200 gamble routine irand=.5:if=0:m$="2 times":mp=8:mb=15:n$="Nothing":np=10 :nb=5 i$= I6;mp,25;m$;0;6;np,25;n$:.1}L,nb s1;13 ,26;"";14,26;"";4;13 ,29;"";14,29;"" f=110 :f I6;np,25;n$;0;6;mp,25;m$:.1}L,mb  j6;13 ,26;"";14,26;"";13 ,29;"";14,29;"" i$"5"810*  6;np,25;n$;mp,25;m$;7;1;13 ,26;"";14,26;"":.5,0:f=1100d:f:4;13 ,29;"";14,29;"":1100L *i$"4"890z 4>rand850R >f=110 :f:6;mp,25;m$;0;6;np,25;n$:.1}L,nb:13 ,26;1;"";14,26;"";4;13 ,29;"";14,29;"":f=110 :f:6;13 ,26;"";14,26;"":.5,0:f=1100d:f:9450$:13 ,26;1;"";14,26;"":6;0;np,25;n$:bonus=bonus/2:n$="Nothing"bonus=0 H 1100L R4;13 ,29;"";14,29;"":.5,0:f=1100d:f:9400$:13 ,26;1;"";14,26;"":mp,25;0;6;m$ \/bonus=bonus*2:n$="2 times"1100L fvn$="Nothing"rand=.73333:m$="4 times":mp=7:mb=20:n$="1 times":np=9 :nb=10 :890z pkn$="1 times"rand=.9ffff:m$="8 times":mp=6:mb=25:n$="2 times":np=8:nb=15 z"f=110 :f:720 Gadd on winnings if any `bonus=01220 jxn=1:f=1bonus:tens=tens+1:9500%:.01z# =,20:f:n=0:bonus=0:1220  main loop 9nudge=(*6):nudge=0m=01400x m=1m=0 tens=02500  goes=999goes=998 -hold=(*4):hold=01600@ i$= :4;13 ,29;"";14,29;"" f=120:f :6;13 ,29;"";14,29;"" f=120:f  i$"5"1240 *.5,0:f=1100d:f :4;13 ,29;"";14,29;"" (9500%:500 snudges routine x=nudges=(*9 )-3:nudges<1nudges=1 i$= #3;2,28;nudges &nudges=0m=1:600X 4;6;16,13 ;" ";17,13 ;" ";19,13 ;" ";20,13 ;" ";7;6;13 ,26;"";14,26;"" f=120:f 4;5;16,13 ;" ";17,13 ;" ";19,13 ;" ";20,13 ;" ";7;1;13 ,26;"";14,26;"" f=120:f i$="4"1570" 7i$"q"i$"w"i$"e"i$"a"i$"s"i$"d"1410 "i$="q"16,13 ;4;6;"";17,13 ;"":.5,0:f=1100d:f:16,13 ;4;5;"";17,13 ;"":f=1:r(1)=r(1)+1:nudges=nudges-1:r(1)=25r(1)=0 "i$="w"16,17;4;6;"";17,17;"":.5,0:f=1100d:f:16,17;4;5;"";17,17;"":f=2:r(2)=r(2)+1:nudges=nudges-1:r(2)=25r(2)=0 "i$="e"16,21;4;6;"";17,21;"":.5,0:f=1100d:f:16,21;4;5;"";17,21;"":f=3:r(3)=r(3)+1:nudges=nudges-1:r(3)=25r(3)=0 #i$="a"19,13 ;4;6;"";20,13 ;"":.5,0:f=1100d:f:19,13 ;4;5;"";20,13 ;"":f=1:r(1)=r(1)-1:nudges=nudges-1:r(1)=-1r(1)=24 #i$="s"19,17;4;6;"";20,17;"":.5,0:f=1100d:f:19,17;4;5;"";20,17;"":f=2:r(2)=r(2)-1:nudges=nudges-1:r(2)=-1r(2)=24 #i$="d"19,21;4;6;"";20,21;"":.5,0:f=1100d:f:19,21;4;5;"";20,21;"":f=3:r(3)=r(3)-1:nudges=nudges-1:r(3)=-1r(3)=24 9110#:1410 "m=1:7;6;13 ,26;"";14,26;"":.5,0:f=1100d:f:7;1;13 ,26;"";14,26;"";3;0;2,28;"0":600X ;hold routine @-reel1=0:reel2=0:reel3=0 Ji$= TRreel1=04;2;13 ,13 ;"";14,13 ;"" ^Rreel2=04;2;13 ,17;"";14,17;"" hRreel3=04;2;13 ,21;"";14,21;"" rRreel1=14;6;13 ,13 ;"";14,13 ;"" |Rreel2=14;6;13 ,17;"";14,17;"" Rreel3=14;6;13 ,21;"";14,21;"" s1;13 ,26;"";14,26;"";4;13 ,29;"";14,29;"" f=115:f xi$="5"6;13 ,29;"";14,29;"":.5,0:f=1100d:f:1780 xi$="4"6;13 ,26;"";14,26;"":.5,0:f=1100d:f:1600@ i$="1"reel1=04;6;13 ,13 ;"";14,13 ;"":.5,0:f=1100d:f:reel1=1 ’i$="2"reel2=04;6;13 ,17;"";14,17;"":.5,0:f=1100d:f:reel2=1 ̒i$="3"reel3=04;6;13 ,21;"";14,21;"":.5,0:f=1100d:f:reel3=1  4;6;13 ,13 ;"";14,13 ;"";13 ,17;"";14,17;"";13 ,21;"";14,21;"";7;13 ,26;"";14,26;"";13 ,29;"";14,29;"" f=115:f  1610J :4;13 ,29;"";14,29;""  9500% &reel1=0f=1:9300T$ &reel2=0f=2:9300T$ &reel3=0f=3:9300T$ &&reel1=0f=1:9100# 0&reel2=0f=2:9100# :&reel3=0f=3:9100# D4;2;13 ,13 ;"";14,13 ;"";13 ,17;"";14,17;"";13 ,21;"";14,21;"" N 600X title screen  9600% x1;4,4;"";5,4;"";6,4;"";7,4;"";8,4;"" 4;4,9 ;"";5,9 ;" ";6,9 ;"";7,9 ;" ";8,9 ;" " 3;4,14;" ";5,14;" ";6,14;" ";7,14;" ";8,15;"" |6;4,19;"";5,20;"";6,20;"";7,20;"";8,19;"" |2;4,23;"";5,25;"";6,25;"";7,25;"";8,25;""  10 ,4;" ";11 ,4;" ";12 ,4;" " -14,4;2;"************************";15,4;2;"*";1;"  SPECTRUM COMPUTING ";2;"*";16,4;"*";4;" by Jason Smith ";2;"*";17,4;"************************";0;19,4;" Press any key to contin"  9200#:2 *@f=419:f,3;" ":f 3hall of fame screen 4a236066\,200:236077\,90Z:4,5;2;"UVAB^^INEQEQAB`aEQ" >45,5;2;"CDCDO_O_KPCSCSCDbcGR" H-236066\,134:236077\,93] R6,4;6;"************************";7,4;"*";1;7;"PLACENAMETURNS";7,27;6;7;"*";8,4;"************************" \f=18 f f=1l$="st":2190 p f=2l$="nd":2190 z f=3l$="rd":2190  l$="th" f+8,4;6;"* ";4;f;l$;" ";3;d$(f);" ";:l$="000":k$=d(f):l$(4-k$3)=k$:5;l$;" ";6;"*":f 717,4;6;"************************" .19,4;" Press any key to contin" 9200#:2 @f=419:f,3;" ":f  menu screen r4,6;1;"********************";5,6;"*";6;" ";1;"*" 1;6,6;"*";6;" ":236066\,200:236077\,90Z:6,9 ;4;6;"`aEQ`d^[":236066\,134:236077\,93]:6,23;6;" ";1;"*" 1;7,6;"*";6;" ":236066\,200:236077\,90Z:7,9 ;4;6;"bcGRbeKP":236066\,134:236077\,93]:7,23;6;" ";1;"*" J1;8,6;"*";6;" ";1;"*" 9 ,6;1;"********************";10 ,6;"* *";11 ,6;"*";2;" 1 = Instructions ";1;"*";12 ,6;"* *";13 ,6;"*";5;" 2 = Start game ";1;"*";14,6;"* *";15,6;"*";3;" 3 = Quit program ";1;"*";16,6;"* *";17,6;"********************" .19,4;" Press any key to contin" 9200#:2 select option o$="1"2240 o$="3"9800H& o$"2"2218 df=124:l=3582 :.01z# =,f:f:2:tens=10 :goes=0:300, instructions screens @f=419:f,3;" ":f .4,4;"How long can you survive";5,4;"on the FRUIT MACHINE?";6,4;"You start with `1. Each";7,4;"go costs you 10p. Will";8,4;"you win enough to credit";9 ,4;"yourself a place on the";10 ,4;"HALL of FAME survivors?"  12 ,4;"FRUIT MACHINE features";13 ,4;"all normal fruit as well";14,4;"as bells and bars plus";15,4;"GAMBLE, HOLDS and NUDGES";16,4;"routines. Please use the";17,4;"following keys in play:-" .19,4;" Press any key to contin" 9200#:2 @f=419:f,3;" ":f 4,4;4;"";5,4;"";0;4,7;"= start or collect";5,9 ;"(key 5)" 7,4;1;"";8,4;"";0;7,7;"= cancel or gamble";8,9 ;"(key 4)" 10 ,4;2;"";11 ,4;"";0;10 ,7;"= hold a reel";11 ,9 ;"(key 1, 2 or 3)" 13 ,4;5;"";14,4;"";0;13 ,7;"= nudge a reel up";14,9 ;"(key q, w or e)" $16,4;5;"";17,4;"";0;16,7;"= nudge a reel down";17,9 ;"(key a, s or d)" ..19,4;" Press any key to contin" 89200#:2 B@f=419:f,3;" ":f L4,4;"When any of these keys";5,4;"flash from their normal";6,4;"colour to yellow you can";7,4;"use them. When they are";8,4;"held down they beep and";9 ,4;"stay yellow for a while." V-11 ,4;"During a normal turn you";12 ,4;"START. During a win you";13 ,4;"GAMBLE or COLLECT.";14,4;"During a hold you HOLD,";15,4;"CANCEL or START. During";16,4;"a nudge you NUDGE UP,";17,4;"NUDGE DOWN or CANCEL." `.19,4;" Press any key to contin" j9200#:2 t@f=419:f,3;" ":f ~5,4;1;7;" ";1;"";7;" ";1;"";7;" ";1;"";7;" ";1;"" 6,4;1;1;"";7;" ";1;"";7;" ";1;"";7;" ";1;"";7;" ";1;"";7;" ";1;"";7;" ";1;"";7;" ";1;"" 7,4;1;1;"";7;" ";1;"";7;" ";1;"";7;" ";1;"";7;" ";1;"";7;" ";1;"";7;" ";1;"" 8,4;1;1;"";7;" ";1;"";7;" ";1;"";7;" ";1;"";7;" ";1;"";7;" ";1;"";7;" ";1;"";7;" ";1;"" 9 ,4;1;1;"";7;" ";1;"";7;" ";1;"";7;" ";1;"";7;" ";1;"";7;" ";1;"";7;" ";1;"";7;" ";1;"" 10 ,4;1;7;" ";1;"";7;" ";1;"";7;" ";1;"";7;" ";1;"" 12 ,4;1;7;"";2;" ";7;"";2;" ";7;"";2;" ";7;"";2;" ";7;"";2;" ";7;"";2;" " 13 ,4;1;7;"";2;" ";7;"";2;" ";7;"";2;" ";7;"";2;" ";7;"";2;"";7;"";2;" ";7;"";2;" " 14,4;1;7;"";2;" ";7;"";2;" ";7;"";2;" ";7;"";2;" ";7;"";2;" " 15,4;1;7;"";2;" ";7;"";2;" ";7;"";2;" ";7;"";2;" ";7;"";2;" " 16,4;1;7;"";2;" ";7;"";2;" ";7;"";2;" ";7;"";2;" ";7;"";2;"";7;"";2;" ";7;"";2;" " 17,4;1;7;"";2;" ";7;"";2;" ";7;"";2;" ";7;"";2;" ";7;"";2;" " .19,4;" Press any key to contin" 9200#:2 2210 out of money screen <f=124:l=3582 :.01z# =,f:f:2 9600% 5,4;" ";6,4;" ";7,4;" ";8,4;" ";9 ,4;" " 13 ,4;" ";14,4;" ";15,4;" ";16,4;" ";17,4;" " .19,4;" Press any key to contin" Nl$="Press any key to continue. Press any key to contin":9200#:2 @f=419:f,3;" ":f enter high score goesd(8)2010  l=1 ($d(l)goesl=l+1:2600( 2Tf=8l+1-1:d(f)=d(f-1):d$(f)=d$(f-1):f:d(l)=goes < l=1l$="st":2660d F l=2l$="nd":2660d P l=3l$="rd":2660d Z l$="th" da236066\,200:236077\,90Z:4,5;3;"UVAB^^INEQEQAB`aEQ" e45,5;3;"CDCDO_O_KPCSCSCDbcGR" f-236066\,134:236077\,93] i6,4;1;7;"";7,4;"";6;" ";1;"";8,4;"" x9 ,4;4;"************************";10 ,4;"*";2;"You have survived long";4;"*";11 ,4;4;"*";2;"enough to be ";l;l$;" place";4;"*";12 ,4;"*";2;"in the ""HALL of FAME"".";4;"*";13 ,4;"*";2;"Please enter your name";4;"*";14,4;"*";2;"now. (Max. 10 letters)";4;"*";15,4;"*";1;1;">";0;6;"";1;1;"<";0;;4;"*";16,4;"*";1;1;">";0;6;"";1;1;"<";0;4;"*";17,4;;"************************" }130:k$="+++CONGRATULATIONS!+++":f=122:7,f+4;2;6;k$(f):a,b:a/8,b:f c=1:l$="" o$=:o$=""2700 o$=12 c1c=c-1:l$=l$(1c-1):15,c*2+4;6;" ";16,c*2+4;" ":.5,0:2700 6o$=13 .5,0:d$(l)=l$:2750 >o$" "o$"."o$"!"(o$<"a"o$>"z")űl$>9 2700 o$=" "15,c*2+4;6;" ";16,c*2+4;" ":l$=l$+o$:.5,0:c=c+1:2700 o$="."15,c*2+4;6;" ";16,c*2+4;"":l$=l$+o$:.5,0:c=c+1:2700 o$="!"15,c*2+4;6;"";16,c*2+4;"":l$=l$+o$:.5,0:c=c+1:2700 %3000 +(o$-96`):q$:236066\,200:236077\,90Z:15,c*2+4;6;q$(12);16,c*2+4;q$(34):236066\,134:236077\,93]:l$=l$+(o$-32 ):.5,0:c=c+1:2700 6;15,6;" ";16,6;" ";7;19,4;" Press any key to contin" Nl$="Press any key to continue. Press any key to contin":9200#:2 @f=419:f,3;" ":f 2010 data for big chars "ABCD" "EFGH" "IJKL" "MNOP" "EQGR" "EQCS" "IJKT" "UVCD" "WXYZ" "[KP" "U\C]" "^O_" "`abc" "`dbe" "INKP" "EFCS" "INKf" "EFCg" "hijH" "WXkl" "^[KP" "^[mn" "^[op" "q\r]" "q\kl" "stuv" #'print up fruit #(6a$(f,r(f)+g)="1"b$=" !"+34"+"#":ink=4 #2*a$(f,r(f)+g)="2"b$="$%&'":ink=3 #<*a$(f,r(f)+g)="3"b$="()*+":ink=6 #F*a$(f,r(f)+g)="4"b$=",-./":ink=2 #P*a$(f,r(f)+g)="5"b$="0122":ink=2 #Z*a$(f,r(f)+g)="6"b$="3456":ink=6 #d*a$(f,r(f)+g)="7"b$="789:":ink=1 #nrink;g*3-1,9 +f*4;b$(12);g*3,9 +f*4;b$(34): #random place in reel #r(f)=(*25) #236066\,128:236077\,253:g=13:9000(#:g:236066\,134:236077\,93]:.5,10 : #oranges & lemons tune #9l$="Press any key to continue. Press any key to contin" # 110n #a=0:b=a $f=1̱l$-23 $Ha=a+1:a=6x,y:x/8,y:x,y:x/8,y:9250"$ $8a=12 a=0:12 :110n:9250"$ $x,y:x/8,y $"&b:b=b+1:b=8b=0 $,419,4;l$(ff+23):o$=:o$=""f $6o$=""9219$ $@ $S clear reel $T3v=29 :v,9 +f*4;" ":v: $ happy tune $.1}L,15:.1}L,15:.1}L,15:.1}L,17:.2~L,18:.2~L,17:f=15:f:.1}L,15:.1}L,18:.1}L,17:.1}L,17:.2~L,15: $ sad tune $.15~,7:.05|L,8:.1}L,7:.1}L,5:.1}L,3:.1}L,2:.2~L,0:f=15:f:.2~L,0:.2~L,-5:.4L,0: %update 10P'S & TURNS %n=19593y% %w3goes=goes+1:21,30-goes;goes %xtens=tens-1 %yGl$="000":k$=tens:l$(4-k$3)=k$:18,27;l$ %z %border of fruit %.236066\,128:236077\,253 %0,0;1;"78";3;"$%";6;"()";2;",-";6;"34";3;"$%";6;"()";2;"01";1;"78";4;" !";6;"34";3;"$%";6;"()";2;"01";4;" !";6;"34" %1;"9:";3;"&'";6;"*+";2;"./";6;"56";3;"&'";6;"*+";2;"22";1;"9:";4;34"+"#";6;"56";3;"&'";6;"*+";2;"22";4;34"+"#";6;"56" %`4;" !";6;3;1;"";0;7;"$%" %4;34"+"#";6;3;1;"";0;7;0;"";6;3;1;"";0;7;"&'" %6;"34";6;3;1;"";0;7;0;"";6;3;1;"";0;7;2;",-" %6;"56";6;3;1;"";0;7;0;"";6;3;1;"";0;7;2;"./" %2;"01";6;3;1;"";0;7;0;"";6;3;1;"";0;7;1;"78" %2;"22";6;3;1;"";0;7;0;"";6;3;1;"";0;7;1;"9:" %6;"()";6;3;1;"";0;7;0;"";6;3;1;"";0;7;2;"01" %6;"*+";6;3;1;"";0;7;0;"";6;3;1;"";0;7;2;"22" %3;"$%";6;3;1;"";0;7;0;"";6;3;1;"";0;7;6;"34" %3;"&'";6;3;1;"";0;7;0;"";6;3;1;"";0;7;6;"56" %1;"78";6;3;1;"";0;7;0;"";6;3;1;"";0;7;2;",-" %1;"9:";6;3;1;"";0;7;0;"";6;3;1;"";0;7;2;"./" %4;" !";6;3;1;"";0;7;0;"";6;3;1;"";0;7;6;"()" %4;34"+"#";6;3;1;"";0;7;0;"";6;3;1;"";0;7;6;"*+" %2;",-";6;3;1;"";0;7;0;"";6;3;1;"";0;7;3;"$%" %2;"./";6;3;1;"";0;7;0;"";6;3;1;"";0;7;3;"&'" %6;"34";6;3;1;"";0;7;0;"";6;3;1;"";0;7;4;" !" %6;"56";6;3;1;"";0;7;0;"";6;3;1;"";0;7;4;34"+"#" %2;"01";6;3;1;"";0;7;0;"";6;3;1;"";0;7;1;"78" %i2;"22";6;3;1;"";0;7;1;"9:" &23659k\,0:6;"()";3;"$%";6;"()";2;",-";6;"34";3;"$%";6;"()";2;"01";1;"78";4;" !";6;"34";3;"$%";6;"()";2;"01";4;" !";6;"34" & +23659k\,2:#0;1,0;7;6;"*+";3;"&'";6;"*+";2;"./";6;"56";3;"&'";6;"*+";2;"22";1;"9:";4;34"+"#";6;"56";3;"&'";6;"*+";2;"22";4;34"+"#";6;"56" &-236066\,134:236077\,93] &> &Gstart the tape &H>f=124:l=3582 :.01z# =,f:f:7: &R-236066\,200:236077\,90Z &\P11 ,3;"hiWXABEFWXWXUVEQWXABEFEQjHklCDCgklklCDGRklCDCSGR" &f/236066\,0:236077\,60<:"" 'save tape routine ':"fruit"1 $hooter S6UJ:H\ogi{= a{=  n:H\ogi{= a{=  oo *5:5:a=2:b=7: i=021 -i,8;a;b;1;" STOP THE TAPE " c=a:a=b:b=c:i G#1;1,0;9 ;" PRESS ANY KEY TO TURN PAGE " 23760\ =""7 ( 1000 < b(4) F`b(1)=23761\:b(2)=23762\:b(3)=23796\:b(4)=23797\ d 600X nx$= xBx$="1"x$="q"t=1:u=10 *(x$="1")-5:500 Bx$="2"x$="w"t=2:u=10 *(x$="2")-5:500 Bx$="3"x$="e"t=3:u=10 *(x$="3")-5:500 Bx$="4"x$="r"t=4:u=10 *(x$="4")-5:500 23760\ =13 2000 110n  v=b(t)+u v>255v=0 v<0v=255 b(t),v & X1::" The hooting code requires fourdifferent parameters. You can adjust these simply by listeningto the changing sound as you trythe controls. These are-" b:" No. 1 - Press 1 or Q No. 2 - Press 2 or W No. 3 - Press 3 or E No. 4 - Press 4 or R " l:" You may hold a control down aslong as you wish, but after some50 hoots it will have worked itsway back to its original value. The numerals move the value in one direction and the letters inthe opposite." vL " Press ENTER when you wish to quit this section. "  7:7:2::7,0;" WIZARD PRANG'S LITTLE BLACK BOX of MACHINE CODE WHEEZES (no soldering necessary)" &:" Press any key to turn the page " a=10 25040( 23796\,a:23761\,a 223762\,265 -a:23797\,265 -a 23760\ ""1100L a $ 1010 L:" Magic, according to Larry Niv-en, is anything which you do notunderstand (anyone who does not know who Larry Niven is please leave this article now)! This definition would certainly put " V"machine code programming in the category of a black art for manycomputer users. Have no fear, for I am not a- bout to launch into a descrip- tion of the arcane virtues of indexed addressing or the like. Rather I would present you with" `"a spell already made up, in a little black box which I advise you not to open. You have it on board already. It's the siren routine which coincides with the'stop tape' message on each filein this magazine, but in this program you can customise it for" j 9998' t7,0;"your own use in other programs, without being required to pro- nounce a single mnemonic. After using the digitless in- teractive hooter customiser to " ~`"create your own hoot, you will have an opportunity to save it on tape in easy to use form."  9998'  Ф:" The easiest way to include a bit of machine code in a BASIC program is by using the old ZX81trick of placing the code in a REM statement. It can then be " "handled by simple SAVE and LOAD commands along with the rest of the program. But in order to getthe code out of this program without also recording all of the rest of the BASIC lines, we will have to SAVE the routine in" !"the CODE format. You can then LOAD it into a dummy REM state- ment and SAVE that in the usual BASIC format. This may seem the long way around, but it is less trouble than deleting every linein this program except the REM, which is the only other way I know of to get it on its own."  9998' " The dummy REM line must be thefirst program line, so that we know the address for the USR call. It must have at least 72 characters in it, after the REM,so there will be room for the code. It should look something like this- " :" 1 REM IT DOESN'T MATTER WHAT I TYPE AS LONG AS I USE AT LEASTSEVENTY-TWO CHARACTERS 10 RANDOMISE USR 23760:IF INKEY$ ="""" THEN GO TO 10 "  :" Line 10 just hoots until a keyis pressed. Once you have typed in the above, ENTER LOAD"""" CODE and play the tape and you will have a complete hooter program to MERGE into other, less noisy routines."  9998' " Note that once the text of thedummy REM has been replaced withmachine code, the Spectrum may refuse to LIST it, complaining of invalid colours, etc. This is okay, just use LIST 2 if you want to see the rest of the pro-gram."  " First you need to SAVE the hoot CODE on tape, if you wish to keep it. You can select this as an option now, or return to the custom hoot bender, or go onto the next section of the maga-zine. Press a key-- " *e:" S to SAVE hoot B to bend another hoot M for next part of magazine " 4="s"3000 >="b"100d H="m"3500 R 21004 R:10 ,0;" PLACE A BLANK TAPE IN YOUR CASSETTE RECORDER " ""hoot code"23760\,70F 7:5,0;" To select next option press- " 2090* (:10 ,7;" START THE TAPE " "" ':#1;" PRESS ANY KEY TO TURN PAGE ":0:: '%23653e\+256*23654f\ (bca\\\\tuvXdice OAJdd:H\ogi{= a{=  d:H\ogi{= a{=  oo *5:5:a=2:b=7: i=021 -i,8;a;b;1;" STOP THE TAPE " c=a:a=b:b=c:i G#1;1,0;9 ;" PRESS ANY KEY TO TURN PAGE " 23760\ =""7  5000 2 < F,me=0:you=0:a$="123456789" P 9900& Z>.51000 d Human's go i50,0;" Your go " k p$="You" l421,0;"Press any key to roll the dice" m=""109m n621,0;" " s 9500% x)d1+d2<10 a$(d1+d2)""200 "a$(d1)=""a$(d2)=""500 a$(d1)""a$(d1)="" a$(d2)""a$(d2)="" 250 "a$(d1)=""a$(d2)=""240 G20,0;" Do you wish to add the dice? (Y/N)" r$=:r$=""215 G20,0;" " r$"y"r$"Y"130 a$(d1+d2)="" 9940&  100d End of human's go  9000(# you=you+count 18,25;"You:";10 ,25;you you45-2000 Computer's go 50,0;" My go " p$="I" 1:100d  9500% 86d1+d2a$(d1+d2)""1100L #a$(d1)=""a$(d2)=""1060$ a$(d1)""a$(d1)="" a$(d2)""a$(d2)=""  1120` $a$(d1+d2)=""1500 Laggregate dice Va$(d1+d2)="" ` 9940& t 1000 End of computer's go  9000(#  me=me+count -8,2;"Me:";10 ,2;me me45-2000  100d 818,0;"Score greater than 45:";p$;" lost." ?:"Press any key to play again, or Press enter to quit." 1:0:r$= r$13 502 C7:7:9 ::10 ,7;" START THE TAPE "  "" 3040 i=07 a:"a"+i,a i O60<,126~,255,255,255,255,126~,60<  4:4:9 : X4,0;" SHUT THE BOX By W.J. Greenall " :" There is more to this game than meets the eye. As with all dice games there is a large ele-ment of luck, but the chance of making strategic choices is alsothere." 0:" Press any key for the instruc-tion page."  3000  0 @1:1:6: TK" Shut the box is an old board game involving dice.";2;"The board consists of a grid of nine numbers. The aim of the game is to cover the numbers on the board with coins () by throwing the appropriate numberswith the dice. There are two dice and the values thrown may be taken separately or added together." ^2;"A player's go continues until he is unable to cover any numbers with one throw of the dice. At this point the value ofthe uncovered numbers is added to the player's score. If this brings his score to 45 or over the player must retire." hB2;"The winner is the player who covers the last number." r-7;" Press any key to continue. " |1:0  #(compute score #-count=0 #2x=19 #<count=count+x*(a$(x)"") #Fx #P % Dice throw %!16,14;" " %&!x=0̺(*30)+1 %0d1=(*6)+1 %:16,14;d1 %? .01z# =,x %Dx %N!x=0̺(*30)+1 %Xd2=(*6+1) %b16,16;d2 %g .01z# =,x %lx %v &HCheck for win &Rx=19 &\ a$(x)"" &fx &p218,0;" Game over. ";p$;" won." &z 2020 & Print box &"1,9 ;"" & 9960& &9 ;"" & 9960& &9 ;"" & 9960& &9 ;"" &Print numbers in boxes & z=1 &x=3144 &y=11 194 & x,y;a$(z) & z=z+1 &.1}L,20 &y &x & 9800H& & &x=13 &9 ;" " &x ' '%23653e\+256*23654f\ a<b co R&z &ounRnA 123456789PYou