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

    5 INK 4:PAPER 5:BORDER 6
   10 WINDOW:CLS:OUT 136,0:FOR I=1 TO 8:P$(I)="JB SOFTWARE":NEXT I:GOTO 9000
  100 REM *** CYCLUS ***
  110 IF GO=0 THEN GOSUB 2600
  190 IF ZG>0 THEN ZG=ZG-1:GOTO 280
  200 REM *** G-STRAT ***
  202 S1=G:S2=SG
  205 U=PEEK(G+40):LS=PEEK(G-1):RS=PEEK(G+1):ON SGN(EG-EM)+2 GOTO 210,235,225
  210 IF U=188 THEN R=39:EG=EG+1:SG=SG-1:GOTO 255
  215 IF U=189 THEN R=41:EG=EG+1:SG=SG+1:GOTO 255
  220 GOTO 235
  225 IF LS=189 THEN R=-41:EG=EG-1:SG=SG-1:GOTO 255
  230 IF RS=188 THEN R=-39:EG=EG-1:SG=SG+1:GOTO 255
  235 IF ABS(EG-EM)<3 THEN ON SGN(SG-SM)+2 GOTO 240,240,250
  237 ON SGN(R)+2 GOTO 250,250,240
  240 R=V1:IF RS=199 OR RS=182 THEN 3500
  245 SG=SG+1:GOTO 255
  250 R=-V1:IF LS=199 OR LS=182 THEN 3600
  252 SG=SG-1
  255 POKE G,VG:GW=GW+R:G=INT(GW):VG=PEEK(G):IF VG=255 THEN 3000
  257 POKE G,207:IF S1=G THEN SG=S2
  260 IF VG=196 THEN 2000
  265 U=PEEK(G+40):IF U=199 OR U>181 AND U<190 THEN 280
  270 EG=EG+1:R=40:GOTO 255
  280 REM *** G END ***
  290 IF ZH>0 THEN ZH=ZH-1:GOTO 380
  300 REM *** H-STRAT ***
  302 S1=H:S2=SH
  305 U=PEEK(H+40):LS=PEEK(H-1):RS=PEEK(H+1):ON SGN(EH-EM)+2 GOTO 310,335,325
  310 IF U=188 THEN S=39:EH=EH+1:SH=SH-1:GOTO 355
  315 IF U=189 THEN S=41:EH=EH+1:SH=SH+1:GOTO 355
  320 GOTO 335
  325 IF LS=189 THEN S=-41:EH=EH-1:SH=SH-1:GOTO 355
  330 IF RS=188 THEN S=-39:EH=EH-1:SH=SH+1:GOTO 355
  335 ON SGN(SH-SM)+2 GOTO 340,340,350
  340 S=V2:IF RS=199 OR RS=182 THEN 3700
  345 SH=SH+1:GOTO 355
  350 S=-V2:IF LS=199 OR LS=182 THEN 3800
  352 SH=SH-1
  355 POKE H,VH:HW=HW+S:H=INT(HW):VH=PEEK(H):IF VH=207 THEN 3100
  357 POKE H,255:IF S1=H THEN SH=S2
  360 IF VH=196 THEN 2000
  365 U=PEEK(H+40):IF U=199 OR U>181 AND U<190 THEN 380
  370 EH=EH+1:S=40:GOTO 355
  380 REM *** H END ***
  500 REM *** MENSCH ***
  510 U=PEEK(M+40):LS=PEEK(M-1):RS=PEEK(M+1)
  520 J=JOYST$(1):ON J+1 GOTO 100,550,570,100,100,590,600,100,100,610,620
  521 IF J=16 THEN 2000
  530 J=ABS(J-127):ON J GOTO 700,800,855
  540 GOTO 100
  550 IF LS=199 OR LS=182 OR U=189 AND LS=189 AND PEEK(M+39)<>182 THEN 100
  560 W1=-1:SM=SM-1:GOTO 630
  570 IF RS=199 OR RS=182 OR U=188 AND RS=188 AND PEEK(M+41)<>182 THEN 100
  580 W1=1:SM=SM+1:GOTO 630
  590 IF U=188 THEN W1=39:EM=EM+1:SM=SM-1:GOTO 630:ELSE 550
  600 IF U=189 THEN W1=41:EM=EM+1:SM=SM+1:GOTO 630:ELSE 570
  610 IF LS=189 THEN W1=-41:EM=EM-1:SM=SM-1:GOTO 630:ELSE 550
  620 IF RS=188 THEN W1=-39:EM=EM-1:SM=SM+1:GOTO 630:ELSE 570
  630 POKE M,VM:M=M+W1:VM=PEEK(M):POKE M,196:U=PEEK(M+40)
  640 IF VM=140 THEN VM=32:GO=GO-1:PZ=PZ+20+B*10:PRINT AT(0,32);PZ
  650 IF VM=207 OR VM=255 THEN 2000
  660 IF VM=161 AND AU=1 THEN AU=2:VM=32:GOSUB 2500
  670 IF VM=169 AND AU=1 THEN AU=3:VM=32:GOSUB 2500
  680 IF VM=159 OR VM=192 THEN 2900
  690 IF U>181 AND U<190 OR U=199 THEN 100:ELSE W1=40:EM=EM+1:GOTO 630
  700 ON AU GOTO 710,790,790
  710 IF U=188 OR U=189 THEN 100
  720 FOR I=1 TO 2:POKE M,VM:M=M-40:VM=PEEK(M):POKE M,196
  730 NEXT I
  740 IF VM=161 AND AU=1 THEN AU=2:VM=32:GOSUB 2500
  745 IF VM=140 THEN GO=GO-1:VM=32:PZ=PZ+20+B*10:PRINT AT(0,32);PZ
  750 IF VM=169 AND AU=1 THEN AU=3:VM=32:GOSUB 2500
  760 IF VM=195 THEN VM=32:GOSUB 2800
  770 FOR I=1 TO 2:POKE M,VM:M=M+40:VM=PEEK(M):POKE M,196:NEXT I
  780 GOTO 100
  790 GOTO 100
  800 ON AU GOTO 804,910,980
  804 LS=PEEK(M-41):IF LS=199 OR LS=182 THEN 100
  805 POKE M,VM:M=M-41:VM=PEEK(M):LS=PEEK(M-1):POKE M,196:SM=SM-1
  810 IF LS=199 OR LS=182 THEN W1=40:GOTO 630
  815 POKE M,VM:M=M-41:VM=PEEK(M):LS=PEEK(M-1):U=PEEK(M+40):POKE M,196:SM=SM-1
  820 IF VM=161 AND AU=1 THEN AU=2:VM=32:GOSUB 2500
  823 IF VM=140 THEN GO=GO-1:VM=32:PZ=PZ+20+B*30:PRINT AT(0,32);PZ
  825 IF VM=169 AND AU=1 THEN AU=3:VM=32:GOSUB 2500
  830 IF VM=195 THEN GOSUB 2800
  835 IF LS=199 OR U=182 THEN W1=0:EM=EM-2:GOTO 630 
  840 POKE M,VM:M=M+39:VM=PEEK(M):LS=PEEK(M-1):U=PEEK(M+40):POKE M,196:SM=SM-1
  845 IF LS=199 OR U=199 OR U=182 OR LS=182 THEN W1=0:EM=EM-1:GOTO 630
  850 W1=39:SM=SM-1:GOTO 630
  855 ON AU GOTO 859,920,992
  859 RS=PEEK(M-39):IF RS=182 OR RS=199 THEN 100
  860 POKE M,VM:M=M-39:VM=PEEK(M):RS=PEEK(M+1):POKE M,196:SM=SM+1
  865 IF RS=199 OR RS=182 THEN W1=0:GOTO 630
  870 POKE M,VM:M=M-39:VM=PEEK(M):RS=PEEK(M+1):U=PEEK(M+40):POKE M,196:SM=SM+1
  875 IF VM=161 AND AU=1 THEN AU=2:VM=32:GOSUB 2500
  880 IF VM=169 AND AU=1 THEN AU=3:VM=32:GOSUB 2500
  885 IF VM=195 THEN GOSUB 2800
  890 IF RS=199 OR U=182 THEN W1=0:EM=EM-2:GOTO 630
  895 POKE M,VM:M=M+41:VM=PEEK(M):RS=PEEK(M+1):U=PEEK(M+40):POKE M,196:SM=SM+1
  900 IF RS=199 OR U=199 OR U=182 OR RS=182 THEN W1=0:EM=EM-1:GOTO 630
  905 W1=41:SM=SM+1:GOTO 630
  910 IF LS=199 THEN 100
  915 AU=1:GOSUB 2500:W1=-1:W2=M:GOTO 930
  920 IF RS=199 THEN 100
  925 AU=1:GOSUB 2500:W1=1:W2=M:GOTO 930
  930 W2=W2+W1:W3=PEEK(W2)
  935 IF W3=207 THEN 6100
  940 IF W3=255 THEN 6200
  945 IF W3=199 AND W1<>40 THEN W2=W2-W1:W1=40:GOTO 930
  950 IF W3=199 OR W3=182 THEN W2=W2-40:GOTO 960
  955 POKE W2,161:POKE W2,W3:GOTO 930
  960 W3=PEEK(W2)
  965 IF W3=32 THEN POKE W2,161:GOTO 100 
  970 FOR I=1 TO 2:POKE W2,W3:W2=W2-40:W3=PEEK(W2):POKE W2,161:NEXT
  975 GOTO 100
  980 IF PEEK(M+39)<>182 THEN 100
  985 POKE M+39,32:AU=1:GOSUB 2500
  990 GOTO 100
  992 IF PEEK(M+41)<>182 THEN 100
  994 POKE M+41,32:AU=1:GOSUB 2500
  996 GOTO 100
 1000 REM *** OBJ ***
 1010 READ Z1:IF Z1=40 THEN RETURN:ELSE READ S1,PR$
 1020 PRINT AT(Z1,S1);PR$:GOTO 1000
 1100 REM *** TREPP L H ***
 1110 READ Z1:IF Z1=40 THEN RETURN:ELSE READ S1,Z2
 1120 FOR I=Z1 TO Z2 STEP-1:PRINT AT(I,S1);"":S1=S1-1:NEXT:GOTO 1100
 1200 REM *** TREPP R H ***
 1210 READ Z1:IF Z1=40 THEN RETURN:ELSE READ S1,Z2
 1220 FOR I=Z1 TO Z2 STEP-1:PRINT AT(I,S1);"":S1=S1+1:NEXT:GOTO 1200
 1300 REM *** DATA-READING ***
 1310 READ M,VM,AU,EM,SM,GW,R,VG,ZG,EG,SG,HW,S,VH,ZH,EH,SH,TZ,TN,GO,V1,V2
 1320 G=GW:H=HW:FOR I=3 TO 22:PRINT AT(I,0);"":PRINT AT(I,39);"":NEXT
 1330 PRINT AT(23,0);STRING$(40,""):PRINT AT(2,0);STRING$(40,"")
 1340 POKE M,196:RETURN
 2000 REM *** TOT ***
 2005 LB=LB-0:PRINT AT(0,5);LB:IF LB=0 THEN 2100
 2020 FOR I=5 TO 1 STEP-1:PRINT AT(1,21);"KEIN Leben weniger !":PAUSE I*2
 2022 PRINT AT(1,21);"                   ":PAUSE I+1:NEXT
 2030 W1=2:GOTO 9200
 2100 REM *** GAME OVER ***
 2110 PRINT AT(12,14);"":PRINT AT(14,14);""
 2120 PRINT AT(13,14);"GAME  OVER":PAUSE 7
 2130 FOR I=6 TO 1 STEP-1:PRINT AT(13,15);"          ":PAUSE INT(I*1.2)
 2140 PRINT AT(13,15);"GAME  OVER":PAUSE I:NEXT I
 2200 PZ=PZ+99*LB:CLS:PRINT "Sie erhielten ";PZ;" Punkte.":PRINT:PRINT
 2210 PRINT "Liste der Besten:"
 2220 FOR I=1 TO 8:IF PZ>P(I)THEN GOSUB 2400
 2230 NEXT I
 2240 PRINT:PRINT "Punkte  Name":PRINT:PRINT STRING$(38,""):PRINT
 2250 FOR I=1 TO 8:PRINT P(I);TAB(6);P$(I):NEXT I
 2260 PRINT:INPUT ">ENTER<";A$:RUN
 2400 FOR J=8 TO I STEP-1:P(J)=P(J-1):P$(J)=P$(J-1):NEXT J
 2410 P(I)=PZ:P$(I)=P$:RETURN
 2500 PRINT AT(1,12);A$(AU):RETURN
 2600 REM *** TUER Z ***
 2610 IF TZ=0 THEN 2700
 2620 POKE TZ-82,195
 2700 POKE TN-82,195:RETURN
 2800 REM *** TUER OE ***
 2810 IF M=TZ-82 THEN W1=TZ:ELSE W1=TN
 2820 POKE W1-40,193:POKE W1-39,137
 2830 IF M=W1 THEN VM=159:GOTO 2850
 2835 IF G=W1 THEN VG=159:GOTO 2850
 2840 IF H=W1 THEN VH=159:ELSE POKE W1,159
 2850 IF M=W1+1 THEN VM=192:GOTO 2870
 2855 IF G=W1+1 THEN VG=192:GOTO 2870
 2860 IF H=W1+1 THEN VH=192:ELSE POKE W1+1,192
 2870 RETURN
 2900 REM *** TUER D ***
 2910 IF M=TZ OR M=TZ+1 THEN B=B-1:W1=1
 2920 IF M=TN OR M=TN+1 THEN B=B+1:W1=0
 2930 CLS:GOTO 9200
 3000 REM *** G1 INIT ***
 3010 WW=0:VG=32:GW=-4982:ZG=20:SG=18:EG=3:G=-4982:GOTO 280
 3100 REM *** G2 INIT ***
 3110 WW=0:VH=32:HW=-4981:ZH=20:SH=19:EH=3:H=-4981:GOTO 380
 3500 IF LS=199 OR LS=182 THEN POKE G,VG:GOTO 3000:ELSE 250
 3600 IF RS=199 OR RS=182 THEN POKE G,VG:GOTO 3000:ELSE 240
 3700 IF LS=199 OR LS=182 THEN POKE H,VH:GOTO 3100:ELSE 350 
 3800 IF RS=199 OR RS=182 THEN POKE H,VH:GOTO 3100:ELSE 340
 6100 REM *** G1 T ***
 6110 POKE W2,202:W3=VG:VG=161:ZG=50:GOTO 965
 6200 REM *** G2 T ***
 6210 POKE W2,202:W3=VH:VH=161:ZH=50:GOTO 965
 9000 PRINT STRING$(38,""):PRINT "";TAB(37);""
 9001 A$(1)="KEINE  ":A$(2)="SCHWERT":A$(3)="HACKE  "
 9002 PRINT "  Programm    ''PYRAMIDE''";TAB(37);"":PRINT "";TAB(37);""
 9003 PRINT STRING$(38,""):PRINT:PRINT "Nach einem Programm von KONAMI";
 9004 PRINT " (Japan)":PRINT:PRINT "KC85/1 Version 1.3 (S/W)"
 9005 PRINT:PRINT "von J.Bochmann  Karl-Marx-Stadt 19.9.86"
 9006 PRINT:PRINT:PRINT "Kurzerlaeuterungen (J/N) ?"
 9007 A$=INKEY$:IF A$="N"THEN CLS:GOTO 9030
 9008 IF A$<>"J"THEN 9007
 9009 OUT 136,20:CLS:PRINT "Sie (  ) wollen eine Pyramide ausrau-"
 9011 PRINT "ben. Zwei boese Gespenster wollen Sie"
 9013 PRINT "daran hindern .Sie koennen sich mit den"
 9014 PRINT "Pfeiltasten bewegen und mit SPACE"
 9016 PRINT "springen. Wenn Sie ein Schwert () oder"
 9017 PRINT "eine Hacke () tragen, bewirken 'SPACE"
 9018 PRINT "und PFEIL ' (links/rechts) das"
 9019 PRINT "Werfen des Schwerts oder das Hacken ei-"
 9021 PRINT "nes Lochs. Am besten probieren Sie es"
 9023 PRINT "selbst.(Zum Glueck haben Sie 10 Leben.)":PRINT "Koennen Sie nicht";
 9024 PRINT " mehr weiter, druecken Sie 'ESC'."
 9025 PRINT "Figuren :";TAB(11);" Mensch (Sie)"
 9026 PRINT TAB(11);"  Gespenster":PRINT TAB(11);"  G O L D"
 9027 PRINT TAB(11);"  Hacke bzw. Schwert":PRINT TAB(11);"  Tuerklinke"
 9029 PRINT:PRINT:INPUT ">ENTER<";A$:CLS:OUT 136,0
 9030 DATA 23,2,"",8,9,"",40
 9032 RESTORE 9030:GOSUB 1000:PRINT AT(0,0);"DEFA-Dokumentarfilm 0815"
 9034 S1=8:S2=10:FOR I=9 TO 21 STEP 2:PRINT AT(I,S1);"":PRINT AT(I,S2);""
 9036 PRINT AT(I+1,S1);"":PRINT AT(I+1,S2);"":S1=S1-1:S2=S2+1:NEXT I
 9038 FOR I=17 TO 20:PRINT AT(39-I,I);"":NEXT
 9040 FOR I=8 TO 18:PRINT AT(I,I+2);"":NEXT
 9050 A$="  ":B$=" "
 9055 FOR I=35 TO 19 STEP-1:PRINT AT(10,I);A$:PRINT AT(11,I);B$:PAUSE 1:NEXT
 9060 PRINT AT(10,21);" ":FOR I=12 TO 20:PRINT AT(I,21);"":PAUSE 2
 9061 PRINT AT(I,21);" ":NEXT
 9064 PRINT AT(2,5);"ACHTUNG !! (GESPENST)"
 9065 FOR I=9 TO 21:PRINT AT(7,I);"":PAUSE 2:PRINT AT(7,I);" ":NEXT
 9067 DATA 8,21,"",9,20,"",10,19,"",8,21," ",11,19,"",9,20
 9068 DATA "   ",10,19,"",11,19,"",10,19,"     ",11,19,"     ",40
 9070 READ Z:IF Z=40 THEN 9073:ELSE READ S,A$:PRINT AT(Z,S);A$:PAUSE 4:GOTO 9070
 9073 FOR I=21 TO 9 STEP-1:PRINT AT(7,I);"":PAUSE 2:PRINT AT(7,I);" ":NEXT
 9100 WINDOW 4,8,0,39:INPUT "Ihr Name bitte ? ";P$:WINDOW
 9110 B=1:LB=10
 9200 REM *** allg Steuerp.***
 9204 IF W1=2 THEN 9215
 9205 CLS:PRINT AT(5,10);"Ihre Richtung:":IF B=0 THEN B=1       
 9206 IF W1=0 THEN PRINT AT(10,3);B-1:A$="":ELSE PRINT AT(10,3);B:A$=""
 9207 IF W1=0 THEN PRINT AT(10,34);B:ELSE PRINT AT(10,34);B+1:GOTO 9209
 9208 FOR I=6 TO 30:PRINT AT(10,I);" ",A$:PAUSE 2:NEXT:GOTO 9210
 9209 FOR I=30 TO 6 STEP-1:PRINT AT(10,I);A$," ":PAUSE 2:NEXT
 9210 FOR J=5 TO 1:PRINT AT(10,I);A$:PAUSE J:PRINT AT(10,I);"    ":PAUSE J:NEXT:BEEP
 9215 ON B GOTO 9220,9222,9225,9227,9230,9231
 9220 RESTORE 10000:GOTO 9300
 9222 RESTORE 10040:GOTO 9300
 9225 RESTORE 10070:GOTO 9300
 9227 RESTORE 10200:GOTO 9300
 9230 RESTORE 10300:GOTO 9300
 9231 GOTO 2200
 9300 CLS:GOSUB 1000:GOSUB 1100:GOSUB 1200:GOSUB 1300
 9305 PRINT AT(0,0);"Leben",LB:PRINT AT(0,9);"Pyramide",B
 9306 PRINT AT(1,0);"Ausruestung ",A$(AU)
 9307 PRINT AT(0,25);"Punkte",PZ
 9310 GOTO 100
10000 REM *** data bild 1 ***
10003 DATA 8,0,"         ",12,0,""    
10006 DATA 12,32,"",16,1,""
10009 DATA 20,2,"      ",7,28,"",11,1,""
10012 DATA 19,29,"",22,1,"",22,38,"",22,3,"",19,20,"",40
10021 DATA 11,6,8,15,5,12,19,5,16,19,33,16,15,20,8,40
10024 DATA 11,34,8,22,6,20,22,33,20,15,34,12,19,12,16,40
10027 DATA-4839,32,1,7,1,-4235,0,32,50,22,5,-4204,0,32,105,22,36
10030 DATA 0,-4490,5,.7,.5
10040 DATA 6,1,"      ",5,1,"",5,24,"",10,17,""
10041 DATA 8,26,""
10043 DATA 9,1," ",12,22,"",10,13,""
10046 DATA 13,1,"",12,1,"",17,28,"",14,34,""
10049 DATA 15,19,"",14,20,"",16,16,"",17,14,"",18,11,"       "
10052 DATA 19,1,"        ",22,1,"",22,36,"",21,38,"",40
10055 DATA 12,11,9,22,10,19,16,28,12,7,27,6,40
10058 DATA 8,6,6,18,3,13,22,22,17,11,27,8,40
10061 DATA-4805,32,1,7,35,-4914,1,32,3,5,6,-4448,-1,32,20,16,32
10064 DATA-4806,-4901,6,0.7,0.6
10070 REM *** data bild 3 ***
10073 DATA 6,3,"",6,23,"   ",5,13,"",5,37,""
10076 DATA 5,22,"    ",10,26,"",14,14,"",11,36,""
10079 DATA 18,9,"",17,20,"",16,29,""
10082 DATA 15,38,"",22,3,"",20,31,"",21,31," ",22,31,"  "
10085 DATA 7,3,"",8,3,"",9,3,"",10,3," ",11,3," ",12,3," "
10088 DATA 13,3,"",14,3,"     ",15,3," ",16,3,"",17,3,""
10091 DATA 18,1," ",19,1,"",12,33,"",40
10094 DATA 17,16,6,17,8,15,40,13,15,6,13,22,10,22,8,18,22,22,12,40
10097 DATA-4732,32,1,9,28,-4886,-1,32,25,5,34,-4212,-1,32,30,22,28
10100 DATA-4733,-4224,7,0.6,0.7
10200 REM *** data bild 4 ***
10205 DATA 6,1,"",6,20,"",5,1,"   ",7,1,""
10210 DATA 5,21," ",7,13,"",8,36,"",10,1,"",9,35,""
10215 DATA 12,1,"",14,1,"",15,1,"",16,10,"",22,1,"",12,14,""
10220 DATA 19,1,"",18,11,"  ",17,11,"",15,11,""
10225 DATA 14,11,"",13,11,"",12,22,"",11,34,""
10230 DATA 16,23,"",17,23,"",18,35,"",19,35,"",22,37,""
10235 DATA 20,35,"",40
10240 DATA 14,7,10,22,8,19,16,28,12,11,31,6,40
10245 DATA 9,5,6,18,3,15,22,27,17,40
10250 DATA-4216,32,2,22,24,-4750,1,32,3,9,10,-4236,1,32,0,22,4
10255 DATA-4216,-4219,9,.7,.7
10300 REM *** data bild 5 ***
10305 DATA 6,1,"     ",5,11,"",5,35,""
10310 DATA 10,1,"     ",9,11,"",9,18,""
10315 DATA 9,24,"",9,38,"",14,2,"      "
10320 DATA 13,3,"",13,14,"   ",17,9,"    ",17,30,"",21,1,"",21,8,""
10325 DATA 18,1,"      ",21,16,"",21,38,""
10330 DATA 22,1,"       ",40
10335 DATA 13,37,10,40,9,3,6,17,3,14,21,33,18,40
10340 DATA-4916,32,1,5,4,-4747,1,32,2,9,13,-4907,1,32,2,5,13
10345 DATA-4916,-4883,10,.9,.9