10 '®¿Ñ 20 GOTO50 30 dieta=¶( 3)'e-6'6'***********************************bias*96* 40 RETURN 50 DEFSEG=0:IFPEEK32768<255;END 60 FOR¡=32753TO32618STEP-15 70 ¢=PEEK¡+256*PEEK(¡+1) 80 IFPEEK(¢+5)=174ANDPEEK(¢+6)=191ANDPEEK(¢+7)=209ANDPEEK(¢+8)=0THEN110 90 NEXT¡ 100 PRINT"Program not found";:END 110 ¢=¢+22:DEFCHR$(252)="a2a49c92a2" 120 CLS:PRINT" Workshop by Luciano Vernaschi";:LOCATE4,1:PRINT"Press BS to enter Setup"; 130 FOR¡=1TO150:IFASC(INKEY$)=8THEN150 140 NEXT:GOTO180 150 CLS:INPUT"Choose the max no. of formulae ";@32;¡,"Choose the max no. of variables ";@32;£ 160 IF¡*£=>FRE1;PRINT"Not enough memory":GOTO150 170 ¤=32603-¡*£:¦=¡-1:¶=£-1:¥=-1:µ=-1:ERASE¦$,©,¶$,¶,¤:DIM¦$(¦),©(¦),¶$(¶),¶(¶),¤(¶) 180 LOCATE0,1:PRINTCHR$(5);" Please wait ...";:FOR¡=0TO¶*¦+¦+¶:POKE¤+¡,0:NEXT 190 FOR£=0TO¥ 200 FOR¡=0TOµ 210 GOSUB8000 220 NEXT¡,£ 230 $="Vars Formulae Weighted_mean":¡$="Mean eval_All Quit":¢$="vfwmaq" 240 GOSUB7000 250 GOTO¨*1000 1000 ¡=µ:IFµ<0;¡=0 1010 IF¡<=µ;$=¶$(¡)+"="+STR$(¶(¡))+"ù"+MID$(STR$(¤(¡)),2):¡$="Up Down Edit deLete Menu":¢$="udel#m":GOTO1030 1020 $="Create a new variable?":¡$="Up Down Create Menu":¢$="ud##cm" 1030 GOSUB7000:GOTO¨*100+1000 1100 ¡=¡-1:IF¡<0;¡=µ+1:IF¡>¶;¡=¶ 1110 GOTO1010 1200 IFµ<¶;£=µ+1ELSE£=µ 1210 ¡=¡+1:IF¡>£;¡=0 1220 GOTO1010 1300 IFº=1;¶(¡)=²:¤(¡)=§:º=0:GOTO1010 1310 CLS:INPUT"Write the new value ";@32;¶(¡),"Write the new error ";@32;¤(¡):GOTO1010 1400 FOR£=0TO¥:IF©(£)=¡;CLS:PRINT"This var is related to: ";LEFT$(¦$(£),31):GOTO1010 1410 NEXT£ 1420 $="Delete "+¶$(¡)+"?":¡$="Yes No":¢$="yn":GOSUB7000 1430 IF¨=2THEN1010 1440 FOR£=¡ TOµ-1:¶$(£)=¶$(£+1):¶(£)=¶(£+1):¤(£)=¤(£+1):NEXT 1450 FOR£=0TO¥ 1460 IF©(£)>¡;©(£)=©(£)-1 1470 NEXT£:µ=µ-1:GOTO180 1500 µ=¡:CLS:INPUT"Write the variable name ";@16;¶$(µ) 1510 IFº=1;¶(µ)=²:¤(µ)=§:º=0:GOTO1530 1520 INPUT"Write its value ";@32;¶(µ),"Write its error ";@32;¤(µ) 1530 FOR£=0TO¥:GOSUB8000:NEXT£:GOTO1010 1600 º=0:GOTO230 2000 £=¥:IF¥<0;£=0 2010 IF£<=¥;$=¶$(©(£))+"="+¦$(£):¡$="Up Down Edit eVal deL Menu":¢$="udevl#m":GOTO2030 2020 $="Create a new formula?":¡$="Up Down Create Menu":¢$="ud###cm" 2030 GOSUB7000:GOTO¨*100+2000 2100 £=£-1:IF£<0;£=¥+1:IF£>¦;£=¦ 2110 GOTO2010 2200 IF¥<¦;¡=¥+1ELSE¡=¥ 2210 £=£+1:IF£>¡;£=0 2220 GOTO2010 2300 CLS:PRINT¶$(©(£));"=";¦$(£);:LOCATE0,0:INPUT@200;¡$:º=2300 2310 IF¡$<>""THEN9000ELSE2300 2400 CLS:GOSUB2410:GOTO1010 2410 FOR¡=0TOµ:IFPEEK(¤+£*(¶+1)+¡)=0THEN2430 2420 $=¶$(¡)+"=¶("+STR$(¡)+")":GOSUB10000:GOSUB30 2430 NEXT¡:¶(©(£))=VALF(¦$(£)):§=0 2440 FOR¡=0TOµ 2450 IFPEEK(¤+£*(¶+1)+¡)=0THEN2480 2460 $=¶$(¡)+"=¶("+STR$(¡)+")+3e-6":GOSUB10000:GOSUB30 2470 ²=VALF(¦$(£)):§=§+((²-¶(©(£)))*¤(¡)/3e-6)^2 2480 $=¶$(¡)+"=¶("+STR$(¡)+")":GOSUB10000:GOSUB30 2490 NEXT¡:¤(©(£))=SQR§:¡=©(£):RETURN 2500 $="Delete "+¦$(£)+"?":¡$="Yes No":¢$="yn":GOSUB7000 2510 IF¨=2THEN2010 2520 FOR¡=£ TO¥-1:¦$(¡)=¦$(¡+1):©(¡)=©(¡+1):NEXT 2530 ¥=¥-1:GOTO180 2600 ¥=¥+1 2610 CLS:INPUT"Write the formula ";@200;¡$:º=2610:GOTO9000 2700 GOTO230 3000 §=0:¨=0:º=0:ONERRORGOTO11100:CLS 3010 PRINT"Write data";º+1;"(exe to end)";TAB(0);:INPUT@32;¡$:CLS 3020 £=VALF(¡$):PRINT"Error of ";£;TAB(0);:INPUT@32;²:CLS 3030 ²=²^-2:§=§+²:¨=¨+£*²:º=º+1:GOTO3010 3040 ONERRORGOTO0:²=¨/§:§=§^-.5:º=1 3050 GOTO4040 4000 §=0:¨=0:º=0:ONERRORGOTO11000:CLS 4010 PRINT"Write data";º+1;"(exe to end)";TAB(0);:INPUT@32;¡$:CLS 4020 £=VALF(¡$):§=§+£:¨=¨+£*£:º=º+1:GOTO4010 4030 ONERRORGOTO0:²=§/º:§=SQR((¨-§*§/º)/(º*(º-1))):º=1 4040 $="ü="+STR$(²)+"ù"+MID$(STR$(§),2) 4050 ¡$="Assign Menu":¢$="am":GOSUB7000:IF¨=2;º=0:GOTO230 4060 IFµ<¶;¡=µ+1ELSE¡=µ 4070 GOTO1010 5000 CLS:$="Evaluate"+STR$(¥+1)+" formulae?":¡$="Yes No":¢$="yn":GOSUB7000 5010 IF¨=2THEN230 5020 CLS:FOR£=0TO¥ 5030 PRINTTAB(0);"Formula:";£+1;:GOSUB2410 5040 NEXT£:GOTO1000 6000 $="Quit Workshop?":¡$="Yes No":¢$="yn":GOSUB7000 6010 IF¨=1;ENDELSE230 7000 CLS:LOCATE2,1:PRINT¡$;CHR$(15);:LOCATE1,0 7010 IFLEN($)<31;PRINT$;:­=0ELSE­=1 7020 IF­;LOCATE0,0:PRINT" ";MID$(­,30);" "; 7030 IF­>1;LOCATE0,0:PRINT"ä"; 7040 IF­1;­=­-1:GOTO7020 7070 FOR¨=1TOLEN(¢$):IF¡$=MID$(¢$,¨,1);CLS:RETURN 7080 NEXT¨:GOTO7050 8000 ¨=LEN(¶$(¡)):FOR§=1TOLEN(¦$(£))-¨+1 8010 IFMID$(¦$(£),§,¨)=¶$(¡);º=1:GOTO8030 8020 NEXT§:º=0 8030 POKE¤+£*(¶+1)+¡,º:º=0:RETURN 9000 FOR§=1TOLEN(¡$) 9010 IFMID$(¡$,§,1)="="THEN9030 9020 NEXT§:PRINT"Bad formula":GOTOº 9030 $=MID$(¡$,1,§-1) 9040 FOR¨=0TOµ:IF¶$(¨)=$;©(£)=¨:GOTO9080 9050 NEXT¨ 9060 IFµ=¶;PRINT"Not enough memory to create ";$:GOTOº 9070 ¦$(£)=MID$(¡$,§+1):µ=µ+1:¶$(µ)=$:¶(µ)=0:¤(µ)=0:©(£)=µ 9080 ¦$(£)=MID$(¡$,§+1):FOR¡=0TOµ:GOSUB8000:NEXT¡:º=0:GOTO2010 10000 FOR¨=1TOLEN($) 10010 POKE¢+¨,ASC(MID$(¨,1)) 10020 NEXT¨ 10030 POKE¢+¨,2:RETURN 11000 RESUME4030 11100 RESUME3040