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

   10 PRINT 222;
   20 PRINT;
   30 PRINT GG
    1 POKE 862,1:LINES(0)            
   10 WINDOW:CLS:CLEAR:FA=3:ZF=5:KK=1:DIM Z(11):DIM N$(11):NW=1:!POKE862,255    
   15 FOR I=1 TO 10:N$(I)="*------*":NEXT I
   20 M=1:MD=1:GOSUB 230:A$="":A1=ASC(A$)
   30 ZD=0:FA=5:ZD=0:ZF=5:ZS=0:NW=1
   40 CLS:FOR I=11 TO 23:FOR J=0 TO 8:PRINT AT(I,J);"":NEXT J,I
   50 PRINT AT(9,0);"Wasser"
   60 FOR I=10 TO 23:FOR J=9 TO 9+M:PRINT AT(I,J);"":NEXT J,I
   70 FOR I=10+M TO 39:PRINT AT(23,I);"":NEXT I
   80 PRINT AT(22,12+M);"":PRINT AT(21,12+M);""
   90 PRINT AT(21,20);"    ":PRINT AT(20,22);"D o r f"
  100 PRINT AT(22,20);" 0     o"
  110 PRINT AT(9,9);"":PRINT AT(9,10+M);"  Damm      Maeuse" 
  120 PAUSE(20)
  130 RA=-4280+10+M+2
  140 FOR KR=1 TO INT(200*M)   
  150 R1=RA
  160 IF INKEY$=""THEN 200
  170 FOR I=0 TO 15:R1=RA-I*40:POKE R1,32:POKE R1-40,157 :GOSUB 610
  180 NEXT I:POKE RA,157:POKE R1-40,32
  190 PRINT AT(1,14);ZZ*ZF
  200 GOSUB 610
  210 NEXT KR:N=0
  220 ZG=1:ZY=ZY+1 IF ZY=ZM THEN 1040:ELSE 820:END
  230 PRINT
  240 PRINT "               "
  250 PRINT "                    "
  260 PRINT "                  " 
  270 PRINT "                    "
  280 PRINT "                 "
  290 PRINT:PRINT
  300 PRINT "    DIE ERSTE Z-9001 VERSION DES ":PRINT 
  310 PRINT "    BELIEBTEN SINCLAIR/QL-SPIELES":PRINT
  320 PRINT "            VON W.USLAR"
  330 PRINT:PRINT
  340 PRINT "    RETTE DEN STAUDAMM UND DAS":PRINT
  350 PRINT "    DORF VOR DEN FRESSWUETIGEN":PRINT
  360 PRINT "    MAEUSEN !"
  370 A$=INKEY$:PRINT AT(22,20);"TASTE DRUECKEN":PAUSE(5)
  380 IF A$=""THEN PRINT AT(22,20);"              ":PAUSE(5):GOTO 370
  390 CLS
  400 PRINT AT(8,10);"      "
  410 PRINT AT(9,10);"        "
  420 PRINT AT(10,10);"       "
  430 PRINT AT(11,10);"         "
  440 PRINT AT(12,10);"       "
  450 PRINT AT(13,10);"   "
  460 PRINT AT(14,10);"       ":PAUSE(2):H=-200:L=.25:GOSUB 1340
  470 ZT=ZT+1:IF ZT<15 THEN PRINT AT(14,13);"    ":PAUSE(2):GOTO 460
  480 PRINT AT(23,20);"TASTE DRUECKEN"
  490 A$=INKEY$:PRINT AT(11,12);"":PRINT AT(11,21);"":PAUSE(3)
  500 H=10:GOSUB 1340
  510 IF A$=""THEN PRINT AT(11,12);"  ":PRINT AT(11,21);"":PAUSE(3):GOTO 490
  520 PRINT AT(16,6);"ABSCHUSS DER RAKETE":PRINT AT(18,6);"MIT <ENTER>"
  525 PRINT "DICKE DER STAUMAUER ?(1-8)"
  530 M$=INKEY$:IF M$=""THEN 530               
  535 MD=VAL(M$):M=MD  :IF MD>8 OR MD<=0 THEN    GOTO 525      
  560 PRINT:ZD=MD
  570 INPUT "ANZAHL DER VERSUCHE?";VV          :IF VV=0 THEN 570                  
  575 PRINT "    ":ZM=VV
  590 PRINT:PRINT "BEREITE DICH VOR - GLEICH GEHT'S LOS":PAUSE(30):RETURN 
  600 END
  610 IF N>FA THEN 640
  620 N1=INT(12*RND(1)):IF N1<3 THEN 640
  630 N=N+1:NI(N)=-4201-(N1*40)
  640!
  650 IF N=0 THEN RETURN
  660 FOR K=1 TO N
  670 IF PEEK(NI(K)-1)=32 THEN POKE NI(K),32:NI(K)=NI(K)-1:POKE NI(K),148:RETURN
  680 IF PEEK(NI(K)-1)=255 THEN 720
  690 BEEP:POKE NI(K),32:POKE NI(K)-1,32:IF K=N THEN N=N-1:ZZ=ZZ+1:RETURN
  700 FOR K1=1 TO N-1:NI(K1)=NI(K1+1):NEXT K1:N=N-1:ZZ=ZZ+1:RETURN
  710!
  720 IF PEEK(NI(K)-2)=A1 THEN 750
  730 POKE NI(K),32:POKE NI(K)-1,32:IF K=N THEN N=N-1:RETURN
  740 FOR K1=1 TO N-1:NI(K1)=NI(K1+1):NEXT K1:N=N-1:RETURN
  750 GOSUB 1180
  760 POKE NI(K)-1,140:POKE NI(K)-1,A1
  770 FOR I=22 TO 11 STEP-1:FOR J=8 TO 39
  780 Y=-4680+(I-11)*40+J
  790 IF PEEK(Y)=255 THEN 810
  800 POKE Y,A1
  810 NEXT J,I:N=0:PRINT AT(7,3);"SCHADE, DU HAST ES NICHT GESCHAFT!":ZD=ZD+1
  820 PRINT:PRINT "DEINE PUNKTE"
  830 FOR I=1 TO 4:PRINT AT(1,14);"      ":PAUSE(4):PRINT AT(1,14);ZZ*ZF:PAUSE(4)
  840 NEXT I:ZS=ZS+ZZ*ZF:ZZ=0:IF FA>1 THEN FA=FA-1
  850 PRINT:IF ZG=1 THEN ZG=0:ZF=ZF+5
  860 IF ZD<>ZM THEN PRINT "       ES GEHT WEITER":PAUSE(10):GOTO 40          
  870 PRINT:INPUT "  DEIN NAME BITTE";N$
  880 IF KK=1 THEN N$(1)=N$:Z(1)=ZS:GOTO 940
  890 IF KK=2 THEN 1310
  900 FOR L=KK-1 TO 1 STEP-1
  910 IF Z(KK-1)>ZS THEN Z(KK)=ZS:N$(KK)=N$:GOTO 940
  920 IF Z(L)<ZS THEN Z(L+1)=Z(L):Z(L)=ZS:N$(L+1)=N$(L):N$(L)=N$
  930 NEXT L
  940 KK=KK+1:IF KK>11 THEN KK=11
  950 CLS
  960 PRINT " PUNKTE-TABELLE ":PRINT
  970 FOR I=1 TO 10
  980 PRINT "  ";N$(I),"  ";Z(I):PRINT
  990 NEXT I:IF NW=O THEN 30
 1000 PRINT " NEUES SPIEL?(J/N)":NW=0:ZF=5:M=MD
 1010 A$=INKEY$:IF A$=""THEN 1010
 1020 IF A$="J"THEN CLS:GOTO 20
 1030 END
 1040 PRINT AT(5,5);"DU HAST ES GESCHAFT!":ZF=ZF+10:ZY=0
 1050 ZD=0:IF M>2 THEN M=M-1
 1060 IF M=1 THEN VV=VV-1:ZM=VV
 1070 IF ZM=0 THEN 1100:ELSE PRINT AT(7,5);"ES KOMMT EINE NEUE WELLE":NW=1
 1080 GOTO 820
 1090 END
 1100!
 1110 CLS
 1120 PRINT AT(5,5);"DU HAST DEN DAMM UND DAS DORF"
 1130 PRINT AT(7,5);"GERETTET - VIELEN DANK !"
 1140 PRINT AT(9,5);"DU BIST EIN HELD":NW=1
 1150 PAUSE(30)
 1160 GOTO 820
 1170 END
 1180 DATA 200,2,200,2,200,2,255,5
 1190 P=50
 1200 OUT 136,128
 1210 FOR I=1 TO 4
 1220 READ H:READ L
 1230 GOSUB 1260
 1240 NEXT I:RESTORE
 1250 OUT 136,0:RETURN
 1260 IF H=0 THEN 1280
 1270 IF H>0 THEN OUT 128,7:OUT 128,H:ELSE OUT 128,39:OUT 128,-H
 1280 FOR QQ=1 TO L*P:NEXT QQ:OUT 128,3:RETURN
 1290 END
 1300 Z(KK)=ZS:N$(KK)=N$:GOTO 940
 1310 IF Z(1)>ZS THEN Z(2)=ZS:N$(2)=N$:GOTO 940
 1320 Z(2)=Z(1):Z(1)=ZS:N$(2)=N$(1):N$(1)=N$:GOTO 940
 1330 END
 1340 OUT 136,128:P=50:GOSUB 1260:OUT 136,0:RETURN
13169 PRINT "CODE ?"
13170 INPUT XX$   
13171 IF INSTR("PAGE",XX$)<>0 THEN 13173
13172 GOTO 13169
13173 POKE 862,0:POKE 861,0:WIDTH(76):LINES(10):CLS:END