1 REM Ins{nd av Lennart Einarsson <6554> 1986-06-01 14.31.21 10 REM ******************************** 20 REM ********** F I A *********** 30 REM ******* ABC80 och 40tkn ******** 40 REM ** COPYRIGHT --- C.Andreasson * 50 REM ******************************** 60 RANDOMIZE 70 DIM A%(5%),B%(5%),C%(5%),D%(5%),K$=1% 80 GOSUB 1730 90 ONERRORGOTO 90 100 ; CHR$(12%);"HUR M]NGA MOTSPELARE? (1-3) " 110 INPUT \% : \%=\%+1% : IF \%<2% OR \%>4% THEN 100 120 REM *** INITIALISERING *** 130 ; CHR$(12%) : RESTORE 1490 : FOR I%=1% TO 195% : READ R%,K% : ; CUR(R%,K%);"" : NEXT I% 140 RESTORE 1490 : FOR I%=1% TO 4% : READ R%,K% : ; CUR(R%,K%);CHR$(I%+48%) : NEXT I% 150 RESTORE 1550 : FOR I%=1% TO 4% : READ R%,K% : ; CUR(R%,K%);"B" : NEXT I% 160 RESTORE 1610 : FOR I%=1% TO 4% : READ R%,K% : ; CUR(R%,K%);"C" : NEXT I% 170 RESTORE 1670 : FOR I%=1% TO 4% : READ R%,K% : ; CUR(R%,K%);"D" : NEXT I% 180 FOR [%=0% TO 4% : ; CUR([%,0%)CHR$(151%) : NEXT [% 190 ; CUR(1%,1%);"5 #  ?o" : ; CUR(2%,1%);"5 !  =n `" : ; CUR(3%,1%);"5   5j j" 200 ; CUR(0%,2%);STRING$(36%,35%) : ; CUR(0%,1%);"7" : ; CUR(0%,38%);"k" : ; CUR(1%,38%);"j" : ; CUR(2%,38%);"z" 210 GOSUB 2190 220 REM *** SPELARE -A- *** 230 GOSUB 2280 240 K$="A" : GOSUB 1860 : IF A%(1%)>=45% AND A%(2%)>=45% AND A%(3%)>=45% AND A%(4%)>=45% THEN 1980 250 ; CUR(17%,22%)CHR$(7%);"Pj{s" 260 ONERRORGOTO 250 270 ; CUR(18%,22%); : INPUT J% 280 ; CUR(18%,22%)" " 290 IF J%>4% OR J%<1% 260 300 ; CUR(17%,22%)" " 310 N%=1% : K$=CHR$(J%+48%) : W%=0% 320 IF NOT A%(J%)=0% THEN 350 330 IF I%>1% AND I%<6% THEN 480 340 GOSUB 1450 : W%=1% 350 B1%=A%(J%)+I% 360 FOR K%=1% TO 4% : P%=A%(J%)+4% 370 GOSUB 2350 380 IF B%(K%)>40% OR B%(K%)=0% THEN 400 390 IF B%(5%)=B1% THEN M%=2% : GOSUB 1290 : W%=1% 400 IF C%(K%)>40% OR C%(K%)=0% THEN 420 410 IF C%(5%)=B1% THEN M%=3% : GOSUB 1290 : W%=1% 420 IF D%(K%)>40% OR D%(K%)=0% THEN 440 430 IF D%(5%)=B1% THEN M%=4% : GOSUB 1290 : W%=1% 440 NEXT K% : IF W% THEN 470 450 IF A%(J%)>0% THEN 460 ELSE 480 460 M%=5% : P%=A%(J%)+4% : GOSUB 1290 470 A%(J%)=A%(J%)+I% 480 GOSUB 2000 : IF E% THEN 220 490 REM *** SPELARE -B- *** 500 N%=2% : K$="B" : W%=0% 510 GOSUB 1860 : IF B%(1%)>=45% AND B%(2%)>=45% AND B%(3%)>=45% AND B%(4%)>=45% THEN 1980 520 FOR J%=1% TO 4% : IF B%(J%)=0% AND I%>1% AND I%<6% THEN 640 530 IF B%(J%)>40% THEN 640 540 B1%=B%(J%)+I%+10% : IF B1%>40% THEN B1%=B1%-40% 550 FOR K%=1% TO 4% : P%=B%(J%)+4% 560 GOSUB 2350 570 IF A%(K%)>40% OR A%(K%)=0% THEN 590 580 IF A%(K%)=B1% THEN M%=1% : GOSUB 1290 : W%=1% 590 IF C%(K%)>40% OR C%(K%)=0% THEN 610 600 IF C%(5%)=B1% THEN M%=3% : GOSUB 1290 : W%=1% 610 IF D%(K%)>40% OR D%(K%)=0% THEN 630 620 IF D%(5%)=B1% THEN M%=4% : GOSUB 1290 : W%=1% 630 NEXT K% : IF W% THEN 730 640 NEXT J% 650 FOR J%=1% TO 4% : IF B%(J%)=0% THEN 670 660 NEXT J% : GOTO 690 670 IF I%>1% AND I%<6% THEN 660 680 GOSUB 1450 : B%(J%)=I% : GOTO 740 690 FOR J%=1% TO 4% : IF B%(J%)>20% AND B%(J%)<45% THEN 710 ELSE NEXT J% 700 FOR J%=1% TO 4% : IF B%(J%)=0% OR B%(J%)>45% THEN 720 710 M%=5% : P%=B%(J%)+4% : GOSUB 1290 : GOTO 730 720 NEXT J% : GOTO 740 730 B%(J%)=B%(J%)+I% 740 GOSUB 2000 : IF E% THEN 490 750 REM *** SPELARE -C- *** 760 IF \%<3% THEN 220 770 N%=3% : K$="C" : W%=0% 780 GOSUB 1860 : IF C%(1%)>=45% AND C%(2%)>=45% AND C%(3%)>=45% AND C%(4%)>=45% THEN 1980 790 FOR J%=1% TO 4% : IF C%(J%)=0% AND I%>1% AND I%<6% THEN 910 800 IF C%(J%)>40% THEN 910 810 B1%=C%(J%)+I%+20% : IF B1%>40% THEN B1%=B1%-40% 820 FOR K%=1% TO 4% : P%=C%(J%)+4% 830 GOSUB 2350 840 IF A%(K%)>40% OR A%(K%)=0% THEN 860 850 IF A%(K%)=B1% THEN M%=1% : GOSUB 1290 : W%=1% 860 IF B%(K%)>40% OR B%(K%)=0% THEN 880 870 IF B%(5%)=B1% THEN M%=2% : GOSUB 1290 : W%=1% 880 IF D%(K%)>40% OR D%(K%)=0% THEN 900 890 IF D%(5%)=B1% THEN M%=4% : GOSUB 1290 : W%=1% 900 NEXT K% : IF W% THEN 1000 910 NEXT J% 920 FOR J%=1% TO 4% : IF C%(J%)=0% THEN 940 930 NEXT J% : GOTO 960 940 IF I%>1% AND I%<6% THEN 930 950 GOSUB 1450 : C%(J%)=I% : GOTO 1010 960 FOR J%=1% TO 4% : IF C%(J%)>20% AND C%(J%)<45% THEN 980 ELSE NEXT J% 970 FOR J%=1% TO 4% : IF C%(J%)=0% OR C%(J%)>45% THEN 990 980 M%=5% : P%=C%(J%)+4% : GOSUB 1290 : GOTO 1000 990 NEXT J% : GOTO 1010 1000 C%(J%)=C%(J%)+I% 1010 GOSUB 2000 : IF E% THEN 750 1020 REM *** SPELARE -D- *** 1030 IF \%<4% THEN 220 1040 N%=4% : K$="D" : W%=0% 1050 GOSUB 1860 : IF D%(1%)>=45% AND D%(2%)>=45% AND D%(3%)>=45% AND D%(4%)>=45% THEN 1980 1060 FOR J%=1% TO 4% : IF D%(J%)=0% AND I%>1% AND I%<6% THEN 1180 1070 IF D%(J%)>40% THEN 1180 1080 B1%=D%(J%)+I%+30% : IF B1%>40% THEN B1%=B1%-40% 1090 FOR K%=1% TO 4% : P%=D%(J%)+4% 1100 GOSUB 2350 1110 IF A%(K%)>40% OR A%(K%)=0% THEN 1130 1120 IF A%(K%)=B1% THEN M%=1% : GOSUB 1290 : W%=1% 1130 IF C%(K%)>40% OR C%(K%)=0% THEN 1150 1140 IF C%(5%)=B1% THEN M%=3% : GOSUB 1290 : W%=1% 1150 IF B%(K%)>40% OR B%(K%)=0% THEN 1170 1160 IF B%(5%)=B1% THEN M%=2% : GOSUB 1290 : W%=1% 1170 NEXT K% : IF W% THEN 1270 1180 NEXT J% 1190 FOR J%=1% TO 4% : IF D%(J%)=0% THEN 1210 1200 NEXT J% : GOTO 1230 1210 IF I%>1% AND I%<6% THEN 1200 1220 GOSUB 1450 : D%(J%)=I% : GOTO 1280 1230 FOR J%=1% TO 4% : IF D%(J%)>20% AND D%(J%)<45% THEN 1250 ELSE NEXT J% 1240 FOR J%=1% TO 4% : IF D%(J%)=0% OR D%(J%)>45% THEN 1260 1250 M%=5% : P%=D%(J%)+4% : GOSUB 1290 : GOTO 1270 1260 NEXT J% : GOTO 1280 1270 D%(J%)=D%(J%)+I% 1280 GOSUB 2000 : IF E% THEN 1020 ELSE 220 1290 REM *** PLACERING P] BANAN *** 1300 ON N% RESTORE 1490,1550,1610,1670 1310 IF P%-4%>45% THEN RETURN 1320 IF P%+I%-4%>=45% THEN X%=1% ELSE X%=0% 1330 FOR Y%=1% TO P% : READ R,K : NEXT Y% 1340 ; CUR(R,K);"" 1350 IF X% THEN RETURN 1360 FOR Y%=1% TO I% : READ R,K : NEXT Y% 1370 ; CUR(R,K);K$ 1380 ON M% GOTO 1400,1410,1430,1440,1390 1390 RETURN 1400 A%(K%)=0% : RESTORE 1490 : FOR Y%=1% TO K% : READ R,K : NEXT Y% : ; CUR(R,K);CHR$(K%+48%) : RETURN 1410 B%(K%)=0% : RESTORE 1550 : K$="B" 1420 FOR Y%=1% TO K% : READ R,K : NEXT Y% : ; CUR(R,K);K$ : RETURN 1430 C%(K%)=0% : RESTORE 1610 : K$="C" : GOTO 1420 1440 D%(K%)=0% : RESTORE 1670 : K$="D" : GOTO 1420 1450 ON N% RESTORE 1490,1550,1610,1670 1460 FOR Y%=1% TO J% : READ R,K : NEXT Y% : ; CUR(R,K);"" 1470 ON N% RESTORE 1490,1550,1610,1670 1480 FOR Z%=1% TO I%+4% : READ R,K : NEXT Z% : ; CUR(R,K);K$ : RETURN 1490 DATA 8,8,8,9,9,8,9,9 1500 DATA 11,7,11,8,11,9,11,10,11,11,10,11,9,11,8,11,7,11,7,12 1510 DATA 7,13,8,13,9,13,10,13,11,13,11,14,11,15,11,16,11,17,12,17 1520 DATA 13,17,13,16,13,15,13,14,13,13,14,13,15,13,16,13,17,13,17,12 1530 DATA 17,11,16,11,15,11,14,11,13,11,13,10,13,9,13,8,13,7,12,7 1540 DATA 12,8,12,9,12,10,12,11,12,12 1550 DATA 8,15,8,16,9,15,9,16 1560 DATA 7,13,8,13,9,13,10,13,11,13,11,14,11,15,11,16,11,17,12,17 1570 DATA 13,17,13,16,13,15,13,14,13,13,14,13,15,13,16,13,17,13,17,12 1580 DATA 17,11,16,11,15,11,14,11,13,11,13,10,13,9,13,8,13,7,12,7 1590 DATA 11,7,11,8,11,9,11,10,11,11,10,11,9,11,8,11,7,11,7,12 1600 DATA 8,12,9,12,10,12,11,12,12,12 1610 DATA 15,15,15,16,16,15,16,16 1620 DATA 13,17,13,16,13,15,13,14,13,13,14,13,15,13,16,13,17,13,17,12 1630 DATA 17,11,16,11,15,11,14,11,13,11,13,10,13,9,13,8,13,7,12,7 1640 DATA 11,7,11,8,11,9,11,10,11,11,10,11,9,11,8,11,7,11,7,12 1650 DATA 7,13,8,13,9,13,10,13,11,13,11,14,11,15,11,16,11,17,12,17 1660 DATA 12,16,12,15,12,14,12,13,12,12 1670 DATA 15,8,15,9,16,8,16,9 1680 DATA 17,11,16,11,15,11,14,11,13,11,13,10,13,9,13,8,13,7,12,7 1690 DATA 11,7,11,8,11,9,11,10,11,11,10,11,9,11,8,11,7,11,7,12 1700 DATA 7,13,8,13,9,13,10,13,11,13,11,14,11,15,11,16,11,17,12,17 1710 DATA 13,17,13,16,13,15,13,14,13,13,14,13,15,13,16,13,17,13,17,12 1720 DATA 16,12,15,12,14,12,13,12,12,12 1730 IF PEEK(590%)<>40% ; INP(3%) 1731 ; CHR$(12%); 1740 ; " ********************************" 1750 ; " ------------ F I A -------------" 1760 ; " ********************************" 1770 OUT 6%,45% : FOR [=1% TO 3000% : NEXT [ 1780 ; : ; : ; "Du {r spelare A och kan v{lja hur m}nga" : ; "motspelare du vill ha (1-3)." 1790 ; "Dina pj{ser representeras av deras" : ; "ordningsnummer (1-4). Vill du flytta " 1800 ; "pj{s 3, s} svarar du med '3'." 1810 ; "Dina (A) kast och {ven motspelarnas" : ; "visas i symbolform (t{rning)." 1820 ; "En sexa ger extra-kast och spelet" : ; "vinns av den som f|rst 'f}tt ut' alla" 1830 ; "sina pj{ser fr}n br{det. Allts} helt" : ; "vanliga FIA-regler." : ; "OBS! Tv} pj{ser kan ej g} ut p} sexa!" 1840 ; : ; "Din ABC80 sk|ter alla motspelare" : ; "individuellt - favoriserar ingen!" 1850 OUT 6,0 : ; : ; : ; "D} b|rjar vi --- (return)"; : GET K$ : RETURN 1860 REM ***** T[RNING ***** 1870 ; CUR(6%,23%);K$":s" : ; CUR(7%,23%);"kast" 1880 I%=INT(RND*6%+1%) : IF I%=6% THEN E%=1% ELSE E%=0% 1890 ON I% RESTORE 1920,1930,1940,1950,1960,1970 1900 FOR Q%=10% TO 12% : READ R$ : ; CUR(Q%,22%);CHR$(151%);R$ : NEXT Q% 1910 FOR ]=1% TO 3000 : NEXT ] : RETURN 1920 DATA ""," ","" 1930 DATA "/",",","|" 1940 DATA "?5","{5","}5" 1950 DATA "?o","","}~" 1960 DATA "w{","s","w{" 1970 DATA "w{","w{","w{" 1980 ; CUR(1%,19%);",, ";K$;" ,, V A N N ,," : OUT 6%,137% : GET X$ : GET X$ 1990 FOR Q%=1% TO 4% : A%(Q%)=0% : B%(Q%)=0% : C%(Q%)=0% : D%(Q%)=0% : NEXT Q% : GOTO 60 2000 REM *** REFRESH POSITION *** 2010 FOR H%=1% TO 4% 2020 IF A%(H%)>=45% OR A%(H%)=0% THEN 2040 2030 RESTORE 1490 : FOR G%=1% TO A%(H%)+4% : READ R%,K% : NEXT G% : ; CUR(R%,K%);CHR$(H%+48%) 2040 IF B%(H%)>=45% OR B%(H%)=0% THEN 2060 2050 RESTORE 1550 : FOR G%=1% TO B%(H%)+4% : READ R%,K% : NEXT G% : ; CUR(R%,K%);"B" 2060 IF C%(H%)>=45% OR C%(H%)=0% THEN 2080 2070 RESTORE 1610 : FOR G%=1% TO C%(H%)+4% : READ R%,K% : NEXT G% : ; CUR(R%,K%);"C" 2080 IF D%(H%)>=45% OR D%(H%)=0% THEN 2100 2090 RESTORE 1670 : FOR G%=1% TO D%(H%)+4% : READ R%,K% : NEXT G% : ; CUR(R%,K%);"D" 2100 NEXT H% 2110 RESTORE 1490 : FOR H%=1% TO 4% : READ R%,K% : IF A%(H%)=0% THEN N$=CHR$(H%+48%) ELSE N$="" 2120 ; CUR(R%,K%);N$ : NEXT H% 2130 RESTORE 1550 : FOR H%=1% TO 4% : READ R%,K% : IF B%(H%)=0% THEN N$="B" ELSE N$="" 2140 ; CUR(R%,K%);N$ : NEXT H% 2150 RESTORE 1610 : FOR H%=1% TO 4% : READ R%,K% : IF C%(H%)=0% THEN N$="C" ELSE N$="" 2160 ; CUR(R%,K%);N$ : NEXT H% 2170 RESTORE 1670 : FOR H%=1% TO 4% : READ R%,K% : IF D%(H%)=0% THEN N$="D" ELSE N$="" 2180 ; CUR(R%,K%);N$ : NEXT H% : RETURN 2190 ; CUR(4%,1%);"upppppppppppppz" 2200 ; CUR(2%,16%);STRING$(22%,112%) 2210 ; CUR(1%,19%);"DE LUXE SPEL" 2220 ; CUR(22%,0%)CHR$(151%);",,,,,,,,,,";CHR$(135%);\%-1%;" MOTSPELARE";CHR$(151%);" ,,,,,,,,,,," 2230 FOR Q%=5% TO 14% : ; CUR(Q%,30%)CHR$(151%);"5";CHR$(135%)TAB(37%)CHR$(151%);"j" : NEXT Q% 2240 ; CUR(5%,31%);"7######k" : ; CUR(14%,31%);"uppppppz" : ; CUR(7%,33%);"UTE" 2250 ; CUR(8%,33%);"---" 2260 FOR Q%=5% TO 14% : ; CUR(Q%,20%);CHR$(151%);"5";TAB(22%)CHR$(135%)TAB(27%)CHR$(151%);"j" : NEXT Q% 2270 ; CUR(5%,21%);"7######k" : ; CUR(14%,21%);"uppppppz" : RETURN 2280 A2%=0% : B2%=0% : C2%=0% : D2%=0% : FOR Q%=1% TO 4% 2290 IF A%(Q%)>=45% THEN A2%=A2%+1% 2300 IF B%(Q%)>=45% THEN B2%=B2%+1% 2310 IF C%(Q%)>=45% THEN C2%=C2%+1% 2320 IF D%(Q%)>=45% THEN D2%=D2%+1% 2330 NEXT Q% 2340 ; CUR(10%,33%);"A:"A2% : ; CUR(11%,33%);"B:"B2% : ; CUR(12%,33%);"C:"C2% : ; CUR(13%,33%);"D:"D2% : RETURN 2350 B%(5%)=B%(K%)+10% : IF B%(5%)>40% THEN B%(5%)=B%(5%)-40% 2360 C%(5%)=C%(K%)+20% : IF C%(5%)>40% THEN C%(5%)=C%(5%)-40% 2370 D%(5%)=D%(K%)+30% : IF D%(5%)>40% THEN D%(5%)=D%(5%)-40% 2380 RETURN 2390 ; PEEK(65064%)*256%+PEEK(65063%)-PEEK(65057%)*256%-PEEK(65056%)