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

    1 A1$="HEIMCOMPUTER robotron Z9001"
    2 A2$="SPIELE":A9=2
    4 A3$="K+PONG"
    6 A4$="JAGD AUF PONG"
    8 A5$="EIN REAKTIONS-SPIEL"
    9 REM LAKAN-COMPUTER LGH 5-28.03.83
   10 REM VERFASSER:KITTELMANN
   12 REM ANSCHRIFT:MKD,1EKG
   14 REM DATUM 24.02.1985 VERSION 1.0
   16 REM INITIALWERTE =================IN
   18 BORDER A9:INK 8:PAPER 1:GOSUB 160
   20 PX=1:DIM N(9),PN(9),PS(9),PM(9)
   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,31);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(17,2);"HANS KITTELMANN"
  117 PRINT AT(19,2);"8019 DRESDEN"
  118 PRINT AT(21,2);"HOLBEINSTR. 131"
  119 REM >ENTER< ---------------------UP
  120 PRINT INK 4;AT(22,31);">ENTER<"
  124 GOSUB 170:IF T=13 THEN PRINT AT(20,27);STRING$(11," "):RETURN
  126 GOSUB 130:GOTO 124
  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"
  153 GOSUB 170:PRINT INK 2;AT(22,37);CHR$(T)
  154 IF T=74 OR T=13 THEN T=1:PRINT AT(20,27);STRING$(11," "):RETURN
  156 IF T=78 THEN T=0:PRINT AT(20,27);STRING$(11," "):RETURN
  158 PAUSE 10:GOTO 150
  159 REM STANDART-WINDOW -------------UP
  160 WINDOW:CLS:PRINT AT(0,0);" ":RETURN
  169 REM TASTENABFRAGE ---------------UP
  170 T=PEEK(36):IF T=0 OR T=127 THEN 170
  172 RETURN
  199 REM ABFRAGE ---------------------UP
  200 FOR I=1 TO 50:A$=INKEY$:IF A$<>""THEN 208
  202 NEXT I:PRINT AT(20,36);""
  204 FOR I=1 TO 50:A$=INKEY$:IF A$<>""THEN 208
  206 NEXT I:PRINT AT(20,36);" ":GOTO 200
  208 IF A$<"1"OR A$>"9"THEN 200
  210 PRINT AT(20,36);A$:X=VAL(A$):RETURN
  211 REM ABFRAGE ZEICHENKETTE -------UP
  212 FOR K=1 TO PY:PRINT AT(20,2);"NAME DES SPIELERS",K,"? ":GOSUB 218
  214 PRINT AT(20,2);"   SCHWIERIGKEIT SPIELER",K,"(1-9)? ":GOSUB 200
  216 N(K)=20-2*X:NEXT K:RETURN
  217 REM ABFRAGE ---------------------UP
  218 B$=""
  220 PRINT AT(20,24+LEN(B$));" ":FOR J=1 TO 50:A$=INKEY$:IF A$<>""THEN 226
  222 NEXT J:PRINT AT(20,24+LEN(B$));"":FOR J=1 TO 50:A$=INKEY$:IF A$<>""THEN 226
  224 NEXT J:GOTO 220
  226 A=ASC(A$):PRINT AT(20,24+LEN(B$));"":IF A=13 THEN 236
  228 IF A=8 AND LEN(B$)>1 THEN B$=LEFT$(B$,LEN(B$)-1):GOTO 220
  230 IF A=8 AND LEN(B$)=1 THEN B$="":GOTO 220
  232 IF NOT(A=32 OR(64<A AND A<91))THEN 220
  233 PRINT AT(20,24+LEN(B$));A$:B$=B$+A$:IF LEN(B$)>11 THEN 236
  234 GOTO 220
  236 PN$(K)=B$:RETURN
  238 KY$="SCHWIERIGKEITSGRAD AENDERN ?":GOSUB 150
  240 IF T=0 THEN RETURN
  242 GOSUB 160:PRINT AT(2,2);"SPIELER-NUMMER?":GOSUB 200:XX=X:IF X>PY THEN 242
  244 A$=PN$(XX):PRINT AT(4,2);A$,"'S SCHWIERIGKEIT IST ",(20-N(XX))/2
  246 PRINT AT(6,2);"DURCHSCHNITT IST ",PM(XX)
  248 PRINT AT(8,2);"PUNKTESTAND  WAR ",PS(XX)
  250 PRINT AT(20,2);"NEUER SCHWIERIGKEITSGRAD (1-9)":GOSUB 200:N(XX)=20-X*2
  252 KY$="WEITERE AENDERUNG":GOSUB 150
  254 IF T=1 THEN 242
  256 RETURN
  999 REM HAUPTPROGRAMM ===============HP
 1000 GOSUB 160
 1002 PRINT AT(2,4);"PONG JAGD"
 1004 PRINT AT(6,4);"VERSUCHEN SIE, PONG ZU TREFFEN!"
 1006 PRINT AT(8,4);"PONG SIEHT SO AUS : * !"
 1008 PRINT AT(10,4);"IHRE AUFGABE IST, PONG * MIT DER"
 1010 PRINT AT(12,4);"KUGEL  ZU TREFFEN."
 1012 PRINT AT(14,4);"BENUETZEN SIE DIE TASTEN N UND M."
 1014 PRINT AT(20,11);"WIEVIELE SPIELER (1-9)?":GOSUB 200:PY=X
 1016 GOSUB 212
 1018 PL=PL+1:IF PL>PY THEN PL=1
 1022 TS=TI:PC=1:PK=-4620:PE=PK:D=1
 1023 GOSUB 160:A$=INKEY$
 1024 PRINT AT(0,0);"SPIELER:",PN$(PL),STRING$(22-LEN(PN$(PL)),"")
 1026 FOR I=1 TO 22:PRINT AT(I,0);"":PRINT AT(I,39);"":NEXT I
 1028 PRINT AT(23,0);STRING$(15,""),"AUFGEBEN=A",STRING$(15,"")
 1030 T=INT(RND(1)*900-5120):IF(T>-4640)AND(T<-4601)THEN 1030
 1032 TD=1:NN=N(PL)
 1034 IF PEEK(T)<>32 THEN 1030
 1036 POKE T,42
 1038 FOR II=1 TO NN:IF PEEK(PE)=207 THEN POKE PE,32
 1040 PE=PK:I$=INKEY$:IF I$<>""THEN 1060
 1042 IF PEEK(PK+D)<>32 THEN 1050
 1044 PK=PK+D:POKE PK,207:NEXT II:POKE T,32:T=T+TD*D
 1046 IF PEEK(T)<>32 THEN TD=-TD:T=T+TD*D
 1048 POKE T,42:GOTO 1038
 1050 IF PEEK(PK+D)=144 THEN PK=PK+D:D=D-SGN(D)*41:GOTO 1038
 1052 IF PEEK(PK+D)=145 THEN PK=PK+D:D=SGN(D)*((ABS(D)AND 1)*40+(ABS(D)AND 40)/40):GOTO 1038
 1054 D=-D:IF PEEK(PK-D)=42 THEN 1090
 1056 GOTO 1038
 1060 IF I$="N"THEN 1070
 1062 IF I$="M"THEN 1076
 1064 IF I$="A"THEN PS=0:GOTO 1092
 1066 IF I$="E"THEN END
 1068 GOTO 1042
 1070 O=D:PC=PC+1:POKE PK,144
 1072 D=D-SGN(D)*41:GOTO 1038
 1074 REM IFPEEK(PK+D)=78THENPK=PK+D
 1076 O=D:PC=PC+1:POKE PK,145
 1078 IF O=-1 THEN D=-40
 1080 IF O=40 THEN D=1
 1082 IF O=1 THEN D=40
 1084 IF O=-40 THEN D=-1
 1086 GOTO 1038
 1090 PS=1000-12*(PC-1)-INT((TI-TS)/6):IF PS<0 THEN PS=1
 1092 PS(PL)=PS
 1094 PM(PL)=INT((PM(PL)*(PX-1)+PS)/PX)
 1096 GOSUB 160:PRINT AT(0,2);"SPIELER      SCHW.  PUNKTE  DURCHSCH."
 1098 FOR I=1 TO PY
 1100 PRINT AT(I*2,2);PN$(I):A1$=STR$((20-N(I))/2):PRINT AT(I*2,14);A1$
 1101 A1$=STR$(PS(I)):PRINT AT(I*2,22);A1$:A1$=STR$(PM(I)):PRINT AT(I*2,30);A1$
 1102 NEXT I
 1104 PRINT AT(20,2);"DAS WAR SPIEL NR. ",PX
 1106 IF PL=PY THEN GOSUB 238:FOR I=1 TO PY:PS(I)=0:NEXT I:PX=PX+1:GOTO 1018
 1108 KY$="WEITER SPIELEN":GOSUB 150
 1110 IF T=1 THEN 1018
 1112 GOTO 9000
 8999 REM ENDE =====================ENDE
 9000 GOSUB 160:PRINT INK 3;AT(8,2);"AUF WIEDERSEHEN!":PAUSE 50:T$=INKEY$:CLS