1 REM-------------------- 2 REM- ASSEMBLER-KURS - 3 REM- TEIL 3 - 4 REM- - 5 REM- VON - 6 REM- - 7 REM- RALF TRABHARDT - 8 REM-------------------- 9 IFA>0THEN26 10 POKE53280,0:POKE53281,0:D=53272 11 PRINT"[147]":C=0:PRINTCHR$(142) 12 PRINT"" 13 IFC=0ORC=8THENPRINT"[144]" 14 IFC=1ORC=7THENPRINT"[151]" 15 IFC=2ORC=6THENPRINT"[152]" 16 IFC=3ORC=5THENPRINT"[155]" 17 IFC=4THENPRINT"" 18 PRINTTAB(10)"ASSEMBLER-KURS TEIL 3" 19 PRINTTAB(92)"PROGRAMMIERT VON" 20 PRINTTAB(93)"RALF TRABHARDT" 21 GETA$:IFA$=" "THEN25 22 C=C+1:IFC=9THENC=0 23 FORI=1TO10:NEXTI 24 GOTO12 25 A=A+1:IFA=1THENLOAD"MC-ROUTINEN 3",8,1 26 SYS32841:POKED,(PEEK(D)AND240)OR14 27 PRINTCHR$(14):PRINT"[147][155][197]S GILT FOLGENDE [212]ASTATURBELEGUNG:" 28 PRINTTAB(204)"[211][208][193][195][197][146]= [206][166]CHSTE [211]EITE" 29 PRINTTAB(124)" [198]1 [146] = [197]INE [211]EITE ZUR[168]CK" 30 PRINTTAB(124)" [198]7 [146] = [197]RSTE [211]EITE " 31 GETA$:IFA$=""THEN31 32 SE=1:GOTO35 34 GOSUB315 35 PRINTCHR$(14):PRINT"[147][155]":POKE53280,0:POKE53281,0 36 ONSEGOTO41,39,56,69,81,92,103,125,149,177,199,215,267,284,237,298 37 SE=1:GOTO35 39 SYS32768 40 SE=SE+1:GOTO35 41 PRINTCHR$(14):PRINT"[147][158][200]EUTE STEHT DIE [211]CHLEIFENPROGRAMMIERUNG" 42 PRINT"AUF DEM [208]LAN." 43 PRINT"[215]IE [211]IE GLEICH SEHEN WERDEN, HAT AUCH" 44 PRINT"[211][208][213][203][201][158] GEWISSE [208]ROBLEME MIT DEN" 45 PRINT"[211]CHLEIFEN..." 46 GOTO34 47 PRINTTAB(85)"[195]ARRY-[198]LAGGE :";:GOSUB308 48 PRINTTAB(45)"[218]ERO -[198]LAGGE :";:GOSUB308 49 PRINTTAB(45)"[206]EGATIV-[198]LAGGE :";:GOSUB308 50 RETURN 51 PRINT"[199]EBEN [211]IE BITTE DURCH [196]R[168]CKEN DER" 53 PRINT"[212]ASTEN 0[146] ODER 1[146] AN, OB DIE JEWEILIGE" 54 PRINT"[198]LAGGE GESETZT ODER GEL[220]SCHT IST :" 55 RETURN 56 PRINT"[218]UN[166]CHST EIN KLEINES '[198]LAGGEN-[212]RAINING'!" 57 GOSUB51 58 PRINT"[194]EISPIEL 1 : [204][196][193] #$80" 59 PRINTTAB(55)"[195][205][208] #$[198][198]" 60 A(1)=0:A(2)=0:A(3)=1:X=0 61 GOSUB47 62 PRINT"[197]RKL[166]RUNG:" 63 PRINT"[196]A DIE [196]IFFERENZ $7[198] BETR[166]GT WIRD DIE" 64 PRINT"[206]EGATIV-[198]LAGGE GESETZT." 65 PRINT"[197]S FAND EIN [213]NTERLAUF STATT, DA DIE" 66 PRINT"GR[220]\ERE [218]AHL VON DER KLEINEREN ABGEZOGEN"; 67 PRINT"WURDE. [196]ESHALB IST DIE [195]ARRY-[198]LAGGE AN." 68 GOTO34 69 GOSUB51 70 PRINT"[194]EISPIEL 2 : [204][196][216] #$00" 71 PRINTTAB(55)"[196][197][216]" 72 A(1)=1:A(2)=0:A(3)=1:X=0 73 GOSUB47 74 PRINT"[197]RKL[166]RUNG:" 75 PRINT"[201]M [216]-[210]EGISTER STEHT NUN DER [215]ERT $[198][198]." 76 PRINT"[193]US DIESEM [199]RUND WURDE DIE [206]EGATIV-" 77 PRINT"[198]LAGGE GESETZT. [196]AS [195]ARRY-[194]IT ( HIER" 78 PRINT"LIEGT KEINE [211]UBTRAKTION VOR !) ZEIGT" 79 PRINT"EINEN [213]NTERLAUF AN." 80 GOTO 34 81 GOSUB51 82 PRINT"[194]EISPIEL 3 : [204][196][217] #$[198][198]" 83 PRINTTAB(55)"[201][206][217]" 84 A(1)=1:A(2)=1:A(3)=0:X=0 85 GOSUB47 86 PRINT"[197]RKL[166]RUNG:" 87 PRINT"[201]M [217]-[210]EGISTER STEHT DER [215]ERT $00. [196]IE" 88 PRINT"[218]ERO-[198]LAGGE IST DESHALB GESETZT. [196]A EIN" 89 PRINT"[169]BERTRAG STATTFAND STEHT DAS [195]ARRY-[194]IT" 90 PRINT"AUF 1." 91 GOTO34 92 GOSUB51 93 PRINT"[194]EISPIEL 4 : [204][196][216] #$20" 94 PRINTTAB(55)"[195][208][216] #$20" 95 A(1)=1:A(2)=1:A(3)=0:X=0 96 GOSUB47 97 PRINT"[197]RKL[166]RUNG:" 98 PRINT"[194]EIDE [215]ERTE SIND GLEICH, D.H. DIE" 99 PRINT"[196]IFFERENZ IST NULL. [196]IE [218]ERO-[198]LAGGE WIRD"; 100 PRINT"GESETZT. [196]IESMAL FAND KEIN [213]NTERLAUF" 101 PRINT"STATT, WIE [211]IE AM [195]ARRY-[194]IT SEHEN." 102 GOTO34 103 PRINT"[215]IE PROGRAMMIERT MAN EINE GESTRICHELTE" 104 PRINT"[204]INIE ( MIT DEM [205]INUSZEICHEN ) AM" 105 PRINT"OBEREN [194]ILDSCHIRMRAND ?" 106 PRINT"[194]ISHER H[166]TTEN WIR SO ANFANGEN M[168]SSEN :" 107 PRINT".9000 [193]9 2[196] [204][196][193] #$2[196]" 108 PRINT".9002 8[196] 00 04 [211][212][193] $0400" 109 PRINT".9005 8[196] 01 04 [211][212][193] $0401" 110 PRINT".9008 8[196] 02 04 [211][212][193] $0402" 111 PRINT".900[194] 8[196] 03 04 [211][212][193] $0403" 112 PRINT".900[197] 8[196] 04 04 [211][212][193] $0404" 113 PRINT".9011 8[196] 05 04 [211][212][193] $0405" 114 PRINTTAB(22)"." 115 PRINTTAB(22)"." 116 PRINTTAB(22)"." 117 PRINT"[196]ER [215]ERT $2[196] ENTSPRICHT DEM [205]INUS-" 118 PRINT"ZEICHEN. [197]S WIRD DIESER [215]ERT IN JEDE " 119 PRINT"EINZELNE [194]ILDSCHIRMPOSITION GESCHRIEBEN." 120 PRINT"[201]N [194]ASIC S[166]HE DAS SO AUS:" 121 PRINT"[208][207][203][197]1024,45:[208][207][203][197]1025,45:[208][207][203][197]1026,45..." 122 PRINT"[196]ANK DER [211]CHLEIFENPROGRAMMIERUNG GEHT ES"; 123 PRINT"ABER AUCH WENIGER UMST[166]NDLICH." 124 GOTO34 125 FORI=55296TO55335:POKEI,14:NEXT 126 SYS33071 127 PRINT"[207]BEN SEHEN [211]IE DIE GESTRICHELTE [204]INIE." 128 PRINT"[196]IESE WURDE,[166]HNLICH EINER [198][207][210]...[206][197][216][212]...-"; 129 PRINT"[211]CHLEIFE MIT DER FOLGENDEN [210]OUTINE" 130 PRINT"ERSTELLT :" 131 PRINT".9000 [193]0 00 [204][196][217] #$00" 132 PRINT".9002 [193]9 2[196] [204][196][193] #$2[196]" 133 PRINT".9004 99 00 04 [211][212][193] $0400,[217]" 134 PRINT".9007 [195]8 [201][206][217]" 135 PRINT".9008 [195]0 28 [195][208][217] #$28" 136 PRINT".900[193] [196]0 [198]6 [194][206][197] $9002" 137 PRINT".900[195] 60 [210][212][211]" 138 PRINT"[196]AS [217]-[210]EG. WIRD GEL[220]SCHT. [201]N DEN [193]KKU" 139 PRINT"WIRD DER [195]ODE F[168]R DAS [205]INUSZEICHEN GE-" 140 PRINT"LADEN. [196]IESER [215]ERT WIRD IN DIE [193]DRESSE" 141 PRINT"$0400 ( DEZ. 1024[160]) PLUS DEM [201]NHALT DES" 142 PRINT"[217]-[210]EGISTERS GESCHRIEBEN. [196]AS [217]-[210]EG. WIRD"; 143 PRINT"NUN SOLANGE ERH[220]HT, BIS ES DIE [218]AHL" 144 PRINT"$28 ( DEZ. 40 ) ENTH[166]LT. [196]ANN VERZWEIGT" 145 PRINT"DAS [208]ROGRAMM NICHT MEHR MIT DEM [194][206][197]-" 146 PRINT"[194]EFEHL NACH $9002 SONDERN ENDET DURCH " 147 PRINT"[210][212][211]."; 148 GOTO34 149 PRINT"[196]IESES [208]ROGRAMM KENNEN [211]IE BEREITS." 150 PRINT"[203][220]NNEN [211]IE DESSEN [215]IRKUNG VORRAUSSAGEN?" 151 PRINT". 813[197] [193]0 00 [204][196][217] #$00 152 [153]". 8140 ATN9 07 (null)STR$ATN #$07 153 PRINT". 8142 99 00 [196]8 [211][212][193] $[196]800,[217] 154 [153]". 8145 99 00 STR$9 (null)(null)ATN $STR$900,(null) 155 PRINT". 8148 99 00 [196][193] [211][212][193] $[196][193]00,[217] 156 [153]". 814PEEK 99 00 STR$PEEK (null)(null)ATN $STR$PEEK00,(null) 157 PRINT". 814[197] [193]9 00 [204][196][193] #$00 158 [153]". 8150 99 00 04 (null)(null)ATN $0400,(null) 159 PRINT". 8153 99 00 05 [211][212][193] $0500,[217] 160 [153]". 8156 99 00 06 (null)(null)ATN $0600,(null) 161 PRINT". 8159 99 00 07 [211][212][193] $0700,[217] 162 [153]". 815LEN 88 STR$VAL(null) 163 PRINT". 815[196] [196]0 [197]1 [194][206][197] $8140 164 [153]". 815ASC 60 (null)(null)(null)" 165 [153]"STR$IESE (null)OUTINE WSPC(RE OHNE DIE (null)CHLEIFEN-" 166 [153]"PROGRAMMIERUNG NUR UNTER GR(null)\TEM ATNUFWAND"; 167 [153]"ZU ERSTELLEN." 168 [153]"STR$IE '(null)CHLEIFE' LSPC(UFT AUCH HIER NOTBER DAS" 169 [153]"(null)-(null)EGISTER. STR$IESES WIRD SOLANGE ER-" 170 [153]"NIEDRIGT, BIS ES DEN (null)ERT $00 ANGENOMMEN"; 171 [153]"HAT. STR$ANN WIRD NICHT MEHR NACH $8140" 172 [153]"GESPRUNGEN. STR$A DIE (null)ERO-ASCLAGGE GESETZT" 173 [153]"WURDE ENDET DIE (null)OUTINE."; 174 [161]A$:[139]A$[178]""[167]174 175 [158]33086 176 [137]34 177 [153]"STR$ER GANZE PEEKILDSCHIRM WURDE MIT DEM" 178 [153]"(null)EICHEN '@' UND DER ASCARBE CHR$ELB GEFNOTLLT." 179 [153]"VALINE WEITERES VALINSATZGEBIET DER" 180 [153]"BEDINGTEN (null)ERZEIGUNGEN FINDET MAN BEI" 181 [153]" DEN (null)ERZ(null)GERUNGSCHLEIFEN, DIE ATNSSEMBLER-"; 182 [153]"PROGRAMME LANGSAMER MACHEN." 183 [153]"OPEN.8120 ATN2 00 (null)STR$(null) #$00 VERIFY(null)-(null)EG. L(null)SCHEN"; 184 [153]"OPEN.CONT8122OPEN LENATN STR$VAL(null) VERIFY(null)-(null)EG. MINUS 1"; 185 [153]"OPEN.8123 ATN0 00 (null)STR$(null) #$00 VERIFY(null)-(null)EG. L(null)SCHEN"; 186 [153]"OPEN.CONT8125OPEN 88 STR$VAL(null) VERIFY(null)-(null)EG. MINUS 1"; 187 [153]"OPEN.8126 LEN0 00 LEN(null)(null) #$00 VERIFY(null) GLEICH 0 ?" 188 [153]"OPEN.8128 STR$0 ASCPEEK PEEK(null)VAL $CONT8125 VERIFY(null)ENN (null) <> 0" 189 [153]"OPEN.812ATN VAL0 00 LEN(null)(null) #$00 VERIFY(null) GLEICH 0 ?" 190 [153]"OPEN.812LEN STR$0 ASC4 PEEK(null)VAL $CONT8122 VERIFY(null)ENN (null) <> 0" 191 [153]"OPEN.812VAL 60 (null)(null)(null) VERIFYVALNDELIST" 192 [153]"VALS HANDELT SICH HIER UM EINE (null)ER-" 193 [153]"SCHACHTELUNG ZWEIER (null)CHLEIFEN. MID$EDESMAL" 194 [153]"WENN MAN DAS (null)-(null)EGISTER UM 1 ERNIEDRIGT" 195 [153]"WIRD DAS (null)-(null)EGISTER 255 MAL UM 1 VER-" 196 [153]"MINDERT. STR$IESE '(null)ARTESCHLEIFE' DAUERT" 197 [153]"SOGAR IN ATNSSEMBLER FAST 1 (null)EKUNDE."; 198 [137]34 199 [158]33184 200 [153]"RIGHT$N PEEKATN(null)RIGHT$LEN KANN DAS VALRSTELLEN VON (null)PRITES" 201 [153]"EINE GANZE (null)EILE DAUERN." 202 [153][163]52)"SYSLEFT$ATN(null)(null)(null)!" 203 [153]"STR$AS FOLGENDE (null)ROGRAMM ZEIGT RIGHT$HNEN, WIE" 204 [153]"(null)IE (null)PRITES IN ATNSSEMBLER ERSTELLEN " 205 [153]"K(null)NNEN." 206 [153]"STR$IE STR$ATEN DES (null)(null)(null)(null)RIGHT$-(null)PRITES ( IN" 207 [153]"PEEKASIC IN STR$ATN(null)ATN-(null)EILEN ABGELEGT ) WURDEN" 208 [153]"WURDEN HIER MIT LEFT$ILFE DES '(null)'-PEEKEFEHLS" 209 [153]"DES (null)(null)(null)VAL(null)(null)(null)(null)RIGHT$(null)(null)(null) 64 ( STR$RIGHT$(null)LEN (null)R.9 ) AB DER"; 210 [153]"ATNDRESSE $8160 IN DEN (null)PEICHER" 211 [153]"GESCHRIEBEN." 212 [161]A$:[139]A$[178]""[167]212 213 [151]53269,0:SE[178]SE[170]1 214 [137]35 215 [153]"LIST(null)U PEEKEGINN MNOTSSEN DIE (null)PRITE-STR$ATEN AB" 216 [153]"DER (null)PEICHERSTELLE $8160 IN EINEN" 217 [153]"GEEIGNETEN (null)PRITEBLOCK GESCHRIEBEN" 218 [153]"WERDEN ( Z.PEEK. PEEKLOCK 13 ):" 219 [153]"CONT. 81ATN0 ATN0 40 (null)STR$(null) #$40" 220 [153]"SYSRIGHT$N DAS (null)-(null)EGISTER WIRD DER (null)ERT $40" 221 [153]"( DEZIMAL 64 ) GESCHRIEBEN.CONT" 222 [153]". 81ATN2 88 STR$VAL(null)" 223 [153]"SYS(null)-(null)EGISTER UM 1 ERNIEDRIGEN." 224 [153]"CONT. 81ATN3 PEEK9 60 81 (null)STR$ATN $8160,(null) 225 PRINT"[158][204][166]DT [201]NHALT DER [193]DRESSE $8160 + [217]-[210]EG." 226 PRINT"IN DEN [193]KKU." 227 PRINT"[154]. 81[193]6 99 40 03 [211][212][193] $0340,[217] 228 [153]"SYS(null)CHREIBT ATNKKUINHALT IN (null)PEICHERSTELLE" 229 [153]"$0340 + (null)-(null)EGISTER ( =PEEKLOCK 13 )." 230 [153]"CONT. 81ATN9 LEN0 00 LEN(null)(null) #$00" 231 [153]"SYS(null)ERGLEICHT (null)-(null)EGISTER MIT $00. PEEKEI" 232 [153]"CHR$LEICHHEIT WIRD DIE (null)ERO-ASCLAGGE GESETZT."; 233 [153]"CONT. 81ATNPEEK STR$0 ASC5 PEEK(null)VAL $81ATN2 234 PRINT"[158][214]ERZWEIGT NACH $81[193]2, FALLS [218]ERO-[198]LAGGE" 235 PRINT"NICHT GESETZT IST.[155]" 236 GOTO34 237 PRINT"[158][193]LLES AUF EINEN [194]LICK:[155]" 238 PRINT". 81[193]0 [193]0 40 [204][196][217] #$40 239 [153]". 81ATN2 88 STR$VAL(null) 240 PRINT". 81[193]3 [194]9 60 81 [204][196][193] $8160,[217] 241 [153]". 81ATN6 99 40 03 (null)(null)ATN $0340,(null) 242 PRINT". 81[193]9 [195]0 00 [195][208][217] #$00 243 [153]". 81ATNPEEK STR$0 ASC5 PEEK(null)VAL $81ATN2 244 PRINT". 81[193][196] [193]9 00 [204][196][193] #$00 245 [153]". 81ATNASC 8STR$ 25 STR$0 (null)(null)ATN $STR$025 246 PRINT". 81[194]2 [193]9 0[197] [204][196][193] #$0[197] 247 [153]". 81PEEK4 8STR$ 21 STR$0 (null)(null)ATN $STR$021 248 PRINT". 81[194]7 8[196] 20 [196]0 [211][212][193] $[196]020 249 [153]". 81PEEKATN ATN9 0STR$ (null)STR$ATN #$0STR$ 250 PRINT". 81[194][195] 8[196] [198]8 07 [211][212][193] $07[198]8 251 [153]". 81PEEKASC ATN9 07 (null)STR$ATN #$07 252 PRINT". 81[195]1 8[196] 27 [196]0 [211][212][193] $[196]027 253 [153]". 81LEN4 ATN9 01 (null)STR$ATN #$01 254 PRINT". 81[195]6 8[196] 1[195] [196]0 [211][212][193] $[196]01[195] 255 [153]". 81LEN9 8STR$ 15 STR$0 (null)(null)ATN $STR$015CLOSE 256 PRINT". 81[195][195] [193]9 50 [204][196][193] #$50 257 [153]". 81LENVAL 8STR$ 00 STR$0 (null)(null)ATN $STR$000 258 PRINT". 81[196]1 8[196] 01 [196]0 [211][212][193] $[196]001 259 [153]". 81STR$4 60 (null)(null)(null) 260 PRINT"[158][214]ERSUCHEN [211]IE DAS [208]ROGRAMM NUN SELBST" 261 PRINT"ZU ERKL[166]REN ![155]"; 262 GETA$:IFA$=""THEN262 263 SYS33184 264 GOTO212 267 PRINT"[154]. 81[193][196] [193]9 00 [204][196][193] #$00 268 [153]". 81ATNASC 8STR$ 25 STR$0 (null)(null)ATN $STR$025 269 PRINT"[158][199]EMEINSAME [211]PRITE-[198]ARBE AUF 0 (=SCHWARZ)"; 270 PRINT"SETZEN. [197]NTSPRICHT [208][207][203][197] 53285,0" 271 PRINT"[154]. 81[194]2 [193]9 0[197] [204][196][193] #$0[197] 272 [153]". 81PEEK4 8STR$ 21 STR$0 (null)(null)ATN $STR$021 273 PRINT". 81[194]7 8[196] 20 [196]0 [211][212][193] $[196]020 274 [153]"SYSSTR$ER LEFT$INTERGRUND UND DER (null)AHMEN WERDEN" 275 [153]"HELLBLAU ( =$0VAL )." 276 [153]"CONT. 81PEEKATN ATN9 0STR$ (null)STR$ATN #$0STR$ 277 PRINT". 81[194][195] 8[196] [198]8 07 [211][212][193] $07[198]8 278 [153]"SYS(null)PRITEZEIGER AUF PEEKLOCK 13 SETZEN, WIE" 279 [153]"(null)(null)(null)VAL 2040,13." 280 [153]"CONT. 81PEEKASC ATN9 07 (null)STR$ATN #$07 281 PRINT". 81[195]1 8[196] 27 [196]0 [211][212][193] $[196]027 282 [153]"SYSSTR$IE (null)PRITE-ASCARBE AUF 7 ( =GELB ) SETZEN." 283 [137]34 284 [153]"CONT. 81LEN4 ATN9 01 (null)STR$ATN #$01 285 PRINT". 81[195]6 8[196] 1[195] [196]0 [211][212][193] $[196]01[195]" 286 PRINT". 81[195]9 8[196] 15 [196]0 [211][212][193] $[196]015" 287 PRINT"[158][196]AS [211]PRITE 1 WIRD AUF [205]ULTICOLOR GE-" 288 PRINT"SETZT UND ANGESCHALTET." 289 PRINT"[197]NTSPRICHT [208][207][203][197] 53276,1:[208][207][203][197] 53269,1." 290 PRINT"[154]. 81[195][195] [193]9 50 [204][196][193] #$50" 291 PRINT". 81[195][197] 8[196] 00 [196]0 [211][212][193] $[196]000" 292 PRINT". 81[196]1 8[196] 01 [196]0 [211][212][193] $[196]001" 293 PRINT"[158][196]IE BEIDEN [211]PRITE-[203]OORDINATEN WERDEN" 294 PRINT"AUF $50 ( DEZIMAL 80 ) GESTELLT." 295 PRINT"[154]. 81[196]4 60 [210][212][211]" 296 PRINT"[158][194]EENDET DAS [208]ROGRAMM.[155]" 297 GOTO34 298 PRINT"[215]IE IN UNSEREN [194]EISPIELEN WIRD AUCH IN" 299 PRINT"DER [208]RAXIS MEISTENS MIT [194][197][209]/[194][206][197] " 300 PRINT"VERZWEIGT." 301 PRINT"[211]O WIE DIESE BEIDEN [194]EFEHLE AUF " 302 PRINT"[199]LEICHHEIT/[213]NGLEICHHEIT REAGIEREN," 303 PRINT"VERZWEIGT Z.[194] DER [194][195][195]-[194]EFEHL WENN DER" 304 PRINT"ERSTE [215]ERT [203][204][197][201][206][197][210] [193][204][211] DER ZWEITE IST." 305 PRINT"[196]ER [194][195][211]-[194]EFEHL WIRKT WIEDER ENTGEGEN-" 306 PRINT"GESETZT ( [199][210][221]\[197][210] [207][196][197][210] [199][204][197][201][195][200] )." 307 GOTO34 308 X=X+1 309 GETA$:IFA$<"0"ORA$>"1"THEN309 310 IFA$="0"ANDA(X)=0THENPRINT"0[210]ICHTIG":GOTO314 311 IFA$="1"ANDA(X)=1THENPRINT"1[210]ICHTIG":GOTO314 312 PRINT""A$"[198]ALSCH !" 314 RETURN 315 GETA$ 316 IFSE>16THENSE=0:RETURN 317 IFA$=" "THENSE=SE+1:RETURN 318 IFSE<0THENSE=0:RETURN 319 IFA$="[133]"THENSE=SE-1:RETURN 320 IFA$="[136]"THENSE=0:RETURN 321 GOTO315