100 ' **************************************** 110 ' * IBM PC BASIC VERSION A3.30 * 120 ' * FILE NAME "DU" * 130 ' * INTERFERENCE WITH OTHER ROUTE * 140 ' * 1987/10 I.KATO * 150 ' **************************************** 160 KEY OFF:CLS:SCREEN 9 170 COLOR 14 180 DEFDBL K,L,M,R,S 190 DIM A$(5,2),S0(59),S1(59),P0(59),P1(59),H0(59),H1(59),V$(16) 200 DATA "ROUTE NUMBER","T POINT NAME","R POINT NAME" :'V$(0-2) 210 DATA "T POINT LATITUDE","T POINT LONGITUDE", "R POINT LATITUDE","R POINT LONGITUDE" :'V$(3-6) 220 DATA "T OUTPUT POWER(dBm)","T FEEDER LOSS(dB)" :'V$(7-8) 230 DATA "FREQUENCY(MHz) ","POLARIZATION" :'V$(9-10) 240 DATA "T POINT ANGLE","T POINT DISTANCE", "R POINT ANGLE","R POINT DISTANCE" :'V$(11-14) 250 FOR I=0 TO 14:READ V$(I):NEXT 260 LOCATE 1,1:PRINT "[ITEM 25] INTERFERENCE WITH OTHER ROUTE ":PRINT: COLOR 7 270 PRINT "D/U( Desired-to-Undesired field intensity ratio ) with respect to other three routes at maximum can be obtained for 4, 5, 6, 7 and 8 GHz bands based on the following criteria." 300 PRINT:PRINT "(1) Antenna :parabolic 4m diameter." 310 PRINT:PRINT "(2) For an interfering angle in excess of 59 degrees, the antenna directivity" 320 PRINT " at 59 degrees shall apply." 330 PRINT:PRINT "(3) Location of the transmitting and receiving stations can be inputted in " 340 PRINT " termes of either latitude and longitude or their relative arrangement." 350 PRINT :PRINT "(4) All the routes are deployed over the same plane and no ridge loss can be" 360 PRINT " expected along the respective interference paths." 500 ' ---------------- 510 ' * basic data * 520 ' ---------------- 530 COLOR 6:LOCATE 18, 1:LINE INPUT "Input the number of routes (1-4) ";N$ 540 N=VAL(N$) 550 IF N<1 OR N>4 THEN LOCATE 18,1:PRINT SPC(79):GOTO 530 560 LOCATE 20,1:LINE INPUT "Input frequency band (GHz) (4,5,6,7,8) ";X$ 570 F=VAL(X$) 580 IF F<>INT(F) OR F<4 OR F>8 THEN LOCATE 20,1:PRINT SPC(79):GOTO 560 590 IF F=6 THEN 600 ELSE B$="":GOTO 630 600 LOCATE 21,1:INPUT "Input L(lower band) or U(upper band) L/U ";B$ 610 LOCATE 21,1:PRINT SPC(79) 620 IF B$<>"U" AND B$<>"u" AND B$<>"L" AND B$<>"l" THEN 600 630 LOCATE 20,41:PRINT SPC(10):LOCATE 20,44:PRINT F;B$ 640 F$=RIGHT$(STR$(F),1) 650 IF (F=6 AND B$="L") OR (F=6 AND B$="l") THEN F$="6L" 660 IF (F=6 AND B$="U") OR (F=6 AND B$="u") THEN F$="6U" 670 ' 680 LOCATE 22, 1:PRINT "Input method of radio station location (1/2)" 690 LOCATE 23, 1:LINE INPUT "latitude and longitude 1, relative position 2 ";INDEX$ 700 IF INDEX$<>"1" AND INDEX$<>"2" THEN LOCATE 23,1:PRINT SPC(79):GOTO 690 710 OPEN "ASWP"+F$ FOR INPUT AS #1 720 INPUT #1,G:FOR I=0 TO 59:INPUT #1,S0(I),S1(I):NEXT:CLOSE 730 PG=G: FOR I=0 TO 59:P0(I)=S0(I):P1(I)=S1(I):NEXT 740 COLOR 7:CLS 750 IF INDEX$="1" THEN 1000 ELSE 2000 1000 ' ----------------------------------- 1010 ' * method of latitude,longitude * 1020 ' ----------------------------------- 1030 LOCATE 1,10:PRINT "***** DATA INPUT ***** ";STR$(F)" GHz "B$" BAND" 1040 LOCATE 2, 1:PRINT STRING$(80,"-") 1050 LOCATE 3, 4:PRINT V$(0): FOR I=1 TO N:LOCATE 3,16+14*I:PRINT USING "# ( - )";I:NEXT 1060 LOCATE 4, 1:PRINT STRING$(80,"-") 1070 FOR I=1 TO 4 :LOCATE 4+I,1:PRINT USING "##";I;:PRINT " ";V$(I+2):NEXT 1080 FOR I=5 TO 6 :LOCATE 5+I,1:PRINT USING "##";I;:PRINT " ";V$(I+2):NEXT 1090 FOR I=7 TO 8 :LOCATE 6+I,1:PRINT USING "##";I;:PRINT " ";V$(I+2):NEXT 1100 LOCATE 15,1:PRINT STRING$(80,"-") 1110 COLOR 6:LOCATE 3,4:PRINT V$(0) 1120 FOR J=1 TO N 1130 COLOR 6:LOCATE 3,29+(J-1)*14:PRINT J 1140 COLOR 6:LOCATE 22,1:PRINT "NO.";:PRINT USING "# ROUTE";J 1150 FOR I=1 TO 2 1160 COLOR 6:LOCATE 22,15:PRINT V$(I);" (within 2 letters) ";: LINE INPUT A$(J,I) 1170 COLOR 7:LOCATE 3,30+(J-1)*14+I*3:PRINT USING "&";A$(J,I) 1180 LOCATE 22,15:PRINT SPC(64) 1190 NEXT I 1200 GOSUB 3030:GOSUB 3170:GOSUB 3310:GOSUB 3450:GOSUB 3590:GOSUB 3680: GOSUB 3760:GOSUB 3850 1210 COLOR 6:LOCATE 22,15:PRINT "Do you correct any data (Y/N) ? ";: Y$=INPUT$(1) 1220 IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 1210 1230 COLOR 7:LOCATE 22,15:PRINT SPC(64) 1240 IF Y$="Y" OR Y$="y" THEN 1250 ELSE 1360 1250 COLOR 6:LOCATE 22,15:LINE INPUT "Input item number(1-8) to be corrected ";X$ 1260 COLOR 7:LOCATE 22,15:PRINT SPC(64) 1270 NO=VAL(X$) 1280 IF NO=0 OR NO>8 THEN 1250 1290 IF N0<5 THEN L=4 1300 IF NO>4 AND NO<7 THEN L=5 1310 IF NO>6 THEN L=6 1320 COLOR 6:LOCATE NO+L,1:PRINT NOV$(NO+2): COLOR 7:LOCATE NO+L,28+(J-1)*14:PRINT SPC(12) 1330 ON NO GOSUB 3030,3170,3310,3450,3590,3680,3760,3850 1340 LOCATE NO+L,1:PRINT NOV$(NO+2) 1350 GOTO 1210 1360 LOCATE 3,29+(J-1)*14:PRINT J 1370 NEXT J 1380 LOCATE 3,4:PRINT V$(0) 1390 GOTO 6000 2000 ' ----------------------------------- 2010 ' * method of relative position * 2020 ' ----------------------------------- 2025 SCREEN 9:COLOR 15 2030 LOCATE 1,1:PRINT " Relative location of transmitting and receiving stations in each route ":COLOR 7 2060 PRINT:PRINT "(1) Designate a reference route and a reference point from" 2070 PRINT " among the routes to be examined." 2080 PRINT:PRINT "(2) The reference point is meant for the transmitting point" 2090 PRINT " in the reference route." 2100 PRINT:PRINT "(3) By using maps, obtain azimuths and distances towards" 2110 PRINT " the transmitting and receiving points in other routes " 2120 PRINT " measured from the reference point." 2130 PRINT:PRINT "(4) Azimuth should be expressed as" 2140 PRINT " plus(+) sign for clockwise direction," 2150 PRINT " minus(-) sign for anti-clockwise direction." 2160 LOCATE 5,62:PRINT "route 2" 2170 LOCATE 6,61:PRINT "T2":LOCATE 5,76:PRINT "R2":COLOR 4 2180 LOCATE 8,69:PRINT "reference":LOCATE 10,69:PRINT "route" 2190 LOCATE 9,61:PRINT "T":LOCATE 9,79:PRINT "R":COLOR 7 2200 LOCATE 13,62:PRINT "route 3" 2210 LOCATE 12,61:PRINT "T3":LOCATE 13,73:PRINT "R3" 2220 LOCATE 8,63:PRINT "-" :LOCATE 11,64:PRINT "+" 2230 WINDOW SCREEN(-10,-10)-(120,120) 2240 VIEW (475,56)-(635,182),,7 2250 LINE ( 0, 55)-(110, 55),4 2260 LINE (10, 20)-( 90, 0),7 2270 LINE (10, 90)-( 70,110),7 2280 LINE ( 0, 55)-( 10, 20),6 2290 LINE ( 0, 55)-( 10, 90),5 2300 LINE ( 0, 55)-( 90, 0),2 2310 LINE ( 0, 55)-( 70,110),3 2320 TA1=ATN(35/10):TB1=ATN(55/90) 2330 TA2=ATN(35/10):TB2=ATN(55/70) 2340 CIRCLE (0,55),30,6,0,-TA1 2350 CIRCLE (0,55),30,5,-(3.14159*2-TA2),0 2360 CIRCLE (0,55),40,2,0,-TB1 2370 CIRCLE (0,55),40,3,-(3.14159*2-TB2),0 2380 COLOR 6:LOCATE 22,12:PRINT "----- Hit space key when you are ready -----" 2390 COLOR 7:Q$=INKEY$:IF Q$="" THEN 2390 2400 ' 2410 CLS:SCREEN 0:SCREEN 9:COLOR 7 2420 ' 2430 LOCATE 1, 6:PRINT "***** DATA INPUT ***** ";STR$(F);" GHz "B$" BAND" 2440 LOCATE 2, 1:PRINT STRING$(80,"-") 2450 LOCATE 3, 4:PRINT V$(0) 2460 LOCATE 17,59:COLOR 7:PRINT "OTHER ROUTE": LOCATE 20,64:COLOR 4:PRINT "REFERENCE ROUTE" 2470 COLOR 7:LOCATE 19,55:PRINT "T" :LOCATE 17,77:PRINT "R" 2480 COLOR 4:LOCATE 21,54:PRINT "To":LOCATE 21,76:PRINT "Ro" 2490 FOR I=1 TO N:LOCATE 3,16+14*I:COLOR 7:PRINT USING "# ( - ) ";I:NEXT 2500 LOCATE 4, 1:PRINT STRING$(80,"-") 2510 WINDOW SCREEN(-10,-10)-(120,120) 2520 VIEW (416,217)-(632,290),,5 2530 LINE ( 0,100)-(100,100),4:LINE (10, 50)-(100, 10),7 2540 LINE ( 0,100)-( 10, 50),6:LINE ( 0,100)-(100, 10),2 2550 TA=ATN(50/10*.5):TB=ATN(100/90*.4) 2560 CIRCLE (0,100),20,6,0,-TA:CIRCLE (0,100),40,2,0,-TB 2570 FOR I=1 TO 4:LOCATE 4+I, 1:PRINT USING "##";I;:PRINT " ";V$(I+10):NEXT 2580 FOR I=4 TO 6:LOCATE 1+I,32:PRINT "-------":NEXT 2590 FOR I=5 TO 6:LOCATE 5+I, 1:PRINT USING "##";I;:PRINT " ";V$(I+2):NEXT 2600 FOR I=7 TO 8:LOCATE 6+I, 1:PRINT USING "##";I;:PRINT " ";V$(I+2):NEXT 2610 LOCATE 15,1:PRINT STRING$(80,"-") 2620 COLOR 6:LOCATE 3,4:PRINT V$(0) 2630 LOCATE 16,1:COLOR 4:PRINT "NO.1 ROUTE is chosen as REFERENCE ROUTE" 2640 FOR J=1 TO N 2650 IF J=1 THEN CO=4 ELSE CO=6 2660 COLOR CO:LOCATE 3,29+(J-1)*14:PRINT J 2670 COLOR 6:LOCATE 22,1:PRINT "NO.";:PRINT USING "# ROUTE";J 2680 FOR I=1 TO 2 2690 COLOR 6:LOCATE 22,15:PRINT V$(I);" (within 2 letters) ";: LINE INPUT A$(J,I) 2700 COLOR 7:LOCATE 3,30+(J-1)*14+I*3:PRINT USING "&";A$(J,I) 2710 LOCATE 22,15:PRINT SPC(64) 2720 NEXT I 2730 IF J=1 THEN KT(1)=0:LT(1)=0:KR(1)=0: GOSUB 4320:GOSUB 3590:GOSUB 3680:GOSUB 3760:GOSUB 3850:GOTO 2750 2740 GOSUB 4000:GOSUB 4120:GOSUB 4200:GOSUB 4320:GOSUB 3590:GOSUB 3680: GOSUB 3760:GOSUB 3850 2750 COLOR 6:LOCATE 22,15:PRINT "Do you correct any data (Y/N) ? ";: Y$=INPUT$(1) 2760 IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 2750 2770 COLOR 7:LOCATE 22,15:PRINT SPC(64) 2780 IF Y$="Y" OR Y$="y" THEN 2790 ELSE 2900 2790 COLOR 6:LOCATE 22,15:LINE INPUT "Input item number(1-8) to be correctde ";X$ 2800 COLOR 7:LOCATE 22,15:PRINT SPC(64) 2810 NO=VAL(X$) 2820 IF NO=0 OR NO>8 OR (J=1 AND NO<4) THEN 2790 2830 IF NO<5 THEN L=4 2840 IF NO>4 AND NO<7 THEN L=5 2850 IF NO>6 THEN L=6 2860 COLOR 6:LOCATE NO+L,1:PRINT NOV$(NO+2): COLOR 7:LOCATE NO+L,28+(J-1)*14:PRINT SPC(12) 2870 ON NO GOSUB 4000,4120,4200,4320,3590,3680,3760,3850 2880 LOCATE NO+L,1:PRINT NOV$(NO+2) 2890 GOTO 2750 2900 LOCATE 3,29+(J-1)*14:PRINT J 2910 NEXT J 2920 LOCATE 3,4:PRINT V$(0) 2930 GOTO 7000 3000 ' --------------------- 3010 ' * data input sub * 3020 ' --------------------- 3030 ' -- T latitude -- 3040 COLOR 6:LOCATE 5,1:PRINT 1V$(3) 3050 FLAG$="IDO":L=5 3060 COLOR 6:LOCATE 22,15:PRINT V$(3) 3070 LOCATE 22,35:INPUT "NORTH OR SOUTH (N/S) ";X$ 3080 LOCATE 22,35:PRINT SPC(44) 3090 IF X$<>"N" AND X$<>"n" AND X$<>"S" AND X$<>"s" THEN 3070 3100 COLOR 7:LOCATE 5,28+(J-1)*14:PRINT X$ 3110 GOSUB 5070 3120 TY(J)=DO+FU/60+BY/3600:TY(J)=TY(J)*3.14159/180 3130 IF X$="S" OR X$="s" THEN TY(J)=-TY(J) 3140 TY$(J)=X$+" "+TY$ 3150 LOCATE 5,1:PRINT 1V$(3) 3160 RETURN 3170 ' -- T longitude -- 3180 COLOR 6:LOCATE 6,1:PRINT 2V$(4) 3190 FLAG$="KDO":L=6 3200 COLOR 6:LOCATE 22,15:PRINT V$(4) 3210 LOCATE 22,35:INPUT "EAST OR WEST (E/W) ";X$ 3220 LOCATE 22,35:PRINT SPC(44) 3230 IF X$<>"E" AND X$<>"e" AND X$<>"W" AND X$<>"w" THEN 3210 3240 COLOR 7:LOCATE 6,28+(J-1)*14:PRINT X$ 3250 GOSUB 5070 3260 TX(J)=DO+FU/60+BY/3600:TX(J)=TX(J)*3.14159/180 3270 IF X$="W" OR X$="w" THEN TX(J)=-TX(J) 3280 TX$(J)=X$+" "+TY$ 3290 LOCATE 6,1:PRINT 2V$(4) 3300 RETURN 3310 ' -- R latitude -- 3320 COLOR 6:LOCATE 7,1:PRINT 3V$(5) 3330 FLAG$="IDO":L=7 3340 COLOR 6:LOCATE 22,15:PRINT V$(5) 3350 LOCATE 22,35:INPUT "NORTH OR SOUTH (N/S) ";X$ 3360 LOCATE 22,35:PRINT SPC(44) 3370 IF X$<>"N" AND X$<>"n" AND X$<>"S" AND X$<>"s" THEN 3350 3380 COLOR 7:LOCATE 7,28+(J-1)*14:PRINT X$ 3390 GOSUB 5070 3400 RY(J)=DO+FU/60+BY/3600:RY(J)=RY(J)*3.14159/180 3410 IF X$="S" OR X$="s" THEN RY(J)=-RY(J) 3420 RY$(J)=X$+" "+TY$ 3430 LOCATE 7,1:PRINT 3V$(5) 3440 RETURN 3450 ' -- R longitude -- 3460 COLOR 6:LOCATE 8,1:PRINT 4V$(6) 3470 FLAG$="KDO":L=8 3480 COLOR 6:LOCATE 22,15:PRINT V$(6) 3490 LOCATE 22,35:INPUT "EAST OR WEST (E/W) ";X$ 3500 LOCATE 22,35:PRINT SPC(44) 3510 IF X$<>"E" AND X$<>"e" AND X$<>"W" AND X$<>"w" THEN 3490 3520 COLOR 7:LOCATE 8,28+(J-1)*14:PRINT X$ 3530 GOSUB 5070 3540 RX(J)=DO+FU/60+BY/3600:RX(J)=RX(J)*3.14159/180 3550 IF X$="W" OR X$="w" THEN RX(J)=-RX(J) 3560 RX$(J)=X$+" "+TY$ 3570 LOCATE 8,1:PRINT 4V$(6) 3580 RETURN 3590 ' -- T power -- 3600 COLOR 6:LOCATE 10, 1:PRINT 5V$(7) 3610 COLOR 6:LOCATE 22,15:PRINT V$(7);" ";:LINE INPUT TP$ 3620 LOCATE 22,15:PRINT SPC(64) 3630 TP(J)=VAL(TP$) 3640 IF TP(J)=0 OR TP(J)>50 THEN 3610 3650 COLOR 7:LOCATE 10,35+(J-1)*14:PRINT USING "##.#";TP(J) 3660 LOCATE 10, 1:PRINT 5V$(7) 3670 RETURN 3680 ' -- T feed loss -- 3690 COLOR 6:LOCATE 11, 1:PRINT 6V$(8) 3700 COLOR 6:LOCATE 22,15:PRINT V$(8);" ";:LINE INPUT TF$ 3710 LOCATE 22,15:PRINT SPC(64) 3720 TF(J)=VAL(TF$) 3730 COLOR 7:LOCATE 11,35+(J-1)*14:PRINT USING "##.#";TF(J) 3740 LOCATE 11, 1:PRINT 6V$(8) 3750 RETURN 3760 ' -- freq -- 3770 COLOR 6:LOCATE 13, 1:PRINT 7V$(9) 3780 COLOR 6:LOCATE 22,15:PRINT V$(9);" ";:LINE INPUT FR$ 3790 LOCATE 22,15:PRINT SPC(64) 3800 FR(J)=VAL(FR$) 3810 IF FR(J)<3000 THEN 3780 3820 COLOR 7:LOCATE 13,35+(J-1)*14:PRINT USING "####";FR(J) 3830 LOCATE 13, 1:PRINT 7V$(9) 3840 RETURN 3850 ' -- polarization -- 3860 COLOR 6:LOCATE 14, 1:PRINT 8V$(10) 3870 COLOR 2:LOCATE 18,15:PRINT "(VERTICAL :V),(RIGHT ROTATION :R)" 3880 LOCATE 20,15:PRINT "(HORIZONTAL :H),(LEFT ROTATION :L)" 3890 COLOR 6:LOCATE 22,15:PRINT V$(10);" (V,H,R,L) ";:LINE INPUT EP$ 3900 FOR I=18 TO 20:LOCATE I,15:PRINT SPC(35):NEXT 3910 LOCATE 22,15:PRINT SPC(64) 3920 IF EP$<>"H" AND EP$<>"h" AND EP$<>"V" AND EP$<>"v" AND EP$<>"R" AND EP$<>"r" AND EP$<>"L" AND EP$<>"l" THEN 3870 3930 IF EP$="H" OR EP$="h" THEN EP$(J)="H" 3940 IF EP$="V" OR EP$="v" THEN EP$(J)="V" 3950 IF EP$="R" OR EP$="r" THEN EP$(J)="R" 3960 IF EP$="L" OR EP$="l" THEN EP$(J)="L" 3970 COLOR 7:LOCATE 14,38+(J-1)*14:PRINT EP$(J) 3980 LOCATE 14, 1:PRINT 8V$(10) 3990 RETURN 4000 ' -- T angle -- 4010 COLOR 6:LOCATE 5,1:PRINT 1V$(11) 4020 FLAG$="":L=5 4030 COLOR 6:LOCATE 22,15:PRINT V$(11)" (T,To,Ro) " 4040 GOSUB 5030 4050 COLOR 7:LOCATE 5,28+(J-1)*14:PRINT KF$ 4060 GOSUB 5070 4070 KT(J)=DO+FU/60+BY/3600:KT(J)=KT(J)*3.14159/180 4080 KT$(J)=KF$+" "+TY$ 4090 IF KF$="-" THEN KT(J)=-KT(J) 4100 LOCATE 5,1:PRINT 1V$(11) 4110 RETURN 4120 ' -- T distance -- 4130 COLOR 6:LOCATE 6,1:PRINT 2V$(12) 4140 COLOR 6:LOCATE 22,15:PRINT V$(12)" (To-T) ";:LINE INPUT LT$ 4150 COLOR 7:LOCATE 22,15:PRINT SPC(64) 4160 LT(J)=VAL(LT$) 4170 COLOR 7:LOCATE 6,33+(J-1)*14:PRINT USING "##.#km";LT(J) 4180 LOCATE 6,1:PRINT 2V$(12) 4190 RETURN 4200 ' -- R angle -- 4210 COLOR 6:LOCATE 7,1:PRINT 3V$(13) 4220 FLAG$="":L=7 4230 COLOR 6:LOCATE 22,15:PRINT V$(13);:COLOR 2:PRINT " (R,To,Ro) " 4240 GOSUB 5030 4250 COLOR 7:LOCATE 7,28+(J-1)*14:PRINT KF$ 4260 GOSUB 5070 4270 KR(J)=DO+FU/60+BY/3600:KR(J)=KR(J)*3.14159/180 4280 KR$(J)=KF$+" "+TY$ 4290 IF KF$="-" THEN KR(J)=-KR(J) 4300 LOCATE 7,1:PRINT 3V$(13) 4310 RETURN 4320 '-- R distance -- 4330 COLOR 6:LOCATE 8, 1:PRINT 4V$(14) 4340 COLOR 6:LOCATE 22,15:PRINT V$(14); 4350 IF J=1 THEN COLOR 4:PRINT " (To-Ro) "; ELSE COLOR 2:PRINT " (To-R) "; 4360 COLOR 6:LINE INPUT LR$ 4370 COLOR 7:LOCATE 22,15:PRINT SPC(64) 4380 LR(J)=VAL(LR$) 4390 COLOR 7:LOCATE 8,33+(J-1)*14:PRINT USING "##.#km";LR(J) 4400 LOCATE 8, 1:PRINT 4V$(14) 4410 RETURN 5000 ' ------------------------- 5010 ' * d.m.s input sub * 5020 ' ------------------------- 5030 COLOR 6:LOCATE 22,40:PRINT "SIGN( clockwise +, anticlockwise - ) ";: LINE INPUT KF$ 5040 COLOR 7:LOCATE 22,40:PRINT SPC(39) 5050 IF KF$<>"+" AND KF$<>"-" THEN 5030 5060 RETURN 5070 COLOR 6:LOCATE 22,40:LINE INPUT "DEGREE ";DO$ 5080 DO=VAL(DO$) 5090 IF FLAG$="IDO" AND DO>90 THEN LOCATE 22,40:PRINT SPC(39):GOTO 5070 5100 IF FLAG$="KDO" AND DO>180 THEN LOCATE 22,40:PRINT SPC(39):GOTO 5070 5110 LOCATE 22,52:LINE INPUT "MIMUTE ";FU$ 5120 FU=VAL(FU$) 5130 IF FU>60 THEN LOCATE 22,52:PRINT SPC(27):GOTO 5110 5140 LOCATE 22,64:LINE INPUT "SECOND ";BY$ 5150 BY=VAL(BY$) 5160 IF BY>60 THEN LOCATE 22,64:PRINT SPC(15):GOTO 5140 5170 LOCATE 22,15:PRINT SPC(64) 5180 IF LEN(DO$)=1 THEN DO$=" "+DO$ 5190 IF LEN(DO$)=2 THEN DO$=" "+DO$ 5200 IF LEN(FU$)=1 THEN FU$="0"+FU$ 5210 IF LEN(BY$)=1 THEN BY$="0"+BY$ 5220 TY$=DO$+":"+FU$+":"+BY$ 5230 COLOR 7:LOCATE L,30+(J-1)*14:PRINT USING "###:##:##";DO,FU,BY 5240 RETURN 6000 ' ------------------------ 6010 ' * D/U calculation(1) * 6020 ' ------------------------ 6030 FOR I=1 TO N 6040 K=TY(I):R=TX(I):L=RY(I):S=RX(I) :' route point 6050 GOSUB 10000:LD(I)=LD:LS(I)=LS :' span dis. & span loss 6060 TA(I)=PG :' T ant gain 6070 D(I)=TP(I)+TA(I)-TF(I)-LS(I) :' D level 6080 NEXT 6090 FOR J=1 TO N 6100 FOR I=1 TO N 6110 IF I=J THEN 6350 6120 K=TY(I):R=TX(I):L=RY(J):S=RX(J) :' U trans.-D rec. 6130 GOSUB 10000: LU(I)=LD 6140 K=RY(I):R=RX(I):L=RY(J):S=RX(J) :' D rec.-U tranc. 6150 GOSUB 10000:LRR(I)=LD 6160 K=TY(I):R=TX(I):L=TY(J):S=TX(J) :' U tranc.-D tranc. 6170 GOSUB 10000:LTT(I)=LD 6180 LL(I)=20*LOG(LU(I))/2.3026 :' U route span loss 6190 KA(I)=(LD(I)*LD(I)+LU(I)*LU(I)-LRR(I)*LRR(I))/(2*LD(I)*LU(I)) 6200 KA(I)=-ATN(KA(I)/SQR(-KA(I)*KA(I)+1))+1.5708 :' cos T angle 6210 KA(I)=INT(ABS(KA(I)*180/3.14159)) :' T dir. angle 6220 IF KA(I)>59 THEN KA(I)=59 6230 KB(I)=(LU(I)*LU(I)+LD(J)*LD(J)-LTT(I)*LTT(I))/(2*LU(I)*LD(J)) 6240 KB(I)=-ATN(KB(I)/SQR(-KB(I)*KB(I)+1))+1.5708 :' cos R angle 6250 KB(I)=INT(ABS(KB(I)*180/3.14159)) :' R dir. angle 6260 IF KB(I)>59 THEN KB(I)=59 6270 IF ABS(FR(I)-FR(J))>=20 THEN FS=25 ELSE FS=0 :' slot normal dir. 6280 MA=P0(KA(I)) :' T ant dir. 6290 IF EP(I)<>EP(J) THEN 6320 ELSE 6300 6300 MB=P0(KB(I)) :' R ant dir. 6310 GOTO 6330 6320 MB=P1(KB(I)) :' R ant dir. 6330 U(I)=TP(I)+TA(I)-TF(I)-LL(I)-FS-MA-MB :' U level 6340 DU(J,I)=D(J)-U(I) :' D/U 6350 NEXT I 6360 NEXT J 6370 GOTO 8000 7000 ' ------------------------ 7010 ' * D/U calculation(2) * 7020 ' ------------------------ 7030 FOR I=1 TO N 7040 LD(I)=SQR(LT(I)*LT(I)+LR(I)*LR(I)-2*LT(I)*LR(I)*COS(KT(I)-KR(I))) 7050 LS(I)=20*LOG(LD(I))/2.3026 :'span loss 7060 TA(I)=PG :' T Ant Gain 7070 D(I)=TP(I)+TA(I)-TF(I)-LS(I) :' D Level 7080 NEXT I 7090 FOR J=1 TO N 7100 FOR I=1 TO N 7110 IF I=J THEN 7330 7120 LU(I) =SQR(LT(I)*LT(I)+LR(J)*LR(J)-2*LT(I)*LR(J)*COS(KT(I)-KR(J))) 7130 LTT(I)=SQR(LT(I)*LT(I)+LT(J)*LT(J)-2*LT(I)*LT(J)*COS(KT(I)-KT(J))) 7140 LRR(I)=SQR(LR(I)*LR(I)+LR(J)*LR(J)-2*LR(I)*LR(J)*COS(KR(I)-KR(J))) 7150 KA(I)=(LD(I)*LD(I)+LU(I)*LU(I)-LRR(I)*LRR(I))/(2*LD(I)*LU(I)): IF KA(I)=1 THEN 7190 7160 KA(I)=-ATN(KA(I)/SQR(-KA(I)*KA(I)+1))+1.5708 7170 KA(I)=INT(ABS(KA(I)*180/3.14159)) :' T angle 7180 IF KA(I)>59 THEN KA(I)=59 7190 KB(I)=(LD(J)*LD(J)+LU(I)*LU(I)-LTT(I)*LTT(I))/(2*LD(J)*LU(I)): IF KB(I)=1 THEN 7230 7200 KB(I)=-ATN(KB(I)/SQR(-KB(I)*KB(I)+1))+1.5708 7210 KB(I)=INT(ABS(KB(I)*180/3.14159)) :' R angle 7220 IF KB(I)>59 THEN KB(I)=59 7230 LL(I)=20*LOG(LU(I))/2.3026 :' U route span loss 7240 ' 7250 IF ABS(FR(I)-FR(J))>=20 THEN FS=25 ELSE FS=0 :' Slot Normal direc. 7260 MA=P0(KA(I)) :' T Ant direc. 7270 IF EP(I)<>EP(J) THEN 7300 ELSE 7280 7280 MB=P0(KB(I)) :' R Ant direct. 7290 GOTO 7310 7300 MB=P1(KB(I)) :' R Ant direct. 7310 U(I)=TP(I)+TA(I)-TF(I)-LL(I)-FS-MA-MB :' U Level 7320 DU(J,I)=D(J)-U(I) :' D/U 7330 NEXT I 7340 NEXT J 8000 ' ------------------ 8010 ' * DU display * 8020 ' ------------------ 8030 CLS:SCREEN 0 8040 ' 8050 LOCATE 1, 1:PRINT STRING$(80,"=") 8060 LOCATE 2,20:PRINT "***** D/U OF CARRIER WAVES *****" 8070 LOCATE 3, 1:PRINT STRING$(80,"=") 8080 LOCATE 4, 1:PRINT "INTERFERENCE ROUTE" 8090 FOR I=1 TO N:LOCATE 4,7+15*I:PRINT "from No.";: PRINT USING "# (&)";I,A$(I,1):NEXT 8100 LOCATE 5, 1:PRINT STRING$(80,"-") 8110 FOR J=1 TO N 8120 LOCATE 6+(J-1)*2,1:PRINT "No.";:PRINT USING "# ROUTE (&)";J,A$(J,2) 8130 FOR I=1 TO N 8140 LOCATE 6+(J-1)*2,14+15*I 8150 IF I=J THEN PRINT " -----" ELSE PRINT USING "###.#dB";DU(J,I) 8160 NEXT I 8170 NEXT J 8180 PRINT STRING$(80,"-") 8190 COLOR 6:LOCATE 22,10:PRINT "Do you need a copy (Y/N) ? ";:Y$=INPUT$(1) 8200 IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 8190 8210 COLOR 7:LOCATE 22,10:PRINT SPC(69) 8220 IF Y$="Y" OR Y$="y" THEN GOSUB 9000 ELSE 8230 8230 COLOR 6:LOCATE 22,10:PRINT "Do you continue this work (Y/N) ? ";: Y$=INPUT$(1) 8240 IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 8230 8250 COLOR 7:LOCATE 22,10:PRINT SPC(69) 8260 IF Y$="Y" OR Y$="y" THEN CLS:GOTO 260 8270 CLS:SCREEN 0:RUN "ME" 9000 ' -------------------------------- 9010 ' * Input Data & D/U print sub * 9020 ' -------------------------------- 9030 ' input data 9040 LPRINT:LPRINT 9050 LPRINT TAB(1)STRING$(80,"-") 9060 LPRINT TAB(20)"***** D/U OF CARRIER WAVES *****" 9070 LPRINT TAB(1)STRING$(80,"-") 9080 LPRINT 9090 LPRINT TAB(30)"***** INPUT DATA *****" 9100 LPRINT 9110 LPRINT TAB(1)STRING$(80,"=") 9120 LPRINT TAB(1)V(0); 9130 FOR I=1 TO N:LPRINT TAB(16+14*I)USING "# (&-&)";I,A$(I,1),A$(I,2);:NEXT 9140 LPRINT TAB(1) STRING$(80,"=") 9150 IF INDEX$="1" THEN 9160 ELSE 9210 9160 LPRINT TAB(1)V$(3);: FOR I=1 TO N:LPRINT TAB(28+(I-1)*14)TY$(I);:NEXT 9170 LPRINT TAB(1)V$(4);: FOR I=1 TO N:LPRINT TAB(28+(I-1)*14)TX$(I);:NEXT 9180 LPRINT TAB(1)V$(5);: FOR I=1 TO N:LPRINT TAB(28+(I-1)*14)RY$(I);:NEXT 9190 LPRINT TAB(1)V$(6);: FOR I=1 TO N:LPRINT TAB(28+(I-1)*14)RX$(I);:NEXT 9200 GOTO 9340 9210 LPRINT TAB(1)V$(11); 9220 FOR I=1 TO N 9230 IF I=1 THEN LPRINT TAB(32)"-------"; ELSE LPRINT TAB(28+(I-1)*14)KT$(I); 9240 NEXT 9250 LPRINT TAB(1)V$(12); 9260 FOR I=1 TO N 9270 IF I=1 THEN LPRINT TAB(32)"-------"; ELSE LPRINT TAB(33+(I-1)*14)USING "##.#km";LT(I); 9280 NEXT 9290 LPRINT TAB(1)V$(13); 9300 FOR I=1 TO N 9310 IF I=1 THEN LPRINT TAB(31)"-------"; ELSE LPRINT TAB(27+(I-1)*14) KR$(I); 9320 NEXT 9330 LPRINT TAB(1)V$(14);: FOR I=1 TO N:LPRINT TAB(33+(I-1)*14)USING "##.#km";LR(I);:NEXT 9340 LPRINT TAB(1)V$(7);: FOR I=1 TO N:LPRINT TAB(35+(I-1)*14)USING "##.#";TP(I);:NEXT 9350 LPRINT TAB(1)V$(8);: FOR I=1 TO N:LPRINT TAB(35+(I-1)*14)USING "##.#";TF(I);:NEXT 9360 LPRINT TAB(1)V$(9);: FOR I=1 TO N:LPRINT TAB(35+(I-1)*14)USING "####";FR(I);:NEXT 9370 LPRINT TAB(1)V$(10);: FOR I=1 TO N:LPRINT TAB(38+(I-1)*14) EP$(I);:NEXT 9380 LPRINT 9390 LPRINT TAB(1) STRING$(80,"-") 9400 LPRINT:LPRINT 9410 ' DU data 9420 LPRINT TAB(30)"***** D/U DATA *****" 9430 LPRINT TAB(1)STRING$(80,"=") 9440 LPRINT:LPRINT "REC. POINT NAME"; 9450 FOR I=1 TO N:LPRINT TAB(7+15*I)USING "from No.# (&)";I,A$(I,1);:NEXT 9460 LPRINT TAB(1)STRING$(80,"-") 9470 FOR J=1 TO N 9480 LPRINT TAB(1)USING "No.# ROUTE (&)";J,A$(J,2); 9490 FOR I=1 TO N 9500 IF I=J THEN LPRINT TAB(14+15*I) " -----"; ELSE LPRINT TAB(14+15*I) USING "###.#dB";DU(J,I); 9510 NEXT I 9520 NEXT J 9530 LPRINT 9540 LPRINT TAB(1)STRING$(80,"-") 9550 LPRINT CHR$(&HC); 9560 RETURN 10000 ' -------------------------- 10010 ' * azimuth & distance sub * 10020 ' -------------------------- 10030 MS=SIN(K)*SIN(L)+COS(K)*COS(L)*COS(R-S) 10040 MS=-ATN(MS/SQR(-MS*MS+1))+1.5708 10050 LD=6370*MS :' span distance 10060 LS=20*LOG(LD)/2.3026 :' span loss 10070 RETURN