Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)
0 A1$="HEIMCOMPUTER robotron Z9001"
2 A2$="SPIELE":A9=2
4 A3$="X+CATLAB"
6 A4$="KATZENLABYRINTH"
8 A5$="EIN REAKTIONS-SPIEL"
10 REM VERFASSER:SCHROETER
12 REM ANSCHRIFT:MKD,DTW
14 REM DATUM 07.09.1984 VERSION 2.0
16 REM INITIALWERTE =================IN
18 BORDER A9:INK 8:PAPER 1:WINDOW:CLS
20 L=500:DIM M(4),N(4),R(4),X(14),Y(14):GOTO 10000
90 GOSUB 100:GOTO 1000
96 REM UNTERPROGRAMME ===============UP
98 REM TITELBILD --------------------UP
100 PRINT AT(2,2);A1$:PRINT AT(4,2);"",STRING$(34,""),""
102 PRINT AT(5,2);"":PRINT AT(5,37);""
104 PRINT AT(6,2);"",STRING$(34,""),""
106 PRINT AT(5,3);A2$:PRINT INK 3;AT(5,29);A3$
108 INK A9:PRINT AT(8,2);STRING$(36,"")
110 FOR I=9 TO 13:PRINT AT(I,2);"":PRINT AT(I,37);"":NEXT I
112 PRINT AT(14,2);STRING$(36,"")
114 INK 8:PRINT AT(10,36-LEN(A4$));A4$:PRINT AT(12,36-LEN(A5$));A5$
116 INK 3:PRINT AT(18,2);"VEB ROBOTRON-MESSELEKTRONIK"
118 PRINT AT(20,2);">OTTO SCHOEN< DRESDEN":INK 8
119 REM >ENTER< ---------------------UP
120 PRINT INK 4;AT(22,31);">ENTER<"
122 T$=INKEY$:IF T$=""THEN 122
124 IF T$=CHR$(13)THEN PRINT AT(20,27);STRING$(11," "):RETURN
126 GOSUB 130:GOTO 122
129 REM WIE BITTE ? -----------------UP
130 PRINT INK 2;AT(20,27);"WIE BITTE ?":RETURN
149 REM J/N ABFRAGE -----------------UP
150 PRINT INK 4;AT(22,(34-LEN(KY$)));KY$," ? J"
152 T$=INKEY$:IF T$=""THEN 152
153 PRINT INK 2;AT(22,37);T$
154 IF ASC(T$)=74 OR ASC(T$)=13 THEN T=1:PRINT AT(20,27);STRING$(11," "):RETURN
156 IF ASC(T$)=78 THEN T=2:PRINT AT(20,27);STRING$(11," "):RETURN
158 GOSUB 130:PAUSE 10:GOTO 150
199 REM MIN-STEPS PRINTEN -----------UP
200 PRINT INK 3;AT(12,36);"MIN":PRINT INK 3;AT(13,35);"STEPS"
202 PRINT INK 2;AT(15,35);L:RETURN
1000 WINDOW:BORDER 1:PAPER 1:CLS:INK 7
1010 PRINT INK 4;AT(0,2);STRING$(32,"")
1020 PRINT AT(1,3);" "
1030 PRINT AT(2,3);" "
1040 PRINT AT(3,3);" "
1050 PRINT AT(4,3);" "
1060 PRINT AT(5,3);" "
1070 PRINT AT(6,3);" "
1080 PRINT AT(7,3);" "
1090 PRINT AT(8,3);" "
1100 PRINT AT(9,3);" "
1110 PRINT AT(10,3);" "
1120 PRINT AT(11,3);" "
1130 PRINT AT(12,3);" "
1140 PRINT AT(13,3);" "
1150 PRINT AT(14,3);" "
1160 PRINT AT(15,3);" "
1170 PRINT AT(16,3);" "
1180 PRINT AT(17,3);" "
1190 PRINT AT(18,3);" "
1200 PRINT AT(19,3);" "
1210 PRINT AT(20,3);" "
1220 PRINT AT(21,3);" "
1230 PRINT AT(22,3);" "
1240 PRINT INK 4;AT(23,2);STRING$(30,"")," "
1244 WINDOW 1,23,2,2:PRINT INK 4;STRING$(22,"");:PRINT INK 3;AT(4,35);"STEPS"
1246 WINDOW 1,23,33,33:PRINT INK 4;STRING$(22,"");:WINDOW:PRINT AT(0,0);" "
1248 RM=5:PRINT INK 2;AT(22,35);"*****":GOSUB 200
1265 X=25:RESTORE 1800:FOR I=1 TO 14:READ X(I):READ Y(I):NEXT I:K=0
1280 FOR I=1 TO 4:R(I)=I-1
1290 J=INT(14*RND(1)+1):M(I)=X(J):N(I)=Y(J)
1310 IF PEEK(-5120+M(I)*40+N(I))<>255 THEN 1290
1320 IF X<24 THEN 1480
1330 NEXT I
1370 X=1:Y=3:PRINT INK 2;AT(X,Y);"*"
1380 FOR I=1 TO 4
1390 POKE-5120+40*M(I)+N(I),255
1400 O=M(I)+(R(I)=1)-(R(I)=3)
1410 P=N(I)+(R(I)=2)-(R(I)=0)
1420 XX=-5120+40*M(I)+N(I):IF PEEK(-5120+40*O+P)=255 THEN 1460
1422 J=1:IF PEEK(XX-40)=255 THEN P(J)=1:J=J+1
1423 IF PEEK(XX+40)=255 THEN P(J)=3:J=J+1
1424 IF PEEK(XX-1)=255 THEN P(J)=2:J=J+1
1425 IF PEEK(XX+1)=255 THEN P(J)=0:J=J+1
1440 IF RND(1)<.05 OR J=1 THEN 1290
1445 R(I)=P((J-1)*RND(1)+1)
1450 GOTO 1400
1460 M(I)=O
1470 N(I)=P
1480 PRINT PAPER 5;AT(M(I),N(I));""
1490 NEXT I
1500 POKE 16383,0
1510 CALL*4000
1520 B=PEEK(36)
1530 O=X-(B=10)+(B=11)
1540 P=Y-(B=9)+(B=8)
1550 POKE(-5120+40*X+Y),32
1560 K=K+1:PRINT INK 2;AT(6,35);K
1570 IF PEEK(16383)<>1 AND PEEK(-5120+40*O+P)=32 THEN 1580
1572 RM=RM-1:PRINT AT(22,35+RM);" ":IF RM<>0 THEN BEEP:GOTO 1370
1574 FOR I=1 TO 3:BEEP:PAUSE 8:NEXT I:GOTO 1672
1580 X=O:Y=P
1590 PRINT INK 2;AT(O,P);"*"
1600 IF X<>23 THEN 1380
1610 IF K<L THEN L=K
1670 GOSUB 200
1672 IF INKEY$<>CHR$(13)THEN 1672
1740 GOTO 1000
1800 DATA 8,12,9,8,4,16,6,17,4,22,11,12,10,20,14,21,16,21,15,25,11,24,12,29
1802 DATA 18,25,21,29
10000 REM BASIC-LADER 01
10010 DATA 0,33,0,236,62,42,35,190,32,252,17,40,0,62,139,25,190,40,19,167
10020 DATA 237,82,237,82,190,40,11,25,35,190,40,6,43,43,190,40,1,201,33
10030 DATA 255,63,54,1,201
10040 RESTORE 10010:S=0:FOR I=16383 TO 16426:READ J:POKE I,J:S=S+J:NEXT I
10042 CLS
10050 IF S<>3881 THEN PRINT AT(3,2);"DATENFEHLER!":PRINT AT(5,2);"BITTE NEU LADEN !":END
10055 PRINT:PRINT:PRINT " BITTE MIT >RUN< STARTEN !":PRINT:PRINT
10060 DELETE 10010,10060
10070 GOTO 90
20000 RESTORE 1800:FOR I=1 TO 14:READ A:READ B
20010 PRINT INK 2;AT(A,B);""
20020 NEXT I