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

    2 DOKE 983,7802:CLEAR 40,8190:DOKE 530,7438:DOKE 532,1485:DOKE 534,-14080
    4 DIM R$(3):R$(0)="NORDEN":R$(1)="OSTEN":R$(2)="SUEDEN":R$(3)="WESTEN
    6 DEF FN F(J)=J+INT(3*RND(1))-1:DEF FN G(X)=INT(RND(1)*X)
    8 WINDOW:CLS:OW=1:VW=1:A2=10000:SA=0:PA=1:RA=5
   10 IF DEEK(8914)<>33 THEN RESTORE 334:PRINT AT(10,10);"VORSICHT-RAUBKOPIE":GOTO 310
   12 PRINT "LABYRINTH":PRINT "":PRINT
   14 PRINT:PRINT "EINGANG: RECHTS UNTEN (POSITION 24/22)
   16 PRINT "AUSGANG: LINKS  OBEN  (POSITION  0/2 )
   18 PRINT:PRINT:PRINT "TASTENFUNKTION:":PRINT
   20 PRINT " ?  BLICKRICHTUNGSANZEIGER (max. 5 mal)
   22 PRINT "< KOERPERDREHUNG NACH LINKS
   24 PRINT "> KOERPERDREHUNG NACH RECHTS
   26 PRINT "   EIN SCHRITT VORWAERTS":PRINT " "
   28 PRINT:PRINT:PRINT "NOCH ETWA 20 SEKUNDEN GEDULD BITTE...":PRINT
   30 PRINT SPC(8)"...UND DANN VIEL GLUECK !
   32 PRINT:PRINT SPC(8)"...UND KEINE ANGST VORM ORAKEL !
   34 CALL 530:GOTO 130
   36 A=8192:FOR I=0 TO 24:N=A+25*I:FOR J=0 TO 24 STEP 4
   38 POKE N+J,1:POKE A+25*J+I,1:IF I<2 OR I>22 THEN 46
   40 POKE N+2,1:POKE N+22,1:POKE A+50+I,1:POKE A+550+I,1:IF I<6 OR I>18 THEN 46
   42 POKE N+6,1:POKE N+18,1:POKE A+150+I,1:POKE A+450+I,1:IF I<10 OR I>14 THEN 46
   44 POKE N+10,1:POKE N+14,1:POKE A+250+I,1:POKE A+350+I,1
   46 NEXT J,I:POKE A+2,0:POKE A+622,0:POKE A+311,0:POKE A+337,0
   48 POKE A+287,0:POKE A+313,0
   50 DATA 3,3,3,21,7,7,7,17,17,7,17,17,21,3,21,21,2,4,5,4,2
   52 RESTORE 50:FOR I=1 TO 8:READ X,Y
   54 X1=INT(2*RND(1)):Y1=INT((2-X1)/2)
   56 POKE A+(X+X1)*25+Y+Y1,0:NEXT I
   58 FOR I=2 TO 8 STEP 2:FOR J=6 TO 18 STEP 4:IF I>5 AND(J=6 OR J=18)THEN 64
   60 POKE A+I*25+FN F(J),0:POKE A+(24-I)*25+FN F(J),0
   62 POKE A+FN F(J)*25+I,0:POKE A+FN F(J)*25+24-I,0
   64 NEXT J:NEXT I:FOR I=4 TO 20 STEP 4:READ X1
   66 POKE A+25*I+1+FN G(X1)*2,0:POKE A+25*I+23-FN G(X1)*2,0
   68 POKE A+(1+FN G(X1)*2)*25+I,0:POKE A+(23-FN G(X1)*2)*25+I,0
   70 NEXT:IF PEEK(A+101)=1 THEN POKE A+29,0
   72 I=0:GOSUB 74:RETURN
   74 POKE A+261,I:POKE A+289,I:POKE A+335,I:POKE A+363,I:RETURN
   76 CLS:INK 3:PAPER 1:PRINT "ACHTUNG! ORAKEL!":VW=-1
   78 PRINT "WEITERGEHEN ERFORDERT MUT ZUM RISIKO!";:CALL 530
   80 RESTORE 328:GOSUB 312:RETURN
   82 CLS:PRINT "JETZT BESTIMMT DAS ORAKEL":PRINT "DEIN WEITERES SCHICKSAL.";:OW=0
   84 CALL 530:GOTO 232
   86 FOR I=8 TO 1 STEP-1:BORDER I:BEEP:NEXT:ML=ML+1
   88 PRINT AT(10,12);"**MAUERLAEUFER**":CLS
   90 IF MD>0 THEN MD=MD-1:PRINT "DAS ORAKEL HAELT SEIN VERSPRECHEN.":GOTO 114
   92 IF X<>12 OR Y<>12 THEN 96:ELSE PRINT "JETZT IST ALLES ZERSTOERT:
   94 PRINT "ORAKEL, LABYRINTH UND DU NATUERLICH...";:CALL 530:ZL=1:GOSUB 340:GOTO 280
   96 I=INT(RND(PEEK(31))*5)+1:IF PA=0 AND I=4 THEN 96
   98 ON I GOTO 100,104,112,108,124
  100 PRINT "BEIM"+STR$(ML)+". MAL, DA TUT'S NUR WEH...":CALL 530
  102 RESTORE 318:GOSUB 312:RETURN
  104 PRINT "AU, VERFLUCHT!!":PRINT "30 SEKUNDEN BEWUSSTLOS";:CALL 530
  106 RESTORE 332:GOSUB 312:PAUSE 280:RETURN
  108 PRINT "LEIDER WURDE BEIM AUFPRALL":PRINT "DER POSITIONSANZEIGER ZERSTOERT.";
  110 PA=0:CALL 530:RESTORE 338:GOSUB 312:RETURN
  112 PRINT "EIN HARTER KOPF IST VIEL WERT."
  114 RESTORE 318:IF OP=0 THEN ZS=0
  116 X1=X-(X=0)+(X=24):Y1=Y-(Y=0)+(Y=24):IF X1=X AND Y1=Y THEN 120:ELSE X=X1:Y=Y1
  118 PRINT "DIE RANDMAUERN SIND ABER UNZERSTOERBAR.";:CALL 530:GOSUB 312:RETURN
  120 PRINT "DU BLICKST ZUM NACHBARGANG.";:CALL 530:DB=0
  122 POKE A1+25*X+Y,199:POKE A+25*X+Y,0:RESTORE 326:GOSUB 312:RETURN
  124 PRINT "DIE MAUER IST EINGESTUERZT UND"
  126 PRINT "HAT DICH BEGRABEN.";:CALL 530:POKE A+25*X+Y,0
  128 RESTORE 334:GOSUB 312:GOTO 280
  130 A=8192:A1=9300:FOR I=0 TO 624:POKE A+I,0:POKE A1+I,0:NEXT
  132 GOSUB 36:GOSUB 138:PRINT AT(21,27);"GLEICH IST":POKE-4218,32
  134 POKE-5118,32:PRINT AT(22,27);"ES SOWEIT!":WINDOW 0,2,0,39
  136 FOR I=1 TO 50:POKE-4668,197:PAUSE 1:POKE-4668,198:PAUSE 1:NEXT:GOTO 158
  138 CLS:FOR I=1 TO 23:FOR J=0 TO 24:IF ZL THEN PRINT CHR$(INT(RND(1)*128)+128);:GOTO 154
  140 IF PEEK(A+25*I+J)=1 THEN PRINT "";:GOTO 154
  142 K=PEEK(A1+25*I+J):IF K>50 THEN K$=CHR$(K):ELSE K$=CHR$(K+48):IF K>9 THEN K$="0"
  144 IF I>1 THEN 148:ELSE IF K=0 THEN PRINT "";:ELSE PRINT K$;
  146 GOTO 154
  148 IF I<23 THEN 152:ELSE IF K=0 THEN PRINT "";:ELSE PRINT K$;
  150 GOTO 154
  152 IF K=0 THEN PRINT " ";:ELSE PRINT K$;
  154 NEXT J:PRINT:NEXT I:POKE-4200,32
  156 POKE 8913,0:POKE 8911,26:POKE 8912,22:B=0:X=26:Y=22:RETURN
  158 CALL 8914:B=PEEK(8913)
  160 IF X>0 THEN 164:ELSE PRINT AT(8,10);"G E S C H A F F T"
  162 PRINT AT(12,7);"HERZLICHEN GLUECKWUNSCH":RESTORE 324:GOSUB 312:GOTO 280
  164 IF VW=0 THEN GOSUB 82:OUT 136,0:VW=1
  166 IF PA THEN PRINT AT(23,1);"POSITION:",X,Y
  168 IF X<24 THEN 176:ELSE IF X>25 THEN T$="KOMM NAEHER!
  170 IF X=25 THEN T$="NOCH NAEHER!":ELSE IF X=24 THEN T$="GANZ NAH!
  172 IF B THEN T$="FEIGLING!
  173 IF Y<1 OR Y>25 THEN PRINT "SPIELVERDERBER":RESTORE 320:GOTO 310
  174 PRINT AT(15,14);T$:BEEP:GOTO 178
  176 POKE A+622,1:IF X=10 AND Y=11 AND B=2 OR X=13 AND Y=10 AND B=1 THEN GOSUB 76
  178 IF X=14 AND Y=13 AND B=0 OR X=11 AND Y=14 AND B=3 THEN GOSUB 76
  180 IF X=1 AND Y=2 AND B=0 THEN CLS:PRINT "JETZT NICHT UMKEHREN!":ELSE 184
  182 PRINT "DIE FREIHEIT IST SCHON ZU SEHEN!";:CALL 530:RESTORE 330:GOSUB 312
  184 IF X=23 AND Y=22 AND B=2 THEN 186:ELSE 190
  186 CLS:PRINT "ES GIBT KEIN ZURUECK MEHR.
  188 PRINT "DER EINGANG IST JETZT VERSCHLOSSEN.";:BEEP:CALL 530
  190 IF ZS>0 THEN ZS=ZS+1:UM=3:IF ZS>50 THEN 222
  192 IF RI THEN 198
  194 DB=1:A$=INKEY$:IF A$=""THEN 194
  196 IF A$<>"?"OR RA<1 THEN 200
  198 PRINT AT(23,19);"BLICKRICHTUNG: ",R$(B):RA=RA-1:GOTO 194
  200 B=PEEK(8913):X=PEEK(8911):Y=PEEK(8912)
  202 IF A$=CHR$(8)THEN POKE 8913,(1-B)*(B<>0)-255*(B=0):VW=VW+2
  204 IF A$=CHR$(9)THEN POKE 8913,B+1:VW=VW+2
  206 XX=X:YY=Y:IF A$<>CHR$(11)THEN 214
  208 X=X-(B=2)+(B=0):Y=Y+(B=3)-(B=1):UM=UM-1:VW=VW+1
  210 K=A1+25*X+Y:IF PEEK(K)<199 THEN POKE K,PEEK(K)+1
  212 POKE A2+SA,B:SA=SA+1
  214 IF UM<1 THEN I=0:GOSUB 74
  216 IF PEEK(A+25*X+Y)=1 THEN GOSUB 86:IF DB THEN X=XX:Y=YY:POKE A2+SA-1,6
  218 POKE 8911,X:POKE 8912,Y:GOTO 158
  222 IF OP THEN 226:ELSE CLS:PRINT "...UND WENN ER NICHT GESTORBEN IST,
  224 PRINT "DANN IRRT ER HEUTE HEUTE NOCH UMHER...";:RESTORE 334:GOTO 230
  226 CLS:PRINT "DURST IST SCHLIMMER ALS HEIMWEH.
  228 PRINT "UND OHNE PROVIANT...SCHADE UM DICH.";:RESTORE 322
  230 CALL 530:GOSUB 312:PAUSE 10:GOTO 280
  232 GOSUB 340:I=INT(RND(PEEK(31))*8)+1:OUT 136,128:CLS
  234 T$="MAGISCHE KRAEFTE VERSETZEN DICH
  236 ON I GOTO 238,244,250,254,260,264,270,276
  238 PRINT T$:PRINT "IN DIE NAEHE DES EINGANGS.";:CALL 530:POKE A2+SA,4:SA=SA+1
  240 FOR J=50 TO 250 STEP 10:OUT 128,7:OUT 128,J:PAUSE 1:NEXT:OUT 128,3
  242 X=23:Y=22:POKE 8913,1:POKE 8911,23:POKE 8912,22:B=1::CALL 8914:RETURN
  244 PRINT T$:PRINT "IN DIE NAEHE DES AUSGANGS.";:CALL 530:POKE A2+SA,5:SA=SA+1
  246 FOR J=250 TO 50 STEP-10:OUT 128,7:OUT 128,J:PAUSE 1:NEXT:OUT 128,3
  248 X=1:Y=1:B=2:POKE 8913,2:POKE 8911,1:POKE 8912,1:CALL 8914:RETURN
  250 PRINT "AUF DEINEM WEITEREN WEG WIRD DIR
  252 PRINT "IMMER DIE BLICKRICHTUNG ANGEZEIGT.";:CALL 530:BEEP:RI=1:RETURN
  254 PRINT "DER POSITIONSANZEIGER IST IN ZUKUNFT
  256 IF PA THEN PRINT "AUSSER BETRIEB.";:PA=0:ELSE PRINT "WIEDER IN BETRIEB.";:PA=1
  258 CALL 530:BEEP:RETURN
  260 PRINT "GEFANGEN FUER IMMER!":PRINT "ES SEI DENN, DU HAST MUT UND GLUECK...";
  262 CALL 530:I=1:BEEP:GOSUB 74:ZS=1:RETURN
  264 PRINT "NACH 10 RUNDEN UMS DIE LINKE SAEULE";
  266 PRINT "KOMMST DU WIEDER FREI.";:CALL 530:BEEP
  268 I=1:GOSUB 74:UM=80:RETURN
  270 PRINT "DU HAST AB JETZT 3 MAL DIE KRAFT
  272 PRINT "EINE MAUER ZU DURCHBRECHEN.";
  274 MD=3:CALL 530:BEEP:RETURN
  276 PRINT "BEEILUNG! DU MUSST JETZT OHNE":PRINT "PROVIANT AUSKOMMEN.";
  278 ZS=1:OP=1:CALL 530:BEEP:RETURN
  280 WINDOW:CLS:WINDOW 0,23,27,39:PRINT "UND":PRINT "SO":PRINT "SIEHT"
  282 PRINT "DEINE":PRINT "SPUR":PRINT "AUS"
  284 IF X>0 THEN POKE A1+25*X+Y,202
  286 WINDOW 0,23,0,26:GOSUB 138:IF PEEK(-5118)>57 THEN POKE-5118,32
  288 PAUSE 20:WINDOW 2,23,27,39:CLS:PRINT "BIST":PRINT "DU":PRINT "UMHER"
  290 PRINT "GEIRRT...":CALL 530:K=-4098:FOR I=0 TO SA-2:B=PEEK(A2+I)
  292 IF B=4 THEN K=-4218:ELSE IF B=5 THEN K=-5119:ELSE 296
  294 FOR J=1 TO 5:BEEP:PAUSE 1:NEXT J
  296 IF B=6 THEN BEEP:NEXT:GOTO 304
  298 K=K+(B=0)*40-(B=2)*40-(B=1)+(B=3)
  300 IF PEEK(K)=199 THEN BEEP:PAUSE 1:BEEP
  302 POKE K,32:PAUSE 4:POKE K,42:NEXT
  304 WINDOW 19,22,27,39:IF K>-5080 THEN RESTORE 320:GOTO 308
  306 PRINT "BIS":PRINT "ZUM":PRINT "NAECHSTEN":PRINT "MAL";:RESTORE 336:GOTO 310
  308 PRINT "MEIN":PRINT "AUFRICHTIGES":PRINT "BEILEID"
  310 CALL 530:GOSUB 312:PAUSE 50:WINDOW:CLS:CLEAR 256,16000:END
  312 OUT 136,128:READ K:FOR I=1 TO K:READ T,L
  314 OUT 128,7:OUT 128,T+100:PAUSE L:NEXT
  316 OUT 128,3:OUT 136,0:RETURN
  318 DATA 8,116,2,93,3,72,2,62,3,44,2,62,4,72,2,93,6
  320 DATA 10,116,5,116,5,116,3,116,7,72,5,93,3,93,5,116,5,116,3,116,10
  322 DATA 11,116,2,62,4,44,2,28,4,28,4,44,2,62,4,116,2,62,4,28,2,44,6
  324 DATA 10,116,2,93,2,72,2,62,4,116,6,62,2,72,2,62,2,44,4,93,6
  326 DATA 8,44,2,72,4,44,2,72,4,93,2,116,2,93,2,116,5
  328 DATA 9,116,2,93,2,72,4,116,3,72,3,44,3,44,3,62,3,93,4
  330 DATA 12,-15,3,-5,2,8,4,44,4,-28,2,-28,4,-15,3,08,2,08,3,12,2,08,2,-5,4
  332 DATA 8,116,2,93,2,72,4,72,4,62,2,93,2,28,4,44,6
  334 DATA 8,116,3,44,3,62,3,72,6,116,3,28,3,44,3,62,6
  336 DATA 8,72,2,72,3,93,2,93,5,62,2,62,3,72,2,72,5
  338 DATA 7,93,3,93,3,62,5,93,4,93,3,93,3,62,5
  340 OUT 136,128:FOR I=1 TO 300:OUT 128,7:OUT 128,INT(RND(1)*210)+40:NEXT
  342 OUT 128,3:OUT 136,0:RETURN
65533 BASIC-PROGRAMMTEIL:HEINE/PHH