ZXTape! 0Created with Ramsoft MakeTZXcover [&0:1:1:1: 23659k\,0:21,0;:::7;8;1;" STILL LOADING - LET TAPE RUN ":23659k\,2 0,0 "" 23659k\,0:21,0;::6;1;" MAY/JUNE ISSUE ASP 1983 ":7;1;1;" STOP TAPE - PRESS ANY KEY ":23659k\,2 d0:1:1 ni=27 xi .18,4;" " .17,4;" " .16,4;" " 76,4;" ";6,21;" " -5,4;" " -4,4;" " -3,4;" " ""3106 i , 100d 6-5:0:0:7:1 @v::" The easiest way to 'read' this magazine is to start at thebeginning and go through the 'pages' sequentially, following the on screen prompts. All of the articles, features and pro- grams are chained so that when you are through with one it willload the next automatically, in a manner similar to the intro- ductory tape which came with your Spectrum." J:" There is, however, a table of contents on the next page giving the file names of all thearticles, etc., so that you can load them individually if you wish." ^ 9000(# h"SPECTRUM COMPUTING MAY/JUNE 1983 ARGUS SPECIALIST PUBLICATIONS LIMITED- 145 CHARING CROSS ROAD,LONDON, WC2H 0EE TEL 01-437-1002 EDITOR IOLO DAVIDSON " r:" CONTENTS " |:"Speech synthesis ""speech"" Sideways Look ""side"" Games Reviews ""reviews"" Chessboard ""chess"" " "Aliens ""zap"" Morse code ""morse"" Reactors ""react"" Writ Large ""large"" " p:" Most of the above load in morethan one block. Please watch forscreen prompts before stopping the tape. "  9000(# &10 ,7;" START THE TAPE " "" #' #(23659k\,0:21,0;:::8;9 ;" PRESS ANY KEY TO TURN PAGE ":23659k\,2:0:: n c @eA?????????????߿???x???????????????????????????????????????????0000000000000000000000000000000002222222222222222222222222222220022222200222BBBBBBBBBBBBBBBBBBBBBBBB22200222BBBBBBBBBBBBBBBBBBBBBBBB22200222BBBBBBBBBBBBBBBBBBBBBBBB22200222BBBBBBBBBBBBB222002222220022222222222222222200222222222222222222220022222222222444444442222222222200222222222244,,,,,,4422222222220022222222244,,,,,,,,442222222220 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%% %%%BBBBBBBBBBBBBBBBBBBBBBBB%%% %%%CCCCCCCCCCCCCCCCCCCCCCCC%%% %%%CCCCCCCCCCCCCCCCCCCCCCCC%%% %%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% bspeech p K 2!r *5:5:a=2:b=7: i=021 -i,8;a;b;1;" STOP THE TAPE " c=a:a=b:b=c:i P#1;1,0;9 ;" PRESS ANY KEY TO TURN PAGE ":0 dN:5,0;" Software Review ":" Speech Synthesis " 9000(# 7:7:1 :" The marvellous thing about asinging horse is not that it sings well, but that it can singat all. To accomplish speech synthesis on a Spectrum with no additional hardware is a marvel of a similar order, and SPEAK- EASY from Quicksilva performs " "this feat via the cassette inputsocket. The speech quality isn'tup to that of the latest BritishLeyland accessory, but it is un-deniably a talking Spectrum. " " Before we give you a sample,a word about an odd effect we encountered. Having input your bit of speech and got it digit- ised and stored on tape, it is" "then possible to load the tape to a different place in the mem-ory. This and other useful edit-ing facilities are catered for "  9000(# "in SPEAKEASY. However, placing the digitised speech in the areabelow 32768, which is the top ofthe standard 16K memory, causes it to become much less legible." A" This is because the video output circuitry has priority over the CPU when accessing the screen memory, and to keep the component count down this prior-ity was allowed to extend to thewhole of the unexpanded RAM area. So the computer's output to the cassette port is contin- ually interrupted by the ULA " ""rummaging about in the screen memory, which naturally fuzzes the sound considerably. The alternative is worse, asthose among us who came to the Spectrum from Nascom or Triton will remember. On those machines" , 9000(# 6"a modification called the 'snow-plow' was often fitted to deal with visual noise caused by the CPU accessing the VDU memory while output to the TV was in progress." @" Many thanks to Nick Lambert of Quicksilva for the above il- lumination. I had begun to sus- pect a wetware fault in my own rather battered processor." J" Because of this aspect of the Spectrum, SPEAKEASY was con-signed to the upper half of the 48K memory, where the CPU rules unchallenged. However, we still wanted to make a sample avail- " T "able to those readers who only have 16K, so we have arranged for the 7K of digitised speech to load into 16K if, and only ifa peek at the system variables" ^ 9000(# h "says that 16K is all there is. 48K machines will load it higherup. So if you are listening on a16K Spectrum you will hear some-thing, but please make a large allowance for the fact that it is an abuse, and when used as intended the quality is much better. " rl" The program will load in two blocks. Please press a key to quit this section and load the speech. " | 9000(# '10 ,7;" START THE TAPE " "" #' #(f23659k\,0::8;" PRESS ANY KEY TO TURN PAGE ":23659k\,2:0:: abcsound W)  8:10 ,0;" STILL LOADING - LET TAPE RUN " #23733\<160100d "" (ear=405004 2 200 d""25600d x,25601d,0:25602d,100d ear=25600d *5:5:a=2:b=7: i=021 -i,8;a;b;1;" STOP THE TAPE " c=a:a=b:b=c:i P#1;1,0;9 ;" PRESS ANY KEY TO TURN PAGE ":0 7:5,0;" 'WELCOME TO SPECTRUM COMPUTING'" w:" I was going to give you a fewbars of 'Over the Rainbow', but it was ruled out on the grounds of public safety." O:" Press any key to hear again,or press ENTER to load the next section. " ,ear 6""3106 @=""320@ J13 300, (:10 ,7;" START THE TAPE " "" a4abccode 4!4( F> #F> #z R2W68TQ4:3<~5Ay55l4Co:~35298962142u33o57n6+W7p2,H2i4.A3g41<3i32C5n41@9g2."=( I.)!:+ D/(8-<.( 5+81. 8.& 82-9/0 +1/5+3,17-P.=9/H/?=/M38G4N41I3K4/G/J1/H2/F4/J33L66M71L4v2L6p5J6n3Q4r7X:o9X(52T00H1CV O/: @'&S%  :    , 0#%!#$%''!!  9 ,&"! "%  $*""%!+  '  WC- L V1m6S07^4?m6<0q22g53b*8X8q4!4U 0i3'4O)e1)1F +B3(4G(@ .12I+E328K>168H @)04L *?*45M : '86T %3 (9:O "6 " (4S "2  ,'5T 3 (%( S %6 "+*'R  $6 &&,#I !B$"*"R "A&+$& !7e( ?)( 7a% <& &V$  0 : >S$  -,  -`   - =1.%M8   K(   3 9,3 !3- 5 $=   %6%6+FH /4 (7  3  (8 . 9 #<+ 6 $& # > & 1gC ' E %=)= '? !J %' 2 D = .J 'EI 1 #D &E% " C 9  'O )@B *I '4# 2G :#  & G *4"0,F %6!@'F': % I&I(< ' )O '< G@   'M(9 A)M %5 u8L)?) ) 1I 5.( 'M 3Jo @-8;H  79   @H 91   KZ A , aG =9% RLEYX >^ u '%h # #qG      +      !-    &  %             #       !. ! #!"(   !     $  "      ) + # h   !  " 4D #wE| K=Fz =ID" 775@S65C 5 , *5A(, % |/=' , ,, (V2; ' / +3 5V-f3O1T0 c/I2U& \2M0\ , Z;Uy> Q-Mn -d. 3 ,O j -Q 1Tu4H +O04 -O|1M 1L 6PYD ,I 5IXD 2C  n4i ?G/I / R%:? %L ,M-2y(@&L -g 24F-O 9@ (J .A (L  +C0M ,@ o> -B   += +D6T  ,3 2g i"Iu, !a 1< $.  Mn ,yO! Q g  #6    $  " C3C  D#      & =   :              +  ,      +/       %                 $           '03      " 0     -    (    !*  )    ,   $ !              *     ' $        3          !+       . !      ,,R, 2 d&!   Q   J4 8/Sf[6 4 =   Z` B@ -(55b5a5 21 1*%k/]15 &`* 5 + 9 }2^ ,e62 A.l0* 5 -=0g' &, ,;0n)&, - <4l9.&& 06g2,% ) - $`8$   . $e6!& # 1)3=% "6  /7&#5! $ %  '#! " ! $`H #>8 $!!o#""%(#d& E( ),+% e #( "_ &W k$ p" ) $&'I #N " %3! T ((*+$(%  /.*T 3 X(!'%!$_ :2 8 B>H 9' "XU+ c'_)G">)                                      $ .   - "(0m 6,0k%7o4969081 Z:2N93 V66v3/y/3o1-=!+;1'(;#-5#,('C-3 #&$@"*8" E&$E';,E*"Q*D,G-!`B.D+  OF9B4P A.D". 3O17(, 36 0* KC-(  -' K<1( ,)Z=.*,+[J(, /-gK'+ -- $0  )) SF$2%( "2 + !I1 V0'T ;%t;MP%Q7,z8TG3jGIA7f=J<3j 4F  >*ZNL `CBDA.$6vJ a$!$* ,   &   -)  5  ,2 0!$,S7E%`4X1$Y370",X/^ :u2W .2e;3d86^' w1`,%`-]/"; $I6/E W6 I2k-#+F, F*%%A,!7-$"@, 21!?,' :$G5K),=(%EC6,2#A;-.JA*0$E7-4'  O;45*RG 13,LB*1%PA'2(PC%3-HH)7(WI);+GD#6*FE%3)JG$6%  7K";,=K"8= 4k !++ 4 ~ '2j      ( )    &(  %     %! 8       /               &  4 %1/-J4S8 .Y7R Q:V3U K6f->e2MLA~243{ 0t /~ #K " B " .E 1" "-M 4%"- )  % ( &  $ $   &  & (   )  ):#! ) (- !  % % !""% &  '!#((  -&%,!)  (/ ,  '  *) - (  ) *  & * ,  ) (<  $  '*: ) %  #+   $  $    '  % 9 #  % 2 $  '& $ )  A3 $(      C* !%  "   A%  $&    <  )   " D = #B        <       2 $   $ o (3) $ # @  > $ %"  . 0 *   $! 0' a7 8&  1!n4D35 <;  )-  61 t6  &( ) 5 *' 6" : +# !%+ 3) %$(3-( - 0#,) 4%$3  )##  :   .+  g, m 9  )' 1,   &F-  d,!N,")15 % - !   #-2/.side 1  L30207u:10 ,0;1;" STILL LOADING - LET TAPE RUN " "sideset" *3:3:a=2:b=7: i=021 -i,8;a;b;1;" STOP THE TAPE " (c=a:a=b:b=c:i 2P#1;1,0;9 ;" PRESS ANY KEY TO TURN PAGE ":0 <&7:1:7:0: c * PRINT PAGE ONE UPSIDE DOWN * d236077\,117u nd".eunitnoc ot hsiw uoy nehw RETNE sserp esaelP .tsrif ta kool otstes erom owt evah ew ,revewoH " x" .'06,70632 EKOP' yb detceffe ebdluow tes reporp eht ot nruter A.'711,70632 EKOP' yb detceles si tes sihT .yradnuob k-retrauq a" " ta nigeb lla stes eht sa gnikop sdeen etyb tnacifingis tsom eht ylnO ).launam eht fo 371 egap ees( ,'SRAHC' elbairav metsys" " eht gnikop yb tes 'reporp' ehtmorf detrevid neeb sah noitnetta s'murtcepS ruoY .57903 ot 80203lamiced ta detacol si tes sihT " " .sretcarahc 69 fo tes drad-nats eht fo ypoc tcaxe na si ti yaw rehto yreve nI .nwod-edispusi ,deciton evah yam uoy sa ,eno" d" sihT .stes retcarahc wen eerht evah won uoY .nigeb ll'I nehT ?ylbatrofmoc gnittis uoy erA " 0 2* PRINT PAGE TWO ON ITS SIDE, RIGHT SIDE FIRST * 236077\,120x 0:5: }0,16;"BbtwLswctogm3ab ";16;"uehiItiahura0ny ";16;"t ilSatnitel9d T";16;" lnlTth s a.7 'h" }4,16;"fog e b dt 6rPi";16;"itsstmoeoi G eOs";16;"rs,eher nshrtsK ";16;"s eindhepeaoiEs" }8,16;"toa stia,llp d e";16;" fnh snn aph3e2t";16;"p dop.adsy 1s3 ";16;"ro wr rlosip7 6i" 12 ,16;"ett oIye na4a0s";16;"shhIgf dts p3t7 ";16;"see r P hule, ,s";16;" rrmayReacar a1e";16;"E eamoIathy dd2l" 17,16;"Nw n uNs iied0e";16;"Tamay Titanscr'c";16;"Eyugo lhsg ie,t";16;"Rsseu ye a-s e";16;"..td y s d" +* PAGE TWO LEFT SIDE * ,236077\,123{ 6u0,0;"d re ":"e - feuut o ye ":"t,d1isooi t rhr ":"c'a1 eyyu ati ":"e3 5yh q son e " @d"l2t2lt,n eetith ":"e1a3s sashu dat ":"s, uemlttntrh .":" 7soosapn ifotns":"s0etiur este ok" JP"i6d v gomanlee c":" 3i4boote o hrea":"t2s4Otr t,cmtarb":"e e7 pday o wa " TP"sEr1.h etlmrna r":" K 3lsneslufinso":"sOt aiin ur ur ":"iPismw Tfttt es" ^P"h' si slNecnh,te":"T decutlIreigyld":" ynreoeiRapriaei":" baddyswPcSprwls" h 0 236077\,60<  2: " It is a good idea to return tothe upright version before try- ing to list the program, so thatyou will be able to read it. " " The three sets take up just over 2k-bytes at the end of the 16k Spectrum's memory. There is no reason why you have to have all three on board at once, but I leave it to you to find a way " "to move the desired set to the end of the memory. For the many readers with 48k Spectrums, 'RUNLINE 1000' will relocate all thesets and move the ramtop. The POKE numbers will change from 117, 120, and 123 to 245, 248, and 251 respectively and the " "addresses given earlier will be increased by 32768. After the listing you will be able to SAVEthe character sets. Press a key." & 0 + 6:: -"Press ENTER to continue.";x$ 00::8,0;" Press ENTER if you wish to SAVE the character sets or any other key to load the next pro- gram. " 5""5655 6=""5666 813 9500% 9 :#"48k Spectrum? ENTER y or n. ";a$ Da$="n"a$="N"90102# /* MOVE SETS TO END OF 48K MEMORY AND SAVE * i=30208v32511~ i+32768,i i  62975 )"sideset"62976,3*768  9500% #' #("side"1 #2)"sideset"30208v,3*768 % %!(:10 ,7;" START THE TAPE " %&"" abcsideset v2 $$$~$$~$|P||bd&F\"T  (|(|| @~< @~BB>B>~>~BB>BB>>p p0(~"@~@@@@@~~~ ~@@@@> @@ >@ @>B$$BpBbRJFB~BB @BB~~H|JJBD TTTx~HHH08DDD0HHH~8TTTH| |~pHz@@z~$@>@@|xx|x8DDD8$$$$$$xHTTT >D@<@@@< 0@0 <@8@<D((D|DdTLDvBB~BBv HHHH>,RRRR~$BBBB<$BBB~BRRRR~@PPPP~,JJBB<~~BB~BB| D(~~~  ~~ ~*** ~"""~ ***@P>>%%%~^^$~|  > >"""$$$??$$$ ***"| <<0  0<<"">8"2*&"BBn~nBB@ @ > D xRBD<@@D<@ B D @b< <<>@ << ><8 <><88808@0 @88@@q||1@ @xDDA@@||@@@?@0@?@|0@@@@@@ @@@8@@?@@ @@@?̀8@@ `@@H @@?@|@C?@ @ `@0@??@@0x@D@?0@@ @@@`@@@?|@@@` @@@@@@@@@?` p @ @@B@@?0`?@?@?@@!k\6!d@ # #  <@dd cc\\\\\cc\c d d?\2la;X![!XP!! !d K SR P"" ""review"16384@,16320? x=-:l=23659k\:l,x 821,x;9 ;0:;10 ;"PENETRATOR" #-1;" STOP TAPE - PRESS ANY KEY " ( l,2 2x d5:7:9 : n" This game from Melbourne has five stages of varying terrains,strategies, and things to zap. It has the obligatory high scorefeature, and a training mode that allows you any number of ships at any stage, but you are" x!"not allowed to enter the huge score from this mode in the highscore rank, of course. There is an editor feature tochange the battleground lands- capes and save your customised layouts on tape. You also get a demonstration run and a few un- disclosed features to find. " " The movement controls are Q,A,O and P, which fall to hand much better than the cursor keys sometimes used. The sound effects are well worth amplific-ation, and the movement is very" 9000(# M "fast and smooth as you would ex-pect from an all machine code program." " The bad news? Well, one tinyquibble. There is a not very in-teresting bit of title graphics that it goes through between ev-ery game or change of mode. It can be got rid of by POKING zerointo 32828,32829,and 32830, but" 5"first you have to break the run-on-load protection. Obviously itcan be done, (how else could we have pinched the SCREEN$?) but we will leave it to you to work out how. We have taken enough liberties with Melbourne House for one issue, unless you would like to see another SCREEN$ be- fore we move on? " 9000(# 23300[ H9000(#:32767:10 ,7;1;" START THE TAPE " "" #(Vl,x:21,x;:::8;" PRESS A KEY TO TURN PAGE ":l,2:x:: xlk\6 review ?@@?@c ;" START THE TAPE " >@ P P P3bd3MTT \WMW P P P  3c\Wq MQ ?v$>?000@0<|<~<<<@@@@@@88<8B8D8(@88BBF@@@@@<DD(BDD < D DJ@@@@@> D x<<8 <~~<@88@@@00x??  @@@>@@  @ @@?@ @ @???0@?@@@@@@H@0@@@@@  `@@H@@@ `?@00@@@@@@@,@@@x@ `D8x<88x8?0 `0??00BDDD  0DD @ @@@@@B<pG_G}GBB@B>F@BBB@FBF02g2_6@B<~((J<@BB|J~J|3??_?۟_s_@~B>HR@B|@RBRssp8s_gY3BBBB ~bBBBD@bBbb<_<3<a{3<<<< 0`0_<l3<{l_}`8 08}pA|r_ R??pGG_p;g2)H_6L?9OO?H__s?۟C8txp8s+p_Y60g`8y!=x l3 _<aox<3>B<OBBBBB@BB@@@HbB??~BBB@|@B|<9ހBBDBB@BB@BBDFBx<?x<B>B<00 88888888888888888888888888888888888888888888888888888888888<<888888888888888888888888888888<<888888888888888888888888888888888889999999999999999999999999999999999999998888888888888888889999999((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((!k\6!d@ # # <@dd (cc\\\\\cc\[ccc?\(xz?I X![!@@P!!8?( %`d K SR P"" ""review"16384@,16320? x=- 9 :8 #6#1;1;" STOP TAPE - PRESS ANY KEY " (x d 7: n" Before Horace can go skiing he has to cross the road, and getting knocked down wastes his skiing money on ambulance fees. When he's coped with the road, the display moves to the ski slopes." x" Horaces graphics are superb,probably the best the Spectrum is capable of. Horace walks rea-listically and the traffic changes lanes and overtakes with mad abandon. There may not be any- thing to shoot in this game, butHorace sure gets knocked about." " Penetrator and Timegate (on next page,) both require 48k, but Horace has been squeezed in-to 16k, a minor miracle. 'HoraceGoes Skiing' is from PSION with Melbourne House." 9000(# " Timegate has the multi-sec- tor hyperspace of a Startrek type game, but with 3D arcade action. Our still snap on the next page doesn't do it justice,looking rather like a space go- ing clock radio, but in action the stars seem to flow past your" z"fighting console as you forge into the vastness, sort of. All the indicators have a function, nothing is mere decor." $" The sound in this game is special, both from an auditory viewpoint and the effect it has on some Spectrums. In fact it isworth the money as a diagnostic tape. If it crashes once runningthen best get your computer seento before the guarantee lapses. Timegate is from Quicksilva." 9000(# x:23300[ =500:x,x;9 ;" PRESS ANY KEY TO TURN PAGE " Cx:32599W:10 ,7;1;" START THE TAPE ":"" #(H#1;1,x;8;" PRESS A KEY TO TURN PAGE ":x:: lk\x6 review ?@@? @?\ESS ANY KEY TO TURN PAGE " Spectrums. In fact it iMMO  GATE - press any key" eSTMWSW MSK> P P P ( 3c\Wq MQ ?v>0 0 @@@@@  *  @ ]@:@ T   @*@@     8@@~ ~~ ~~ ~  0~~~~~~~~~~~~ b~~~~b~B B0~~b~~~~`~~dB Bb~~~~|`~B B` FFVF@`b`bbb8 bVbFbb`Z Z88F`bbbF``FdZ Z88bF`Fb``Z Z@F~V~N~|~~b|` bV~F|b~Z ZF~b|bF`~~~Z ZbF~~|`~Z Z   FFVFF`F``bF bV`FF4`B B F`bFbF``FFB88 BbFFb``B B @@80~FVF~~F~`~F <~V`~F~~ ~F~~F~F~~FF~ ~~F~F|~~~ ~@`H    8 FFBchess 5l7*2:2:a=1:b=7: i=021 -i,8;a;b;1;" STOP THE TAPE " c=a:a=b:b=c:i P#1;1,0;9 ;" PRESS ANY KEY TO TURN PAGE ":0 P6:6:0: Z" This program is primarily a graphics utility which displays a chess board and pieces and al-lows moves to be made. It does not play chess, nor does it dis-allow illegal moves. There are no special facilities for en- passant or castling, but these " _"manoeuvres can be carried out bycombining moves. Moving an emptysquare to an occupied one will capture the pawn enpassant, and moving an empty square to an empty square will waste a move to allow the other player two moves for castling." d" Promotion is not provided for either, but as pawns are not re-stricted to legal moves, you canpromote one if you can remember which it is. A proper game can therefore be played." x *** POKE UDG's *** g="a""t"+7 a:g,a g 0,1,3,1,15,7,7,1,0,128,192,128,240,224,224,128 0,17,9 ,13 ,15,7,7,1,0,136,144,176,240,224,224,128 0,0,1,1,3,3,3,1,0,0,128,128,64@,64@,192,128 $0,0,0,3,7,31,31,25,0,0,160,192,192,224,224,224 .0,0,0,5,5,7,7,1,0,0,0,160,160,224,224,128 80,0,0,1,3,3,3,1,0,0,0,128,192,192,192,128 B7,1,1,7,15,31,31,0,224,128,128,224,240,248,248,0 L7,1,1,7,15,15,0,0,224,128,128,224,240,240,0,0 V1,3,3,7,15,15,0,0,224,192,192,224,240,240,0,0 `7,1,3,15,15,0,0,0,224,128,192,240,240,0,0,0 jp$(7,4) ti=17 ~p$(i) i 2"","","","","",""," " xb23659k\,0::8;" PRESS ANY KEY TO TURN PAGE ":23659k\,2:0 *** MAIN LOOP ***  23658j\,8:CAPS LOCK  2900T  4100  4500 1520 S*** PRINT BORDER *** T10:5:5:0::p=8 ^i=3172 hi,0;p r p=p-1 |i $0,3;"A B C D E F G H" b15,160:129,0:0,-129:-129,0:0,129 *** PAINT BOARD *** q=88X:r=96`:p=r $i=22594BX23042Z64@ a=i c=18 .a,p:a+1,p:a+32 ,p:a+33!,p a=a+2:p=q:q=r:r=p c p=q:q=r:r=p i 220,0;" ENTER ""END"" TO STOP PLAY" *** SET UP CHESSMEN *** d2,2;1;8;0;"";3,2;"" d4,2;1;8;0;"";5,2;"" f14,2;1;8;7;"";15,2;"" f16,2;1;8;7;"";17,2;"" m=1 u$(8,8) u$(1)="BCDFEDCB" u$(2)="AAAAAAAA" u$(7)="11111111" u$(8)="23465432"  *** GET INPUT *** (m=15,22;"WHITE'S" )m=-15,22;"BLACK'S" 6,23;"MOVE" ""FROM SQUARE NUMBER ";f$ , 4200h 1.1}L,40( 6 hh=h:vv=v @"TO SQUARE NUMBER ";f$ J 4200h O.1}L,40( T hf$<24250 m;f$="END""GAME OVER. PRESS ENTER TO QUIT";f$:9000(# r!f=f$(1):ff=f$(2) |#f>480f<5794300 %ff>480ff<5794350 :.5,-20:"INVALID- TRY AGAIN ";f$:4200h 8ff>64@ff<73Iv=ff-64@:h=f-480:  4250 6f>64@f<73Iv=f-64@:h=ff-480:  4250 *** MOVE PIECE *** u$(h,v)=u$(hh,vv) p=u$(hh,vv) #p>64@7:p=p-16 p=p-480:u$(hh,vv)=" " p<0p=7 #l=18-2*h:c=2*v 1:8 1l,c;p$(p,2);l+1,c;p$(p,3) %l=18-2*hh:c=2*vv l,c;" ";l+1,c;" " 0:0:m=-m  #(:23658j\,0 #2&10 ,7;" START THE TAPE " #<"" abt pXq`rXmEBCDFEDCBAAAAAAAA 1111111123465432! zap ##*5:5:a=0:b=6: i=021 -i,8;a;b;1;" STOP THE TAPE " c=a:a=b:b=c:i P#1;1,0;9 ;" PRESS ANY KEY TO TURN PAGE ":0 223658j\,0:5:7:1: 2000: Fk=16:n=07:a:((143+k))+n,a:n:k 00011111,00100000 ,01111111,10100100,10100100,01111111,00100000 ,00011111 s11111111,0,11111111,10010010,10010010,11111111,0,11111111 (11111000,00000100,11111110,00100101%,00100101%,11111110,00000100,11111000 200111100<,01111110~,01011010Z,01111110~,00111100<,01000010B,10000001,10000001 <10000001,01011010Z,00100100$,01000010B,01000010B,00100100$,01011010Z,10000001 F00010000,00010000,00010000,00010000,0101000(,01111100|,01111100|,11111111 Z hs=0 dlife=3 i s=2 n sc=0 sa=19:b=13 xh0,18;"LIVES ";0,25;"^^^^^"(life);1;0,0;"SCORE ";sc (z=031:19,z;"_":z c=s:d=(*22)+4 1000 a,b;"__" (c,d;3;" ";c-1,d;" " 0.005y# =,c :32766255ſ65278255400 Lb=b-(63486255b>0)+(61438255b<28) fr=31000 d=d+m c=c+1 d21100L d281110V c20900  170 w=8*(b+1)+3 fr=fr+1  w,24 q=(18-c)*8  0,q 1;w,q+24 1;0,-q &l=2025:.005y# =,l:l b=d500  210 =c,d;" ":l=40(502:.01z# =,l:l:c,d;" " Gsc=sc+(99.9G*c):0,0;1;1;"SCORE ";sc f>.95s333ť>.85Ysc<80000@ť>.73333sc<20000 Nť>.5sc<3000 600X "s=s+(sc>100000CPƥ>.73333)  120x X(z=031:19,z;"_":z b cs=0 u=2:t=0 "u,t;5;" ":a,b;"__" 0.05|L,t+20 E32766255ſ65278255cs<3730 Lb=b-(63486255b>0)+(61438255b<28)  t=t+1 t>27870f  650 e=8*(b+1)+3 cs=cs+1 ans=(*3)  e,24 q=16*8  0,q 1;e,q+24  1;0,-q *'l=2025:0.005y# =,l:l 4b=t+ans840H 9 t=t+1 > 650 H u,t;6;2;"" Rsc=sc+(*10000') \"life=life+1*(life<5) fu,t;" " p 120x 61;2;10 ,9 ;" ALIEN LANDED " life=life-1 life=0980 7l=115:0.1}L,(*20)+5:l  :120x W10 ,9 ;" GAME OVER ";7,9 ;1;4;" A L I E N S " sc>hshs=sc )1;0,18;" HIGH- ";hs $l=10 502:.1}L,l:l O12 ,0;" Press any key to play again. Or ENTER To quit. " =""994 =13 9000(#  :100d rnd= rnd<0.333*~m=-1 ,rnd0.333*~rnd0.666*~m=0 rnd0.666*~m=1  fr=0  L"c-1,d;" ":d=27: V!c-1,d;" ":d=3: Н6;1;1;5,9 ;" A L I E N S ";0;10 ,0;" Do you want the instructions ? ";12 ,8;" (Press y/n) "  ="n": ="y"2040  2010  3,0;" Alien invaders are trying toland in your sector, contrary togeneral orders and the wishes ofall right-thinking humanoids. "::" Fortunately the slimy off- worlders can't stand up to your mobile laser cannon with the newlinear zap intensifier, but look"  "sharp. If more than two or threeget through, you've had it. De- stroy one of the mother ships toget a new lease on life, and ex-tra brownie points with the HighCommand." 1::1;" Press any key to continue. "  =""2080  *:5,0;" The keys on the top row con-trol movement. Any key from '1' to '5' will move the cannon leftand any from '6' to '0' will move it right. Pressing any key on the bottom row will fire the laser with devastating effect." \;::1;1;" PRESS ANY KEY TO BEGIN GAME " f=""2150f p: #((:10 ,7;" START THE TAPE " #2""   aFifsFb cdnemwq32ut eSnmorse Z  :\ *1:1:a=2:b=5: i=021 -i,8;a;b;1;" STOP THE TAPE " c=a:a=b:b=c:i P#1;1,0;9 ;" PRESS ANY KEY TO TURN PAGE ":0 5:5:0: d23658j\,8 n A$(47/,6) I=147/ A$(I) I Ȑ"131313","","111111","","33333","13333","11333","11133","11113","11111","31111","33111","33311","33331","333111","313131","","","","113311","" ҡ"13","3111","3131","311","1","1131","331","1111","11","1333","313","1311","33","31","333","1331","3313","131","111","3","113","1113","133","3113","3133","3311" E=12 :F=.058|mhr  &4,7;"MORSE MANIPULATOR" !" ________________________": " PRESS G FOR RANDOM GROUPS "::" PRESS T FOR MORSE TYPEWRITER "::" PRESS R FOR REPEATING MESSAGE "::" PRESS S TO CHANGE SPEED " ):" CURRENT SPEED ";E;" WORDS PER MIN." +20,0;" Q TO QUIT "  6000p G$="G"1000 G$="T"2000 "G$="R"3000 ,G$="S"4000 1G$="Q"9000(# 6I18,0;" INVALID ":.5,-40(:230 ^:" RANDOM GROUPS ":" PRESS ENTER TO QUIT ":" OR ANY OTHER KEY TO HOLD ": 0X$="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,:;?1234567890"  H$(5) X=15 H$(X)=X$((*X$)+1) X D$=H$  3500 5:""6000p $ 1020  &"TYPE FOR IMMEDIATE MORSE OUTPUT ": !" PRESS ENTER TO QUIT ":  6010z A=G$-43+ A=-30230 )A=-11 " ";:10 :2020  vA=2A=4A=17A=18A=19A=21A<1A>47/.5,-40(:2020 G$; 5000:2020  "ENTER MESSAGE ";D$ 31200 " PRESS ENTER TO QUIT "  3500 10 :3040 0K=1̱D$ :A=D$(K)-43+ DA=-11 3160X NA=2A=4A=17A=18A=19A=21A<1A>47/.5,-40(:" INVALID CHARACTER ":3010 XK b K=1̱D$ D$(K); A=D$(K)-43+:5000 K    "" SPEED IN WORDS PER MINUTE? ";E VE>20" I CAN'T HANDLE THAT EVEN IF YOU CAN, PLEASE TRY AGAIN.":4005 [E<4" NO ONE IS AS SLOW AS THAT, PLEASE ENTER A REASONABLE SPEED.":4005 F=.73333/E  230 A=-11 F*200: I=16 A$(A,I)=" "5050 װA$(A,I)*F,40( Z=170F-EE:Z I Z=1140-EE:Z =13 230  p""6000p z=""6010z G$=: #(23658j\,0 #2(:10 ,7;" START THE TAPE " #<"" e f|mhr a bcX)ABCDEFGHIJKLMNOPQRSTUVWXYZ.,:;?1234567890FCOXWDFCOXW/131313 111111 33333 13333 11333 11133 11113 11111 31111 33111 33311 33331 333111313131 113311 13 3111 3131 311 1 1131 331 1111 11 1333 313 1311 33 31 333 1331 3313 131 111 3 113 1113 133 3113 3133 3311 G :react ^  ` *4:4:a=1:b=5: i=021 -i,8;a;b;1;" STOP THE TAPE " c=a:a=b:b=c:i P#1;1,0;9 ;" PRESS ANY KEY TO TURN PAGE ":0 23658j\,8  1:6:4:  7000X *A(9 ,2):M$(3,40() yM$(1)="RAN OUT OF TIME":M$(2)="SECURED THE WRONG REACTOR":M$(3)="CROSSED YOUR TRAIL" 4X=1:Y=2:SCAN=0:NUMBER=1 I=19 (% A(I,1)=(*16)+2 2$A(I,2)=(*28)+2 7WQ=1I-1:A(I,1)=A(Q,1)A(I,2)=A(Q,2)40(:Q < I d 1000 n 2000 s SCAN=(X,Y) u 3000 vNUMBER>9 4000 x 5;8;X,Y;"" (TIME=TIME-1:TIM=(TIME/5) &TIME<1MS=1:6000p * 0,0;"TIME LEFT = ";TIM;" " 'TIME/5=TIM.005y# =,60< 110n I=19 ( 1;A(I,1),A(I,2);I I   A$= , A$="I"X=X-(X>1):FL=(X=1): . A$="M"X=X+(X<21):FL=(X=21): , A$="J"Y=Y-(Y>0):FL=(Y=0): . A$="L"Y=Y+(Y<31):FL=(Y=31): FL=1:  FL=1  SCAN=1423100 'SCAN=13 MS=3:6000p  C X=A(NUMBER,1)Y=A(NUMBER,2)NUMBER=NUMBER+1: 0 5000 9:;1;3;" CONGRATULATIONS !!!! " *L=120:.1}L,40(:L # :" YOU SECURED THE REACTORS" & :" WITH ";TIM;" TIME UNITS TO GO" # ::" PLAY AGAIN ? (Y OR N)"  A$=:A$=""4040  A$="Y"A$="y"10 E A$="N"A$="n":10 ,7;1;" START THE TAPE ":""  4040  I=1205 < 1;Y*8+4,(21-X)*8+4,I ;1;Y*8+4,(21-X)*8+4,I  I  MS=2:6000p p z' 2,5;" YOU FAILED !!!" 1.4L,-25:3:.8L,-30 ) 4,4;"BECAUSE YOU ";M$(MS) . 10 ,5;"ANOTHER GAME ? (Y OR N)"  A$=  A$="Y"A$="y"10  A$="N"A$="n"9000(#  6040 X+1;1,10 ;" ZX-REACTOR " br: " YOUR TASK IS TO SHUT DOWN THE RUNAWAY REACTORS AND AVERT ADISASTER. TIME IS TICKING AWAY. " l: " DUE TO THE COMPLEXITY OF THETECHNOLOGY INVOLVED, YOU MUST VISIT THE REACTORS IN NUMERICAL SEQUENCE, AND YOU MAY NOT CROSS YOUR OWN TRAIL." vQ: " THE CONTROLS OF YOUR REMOTE ROBOT MANIPULATOR ARE -- " O: " J FOR LEFT L FOR RIGHT I FOR UP M FOR DOWN " :" GOOD LUCK! " # "DIFFICULTY 1(hard) - 9(easy)";D  TIME=D*100d  : #(23658j\,0 #2(:10 ,7;" START THE TAPE " #<"" abcdimX_  }(RAN OUT OF TIME SECURED THE WRONG REACTOR CROSSED YOUR TRAIL xycaumbe7tlarge sNaqu 6:6:0: a=2:b=7 i=021 -i,8;a;b;1;" STOP THE TAPE " (c=a:a=b:b=c 2i F6:0 P 9000(# d" The introductory tape by PSIONwhich came with your Spectrum has on it a rather nice machine code routine for printing large letters on the screen in varying" n"sizes and shapes. We can't copy this routine in SPECTRUM COMPUT-ING for copyright reasons, but as you already have it on the PSION tape, that hardly matters.There is no reason we shouldn't show you how to use it. " x" The program after this one on this tape is called 'biggys' andit will give you all the info, but first you will have to LOAD the 'character' program from thePSION tape, side b, and then MERGE 'biggys' on top of it. " e" I hope you will bear this tinyawkwardness cheerfully in the good cause of us not being sued." 9000(# ." The computer is trying to loadthe 'character' program at this moment, so dig it out and play it in. It will automatically load its machine code routines and then run, so you will have to use the BREAK key to stop it and then type in MERGE 'biggys' and play the next program on this tape." " Unfortunately this message will have disappeared by then, so maybe you should write down MERGE 'biggys' on a bit of nastyold fashioned paper first. " ::8;2;7;1;" START THE TAPE " "character"  #(f23659k\,0::8;" PRESS ANY KEY TO TURN PAGE ":23659k\,2:0:: abcbiggys i V z=/:x=-:e=8 z:6:6:z: 2 t=z6 Ft=34 Z!t=4100d:3: dxs:ys:y:d$:9400$ nt xe,4,x,"FAT",e,4,32 ,"CITY",2,14,64@,"LEAN STREETS",e,10 ,x,"SIZE",6,11 ,80P,"ISN'T",2,2,160," THE BOTTOM LINE " 200:7:z: " The large characters are pro- duced by a machine code routine at address 32256, but you don't have to know that, because the details are taken care of by a GOSUB to LINE 9400, which I'll do right now. Press a key. " x X 9400$ l:" As you can see, the routine has reprinted the line it was given last. What it prints and where, and the size and shape ofthe letters depends on the con- tents of four variables at the time that the routine is called.Press a key." x:y=x:9400$ f:" Changing variable y alters theposition. Now I'll alter height with variable ys. Press a key. " x:ys=26:9400$  gx,x;" The line seems to have moved down because the empty pixels atthe top are taller too! Press." x:5:5:x: " The width variable xs and the d$ string, which holds the line to be printed, are interdepend- ant according to the formula LEN d$=32/xs or in ENGLISH, the wider the letter, the fewer will"  "fit. If the string is too long it will wrap around and garble. The routine will automatically centre the string, so if an off-centre message is wanted, then leading or trailing spaces must be incorporated." " Width and height variables areexpressed as multiples of the standard character size. The line position is expressed as the number of pixels from the top of the screen. Now you have a go." $"xs= width of char. (max 32)? ";xs $"ys= height of char.(max 24)? ";ys $"y= pixels from top,(max 190)? ";y 9"ds= message,max 32/xs=";(32 /xs);" letters ";d$ )6:6:2::9400$ 521,x;x;z;"Press q to quit or any to stay." x =""1170 ="q"1200  940 3:7:z: J" To use this utility in your own programs, you can SAVE the machine code without the BASIC by RUN 9010, but there is no wayto SAVE just the one line of theBASIC that we have been using, so I will list it for you to copy down on (ugh!) paper, if you still have a scrap of that outmoded material to hand. Pressa key."  x:::::  9400$ x ~::" That's it for this issue. Nowrewind and LIST all the programsto see what an ordinary magazinewould have given you! "