100 ' ***************************************** 110 ' * IBM PC BASIC VERSION A3.30 * 120 ' * FILE NAME "ELEV" * 130 ' * ANTENNA ELEVATION ANGLE * 140 ' * 1987/10 I.KATO * 150 ' ***************************************** 160 KEY OFF:CLS:SCREEN 9 170 ' 180 DEFDBL B,C,E,F,G,K,L,M,O,S 190 DIM Y(100) 200 DATA "SPAN DISTANCE(km)","A HEIGHT(m)","B HEIGHT(m)","k(average value)" 210 FOR I=1 TO 4:READ A$(I):NEXT 220 COLOR 14:LOCATE 1,1:PRINT "[ITEM 21] ANTENNA ELEVATION ANGLE ":PRINT:COLOR 7 230 PRINT "The results from this calculation will be available for the calculations in Item24(Over-reach interference) and Item 26 (Satellite interference), and further for installation data upon antenna mounting at site." 260 PRINT TAB(21)"----- calculation formula -----" 270 PRINT "ELEVATION ANGLE(rad)=-(H1-H2)/(D*1000)+(D/(2*k*A)": 280 PRINT "H1=A HEIGHT(m): H2=B HEIGHT(m)": PRINT "D=SPAN DISTANCE(km): A=EARTH RADIUS(6370 km)" 290 PRINT STRING$(80,"-") 300 FOR I=1 TO 4:LOCATE I+10,1:PRINT I" "A$(I):NEXT 310 FLAG$="":H1=500:H2=100:GOSUB 5000 320 GOSUB 3030:GOSUB 3120:GOSUB 3210:GOSUB 3300 330 COLOR 6:LOCATE 22,12:PRINT "Do you correct any data (Y/N) ? ";:Y$=INPUT$(1) 340 IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 330 350 COLOR 7:LOCATE 22,12:PRINT SPC(67) 360 IF Y$="N" OR Y$="n" THEN FLAG$="*":CLS:LOCATE 12,52:PRINT " ": LOCATE 17,60:PRINT " ":GOTO 1000 ELSE 380 370 ' 380 COLOR 6:LOCATE 22,12:INPUT "Input the item number(1-4) to be corrected ";NO$ 390 COLOR 7:LOCATE 22,12:PRINT SPC(67) 400 NO=VAL(NO$) 410 IF NO=0 OR NO>4 THEN 380 420 LOCATE 10+NO,22:PRINT SPC(25) 430 ON NO GOSUB 3030,3120,3210,3300 440 GOTO 330 1000 ' --------------------------------- 1010 ' * elevation(depression) angle * 1020 ' --------------------------------- 1030 F=((H1-H2)/D/1000+D/(2*K*6370))*(-1):E=F*180/3.14159:GOSUB 4000: U1=U:V1=V:W1=W:IF E<0 THEN Z1$="-":A1$="DEPRESSION" ELSE Z1$="+":A1$="ELEVATION" 1040 G=((H2-H1)/D/1000+D/(2*K*6370))*(-1):E=G*180/3.14159:GOSUB 4000: U2=U:V2=V:W2=W:IF E<0 THEN Z2$="-":A2$="DEPRESSION" ELSE Z2$="+":A2$="ELEVATION" 1050 COLOR 3 1060 LOCATE 17, 1:PRINT "A ANTENNA ";A1$:LOCATE 17,23:PRINT Z1$;USING "##:##:##";U1,V1,W1 1070 LOCATE 19, 1:PRINT "B ANTENNA ";A2$:LOCATE 19,23:PRINT Z2$;USING "##:##:##";U2,V2,W2 1080 GOSUB 5000 2000 ' 2110 COLOR 6:LOCATE 23, 1:PRINT "Do you continue the work (Y/N) ? ";:Y$=INPUT$(1) 2120 IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 2110 2130 COLOR 7:LOCATE 23, 1:PRINT SPC(79) 2140 IF Y$="Y" OR Y$="y" THEN SCREEN 0:CLS:SCREEN 9:GOTO 220 2150 SCREEN 0:CLS:RUN "ME" 3000 ' -------------------- 3010 ' * data input sub * 3020 ' -------------------- 3030 ' span distance 3040 COLOR 6:LOCATE 11, 1:PRINT 1" "A$(1) 3050 COLOR 6:LOCATE 22,10:PRINT "Input "A$(1)" ";:LINE INPUT X$ 3060 COLOR 7:LOCATE 22,10:PRINT SPC(69) 3070 D=VAL(X$) 3080 IF D=0 OR D>100 THEN 3050 3090 LOCATE 11,26:PRINT USING "####.#";D 3100 LOCATE 11, 1:PRINT 1" "A$(1) 3110 RETURN 3120 ' A point height 3130 COLOR 6:LOCATE 12, 1:PRINT 2" "A$(2) 3140 COLOR 6:LOCATE 22,10:PRINT "Input "A$(2)" ";:LINE INPUT X$ 3150 COLOR 7:LOCATE 22,10:PRINT SPC(69) 3160 H1=VAL(X$) 3170 IF H1=0 THEN 3140 3180 LOCATE 12,25:PRINT USING "#,###.#";H1 3190 LOCATE 12, 1:PRINT 2" "A$(2) 3200 RETURN 3210 ' B point height 3220 COLOR 6:LOCATE 13, 1:PRINT 3" "A$(3) 3230 COLOR 6:LOCATE 22,10:PRINT "Input "A$(3)" ";:LINE INPUT X$ 3240 COLOR 7:LOCATE 22,10:PRINT SPC(69) 3250 H2=VAL(X$) 3260 IF H2=0 THEN 3230 3270 LOCATE 13,25:PRINT USING "#,###.#";H2 3280 LOCATE 13, 1:PRINT 3" "A$(3) 3290 RETURN 3300 ' K 3310 COLOR 6:LOCATE 14, 1:PRINT 4" "A$(4) 3320 COLOR 6:LOCATE 22, 5:PRINT "Input "A$(4)" ";:LINE INPUT X$ 3330 COLOR 7:LOCATE 22, 5:PRINT SPC(69) 3340 IF MID$(X$,2,1)="/" THEN K=VAL(LEFT$(X$,1))/VAL(RIGHT$(X$,1)) ELSE K=VAL(X$) 3350 IF K>2 OR K<1 THEN 3320 3360 LOCATE 14,28:PRINT USING "#.##";K 3370 LOCATE 14, 1:PRINT 4" "A$(4) 3380 RETURN 4000 ' --------------------------------- 4010 ' κκ transrate Degree to DMS sub κκ 4020 ' --------------------------------- 4030 U=ABS(FIX(E)):V=(ABS(E)-U)*3600\60:W=(ABS(E)-U)*3600-V*60 4040 RETURN 5000 ' ------------------------------- 5010 ' * data input graph draw sub * 5020 ' ------------------------------- 5030 C=12.74*4/3:DHG=30 5040 WINDOW SCREEN(0,0)-(100,100) 5050 VIEW(400,154)-(580,287),,5 5060 ' ground surface 5070 FOR X=0 TO 100 5080 Y=100-(100-X)*X/C/10 5090 IF X=0 THEN PSET(X,Y) ELSE LINE-(X,Y),2 5100 Y(X)=Y 5110 NEXT 5120 IF FLAG$="" THEN 5130 ELSE 5220 5130 LINE(0, 20)-( 20,Y(20)),2 :'A 5140 LINE(80,Y(80))-(100,70),2 :'B 5150 PAINT( 5, 40),2,2 :'A 5160 PAINT(95, 90),2,2 :'B 5170 LINE( 0, 20)-(100,70),7 :'A-B 5180 LOCATE 12,52:PRINT "A" 5190 LOCATE 19,60:PRINT "SPAN" 5200 LOCATE 17,72:PRINT "B" 5210 RETURN 5220 IF H1>=H2 THEN TG=20:RG=100-H2/H1*80 5230 IF H2>H1 THEN RG=20:TG=100-H1/H2*80 5240 LINE ( 0, TG)-( 20,Y(20)),2 :'A 5250 LINE (80,Y(80))-(100, RG),2 :'B 5260 PAINT( 1,Y(1)- 1),2,2 5270 PAINT(99,Y(99)-1),2,2 5280 LINE (0,TG)-(100,RG),7 :'A-B 5290 IF H1>=H2 THEN 5300 ELSE 5380 5300 IF H1>H2 THEN KGA0=.1:KGB0=3.14-.3 :' horizontal 5310 IF H1=H2 THEN KGA0=.3:KGB0=3.14-.3 5320 KGA=3.14*2-ATN((RG-TG)/100):KGB=3.14-ATN((RG-TG)/100) 5330 CIRCLE(0,TG),DHG,3,-KGA,-KGA0 5340 IF KGB0>=KGB THEN CIRCLE(100,RG),DHG,3,-KGB,-KGB0 ELSE CIRCLE(100,RG),DHG,3,-KGB0,-KGB 5350 COLOR 7:LOCATE 12,52:PRINT "A" 5360 LOCATE 11+9*(H1-H2)/H1,72:PRINT "B":LOCATE 19,60:PRINT "SPAN" 5370 RETURN 5380 KGA=ATN((TG-RG)/100):KGB=3.14+ATN((TG-RG)/100) 5390 KGA0=.3:KGB0=3.14-.1 :'horizontal 5400 IF KGA0>=KGA THEN CIRCLE( 0,TG),DHG,3,-KGA,-KGA0 ELSE CIRCLE( 0,TG),DHG,3,-KGA0,-KGA 5410 CIRCLE(100,RG),DHG,3,-KGB0,-KGB 5420 COLOR 7:LOCATE 11+9*(H2-H1)/H2,52:PRINT "A" 5430 LOCATE 12,72:PRINT "B":LOCATE 19,60:PRINT "SPAN" 5440 RETURN