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

    1 REM PROGRAMM"HALMA"
    2 REM RENZ,RED EC745,801 DRESDEN  
    4 CLEAR 256:GOTO 5000
    5 BORDER 1:E=33:Z=1:D=0 
   10 WINDOW 0,23,0,39:PAPER 1:CLS
   17 WINDOW 1,3,4,14
   20 PAPER 5:INK 8:CLS 
   21 PRINT AT(1,4);" "
   22 PRINT AT(2,5);"H A L M A"
   24 PAPER 1:INK 8:PRINT AT(9,0);"ZEILE:"
   26 PRINT AT(11,0);"SPALTE:"
   28 PRINT AT(13,0);"RICHTUNG:"
   32 A$="1 2 3 4 5 6 7"
   34 PRINT AT(2,23);A$:PRINT AT(19,23);A$ 
   38 FOR I=1 TO 7:A=3+2*I:J=64+I
   42 PRINT AT(A,20);CHR$(J)
   44 PRINT AT(A,37);CHR$(J):NEXT I
   45 PAPER 1:INK 6
   46 FOR I=3 TO 18
   47 FOR J=21 TO 36
   48 PRINT AT(I,J);CHR$(255)
   49 NEXT J:NEXT I
   52 PAPER 5:INK 8 
   54 A$="" 
   56 FOR I=4 TO 16 STEP 2:PRINT AT(I,26);A$:NEXT I
   62 FOR I=8 TO 12 STEP 2:PRINT AT(I,22);A$
   68 PRINT AT(I,30);A$:NEXT I
   70 A$=""
   72 FOR I=5 TO 17 STEP 2:PRINT AT(I,26);A$:NEXT I
   76 FOR I=9 TO 13 STEP 2:PRINT AT(I,22);A$
   82 PRINT AT(I,30);A$:NEXT I
  100 WINDOW 21,23,0,39:BEEP
  101 PAPER 1:PRINT AT(21,0);" "
  102 IF Z>1 THEN GOTO 210
  105 PAPER 5:INK 8:CLS
  110 PRINT AT(22,2);"KANN'S LOSGEHEN? (J)/N"           
  112 PRINT AT(21,0);" "
  115 PAPER 3:INK 1:PRINT AT(22,25);">"
  130 A$=INKEY$
  135 IF A$="N"THEN GOTO 900 
  140 IF A$="J"THEN GOTO 200
  145 IF A$=CHR$(13)THEN GOTO 200
  150 GOTO 130
  200 PAPER 5:INK 8:CLS
  205 PRINT AT(22,3);"ENTFERNEN SIE ZUERST EINEN STEIN!"
  208 PRINT AT(21,0);" "
  210 GOSUB 1000
  220 GOSUB 3000
  222 IF Z>1 THEN GOTO 235
  225 PAPER 5:INK 8:CLS
  227 PRINT AT(21,0);" "
  230 PRINT AT(22,3);"SPRINGEN SIE AUF'S FREIE FELD!"  
  235 GOSUB 1000
  240 FOR A=8 TO 11
  245 GOSUB 4000
  250 IF W=1 THEN A=11:NEXT A:GOTO 300
  255 NEXT A
  260 PAPER 5:INK 8:CLS
  265 PRINT AT(22,3);"DER STEIN KANN NICHT SPRINGEN!"
  267 PRINT AT(21,0);" "
  270 PAPER 3:INK 1:PRINT AT(9,10);"?"
  275 BEEP
  280 GOTO 235
  300 PAPER 3:INK 1:PRINT AT(13,10);">"
  310 A$=INKEY$
  315 IF LEN(A$)=0 THEN GOTO 310
  320 PAPER 1:CLS
  322 PRINT AT(21,0);" "
  325 PRINT AT(13,12);" ":PRINT AT(13,10);" "
  330 A=ASC(A$)
  335 FOR J=8 TO 12
  340 IF A=J THEN J=12:NEXT J:GOTO 400
  345 NEXT J
  350 PAPER 5:INK 8:CLS
  352 PRINT AT(21,0);" "
  355 PRINT AT(22,5);"PFEILE BENUTZEN!"
  360 PAPER 3:INK 1:PRINT AT(13,12);"?"
  365 BEEP
  370 GOTO 300
  400 IF A<>12 THEN GOTO 440
  405 PAPER 5:INK 8:CLS
  410 PRINT AT(22,5);"KONZENTRATION!"
  411 PRINT AT(21,0);" "
  412 BEEP
  415 GOTO 235
  440 GOSUB 4000
  445 IF W=1 THEN GOTO 500
  450 PAPER 5:INK 8:CLS
  452 PRINT AT(21,0);" "
  455 PRINT AT(22,3);"SPRUNG IST NICHT MOEGLICH!"
  460 PAPER 3:INK 1:PRINT AT(13,12);"?"
  465 BEEP
  470 GOTO 300
  500 GOSUB 3000
  505 I=I+K:GOSUB 3000
  510 I=I+K
  515 POKE I,132
  520 POKE I-1,133:POKE I-40,135:POKE I-41,134
  600 J=0:S=0
  605 FOR I=-4899 TO-4405 STEP 2
  610 IF J=8 THEN I=I+64:J=0
  615 IF PEEK(I)<>132 THEN J=J+1:NEXT I
  617 IF I=-4403 GOTO 700
  620 S=S+1
  625 FOR A=8 TO 11
  630 GOSUB 4000
  635 IF W=1 THEN A=11:NEXT A:GOTO 235
  640 NEXT A
  645 J=J+1:NEXT I
  700 PAPER 5:INK 8:A=4:I=12:J=1 
  703 CLS
  704 PRINT AT(21,0);" "
  705 IF S<3 THEN GOTO 715
  710 IF S<D THEN PRINT AT(21,4);"SCHON BESSER!" 
  711 GOTO 725
  715 IF S=1 THEN PRINT AT(22,A);"TOLL!! NUR":A=15 
  720 IF S=2 THEN PRINT AT(22,A);"PRIMA, NUR":A=15
  725 PRINT AT(22,A);"NOCH",S,"STEIN"  
  727 IF S>9 THEN I=13
  730 IF S>1 THEN PRINT AT(22,A+I);"E":J=2 
  735 PRINT AT(22,A+I+J); "UEBRIG!"
  738 IF D=50 THEN GOTO 790
  740 PRINT AT(23,4);"NEUES SPIEL? (J)/N "
  745 PAPER 3:INK 1
  750 PRINT AT(23,24);">"
  755 D=S
  760 IF D<E THEN E=D
  761 A$=INKEY$
  763 IF A$="J"THEN Z=Z+1:GOTO 10
  764 IF A$=CHR$(13)THEN Z=Z+1:GOTO 10
  765 IF A$="N"GOTO 767
  766 GOTO 761
  767 PAPER 5:INK 8:CLS:PRINT AT(21,0);" "
  770 PRINT AT(21,4);"BESTES ERGEBNIS BEI"
  775 IF Z<2 THEN PRINT AT(21,23);Z,"VERSUCH:" :GOTO 782 
  780 PRINT AT(21,23);Z,"VERSUCHEN:" 
  782 S=E
  785 A=10:I=12:J=1:D=50:GOTO 725
  790 PRINT AT(23,4);"BIS ZUM NAECHSTEN MAL!"
  795 WINDOW 0,23,0,39
  800 END
  900 PAPER 5:INK 8:CLS
  905 PRINT AT(21,0);" "
  910 PRINT AT(21,4);"SCHADE!"
  920 PRINT AT(23,4);"AUF WIEDERSEHEN!"
  925 WINDOW 0,23,0,39
  930 END
 1000 REM UP KOORDINATEN
 1010 PAPER 1:PRINT AT(9,8);" ":PRINT AT(11,9);" " 
 1020 PAPER 3:INK 1:PRINT AT(9,7);">"
 1025 A$=INKEY$
 1028 IF LEN(A$)=0 THEN GOTO 1025
 1035 PAPER 1:INK 3:CLS:PRINT AT(9,10);" "
 1037 PRINT AT(21,0);" "
 1040 PRINT AT(9,8);A$
 1045 PRINT AT(9,7);" "
 1050 FOR I=0 TO 6
 1055 IF ASC(A$)=65+I THEN II=I:I=6:NEXT I:GOTO 1200
 1060 NEXT I
 1062 WINDOW 21,23,0,39
 1065 PAPER 5:INK 8:CLS:PRINT AT(22,3);"BUCHSTABEN A-G VERWENDEN!"
 1070 PRINT AT(21,0);" "
 1075 PAPER 3:INK 1:PRINT AT(9,10);"?"
 1077 BEEP
 1080 GOTO 1000
 1200 PAPER 3:INK 1:PRINT AT(11,8);">"
 1210 PAPER 1:PRINT AT(11,9);" "
 1215 A$=INKEY$
 1217 IF LEN(A$)=0 THEN GOTO 1215
 1220 PAPER 1:INK 3:PRINT AT(11,9);A$
 1222 PRINT AT(11,11);" ":CLS 
 1223 PRINT AT(21,0);" "
 1225 PRINT AT(11,8);" "
 1230 FOR J=1 TO 7
 1235 IF VAL(A$)=J THEN GOTO 1300
 1240 NEXT J
 1245 PAPER 5:INK 8:CLS:PRINT AT(22,5);"ZAHLEN 1-7 VERWENDEN!"
 1247 PRINT AT(21,0);" "
 1250 PAPER 3:INK 1:PRINT AT(11,11);"?"
 1252 BEEP
 1255 GOTO 1200
 1300 I=-4899+II*80+2*J 
 2105 IF PEEK(I)=132 THEN RETURN
 2110 PAPER 5:INK 8:CLS:PRINT AT(22,6);"DA IST KEIN STEIN!"
 2115 PRINT AT(21,0);" "
 2120 PAPER 3:INK 1:PRINT AT(9,10);"?"
 2127 BEEP
 2130 GOTO 1000
 3000 REM UP STEIN TILGEN
 3005 POKE I,32:POKE I-1,32
 3015 POKE I-40,32:POKE I-41,32:RETURN
 4000 REMUP SPRUNG MOEGL.?
 4005 W=0
 4010 IF A=8 THEN K=-2
 4015 IF A=9 THEN K=2
 4020 IF A=10 THEN K=80
 4025 IF A=11 THEN K=-80
 4035 IF PEEK(I+K)<>132 THEN RETURN
 4040 IF PEEK(I+2*K)<>32 THEN RETURN
 4045 W=1:RETURN
 5000 WINDOW 0,23,0,39:PAPER 1:INK 8:CLS
 5002 PRINT AT(0,0);" "
 5005 BORDER 2
 5010 PRINT AT(2,2);"HEIMCOMPUTER robotron Z9001" 
 5011 PRINT AT(6,2);CHR$(136)
 5012 PRINT AT(4,2);CHR$(193)
 5013 PRINT AT(4,37);CHR$(137)
 5014 PRINT AT(6,37);CHR$(200)
 5015 PRINT AT(5,2);CHR$(159)
 5016 PRINT AT(5,37);CHR$(192)
 5020 PRINT AT(5,3);"SPIEL"
 5022 FOR I=3 TO 36
 5023 PRINT AT(4,I);CHR$(158):PRINT AT(6,I);CHR$(248)
 5024 NEXT I
 5025 INK 2:PRINT AT(8,2);STRING$(36,"")
 5026 FOR I=9 TO 13:PRINT AT(I,2);"":PRINT AT(I,37);"":NEXT I
 5027 PRINT AT(14,2);STRING$(36,"")   
 5030 INK 8:PRINT AT(11,24);"'STECK'HALMA"  
 5040 INK 3:PRINT AT(5,29);"R+HALMA"
 5050 PRINT INK 4;AT(22,31);">ENTER<"
 5060 INK 3
 5070 PRINT AT(18,2);"VEB ROBOTRON-MESSELEKTRONIK "
 5080 PRINT AT(20,2);">OTTO SCHOEN< DRESDEN
 5200 A$=INKEY$
 5215 IF A$=CHR$(13)THEN GOTO 5
 5220 GOTO 5200