ZXTape! 0Created with Ramsoft MakeTZXsimeon 4:  SIMEON BY CHRIS HOWARD STONE 2DECEMBER 1984 4O64499:10 ,9 ;"STILL LOADING....":""64500,1019 5.236066\,244:236077\,250 6%:10 ,9 ;"STOP THE TAPE" 7A$=:A$=""557 8 8000@ 90:0: < 0 P+A(31):B(31):LONGEST=0 ZF23658j\,8:POKE CAPS LOCK  4000 LEVEL=1 A$=:=""220 A$="S"1000 A$="H"3000 A$="R"2000 A$="L"350^ A$="Q"9998'  220 ^!SELECT LEVEL  h5:X1=2*LEVEL+13 :X$=" "+(LEVEL)+" ":X2=2*(LEVEL+1-4*(LEVEL=4))+13 :Y$=""+(LEVEL+1-4*(LEVEL=4))+"" r{10 ,X1;" ":11 ,X1;X$:12 ,X1;" ":3:10 ,X2;" ":11 ,X2;Y$:12 ,X2;" " |LLEVEL=LEVEL+1-4*(LEVEL=4):.03{u\,36$:220 !MAIN GAME LOOP  SEQLEN=0 nA=18*(LEVEL=1)+14*(LEVEL=2)+20*(LEVEL=3)+31*(LEVEL=4) SEQLEN=SEQLEN+1 )COL=1+(4*):A(SEQLEN)=COL APLAYBACK CURRENT SEQUENCE  $Q=1SEQLEN .rADDR=65070.*(A(Q)=1)+65095G*(A(Q)=2)+65120`*(A(Q)=3)+65145y*(A(Q)=4) 8 L=ADDR B.5*(SEQLEN<6)+.3*(SEQLEN>5SEQLEN<10 )+.15~*(SEQLEN>9 ),0*(A(Q)=1)+2*(A(Q)=2)+4*(A(Q)=3)+5*(A(Q)=4) L L=ADDR VQ `!KEY IN PLAYERS SEQUENCE jQ=1SEQLEN t 5000 ~A(Q)=KEY1210 ERROR IN INPUT   L=ADDR 1,-25  L=ADDR 1340<:220  L=ADDR b.2~L,0*(KEY=1)+2*(KEY=2)+4*(KEY=3)+5*(KEY=4)  L=ADDR Q Q=040(:Q A Q=16  L=ADDR  c.09}8Q,0*(KEY=1)+2*(KEY=2)+4*(KEY=3)+5*(KEY=4)  L=ADDR W=05:W (Q 21340<:220 <SEQLENLONGEST FQ=1SEQLEN P B(Q)=A(Q) ZQ dLONGEST=SEQLEN n !REPLAY LAST SEQUENCE  Q=1SEQLEN rADDR=65070.*(A(Q)=1)+65095G*(A(Q)=2)+65120`*(A(Q)=3)+65145y*(A(Q)=4)  L=ADDR f.5,0*(A(Q)=1)+2*(A(Q)=2)+4*(A(Q)=3)+5*(A(Q)=4)  L=ADDR  Q  220 APLAYBACK LONGEST SEQUENCE  Q=1LONGEST rADDR=65070.*(B(Q)=1)+65095G*(B(Q)=2)+65120`*(B(Q)=3)+65145y*(B(Q)=4) L=ADDR f.5,0*(B(Q)=1)+2*(B(Q)=2)+4*(B(Q)=3)+5*(B(Q)=4) L=ADDR Q 220 !CONSTRUCT DISPLAY  0:0: L2:1,0;"";:6:"" \a=25:2:a,0;" ";:6:" ":a L2:6,0;" ";:6:" " _a=78:2:a,0;" ":6:a,20;" ":a U2:9 ,0;"":6:9 ,20;"" W1:13 ,0;"":4:13 ,20;"" aa=1415:1:a,0;" ":4:a,20;" ":a M1:16,0;" ";:4:" " ^a=1720:1:a,0;" ";:4:" ":a M1:21,0;"";:4:"" 25:11 ,9 ;"LEVEL";:" 2 3 4" "W3:10 ,15;" ":11 ,15;"1":12 ,15;" " , AGET KEYPRESS WITHIN SIX SECONDS  *23673y\,0:23672x\,0 A$=:A$=""5070 )A$="1"KEY=1:ADDR=65070.: )A$="0"KEY=2:ADDR=65095G: )A$="M"KEY=3:ADDR=65120`: )A$="Z"KEY=4:ADDR=65145y: ;23672x\+256*23673y\<2705020 0L=ADDR:1,-25:L=ADDR:220 @'PRINT PAGE ONE OFINSTRUCTIONS. J0:0: T9000(#:7 ^4,0;"SIMEON IS A SIMULATION OF THATWELL-KNOWN GAME OF A SIMILARNAME,FOR THE 48K SPECTRUM. THE OBJECT OF THE GAME ISTO REPEAT CORRECTLY A LONGER ANDLONGER SEQUENCE OF SIGNALS.TOPLAY,PRESS 'S' TO START THEGAME.YOU WILL BE GIVEN THE FIRST" h"SIGNAL WHICH YOU MUST REPEAT BYPRESSING ONE OF FOUR KEYS:'1'FOR RED,'0' FOR YELLOW,'M' FORGREEN AND 'Z' FOR BLUE.SIMEONWILL REPEAT THE FIRST SIGNAL ANDADD A NEW ONE.YOU MUST THENREPEAT THESE TWO SIGNALS INTHEIR CORRECT SEQUENCE." r 9100# 'PRINT PAGE TWO OFINSTRUCTIONS. 0:0: 9000(#:7 ƒ5,0;"ASSUMING YOU REPEAT THESE TWOSIGNALS CORRECTLY,SIMEON WILLREPEAT THE FIRST TWO SIGNALS ANDADD A NEW ONE ETC." ;" THE NUMBER OF SIGNALSTO BE REPEATED DEPENDS ON THE LEVEL OF PLAY.THIS ALLOWS YOU TOSELECT A GAME OF 8 SIGNALS (LEV-EL 1),14 SIGNALS (LEVEL 2),20SIGNALS (LEVEL 3) OR 31 SIGNALS(LEVEL 4).IF YOU SUCCESFULLYREPEAT THE NUMBER OF SIGNALS FORA GIVEN LEVEL,YOU HAVE WON ANDYOU WILL HEAR THE 'WIN' SIGNAL."  9100# )PRINT PAGE THREE OFINSTRUCTIONS. 0:0: 9000(#:7 &6,0;"YOU CAN LOSE BY NOT REPEATING ASEQUENCE EXACTLY OR BY TAKINGLONGER THAN SIX SECONDS TO PRESSA 'SIGNAL' KEY.IN THIS CASE,YOUWILL HEAR THE 'LOSE' SIGNAL." 0" PRESS 'R' AND THE LAST SEQU-ENCE WILL BE RE-PLAYED.COUNT THENUMBER OF SIGNALS:THIS IS YOURSCORE WHICH YOU CAN COMPARE WITHYOUR BEST SCORE BY PRESSING 'H'WHICH WILL PLAY BACK THE LONGESTSEQUENCE SO FAR." D 9100# l(PRINT PAGE FOUR OFINSTRUCTIONS. v0:0: 9000(#:7 07,0;" 'Q' WILL LOAD NEXT PROGRAM" 9 ,0;"TWO OR MORE PLAYERS MAY COMPETEBY DECIDING WHO GOES FIRST.PLAYPROCEEDS AS DESCRIBED EXCEPTPLAYERS PROCEED BY TAKING TURNSREPEATING THE SEQUENCE OFSIGNALS ON A'KNOCKOUT' BASIS." m1:20,4;"PRESS 'R' TO READ AGAIN ";21,4;"OR PRESS 'C' TO CONTINUE":0 A$=:A$=""8350 A$="R"A$="r"8000@ A$="C"A$="c" 8350 #(DRAW TITLE #2B2:6:1,12 ;" SIMEON ":0:7 #<^91[,171:74J,0:0,-16:-74J,0:0,16 #F #'PRINT "PRESS ANY KEY TOCONTINUE #A1:7:21,4;"PRESS ANY KEY TO CONTINUE" #A$=:A$=""9120# #&.2~L,13 :.2~L,10 # 'i:1:7:236066\,0:236077\,60<::10 ,9 ;"START THE TAPE":"" '5"simeon"524:"simcode"64500,1019 ongeseve Feqleodd`l`eX 1 Y2A .simcode :=$$$$~$$~$>(> >bd&F(*D: > @    >Ò!X!QX~ >0>Ò!Y!1Z~ > >Ò!Y!!Z~ >>Ò2>2>Ͱ> 2>Ͱ 6# Z= MMYWM>W\ P P 32MM{ZzZLWq !v>````````````review1  _ :" Review 1 Mini Office": #"Mini Office consists of 4 progs"  " Word processor" (" Spreadsheet" 2" Database" <" Graphics program" = F#"The manual with the programs is" P!"quite good. The price is also" Z#"interesting at 5.95 they seem a" d#"good buy. But are they any good" n "the answer to that 64 dollar" x"question is that they are." y 0 z !"All the programs are adequate" ""for fairly simple tasks and if" ""treated as an educational tool" ""software are very good indeed."  !"My feeling is that if you are" #"thinking about buying a program" ""which is on the above list you" !"should first play around with" ""mini office to give you a feel" #"for the subject and then choose"  "a dedicated product."  "type 'L' to load next" "type 'R' to re-read" ,a$=:a$=""300, 6a$="l"a$="L"400 @a$="r"a$="R"10 J 300, "" Areview2 88 :  "Review 2 Pipeline II"  (#"This is a conversion of the C64" 2""game of the same name. You are" < "a foreman plumber who has to" F#"wander around the pipes getting" P#"your mate to clear blockages in" Z "the pipes, while you keep an" d#"eye open for the various nastys" n""intent on preventing your work" x ""I felt the graphics left a bit" "to be desired, but the game" "is well balanced and fun to" "play. Overall this is a good" #"arcade style game and worth the" "money." 0 "" 20tons ':+ m 20 TONS  P Cooke Oct 1984  32000}:hi=0 9h(x)=(x/256):l(x)=x-256*h(x) &0:7:1:0: (23658j\,0 2 9100# c main menu d]0:7:0::1,11 ;" ";4,7;"** MAIN MENU **" n7,5;"1. PLAY GAME";9 ,5;"2. DESIGN SCREEN";11 ,5;"3. SAVE SCREENS > TAPE";13 ,5;"4. LOAD SCREENS < TAPE";15,5;"5. VIEW SCREENS" x!21,9 ;"PRESS 1 - 5" Z$=:Z$<"1"Z$>"5"200 Z$="2"5000:100d Z$="1"1000:100d 6z$="3""20TONS"37000,11000*:100d 6z$="4""20TONS"37000,11000*:100d z$="5"8000@:100d Tscore=0::"start on screen (1-20) ";ls:ls<1ls>201000: 87000X:q=0:ti=500:thisscore=0 ^n=110 :V=33000:y,x;5;""(n):n>5v=33018 &329960W=33006 m=110 :m:n cz$=:ox=x+(z$="p")-(z$="o"):oy=y+(z$="z")-(z$="a"):ox=xoy=yn=16:n:1100L ?v=33009:q=(oy,ox):q=70Fq=66B1100L q=68D.02{# =,36$:thisscore=thisscore+1:7,27;(thisscoretowin);"";0;" ";score+thisscore (thisscore01010 Xn=12:v=33012:v=33006:n:n=15:y,x;" "(n):v=33006:m=110 :m:n [_ti=0#1;1,0;1;" OUT OF TIME ":1130j `fti0#1;1,0;7;2;1;" CRUSHED "; jt1,-5:1,-5:#1;0,0;0;7;" GAME OVER " o%n=1200:n:200: t+score=score+thisscore:score>hihi=score ~ ty,x;5;1;"":n=116:v=33018:n:0:ls=ls+1:ls=21ls=1  1001  DESIGN SCREEN =ls=0:0:0:0::9000(#:BORDER 5"Load screen ?(y/n) ";y$:y$"y"y$"n"5010 y$="n"5070 ="load screen (1-20)";ls:ls<1ls>205030 7000X:load ls.  #1;0,0;"design screen keys a/z o/p";1,0;"space 1 ";1;" ";7;"2 ";2;" ";7;"3 ";3;" ";7;"4 ";4;" ";7;"5 ";6;"";7;" q end" Hx=1:y=1:ox=x:oy=y:o=1:man=0:exit=0 o$=" " ^oy,ox;0;o;o$(o+1):o=(y,x)-64@:y,x;9 ;8;;"+":ox=x:oy=y Mz$=:z$" "z$"a"z$"z"z$"p"z$"o"z$"q"(z$<"0"z$>"5")5110 z$="p"z$="o"z$="a"z$="z"x=x+(z$="p"x<25)-(z$="o"x>1):y=y+(z$="z"y<20)-(z$="a"y>1):5100  z$="q"5220d z$=" "z$="0" o=z$:o=5o=6 PHx=x+1:x=26x=1:y=y+1:y=21y=1 Z 5100 djsdun=0:edun=0:"":#1;0,0;"Please place start pos (s) and end pos (e)." ^oy,ox;0;o;o$(o+1):o=(y,x)-64@:y,x;9 ;8;;"+":ox=x:oy=y =z$=:z$"s"z$"e"z$"a"z$"z"z$"p"z$"o"5260 z$="p"z$="o"z$="a"z$="z"x=x+(z$="p"x<25)-(z$="o"x>1):y=y+(z$="z"y<20)-(z$="a"y>1):5250 'z$="e"eduno=7:edun=1 ;z$="s"sduno=5:sdun=1:xstart=x:ystart=y sdunedun5250 "oy,ox;0;o;o$(o+1) 5" OK to save? (Y/N) ";Y$:y$"y"y$"n"5300 y$="n"5600 L"save screen no(1-20) ";screen:screen<1screen>205400 | 6000p  ""Press C continue or Q quit ";y$ y$"c"y$"q"5610  y$="q"  5070 o SAVE SCREEN ps#1;0,0;1;" ** Saving ** Please wait.":ADD=37000+512*(SCREEN-1) zKX=1:Y=1:MAXSCORE=0:NOOFSHAPES=0:towin=0 oA=(Y,X)-64@:A=4MAXSCORE=MAXSCORE+1:7,29;maxscore;9 ,27;"(max)" VADD,A:ADD=ADD+1:A>2A5A7NOOFSHAPES=NOOFSHAPES+1 2:X=X+1:X=26X=1:Y=Y+1 Y<216020 ""SCORE TO FINISH ( max) ";towin towin>MAXSCORE6060 ^ADD,L(NOOFSHAPES):ADD+1,H(NOOFSHApES):ADD+2,L(towin):ADD+3,H(towin) "":#1;" ALL OK."  0: W LOAD SCREEN Xload screen ls bl9000(#:32992,(LS-1):V=33003:X=32990ހ:Y=32991߀:TOWIN=32995: @:ls=1:9000(# E*32992,(LS-1):V=33003 JI11 ,29;ls;" ";#1;1,10 ;"Screen ";ls;" "; Tn=1100d:"" Y9n:n=12:v=33009:v=33012:n ^(ls=ls+1:ls=21ls=1 h=""8005E r #(1:0:7:0,0;2;"";:n=120:n,0;2;"";1;"";2;"":n:21,0;2;""; #22,28;"";3,27;"";5,27;"Score";7,27;" 0";9 ,27;"Sheet";11 ,29;ls;13 ,27;"High";15,29;hi;17,27;"Time" #< #13 ,9 ;"20 tons":30,30:30,80P:80P,0:30,-80P:-140,0:80P,110n:0,5:40(,0:0,-5:100d,125},10 #a$=" Twenty tons. Collect the rings through twenty screens , but avoid the 20 ton weights and the 'eaters'...................... Press a key to start. " #21,0;1;a$(32 ):254,0:254,16:a$=a$(2)+a$(1):5:=""9120# # '0:7:0:32000}:5,12 ;"20 tons.";7,10 ;"Loading Code";9 ,10 ;"Please wait.":"20tcode":"20tgra": 'X"20tons"9998':"20tcode"33000,15000::"20tgra""a",21*8 A Press a key to start. Twenty tons. Collect the rings through twenty screens , but avoid the 20 ton weights and the 'eaters'...................... ovcorxyowiqhisscor X wZ20tcode ::(:v{âóӄ>22!:2~( O > ####:2 :ONF҃o>D(6҃o>@(>C ͑p6ͥ>2>E ~F͑ͥp6>22>F(>D( >C(j6FN ҃o>@ ҃o>@  ͑ q6ͥ>2NF ҃o>@ ҃o>@  ͑ q6ͥ>26͑p66ͥ>2NF҃o>F(6҃o>@(>C ͑pͺ6>2>E ~͑ͺ>22>D( >F(6NF ҃o>@ ҃o>@  ͑ ͺq6>2NF ҃o>@ ҃o>@  ͑ ͺq6>26NF҃o>C(6>2~g:x\(%|w'!o|g~O#~G҃o>@(>E(/:2NF~NF͑qpƃs>2͝>ͱ> >xy͝>Dͱ>>͝>Fͱ>͝>Cͱ>&h)))))Xyo>g~:'!g!>2~ͱ͝8' y2ހx2߀(wqp6####n_zW#yO xG N#F#~2#~2C d!:H\8???F#F#!X~w# x :H\8???d:H\8???Oy>dGy>dGdG                                                                                gSTCAL ORUTugAɣīTIҳDһADD`b C`bJNDXOR BITz@RNEDOHALv&b`h"d 0,fN*.Sj$(lb2b8642n`c(&$"f 8642f.,*jbd0hbd08tt8|4DDABYuCDyE"zF,|G}IyL{K|MI~N~P}RySzT|VW|Xw { z0{C:{ [~F{ID{KzLRQsSZ{RzX?{ZI{Pardon? 5210 10 b p,/IP+HKI#!H#xv Table size: Options: Bad ORG! Start tape.. Using Bad Memory! Found Interrupted Buffer size? *ERROR* *WARNING* Pass 1 Pass 2 errors: absentTable used: from Executes: No Table space! *HISOFT GENS2 ASSEMBLER* Copyright HISOFT 1983 All rights reserved  b w%qv & P Wq P \ !u\ ?:\zx\ xw GENS20T -8 ; 20  RT LD IX DFLAG) RG3 V LDK MCfT2&2:>(O Kܥ=E:\5c_*5 7T( H6 R$$20tgra X:$~~`<| AD  toad 7PJdd: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 :6000p o=-:p=/ 9500%:8200 $#p;" PRESS ANY KEY TO START":o 4:o:o 4hs=o:s=o:sc=o:fl=3:t=100d:l$="" 3:a=p3:"" a (-6;" " 2 a=p5 <*p;p;"................................" Fa P-6;" " Za=p2  d%;"" na x37;" "'''''' -7;" " 1a=p2:"" a ]21,o;6;"SCORE ";s;21,14;"HI ";hs;21,22;"SCREEN ";sc @o,o;" LIVES ";l$;" ";12 ;2;7;" TOADY " +p+p,o;"################" /x=20:y=(*21)+5:x,y;"" #p;" PRESS ENTER TO QUIT"  =13 9999' "(x,y)="#"x,y;"":5000 ! t=t-1 #t0t=100d:10 ,11 ;p;" TIME OUT ":.5,p:.5,2:.5,4:.5,6:.5,4:.5,2:.5,2:.5,o:.5,-2:9255'$ &x,y;"":.01z# =,-10 a$=a$(2)+a$(1) b$=b$(32 )+b$(31) c$=c$(2)+c$(1) d$=d$(32 )+d$(31) e$=e$(2)+e$(1) f$=f$(32 )+f$(31) $g$=g$(2)+g$(1) .h$=h$(32 )+h$(31) 8i$=i$(2)+i$(1) Bj$=j$(32 )+j$(31) L 1 Q4,0;6;a$ V5,0;4;b$ ` 6;c$ j 4;d$ t 6;e$ y0:1 ~13 ,0;2;f$  3;g$  0  5;h$  6;i$  4;j$ Bx=4x=6x=8y=y-1:y<0y=0 :x=5x=7y=y+1:y>31y=31 .(x,y)="."x,y;p;2;"":9000(#  x,y;"" .01z# =,-5 Ox,y;" ":x=px=2x=10 x=11 x=19x=20x,y;"" *x=12 x=18x,y;7;" " !x>3x<9 x,y;p;"" (x=3x=9 x,y;6;" " kj  z=31 Fy=y+(z=1z=5z=9 )-(z=2z=6z=10 ) Fx=x+(z=4z=5z=6)-(z=8z=9 z=10 ) Ds=s+10 *(z>7z<15)-10 *(z>3z<7)  1280 y=y+(="p")-(="o") x=x+(="a")-(="q") 's=s+10 *(="q")-10 *(="a") y319000(# x>21x=21  P21,o;6;"SCORE ";s;" ";13 ;" HI ";hs;22;"SCREEN ";sc  %o,21;6;" TIME ";t;o 3x13 x171500+x:r0r (x,y)="."9100# 1x4x81500+x:r0r ( 500 6r=(a$(y+p)=""a$(y+p)=""a$(y+p)="")*9150#: r=(b$(y+p)="")*9200#: 6r=(c$(y+p)=""c$(y+p)=""c$(y+p)="")*9150#: r=(d$(y+p)="")*9200#: 6r=(e$(y+p)=""e$(y+p)=""e$(y+p)="")*9150#: *r=(f$(y+p)=""f$(y+p)="")*9050Z#: *r=(g$(y+p)=""g$(y+p)="")*9050Z#: *r=(h$(y+p)=""h$(y+p)="")*9050Z#: *r=(i$(y+p)=""i$(y+p)="")*9050Z#: *r=(j$(y+p)=""j$(y+p)="")*9050Z#:  sc=sc+p s=s+250+5*t t=t+20 i=p7:23760\:i  20 p-9 ::" TOADY -- by R. Grainger " z:" This is a version of a game which is familiar to most. We have modified it to accept inputfrom Kempston joystick or key- board. " d:" The keyboard controls are -- Q for UP - A for DOWN O for LEFT - P for RIGHT " :" Do not attempt to connect the joystick interface to the com- puter while it is turned on. It is, however, okay to plug the joystick itself into the inter- face pack if the pack is alreadyconnected to the computer. If " ="the interface is attached, the keyboard will be ignored." Xkj=1260:31>30ſ31>30ſ31>30kj=1270  LH#p;o,o;" Press any key to play again or ":o:=13 9999' Qn=p2:9720% Vi=p8:h,j:h,j `i:n j(k=.1}Lo-.01z# =:k,28:k t 20 )a$="................" 'b$="...................." 'c$="................." &'d$=".................." 0'e$=".............." :'f$=" " D'g$=" " N'h$=" " X'i$=" " b'j$=" " l #(,10 ,5;" C.COLUMBUS WAS WRONG " #2)11 ,6;" THE WORLD IS FLAT " #< 9250"$ #Zx,y;p;2;"" #d!10 ,11 ;" RAN OVER " #n 9250"$ #x,y-3;"SPLASH" #&10 ,8;" YOU CAN'T SWIM " # 9250"$ #x,y;p;2;4;"" #-10 ,4;" THE ALLIGATOR GOT YOU " # 9250"$ #x,y-p;"GLUG" #+10 ,5;" A TURTLE DUCKED YOU " $"8a=200150-2:.1}L,a/10 :a $' fl=fl-p $, l$=l$(fl) $1l$""20 $6.6,o:.4L,o:.2~L,o:.6,o:.4L,3:.2~L,2:.4L,2:.2~L,o:.4L,o:.2~L,-p:.6,o $;2s>hshs=s:12 ,8;" NEW HIGH SCORE " $J.s=o:fl=3:l$="":sc=o:t=100d $T 7500L %:r=255:c=p15 %&a$ %0 a=o7 %5b %: a$+a,b %Da %Nc %X %bI"a",24,189,r,126~,60<,60<,231,66B %lF"b",o,7,12 ,28,127,127,28,8 %v:"c",o,224,176,152,r,r,14,4 %I"e",o,224,480,568,254,254,568,16 %8"d",o,7,13 ,25,r,r,112p,32 %"f",o,r,r,r,r,r,160,o %E"g",o,192,224,220,220,252,152,o %="h",o,3,7,59;,59;,63?,25,o %#"i",o,225,r,r,r,r,5,o %M"j",16,8,15,127,127,15,8,16 %?"k",8,16,240,r,r,240,16,8 %*"l",o,o,1,30,224,o,o,o %C"m",194,60<,126~,r,r,126~,60<,194 %C"n",194,60<,126~,r,r,126~,60<,194 %"o",o,p,r,r,r,r,p,o %.1}L,11 ,.1}L,11 ,.8L,16,.05|L,11 ,.05|L,16,.05|L,11 ,.05|L,16,1,20 'G7:9 :7::10 ,7;" START THE TAPE ":"" @b%oprst0xyLA"................B ....................C .................D ..................E ..............F G H I J hack 77B9Jdd: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 100d Y1:="":7:5:4:6:3:2:5:10  d(1:1:7:32599W n$6,8;"Hackers Hangout" p;:" This program line has some un-expected properties! " sy:" 10 PAUSE 1: IF INKEY$="""" THEN BORDER 7: BORDER 5: BORDER 4: BORDER 6: BORDER 3: BORDER 2: BORDER 5: GO TO 10 " x10 :9000(# " The striped border in this is-sue taught me a lot about speed-ing up the execution time of BASIC programs. The border is produced by line 10, and it's aninteresting trick in itself, but" n"what is really intriguing about it is that it makes a big dif- ference where the line is put ina program." " In fact, if this line was put at the end of a longish prog, itwould give a very different ef- fect. You still get the stripes,but they flicker. " " The reason for this is that whenever the BASIC comes across a GOTO or GOSUB or the like, it has to find the line number in-" b"dicated, which it does by start-ing at the beginning and lookingat every line number until it " 9000(# r"gets a match. Obviously, the nearer the line is to the begin-ning of the list, the quicker itwill be found." " This search time becomes crit-ical where the stripes are con- cerned because line 10 must be executed every 50th of a second if the stripes are to appear in every television frame, and if " "it takes too long to find the line, then a frame is missed. A 'PAUSE 1' statement keeps the stripes in step with the TV picture by waiting for a pulse from the same clock that is usedfor the video output, but if the" "BASIC is late getting there, it waits for the next pulse. So thestripes don't drift up and down,but are absent from every other frame. How about a demo?" 9000(# " The stripes are now being pro-duced by line 9990, which is identical to line 10 except for its position. If there was one less stripe (one less BORDER statement) then the routine would still be flicker-free even" ,"at the end of this not-very-longprogram." " The significance of all this is that the modular or structur-ed approach to programming that we are all supposed to approve" "of actually slows up the action by sending the BASIC off lookingfor GOSUBs all the time. So if you're after speed, thenforget the style, just get the critical bits at the top of the list." "B" That is not the end of it, ei-ther. While writing this very " , 9900& 6"article/program an even odder effect showed up which I cannot explain at all. I use a 48K Spectrum, but have to check thateverything will fit in 16K mach-ines. For some reason, when I " @"reset the RAMTOP to the 16K fig-ure, one of the stripes has to be removed to get a steady dis- play. Why should a 48K machine that thinks it's a 16K machine run slower than when it knows ithas 48K? " J" A real 16K Spectrum runs this routine at the same speed as a 48K Spectrum that only thinks itis a 16K model, so I have placeda CLEAR 32599 statement in the program to make it run in both." TC" That's it for this issue, why not have a look at the listing?" ^ 9900&  10 #' #(D#1;" PRESS ANY KEY TO TURN THE PAGE ":10 :1:: &F#1;" PRESS ANY KEY TO TURN THE PAGE ":9990':1:: '[1:="":7:5:4:6:3:2:5:9990' ' '%23653e\+256*23654f\ y