home *** CD-ROM | disk | FTP | other *** search
- 1 REM--MINIMUF/CBM64/ALAN MEMLY,KE6UY
- 10 CLR
- 20 POKE53281,11
- 21 POKE53280,11
- 25 PRINT"[155]"
- 49 PRINT"[147]"
- 50 RESTORE
- 110 DIMM$(37),A$(4),M(12)
- 120 DATA31,28,31,30,31,30,31,31,30,31,30,31
- 130 FORX=1TO12:READM(X):NEXT
- 140 M$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"
- 150 R0=(null)/180
- 155 P1=2*(null)
- 160 R1=180/(null)
- 170 P0=(null)/2
- 175 PRINT"[147]"
- 176 INPUT"XMTR AT HOME (Y/N):";Q$
- 180 PRINT"[147]":PRINT:PRINT:PRINT
- 185 IFQ$="N"THEN190
- 186 X1=41.9:Y1=87.6:GOTO270
- 190 INPUT"XMTR LAT, LONG :";X1,Y1
- 210 IFX1=>-90THEN212
- 211 GOTO220
- 212 IFX1=<90THEN240
- 220 PRINT"INVALID LATITUDE. MUST BE IN RANGE"
- 221 PRINT"OF -90 TO 90 DEGREES"
- 230 GOTO190
- 240 IFY1<-360THEN250
- 241 IFY1>360THEN250
- 242 GOTO270
- 250 PRINT"INVALID LONGITUDE. MUST BE IN RANGE -360 TO +360"
- 260 GOTO190
- 270 INPUT"RECEIVER LAT, LONG";X2,Y2
- 290 IFX2<-90THEN300
- 291 IFX2>90THEN300
- 292 GOTO320
- 300 PRINT"INVALID LATITUDE. MUST BE IN RANGE"
- 301 PRINT"OF -90 TO 90 DEGREES"
- 302 GOTO270
- 320 IFY2<-360THEN330
- 321 IFY2>360THEN330
- 323 GOTO350
- 330 PRINT"INVALID LONGITUDE. MUST BE IN RANGE -360 TO +360"
- 331 GOTO270
- 350 INPUT"DATE (DAY,MONTH):";D6,M0
- 370 IFM0<=12 THEN 400
- 380 PRINT"INVALID MONTH. MUST BE IN RANGE 1-12"
- 390 GOTO350
- 400 IFM(M0)-D6<0THEN410
- 405 GOTO430
- 410 PRINT"INVALID DAY"
- 420 GOTO350
- 430 INPUT"SOLAR FLUX NUMBER:";SF
- 440 INPUT"GRAPH OR TABLE(G/T):";C$
- 450 IFSF<0THEN460
- 455 S9=(-0.73+SQR((.73)^2-4*(.0008)*(65-SF)))/(2*.0008)
- 456 S9=INT(S9)
- 457 GOTO480
- 460 PRINT"INVALID. MUST BE NON-NEGATIVE":GOTO430
- 480 PRINT"[147]"
- 481 GOSUB3000
- 490 A$=MID$(M$,3*M0-2,3)
- 495 IFC$="G"THEN600
- 500 PRINT"[153]";"DATE:";D6;A$
- 510 PRINT" TRANSMITTER LOCATION:"
- 520 PRINTTAB(7)"LATITUDE";X1;TAB(22);"LONGITUDE";Y1
- 530 PRINT" RECEIVER LOCATION:"
- 540 PRINTTAB(7)"LATITUDE";X2;TAB(22);"LONGITUDE";Y2
- 545 PRINT" DISTANCE =";DX;"MILES"
- 550 PRINT" SUNSPOT NUMBER = ";S9
- 555 PRINT
- 560 PRINTTAB(4)"HOUR";TAB(11)"MUF";TAB(21)"HOUR";TAB(28)"MUF"
- 590 PRINT
- 600 L1=X1*R0
- 610 W1=Y1*R0
- 620 L2=X2*R0
- 630 W2=Y2*R0
- 635 IFC$="G"THEN2000
- 639 CO=0:PRINT"[158]"
- 640 FORT5=0TO23
- 641 CO=CO+1
- 650 GOSUB1000
- 653 J9=J9*10
- 654 J9=INT(J9)
- 655 J9=J9/10
- 658 IFCO=2THEN665
- 659 PRINT"[145]"
- 660 PRINTTAB(4)T5;TAB(10)J9
- 661 GOTO670
- 665 PRINT"[145][145]":PRINTTAB(21)T5;TAB(27)J9
- 666 CO=0
- 670 NEXTT5
- 680 PRINT""
- 691 INPUT"PERFORM NEXT CASE (Y/N):";B$
- 692 PRINT"[155]"
- 700 IFB$="Y"THEN175
- 709 PRINT"[147]"
- 710 END
- 1000 REM-MINIMUF 3.5
- 1010 K7=SIN(L1)*SIN(L2)+COS(L1)*COS(L2)*COS(W2-W1)
- 1020 IFK7=>-1THEN1050
- 1030 K7=-1
- 1040 GOTO1070
- 1050 IFK7<=1THEN1070
- 1060 K7=1
- 1070 G1=-ATN(K7/SQR(-K7*K7+1))+(null)/2
- 1080 K6=1.59*G1
- 1090 IFK6>=1THEN1110
- 1100 K6=1
- 1110 K5=1/K6
- 1120 J9=100
- 1130 FORK1=1/(2*K6)TO1-1/(2*K6)STEP0.9999-1/K6
- 1140 IFK5=1THEN1160
- 1150 K5=0.5
- 1160 P=SIN(L2)
- 1170 Q=COS(L2)
- 1180 A=(SIN(L1)-P*COS(G1))/(Q*SIN(G1))
- 1190 B=G1*K1
- 1200 C=P*COS(B)+Q*SIN(B)*A
- 1210 D=(COS(B)-C*P)/(Q*SQR(1-C^2))
- 1220 IFD>=-1THEN1250
- 1230 D=-1
- 1240 GOTO1270
- 1250 IFD<=1THEN1270
- 1260 D=1
- 1270 D=-ATN(D/SQR(-D*D+1))+(null)/2
- 1280 W0=W2+SGN(SIN(W1-W2))*D
- 1290 IFW0=>0THEN1310
- 1300 W0=W0+P1
- 1310 IFW0<P1THEN1330
- 1320 W0=W0-P1
- 1330 IFC=>-1THEN1360
- 1340 C=-1
- 1350 GOTO1380
- 1360 IFC<=1THEN1380
- 1370 C=1
- 1380 L0=P0-(-ATN(C/SQR(-C*C+1))+(null)/2)
- 1390 Y1=0.172*(10+(M0-1)*30.4+D6)
- 1400 Y2=0.409*COS(Y1)
- 1410 K8=3.82*W0+12+0.13*(SIN(Y1)+1.2*SIN(2*Y1))
- 1420 K8=K8-12*(1+SGN(K8-24))*SGN(ABS(K8-24))
- 1430 IFCOS(L0+Y2)>-0.26THEN1520
- 1440 K9=0
- 1450 G0=0
- 1460 M9=2.5*G1*K5
- 1470 IFM9<=P0THEN1490
- 1480 M9=P0
- 1490 M9=SIN(M9)
- 1500 M9=1+2.5*M9*SQR(M9)
- 1510 GOTO1770
- 1520 K9=(-0.26+SIN(Y2)*SIN(L0))/(COS(Y2)*COS(L0)+1.0E-3)
- 1530 K9=12-ATN(K9/SQR(ABS(1-K9*K9)))*7.639437
- 1540 T=K8-K9/2+12*(1-SGN(K8-K9/2))*SGN(ABS(K8-K9/2))
- 1550 T4=K8+K9/2-12*(1+SGN(K8+K9/2-24))*SGN(ABS(K8+K9/2-24))
- 1560 C0=ABS(COS(L0+Y2))
- 1570 T9=9.7*C0^9.6
- 1580 IFT9>0.1THEN1600
- 1590 T9=0.1
- 1600 M9=2.5*G1*K5
- 1610 IFM9<=P0THEN1630
- 1620 M9=P0
- 1630 M9=SIN(M9)
- 1640 M9=1+2.5*M9*SQR(M9)
- 1650 IFT4<TTHEN1680
- 1660 IF(T5-T)*(T4-T5)>0THEN1690
- 1670 GOTO1820
- 1680 IF(T5-T4)*(T-T5)>0THEN1820
- 1690 T6=T5+12*(1+SGN(T-T5))*SGN(ABS(T-T5))
- 1700 G9=(null)*(T6-T)/K9
- 1710 G8=(null)*T9/K9
- 1720 U=(T-T6)/T9
- 1730 G0=C0*(SIN(G9)+G8*(EXP(U)-COS(G9)))/(1+G8*G8)
- 1740 G7=C0*(G8*(EXP(-K9/T9)+1))*EXP((K9-24)/2)/(1+G8*G8)
- 1750 IFG0=>G7THEN1770
- 1760 G0=G7
- 1770 G2=(1+S9/250)*M9*SQR(6+58*SQR(G0))
- 1780 G2=G2*(1-0.1*EXP((K9-24)/3))
- 1790 G2=G2*(1+(1-SGN(L1)*SGN(L2))*0.1)
- 1800 G2=G2*(1-0.1*(1+SGN(ABS(SIN(L0))-COS(L0))))
- 1810 GOTO1880
- 1820 T6=T5+12*(1+SGN(T4-T5))*SGN(ABS(T4-T5))
- 1830 G8=(null)*T9/K9
- 1840 U=(T4-T6)/2
- 1850 U1=-K9/T9
- 1860 G0=C0*(G8*(EXP(U1)+1))*EXP(U)/(1+G8*G8)
- 1870 GOTO1770
- 1880 IFG2>J9THEN1900
- 1890 J9=G2
- 1900 NEXTK1
- 1910 J9=.93*J9
- 1915 RETURN
- 2000 PRINT"[147]":PRINT:PRINT:PRINT:PRINT"[150]"
- 2010 PRINT"";TAB(9)" "
- 2020 FORX=1TO18
- 2021 PRINT"";TAB(9)" ";TAB(34)" "
- 2022 NEXTX
- 2040 PRINT"";TAB(9)" "
- 2050 PRINTTAB(10)"[155]";"0";TAB(14)"4";TAB(18)"8";TAB(22)"12";TAB(26)"16";
- 2051 PRINTTAB(30)"20"
- 2055 PRINTTAB(19)"[158]";"HOUR"
- 2060 PRINT"";"";
- 2065 PRINT""
- 2070 FORX=38TO10STEP-2
- 2090 PRINT"[155]";TAB(6)X"------------------------"X
- 2100 NEXTX
- 2105 PRINTTAB(8)"8------------------------8"
- 2110 PRINTTAB(8)"6------------------------6"
- 2115 PRINTTAB(8)"4------------------------4"
- 2120 PRINT""
- 2130 FORX=1TO4:PRINT"":NEXT
- 2140 PRINT"[158]"
- 2160 PRINT" ";TAB(3)"MUF"
- 2170 PRINT""
- 2180 PRINT"";"";"";"[153]";"XMTR"
- 2200 PRINTX1;"/"
- 2210 PRINTY1
- 2220 FORX=1TO5:PRINT"":NEXT:PRINT"RCVR"
- 2230 PRINTX2;"/"
- 2240 PRINTY2
- 2250 PRINT"";TAB(11)"DISTANCE =";DX"MILES[153]"
- 2270 PRINTTAB(12)"SUNSPOT NUMBER =";S9
- 2275 PRINT""
- 2276 GOSUB2700
- 2290 FORT5=0TO23
- 2300 GOSUB1000
- 2310 PRINT""
- 2320 J9=INT(J9):J9=J9/2:J9=INT(J9):J9=2*J9
- 2330 IFJ9>38THEN2350
- 2340 GOTO 2360
- 2350 J9=38
- 2360 PRINT"";
- 2380 SS=(38-J9)/2
- 2390 FORX=0TOSS
- 2392 PRINT"";
- 2395 NEXTX
- 2400 PRINT"";
- 2420 FORX=J9TO4STEP-2
- 2425 IFJ9<4THEN2440
- 2430 PRINT"";TAB(T5+10)" "
- 2440 NEXTX
- 2445 NEXTT5
- 2450 PRINT:PRINT:PRINT
- 2455 PRINT"[155]";
- 2460 INPUT"PERFORM NEXT CASE (Y/N)";N$
- 2465 POKEV+21,0
- 2470 IFN$="Y"THEN10
- 2480 PRINT"[147]":END
- 2700 V=53248:POKEV+21,1:POKE2040,13
- 2705 POKEV+39,4
- 2710 FORN=0TO62:READQ:POKE832+N,Q:NEXT
- 2712 POKEV+0,170:POKEV+1,100
- 2715 POKEV+29,1:POKEV+23,1
- 2720 DATA0,3,248,0,0,128,0,31,240,0,2,0,0,4,0,1,255,192,0,24,0,0,40,0
- 2730 DATA31,255,0,0,8,0,0,28,0,0,20,0,0,28,0,0,20,0,0,28,0,0,20,0,0,28,0,0,20,0
- 2740 DATA0,28,0,0,20,0,0,28,0
- 2750 RETURN
- 3000 RA=3956.75
- 3005 X7=RA*SIN((90-X1)*(null)/180)*COS(Y1*(null)/180)
- 3006 Y7=RA*SIN((90-X1)*(null)/180)*SIN(Y1*(null)/180)
- 3007 Z7=RA*COS((90-X1)*(null)/180)
- 3010 DE=((X7^2)+(Y7^2)+(Z7^2))^.5
- 3015 CA=X7/DE:CB=Y7/DE:CC=Z7/DE
- 3020 X8=RA*SIN((90-X2)*(null)/180)*COS(Y2*(null)/180)
- 3021 Y8=RA*SIN((90-X2)*(null)/180)*SIN(Y2*(null)/180)
- 3022 Z8=RA*COS((90-X2)*(null)/180)
- 3025 DG=((X8^2)+(Y8^2)+(Z8^2))^.5
- 3030 CD=X8/DG:CE=Y8/DG:CF=Z8/DG
- 3035 CT=((X7*X8)+(Y7*Y8)+(Z7*Z8))/(DG*DE)
- 3040 IFCT=0THENCT=.000000000001
- 3042 DI=((RA^2)+(RA^2)-2*RA*RA*CT)^.5
- 3043 IFDI>5656.85425THENGOTO3065
- 3050 SI=(1-(CT^2))^.5
- 3060 TA=SI/CT:T=ATN(TA)*180/(null):GOTO3075
- 3065 SI=-1*(1-(CT^2))^.5
- 3070 TA=SI/CT:T=180-ATN(TA)*180/(null)
- 3075 DX=69.055*T:DX=INT(DX)
- 3080 RETURN
-