r+autocr_www.tap
r+autocr_www.z80
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)

   10 WINDOW:PAPER 5:BORDER 5:INK 8:CLS:PRINT AT(0,0);" "
   20 PRINT AT(5,6);"HEIMCOMPUTER  robotron Z9001"
   30 PRINT AT(9,16);"R+AUTOCR"
   40 PRINT AT(12,8);"REAKTIONSSPIEL AUTOCROSS"
   60 PRINT AT(17,27);">ENTER<":IF INKEY$<>CHR$(13)THEN 60
   70 REM Breitschuh,19.9.84
  360 SF=52:AF=20:KS=32:KF=16
  370 ZF=32:SS=52:WF=1
  380 SB=-5120:SA=-6144
  390 Z=40:ZZ=24:B=199:ZI=161:AQ=205:AL=206
  400 S=SB:E=S+ZZ*Z-1:S4=S+3*Z:A=AQ
  410 TY=0:PY=0:YN=0
  420 BORDER 1:DI=SB-SA:WINDOW 0,23,0,39
  460 DATA 245,197,213,175,17,0,0,14,22,205,5,0,209,193,241,201 
  470 RESTORE 460:Y=560:GOSUB 510
  490 DATA 213,197,14,24,17,14,236,205,5,0,193,209,201,0,0,0
  500 RESTORE 490:Y=576:GOSUB 510:GOTO 860
  510 FOR I=0 TO 15
  520 READ X:POKE Y+I,X
  530 NEXT
  540 RETURN
  620 Y$=INKEY$
  630 IF LEN(Y$)=0 GOTO 620
  640 RETURN
  860 INK 4:PAPER 5:WINDOW:CLS
  870 PRINT AT(4,2);"START "
  880 POKE SA+4*Z+9,AF
  890 PRINT AT(22,32);" ZIEL ":POKE E-Z+1,32
  900 POKE E-Z-7-DI,ZF
  910 FOR I=0 TO 10
  920 POKE S4+2*Z+I,B:POKE E-2*Z-I,B
  930 NEXT
  940 FOR I=0 TO Z-1
  950 POKE S4+I,B:POKE E-I,B
  960 NEXT
  970 FOR I=0 TO 20
  980 POKE S4+I*Z,B:POKE E-I*Z,B
  990 NEXT
 1000 GOSUB 2660
 1010 POKE E-Z,B
 1020 IF YN=1 GOTO 1070
 1030 PRINT AT(1,1);"STANDARDSTRECKE FAHREN: (J)/N"
 1040 GOSUB 620
 1050 PRINT AT(1,31);Y$
 1060 IF Y$="N"GOTO 1500
 1070 GOSUB 2660:PRINT AT(1,1);"STANDARDSTRECKE FUER ANFAENGER: (J)/N" 
 1080 GOSUB 620
 1090 PRINT AT(1,39);Y$
 1110 FOR I=0 TO 8
 1120 POKE S+7*Z+19+I,B:POKE S+8*Z+7+I,B:POKE S+11*Z+1+I,B
 1130 POKE S+11*Z+23+I,B:POKE S+15*Z+7+I,B:POKE S+15*Z+19+I,B
 1140 POKE S+19*Z+1+I,B:POKE S+19*Z+23+I,B
 1150 NEXT
 1160 FOR I=0 TO 16
 1170 POKE S+(4+I)*Z+15,B:POKE S+(7+I)*Z+19,B
 1180 NEXT
 1190 FOR I=0 TO 13
 1200 POKE S+(4+I)*Z+31,B
 1210 NEXT
 1220 IF Y$<>"N"GOTO 1710
 1240 SX=S+4*Z:POKE SX+19,B:POKE SX+25,B
 1250 POKE S+5*Z+23,B:POKE S+9*Z+16,B
 1260 SX=S+6*Z:POKE SX+19,B:POKE SX+25,B
 1270 POKE S+7*Z+17,B:POKE S+8*Z+25,B:POKE S+10*Z+25,B
 1280 SX=S+12*Z:POKE SX+8,B:POKE SX+25,B
 1290 POKE S+14*Z+25,B
 1300 POKE S+15*Z+17,B
 1310 POKE S+16*Z+25,B
 1320 SX=S+19*Z:POKE SX+18,B:POKE SX+20,B
 1330 POKE S+20*Z+12,B
 1340 POKE S+22*Z+15,B
 1350 FOR I=0 TO 1
 1360 POKE S+(16+I)*Z,B
 1370 POKE S+15*Z+35+I,B:POKE S+19*Z+32+I,B:POKE S+19*Z+21+I,B
 1380 NEXT
 1390 FOR I=0 TO 4
 1400 POKE S+8*Z+I,B:POKE S+11*Z+11+I,B:POKE S+11*Z+17+I,B
 1410 POKE S+15*Z+I,B:POKE S+19*Z+12+I,B
 1420 POKE S+21*Z+8+I,B
 1430 POKE S+11*Z+31+I,B:POKE S+(15+I)*Z+34,B
 1440 NEXT
 1450 FOR I=0 TO 13
 1460 POKE S+(6+I)*Z+37,B
 1470 NEXT
 1480 GOTO 1710
 1500 GOSUB 2660
 1520 PRINT AT(0,1);"STRECKE BAUEN MIT SPIELHEBEL/TASTATUR"
 1530 PRINT AT(1,1);"BELEGEN FELD :AKTION ODER TASTE'.'"
 1540 PRINT AT(2,1);"LOESCHEN FELD:SPACE       ENDE:ENTER"
 1550 P=S+13*Z+17:POKE P,B:POKE P-DI,KF
 1560 L=P:Y=32:PAUSE 30
 1570 GOSUB 2720
 1580 IF W0>=128 THEN W=32:GOTO 1630
 1590 IF W0>=64 THEN W=B:GOTO 1630
 1600 IF W0>=32 THEN GOSUB 1670:GOTO 1710
 1610 IF W0>=16 THEN W=B:GOTO 1630
 1620 W=Y:
 1630 P=P+X:Y=PEEK(P)
 1640 IF P<SB+4*Z+10 OR P>E-Z-8 THEN P=L:GOTO 1570
 1650 POKE P,B:POKE P-DI,KF:POKE L,W:POKE L-DI,SF
 1660 L=P:GOTO 1570
 1670 PAUSE 10
 1690 RETURN
 1710 GOSUB 2660:Y$=""
 1730 PRINT AT(1,1);"GESCHWINDIGKEITSSTUFE: (1..3)"
 1740 GOSUB 620
 1750 G$=Y$
 1760 IF ASC(G$)=13 GOTO 1740
 1770 G$=LEFT$(G$,1):PRINT AT(1,39);G$
 1780 IF G$<"1" OR G$>"3"GOTO 1710
 1790 PAUSE 5
 1810 GOSUB 2660
 1820 PRINT AT(0,1);"AUTO MIT SPIELHEBEL STEUERN"
 1830 POKE S4+Z+9,AQ:POKE S4+Z+10,ZI
 1840 PRINT AT(1,1);"BEREIT ZUM START? ENTER":GOSUB 620
 1850 POKE S+2*Z,32
 1870 GOSUB 2660
 1880 PRINT " FAHRZEIT    :          BEI GESCHW.";G$
 1890 PRINT " KARAMBOLAGEN:     "
 1900 POKE S+2*Z,32:POKE SA+2*Z,KF
 1910 CALL*230
 1920 POKE S4+Z+10,32:POKE S4+Z+10-DI,SF
 1930 POKE E-Z-8,32:POKE E-Z-8-DI,SF
 1940 P=S4+Z+9:A=AQ:L=P:K=0:X=0
 1950 CALL*240
 1960 GOSUB 2720
 1970 IF P1=0 GOTO 1950
 1980 P=P+X
 1990 IF ABS(X)=40 THEN A=AL:GOTO 2010
 2000 A=AQ
 2010 IF PEEK(P)=ZI GOTO 2280
 2020 IF PEEK(P)<>32 GOTO 2190
 2030 POKE P,A:POKE P-DI,AF
 2040 POKE L,32:POKE L-DI,SF
 2050 L=P
 2070 FOR I=0 TO(3-VAL(G$))*30
 2080 NEXT
 2090 GOTO 1950
 2100 PAUSE 5:Y$=INKEY$
 2110 PRINT INK 3;AT(2,10);"AUSWERTUNG NACH ENTER":GOSUB 620
 2120 POKE E-Z-7-DI,ZF:GOTO 2360
 2130 GOSUB 2660:PRINT AT(1,1);"STRECKE BEIBEHALTEN: (J)/N":GOSUB 620
 2140 IF Y$="N"THEN TY=0:PY=0:GOTO 2160
 2150 TY=1:GOTO 1710
 2160 PRINT AT(1,1);"STRECKE SELBST VORGEBEN: (J)/N":GOSUB 620
 2170 IF Y$="N" THEN YN=1:GOTO 860
 2180 Y$=INKEY$:GOTO 1500
 2190 Y=PEEK(P):YF=PEEK(P-DI):K=K+1
 2200 POKE P,42:BEEP
 2210 POKE P-DI,KS
 2220 PAUSE 3
 2240 POKE P,Y:POKE P-DI,YF
 2250 P=P-X
 2260 PRINT AT(1,14);K:POKE S+2*Z,32 
 2270 GOTO 1950
 2280 BEEP:BEEP:BEEP:BEEP:BEEP:BEEP:BEEP:BEEP:BEEP:BEEP:POKE E-Z-7-DI,ZF+128
 2290 S=SB
 2300 ZE=(PEEK(S+17)-48)*10
 2310 ZE=(ZE+PEEK(S+18)-48)*60
 2320 ZE=ZE+(PEEK(S+20)-48)*10
 2330 ZE=ZE+PEEK(S+21)-48
 2340 F1=5:F2=10
 2350 PZ=1000-INT((ZE+K/VAL(G$)*F1)*F2):GOTO 2100
 2360 GOSUB 2660
 2370 IF PZ<0 GOTO 2390
 2380 PRINT AT(0,0);" SIE HABEN",PZ,"PUNKTE ERREICHT":GOTO 2400
 2390 PRINT AT(1,1);" SIE WURDEN DISQUALIFIZIERT!":GOTO 2450
 2400 IF TY=0 THEN PY=PZ:GOTO 2450
 2410 IF PZ>=PY THEN PRINT AT(1,0);" DAS IST BISHERIGE SPITZENLEISTUNG!":GOTO 2430
 2420 GOTO 2440
 2430 PY=PZ:GOTO 2450
 2440 PRINT AT(1,0);" DIE BISHERIGE SPITZE LIEGT BEI",PY
 2450 PRINT INK 3;AT(2,4);"NOCH EINE FAHRT: (J)/N":GOSUB 620
 2460 IF Y$="N"THEN WINDOW:CLS:GOTO 2570
 2470 GOTO 2130
 2570 WINDOW 10,13,10,29:INK 1:PAPER 2:CLS:POKE SA+10*Z+10,WF
 2610 PRINT AT(11,12);"AUF WIEDERSEHEN"
 2620 PRINT AT(12,17);"* * *"
 2630 FOR I=0 TO 1000
 2640 NEXT
 2650 PAPER 1:WINDOW:INK 3:BORDER 1:CLS:END
 2660 REM KF.LOESCH.
 2670 INK 2:PAPER 1:WINDOW 0,2,0,39:CLS:POKE SA,KF:RETURN
 2720 REM SH-ABFR.
 2730 P1=JOYST$(1):W0=P1:X=0
 2740 P1=W0 AND 15
 2750 IF P1=0 THEN RETURN
 2760 ON P1 GOTO 2770,2780,2730,2790,2800,2810,2730,2820,2830,2840
 2770 X=-1:RETURN
 2780 X=1:RETURN
 2790 X=Z:RETURN
 2800 X=Z-1:RETURN
 2810 X=Z+1:RETURN
 2820 X=-Z:RETURN
 2830 X=-Z-1:RETURN
 2840 X=-Z+1:RETURN