100 ' ********************************** 110 ' * IBM PC BASIC VERSION A3.30 * 120 ' * FILE NAME "OR" * 130 ' * OVER-REACH INTERFERENCE * 140 ' * 1987/10 I.KATO * 150 ' ********************************** 160 KEY OFF:CLS:SCREEN 9 170 ' 180 DEFDBL A,B,C,D,K,L,M,R,S 190 DIM V$(12),W$(20,1),S0(59),S1(59),P0(59),P1(59) 200 DATA "A HEIGHT","B HEIGHT","C HEIGHT","D HEIGHT": 'V$(1-4) 210 DATA "A-B DISTANCE","B-C DISTANCE","C-D DISTANCE","A-D DISTANCE":' V$(5-8) 220 DATA "ANGLE BAD","ANGLE ADC" :'V$(9-10) 230 DATA "RIDGE ALTITD","RIDGE DISTANCE" :'V$(11-12) 240 FOR I=1 TO 12:READ V$(I):NEXT 250 COLOR 14:LOCATE 1,1:PRINT "[ITEM 24] OVER-REACH INTERFERENCE ":PRINT:COLOR 7 260 PRINT "D/U (Desired-to-Undesired field intensity ratio) due to " 270 PRINT "over-reach interference within the same route is examined" 280 PRINT "with reference to the following criteria.":PRINT:COLOR 3 290 PRINT "--( The work requires maps, a ruler and a transporter )--":COLOR 7 300 PRINT:PRINT "(1) Frequency bands : 4, 5, 6, 7 and 8 GHz" 310 PRINT:PRINT "(2) Relay scheme : two frequency repetition" 320 PRINT:PRINT "(3) Antenna : parabolic 4m diameter" 330 PRINT:PRINT "(4) Transmitter output, feeder loss : common values for all stations" 340 PRINT:PRINT "(5) For an interference angle (BAD, ADC) in excess of 59 degrees, the antenna" 350 PRINT:PRINT " directivity at 59 degrees shall apply." 360 GOSUB 4000 370 COLOR 6:LOCATE 21,5:LINE INPUT "Input frequency band (GHz) (4,5,6,7,8) ";X$ 380 FZ=VAL(X$) 390 IF FZ<>INT(FZ) OR FZ<4 OR FZ>8 THEN LOCATE 21,5:PRINT SPC(75):GOTO 370 400 IF FZ=6 THEN 410 ELSE B$="":GOTO 450 410 LOCATE 22, 5:INPUT "Input L(lower band) or U(upper band) L/U ";B$ 420 LOCATE 22, 5:PRINT SPC(75) 430 IF B$<>"U" AND B$<>"u" AND B$<>"L" AND B$<>"l" THEN 410 440 LOCATE 21,49:PRINT "("B$")" 450 YF$=RIGHT$(STR$(FZ),1) 460 IF FZ=4 THEN FQ=4 470 IF FZ=5 THEN FQ=4.7 480 IF (FZ=6 AND B$="L") OR (FZ=6 AND B$="L") THEN YF$="6L":FQ=6.175 490 IF (FZ=6 AND B$="U") OR (FZ=6 AND B$="u") THEN YF$="6U":FQ=6.77 500 IF FZ=7 THEN FQ=7.575 510 IF FZ=8 THEN FQ=8 520 LOCATE 23,5:LINE INPUT "Input k(average value) ";X$ 530 IF MID$(X$,2,1)="/" THEN K=VAL(LEFT$(X$,1))/VAL(RIGHT$(X$,1)) ELSE K=VAL(X$) 540 IF K<1 OR K>2 THEN LOCATE 23,4:PRINT SPC(75):GOTO 520 550 CLS:SCREEN 0:SCREEN 9:COLOR 7 1000 ' ---------------- 1010 ' * data input * 1020 ' ---------------- 1040 LOCATE 1,20:PRINT "OVER-REACH (SELF ROUTE INTERFERENCE) ";:PRINT USING "##.# GHz";FQ 1060 ' horizontal graph draw 1070 GOSUB 4200 1080 FOR I=1 TO 12:LOCATE 2+I,1:PRINT USING "##";I;:PRINT " ";V$(I):NEXT 1090 ' height data input 1100 FOR I=1 TO 4 1110 COLOR 6:LOCATE 2+I,1:PRINT USING "##";I;:PRINT " "V$(I) 1120 COLOR 6:LOCATE 22,10:PRINT "Input "V$(I)"(m) ";:LINE INPUT X$ 1130 COLOR 7:LOCATE 22,10:PRINT SPC(69) 1140 H(I)=VAL(X$) 1150 IF H(I)=0 THEN 1120 1160 LOCATE 2+I,20:PRINT USING "#,###.#m";H(I) 1170 LOCATE 2+I, 1:PRINT USING "##";I;:PRINT " "V$(I) 1180 NEXT 1190 ' distance data input 1200 FOR I=1 TO 4 1210 IF I=1 THEN LINE( 5,70)-(37,40),6 1220 IF I=2 THEN LINE(37,40)-(63,60),6 1230 IF I=3 THEN LINE(63,60)-(90,30),6 1240 IF I=4 THEN LINE( 5,70)-(90,30),6 1250 COLOR 6:LOCATE 6+I,1:PRINT USING "##";I+4;:PRINT " "V$(I+4) 1260 COLOR 6:LOCATE 22,10:PRINT "Input "V$(I+4)"(km) ";:LINE INPUT X$ 1270 COLOR 7:LOCATE 22,10:PRINT SPC(69) 1280 LD(I)=VAL(X$) 1290 IF LD(4)>LD(1)+LD(2)+LD(3) THEN 1260 1300 LOCATE 6+I,22:PRINT USING "###.#km";LD(I) 1310 LOCATE 6+I, 1:PRINT USING "##";I+4;:PRINT " "V$(I+4) 1320 IF I=1 THEN LINE( 5,70)-(37,40),7 1330 IF I=2 THEN LINE(37,40)-(63,60),7 1340 IF I=3 THEN LINE(63,60)-(90,30),7 1350 IF I=4 THEN LINE( 5,70)-(90,30),0:LINE( 5,70)-(90,30),4,,&H8888 1360 NEXT 1370 ' angle data input 1380 FOR I=1 TO 2 1390 COLOR 6:LOCATE I+10,1:PRINT USING "##";I+8;:PRINT " "V$(I+8) 1400 IF I=1 THEN CIRCLE( 5,70),20,6,-VHA1,-VHA2 1410 IF I=2 THEN CIRCLE(90,30),20,6,-VHD1,-VHD2 1420 COLOR 6:LOCATE 22,10:PRINT "Input "V$(I+8) 1430 GOSUB 2700 1440 COLOR 7:LOCATE I+10,21:PRINT USING "##:##:##";DO,FU,BY 1450 KUH(I)=DO+FU/60+BY/3600 1460 IF I=1 THEN CIRCLE( 5,70),20,7,-VHA1,-VHA2 1470 IF I=2 THEN CIRCLE(90,30),20,7,-VHD1,-VHD2 1480 LOCATE I+10,1:PRINT USING "##";I+8;:PRINT " "V$(I+8) 1490 NEXT 1500 ' vertical graph draw & elevation angle 1510 GOSUB 4600:GOSUB 5200 1520 ' ridge hight input 1530 COLOR 6:LOCATE 13, 1:PRINT USING "##";11;:PRINT " "V$(11) 1540 LINE(47,100)-(50,20),6:LINE(50,20)-(53,100),6:LINE(47,100)-(53,100),6 1550 PAINT(50,99),6,6 1560 COLOR 6:LOCATE 22, 1:PRINT "Input "V$(11)"(m) on the A-D line (input 0 in cace of nothing ridge ) ";:LINE INPUT X$ 1570 COLOR 7:LOCATE 22, 1:PRINT SPC(79) 1580 LH=VAL(X$) 1590 LOCATE 13,20:PRINT USING "#,###.#m";LH 1600 LOCATE 13, 1:PRINT USING "##";11;:PRINT " "V$(11) 1610 IF LH=0 THEN LD=0:GOTO 1670 1620 ' ridge distance input 1630 COLOR 6:LOCATE 14, 1:PRINT USING "##";12;:PRINT " "V$(12) 1640 COLOR 6:LOCATE 22, 1:PRINT "Input "V$(12)"(km) from POINT A ";:LINE INPUT X$ 1650 COLOR 7:LOCATE 22, 1:PRINT SPC(79) 1660 LD=VAL(X$) 1670 LOCATE 14,22:PRINT USING "###.#km";LD 1680 LOCATE 14, 1:PRINT USING "##";12;:PRINT " "V$(12) 1690 CLS:GOSUB 4200:GOSUB 4600 1700 VHL=100-LH/MH*100:VLD=LD/MD*100 1710 LINE(VLD-3,100)-(VLD,VHL),6:LINE(VLD,VHL)-(VLD+3,100),6: LINE(VLD-3,100)-(VLD+3,100),6 1720 IF VHL<99 THEN PAINT(VLD,99),6,6 1730 COLOR 6:LOCATE 22,15:PRINT "Do you correct any data (Y/N) ? ";:Y$=INPUT$(1) 1740 IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 1730 1750 COLOR 7:LOCATE 22,15:PRINT SPC(64) 1760 IF Y$="Y" OR Y$="y" THEN 1770 ELSE 3000 1770 COLOR 6:LOCATE 22,10:LINE INPUT "Input the item number to be corrected (1-12) ";X$ 1780 COLOR 7:LOCATE 22,10:PRINT SPC(69) 1790 NO=VAL(X$) 1800 IF NO=0 OR NO>12 THEN 1770 1810 IF NO<5 THEN 1870 1820 IF NO>4 AND NO<9 THEN 1960 1830 IF NO=9 OR NO=10 THEN 2060 1840 IF NO=11 THEN 2150 1850 IF NO=12 THEN 2240 1860 ' 1870 COLOR 6:LOCATE NO+2, 1:PRINT USING "##";NO;:PRINT " "V$(NO) 1880 COLOR 7:LOCATE NO+2,20:PRINT SPC(10) 1890 COLOR 6:LOCATE 22,10:PRINT "Input "V$(NO)"(m) ";:LINE INPUT X$ 1900 COLOR 7:LOCATE 22,10:PRINT SPC(69) 1910 H(NO)=VAL(X$) 1920 LOCATE NO+2,20:PRINT USING "#,###.#m";H(NO) 1930 GOSUB 2500 1940 LOCATE NO+2, 1:PRINT USING "##";NO;:PRINT " "V$(NO) 1950 GOTO 1730 1960 COLOR 6:LOCATE NO+2, 1:PRINT USING "##";NO;:PRINT " "V$(NO) 1970 COLOR 7:LOCATE NO+2,20:PRINT SPC(10) 1980 COLOR 6:LOCATE 22,10:PRINT "Input "V$(NO)"(km) ";:LINE INPUT X$ 1990 COLOR 7:LOCATE 22,10:PRINT SPC(69) 2000 LD(NO-4)=VAL(X$) 2010 IF LD(4)>LD(1)+LD(2)+LD(3) THEN 1980 2020 LOCATE NO+2,22:PRINT USING "###.#km";LD(NO-4) 2030 GOSUB 2500 2040 LOCATE NO+2, 1:PRINT USING "##";NO;:PRINT " "V$(NO) 2050 GOTO 1730 2060 COLOR 6:LOCATE NO+2, 1:PRINT USING "##";NO;:PRINT " "V$(NO) 2070 COLOR 7:LOCATE NO+2,20:PRINT SPC(10) 2080 COLOR 6:LOCATE 22,10:PRINT NO" "V$(NO) 2090 GOSUB 2700 2100 COLOR 7:LOCATE NO+2,21:PRINT USING "##:##:##";DO,FU,BY 2110 KUH(NO-8)=DO+FU/60+BY/3600 2120 GOSUB 2500 2130 LOCATE NO+2, 1:PRINT USING "##";NO;:PRINT " "V$(NO) 2140 GOTO 1730 2150 COLOR 6:LOCATE 13, 1:PRINT USING "##";11;:PRINT " "V$(11) 2160 COLOR 7:LOCATE 13,20:PRINT SPC(10) 2170 COLOR 6:LOCATE 22, 1:PRINT "Input "V$(11)"(m) on the A-D line (input 0 incace of nothing ridge ) ";:LINE INPUT X$ 2180 COLOR 7:LOCATE 22, 1:PRINT SPC(79) 2190 LH=VAL(X$) 2200 LOCATE 13,20:PRINT USING "#,###.#m";LH 2210 GOSUB 2500 2220 LOCATE 13, 1:PRINT USING "##";11;:PRINT " "V$(11) 2230 GOTO 1730 2240 COLOR 6:LOCATE 14, 1:PRINT USING "##";12;:PRINT " "V$(12) 2250 COLOR 7:LOCATE 14,20:PRINT SPC(10) 2260 COLOR 6:LOCATE 22, 1:PRINT "Input "V$(12)"(km) from A point ";: LINE INPUT X$ 2270 COLOR 7:LOCATE 22, 1:PRINT SPC(79) 2280 LD=VAL(X$) 2290 LOCATE 14,22:PRINT USING "###.#km";LD 2300 LOCATE 14, 1:PRINT USING "##";12;:PRINT " "V$(12) 2310 GOSUB 2500 2320 GOTO 1730 2500 ' sub 2510 CLS:GOSUB 4200:GOSUB 4600 2520 VHL=100-LH/MH*100:VLD=LD/MD*100 2530 LINE(VLD-3,100)-(VLD,VHL),6:LINE(VLD,VHL)-(VLD+3,100),6: LINE(VLD-3,100)-(VLD+3,100),6 2540 IF VHL<99 THEN PAINT(VLD,99),6,6 2550 RETURN 2700 ' ------------------------- 2710 ' * d.m.s input sub * 2720 ' ------------------------- 2730 COLOR 6:LOCATE 22,40:LINE INPUT "DEGREE ";DO$ 2740 DO=VAL(DO$) 2750 IF DO<>INT(DO) THEN LOCATE 22,40:PRINT SPC(39):GOTO 2730 2760 LOCATE 22,52:LINE INPUT "MIMUTE ";FU$ 2770 FU=VAL(FU$) 2780 IF FU>60 THEN LOCATE 22,52:PRINT SPC(27):GOTO 2760 2790 LOCATE 22,64:LINE INPUT "SECOND ";BY$ 2800 BY=VAL(BY$) 2810 IF BY>60 THEN LOCATE 22,64:PRINT SPC(15):GOTO 2790 2820 LOCATE 22,10:PRINT SPC(69) 2830 RETURN 3000 ' -------------- 3010 ' * D/U cal. * 3020 ' -------------- 3030 OPEN "ASWP"+YF$ FOR INPUT AS #1 3040 INPUT #1,G:FOR I=0 TO 59:INPUT #1,S0(I),S1(I):NEXT:CLOSE 3050 FOR I=0 TO 59:P0(I)=S0(I):P1(I)=S1(I):NEXT 3060 ' 3070 OPEN "ASNP"+YF$ FOR INPUT AS #1 3080 FOR J=0 TO 20:FOR I=0 TO 1:INPUT #1,W$(J,I):NEXT I,J:CLOSE 3090 ' span loss 3100 SPLA=20*LOG(LD(4)/LD(1))/2.3026 :' A span loss 3110 SPLD=20*LOG(LD(4)/LD(3))/2.3026 :' D span loss 3120 ' attenuation of ant defrection 3130 ' A side horizontal 3140 IF KUH(1)>59 THEN MAH=P0(59):GOTO 3200 3150 IF KUH(1)>2 AND KUH(1)<59 THEN MAH=P0(INT(KUH(1))):GOTO 3200 ELSE 3160 3160 FOR I=0 TO 20 3170 IF KUH(1)>VAL(W$(I,0)) THEN 3190 3180 MAH=VAL(W$((I-1),1)):GOTO 3200 3190 NEXT 3200 ' A side vertical 3210 IF KUV(1)>2 THEN MAV=P0(INT(KUV(1))):GOTO 3260 ELSE 3220 3220 FOR I=0 TO 20 3230 IF KUV(1)>VAL(W$(I,0)) THEN 3250 3240 MAV=VAL(W$((I-1),1)):GOTO 3260 3250 NEXT 3260 ' D side horizontal 3270 IF KUH(2)>59 THEN MDH=P0(59):GOTO 3330 3280 IF KUH(2)>2 AND KUH(2)<59 THEN MDH=P0(INT(KUH(2))):GOTO 3330 ELSE 3290 3290 FOR I=0 TO 20 3300 IF KUH(2)>VAL(W$(I,0)) THEN 3320 3310 MDH=VAL(W$((I-1),1)):GOTO 3330 3320 NEXT 3330 ' D side vertical 3340 IF KUV(2)>2 THEN MDV=P0(INT(KUV(2))):GOTO 3390 ELSE 3350 3350 FOR I=0 TO 20 3360 IF KUV(2)>VAL(W$(I,0)) THEN 3380 3370 MDV=VAL(W$((I-1),1)):GOTO 3390 3380 NEXT 3390 ' ridge loss 3400 WL=3*100/FQ 3410 IF LD=0 THEN RL=0:GOTO 3480 ELSE FR=SQR(WL*LD*(LD(4)-LD)/LD(4)) 3420 CL=H(1)-LD/LD(4)*(H(1)-H(4))-LD*(LD(4)-LD)/(2*K*6370)*1000-LH 3430 Z=-CL/FR 3440 IF Z>=1 THEN RL=20*LOG(2*3.14159*Z)/2.3026 3450 IF Z<1 AND Z>0 THEN RL=6+12*Z-2.2*Z*Z 3460 IF Z=<0 THEN RL=1/(.143-.17*Z+Z*Z)-1/(.994+1.48*Z+Z*Z) 3470 IF RL<0 THEN RL=0 3475 SPLA=INT(SPLA*10)/10:SPLD=INT(SPLD*10)/10:MAH=INT(MAH*10)/10: MDH=INT(MDH*10)/10:MAV=INT(MAV*10)/10:MDV=INT(MDV*10)/10:RL=INT(RL*10)/10 3480 DUA=SPLA+MAH+MAV+RL :' A side D/U 3490 DUD=SPLD+MDH+MDV+RL :' D side D/U 3500 COLOR 2:LOCATE 15,11:PRINT "---- A side ----": COLOR 3:LOCATE 15,53:PRINT "---- D side ----" 3510 COLOR 2:LOCATE 16, 1:PRINT USING "A side span loss difference ###.#dB";SPLA 3520 COLOR 3:LOCATE 16,43:PRINT USING "D side span loss difference ###.#dB";SPLD 3530 COLOR 2:LOCATE 17, 1:PRINT USING "horizontal deflection ##.#deg ##.#dB";KUH(1),MAH 3540 COLOR 3:LOCATE 17,43:PRINT USING "horizontal deflection ##.#deg ##.#dB";KUH(2),MDH 3550 COLOR 2:LOCATE 18, 1:PRINT USING "vertical deflection ##.#deg ##.#dB";KUV(1),MAV 3560 COLOR 3:LOCATE 18,43:PRINT USING "vertical deflection ##.#deg ##.#dB";KUV(2),MDV 3570 COLOR 2:LOCATE 19, 1:PRINT USING "A-D ridge loss ###.#dB";RL 3580 COLOR 3:LOCATE 19,43:PRINT USING "A-D ridge loss ###.#dB";RL 3590 COLOR 7:LOCATE 20, 1:PRINT STRING$(80,"-") 3600 COLOR 2:LOCATE 21, 1:PRINT USING "A side D/U ###.#dB";DUA 3610 COLOR 3:LOCATE 21,43:PRINT USING "D side D/U ###.#dB";DUD 3620 COLOR 7:LOCATE 22, 1:PRINT STRING$(80,"-") 3670 COLOR 6:LOCATE 23,10:PRINT "Do you continue this work (Y/N) ? ";:Y$=INPUT$(1) 3680 IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 3670 3690 COLOR 7:LOCATE 23,10:PRINT SPC(69) 3700 IF Y$="Y" OR Y$="y" THEN CLS:SCREEN 0:SCREEN 9:GOTO 250 3710 CLS:SCREEN 0:RUN "ME" 4000 ' ------------------------ 4010 ' * graph draw sub (1) * 4020 ' ------------------------ 4030 WINDOW SCREEN(0,0)-(100,100) 4040 VIEW(467,35)-(635,152),,5 4050 GOSUB 4400 4060 COLOR 4:LOCATE 4,63:PRINT "A-D OVER-REACH":COLOR 7 4070 LOCATE 10,60:PRINT "A":LOCATE 6,66:PRINT "B" 4080 LOCATE 9,72:PRINT "C":LOCATE 5,78:PRINT "D" 4090 LOCATE 7,61:PRINT "f1":LOCATE 7,77:PRINT "f1": LOCATE 6,69:PRINT "f2" 4100 COLOR 7:RETURN 4200 ' ------------------------ 4210 ' * graph draw sub (2) * 4220 ' ------------------------ 4230 WINDOW SCREEN(0,0)-(100,100) 4240 VIEW(240,35)-(438,182),,5 4250 GOSUB 4400:COLOR 7 4260 LOCATE 12,37:PRINT "ground plane" 4270 LOCATE 11,32:PRINT "A":LOCATE 6,39:PRINT "B" 4280 LOCATE 10,46:PRINT "C":LOCATE 5,52:PRINT "D" 4300 RETURN 4400 ' ------------------------ 4410 ' * graph draw sub (3) * 4420 ' ------------------------ 4430 LINE( 5,70)-(37,40),7:LINE(37,40)-(63,60),7 4440 LINE(63,60)-(90,30),7 4450 LINE( 5,70)-(90,30),4 4460 VHA1=ATN(40/85):VHA2=ATN(30/32) 4470 VHD1=ATN(85/40):VHD1=4.71-VHD1 4480 VHD2=ATN(27/30):VHD2=4.71-VHD2 4490 CIRCLE( 5,70),20,7,-VHA1,-VHA2 4500 CIRCLE(90,30),20,7,-VHD1,-VHD2 4510 RETURN 4600 ' ------------------------ 4610 ' * graph draw sub (4) * 4620 ' ------------------------ 4630 LOCATE 13,62:PRINT "vertical profile" 4640 WINDOW SCREEN(-10,-10)-(110,110) 4650 VIEW(440,35)-(635,182),,5 4660 MH=H(1):MD=LD(1)+LD(2)+LD(3) 4670 FOR I=2 TO 4 4680 IF H(I)>MH THEN MH=H(I) 4690 NEXT 4700 FOR I=1 TO 4:VH(I)=100-H(I)/MH*100:NEXT 4710 FOR I=1 TO 3:VLD(I)=LD(I)/MD*100:NEXT 4720 VLD(2)=VLD(1)+VLD(2) 4730 LINE(-10,100)-(110,100),2 :' ground line 4740 LINE( -5,100)-( 0,VH(1)),2: LINE( 0,VH(1))-( 5,100),2 :'A 4750 PAINT( 0,99),2,2 4760 LINE(VLD(1)-5,100)-(VLD(1),VH(2)),2: LINE(VLD(1),VH(2))-(VLD(1)+5,100),2 :'B 4770 PAINT(VLD(1),99),2,2 4780 LINE(VLD(2)-5,100)-(VLD(2),VH(3)),2: LINE(VLD(2),VH(3))-(VLD(2)+5,100),2 :'C 4790 PAINT(VLD(2),99),2,2 4800 LINE( 95,100)-( 100,VH(4)),2: LINE( 100,VH(4))-(105,100),2 :'D 4810 PAINT(100,99),2,2 4820 LINE( 0,VH(1))-(VLD(1),VH(2)),7 :'A-B 4830 LINE(VLD(1),VH(2))-(VLD(2),VH(3)),7 :'B-C 4840 LINE(VLD(2),VH(3))-( 100,VH(4)),7 :'C-D 4850 LINE( 0,VH(1))-( 100,VH(4)),4 :'A-D 4860 L1=195/120:L2=84/120 4870 LOCATE (20+VH(1))/8,57:PRINT "A" 4880 LOCATE (20+L2*VH(2))/8,(445+L1*VLD(1))/8+2:PRINT "B" 4890 LOCATE (20+L2*VH(3))/8,(445+L1*VLD(2))/8+2:PRINT "C" 4900 LOCATE (20+VH(4))/8,78:PRINT "D" 4920 FOR I=1 TO 4:VHH(I)=100-VH(I):NEXT 4930 VVA1=ATN((VHH(2)-VHH(1))/VLD(1)) 4940 VVA2=ATN((VHH(4)-VHH(1))/100) 4950 IF VVA1>=VVA2 THEN 4970 4960 IF VVA1< VVA2 THEN 5010 4970 IF VVA1<0 THEN VVA1=6.28+VVA1 4980 IF VVA2<0 THEN VVA2=6.28+VVA2 4990 CIRCLE( 0,VH(1)),20,7,VVA2,VVA1:GOTO 5050 5000 ' 5010 IF VVA1<0 THEN VVA1=6.28+VVA1 5020 IF VVA2<0 THEN VVA2=6.28+VVA2 5030 CIRCLE( 0,VH(1)),20,7,VVA1,VVA2 5040 ' 5050 IF H(4)>H(3) THEN VVD1=3.14+ATN((VHH(4)-VHH(3))/VLD(3)) ELSE VVD1=3.14-ATN((VHH(3)-VHH(4))/VLD(3)) 5060 IF H(4)>H(1) THEN VVD2=3.14+ATN((VHH(4)-VHH(1))/100) ELSE VVD2=3.14-ATN((VHH(1)-VHH(4))/100) 5070 IF VVD1>=VVD2 THEN CIRCLE(100,VH(4)),20,7,VVD2,VVD1 5080 IF VVD1< VVD2 THEN CIRCLE(100,VH(4)),20,7,VVD1,VVD2 5090 RETURN 5200 ' ---------------------------------- 5210 ' * vertical deviation angle sub * 5220 ' ---------------------------------- 5230 F1=((H(1)-H(2))/LD(1)/1000+LD(1)/16987)*(-1) 5240 F2=((H(1)-H(4))/MD/1000+MD/16987)*(-1) 5250 K(1)=ABS(F1-F2):KUV(1)=K(1)*180/3.14159 :'A point 5260 E=K(1):GOSUB 5400:U1=U:V1=V:W1=W 5270 G1=((H(4)-H(3))/LD(3)/1000+LD(3)/16987)*(-1) 5280 G2=((H(4)-H(1))/MD/1000+MD/16987)*(-1) 5290 K(2)=ABS(G1-G2):KUV(2)=K(2)*180/3.14159 :'D point 5300 E=K(2):GOSUB 5400:U2=U:V2=V:W2=W 5310 RETURN 5400 ' ----------------------------------- 5410 ' * Degree translate subroutine * 5420 ' ----------------------------------- 5430 U=ABS(FIX(E)):V=(ABS(E)-U)*3600\60:W=(ABS(E)-U)*3600-V*60 5440 RETURN