0 CODE=7*4096:VARS=5*4096+6*256:GX=196 1 SYS CODE,10:SYS CODE,11,0,0,20,9 2 POKE 53269,PEEK(53269)OR12:POKE 53252,GX:POKE 53253,176:POKE 56322,224 3 SYS CODE,3:FOR I=1024+23*40 TO 1024+25*40-1:POKE I,96:NEXT I 4 FOR I=1833 TO 1848:POKE I,96:NEXT:SYS CODE,6,5:POKE 50170,56:POKE 50171,60 5 POKE 53276,PEEK(53276)OR12 6 POKE 53285,6:POKE 53286,15 7 POKE 53289,14:POKE 53290,14 8 POKE CODE+7,PEEK(CODE+7)OR8 9 GOSUB 5000:MN=0:GOSUB 4000 10 S$(0)=" [176][195][195][195][195][195][195][195][174] [214][174]" 20 S$(1)=" [194] [214] [194] [176][195][195][195][174] [194]" 30 S$(2)="[176][189] [194][176][178][195][219][195][195][195][189] [194] [194]" 40 S$(3)="[194] [214][176][195][177][189][194] [194] [194] [194]" 50 S$(4)="[194] [194][194] [194] [173][174] [194] [194]" 60 S$(5)="[194] [171][179] [194] [194] [171][195][179]" 70 S$(6)="[194] [194][194] [194] [176][177][178][195][174] [194] [194]" 80 S$(7)="[194] [194][173][195][178][195][177][195][189] [194] [173][195][195][195][189] [194]" 90 S$(8)="[173][195][189] [214] [214] [214][189]" 95 SP=0:GA=0:DR=0:JF=0 96 DR$="160520052405280532053605001004100810121016102010" 97 KM$="00000400080012001600200024002800320036000005040508051205" 100 X=11:Y=8:L$="+Y":TR$="":D=1:TT=0 110 XA=11:YA=8:DR=0:KM=0:VR=0:VA=0 140 GOSUB 1320 150 REM *** NEUE RICHTUNG HOLEN *** 160 GOSUB 770 170 IF D=0 THEN GOTO 680 180 J=PEEK(56320) 185 IF (J AND 1)=0 THEN K$="W" 188 IF (J AND 2)=0 THEN K$="Z" 190 IF (J AND 4)=0 THEN K$="A" 192 IF (J AND 8)=0 THEN K$="S" 195 IF J=127 THEN 180 200 TR$=TR$+K$:TA=1:TM=LEN(TR$) 210 GOSUB 720:M$="" 220 REM *** SACKGASSE *** 230 IF A$<>"[214]" THEN 280 240 R$=RIGHT$(L$,1) 250 L$=LEFT$(L$,1)+"1":Z=VAL(L$) 260 IF Z>0 THEN M$="-"+R$ 270 IF Z<0 THEN M$="+"+R$ 280 IF M$="+X" THEN K$="S" 290 IF M$="-X" THEN K$="A" 300 IF M$="+Y" THEN K$="Z" 310 IF M$="-Y" THEN K$="W" 320 REM *** BEWEGUNG *** 330 IF K$="A" THEN GOSUB 440 340 IF K$="S" THEN GOSUB 500 350 IF K$="W" THEN GOSUB 560 360 IF K$="Z" THEN GOSUB 620 370 GOSUB 1100 380 IF X=XA AND Y=YA AND D=1 THEN D=0:MN=1:GOSUB 4000:GOTO 150 381 IF X<>XA OR Y<>YA THEN 390 382 IF VR/VA<=9 THEN 385 383 MN=6:GOSUB 4000:MN=7:GOSUB 4000:GOTO 386 385 MN=4:GOSUB 4000:MN=5:GOSUB 4000 386 END:SYS CODE,1,"L.ABRECH",8 390 REM *** BIS NAECHSTE ABZWEIGUNG *** 400 GOSUB 720 410 IF A$="[171]" OR A$="[179]" OR A$="[177]" OR A$="[178]" OR A$="[219]" THEN 150 420 IF A$="[194]" OR A$="[195]" THEN 220 430 GOSUB 1200 : GOTO 220 440 REM *** NACH LINKS FAHREN 450 IF A$="[176]" THEN 620 460 IF A$="[173]" THEN 560 470 IF A$="[195]" OR A$="[219]" OR A$="[174]" OR A$="[189]" THEN M$="-X" 480 IF A$="[179]" OR A$="[177]" OR A$="[178]" THEN M$="-X" 490 RETURN 500 REM *** NACH RECHTS FAHREN 510 IF A$="[174]" THEN 620 520 IF A$="[189]" THEN 560 530 IF A$="[195]" OR A$="[219]" OR A$="[176]" OR A$="[173]" THEN M$="+X" 540 IF A$="[171]" OR A$="[177]" OR A$="[178]" THEN M$="+X" 550 RETURN 560 REM *** NACH OBEN FAHREN 570 IF A$="[176]" THEN 500 580 IF A$="[174]" THEN 440 590 IF A$="[194]" OR A$="[219]" OR A$="[173]" OR A$="[189]" THEN M$="-Y" 600 IF A$="[177]" OR A$="[171]" OR A$="[179]" THEN M$="-Y" 610 RETURN 620 REM *** NACH UNTEN FAHREN 630 IF A$="[173]" THEN 500 640 IF A$="[189]" THEN 440 650 IF A$="[194]" OR A$="[219]" OR A$="[176]" OR A$="[174]" THEN M$="+Y" 660 IF A$="[178]" OR A$="[171]" OR A$="[179]" THEN M$="+Y" 670 RETURN 680 IF TA>TM THEN 710 690 K$=MID$(TR$,TA,1) 700 TA=TA+1:GOTO 210 710 POKE 56322,255:END 720 : 730 REM *** HOLE AKTUELLES ELEMENT 740 : 750 A$=MID$(S$(Y),X+1,1) 760 RETURN 770 : 780 REM *** SETZE AUTO 790 : 845 IF D=0 THEN 920 850 FOR HT=0 TO ZA-1 860 IF H(0,HT)=X-1 AND H(1,HT)=Y THEN 895 870 IF H(0,HT)=X+1 AND H(1,HT)=Y THEN 895 880 IF H(0,HT)=X AND H(1,HT)=Y-1 THEN 895 890 IF H(0,HT)=X AND H(1,HT)=Y+1 THEN 895 891 NEXT HT 892 RETURN 895 H(2,HT)=1:SYS CODE,23,8,2,H(0,HT)*2,H(1,HT)*2,2,2 900 GOTO 891 920 FOR HT=0 TO ZA-1 930 IF H(0,HT)=X-1 AND H(1,HT)=Y THEN 985 940 IF H(0,HT)=X+1 AND H(1,HT)=Y THEN 985 950 IF H(0,HT)=X AND H(1,HT)=Y-1 THEN 985 960 IF H(0,HT)=X AND H(1,HT)=Y+1 THEN 985 970 NEXT HT 980 RETURN 985 H(2,HT)=2:SYS CODE,23,8,4,H(0,HT)*2,H(1,HT)*2,2,2 986 GOTO 970 1100 : 1110 REM *** AUTO BEWEGEN 1120 : 1130 IF M$="" THEN RETURN 1140 L$=M$ 1150 R$=RIGHT$(M$,1) 1160 Z=VAL(LEFT$(M$,1)+"1") 1170 IF R$="X" THEN X=X+Z 1180 IF R$="Y" THEN Y=Y+Z 1185 GOSUB 2000 1190 GOTO 770 1200 : 1210 REM *** KURVEN 1220 : 1230 IF A$="[176]"ANDM$="-X" THEN M$="+Y" 1240 IF A$="[176]"ANDM$="-Y" THEN M$="+X" 1250 IF A$="[174]"ANDM$="+X" THEN M$="+Y" 1260 IF A$="[174]"ANDM$="-Y" THEN M$="-X" 1270 IF A$="[173]"ANDM$="+Y" THEN M$="+X" 1280 IF A$="[173]"ANDM$="-X" THEN M$="-Y" 1290 IF A$="[189]"ANDM$="+X" THEN M$="-Y" 1300 IF A$="[189]"ANDM$="+Y" THEN M$="-X" 1310 RETURN 1320 : 1330 REM *** HAEUSER HIGHLIGHTEN 1340 : 1345 DIM H(3,17) 1350 ZA=0:ZE=INT(RND(0)*16)+1 1360 RESTORE 1370 FOR I=0 TO 16 1380 READ X1,Y1 1390 IF RND(0)<.5 THEN 1430 1400 H(0,ZA)=X1:H(1,ZA)=Y1:H(2,ZA)=0 1405 SYS CODE,23,8,0,X1*2,Y1*2,2,2 1410 ZA=ZA+1 1420 IF ZA=ZE THEN RETURN 1430 NEXT I 1440 GOTO 1360 1450 DATA 01,04 1451 DATA 01,06 1452 DATA 01,07 1453 DATA 02,02 1454 DATA 04,05 1455 DATA 04,06 1456 DATA 06,05 1457 DATA 07,01 1458 DATA 10,03 1459 DATA 11,04 1460 DATA 11,05 1461 DATA 18,07 1462 DATA 18,06 1463 DATA 18,04 1464 DATA 18,02 1465 DATA 18,01 1466 DATA 07,08 2000 : 2010 REM *** MOVE *** 2020 : 2030 IF M$="+X" THEN DX=8:DY=0:POKE 50170,55 2040 IF M$="-X" THEN DX=-8:DY=0:POKE 50170,55 2050 IF M$="+Y" THEN DX=0:DY=8:POKE 50170,56 2060 IF M$="-Y" THEN DX=0:DY=-8:POKE 50170,56 2070 : 2080 FOR C=0 TO 1 2082 IF C=0 THEN GOSUB 5000 2085 GX=GX+DX 2090 POKE 53252,GX AND 255 2095 POKE CODE+7,INT(GX/255)*4+8 2100 POKE 53253,PEEK(53253)+DY 2110 IF D=1 THEN 2170 2120 GOSUB 3000 2130 VZ=(INT(SP/40)-5)*-1 2140 GOSUB 3000 2150 VZ=VZ-1 2160 IF VZ>=0 THEN 2140 2170 NEXT C 2180 RETURN 3000 : 3010 REM *** JOYSTICK *** 3020 : 3030 J=PEEK(56320) 3040 IF (J AND 16)<>0 THEN 3120 3050 DR=DR+1000 3060 IF DR>=10000 THEN DR=10000 3070 IF (J AND 1)=0 AND JF=0 THEN JF=1:GOTO 3140 3080 IF (J AND 1)=0 AND JF=1 THEN JF=0:GA=GA+1:IF GA>5 THEN GA=5 3090 IF (J AND 2)=0 AND JF=0 THEN JF=2:GOTO 3140 3100 IF (J AND 2)=0 AND JF=2 THEN JF=0:GA=GA-1:IF GA<0 THEN GA=0 3110 GOTO 3140 3120 DR=DR-1000 3130 IF DR<0 THEN DR=0 3140 SP=DR/210*GA:VR=VR+INT(DR/666):VA=VA+1 3150 IF SP=0 THEN 3030 3160 RETURN 4000 : 4010 REM *** MESSAGE AUSGEBEN *** 4020 : 4030 SYS CODE,3 4040 IF MN=0 THEN GOSUB 4100 4041 IF MN=1 THEN GOSUB 4200 4042 IF MN=2 THEN GOSUB 4300 4043 IF MN=3 THEN GOSUB 4400 4044 IF MN=4 THEN GOSUB 4500 4045 IF MN=5 THEN GOSUB 4600 4046 IF MN=6 THEN GOSUB 4700 4047 IF MN=7 THEN GOSUB 4800 4048 IF MN=8 THEN GOSUB 4900 4050 SYS CODE,6,5 4055 FOR W=0 TO 400 4060 IF (PEEK(56320)AND16)<>0 THEN NEXT 4070 FOR I=1024+23*40 TO 1024+25*40-1:POKE I,96:NEXT I:SYS CODE,6,5:RETURN 4100 PRINT "BELIEFERN[160]SIE[160]IHRE[160]KUNDEN![160]LEGEN[160]SIE" 4110 PRINT "BITTE[160]EINE[160]ENTSPRECHENDE[160]STRECKE[160]FEST.."; 4120 RETURN 4200 PRINT "BELIEFERN[160]SIE[160]IHRE[160]KUNDEN![160]FAHREN[160]SIE" 4210 PRINT "M*GLICHST[160]ENERGIESPAREND..."; 4220 RETURN 4300 PRINT "SIE[160]HABEN[160]LEIDER[160]NICHT[160]GEN^GEND" 4310 PRINT "TREIBSTOFF,[160]UM[160]DIESE[160]STRECKE[160]ZU[160]FAHREN!"; 4320 RETURN 4400 PRINT "DIE[160]BESTELLUNGEN[160]SIND[160]KALT[160]GEWORDEN!" 4410 PRINT "SIE[160]M^SSEN[160]SIE[160]WIEDER[160]MITNEHMEN!"; 4420 RETURN 4500 PRINT "SEHR[160]GUT![160]SIE[160]SIND[160]BESONDERS[160]ENERGIE-" 4510 PRINT "SPAREND[160]GEFAHREN!...WEITER"; 4520 RETURN 4600 PRINT "DURCH[160]IHREN[160]FAHRSTIL[160]SCHONEN[160]SIE[160]DIE" 4610 PRINT "UMWELT[160]UND[160]SPAREN[160]GLEICHZEITIG[160]GELD!"; 4620 RETURN 4700 PRINT "SIE[160]SOLLTEN[160]IHRE[160]FAHRWEISE[160]^BERDENKEN!" 4710 PRINT "AUFGRUND[160]IHRES...WEITER"; 4720 RETURN 4800 PRINT "AGGRESSIVEN[160]FAHRSTILS[160]BELASTEN[160]SIE[160]DIE" 4810 PRINT "UMWELT[160]DURCH[160]ERH*HTEN[160]ENERGIEVERBRAUCH!"; 4820 RETURN 4900 PRINT "SIE[160]SOLLTEN[160]IHRE[160]ROUTE[160]SO[160]W@HLEN,[160]DA\" 4910 PRINT "SIE[160]IHRE[160]KUNDEN[160]BELIEFERN[160]K*NNEN!"; 4920 RETURN 5000 : 5010 REM *** DISPLAY REFRESHEN *** 5020 : 5025 IF SP<80 THEN TT=TT+1 5026 IF TT<20 THEN 5030 5027 MN=3:GOSUB 4000:GOTO 1 5030 X$=MID$(KM$,INT(SP/19)*4+1,4) 5040 KX=VAL(LEFT$(X$,2)) 5050 KY=VAL(RIGHT$(X$,2)) 5060 X$=MID$(DR$,INT(DR/1000)*4+1,4) 5070 RX=VAL(LEFT$(X$,2)) 5080 RY=VAL(RIGHT$(X$,2)) 5090 SYS CODE,23,KX,KY+10,2,18,4,5 5100 SYS CODE,23,RX,RY+10,27,18,4,5 5101 FOR I=1 TO 15 5102 IF INT(DR/666)>=I THEN POKE 56104+I,7:GOTO 5104 5103 POKE 56104+I,0 5104 NEXT I 5110 IF GA=0 THEN POKE 53254,33:POKE 53255,203:RETURN 5120 IF GA=1 THEN POKE 53254,20:POKE 53255,196:RETURN 5130 IF GA=2 THEN POKE 53254,20:POKE 53255,212:RETURN 5140 IF GA=3 THEN POKE 53254,31:POKE 53255,196:RETURN 5150 IF GA=4 THEN POKE 53254,31:POKE 53255,212:RETURN 5160 IF GA=5 THEN POKE 53254,42:POKE 53255,196:RETURN 5170 RETURN