100 DEFFNA%=A%(A%)/D% AND 255% 110 DEFFNB%=B%(A%)/D% AND 255% 120 DEFFNS=((.1+FNA%)/(FNB%))^4% 130 RANDOMIZE 140 N0%=100% : N1%=25% : REM Max. poster,f{ltl{ngd 150 DIM A$(N0%)=N1%*2%,A%(N0%),B%(N0%),C$=8%,B$=120%,V$=N1%,W$=N1%,Z$=N1%,X$=N1%*2%+2% 160 ; CHR$(12%),'F|rf|r fil' : ; ,CHR$(8%,151%)'##########' 170 M%=0% : GOTO 1060 180 ; CUR(15%,0%); : GOSUB 820 : ; CUR(4%,0%)SPACE$(320%)CUR(19%,0%)' 'CUR(4%,0%); 190 ; 'F|rh|r f{lt' : ; 200 X$='[r ett svar r{tt om ' 210 ; X$'mellanslagens antal {r fel eller om de {r placerade fel,' 220 ; 'eller om svaret inneh}ller sm} bokst{verist{llet f|r stora eller vice versa?' : ; 230 ; X$'det utg|r en i facitsvaret med kommatecken eller semi- kolon avsk{rmad del?' : ; 240 ; '[r du redo s} f|rh|ret kan b|rja? ' 250 ; CUR(4%,12%); : GET Y$ : ON INSTR(1%,'12',Y$)+1% GOTO 250,260,270 260 E%=N1%+1% : D%=1% : GOTO 280 270 E%=1% : D%=256% 280 ; Y$ 290 ; CUR(9%,37%); : GOSUB 500 : P1%=X% 300 ; CUR(13%,21%); : GOSUB 500 : P2%=X% 310 ; CUR(15%,34%); : GOSUB 500 : IF X%=0% 160 320 GOSUB 1220 330 GOSUB 1130 : ; CHR$(12%); : IF N2% ; STRING$(40%*P1/N2%,36%); 340 Z$=MID$(A$(A%),(1%-(E%-1%)/N1%)*N1%+1%,N1%) : Z0$=Z$ : ; CUR(8%,0%)MID$(A$(A%),E%,N1%) 350 ; CUR(12%,0%); : L%=N1% 360 GOSUB 540 370 IF INSTR(1%,X$,'$')=0% 400 ELSE IF N2%=0% 490 380 ; CHR$(12%)CUR(10%,0%)'Din po{ng :'P1' /'N2% 390 S=INT(40%*P1/N2%+.5)/4% : ; CUR(12%,0%)'Du f}r vitsordet';-(S>4%)*S-4%*(S<=4%) : GOTO 850 400 IF P1% GOSUB 1280 ELSE GOSUB 1350 410 Y$=Z$ : Z$=X$ 420 IF P1% GOSUB 1280 ELSE GOSUB 1350 430 X1%=LEN(Z$)>6% 440 X$=Z$ : GOSUB 1390 450 ; : ; : IF F% IF F%=1% AND X1% ; 'N{stan r{tt.' : P=.5 ELSE ; 'Fel!' : P=0% ELSE ; 'R{tt!' : P=1% 460 ; CUR(12%,0%)Z0$TAB(40%) : ; : ; : GOSUB 820 470 P1=P1+P : N2%=N2%+1% : IF FNB%<255% B%(A%)=B%(A%)+D% : A%(A%)=A%(A%)-(F%<>0%)*D% 480 GOTO 330 490 ; CUR(0%,0%) : CHAIN 'Didactos' 500 REM Ja/Nej 510 GET Y$ : ON INSTR(1%,' JjNn',Y$)/2%+1% GOTO 510,520,530 520 ; 'Ja' : X%=1% : RETURN 530 ; 'Nej' : X%=0% : RETURN 540 REM Begr{nsad inmatning 550 X0$='' 560 X$='' 570 X%=LEN(X$) : GET Y$ : Y%=ASC(Y$) 580 IF Y%=13% IF X%<>0% IF L%=8% 720 ELSE RETURN ELSE IF L%=8% 660 ELSE 570 590 IF Y%=24% AND L%=N1% X0$=X$ : ; CUR(12%,0%)SPACE$(N1%)CUR(12%,0%); : GOTO 560 600 IF X%=L% AND Y%<>8% 570 610 IF Y%=8% IF X% X$=LEFT$(X$,X%-1%) : ; CHR$(8%,32%,8%); 620 IF Y%=9% IF LEN(X0$) X$=X$+LEFT$(X0$,1%) : X0$=RIGHT$(X0$,2%) : ; CUR(12%,0%)X$; : GOTO 570 630 IF Y%<32% OR Y%>127% 570 640 ; Y$; : X$=X$+Y$ 650 GOTO 570 660 FOR X%=65408% TO 65415% 670 Y%=PEEK(X%) : IF Y%=13% 710 680 IF Y%>47% AND Y%<58% 700 ELSE Y%=Y% AND 95% 690 IF Y%<65% OR Y%>93% 570 700 X$=X$+CHR$(Y%) : NEXT X% 710 ; X$; : RETURN 720 IF X$='$' RETURN ELSE FOR X%=1% TO LEN(X$) 730 POKE X%+65407%,ASC(RIGHT$(X$,X%)) 740 NEXT X% : POKE X%+65407%,13% : RETURN 750 REM Existerar fil x$? 760 X%=0% 770 ONERRORGOTO 810 780 OPEN X$+'.did' ASFILE 1% : CLOSE 1% 790 D0$='Dr'+NUM$(PEEK(64769%))+':' 800 X%=1% 810 IF Z%=X% IF X% ; CUR(22%,0%)'Filen 'X$' finns.' ELSE ; CUR(22%,0%)'Filen 'X$' finns inte.' ELSE 830 820 ; ':'; : GET Y$ 830 ; CUR(22%,0%)SPACE$(79%); : RETURN 840 ; CHR$(12%)'Lista |ver program och filer'X$ : ; STRING$(38%,127%)CUR(0%,0%); : RETURN 850 REM Skriv fil 860 KILL D0$+C$+'.did' 870 PREPARE D0$+C$+'.did' ASFILE 1% 880 ; #1%B$ 890 FOR X%=0% TO M% 900 ; #1%A$(X%)CHR$(13%)A%(X%)CHR$(13%)B%(X%) 910 NEXT X% 920 CLOSE 1% 930 GOTO 490 940 REM L{s fil 950 OPEN D0$+X$+'.did' ASFILE 1% 960 C$=X$ : IF CALL(65424%,PEEK(64769%))<2% 1670 970 INPUTLINE #1%,B$ 980 B$=LEFT$(B$,LEN(B$)-2%) 990 ONERRORGOTO 1040 1000 INPUTLINE #1%,X$ 1010 A$(M%)=LEFT$(X$,LEN(X$)-2%) 1020 INPUT #1%,A%(M%),B%(M%) 1030 M%=M%+1% : GOTO 1000 1040 ; CUR(7%,0%)'Rubrikinstruktioner:' : ; : ; B$ 1050 M%=M%-1% : GOTO 180 1060 ; CUR(19%,0%)'Slut: ($)' 1070 Z%=0% : ; CUR(4%,0%)SPACE$(40%)CUR(4%,0%)'Filnamn : $'STRING$(9%,8%); : L%=8% : GOSUB 540 1080 IF X$='$' 490 1090 GOSUB 750 1100 IF Z%=X% 1060 1110 C$=X$ 1120 GOTO 940 1130 REM V{lj ut fr}gan 1140 X=RND : IF I%=0% GOSUB 1220 1150 S0=0% : FOR X%=0% TO M% 1160 A%=X% : IF I% IF FNB% 1190 ELSE I%=I%-1% : X%=X%+1% : GOTO 1200 1170 IF X95% AND W%<127% Z$=LEFT$(Z$,X%-1%)+CHR$(W% AND 95%)+RIGHT$(Z$,X%+1%) 1330 IF X%>LEN(Z$) RETURN 1340 GOTO 1300 1350 REM Mellanslag 2 1360 X%=CALL(65470%) 1370 IF Z$='' Z$='<' 1380 RETURN 1390 REM , & ; 1400 V$=X$ 1410 S%=0% 1420 X%=S% 1430 W$=V$ 1440 GOSUB 1680 : X5%=X% 1450 IF X5%=0% X5%=LEN(V$)+1% 1460 X$=MID$(V$,S%+1%,X5%-S%-1%) 1470 S%=X% 1480 IF X$='' F%=2% : RETURN 1490 Z%=0% : F%=0% 1500 Z%=INSTR(Z%+1%,Y$,X$) : IF Z%=0% F%=2%-F% : RETURN 1510 X%=0% 1520 Q1%=0% : Q2%=LEN(Y$)+1% 1530 W$=Y$ : GOSUB 1680 1540 IF X%=0% 1580 1550 IF X%=Z%+LEN(X$) Q2%=X% : GOTO 1580 1570 GOTO 1530 1580 Z$=MID$(Y$,Q1%+1%,Z%-Q1%-1%) : GOSUB 1280 : IF Z$<>'' GOTO 1600 1590 Z$=MID$(Y$,Z%+LEN(X$),Q2%-Z%-LEN(X$)) : GOSUB 1280 : IF Z$='' F%=0% : GOTO 1610 1600 F%=1% : GOTO 1500 1610 IF Q1% K1%=1% ELSE K1%=0% 1620 IF Q2%>LEN(Y$) K2%=0% ELSE K2%=1% 1630 Y$=LEFT$(Y$,Q1%-K1%)+RIGHT$(Y$,Q2%) 1640 IF X5%'' F%=1% ELSE F%=0% 1660 RETURN 1670 ; CUR(22%,0%)'Det finns f|r lite rum p} skivan.' : GOSUB 820 : GOTO 490 1680 REM 1690 ]%=INSTR(X%+1%,W$,',') 1700 X%=INSTR(X%+1%,W$,';') 1710 IF X%=]% RETURN 1720 IF X%=0% X%=32000% 1730 IF ]%=0% ]%=32000% 1740 IF X%>]% X%=]% 1750 RETURN