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

    0 A1$="HEIMCOMPUTER robotron Z9001"
    2 A2$="SPIELE":A9=2
    4 A3$="BOALABYR"
    6 A4$="DAS SCHLANGEN-LABYRINTH"
    8 A5$="EIN GESCHICKLICHKEITSSPIEL"
   10 REM VERFASSER:SCHROETER
   12 REM ANSCHRIFT:MKD,DTW
   14 REM DATUM 00.00.1984 VERSION 0.0
   16 REM INITIALWERTE =================IN
   18 BORDER A9:INK 8:PAPER 1:WINDOW:CLS
   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,29);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(18,2);"VEB ROBOTRON-MESSELEKTRONIK"
  118 PRINT AT(20,2);">OTTO SCHOEN< DRESDEN":INK 8
  119 REM >ENTER< ---------------------UP
  120 PRINT INK 4;AT(22,31);">ENTER<"
  122 T$=INKEY$:IF T$=""THEN 122
  124 IF T$=CHR$(13)THEN PRINT AT(20,27);STRING$(11," "):RETURN
  126 GOSUB 130:GOTO 122
  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"
  152 T$=INKEY$:IF T$=""THEN 152
  153 PRINT INK 2;AT(22,37);T$
  154 IF ASC(T$)=74 OR ASC(T$)=13 THEN T=1:PRINT AT(20,27);STRING$(11," "):RETURN
  156 IF ASC(T$)=78 THEN T=2:PRINT AT(20,27);STRING$(11," "):RETURN
  158 GOSUB 130:PAUSE 10:GOTO 150
  499 REM RICHTUNG SCHLANGE -----------UP
  500 IF C=-1 THEN C=40:RETURN
  501 IF C=40 THEN C=1 :RETURN
  502 IF C=1  THEN C=-40:RETURN
  503 IF C=-40 THEN C=-1 :RETURN
  504 RETURN
  509 REM RICHTUNG MONSTER ------------UP
  510 IF D=40 THEN D=-1:RETURN
  511 IF D=-1 THEN D=-40:RETURN
  512 IF D=-40 THEN D=1 :RETURN
  513 IF D=1  THEN D=40:RETURN
  514 RETURN
  519 REM SPRUNG SCHLANGE -------------UP
  520 A3=A
  521 A=A-(((X=8)-(X=9))*(ABS(C)=40)+((X=11)-(X=10))*40*(ABS(C)=1))*2
  522 IF A>A1+880 OR A<A1 OR PEEK(A)<>32 THEN A=A3
  523 IF A=A3 THEN RETURN
  524 LS=LA+(C=1)*(X=11)+(C=-1)*(X=10)+(C=40)*(X=9)+(C=-40)*(X=8)
  525 IF LS=LA THEN LS=LA-1
  526 LA=LS : RETURN
  529 REM SPRUNG MONSTER --------------UP
  530 Q=1 : D1=D : GOSUB 510 : D2=D : D=D1
  531 W=LA-LB : IF W>1 THEN W=1
  532 IF W<-1 THEN W=-1
  533 B4=B : LB=LB+W : B=B+W*D2*2 : IF PEEK(B)=255 THEN B=B4:LB=LB-W
  534 RETURN
  539 REM RUNDENENDE ------------------UP
  540 S1=S1+S : S=0 : G=H : H=201
  541 IF G=201 THEN H=58
  542 V1=V : RETURN
  999 REM HAUPTPROGRAMM ===============HP
 1000 PAPER 1:WINDOW:CLS
 1010 BORDER 1
 1020 H1=0
 1030 S=0 : S1=0 : INK 2 : Q=0
 1040 A$=""
 1041 B$="    "
 1042 FOR I=0 TO 6 STEP 2
 1043 PRINT AT(I,0);A$
 1044 PRINT AT(I+1,0);B$
 1045 PRINT AT(20-I,0);B$
 1046 PRINT AT(21-I,0);A$
 1047 PRINT AT(I/2+9,0);"              "
 1048 A$=LEFT$(A$,15)+"    "+RIGHT$(A$,15)
 1049 A$=LEFT$(A$,I+2)+""+MID$(A$,I+4)
 1050 A$=LEFT$(A$,31-I)+""+MID$(A$,33-I)
 1051 B$=LEFT$(B$,I+3)+""+MID$(B$,I+5)
 1052 B$=LEFT$(B$,30-I)+""+MID$(B$,32-I)
 1053 NEXT I
 1054 B$=LEFT$(B$,9)+""+RIGHT$(B$,9)
 1055 PRINT AT(8,0);B$
 1056 PRINT AT(13,0);B$
 1070 V=224 : G=58 : H=201 : V1=V : A1=-5121
 1080 FOR A=A1 TO A1+880
 1081 IF PEEK(A)=201 THEN POKE A-1024,48
 1082 NEXT A
 1090 B1=32 : LA=1 : A=A1+819
 1100 LB=1 : B=A1+363 : A2=0 : C=40
 1110 O=A1+INT(RND(1)*800)
 1111 IF PEEK(O)<>201 AND PEEK(O)<>58 THEN 1110
 1112 IF PEEK(O)=H THEN V1=V1-1
 1113 POKE O,207 : POKE O-1024,80 : V=V-1
 1114 IF S>1 THEN RETURN
 1120 D=-1
 1200 IF A2=H THEN S=S+1
 1210 IF PEEK(A+C)=255 THEN GOSUB 500
 1220 IF A2<>H AND A2<>G THEN 1225
 1221 POKE A,G
 1222 IF G=201 THEN POKE A-1024,48
 1223 IF G=58  THEN POKE A-1024,64
 1224 GOTO 1230
 1225 POKE A,32
 1230 IF S=V1 THEN GOSUB 540
 1240 X=PEEK(36)
 1250 IF X<>0 AND PEEK(A+C)=32 THEN GOSUB 520
 1260 A=A+C
 1270 IF A=O THEN S1=S1+5 : GOSUB 1110
 1280 A2=PEEK(A)
 1290 IF A2=38 THEN 1400
 1300 POKE A,47 : POKE A-1024,16
 1310 IF PEEK(B+D)=255 THEN GOSUB 510
 1320 POKE B,B1
 1330 IF B1=201 THEN POKE B-1024,48
 1340 IF B1=207 THEN POKE B-1024,80
 1350 IF B1=58  THEN POKE B-1024,64
 1360 IF B1=32 AND Q=0 AND LA<>LB AND PEEK(B+D)<>255 THEN GOSUB 530
 1370 IF B1<>32 THEN Q=0
 1380 B=B+D : IF PEEK(B)=47 THEN 1400
 1390 B1=PEEK(B) : POKE B,38 : POKE B-1024,16 : GOTO 1200
 1400 POKE A,42 : POKE A-1024,144 : BEEP
 1410 S=S+S1 : INK 8
 1420 PRINT AT(9,12);"SCORE"
 1421 PRINT AT(9,18);S
 1430 IF H1<S THEN H1=S
 1440 PRINT AT(12,10);"HI-SCORE"
 1441 PRINT AT(12,19);H1
 1450 KY$=INKEY$:GOSUB 120
 1460 KY$="FORTSETZEN":GOSUB 150:CLS
 1470 IF T=1 THEN 1030
 1480 CLS:END