1 CLS:KEY OFF:KEY 1,"":ON KEY (1) GOSUB 10000 2 CHDIR "DATA":KEY (1) ON 3 COLOR 0,7:LOCATE 10,31:PRINT " " 4 LOCATE 11,31:PRINT " C O S I N O R " 5 LOCATE 12,31:PRINT " " 6 LOCATE 25,1:COLOR 16,7:PRINT " POUR S'ARRETER EN COURS DE PROGRAMME,PRESSER LA TOUCHE 'F1' PUIS 'ENTER' ";:COLOR 7,0 7 MG$=INKEY$:IF LEN(MG$)=0 THEN 7 10 DATA 0.1,0.125,0.2,0.5,1,2,5,8 20 DIM C5(8) 30 FOR I=8 TO 1 STEP -1 40 READ C5(I) 50 NEXT I 80 B7=4:CLS 90 DIM L$(4),G9$(8),G8$(4),S4(4,4) 100 DIM M(3),C(3),P(3),Z1(3),Z2(2),G2(50),G3$(50),G4(50),G5(51) 130 ON ERROR GOTO 4900 140 REM 150 REM 440 REM 500 PRINT 505 PI=3.1415927# 510 CLOSE #1 516 REM ******************LPRINT CHR$(27)"[066t" 517 REM ******************LPRINT CHR$(12) 518 CO=0 519 GOSUB 4700 520 DRI$=D7$+":":CLS:FILES DRI$:PRINT:PRINT 530 PRINT "entrez le nom de votre fichier" 550 LINE INPUT V4$ 560 PRINT 570 V5$=D7$+":"+V4$ 580 V9=1 590 OPEN V5$ FOR INPUT AS #1 600 INPUT#1,E5$ 610 GOTO 650 620 PRINT "LE FICHIER N'EXISTE PAS" 630 GOTO 500 640 REM 650 V9=2 660 P6=24 670 PRINT "S'AGIT-IL DE RYTHME CIRCADIEN ?" 680 PRINT "0 pour NON une autre touche pour OUI PUIS RETURN " 700 INPUT E5$ 710 IF E5$<>"0" THEN GOTO 730 720 INPUT "ENTREZ LA PERIODE EN H. PUIS RETURN";P6 730 O6=2*PI/P6 740 REM 750 INPUT "EMPLACEMENT DU TEMPS,premiere,derniere colonne";T5,T6 770 T5=T5+1 780 T6=T6+1 790 REM 800 PRINT "VOULEZ-VOUS UN TRI ?"," ] pour non,puis RETURN "; 810 PRINT 820 PRINT "MASQUE ? 0 pour un tri exclusif .1 pour un tri inclusif" 830 PRINT 840 PRINT "INDIQUEZ LE MASQUE;LE CARACTERE;LA COLONNE;PUIS RETURN" 850 PRINT 860 PRINT "indiquez 2 pour OU;puis RETURN" 865 PRINT 870 PRINT "POUR INDIQUER FIN,APPUYER SUR LA TOUCHE ]" 880 PRINT 890 G1=0 900 G5(0)=0 910 G6=0 920 INPUT E5$ 930 H=INSTR(1,E5$,"]") 940 IF H<>0 THEN GOTO 1180 950 G1=G1+1 960 N1=1 970 N2=1 980 GOSUB 4000 990 IF K7=5 THEN GOTO 1030 1000 PRINT CHR$(7),SPC(40);"reprenez ERREUR" 1010 G1=G1-1 1020 GOTO 920 1030 IF U8 > 2 THEN GOTO 1000 1040 IF U8 < 2 THEN GOTO 1090 1050 G1=G1-1 1060 G6=G6+1 1070 G5(G6)=G1 1080 GOTO 920 1090 G2(G1)=U8 1100 G3$(G1)=MID$(E5$,2,1) 1110 N1=3 1120 N2=LEN(E5$) 1130 GOSUB 4000 1140 G4(G1)=U8+1 1150 IF G1=49 THEN PRINT "AVANT DERNIER MASQUE" 1160 IF G1=50 THEN GOTO 1180 1170 GOTO 920 1180 PRINT G1 1190 G5(G6+1)=G1 1200 FOR J=0 TO G6 1210 FOR I=G5(J)+1 TO G5(J+1) 1220 PRINT I,G2(I),G3$(I),G4(I) 1225 LPRINT I,G2(I),G3$(I),G4(I) 1230 NEXT I 1240 PRINT 1250 NEXT J 1260 REM 1270 INPUT"EMPLACEMENT DE LA FONCTION,premiere,derniere colonne";F5,F6 1271 INPUT " VOULEZ-VOUS IMPRIMER LE FICHIER ? (O/N) ",IMPR$ 1272 IF IMPR$="O" OR IMPR$="o" THEN FLAG%=1 ELSE FLAG%=0 1273 V1$="C:FICHU" 1274 V9=664 1275 KILL V1$ 1276 OPEN V1$ FOR OUTPUT AS #2 1290 F5=F5+1 1300 F6=F6+1 1310 FOR I=1 TO 3 1320 M(I)=0 1330 FOR J=1 TO I 1340 S4(I,J)=0 1350 NEXT J 1360 NEXT I 1370 REM 1380 N5=0 1390 PRINT 1400 CLOSE #1 1410 OPEN V5$ FOR INPUT AS #1 1420 V9=2 1430 REM 1450 REM 1455 V9=2 1460 LINE INPUT #1,E5$ 1470 IF G1=0 THEN GOTO 1600 1480 FOR J=0 TO G6 1490 FOR I=G5(J)+1 TO G5(J+1) 1500 K7=G4(I) 1510 IF G2(I)=0 THEN GOTO 1540 1520 IF MID$(E5$,K7,1)=G3$(I) THEN GOTO 1550 1530 GOTO 1570 1540 IF MID$(E5$,K7,1)=G3$(I) THEN GOTO 1570 1550 NEXT I 1560 GOTO 1600 1570 NEXT J 1580 GOTO 1430 1590 REM 1600 N1=T5 1610 N2=T6 1620 GOSUB 4000 1630 IF K7<>5 THEN GOTO 1430 1635 IF U8=9999999! THEN GOTO 1430 1640 U9=U8 1650 T4=U8*O6 1660 Z1(1)=COS(T4) 1670 Z1(2)=SIN(T4) 1680 N1=F5 1690 N2=F6 1700 GOSUB 4000 1710 IF K7<>5 THEN GOTO 1430 1715 IF U8=9999999! THEN GOTO 1430 1720 N5=N5+1 1730 Z1(3)=U8 1735 IF FLAG%=0 THEN GOTO 1745 1741 LPRINT "T =";U9;TAB(15);" FONCT=";U8;TAB(36);E5$ 1745 PRINT #2,U9,U8 1750 REM 1760 FOR I=1 TO 3 1770 S1=Z1(I) 1780 IF S1=0 THEN GOTO 1840 1790 M(I)=M(I)+S1 1800 FOR J=1 TO I 1810 IF Z1(J)=0 THEN GOTO 1830 1820 S4(I,J)=S4(I,J)+S1*Z1(J) 1830 NEXT J 1840 NEXT I 1850 GOTO 1430 1860 REM 1870 IF N5>3 THEN GOTO 1900 1880 PRINT "NBRE DE POINTS INSUFF. (";N5;")" 1890 GOTO 2490 1900 REM ******************************LPRINT CHR$(12) 1905 LPRINT "NBRE DE POINTS = ";N5 1910 FOR I=1 TO 3 1920 M(I)=M(I)/N5 1930 FOR J=1 TO I 1940 S=S4(I,J) 1950 S=S/N5 1960 S4(I,J)=S 1970 S4(J,I)=S 1980 NEXT J 1990 NEXT I 2000 REM 2010 A=S4(1,1)*S4(2,2)-S4(1,2)*S4(1,2) 2020 A=A-S4(1,1)*M(2)*M(2) 2030 A=A+2*S4(1,2)*M(1)*M(2) 2040 A=A-S4(2,2)*M(1)*M(1) 2050 C(1)=S4(2,2)*S4(1,3)-S4(1,2)*S4(2,3) 2060 C(1)=C(2)-S4(2,2)*M(1)*M(3) 2070 C(1)=C(1)-S4(3,1)*M(3)*M(2) 2080 C(1)=C(1)+S4(1,2)*M(3)*M(3) 2090 C(1)=C(1)+S4(3,2)*M(1)*M(2) 2100 C(2)=S4(1,1)*S4(2,3)-S4(1,3)*S4(2,1) 2110 C(2)=C(2)-S4(2,1)*M(2)*M(3) 2120 C(2)=C(2)-S4(2,1)*M(1)*M(1) 2130 C(2)=C(2)+S4(3,1)*M(1)*M(2) 2140 C(2)=C(2)+S4(1,1)*M(1)*M(3) 2150 C(3)=(S4(1,2)*S4(2,3)-S4(1,3)*S4(2,2))*M(1) 2160 C(3)=C(3)+(S4(2,3)*S4(2,1)-S4(1,1)*S4(2,3))*M(2) 2170 S=S4(1,1)*S4(2,2)-S4(1,2)*S4(2,1) 2180 C(3)=C(3)+S*M(3) 2190 C(1)=C(1)/A 2200 C(2)=C(2)/A 2210 C(3)=C(3)/A 2215 S6=C(3) 2220 S1=S4(3,3)-C(1)*S4(1,3)-C(2)*S4(2,3)-C(3)*M(3) 2230 M8=N5-3 2240 D1=S1*2/M8 2250 S1=SQR(S1*S/(A*M8)) 2261 LPRINT "FONCTION ",F5-1;F6-1,CHR$(13) 2271 LPRINT "NIV.MOY. =";S6;SPC(20);"PERIODE =";P6 2275 LPRINT "AMPLITUDE =";SQR(C(1)*C(1)+C(2)*C(2));SPC(20);"ECART TYPE /MOY.=";S1 2280 PP=95 2281 MM=M8 2282 GOSUB 9200 2285 W8=F8 2290 D1=D1*W8 2300 A1=(S4(1,1)-M(1)*M(1))/D1 2310 A2=(S4(2,2)-M(2)*M(2))/D1 2320 A3=(S4(1,2)-M(1)*M(2))/D1 2330 M(1)=C(1) 2340 M(2)=C(2) 2350 GOSUB 3000 2351 F$=" " 2352 FF$=" " 2353 FFF$=" " 2360 R8=180/PI 2361 IF P(3)*R8<>0 THEN F$="(+/- "+STR$((P(3)-P(2))*R8)+")" 2362 IF P(3)/O6<>0 THEN FF$="(+/- "+STR$((P(3)-P(2))/O6)+")" 2363 IF C(3)<>0 THEN FFF$="(+/- "+STR$(C(3)-C(2))+")" 2371 LPRINT " ACROPHASES = ";P(1)*R8,P(2)*R8,P(3)*R8," en degres "F$ 2381 LPRINT " ACROPHASES = ";P(1)/O6,P(2)/O6,P(3)/O6," en heures "FF$ 2391 LPRINT " AMPLITUDES = ";C(1),C(2),C(3)" "FFF$ 2400 PRINT " TETA = ";T7*R8 2410 PRINT CHR$(13); " GRAND AXE , PETIT AXE ";A,B 2420 IF F1<0 THEN GOTO 2470 2430 F2=F2*W8 2431 NF=F2 2432 NM2=M8 2435 GOSUB 9300 2440 P1=F9 2450 PRINT "SEUIL =";P1 2451 LPRINT "SEUIL = ";P1" (DONC P="(100-P1)/100")";" PVA = ";(1-X1)*100 2460 GOTO 2490 2470 LPRINT "PAS DE DETECTION "; 2480 GOTO 2430 2490 CLOSE #1 2495 CLOSE #2 2500 REM 2510 PRINT " VOULEZ-VOUS UN TRACE ? 0 POUR NON PUIS RETURN " 2520 INPUT E5$ 2530 PRINT E5$ 2540 IF E5$="0" THEN GOTO 2571 2552 P8=7 2555 P9=P8*10 2560 GOSUB 6000 2570 GOTO 5000 2571 LPRINT:LPRINT:LPRINT:LPRINT:LPRINT 2580 PRINT " TOUCHE ] POUR FIN; 1 POUR SUITE AVEC MEME TRI" 2590 PRINT "AILLEURS POUR SUITE AVEC CHANG. DE TRI. PUIS RETURN " 2600 INPUT E5$ 2610 IF E5$="]" THEN GOTO 10000 2620 IF E5$="1" THEN GOTO 1270 2630 GOTO 800 3000 X=-2*A3 3001 Y=A2-A1 3004 GOSUB 9050 3005 T7=.5*T9 3010 FOR I=1 TO 3 STEP 2 3020 C(I)=0 3030 P(I)=0 3040 NEXT I 3050 C1=COS(T7) 3060 S1=SIN(T7) 3070 A=C1*C1 3080 B1=A1*A 3085 B2=A2*A 3090 A=1-A 3100 B1=B1+A2*A 3105 B2=B2+A1*A 3110 A=A3*C1*S1*2 3120 B3=1/(B1+A) 3130 IF B3>0 THEN GOTO 3160 3140 PRINT "a est negatif" 3150 END 3160 B4=1/(B2-A) 3170 IF B4>0 THEN GOTO 3190 3180 GOTO 3140 3190 A=SQR(B3) 3195 B=SQR(B4) 3200 X1= -M(1)*C1-M(2)*S1 3205 Y1=M(1)*S1-M(2)*C1 3210 F2=(X1*X1/B3)+(Y1*Y1/B4) 3211 X=M(2) 3212 Y=M(1) 3215 GOSUB 9050 3220 P(2)=T9 3230 C8=M(1)*M(1)+M(2)*M(2) 3240 C(2)=SQR(C8) 3250 F1=F2-1 3260 IF F1<=0 THEN RETURN 3270 F0=SQR(F1) 3280 Z1(1)=A*Y1*F0/B 3290 Z1(2)=-Z1(1) 3300 Z2(1)=-B*X1*F0/A 3310 Z2(2)=-Z2(1) 3320 N0=1 3330 FOR I=1 TO 2 3340 Z1(I)=(Z1(I)+X1)/F2 3350 Z2(I)=(Z2(I)+Y1)/F2 3360 F0=Z1(I)*C1-Z2(I)*S1 3370 F3=Z1(I)*S1+Z2(I)*C1 3371 X=M(2)+F3 3372 Y=M(1)+F0 3375 GOSUB 9050 3380 P(N0)=T9 3390 F0=P(N0)-P(2) 3400 IF F0<=PI THEN GOTO 3430 3410 P(N0)=P(N0)-2*PI 3420 GOTO 3450 3430 IF F0>=-PI THEN GOTO 3450 3440 P(N0)=P(N0)+2*PI 3450 N0=3 3460 NEXT I 3470 IF P(3)>P(1) THEN GOTO 3510 3480 F0=P(3) 3490 P(3)=P(1) 3500 P(1)=F0 3510 N=3 3520 F0=SQR(B4*X1*X1+B3*Y1*Y1) 3530 C1=B*X1/F0 3540 S1=A*Y1/F0 3550 D2=B3-B4 3560 FOR I=1 TO 2 3570 C2=C1 3580 S2=S1 3590 FOR J=1 TO 6 3600 B3=-A*(X1-A*C2) 3610 B4=B*(Y1-B*S2) 3620 F0=(B3*S2+B4*C2) 3630 F7=F0/(SQR(B3*B3+B4*B4)) 3640 IF ABS(F7)<.01 THEN GOTO 3720 3650 D1=F0/(B4*S2-B3*C2+D2*(1-2*C2*C2)) 3660 C3=COS(D1) 3670 S3=SIN(D1) 3680 C4=C2*C3-S2*S3 3690 S2=S2*C3+C2*S3 3700 C2=C4 3710 NEXT J 3720 X2=(X1-A*C2) 3730 Y2=(Y1-B*S2) 3740 C(N)=SQR(X2*X2+Y2*Y2) 3750 C1=-C1 3760 S1=-S1 3770 N=1 3780 NEXT I 3790 IF C(1)<=C(3) THEN RETURN 3800 C1=C(1) 3810 C(1)=C(3) 3820 C(3)=C1 3830 RETURN 3840 REM 4000 N3=N2+1-N1 4010 REM CONVERSION EN NBRE DE E5$ PAR U8 4020 K7=0 4030 V9=1000 4040 E4$=MID$(E5$,N1,N3) 4050 FOR I=1 TO N3 4060 M$=MID$(E4$,I,1) 4065 IF M$="0" OR M$="1" OR M$="2" OR M$="3" OR M$="4" THEN GOTO 4170 4066 IF M$="5" OR M$="6" OR M$="7" OR M$="8" OR M$="9" THEN GOTO 4170 4090 IF MID$(E4$,I,1)="." THEN GOTO 4150 4100 IF MID$(E4$,I,1)=" " THEN GOTO 4170 4110 IF I <> 1 THEN GOTO 4130 4120 IF MID$(E4$,1,1)="+" OR MID$(E4$,1,1)="-" THEN GOTO 4170 4130 U8=0 4140 RETURN 4150 IF K7 <> 0 THEN GOTO 4130 4160 K7=1 4170 NEXT I 4180 U8=VAL(E4$) 4185 IF E4$=STRING$(LEN(E4$)," ") THEN U8=9999999! 4190 K7=5 4200 RETURN 4210 REM 4400 PRINT "NOM";TAB(15);" " 4410 REM interrog.=q1$ reponse=t1$ ds (a,b) 4430 INPUT D7$ 4440 IF "a" <> D7$ AND "c" <> D7$ THEN GOTO 4480 4460 GOTO 4500 4480 PRINT CHR$(7) 4490 GOTO 4400 4500 PRINT D7$ 4520 RETURN 4640 REM 4700 PRINT "DONNER LE NOM DU DRIVE" 4720 PRINT " a ou c (en minuscules) PUIS RETURN" 4780 GOSUB 4400 4800 RETURN 4900 IF ERR=53 AND V9=1 THEN RESUME 620 4910 IF ERR=62 AND V9=2 THEN RESUME 1870 4920 IF ERR=18 AND V9=1000 THEN RESUME 4200 4930 IF ERR=53 AND V9=664 THEN RESUME 1276 4940 IF ERR=62 AND V9=5020 THEN RESUME 5120 4945 IF ERR=62 AND V9=5180 THEN RESUME 5400 4950 PRINT "ERREUR",ERR,"EN",ERL 4960 GOTO 10000 4970 ON ERROR GOTO 0 5000 OPEN "TRAC" AS #1 5007 FIELD #1,80 AS G$,4 AS G7$ 5010 V1$="C:FICHU" 5020 OPEN V1$ FOR INPUT AS #2 5021 INPUT#2,A1,U8 5030 B1=U8 5040 B2=B1 5041 CLOSE#2 5045 OPEN V1$ FOR INPUT AS #2 5050 V9=5020 5060 INPUT#2,U8,A1 5090 GOSUB 7800 5100 GOTO 5060 5120 CLOSE #2 5127 GOSUB 7500 5130 GOSUB 8300 5140 U7=-1 5145 K7=0 5147 K0=0 5150 C2=10^C1 5153 A1=A3*C2 5155 U1=U*C2 5156 G7=0 5157 GG$=STR$(G7) 5158 LSET G7$=GG$ 5160 FOR I=0 TO 24 5162 U4=I 5164 Z1(2)=-10000 5166 Z1(1)=S6+C(2)*COS(O6*I-P(2)) 5168 Z1(0)=S6 5169 IF I=24 THEN K7=-1 5170 GOSUB 8700 5172 PUT#1,I+1 5174 NEXT I 5180 OPEN V1$ FOR INPUT AS #2 5185 V9=5180 5198 INPUT#2,U8,U9 5210 I9=FIX(U8) 5220 IF I9<0 OR I9>24 THEN GOTO 5198 5230 GET#1,I9+1 5235 N$=G$ 5240 U9=(U9-A1)/U1 5250 U9=INT(U9+.5) 5260 U9=B7+U9+1 5270 FOR I=3 TO 6 5280 IF MID$(N$,U9,1)<>G9$(I) THEN GOTO 5310 5290 N$=MID$(N$,1,U9-1)+G9$(I+1)+MID$(N$,U9+1,LEN(N$)-U9) 5300 GOTO 5340 5310 NEXT I 5320 IF MID$(N$,U9,1)=G9$(7) THEN GOTO 5340 5330 N$=MID$(N$,1,U9-1)+G9$(3)+MID$(N$,U9+1,LEN(N$)-U9) 5340 GG$=G7$ 5341 G7=VAL(GG$) 5342 G7=G7+1 5345 GG$=STR$(G7) 5350 LSET G7$=GG$ 5360 LSET G$=N$ 5370 PUT #1,I9+1 5380 GOTO 5198 5400 CLOSE #2 5410 LPRINT CHR$(13),CHR$(13) 5420 GET#1,26 5430 LPRINT G$ 5500 FOR I=0 TO 24 5510 GET#1,I+1 5520 LPRINT G$,SPC(3),G7$ 5530 NEXT I 5540 GET#1,26 5550 LPRINT G$ 5560 LPRINT 5580 FOR I=3 TO 7 5590 LPRINT STR$(I-2)+"="+G9$(I), 5600 NEXT I 5640 CLOSE #1 5645 LPRINT CHR$(12) 5660 GOTO 2580 5990 REM 6000 REM INIT. TRACEUR 6010 REM 6040 G9$(3)=CHR$(46) 6042 G9$(4)=CHR$(58) 6044 G9$(5)=CHR$(43) 6046 G9$(6)=CHR$(42) 6048 G9$(7)=CHR$(127) 6050 G9$(2)=CHR$(111) 6060 G9$(1)=CHR$(124) 6070 L$(1)=CHR$(73) 6080 L$(2)=CHR$(73) 6090 L$(3)=CHR$(73) 6100 L$(4)=CHR$(73) 6110 FOR I=1 TO P8 6120 FOR J=1 TO 9 6130 L$(1)=L$(1)+CHR$(45) 6140 L$(2)=L$(2)+CHR$(32) 6150 L$(3)=L$(3)+CHR$(45) 6160 L$(4)=L$(4)+CHR$(43) 6170 NEXT J 6180 IF I=P8 THEN GOTO 6230 6190 L$(1)=L$(1)+CHR$(73) 6200 L$(2)=L$(2)+CHR$(73) 6210 L$(3)=L$(3)+CHR$(73) 6220 L$(4)=L$(4)+CHR$(73) 6230 NEXT I 6240 L$(1)=L$(1)+CHR$(73) 6250 L$(2)=L$(2)+CHR$(73) 6260 L$(3)=L$(3)+CHR$(73) 6270 L$(4)=L$(4)+CHR$(73) 6280 RETURN 6780 REM 6800 REM PREPARE SUB 5000 I5=Nro ligne K1=Nro de POINT 6810 REM 6820 N$=L$(I5) 6830 K2=0 6840 FOR I2=0 TO N2 6850 I1=I2+1 6860 K=Z1(I2) 6870 GOSUB 7000 6880 NEXT I2 6890 N$=G8$+N$ 6900 RETURN 6910 REM 7000 REM 7010 REM 7020 IF K<0 THEN RETURN 7030 IF K>=P9 THEN K=P9-1 7080 N$=MID$(N$,1,K)+G9$(I1)+MID$(N$,K+2,LEN(N$)-K-1) 7090 RETURN 7130 REM 7500 REM ECH. A3=INF A4=SUP U=UNITE c=PUISS. 7510 REM 7520 C1=ABS(B2) 7530 C1=LOG(C1)/LOG(10) 7540 C1=INT(C1) 7550 A1=B1*(10^(-C1)) 7560 A2=B2*(10^(-C1)) 7580 U=LOG((A2-A1)/P9)/LOG(10) 7590 U=FIX(U) 7600 IF U>0 THEN U=U+1 7610 GOSUB 8900 7615 U2=U 7620 I1=0 7630 FOR I=1 TO 8 7640 U1=U*C5(I) 7650 P=U1*(P9+INT(A1/U1)) 7660 IF PA1 THEN B1=A1 7830 IF B2=B7 THEN RETURN 7920 G8$=SPACE$(B7-B8)+G8$ 7930 RETURN 7940 END 7950 REM 8300 N$=SPACE$(B7-1)+STR$(C1) 8310 A9=A3+U*10 8315 GOSUB 8800 8320 N$=N$+SPACE$(8)+D5$ 8330 FOR I=3 TO P8 STEP 2 8340 A9=A9+U*20 8345 GOSUB 8800 8350 N$=N$+SPACE$(13)+D5$ 8360 NEXT I 8362 LSET G$=N$ 8370 PUT #1,26 8380 RETURN 8390 REM 8400 REM CADRE 8410 REM 8420 FOR J=0 TO 2 8430 Z1(J)=(Z1(J)-A1)/U1 8440 Z1(J)=INT(Z1(J)+.5) 8450 NEXT J 8460 RETURN 8480 REM 8500 IF K7>0 THEN GOTO 8530 8510 IF K7=0 THEN I5=1 ELSE I5=4 8520 RETURN 8530 T3=INT(U4/4) 8540 T3=U4-4*T3 8550 IF T3=0 THEN GOTO 8600 8560 T3=ABS(T3) 8570 IF T3<.01 THEN GOTO 8600 8580 I5=2 8590 RETURN 8600 I5=3 8610 RETURN 8700 REM 8710 GOSUB 8500 8720 GOSUB 8400 8730 IF I5=2 THEN G8$=SPACE$(B7) ELSE G8$=STR$(U4) 8735 GOSUB 7900 8740 N2=2 8750 GOSUB 6800 8755 K7=K7+1 8757 LSET G$=N$ 8760 RETURN 8800 D5$=STR$(A9) 8810 D4=LEN(D5$) 8820 IF D4<7 THEN GOTO 8860 8830 IF D4=7 THEN RETURN 8840 D5$=LEFT$(D5$,7) 8850 RETURN 8860 D5$=D5$+SPACE$(7-D4) 8870 RETURN 8880 END 8900 U2=1 8910 IF U<0 THEN GOTO 8970 8920 IF U=0 THEN GOTO 9000 8930 FOR I=1 TO U 8940 U2=U2*10 8950 NEXT I 8960 GOTO 9000 8970 FOR I=1 TO -U 8980 U2=U2/10 8990 NEXT I 9000 U=U2 9010 RETURN 9020 END 9050 REM ATAN2 0<>2PI x=s,y=c 9060 IF Y<>0 THEN GOTO 9110 9070 T8=PI/2 9080 IF X>0 THEN GOTO 9160 9090 T8=-T8 9100 GOTO 9160 9110 T8=ATN(X/Y) 9120 IF Y>0 THEN GOTO 9140 9130 T8=T8+PI 9140 IF T8>=0 THEN GOTO 9160 9150 T8=T8+2*PI 9160 T9=T8 9170 RETURN 9200 PP=PP/100 9210 PP=1-PP 9220 XX=EXP(2*LOG(PP)/MM) 9230 F8=.5*MM*(1-XX)/XX 9240 RETURN 9300 X1=NM2/(NM2+2*NF) 9310 X2=EXP(.5*NM2*LOG(X1)) 9320 P1=(1-X2)*10000+.5 9330 P1=INT(P1) 9340 F9=P1/100 9350 RETURN 10000 CLOSE:COLOR 7,0:CHDIR "..":KEY 1,"LIST ":KEY ON 11000 END