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

   10 FOR I=529 TO 620:READ W:POKE I,W:NEXT
   20 DATA 245,197,221,229,221,42,250,2,14,6,205,5,0,203,64,32,6,203,72,32,33
   30 DATA 24,64,58,248,2,254,2,40,57,61,50,248,2
   40 DATA 221,54,2,32,221,54,1,142,221,54,0,255,221,54,255,191,221,43,24,29
   50 DATA 58,248,2,254,29,40,26,60,50,248,2,221,54,0,32,221,54,1,191,221,54
   60 DATA 2,255,221,54,3,142,221,35,221,34,250,2,221,225,193,241,201
   70 M1$=""   
   80 M2$="                              "
   90 M3$=""
  100 M4$="" 
  110 CLS:PRINT AT(0,5);M1$:FOR I=1 TO 3:PRINT AT(I,5);M2$:NEXT
  120 PRINT AT(4,0);"BALL ",M3$:PRINT AT(5,5);M3$:PRINT AT(6,5);M3$
  130 FOR I=7 TO 22:PRINT AT(I,5);M2$:NEXT:PRINT AT(23,5);M4$
  135 PRINT AT(21,19);CHR$(191),"",CHR$(142)
  140 POKE 760,15:POKE 762,91 :POKE 763,239
  400 N=1:GOSUB 1130
  500 P=-4212+INT(RND(7)*8):POKE P,138
  510 RD=INT(RND(1)*3)+1:S=46
  520 ON RD GOTO 530,540,550
  530 R=-39:GOTO 560
  540 R=-40:GOTO 560
  550 R=-41 
  560 IF JOYST$(2)<>16 THEN 560
  600 CALL 529
  602 FOR I=1 TO S-M:NEXT
  605 CALL 529
  607 Z=PEEK(P+R)
  610 IF Z=32 THEN POKE P,32:P=P+R:POKE P,138:GOTO 600
  620 IF Z=225 THEN N=N+1:GOSUB 1000:GOTO 500
  630 IF Z=180 THEN R=R-2:GOTO 600
  640 IF Z=181 THEN R=R+2:GOTO 600
  642 IF Z=191 THEN R=-41:GOTO 600
  643 IF Z=142 THEN R=-39:GOTO 600
  650 IF Z=255 OR Z=251 THEN R=R+SGN(R)*-80:GOTO 600
  660 POKE P+R,32
  664 IF Z=160 THEN POKE P+R+1,32:M=M+1:GOTO 666
  665 IF Z=162 THEN POKE P+R-1,32:M=M+1
  666!IFP+R<-4959THENS=1 :GOTO669
  667!IFP+R<-4919THENS=15:GOTO669
  668!S=30
  669 IF M=45 THEN 800
  670 R=R+SGN(R)*-80:GOTO 600 
  800 IF M<45 THEN 900
  805 IF N=1 THEN PRINT AT(10,7);"SIE HABEN DIE MAUER MIT EINEM BALL ":GOTO 820
  810 PRINT AT(10,7);"SIE HABEN DIE MAUER MIT",N
  820 PRINT AT(11,7);"BAELLEN ZERSTOERT."
  830 ON N GOTO 840,845,850,855,860
  840 K$="FANTASTISCH":GOTO 870
  845 K$="HERVORRAGEND":GOTO 870
  850 K$="SEHR GUT":GOTO 870
  855 K$="NICHT SCHLECHT":GOTO 870
  860 K$="RECHT KNAPP"
  870 PRINT AT(12,7);"DAS WAR ",K$,"!"
  880 GOTO 940
  900 PRINT AT(10,7);"SIE HABEN ES LEIDER NICHT"
  905 PRINT AT(11,7);"GESCHAFFT. VIELEICHT KLAPPT"
  910 PRINT AT(12,7);"ES BEIM NAECHSTEN MAL"
  940 PRINT AT(14,7);"MOECHTEN SIE ES NOCH EINAMAL"
  950 PRINT AT(15,13);"PROBIEREN (J/N)"
  960 IF INKEY$="J"THEN N=1:M=0:GOTO 110
  970 IF INKEY$<>"N"THEN 960
  980 PRINT AT(18,13);"TSCHUESS!!":PAUSE(30):CLS:END
 1000 POKE P,32:P=P+R
 1010 FOR I=1 TO 4
 1020 POKE P,138
 1030 BEEP
 1040 POKE P,139
 1050 FOR J=1 TO 50:NEXT:NEXT
 1065 PRINT AT(23,5);M4$:PRINT AT(21,5);M2$
 1067 POKE 760,15:POKE 762,91:POKE 763,239:PRINT AT(21,19);CHR$(191),"",CHR$(142)
 1070 IF N>15 THEN 800
 1130 PRINT AT(6,1);N:RETURN