Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)
1 REM * MC-program *!"!"!"!"00*wind/on 1167 * ⇘
wind/off 1177 * *bs-trans* 11C7 p:11C1 ******!<trans>EC00:⇘
11E2!<000000000000000 BEGIN-BASIC-PGM
10 OUT.12
20 PR.;PR.;
21 PR."Ziel sind 4 Spielsteine "
22 PR.;PR."SENKRECHT,WAAGERECHT"
23 PR.;PR."oder DIAGONAL anzuordnen"
24 PR.
30 PR.'Bitte die Spielernamen eingeben'
40 PR.;PR.;
43 PR.'erster Spieler:'
44 PR.;I$(TOP);PR.
45 D=LEN;IFD<1GOTO43
46 IF D>16 D=16;POKE(TOP+D),0
48 PR.'zweiter Spieler:'
50 PR.;I$(TOP+1+D)
52 H=LEN;IFH<1GOTO48
53 IF H>16 H=16;POKE(TOP+D+1+H),0
55 PR.;PR.;PR.
57 O$(TOP)
60 PR.' spielt mit '
61 TAB(D+12)
62 PR.''
63 TAB(D+12)
64 PR.''
70 PR.;PR.;PR.
72 O$(TOP+1+D)
74 PR.' spielt mit '
75 TAB(H+12)
77 PR.''
80 TAB(H+12)
82 PR.''
83 PR.;PR.;PR." >ENT<"
89 Q=0;T=0;N=0
99 E=INCH.
100 OUT.12
101 Q=Q+1
110 FOR I=-4318 TO -4290
120 POKE I,160
130 NEXTI
140 POKE -4318,167
150 FOR I=-4314 TO -4294 STEP 4
160 POKE I,162
170 NEXTI
180 POKE -4290,170
190 L=HEX(EF02);O=HEX(EC42)
210 FOR J=1 TO 4
220 FOR I=L TO O STEP -32
230 POKE I,161
240 NEXTI
250 L=L+4;O=O+4
260 FOR I=O TO L STEP 32
270 POKE I,161
280 NEXTI
290 L=L+4;O=O+4
300 NEXT J
305 J='A'
310 FOR I=HEX(EF44) TO HEX(EF5C) STEP 4
320 POKE I,J
330 J=J+1
340 NEXTI
345 POKE HEX(EC00),32
350 CALL HEX(11C7)
357 CALL HEX(1167)
400 GOSUB 1800
410 IF N>T GOTO 740
440 OUT.12
445 CALLHEX(F5CF);CALLHEX(F5CF)
450 O$(TOP+D+1)
455 CALLHEX(F5CF);CALLHEX(F5CF)
457 PR.'denkt nach'
460 R=INCHAR
465 IF R=78 GOTO 990
470 IF R < 65 GOTO 440
480 IF R > 71 GOTO 440
490 GOSUB 1000
500 Z = R - 44
510 Y = R - 64
512 IF @(Z) = 0 GOTO 440
513 IF @(Z) < HEX(3C40) @(Z)=0;GOTO 440
515 X=@(Z)
520 GOSUB 1400
525 GOSUB 2000
530 @(Z) = @(Z) - 128
740 OUT.12
745 CALLHEX(F5CF);CALLHEX(F5CF)
750 O$(TOP)
765 CALLHEX(F5CF);CALLHEX(F5CF)
766 PR.'denkt nach'
767 R=INCHAR
770 IF R < 65 GOTO 740
780 IF R > 71 GOTO 740
790 GOSUB 1200
800 Z = R - 44
810 Y = R - 64
812 IF @(Z) = 0 GOTO 740
813 IF @(Z) < HEX(3C40) @(Z)=0;GOTO 740
815 X=@(Z)
820 GOSUB 1400
825 GOSUB 2000
830 @(Z) = @(Z) - 128
845 PR.;PR.
900 GOTO 440
990 CALL HEX(1177)
991 PRINT' '
992 PRINT' Z1013 eagle-SOFTWARE'
993 PRINT' '
999 STOP
1000 REM **** ****
1010 @(10)=144
1020 @(11)=158
1030 @(12)=145
1040 @(13)=192
1050 @(14)=144
1060 @(15)=248
1070 @(16)=145
1080 @(17)=159
1090 @(18)=175
1100 RETURN
1200 REM **** ****
1210 @(10)=190
1220 @(11)=255
1230 @(12)=143
1240 @(13)=255
1250 @(14)=142
1260 @(15)=255
1270 @(16)=191
1280 @(17)=255
1290 @(18)=255
1300 RETURN
1400 REM CHIP FAELLT
1405 FOR I=@(Y) TO @(Z) STEP 32
1407 X=I
1410 POKE X-33,@(10)
1420 POKE X-32,@(11)
1430 POKE X-31,@(12)
1440 POKE X+1,@(13)
1450 POKE X+33,@(14)
1460 POKE X+32,@(15)
1470 POKE X+31,@(16)
1480 POKE X-1,@(17)
1490 POKE X,@(18)
1500 CALL HEX(11E2)
1505 IF I = @(Z) RETURN
1510 POKE X-33,32
1520 POKE X-32,32
1530 POKE X-31,32
1540 POKE X+1,32
1550 POKE X+33,32
1560 POKE X+32,32
1570 POKE X+31,32
1580 POKE X-1,32
1590 POKE X,32
1595 X=X+32
1600 NEXT I
1700 RETURN
1800 J=HEX(3EE4);K=HEX(3C04)
1810 FOR I=1 TO 7
1820 @(I)=K
1830 @(I+20)=J
1840 J=J+4
1850 K=K+4
1860 NEXTI
1900 RETURN
2000 REM *** AUSWERTUNG
2010 V=0;O=@(Z);@(30)=O
2020 FOR I=1 TO 3
2030 O=O+128
2040 IF PEEK (O)=@(18) V=V+1;@(V+30)=O
2045 IF PEEK (O)#@(18) GOTO 2060
2050 NEXT I
2060 IF V=3 GOTO 4000
2070 O=@(Z);@(30)=O
2080 FOR I=1 TO 3
2090 O=O-128
2100 IF PEEK (O)=@(18) V=V+1;@(V+30)=O
2105 IF PEEK (O)#@(18) GOTO 2120
2110 NEXT I
2120 IF V > 2 GOTO 4000
2130 V=0;O=@(Z);@(30)=O
2140 FOR I=1 TO 3
2150 O=O+4
2160 IF PEEK (O)=@(18) V=V+1;@(V+30)=O
2165 IF PEEK (O)#@(18) GOTO 2180
2170 NEXT I
2180 IF V=3 GOTO 4000
2190 O=@(Z);@(30)=O
2200 FOR I=1 TO 3
2210 O=O-4
2220 IF PEEK (O)=@(18) V=V+1;@(V+30)=O
2225 IF PEEK (O)#@(18) GOTO 2240
2230 NEXT I
2240 IF V>2 GOTO 4000
2245 O=@(Z);V=0;@(30)=O
2250 FOR I=1 TO 3
2260 O=O+124
2270 IF PEEK (O)=@(18) V=V+1;@(V+30)=O
2275 IF PEEK (O)#@(18) GOTO 2285
2280 NEXT I
2285 IF V>2 GOTO 4000
2290 O=@(Z);@(30)=O
2300 FOR I=1 TO 3
2310 O=O-124
2320 IF PEEK (O)=@(18) V=V+1;@(V+30)=O
2325 IF PEEK (O)#@(18) GOTO 2340
2330 NEXT I
2340 IF V>2 GOTO 4000
2350 O=@(Z);V=0;@(30)=O
2360 FOR I=1 TO 3
2370 O=O+132
2380 IF PEEK (O)=@(18) V=V+1;@(V+30)=O
2385 IF PEEK (O)#@(18) GOTO 2395
2390 NEXT I
2395 IF V>2 GOTO 4000
2400 O=@(Z);@(30)=O
2410 FOR I=1 TO 3
2420 O=O-132
2430 IF PEEK (O)=@(18) V=V+1;@(V+30)=O
2435 IF PEEK (O)#@(18) GOTO 2450
2440 NEXT I
2450 IFV>2GOTO4000
2500 RETURN
4000 OUT.12
4001 IF @(18)=175 O$(TOP+D+1);N=N+1
4002 IF @(18)=255 O$(TOP);T=T+1
4003 PR.' ist Sieger!'
4004 L=D;W=HEX(B000)
4005 FOR I=1TO 20
4006 D=32
4100 POKE @(30)+W,D
4101 POKE @(31)+W,D
4102 POKE @(32)+W,D
4103 POKE @(33)+W,D
4120 FOR U=1 TO 400;NEXTU
4200 D=@(18)
4205 X=IN(2)
4206 IF X=87 GOTO 990
4210 POKE @(30)+W,D
4211 POKE @(31)+W,D
4212 POKE @(32)+W,D
4213 POKE @(33)+W,D
4311 FOR U=1 TO 400;NEXTU
4320 NEXT I
4330 CALLHEX(1177)
4335 OUT.12
4340 PR.;PR.;PR.
4350 PR.'Spielstand nach dem',#3,Q,'. Spiel'
4360 PR.;PR.;PR.
4370 O$(TOP);PR.
4380 D=L
4390 TAB(D+1)
4400 PR. T,' :',#2,N
4401 O$(TOP+D+1);PR.;PR.
4402 PR.'NOCH EIN SPIEL ? N/ENT'
4403 E=INCHAR
4404 IF E=78 GOTO 990
4405 GOTO 100
4406 STOP
4420 STOP
4500 STOP
5000 STOP
8000 STOP
9000 STOP