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

  100 K1=1:L=0:GOTO 200
  150 P$=INKEY$:IF P$<>CHR$(13)THEN 150:L=L+1:ELSE RETURN
  200 WINDOW:CLS:PRINT "  KNOSSOS - DAS GEHEIMNIS VON KRETA"
  250 PRINT "  ":WINDOW 3,23,0,39
  300 PRINT AT(3,0);" ":PRINT AT(15,5);"BITTE 30 SEKUNDEN WARTEN !":GOSUB 4850
  350 GOTO 3650
  400 PRINT:INPUT "  ERKLAERUNGEN ? (1=JA):";P$:IF P$<>"1"THEN 1452:ELSE CLS
  450 PRINT "  Wir befinden uns im 17.Jh. v.u.Z.":PRINT
  500 PRINT "  Auf der Insel Kreta ist die minoische":PRINT
  550 PRINT "  Kultur auf ihrem Hoehepunkt.":PRINT
  600 PRINT "  Wir wollen das Geheimnis des Palastes":PRINT
  650 PRINT "  von Knossos ergruenden und muessen ":PRINT
  700 PRINT "  dazu in das Zentrum des Palastes":PRINT
  750 PRINT "  vordringen.":PRINT AT(22,20);"<ENTER>":PRINT AT(16,0);" ":GOSUB 150
  800 CLS:PRINT "  Den Grundriss des Palastes koennen":PRINT
  850 PRINT "  wir jedoch nur 30 sec. einsehen!":PRINT
  900 PRINT "  Findet man aber innerhalb von 20":PRINT 
  950 PRINT "  Minuten nach Betreten des Palastes":PRINT
 1000 PRINT "  das geheimnisvolle Zentrum nicht,":PRINT
 1050 PRINT "  so ist man dem Tode geweiht!":PRINT
 1100 PRINT "  Augenblicklich wird man zu einem":PRINT
 1150 PRINT "  versteinerten Loewen vor den":PRINT
 1200 PRINT "  Toren des Palastes!!":PRINT AT(22,20);"<ENTER>":PRINT AT(20,0);" "
 1250 GOSUB 150:CLS:PRINT "  Mit den Kursortasten LINKS,RECHTS":PRINT
 1300 PRINT "  und OBEN bewegen wir uns in den":PRINT
 1350 PRINT "  Palast hinein. Das Beruehren der":PRINT
 1400 PRINT "  Waende ist gefaehrlich und sollte":PRINT
 1450 PRINT "  unbedingt vermieden werden !!":PRINT AT(12,0);" "
 1451 PRINT AT(18,20);"<ENTER>":GOSUB 150
 1452 CLS:PRINT "  Eine Koordinatenangabe kann":PRINT
 1454 PRINT "  die Orientierung erleichtern,":PRINT
 1456 PRINT "  wenn man die folgenden Frage":PRINT 
 1458 PRINT "  richtig beantwortet:":PRINT:WINDOW 11,23,0,39:GOSUB 10000
 1459 WINDOW 2,23,0,39:CLS
 1500 PRINT:PRINT:PRINT "         ALSO KONZENTRATION":PRINT:PAUSE(30)
 1550 PRINT "             LOS GEHT'S !":PAUSE(10)
 1600 WINDOW:CLS:RETURN
 1650 REM LABYRINTH -------------------UP
 1700 A=8192:FOR I=0 TO 24:FOR J=0 TO 24 STEP 4
 1750 POKE A+25*I+J,1:POKE A+25*J+I,1:IF I<2 OR I>22 THEN 2050
 1800 POKE A+25*I+2,1:POKE A+25*I+22,1:POKE A+50+I,1:POKE A+550+I,1
 1850 IF I<6 OR I>18 THEN 2050
 1900 POKE A+25*I+6,1:POKE A+25*I+18,1:POKE A+150+I,1:POKE A+450+I,1
 1950 IF I<10 OR I>14 THEN 2050
 2000 POKE A+25*I+10,1:POKE A+25*I+14,1:POKE A+250+I,1:POKE A+350+I,1
 2050 NEXT J:NEXT I:POKE A+261,0:POKE A+622,0
 2100 DATA 3,3,3,21,7,7,7,17,17,7,17,17,21,3,21,21,2,4,5,4,2
 2150 RESTORE 2100:FOR I=1 TO 8:READ X,Y
 2200 X1=INT(2*RND(1)):Y1=INT(2*RND(1)):IF X1+Y1<>1 THEN 2200
 2250 POKE A+(X+X1)*25+Y+Y1,0:NEXT I
 2300 FOR I=2 TO 8 STEP 2:FOR J=6 TO 18 STEP 4:IF I>5 AND(J=6 OR J=18)THEN 2450
 2350 POKE A+I*25+J+INT(3*RND(1))-1,0:POKE A+(24-I)*25+J+INT(3*RND(1))-1,0
 2400 POKE A+(J+INT(3*RND(1))-1)*25+I,0:POKE A+(J+INT(3*RND(1))-1)*25+24-I,0
 2450 NEXT J:NEXT I:FOR I=4 TO 20 STEP 4:READ X1
 2500 POKE A+25*I+1+INT(RND(1)*X1)*2,0:POKE A+25*I+23-INT(RND(1)*X1)*2,0
 2550 POKE A+(1+INT(RND(1)*X1)*2)*25+I,0:POKE A+(23-INT(RND(1)*X1)*2)*25+I,0
 2600 NEXT I:RETURN
 2650 REM VOR ZENTRUM -----------------UP
 2700 OUT 136,128:FOR I=1 TO 20:OUT 128,7:OUT 128,(200+I):PAUSE(INT(5/I)):OUT 128,7 
 2750 OUT 128,(20+I*2):PAUSE(INT(10*I/I^2)):NEXT I
 2800 OUT 128,7:OUT 128,75:PAUSE(15)
 2850 FOR I=1 TO 3:PRINT AT(5+I,12);"               ":NEXT I:OUT 128,7
 2900 FOR I=1 TO 5:PRINT AT(7,15);"VORSICHT !":OUT 128,(I*20-(I^2)*2):PAUSE(3)
 2950 OUT 128,7:PRINT AT(7,15);"          ":NEXT I:OUT 136,0
 2960 FOR I=1 TO 3:PRINT AT(5+I,12);"":NEXT I
 3000 RETURN
 3050 REM IM ZENTRUM ------------------UP
 3100 PRINT AT(5,12);STRING$(16,""):PRINT AT(6,12);"              "
 3150 PRINT AT(7,12);"              ":PRINT AT(8,12);"              "
 3200 PRINT AT(9,12);STRING$(16,""):OUT 136,128:OUT 128,7
 3250 FOR I=1 TO 5:PAUSE(3):PRINT AT(7,17);"ORAKEL":OUT 128,235 
 3300 PAUSE(5):PRINT AT(7,17);"      ":OUT 128,7:PAUSE(3):NEXT I
 3350 GOTO 6100
 3400 REM MAUERLAUEFER ----------------UP
 3450 FOR I=8 TO 1 STEP-1:BORDER I:BEEP:PAUSE 1:NEXT I
 3500 FOR I=1 TO 3:PRINT AT(5+I,12);"                ":NEXT I 
 3550 PRINT AT(7,12);K1,"BERUEHRUNG !!":PAUSE(20)
 3600 GOSUB 6350:RETURN
 3650 A=8192:FOR I=(A)TO A+624:POKE I,0:NEXT I:GOSUB 1700
 3700 CLS:GOSUB 400
 3750 CLS:FOR I=1 TO 24:FOR J=0 TO 24:IF PEEK(A+25*I+J)<>0 THEN PRINT AT(I-1,J+5);""
 3800 NEXT J:NEXT I
 3850 PRINT AT(2,31);"START-":PRINT AT(3,31);"PUNKT":PRINT AT(5,32);""
 3900 PRINT AT(9,31);"ORAKEL":PRINT AT(11,32);"":FOR I=1 TO 30:PAUSE(4)
 3950 PRINT AT(20,32);I:PRINT AT(10,16);"":PRINT AT(23,27);"":PAUSE(5)
 4000 PRINT AT(10,16);" ":PRINT AT(23,27);" ":NEXT I
 4050 POKE 8913,0:POKE 8911,24:POKE 8912,22
 4100 CALL 8914:A$=INKEY$
 4150 IF X=11 AND Y=11 THEN GOTO 3050
 4200 IF X=10 AND Y=11 THEN GOSUB 2650
 4225 IF Z=0 THEN 4300
 4250 PRINT INK 6;AT(0,1);X,Y:OUT 136,0
 4300 OUT 136,0:A$=INKEY$:IF A$=""THEN 4300
 4350 IF A$=CHR$(8)OR A$=CHR$(9)OR A$=CHR$(11)THEN 4400:ELSE 4300
 4400 B=PEEK(8913):X=PEEK(8911):Y=PEEK(8912)
 4450 IF X>128 THEN X=X-256
 4500 IF Y>128 THEN Y=Y-256
 4550 IF A$=CHR$(8)THEN POKE 8913,(1-B)*(B<>0)-255*(B=0)
 4600 IF A$=CHR$(9)THEN POKE 8913,B+1
 4650 IF A$=CHR$(11)THEN X=X-(B=2)+(B=0):Y=Y+(B=3)-(B=1)
 4700 IF PEEK(A+25*X+Y)=1 AND X>-1 AND X<25 AND Y>-1 AND Y<25 THEN GOSUB 3450:GOTO 4100
 4750 POKE 8911,-X*(X>=0)-(X+256)*(X<0):POKE 8912,-Y*(Y>=0)-(Y+256)*(Y<0)
 4800 GOTO 4100
 4850 REM BALA52
 4900 DATA 251,255,251,1,252,255,252,1,253,255,253,1,254,255,254,1,255,255
 4950 DATA 255,1,251,0,252,0,253,0,254,0,255,0,0,255,0,1
 5000 DATA 18,5,2,1,21,5,2,1,16,7,3,2,23,7,3,2,13,10,4,3,26,10,4,3,9,14,5,4
 5050 DATA 30,14,5,4,4,19,5,5,35,19,5,5,19,5,2,0,17,7,6,0,14,10,12,0
 5100 DATA 10,14,20,0,5,19,30,0,0,0,0
 5150 DATA 33,0,232,54,68,17,1,232,1,191,3,237,176,33,0,236,54,32,17,1,236
 5200 DATA 1,191,3,237,176,6,17,33,113,34,17,147,34,197,70,35,78,35,229,213
 5250 DATA 197,33,209,34,126,230,3,119,203,71,40,3,80,65,74,203,79,40,5
 5300 DATA 245,175,144,71,241,60,203,79,40,3,175,145,79,43,126,129
 5350 DATA 203,127,32,80,254,25,48,76,79,43,126,128,203,127,32,68,254,25
 5400 DATA 48,64,183,71,33,0,32,17,25,0,40,3,25,16,253,121,183,40,4,35,61
 5450 DATA 32,252,0,0,0,0,0,0,0,126,183,40,32,193,120,183,32,16,55,12
 5500 DATA 40,3,63,62,39,1,5,23,205,231,35,24,6,0,225,205,122,35
 5550 DATA 229,209,225,193,16,131,201,193,225,35,35,35,35,24,241
 5600 DATA 126,35,70,35,86,35,78,35,229,254,19,245,121,183,32,3,241,183,245
 5650 DATA 241,245,197,245,111,74,17,40,0,38,236,54,199,203,148,54,6,25
 5700 DATA 203,212,16,245,241,61,56,2,60,60,111,81,193,197,245,74,13
 5750 DATA 32,225,241,193,209,121,183,40,44,213,241,5,61,48,2,60,60,197,245
 5800 DATA 111,17,40,0,38,236,54,255,203,148,54,96,25,203,212,16,245,241
 5850 DATA 193,56,4,54,191,24,2,54,142,203,148,54,100,13,32,214,225,201,229,195
 5900 DATA 193,35
 5950 RESTORE 4900:S=0:C=8817:FOR I=C TO C+377:READ B:POKE I,B:S=S+B:NEXT I
 6000 IF S<>34831 THEN PRINT "LADEFEHLER!";S:END
 6050 RETURN
 6100 WINDOW:CLS:PRINT "      ORAKEL "
 6150 WINDOW 2,23,0,39
 6200 OUT 128,150:PAUSE(30):OUT 136,0
 6250!ORAKEL-VISION
 6300 GOTO 6450
 6350 K1=K1+1
 6400 RETURN
 6450 END
10000 L=(L/3.4)*(-1^L):T=RND(L):T=INT(RND(T)*100) 
10010 IF T>7 THEN T=INT(T/3.4):GOTO 10010
10020 IF T<1 THEN T=INT(T^T*9.8):GOTO 10010
10031 ON T GOTO 10040,10050,10060,10070,10070,10080,10090
10040 PRINT " Wer oder was war frueher -PERTINAX-?":PRINT
10042 PRINT "  a) Eine griechische Insel":PRINT " b)  Ein roemischer Kaiser"
10044 PRINT "  c) Eine Sagengestalt der Antike"
10046 GOSUB 11000:IF P$="B"THEN 10900:ELSE 10800
10050 PRINT "     Wie alt wurde JULIUS CAESAR?":PRINT
10052 PRINT "   a) 47 Jahre":PRINT "   b) 56 Jahre":PRINT "   c) 65 Jahre"
10054 GOSUB 11000:IF P$="C"THEN 10900:ELSE 10800
10060 PRINT "       War EROS der":PRINT:PRINT "     a) Vater"
10061 PRINT "     b) Gemahl
10062 PRINT "     c) Sohn":PRINT:PRINT "      der Goettin Aphrodite ?"
10063 GOSUB 11000
10064 IF P$="C"THEN 10900:ELSE 10800
10070 PRINT "    Wer befreite Prometheus":PRINT "    von seinen Qualen ?":PRINT
10072 PRINT "   a) ZEUS":PRINT "   b) HERKULES":PRINT "   c) PERSEUS
10074 GOSUB 11000:IF P$="B"THEN 10900:ELSE 10800
10080 PRINT "  Wer toetete die sagenhafte Sphinx ?":PRINT
10082 PRINT "    a) OEDIPUS":PRINT "    b) ATLAS":PRINT "    c) HERAKLES"
10084 GOSUB 11000:IF P$="A"THEN 10900:ELSE 10800
10090 PRINT "  Wer warnte die Trojaner vorm":PRINT "  TROJANISCHEN PFERD ?"
10092 PRINT:PRINT "   a) ACHILLES":PRINT "   b) LAOKOON"
10094 PRINT "   c) APHRODITE":GOSUB 11000:IF P$="B"THEN 10900:ELSE 10800
10800 PRINT AT(19,6);" VOELLIG FALSCH":PAUSE(20):Z=0
10810 PRINT AT(21,2);"NUN MUESSEN SIE ALLEIN ZURECHTKOMMEN":PAUSE(20):RETURN
10900 PRINT AT(19,1);"BRAVO - MAN WIR IHNEN HELFEN !":PAUSE(20):Z=1:RETURN
11000 WINDOW 17,19,0,39  
11010 CLS:INPUT "   EINGABE A,B,C : ";P$
11020 IF P$<>"A"AND P$<>"B"AND P$<>"C"THEN BEEP:GOTO 11030:ELSE RETURN
11030 PRINT:PRINT "  FALSCHE EINGABE -KONZENTRIEREN !!":PAUSE(15):GOTO 11010