100 ' ************************************ 110 ' * IBM PC BASIC VERSION A3.30 * 120 ' * FILE NAME "PATH" * 130 ' * PROPAGATION PATH PERFORMANCES * 140 ' * 1987/10 I.KATO * 150 ' ************************************ 160 KEY OFF:CLS:SCREEN 9:COLOR 14 170 FLAG$="":SD$="":INDEX$="" 180 DEFDBL A,B,C,E,F,G,K,L,M,O,P,Q,S 190 DIM U$(14),Y(200),W$(20,1) 200 DATA "1 SPAN DIST","2 A HEIGHT","3 B HEIGHT","4 F ALTITD","5 F DIST " 210 DATA "6 F FEAT " ,"7 L ALTITD","8 L DIST ","9 P ALTITD","10 P DIST ", "11 P FEAT " ,"12 Q ALTITD","13 Q DIST ","14 Q FEAT " 220 DATA "waterface","paddy field","field","dry field","urban area","wood", "mountain" 230 DATA "mountains","plains","sea face","coast" 240 DATA 85,75,60,50,35,20,15,10,5 250 DATA "62.2","75.5","72.8","72.4","72.2","71.5","71.0" 260 FOR I=1 TO 14:READ U$(I):NEXT 270 FOR I=1 TO 7:READ V$(I):NEXT 280 FOR I=1 TO 4:READ Y$(I):NEXT 290 FOR I=1 TO 9:READ XE(I):NEXT 300 FOR I=1 TO 7:READ SN$(I):NEXT 310 LOCATE 1,1:PRINT "[Item 23] ESTIMATION OF PROPAGATION PATH PERFORMANCES ":PRINT:COLOR 7 320 PRINT "Comments on path suitability will be inclusively displayed." 330 PRINT "Estimation can be carried out for 2, 4, 5, 6, 7, 8 and 11 GHZ bands, while 4m diameter parabolic antennas are commonly applied." 350 PRINT TAB(11)"***** Propagation performances to be obtained *****":PRINT 360 PRINT TAB(11)"First Fresnel zone radius at ridge point" 370 PRINT TAB(11)"Ridge clearances of direct and reflected waves" 380 PRINT TAB(11)"Ridge losses of direct and reflected waves" 390 PRINT TAB(11)"Reflection point and reflection loss" 400 PRINT TAB(11)"Included angle between direct and reflected waves": PRINT TAB(11)"Antenna elevation angle" 410 PRINT TAB(11)"Total span loss for direct wave" 420 PRINT TAB(11)"Total attenuation effect for reflected wave" 430 PRINT TAB(11)"Rayleigh fading occurrence probability and circuit dropout rate" 440 PRINT TAB(11)"Ideal spacing of antennas for the space diversity system" 450 GOSUB 7510:GOSUB 7700:GOSUB 7750 460 COLOR 6:LOCATE 23,15:PRINT "Do you correct any data (Y/N) ? ";:Y$=INPUT$(1) 470 IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 460 480 COLOR 7:LOCATE 23,15:PRINT SPC(64) 490 IF Y$="N" OR Y$="n" THEN 600 ELSE 500 500 COLOR 6:LOCATE 23,15:LINE INPUT "Input the item number(1-3) to be corrected ";NO$ 510 COLOR 7:LOCATE 23,15:PRINT SPC(64) 520 NO=VAL(NO$) 530 IF NO<1 OR NO>3 THEN 500 540 LOCATE 18+NO,6:PRINT SPC(74) 550 ON NO GOSUB 7510,7700,7750 560 GOTO 460 570 ' 600 OPEN "ASNP"+FZ$ FOR INPUT AS #1 610 FOR J=0 TO 20:FOR I=0 TO 1:INPUT #1,W$(J,I):NEXT I,J:CLOSE 620 CLS:SCREEN 9:COLOR 7:INDEX$="" 1000 ' ---------------------------- 1010 ' * fundamental data input * 1020 ' ---------------------------- 1030 RIDGE$="*" 1040 VSH1=60:VMH1=50:VXL=50:VYL=50:VMH2=10:VEH2=30 1050 GOSUB 16000 1060 LOCATE 1,3:PRINT "FREQUENCY":LOCATE 1,13:PRINT USING "###.#GHz";FQ 1070 FOR I=0 TO 13:LOCATE 2+I,1:PRINT U$(I+1):NEXT 1080 GOSUB 5030:GOSUB 5200:GOSUB 5310:GOSUB 1590:GOSUB 1670:GOSUB 5420: GOSUB 5830:GOSUB 5980:GOSUB 6370:GOSUB 6790:GOSUB 6940:GOSUB 7360 1090 LOCATE 1,26:PRINT SPC(54) 1100 COLOR 6:LOCATE 22,10:PRINT "Do you correct any data (Y/N) ? ";:Y$=INPUT$(1) 1110 IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 1100 1120 COLOR 7:LOCATE 22,10:PRINT SPC(69) 1130 IF Y$="N" OR Y$="n" THEN LOCATE 1,21:PRINT SPC(59):GOTO 2000 ELSE 1140 1140 COLOR 6:LOCATE 22,10:LINE INPUT "Input the item number(1-14) to be corrected ";NO$ 1150 COLOR 7:LOCATE 22,10:PRINT SPC(69) 1160 NO=VAL(NO$) 1170 IF NO<1 OR NO>14 THEN 1140 1180 IF NO=5 OR NO=10 OR NO=13 THEN COLOR 4:LOCATE 22,10:PRINT "Do not correct independentry ":FOR I=1 TO 5000:NEXT:COLOR 7:LOCATE 22,10:PRINT SPC(69): GOTO 1100 1190 LOCATE NO+1,12:PRINT SPC(10) 1200 IF NO=1 THEN GOSUB 5030:FOR I= 5 TO 7:LOCATE I,12:PRINT SPC(10):NEXT: GOSUB 1590:GOSUB 1630:GOSUB 5420:GOSUB 5830:FOR I=13 TO 15:LOCATE I,12: PRINT SPC(10):NEXT:GOSUB 6940:GOSUB 7360:GOSUB 1410 1210 IF NO=2 THEN GOSUB 5200:FOR I= 5 TO 7:LOCATE I,12:PRINT SPC(10):NEXT: GOSUB 1590:GOSUB 1650:GOSUB 5420:GOSUB 5830:FOR I=10 TO 12:LOCATE I,12: PRINT SPC(10):NEXT:GOSUB 6370:GOSUB 6790:GOSUB 1500 1220 IF NO=3 THEN GOSUB 5310:FOR I= 5 TO 7:LOCATE I,12:PRINT SPC(10):NEXT: GOSUB 1590:GOSUB 1650:GOSUB 5420:GOSUB 5830:FOR I=13 TO 15:LOCATE I,12: PRINT SPC(10):NEXT:GOSUB 6940:GOSUB 7360:GOSUB 1410 1230 IF NO=4 THEN FOR I=6 TO 7:LOCATE I,12:PRINT SPC(10):NEXT:GOSUB 5610: GOSUB 1410:GOSUB 1500:GOSUB 5830 1240 IF NO=6 THEN LOCATE 7,10:PRINT SPC(12):GOSUB 5830 1250 IF NO=7 THEN GOSUB 1650:GOSUB 5980:FOR I=10 TO 15:LOCATE I,12: PRINT SPC(10):NEXT:GOSUB 6370:GOSUB 6790:GOSUB 6940:GOSUB 7360 1260 IF NO=8 THEN GOSUB 1650:GOSUB 6170:FOR I=10 TO 15:LOCATE I,12: PRINT SPC(10):NEXT:GOSUB 6370:GOSUB 6790:GOSUB 6940:GOSUB 7360 1270 IF NO=9 THEN FOR I=11 TO 12:LOCATE I,12:PRINT SPC(10):NEXT:GOSUB 6590: GOSUB 1330:GOSUB 1500:GOSUB 6790 1280 IF NO=11 THEN LOCATE 12,10:PRINT SPC(12):GOSUB 6790 1290 IF NO=12 THEN FOR I=14 TO 15:LOCATE I,12:PRINT SPC(10):NEXT:GOSUB 7160: GOSUB 1330:GOSUB 1410:GOSUB 7360 1300 IF NO=14 THEN LOCATE 15,10:PRINT SPC(12):GOSUB 7360 1310 GOTO 1100 1320 ' 1330 LINE( 2,VMH1)-(VDF,VHF),7,,&H8888 1340 LINE(VDF,VHF)-(98,VMH2),7,,&H8888 1350 IF VHF>=99 THEN 1390 1360 LINE(VDF-5,100)-(VDF,VHF),2 1370 LINE(VDF,VHF)-(VDF+5,100),2 1380 PAINT(VDF,99),2,2 1390 LOCATE (10+VHF)/8-1,(180+VDF*2)/8+1:PRINT "F" 1400 RETURN 1410 IF RIDGE$="" THEN RETURN 1420 LINE( 2,VMH1)-(VDP,VHR1),7,,&H8888 1430 LINE(VDP,VHR1)-(VDL,VHS),7,,&H8888 1440 IF VHR1>=99 THEN 1480 1450 LINE(VDP-5,100)-(VDP,VHR1),2 1460 LINE(VDP,VHR1)-(VDP+5,100),2 1470 PAINT(VDP,99),2,2 1480 LOCATE (10+VHR1)/8-1,(180+VDP*2)/8+1:PRINT "P" 1490 RETURN 1500 IF RIDGE$="" THEN RETURN 1510 LINE(VDL,VHS)-(VDQ,VHR2),7,,&H8888 1520 LINE(VDQ,VHR2)-(98,VMH2),7,,&H8888 1530 IF VHR2>=99 THEN 1570 1540 LINE(VDQ-5,100)-(VDQ,VHR2),2 1550 LINE(VDQ,VHR2)-(VDQ+5,100),2 1560 PAINT(VDQ,99),2,2 1570 LOCATE (10+VHR2)/8-1,(180+VDQ*2)/8+1:PRINT "Q" 1580 RETURN 1590 ' 1600 IF H1>=H2 THEN VSH1=30:VMH1=10:VMH2=100-H2/H1*90:VEH2=VMH2+10:MAXH=H1 1610 IF H1< H2 THEN VEH2=30:VMH2=10:VMH1=100-H1/H2*90:VSH1=VMH1+10:MAXH=H2 1620 RETURN 1630 ' 1640 VDL=2+D1/D*94:D2=D-D1 1650 ' 1660 VXL=VDL:VYL=100-HS/MAXH*90 1670 CLS:GOSUB 16000 1680 RETURN 2000 ' ------------------ 2010 ' * culculations * 2020 ' ------------------ 2030 H0=H1:IF H1>H2 THEN H0=H2 2040 FOR I=1 TO 2:AK(I)=1/(2*K(I)*6370)*1000:CL(I)=0:RLD(I)=0:NEXT 2050 ' fresnel radius 2060 IF RIDGE$="" THEN FR=SQR(WL*DF*(D-DF)/D) ELSE FR=SQR(WL*D1*D2/D) 2070 ' direct wave clearance,ridge loss 2080 FOR I=1 TO 2 2090 GL(I)=H1-DF/D*(H1-H2)-DF*(D-DF)*AK(I):IF RIDGE$<>"" THEN CL(I)=H1-D1/D*(H1-H2)-D1*D2*AK(I)-HS:CL=CL(I):GOSUB 9000:RLD(I)=RL 2100 NEXT 2110 IF RIDGE$="" THEN 2200 2130 ' reflection route,clearance,loss (K=ave) 2140 ' ----- A-F-B ----- 2160 IF D1=DF THEN CLH=H2-D2/(D-DF)*(H2-HF)-D2*((D-DF)-D2)*AK(1)-HS 2190 CL=CLH:GOSUB 9000:CLH(1)=CL:RL(1)=RL :' lid 2200 HA=H1:HB=H2:HC=HF:DD=D:DM=DF:GOSUB 10000 2210 X1(1)=X1:X2(1)=X2:XL1(1)=XL1:XL2(1)=XL2 :' ant A,B 2220 XL(1)=XL1(1)+XL2(1) 2230 HN=HNF:GOSUB 11000:HL(1)=HL :' ref 2240 RLF(1)=RL(1)+XL(1)+HL(1):DDF(1)=DF:VF$(1)=V$(HNF):HHF(1)=HF 2250 IF RIDGE$="" THEN 2480 2260 ' ----- A-P-L-B ---- 2280 H10=H1-HR1-DR1*DR1*AK(1) 2290 HL=HS-H2+D2/D*(H2-(H1-2*H10))+D1*D2*AK(1) 2310 CL=-HL:GOSUB 9000:CLH(2)=CL:RL(2)=RL :' lid 2320 HA=H1:HB=H2:HC=HR1:DD=D :DM=DR1:GOSUB 10000:X1(2)=X1:XL1(2)=XL1 :' ant A 2330 HA=H1:HB=H2:HC=HS :DD=D :DM=D1 :GOSUB 10000:X2(2)=X2:XL2(2)=XL2 :' ant B 2340 XL(2)=XL1(2)+XL2(2) 2350 HN=HNP:GOSUB 11000:HL(2)=HL :' ref 2360 RLF(2)=RL(2)+XL(2)+HL(2):DDF(2)=DR1:VF$(2)=V$(HNP):HHF(2)=HR1 2370 ' ----- A-L-Q-B ----- 2390 H20=H2-HR2-(D2-DR2)*(D2-DR2)*AK(1) 2400 HL=HS-H1+D1/D*(H1-(H2-2*H20))+D1*D2*AK(1) 2420 CL=-HL:GOSUB 9000:CLH(3)=CL:RL(3)=RL :' lid 2430 HA=H1:HB=H2:HC=HS :DD=D:DM=D1 :GOSUB 10000:X1(3)=X1:XL1(3)=XL1 :' ant A 2440 HA=H1:HB=H2:HC=HR2:DD=D:DM=D1+DR2:GOSUB 10000:X2(3)=X2:XL2(3)=XL2 :' ant B 2450 XL(3)=XL1(3)+XL2(3) 2460 HN=HNQ:GOSUB 11000:HL(3)=HL :' ref 2470 RLF(3)=RL(3)+XL(3)+HL(3):DDF(3)=D1+DR2:VF$(3)=V$(HNQ):HHF(3)=HR2 2480 FOR I=1 TO 2:SL(I)=92.44+20/2.3026*(LOG(FQ)+LOG(D))+RLD(I):NEXT 2490 ' 2500 LOCATE 1,26:PRINT "FRESNEL RADIUS";:PRINT USING " ###.#m";FR 2510 LOCATE 1,50:PRINT USING "[ DIRECT WAVE k(mim)=#.## ]";K(2) 2520 LOCATE 2,50:PRINT "CLEARANCE" 2530 LOCATE 2,67:IF RIDGE$="" THEN PRINT USING "#####.#m";GL(2) ELSE PRINT USING "#####.#m";CL(2):COLOR 6 2540 LOCATE 3,50:PRINT "RIDGE LOSS" 2550 LOCATE 3,68:IF RIDGE$="" THEN PRINT " ----" ELSE PRINT USING "###.#dB";RLD(2) 2560 LOCATE 4,50:PRINT "TOTAL SPAN LOSS": LOCATE 4,67:PRINT USING "####.#dB";SL(2):COLOR 7 2570 LOCATE 6,50:PRINT USING "[ REFLECTED WAVE k(ave)=#.## ]";K(1) 2580 LOCATE 7,50:PRINT "PATH" 2590 LOCATE 7,64:PRINT "AFB ":LOCATE 7,70:PRINT "APLB": LOCATE 7,77:PRINT "ALQB" 2600 LOCATE 8,50:PRINT "CLEARANCE" 2610 IF RIDGE$="" THEN LOCATE 8,60:PRINT " ---- ---- ----" ELSE FOR I=1 TO 3:LOCATE 8,60+(I-1)*7:PRINT USING "#####.#";CLH(I):NEXT 2620 LOCATE 9,50:PRINT "RIDGE LOSS" 2630 IF RIDGE$="" THEN LOCATE 9,61:PRINT " ---- ---- ----" ELSE FOR I=1 TO 3:LOCATE 9,61+(I-1)*7:PRINT USING "####.#";RL(I) :NEXT 2640 LOCATE 10,50:PRINT "A INC ANGLE" 2650 IF RIDGE$="" THEN LOCATE 10,61:PRINT USING "(#.##) ---- ----";X1(1) ELSE FOR I=1 TO 3:LOCATE 10,61+(I-1)*7:PRINT USING "(#.##)";X1(I):NEXT 2660 LOCATE 11,50:PRINT "A ANT LOSS" 2670 IF RIDGE$="" THEN LOCATE 11,61:PRINT USING "####.# ---- ----";XL1(1) ELSE FOR I=1 TO 3:LOCATE 11,61+(I-1)*7:PRINT USING "####.#";XL1(I):NEXT 2680 LOCATE 12,50:PRINT "B INC ANGLE" 2690 IF RIDGE$="" THEN LOCATE 12,61:PRINT USING "(#.##) ---- ----";X2(1) ELSE FOR I=1 TO 3:LOCATE 12,61+(I-1)*7:PRINT USING "(#.##)";X2(I):NEXT 2700 LOCATE 13,50:PRINT "B ANT LOSS" 2710 IF RIDGE$="" THEN LOCATE 13,61:PRINT USING "####.# ---- ----";XL2(1) ELSE FOR I=1 TO 3:LOCATE 13,61+(I-1)*7:PRINT USING "####.#";XL2(I):NEXT 2720 LOCATE 14,45:PRINT "REFLECTION LOSS" 2730 IF RIDGE$="" THEN LOCATE 14,61:PRINT USING "####.# ---- ----";HL(1) ELSE FOR I=1 TO 3:LOCATE 14,61+(I-1)*7:PRINT USING "####.#";HL(I):NEXT 2740 COLOR 6:LOCATE 15,40:PRINT "TOTAL REFLECTED LOSS":COLOR 7 2750 IF RIDGE$="" THEN LOCATE 15,61:PRINT USING "####.# ---- ----";RLF(1) ELSE FOR I=1 TO 3:LOCATE 15,61+(I-1)*7:PRINT USING "####.#";RLF(I):NEXT 2760 RLF=RLF(1):DDF=DDF(1):VF$=VF$(1):HHF=HHF(1):Z=1 2770 IF RIDGE$="" THEN 2810 2780 FOR I=2 TO 3 2790 IF RLF(I)3 THEN DCASE$="2":LOCATE 17,48:PRINT "(More than 3dB intercepted)" 2930 LOCATE 18, 1:PRINT "Reflected wave(k=ave) "ROT$" loss ";: LOCATE 18,36:PRINT USING "###.#dB";RLF 2940 IF RLF>=10 THEN RCASE$="1":LOCATE 18,48:PRINT "(More than 10dB acceptable)" 2950 IF RLF<10 THEN RCASE$="2":LOCATE 18,48:PRINT "(Less than 10dB not enough)" 2960 COLOR 7:LOCATE 18,24 2970 NO=VAL(DCASE$) 2980 ON NO GOTO 2990,3010 2990 IF RCASE$="1" THEN 3090 3000 IF RCASE$="2" THEN 3040 3010 IF RCASE$="1" THEN GOSUB 13000:GOTO 2000 3020 IF RCASE$="2" THEN GOSUB 13000:GOTO 2000 3030 ' 3040 ' reflection loss not enough 3050 PRINT TAB(1)"Reflected wave loss is not enough for a standard propagation path." 3060 PRINT "The route could be put in use either by adopting the space diversity or by" 3070 PRINT "mitigating noise standards or transmission capacity.":GOTO 3090 3080 IF GL(1)<0 THEN COLOR 4:PRINT "PATH line sink under the earth surface. (in case k=ave. and k=min.) This span is not line-of-sight.":GOTO 3090 3085 IF GL(2)<0 THEN COLOR 4:PRINT "PATH line sink under the earth surface. (in case k=min.) This span is not line-of-sight." 3090 COLOR 6:LOCATE 23,20:PRINT "----- To proceed: Hit space key -----" 3100 COLOR 7:Q$=INKEY$:IF Q$<>" " THEN 3100 3110 LOCATE 23,20:PRINT SPC(59) 3130 FOR I= 1 TO 15:LOCATE I,22:PRINT STRING$(59," "):NEXT: FOR I=16 TO 22:LOCATE I, 1:PRINT SPC(79):NEXT 3140 CLS 3150 ' profile graph draw 3155 ' ---- K=ave ---- 3160 COLOR 6:LOCATE 16, 1:PRINT "[FRESNEL]": LOCATE 16,15:PRINT USING "###.#m";FR 3170 LOCATE 17, 1:PRINT USING "DIRECT WAVE (k=#.##)";K(1) 3180 COLOR 7:LOCATE 18, 1:PRINT "CLEARANCE" 3190 LOCATE 18,14:IF RIDGE$="" THEN PRINT USING "#####.#m";GL(1) ELSE PRINT USING "#####.#m";CL(1) 3195 IF GL(1)<0 THEN COLOR 12:LOCATE 19,1:PRINT "PATH sink under earth ": LOCATE 20,1:PRINT "surface. This span ": LOCATE 21,1:PRINT "is not line-of-sight. ":COLOR 7:GOTO 3280 3200 LOCATE 19, 1:PRINT "RIDGE LOSS" 3210 LOCATE 19,15:IF RIDGE$="" THEN PRINT " -----" ELSE PRINT USING "###.#dB";RLD(1) 3220 LOCATE 20, 1:PRINT "SPAN LOSS" 3230 LOCATE 20,15:PRINT USING "###.#dB";SL(1) 3240 COLOR 6:LOCATE 21, 1:PRINT USING "REFLECTED WAVE(k=#.##)";K(1) 3250 COLOR 7:LOCATE 22, 1:PRINT "PATH":LOCATE 22,17:PRINT ROT$ 3260 LOCATE 23, 1:PRINT "TOTAL LOSS" 3270 LOCATE 23,15:PRINT USING "###.#dB";RLF(Z) 3280 FF=FQ 3300 C=12.74*K(1) 3310 GOSUB 14000 3320 COLOR 7:LOCATE 2,44:PRINT "PROFILE":LOCATE 2,54:PRINT USING "k=#.##";K(1) 3330 COLOR 6:LOCATE 23,40:PRINT "----- To proceed: Hit space key -----" 3340 COLOR 7:Q$=INKEY$:IF Q$<>" " THEN 3340 3350 LOCATE 23,40:PRINT SPC(39) 3360 ' ---- K=mim ---- 3370 CLS:FOR I=1 TO 22:LOCATE I,23:PRINT SPC(57):NEXT 3375 COLOR 6:LOCATE 17, 1:PRINT USING "DIRECT WAVE (k=#.##)";K(2) 3380 COLOR 7:LOCATE 18,14:IF RIDGE$="" THEN PRINT USING "#####.#m";GL(2) ELSE PRINT USING "#####.#m";CL(2) 3385 IF GL(2)<0 THEN COLOR 12:LOCATE 19,1:PRINT "PATH sink under earth ": LOCATE 20,1:PRINT "surface. This span ": LOCATE 21,1:PRINT "is not line-of-sight. ":FOR I=22 TO 23:LOCATE I,1:PRINT SPC(22):NEXT:COLOR 7:GOTO 3400 3390 LOCATE 19,15:IF RIDGE$="" THEN PRINT " -----" ELSE PRINT USING "###.#dB";RLD(2) 3395 LOCATE 20,15:PRINT USING "###.#dB";SL(2) 3400 C=12.74*K(2) 3405 GOSUB 14140 3410 COLOR 7:LOCATE 2,44:PRINT "PROFILE":LOCATE 2,54:PRINT USING "k=#.##";K(2) 3415 IF GL(1)<0 OR GL(2)<0 THEN 4630 3420 COLOR 6:LOCATE 23,40:PRINT "----- To proceed: Hit space key -----" 3430 COLOR 7:Q$=INKEY$:IF Q$<>" " THEN 3430 3440 LOCATE 23,40:PRINT SPC(39) 3460 CLS:SCREEN 0:SCREEN 9:COLOR 7:FQ=FF:SD$="":SL=SL(2) 3470 IF FZ=11 THEN 4020 3475 IF INDEX$="*" THEN 310 3480 LOCATE 1, 1:PRINT " Rayleigh fading occurrence probability and circuit dropout rate " 3490 LOCATE 3,11:PRINT "(1) "Y$(1)" :almost mountainous area" 3500 LOCATE 5,11:PRINT "(2) "Y$(2)" :almost plains" 3510 LOCATE 7,11:PRINT "(3) "Y$(3)" :almost sea face" 3520 LOCATE 9,11:PRINT "(4) "Y$(4)" :coast(including land area up to": LOCATE 11,11:PRINT " 10km from the seashore)" 3530 COLOR 6:LOCATE 22,10:LINE INPUT "Input the giographical feature number(1-4) of over all the path ";NO$ 3540 COLOR 7:FOR I=12 TO 22:LOCATE I,10:PRINT SPC(69):NEXT 3550 NF=VAL(NO$) 3560 IF NF<1 OR NF>4 THEN 3530 3570 H=(H1+H2)/2:COLOR 6:LOCATE 1+NF*2,15:PRINT Y$(NF): IF NF=4 THEN COLOR 6:LOCATE 11,15:PRINT Y$(4) 3580 IF NF=1 THEN Q=2.1*10^-9 3590 IF NF=2 THEN Q=5.1*10^-9 3600 IF NF>2 THEN Q=3.8*10^-7*1/SQR(H) 3610 PR=(FQ/4)^1.2*Q*D^3.5 3620 ' tharmal noise 3630 IF FZ=2 THEN SN=VAL(SN$(1)) 3640 IF FZ=4 THEN SN=VAL(SN$(2)) 3650 IF FZ=5 THEN SN=VAL(SN$(3)) 3660 IF (FZ=6 AND B$="L") OR (FZ=6 AND B$="l") THEN SN=VAL(SN$(4)) 3670 IF (FZ=6 AND B$="U") OR (FZ=6 AND B$="u") THEN SN=VAL(SN$(5)) 3680 IF FZ=7 THEN SN=VAL(SN$(6)) 3690 IF FZ=8 THEN SN=VAL(SN$(7)) 3700 SN=SN+20*LOG(50/D)/2.3026 3710 N0=10^((90-SN)/10) 3720 ' shundan 3730 AC=4*D*10^-9 :' CCIR 3740 IF NF>2 AND D>50 THEN AV=N0/10^6: GOTO 3790 3750 IF RLF>=10 THEN AV=2*PR*N0/10^6:GOTO 3790 3760 NO=INT(RLF) 3770 IF NO>9 THEN X=1 ELSE X=XE(NO) 3780 IF RLF<10 THEN AV=X*PR*N0/10^6 3790 COLOR 7:LOCATE 14,13:PRINT USING "OCCURRENCE PROBABILITY(month)####.##*10^-4";PR*10^4 3800 LOCATE 15,13:PRINT USING "CIRCUIT DROPOUT RATE(month) ####.##*10^-7";AV*10^7 3810 COLOR 3:LOCATE 16,13:PRINT USING "CCIR REC.393-4 (month) ####.##*10^-7";AC*10^7:COLOR 7 3820 ' SD 3830 ' coefficient of sokan 3840 IF FZ=2 THEN LL=.6:LG=-.221849 3850 IF FZ=4 OR FZ=5 THEN LL=.5:LG=-.301031 3860 IF FZ>=6 THEN LL=.4:LG=-.397941 3870 RR=10^(-RLF/20) 3880 KK=SQR(RR^2/(RR^2+1)) 3890 ' path difference between direct and refrected 3900 S=2/D*(H1-HF-DF^2/(2*K(1)*6370))*(H2-HF-(D-DF)^2/(2*K(1)*6370))*10^-3 3910 GOSUB 17000 3920 IF RLF<10 THEN 3930 ELSE 3950 3930 HP=WL/X2(Z)*90/3.14/1000 :'less than 10db 3940 LOCATE 17,13:PRINT USING "SPACING OF ANTENNAS(HP) half pitch ###.# m";HP:GOTO 3970 3950 HP=-1.1*10^3*LG/(FQ*SQR(.4*D+KK^2*S^2*(1-KK^2)*10^4)) :'more than 10db 3960 LOCATE 17,13:PRINT USING "SPACING OF ANTENNAS(HP) more than###.# m";HP 3970 LOCATE 18,13:PRINT "FOR SPACE DIVERSITY" 3980 COLOR 6:LOCATE 20,1 3990 IF AV<=AC THEN PRINT "The path meets the standards. Space diversity is not considered necessary, still calculation has been practised.":SD$="/": GOTO 4020 4000 IF AV/10<=AC THEN PRINT "The path does not meet the standards. Space diversity will be required. Reexamine after the completion of calculation over the whole route !":SD$="*":GOTO 4020 4010 IF AV/10>AC THEN PRINT "The path does not meet the standards. Space diversity will be required. Reexamine after the completion of calculation over the whole route !":SD$="+" 4020 ' elevation angle 4030 GOSUB 12000 4040 LOCATE 23,1:PRINT "----- For calculation results: Hit space key -----" 4050 COLOR 7:Q$=INKEY$:IF Q$<>" " THEN 4050 4060 SCREEN 0:CLS:SCREEN 9:COLOR 7 4070 LOCATE 1, 1:PRINT STRING$(80,"-") 4080 LOCATE 2, 1:PRINT " EXECUTIVE SUMMARY POINT A POINT B" 4090 LOCATE 3, 1:PRINT STRING$(80,"-") 4100 LOCATE 4, 1:PRINT "Antenna Height(m)" 4110 LOCATE 4,54:PRINT USING "#,###.# m";H1 4120 LOCATE 4,69:PRINT USING "#,###.# m";H2 4130 LOCATE 5, 2:PRINT "Antenna elevation angle" 4140 LOCATE 5,57:PRINT USING "##.##deg";F 4150 LOCATE 5,72:PRINT USING "##.##deg";G 4160 LOCATE 6, 4:PRINT "Included angle(direct and reflected waves)" 4170 LOCATE 6,57:PRINT USING "##.##deg";X1(Z) 4180 LOCATE 6,72:PRINT USING "##.##deg";X2(Z) 4190 LOCATE 7, 4:PRINT "Antenna directivity effect" 4200 LOCATE 7,57:PRINT USING "##.# dB";XL1(Z) 4210 LOCATE 7,72:PRINT USING "##.# dB";XL2(Z) 4220 LOCATE 8, 4:PRINT "Distance(km) to reflection point" 4230 LOCATE 8,56:PRINT USING "###.# km";DDF 4240 LOCATE 8,71:PRINT USING "###.# km";D-DDF 4250 LOCATE 9, 4:PRINT "Diffraction loss of ridge" 4260 LOCATE 9,64:PRINT USING "##.# dB";RL(Z) 4270 LOCATE 10, 4:PRINT "Geographical feature at reflection point" 4280 LOCATE 10,62:PRINT VF$ 4290 LOCATE 11, 4:PRINT "Reflection loss" 4300 LOCATE 11,64:PRINT USING "##.# dB";HL(Z) 4310 LOCATE 12, 4:PRINT "Altitude(m) at reflection point" 4320 LOCATE 12,61:PRINT USING "#,###.# m";HHF 4330 LOCATE 13, 2:PRINT "Effective loss of reflected wave" 4340 LOCATE 13,64:PRINT USING "##.# dB";RLF 4350 LOCATE 14, 2:PRINT "Span distance(km)" 4360 LOCATE 14,63:PRINT USING "###.# km";D 4370 LOCATE 15, 2:PRINT "Span loss" 4380 LOCATE 15,63:PRINT USING "###.# dB";SL 4390 LOCATE 16, 2:PRINT "Clearance(m)" 4400 LOCATE 16,63:PRINT USING "###.# m";CL(2) 4410 IF FZ=11 THEN 4490 4420 LOCATE 17, 2:PRINT "Circuit dropout rate(month) of path" 4430 LOCATE 17,62:PRINT USING "####.##*10^-7";AV*10^7:COLOR 3 4440 LOCATE 18, 2:PRINT "Circuit dropout rate(month) by CCIR REC.393-4" 4450 LOCATE 18,62:PRINT USING "####.##*10^-7";AC*10^7:COLOR 2 4460 LOCATE 19, 2:PRINT "Space diversity system" 4470 LOCATE 19,62 4480 IF SD$="/" THEN PRINT "not necessary" ELSE PRINT "necessary" 4490 COLOR 7:LOCATE 20, 1:PRINT STRING$(80,"-") 4500 LINE(400,7)-(400,273),7 4510 LINE(520,7)-(520,112),7 4520 LINE(638,7)-(638,273),7: LINE( 1,7)-( 1,273),7 4530 FOR I=1 TO 15:LINE(1,(I-1)*14+56)-(638,(I-1)*14+52),7,,&HCCCC:NEXT 4540 GOSUB 20000 4630 COLOR 6:LOCATE 23,20:PRINT "Do you continue the work (Y/N) ? ";:Y$=INPUT$(1) 4640 IF Y$<>"Y" AND Y$<>"y" AND Y$<>"N" AND Y$<>"n" THEN 4630 4650 COLOR 7:LOCATE 23,20:PRINT SPC(59) 4660 IF Y$="Y" OR Y$="y" THEN SCREEN 0:CLS:GOTO 310 4670 RUN "ME" 5000 ' -------------------- 5010 ' * data input sub * 5020 ' -------------------- 5030 ' SPAN DISTANCE 5040 COLOR 6:LOCATE 2,1:PRINT U$(1) 5050 LINE( 2, 7)-(98, 7),6,,&H8888 5060 LINE( 2, 2)-( 2,12),6 5070 LINE(98, 2)-(98,12),6 5080 COLOR 6:LOCATE 3,29:PRINT "SPAN DISTANCE" 5090 COLOR 6:LOCATE 22,6:PRINT "Input "U$(1)"ANCE (km) ";:LINE INPUT X$ 5100 COLOR 7:LOCATE 22,6:PRINT SPC(73) 5110 D=VAL(X$) 5120 IF D<1 OR D>100 THEN 5030 5130 LOCATE 2,15:PRINT USING "###.#km";D 5140 LOCATE 2,1:PRINT U$(1) 5150 LINE( 2, 7)-(98, 7),0 5160 LINE( 2, 2)-( 2,12),0 5170 LINE(98, 2)-(98,12),0 5180 LOCATE 3,29:PRINT SPC(13) 5190 RETURN 5200 ' A HEIGHT 5210 COLOR 6:LOCATE 3,1:PRINT U$(2) 5220 LINE( 2,VMH1)-(2,100),6 5230 COLOR 6:LOCATE 22,6:PRINT "Input "U$(2)" (m) ";:LINE INPUT X$ 5240 COLOR 7:LOCATE 22,6:PRINT SPC(73) 5250 H1=VAL(X$) 5260 IF H1<1 THEN 5200 5270 LOCATE 3,14:PRINT USING "####.#m";H1 5280 LOCATE 3, 1:PRINT U$(2) 5290 LINE( 2,VMH1)-(2,100),0 5300 RETURN 5310 ' B HEIGHT 5320 COLOR 6:LOCATE 4,1:PRINT U$(3) 5330 LINE(98,VMH2)-(98,100),6 5340 COLOR 6:LOCATE 22,6:PRINT "Input "U$(3)" (m) ";:LINE INPUT X$ 5350 COLOR 7:LOCATE 22,6:PRINT SPC(73) 5360 H2=VAL(X$) 5370 IF H2<1 THEN 5340 5380 LOCATE 4,14:PRINT USING "####.#m";H2 5390 LOCATE 4,1:PRINT U$(3) 5400 LINE(98,VMH2)-(98,100),0 5410 RETURN 5420 ' REFLECTION POINT HEIGHT 5430 HH=0:DM=D:GOSUB 8000:DF=DH:VDF=2+DF/D*94 5440 COLOR 6:LOCATE 5,1:PRINT U$(4) 5450 LINE( 2,VMH1)-(VDF,100),6 5460 LINE(VDF,100)-(98,VMH2),6 5470 LOCATE 100/8-1,(180+VDF*2)/8+1:PRINT "F" 5480 COLOR 3:LOCATE 20,1:PRINT "Obtain a ground-reflection point(F) between point A and B " 5490 COLOR 6:LOCATE 22,1:PRINT "Input Altitude(m) at the point";:COLOR 3: PRINT USING "###.#km";DF;:COLOR 6:LINE INPUT " away from point A ";X$ 5500 COLOR 7:FOR I=20 TO 22:LOCATE I,1:PRINT SPC(79):NEXT 5510 LINE( 2,VMH1)-(VDF,100),0 5520 LINE(VDF,100)-(98,VMH2),0 5530 LOCATE 100/8-1,(180+VDF*2)/8+1:PRINT " " 5540 HH=VAL(X$) 5550 IF HH>=H1 OR HH>=H2 THEN 5430 5560 GOSUB 8000 5570 IF ABS(DF-DH)>.1 THEN 5580 ELSE HF=HH:GOTO 5710 5580 COLOR 3:LOCATE 20, 1:PRINT "Reflection point F is";:COLOR 6: PRINT USING "###.#km";DH;:COLOR 3:PRINT " away from point A":COLOR 6: LOCATE 22,1:LINE INPUT "Input Altitude(m) at the point F ";X$ 5590 COLOR 7:FOR I=20 TO 22:LOCATE I,1:PRINT SPC(79):NEXT 5600 HH=VAL(X$):IF HH>=H1 OR HH>=H2 THEN 5580 ELSE DF=DH:GOTO 5560 5610 LOCATE 5,1:PRINT U$(4) 5620 LINE( 2,VMH1)-(VDF,VHF),6 5630 LINE(VDF,VHF)-(98,VMH2),6 5640 COLOR 6:LOCATE 22,1:LINE INPUT "Input Altitude(m) ";X$ 5650 COLOR 7:LOCATE 22,1:PRINT SPC(79) 5660 HH=VAL(X$) 5670 IF HH>H1 OR HH>H2 THEN 5640 5680 CLS:GOSUB 16000 5690 DM=D:GOTO 5560 5700 ' 5710 DF=DH:VDF=2+DF/D*94:VHF=100-HF/MAXH*90 5720 LOCATE 5,14:PRINT USING "####.#m";HF 5730 LOCATE 6,15:PRINT USING "###.#km";DF 5740 LOCATE 5, 1:PRINT U$(4) 5750 LOCATE (10+VHF)/8-2,(180+VDF*2)/8+1:PRINT "F" 5760 LINE( 2,VMH1)-(VDF,VHF),0:LINE( 2,VMH1)-(VDF,VHF),7,,&H8888 5770 LINE(VDF,VHF)-(98,VMH2),0:LINE(VDF,VHF)-(98,VMH2),7,,&H8888 5780 IF VHF>=99 THEN RETURN 5790 LINE(VDF-5,100)-(VDF,VHF),2 5800 LINE(VDF,VHF)-(VDF+5,100),2 5810 PAINT(VDF,99),2,2 5820 RETURN 5830 ' F POINT FEATURE 5840 COLOR 7:LOCATE 7,11:PRINT SPC(11):COLOR 6:LOCATE 7,1:PRINT U$(6) 5850 LINE( 2,VMH1)-(VDF,VHF),6 5860 LINE(VDF,VHF)-(98,VMH2),6 5870 COLOR 3:LOCATE 18,20:FOR I=1 TO 4:PRINT V$(I)I",";:NEXT 5880 LOCATE 20,20:FOR I=5 TO 7:PRINT V$(I)I",";:NEXT 5890 COLOR 6:LOCATE 22, 6:PRINT "Input ";:COLOR 3:PRINT "the number(1-7)";: COLOR 6:LINE INPUT " relevant to the giographical feature ";X$ 5900 COLOR 7:FOR I=18 TO 22:LOCATE I,6:PRINT SPC(73):NEXT 5910 HNF=VAL(X$) 5920 IF HNF<1 OR HNF>7 THEN 5870 5930 LL=LEN(V$(HNF)):LOCATE 7,22-LL:PRINT V$(HNF) 5940 LOCATE 7,1:PRINT U$(6) 5950 LINE( 2,VMH1)-(VDF,VHF),0:LINE( 2,VMH1)-(VDF,VHF),7,,&H8888 5960 LINE(VDF,VHF)-(98,VMH2),0:LINE(VDF,VHF)-(98,VMH2),7,,&H8888 5970 RETURN 5980 ' RIDGE 5990 COLOR 6:LOCATE 8,1:PRINT U$(7) 6000 LINE(VXL,VYL)-(VXL,100),6 6010 COLOR 6:LOCATE 22, 1:LINE INPUT "Input Altitude(m) of the ridge L ( input 0 in case nothing ridge ) ";X$ 6020 COLOR 7:LOCATE 22, 1:PRINT SPC(79) 6030 HS=VAL(X$) 6040 COLOR 7:LOCATE 8,14:PRINT USING "####.#m";HS 6050 LOCATE 8,1:PRINT U$(7) 6060 IF HS=0 THEN 6070 ELSE 6170 6070 RIDGE$="":D1=0:D2=0:DR1=0:DR2=0:VXL=0:VYL=0: FOR I=8 TO 15:LOCATE I,14:PRINT " ----- ":NEXT 6080 CLS:GOSUB 16000 6090 LINE( 2,VMH1)-(VDF,VHF),7,,&H8888 6100 LINE(VDF,VHF)-(98,VMH2),7,,&H8888 6110 IF VHF>=99 THEN 6150 6120 LINE(VDF-5,100)-(VDF,VHF),2 6130 LINE(VDF,VHF)-(VDF+5,100),2 6140 PAINT(VDF,99),2,2 6150 LOCATE (10+VHF)/8-2,(180+VDF*2)/8+1:PRINT "F" 6160 GOTO 1090 6170 RIDGE$="*":VHS=100-HS/MAXH*90 6180 COLOR 6:LOCATE 9,1:PRINT U$(8) 6190 LINE(VXL,2)-(VXL,12),6 6200 LINE(2, 7)-(VXL, 7),6 ,,&H8888 6210 COLOR 6:LOCATE 22, 1:PRINT "Input Distance(km) between point A and ridge L ";:LINE INPUT X$ 6220 COLOR 7:LOCATE 22, 1:PRINT SPC(79) 6230 D1=VAL(X$):D2=D-D1:VDL=2+D1/D*94 6240 IF D1>=D THEN 6210 6250 COLOR 7:LOCATE 9,14:PRINT USING "####.#km";D1 6260 LOCATE 9,1:PRINT U$(8) 6270 LOCATE 4,24:PRINT SPC(20) 6280 CLS:VXL=VDL:VYL=VHS:GOSUB 16000 6290 LINE( 2,VMH1)-(VDF,VHF),7,,&H8888 6300 LINE(VDF,VHF)-(98,VMH2),7,,&H8888 6310 IF VHF>=99 THEN 6350 6320 LINE(VDF-5,100)-(VDF,VHF),2 6330 LINE(VDF,VHF)-(VDF+5,100),2 6340 PAINT(VDF,99),2,2 6350 LOCATE (10+VHF)/8-2,(180+VDF*2)/8+1:PRINT "F" 6360 RETURN 6370 ' P HEIGHT 6380 VDL=2+D1/D*94:VHS=100-HS/MAXH*90 6390 P=H1:Q=HS:DM=D1:GOSUB 8040:DP=DH:VDP=2+DP/D*94 6400 COLOR 6:LOCATE 10,1:PRINT U$(9) 6410 LINE( 2,VMH1)-(VDP,100),6 6420 LINE(VDP,100)-(VDL,VHS),6 6430 LINE( 2, 2)-( 2, 12),6 6440 LINE(VDP, 2)-(VDP,12),6 6450 LINE( 2, 7)-(VDP, 7),6 ,,&H8888 6460 LOCATE 90/8,(180+VDP*2)/8:PRINT "P" 6470 COLOR 3:LOCATE 20,1:PRINT "Obtain a ground-reflection point(P) between point A and ridge L " 6480 COLOR 6:LOCATE 22,1:PRINT "Input Altitude(m) at the point";:COLOR 3: PRINT USING "###.#km";DP;:COLOR 6:LINE INPUT " away from point A ";X$ 6490 COLOR 7:FOR I=20 TO 22:LOCATE I,1:PRINT SPC(79):NEXT 6500 LINE( 2,VMH1)-(VDP,100),0 6510 LINE(VDP,100)-(VDL,VHS),0 6520 LINE(VDP, 2)-(VDP, 12),0 6530 LOCATE 90/8,(180+VDP*2)/8:PRINT " " 6540 HH=VAL(X$):IF HH>=H1 OR HH>=HS THEN 6470 6545 P=H1-HH:Q=HS-HH:GOSUB 8040 6550 IF ABS(DP-DH)>.1 THEN 6560 ELSE HR1=HH:GOTO 6650 6560 COLOR 3:LOCATE 20,1:PRINT "Reflection point P is";:COLOR 6: PRINT USING "###.#km";DH;:COLOR 3:PRINT " away from point A":COLOR 6: LOCATE 22,1:LINE INPUT "Input Altitude(m) at the point P ";X$ 6570 COLOR 7:FOR I=20 TO 22:LOCATE I,1:PRINT SPC(79):NEXT 6580 HH=VAL(X$):IF HH>=H1 OR HH>=HS THEN 6560 ELSE DP=DH:DM=D1:GOTO 6545 6590 COLOR 6:LOCATE 10,1:PRINT U$(9) 6600 COLOR 6:LOCATE 20,1:LINE INPUT "Input Altitude(m) at point P ";X$ 6610 COLOR 7:LOCATE 20,1:PRINT SPC(79) 6620 CLS:GOSUB 16000 6630 HH=VAL(X$):IF HH>=H1 OR HH>=HS THEN 6600 ELSE DP=DH:DM=D1:GOTO 6545 6640 ' 6650 DR1=DH:VDP=2+DH/D*94:VHR1=100-HR1/MAXH*90 6660 LOCATE 10,14:PRINT USING "####.#m";HR1 6670 LOCATE 11,15:PRINT USING "###.#km";DR1 6680 LOCATE 10,1:PRINT U$(9) 6690 LOCATE (10+VHR1)/8-1,(180+VDP*2)/8+1:PRINT "P" 6700 LINE( 2,VMH1)-(VDP,VHR1),7,,&H8888 6710 LINE(VDP,VHR1)-(VDL,VHS),7,,&H8888 6720 IF VHR1>=99 THEN 6760 6730 LINE(VDP-5,100)-(VDP,VHR1),2 6740 LINE(VDP,VHR1)-(VDP+5,100),2 6750 PAINT(VDP,99),2,2 6760 LINE( 2,2)-( 2,12),0 6770 LINE( 2,7)-(VDP, 7),0 6780 RETURN 6790 ' P FEATURE 6800 COLOR 7:LOCATE 12,11:PRINT SPC(11):COLOR 6:LOCATE 12,1:PRINT U$(11) 6810 LINE( 2,VMH1)-(VDP,VHR1),6 6820 LINE(VDP,VHR1)-(VDL,VHS),6 6830 COLOR 3:LOCATE 18,20:FOR I=1 TO 4:PRINT V$(I)I",";:NEXT 6840 LOCATE 20,20:FOR I=5 TO 7:PRINT V$(I)I",";:NEXT 6850 COLOR 6:LOCATE 22, 6:PRINT "Input ";:COLOR 3:PRINT "the number(1-7)";: COLOR 6:LINE INPUT " relevant to the giographical feature ";X$ 6860 COLOR 7:FOR I=18 TO 22:LOCATE I,6:PRINT SPC(73):NEXT 6870 HNP=VAL(X$) 6880 IF HNP<1 OR HNP>7 THEN 6830 6890 LL=LEN(V$(HNP)):LOCATE 12,22-LL:PRINT V$(HNP) 6900 LOCATE 12,1:PRINT U$(11) 6910 LINE( 2,VMH1)-(VDP,VHR1),0:LINE( 2,VMH1)-(VDP,VHR1),7,,&H8888 6920 LINE(VDP,VHR1)-(VDL,VHS),0:LINE(VDP,VHR1)-(VDL,VHS),7,,&H8888 6930 RETURN 6940 ' Q HEIGHT 6950 VDL=2+D1/D*94:VHS=100-HS/MAXH*90 6960 P=HS:Q=H2:DM=D2:GOSUB 8040:DQ=DH:VDQ=2+(D1+DQ)/D*94 6970 COLOR 6:LOCATE 13,1:PRINT U$(12) 6980 LINE(VDL,VHS)-(VDQ,100),6 6990 LINE(VDQ,100)-(98,VMH2),6 7000 LINE( 2,2)-( 2,12),6 7010 LINE(VDQ,2)-(VDQ,12),6 7020 LINE( 2,7)-(VDQ, 7),6 ,,&H8888 7030 COLOR 6:LOCATE 90/8,(180+VDQ*2)/8:PRINT "Q" 7040 COLOR 3:LOCATE 20,1:PRINT "Obtain a ground-reflection point(Q) between point L and B " 7050 COLOR 6:LOCATE 22,1:PRINT "Input Altitude(m) at the point";:COLOR 3: PRINT USING "###.#km";D1+DH;:COLOR 6:LINE INPUT " away from point A ";X$ 7060 COLOR 7:FOR I=20 TO 22:LOCATE I,1:PRINT SPC(79):NEXT 7070 LINE(VDL,VHS)-(VDQ,100),0 7080 LINE(VDQ,100)-(98,VMH2),0 7090 LINE(VDQ, 2)-(VDQ, 12),0 7100 LOCATE 90/8,(180+VDQ*2)/8:PRINT " " 7110 HH=VAL(X$):IF HH>=HS OR HH>=H2 THEN 7050 7115 P=HS-HH:Q=H2-HH:GOSUB 8040 7120 IF ABS(DQ-DH)>.1 THEN 7130 ELSE HR2=HH:GOTO 7220 7130 COLOR 3:LOCATE 20,1:PRINT "Reflection point Q is";:COLOR 6: PRINT USING "###.#km";D1+DH;:COLOR 3:PRINT " away from point A":COLOR 6: LOCATE 22,1:LINE INPUT "Input Altitude(m) at the point Q ";X$ 7140 COLOR 7:FOR I=20 TO 22:LOCATE I,1:PRINT SPC(79):NEXT 7150 HH=VAL(X$):IF HH>=HS OR HH>=H2 THEN 7130 ELSE DQ=DH:DM=D2:GOTO 7115 7160 COLOR 6:LOCATE 13,1:PRINT U$(12) 7170 COLOR 6:LOCATE 20,1:LINE INPUT "Input Altitude(m) at point Q ";X$ 7180 COLOR 7:LOCATE 20,1:PRINT SPC(79) 7190 CLS:GOSUB 16000 7200 HH=VAL(X$):IF HH>=HS OR HH>=H2 THEN 7170 ELSE DQ=DH:DM=D2:GOTO 7115 7210 ' 7220 DR2=DH:DH=D1+DH:VDQ=2+DH/D*94:VHR2=100-HR2/MAXH*90 7230 LOCATE 13,14:PRINT USING "####.#m";HR2 7240 LOCATE 14,15:PRINT USING "###.#km";DH 7250 LOCATE 13,1:PRINT U$(12) 7260 LOCATE (10+VHR2)/8-1,(180+VDQ*2)/8+1:PRINT "Q" 7270 LINE(VDL,VHS)-(VDQ,VHR2),7,,&H8888 7280 LINE(VDQ,VHR2)-(98,VMH2),7,,&H8888 7290 IF VHR2>=99 THEN 7330 7300 LINE(VDQ-5,100)-(VDQ,VHR2),2 7310 LINE(VDQ,VHR2)-(VDQ+5,100),2 7320 PAINT(VDQ,99),2,2 7330 LINE( 2,2)-( 2,12),0 7340 LINE( 2,7)-(VDQ,7),0 7350 RETURN 7360 ' Q FEATURE 7370 COLOR 7:LOCATE 15,11:PRINT SPC(11):COLOR 6:LOCATE 15,1:PRINT U$(14) 7380 LINE(VDL,VHS)-(VDQ,VHR2),6 7390 LINE(VDQ,VHR2)-(98,VMH2),6 7400 COLOR 3:LOCATE 18,20:FOR I=1 TO 4:PRINT V$(I)I",";:NEXT 7410 LOCATE 20,20:FOR I=5 TO 7:PRINT V$(I)I",";:NEXT 7420 COLOR 6:LOCATE 22, 6:PRINT "Input ";:COLOR 3:PRINT "the number(1-7)";: COLOR 6:LINE INPUT " relevant to the giographical feature ";X$ 7430 COLOR 7:FOR I=18 TO 22:LOCATE I,6:PRINT SPC(73):NEXT 7440 HNQ=VAL(X$) 7450 IF HNQ<1 OR HNQ>7 THEN 7400 7460 LL=LEN(V$(HNQ)):LOCATE 15,22-LL:PRINT V$(HNQ) 7470 LOCATE 15,1:PRINT U$(14) 7480 LINE(VDL,VHS)-(VDQ,VHR2),0:LINE(VDL,VHS)-(VDQ,VHR2),7,,&H8888 7490 LINE(VDQ,VHR2)-(98,VMH2),0:LINE(VDQ,VHR2)-(98,VMH2),7,,&H8888 7500 RETURN 7510 ' frequency 7520 COLOR 6:LOCATE 19, 6:LINE INPUT "(1) Input a working frequency band (GHz) (2,4,5,6,7,8,11) ";X$ 7530 FZ=VAL(X$) 7540 IF FZ<>INT(FZ) OR FZ<2 OR FZ=3 OR (FZ>8 AND FZ<11) OR FZ>11 THEN LOCATE 19, 6:PRINT SPC(74):GOTO 7520 7550 IF FZ=6 THEN 7560 ELSE B$="":GOTO 7590 7560 LOCATE 20,11:INPUT "Input L(lower band) or U(upper band) L/U ";B$ 7570 LOCATE 20,11:PRINT SPC(69) 7580 IF B$<>"U" AND B$<>"u" AND B$<>"L" AND B$<>"l" THEN 7560 7590 LOCATE 19,64:PRINT SPC(10):LOCATE 19,66:PRINT FZ;B$ 7600 IF FZ=2 THEN FQ=2.002:FZ$="2" 7610 IF FZ=4 THEN FQ=4.004:FZ$="4" 7620 IF FZ=5 THEN FQ=4.7 :FZ$="5" 7630 IF (FZ=6 AND B$="L") OR (FZ=6 AND B$="l") THEN FQ=6.175:FZ$="6L" 7640 IF (FZ=6 AND B$="U") OR (FZ=6 AND B$="u") THEN FQ=6.77 :FZ$="6U" 7650 IF FZ=7 THEN FQ=7.575:FZ$="7" 7660 IF FZ=8 THEN FQ=8 :FZ$="8" 7670 IF FZ=11 THEN FQ=11.2 :FZ$="11" 7680 WL=3*100/FQ 7690 RETURN 7700 ' k(average) 7710 COLOR 6:LOCATE 20, 6:LINE INPUT "(2) Input k(average value) ";X$ 7720 IF MID$(X$,2,1)="/" THEN K(1)=VAL(LEFT$(X$,1))/VAL(RIGHT$(X$,1)) ELSE K(1)=VAL(X$) 7730 IF K(1)<1 OR K(1)>2 THEN LOCATE 20, 6:PRINT SPC(74):GOTO 7710 7740 RETURN 7750 ' k(minimum) 7760 COLOR 6:LOCATE 21, 6:LINE INPUT "(3) Input k(minimum value) ";X$ 7770 IF MID$(X$,2,1)="/" THEN K(2)=VAL(LEFT$(X$,1))/VAL(RIGHT$(X$,1)) ELSE K(2)=VAL(X$) 7780 IF K(2)<0 OR K(2)>1 THEN LOCATE 21, 6:PRINT SPC(74):GOTO 7760 7790 RETURN 8000 ' -------------------------------------- 8010 ' * reflection point calculation sub * 8020 ' -------------------------------------- 8030 P=H1-HH:Q=H2-HH 8040 C=(P-Q)/(P+Q) 8050 M=.5*DM*DM/(6370*K(1)*2*(P+Q))*1000 8060 K=C/(1+M) 8070 B=K: GOSUB 8160 8080 O=S:N=10^-4 8090 B=K+N:GOSUB 8160 8100 L=K:K=L-N*O/(S-O) 8110 IF ABS(L-K)>=1/10^8 THEN 8070 8120 DH=DM*(1+K)/2 8130 DH=INT((DH+.0005)*1000)/1000 8140 RETURN 8150 ' 8160 ' - cubic equation sub - 8170 S=(B*B-(1+M)/M)*B+C/M 8180 RETURN 9000 ' --------------------------------- 9010 ' * ridge loss calculation sub * 9020 ' --------------------------------- 9030 Z=-CL/FR 9040 IF Z>=1 THEN RL=20*LOG(2*3.14159*Z)/2.3026:GOTO 9070 9050 IF Z<1 AND Z>0 THEN RL=6+12*Z-2.2*Z*Z :GOTO 9070 9060 IF Z=<0 THEN RL=1/(.143-.17*Z+Z*Z)-1/(.994+1.48*Z+Z*Z) 9070 IF RL<0 THEN RL=0 9080 RETURN 10000 ' -------------------------------------------- 10010 ' * antenna directive loss calculation sub * 10020 ' -------------------------------------------- 10030 X1=((HA-HC)/DM-(HA-HB)/DD-(DD-DM)*1000/16987)/1000: X1=ABS(X1):X1=X1*180/3.14159 10040 X2=((HB-HC)/(DD-DM)-(HB-HA)/DD-DM*1000/16987)/1000: X2=ABS(X2):X2=X2*180/3.14159 10050 FOR J=0 TO 20 10060 IF X1>VAL(W$(J,0)) THEN 10080 10070 XL1=VAL(W$(J,1)): GOTO 10090 10080 NEXT 10090 FOR J=0 TO 20 10100 IF X2>VAL(W$(J,0)) THEN 10120 10110 XL2=VAL(W$(J,1)): GOTO 10130 10120 NEXT 10130 IF X1>2 THEN XL1=VAL(W$(20,1)) 10140 IF X2>2 THEN XL2=VAL(W$(20,1)) 10150 RETURN 11000 ' ------------------------------------- 11010 ' * reflection loss calculation sub * 11020 ' ------------------------------------- 11030 IF HN=1 THEN HL=0:RETURN 11040 IF HN=2 THEN HL=2:RETURN 11050 IF HN=3 OR HN=4 THEN HL=6 11060 IF (FQ=2 AND HN=3) OR (FQ=2 AND HN=4) THEN HL=4:RETURN 11070 IF (FQ=11 AND HN=3) OR (FQ=11 AND HN=4) THEN HL=8:RETURN 11080 IF HN>4 THEN HL=14 11090 IF (FQ=2 AND HN>4) OR (FQ=2 AND HN>4) THEN HL=10:RETURN 11100 IF (FQ=11 AND HN>4) OR (FQ=11 AND HN>4) THEN HL=16 11110 RETURN 12000 ' --------------------------------------------- 12010 ' * antenna elevation angle calculation sub * 12020 ' --------------------------------------------- 12030 ' elevation angle 12040 F=((H1-H2)/D/1000+D/(K(1)*6370*2))*(-1):F=F*180/3.14159:E=F:GOSUB 12070: U1=U:V1=V:W1=W:IF E<0 THEN A1$="-" ELSE A1$="+" 12050 G=((H2-H1)/D/1000+D/(K(1)*6370*2))*(-1):G=G*180/3.14159:E=G:GOSUB 12070: U2=U:V2=V:W2=W:IF E<0 THEN A2$="-" ELSE A2$="+" 12060 RETURN 12070 ' translation Degree to DMS sub 12080 U=ABS(FIX(E)):V=(ABS(E)-U)*3600\60:W=(ABS(E)-U)*3600-V*60 12090 RETURN 13000 ' ----------------------------------- 13010 ' * antenna height adjustment sub * 13020 ' ----------------------------------- 13030 ' A point height 13040 CLD=.22*FR :' 3dB down (incase 0dB CLD=FR) 13050 HAO=(CLD-D1/D*H2+D1*D2/(2*K(2)*6370)*1000+HS)/(1-D1/D) 13080 ' B point height 13090 CLD=.22*FR :' 3dB down (incase 0dB CLD=FR) 13100 HBO=(D1/D*H1-H1+CLD+D1*D2/(2*K(2)*6370)*1000+HS)/(D1/D) 13120 LOCATE 20, 1:PRINT "OBJECTIVE RIDGE LOSS=3dB": LOCATE 20,29:PRINT "ONLY A HEIGHT ADJUSTED": LOCATE 20,56:PRINT "ONLY B HEIGHT ADJUSTED" 13130 LOCATE 21,44:PRINT USING "####.#m";HAO-H1: LOCATE 21,71:PRINT USING "####.#m";HBO-H2 13140 IF (HAO-H1)>=100 AND (HBO-H2)>=100 THEN COLOR 12:LOCATE 19, 1:PRINT "Antenna height should be elevated more than 100M. Path is not acceptable.":INDEX$="*":GOTO 4630 13150 COLOR 3:LOCATE 19, 5:PRINT "----- Antenna height should be elevated to adopt the path -----":COLOR 7 13160 COLOR 6:LOCATE 23, 1:LINE INPUT "Input Point A or B (A/B) ";X$ 13170 IF X$<>"A" AND X$<>"a" AND X$<>"B" AND X$<>"b" THEN LOCATE 23, 1: PRINT SPC(79):GOTO 13160 13180 NOP$=X$ 13190 ' 13200 LOCATE 23,36:LINE INPUT "Input elevation value ";X$ 13210 COLOR 7:LOCATE 23, 1:PRINT SPC(79) 13220 IF NOP$="A" OR NOP$="a" THEN H1=H1+VAL(X$):HH=H1:L=3 ELSE H2=H2+VAL(X$):HH=H2:L=4 13230 COLOR 6:LOCATE L,14:PRINT USING "####.#m";HH 13240 FOR I= 1 TO 15:LOCATE I,26:PRINT STRING$(55," "):NEXT 13250 FOR I=16 TO 23:LOCATE I, 1:PRINT SPC(79):NEXT 13260 FOR I= 5 TO 7:LOCATE I,13:PRINT SPC(11):NEXT 13270 GOSUB 1590:GOSUB 1650:GOSUB 5420:GOSUB 5830 13280 IF NOP$="A" OR NOP$="a" THEN 13290 ELSE 13310 13290 FOR I=10 TO 12:LOCATE I,13:PRINT SPC(10):NEXT:GOSUB 6370:GOSUB 6790: GOSUB 1500:RETURN 13310 FOR I=13 TO 15:LOCATE I,13:PRINT SPC(10):NEXT:GOSUB 6940:GOSUB 7360: GOSUB 1410:RETURN 14000 ' ---------------------- 14010 ' * profile draw sub * 14020 ' ---------------------- 14030 ' Y=(D-X)*X/(12.74*K) 14040 ' span scale 14050 IF D<=30 THEN GD=50 14060 IF D>30 AND D<60 THEN GD=70 14070 IF D>=60 THEN GD=120 14080 YM=(GD/2*GD/2)/(12.74*K(1)) 14090 ' hight scale 14100 IF H1<=500 AND H2<=500 THEN FLAG$="1":YW=INT(YM* 5*(100/GD)^2): GOTO 14140 14110 IF H1<=1200 AND H2<=1200 THEN FLAG$="2":YW=INT(YM*10*(100/GD)^2): GOTO 14140 14120 IF H1<=2400 AND H2<=2400 THEN FLAG$="3":YW=INT(YM*20*(100/GD)^2): GOTO 14140 14130 IF H1>2400 OR H2>2400 THEN FLAG$="4":YW=INT(YM*40*(100/GD)^2) 14140 CLS 14150 VIEW(216, 4)-(600,294),,5 14160 WINDOW SCREEN(0,-YW)-(GD,0) 14180 ' ground surface 14190 FOR X=0 TO GD 14200 Y=-(GD-X)*X/C 14210 IF X=0 THEN PSET(X,Y) ELSE LINE-(X,Y),2 14220 Y(X)=Y 14230 NEXT 14240 PAINT(GD/2,Y(GD/2)+20),2,2 14270 L1=INT(GD/2-D/2):L2=INT(GD/2+D/2):LR=INT(L1+D1) 14280 LINE(L1,Y(L1)-H1)-(L1-1,Y(L1-1)),2 :' A 14290 LINE(L1,Y(L1)-H1)-(L1+1,Y(L1+1)),2 :' A 14300 PAINT(L1,Y(L1)-H1/2),2,2 14310 AP=L1/GD*(600-216):AQ=(YW-ABS(Y(L1)-H1))/YW*(176-10) 14320 LOCATE (2+AQ)/8,(216+AP)/8:PRINT "A" 14330 LINE(L2,Y(L2)-H2)-(L2-1,Y(L2-1)),2 :' B 14340 LINE(L2,Y(L2)-H2)-(L2+1,Y(L2+1)),2 :' B 14350 PAINT(L2,Y(L2)-H2/2),2,2 14360 BP=L2/GD*(600-216):BQ=(YW-ABS(Y(L2)-H2))/YW*(176-10) 14370 LOCATE (2+BQ)/8,(216+BP)/8:PRINT "B" 14380 IF HS=0 THEN 14450 14390 LINE(LR,Y(LR)-HS)-(LR-1,Y(LR-1)),2 :' L 14400 LINE(LR,Y(LR)-HS)-(LR+1,Y(LR+1)),2 :' L 14410 PAINT(LR,Y(LR)-HS/2),2,2 14420 LP=(L1+D1)/GD*(600-216):LQ=(YW-ABS(Y(L1+D1)-HS))/YW*(176-10) 14430 IF ABS(Y(LR)-HS)>=YW THEN LP=LP+8:LQ=1 14440 LOCATE (2+LQ)/8,(216+LP)/8:PRINT "L" 14450 LINE(L1+DF,Y(L1+DF)-HF)-(L1+DF-1,Y(L1+DF-1)),2 :' F 14460 LINE(L1+DF,Y(L1+DF)-HF)-(L1+DF+1,Y(L1+DF+1)),2 :' F 14470 PAINT(L1+DF,Y(L1+DF)-HF/2),2,2 14480 FP=(L1+DF)/GD*(600-216):FQ=(YW-ABS(Y(L1+DF)-HF))/YW*(176-10) 14490 LOCATE (2+FQ)/8,(216+FP)/8:PRINT "F" 14500 IF HR1=0 THEN 14560 14510 LINE(L1+DR1,Y(L1+DR1)-HR1)-(L1+DR1-1,Y(L1+DR1-1)),2 :' P 14520 LINE(L1+DR1,Y(L1+DR1)-HR1)-(L1+DR1+1,Y(L1+DR1+1)),2 :' P 14530 PAINT(L1+DR1,Y(L1+DR1)-HR1/2),2,2 14540 PP=(L1+DR1)/GD*(600-216):PQ=(YW-ABS(Y(L1+DR1)-HR1))/YW*(176-10) 14550 LOCATE (2+PQ)/8,(216+PP)/8:PRINT "P" 14560 IF HR2=0 THEN 14620 14570 LINE(L1+D1+DR2,Y(L1+D1+DR2)-HR2)-(L1+D1+DR2-1,Y(L1+D1+DR2-1)),2 :' Q 14580 LINE(L1+D1+DR2,Y(L1+D1+DR2)-HR2)-(L1+D1+DR2+1,Y(L1+D1+DR2+1)),2 :' Q 14590 PAINT(L1+D1+DR2,Y(L1+D1+DR2)-HR2/2),2,2 14600 QP=(L1+D1+DR2)/GD*(600-216):QQ=(YW-ABS(Y(L1+D1+DR2)-HR2))/YW*(176-10) 14610 LOCATE (2+QQ)/8,(216+QP)/8:PRINT "Q" 14620 ' contour line & distance division 14625 IF K(1)>4/3 THEN L=3 ELSE L=4 14630 ON VAL(FLAG$) GOTO 14640,14720,14800,14880 14640 FOR J=1 TO 14 14650 FOR X=0 TO GD 14660 Y=-((GD-X)*X/C+J*50) 14670 IF X=0 THEN PSET(X,Y) 14680 IF J/2=INT(J/2) THEN LINE-(X,Y),7,,&HAAAA ELSE LINE-(X,Y),7,,&H8888 14690 NEXT X,J 14700 FOR J=22 TO 74 STEP 52:FOR I=0 TO 5:LOCATE L+I*3,J+1:PRINT ABS(I*100-600): NEXT I,J 14710 GOTO 14950 14720 FOR J=1 TO 28 14730 FOR X=0 TO GD 14740 Y=-((GD-X)*X/C+J*50) 14750 IF X=0 THEN PSET(X,Y) 14760 IF J/2=INT(J/2) THEN LINE-(X,Y),7,,&HAAAA ELSE LINE-(X,Y),7,,&H8888 14770 NEXT X,J 14780 FOR J=22 TO 74 STEP 52:FOR I=0 TO 5:LOCATE L+I*3,J+1:PRINT ABS(I*200-1200):NEXT I,J 14790 GOTO 14950 14800 FOR J=1 TO 28 14810 FOR X=0 TO GD 14820 Y=-((GD-X)*X/C+J*100) 14830 IF X=0 THEN PSET(X,Y) 14840 IF J/2=INT(J/2) THEN LINE-(X,Y),7,,&HAAAA ELSE LINE-(X,Y),7,,&H8888 14850 NEXT X,J 14860 FOR J=22 TO 74 STEP 52:FOR I=0 TO 5:LOCATE L+I*3,J+1:PRINT ABS(I*400-2400):NEXT I,J 14870 GOTO 14950 14880 FOR J=1 TO 28 14890 FOR X=0 TO GD 14900 Y=-((GD-X)*X/C+J*200) 14910 IF X=0 THEN PSET(X,Y) 14920 IF J/2=INT(J/2) THEN LINE-(X,Y),7,,&HAAAA ELSE LINE-(X,Y),7,,&H8888 14930 NEXT X,J 14940 FOR J=22 TO 74 STEP 52:FOR I=0 TO 5:LOCATE L+I*3,J+1:PRINT ABS(I*800-4800):NEXT I,J 14950 ' distance & distance division 14960 FOR I=0 TO GD STEP 10:LINE(I,-YW)-(I,Y(I)),7:NEXT 14970 FOR I=0 TO GD/10:LOCATE 22,25+I*500/GD:PRINT USING "###";I*10:NEXT 14980 GOTO 14990 14990 LINE(L1,Y(L1)-H1)-(L2,Y(L2)-H2),4 15000 ' reflection pass 15010 ON Z GOTO 15020,15040,15060 15020 IF Z=1 THEN LINE(L1,Y(L1)-H1)-(L1+DF,Y(L1+DF)-HF),3: LINE(L2,Y(L2)-H2)-(L1+DF,Y(L1+DF)-HF),3 15030 RETURN 15040 IF Z=2 THEN LINE(L1,Y(L1)-H1)-(L1+DR1,Y(L1+DR1)-HR1),3: LINE(L1+DR1,Y(L1+DR1)-HR1)-(LR,Y(LR)-HS),3: LINE(LR,Y(LR)-HS)-(L2,Y(L2)-H2),3 15050 RETURN 15060 IF Z=3 THEN LINE(L1,Y(L1)-H1)-(LR,Y(LR)-HS),3: LINE(LR,Y(LR)-HS)-(L1+D1+DR2,Y(L1+D1+DR2)-HR2),3: LINE(L1+D1+DR2,Y(L1+D1+DR2)-HR2)-(L2,Y(L2)-H2),3 15070 RETURN 16000 ' ----------------------- 16010 ' * graph draw sub(1) * 16020 ' ----------------------- 16030 VIEW(180,18)-(380,175),,5 16040 WINDOW SCREEN(0, 0)-(100,100) 16050 LINE( 2,VMH1)-(98,VMH2),7 :' A-B 16060 LINE( 0, 100)-( 0,VSH1),2 :' A 16070 LINE( 0,VSH1)-( 2,VMH1),2 16080 LINE( 2,VMH1)-(10, 100),2 16090 LINE( 0, 100)-(10, 100),2 16100 IF VMH1>=99 THEN 16110 ELSE PAINT(2,99),2,2 16110 LOCATE (10+VMH1)/8-1,182/8+1:PRINT "A" 16120 IF RIDGE$="" THEN 16190 16130 LINE(VXL-5,100)-(VXL, VYL),2 :' L 16140 LINE(VXL, VYL)-(VXL+5,100),2 16150 LINE(VXL-5,100)-(VXL+5,100),2 16160 PAINT(VXL,99),2,2 16170 IF VYL<1 THEN LOCATE 2,(180+VXL*2)/8:PRINT "L" ELSE LOCATE (10+VYL)/8,(180+VXL*2)/8:PRINT "L" 16180 ' 16190 LINE( 90, 100)-( 98,VMH2),2 :' B 16200 LINE( 98,VMH2)-(100,VEH2),2 16210 LINE(100,VEH2)-(100, 100),2 16220 LINE( 90, 100)-(100, 100),2 16230 IF VMH2>=99 THEN 16240 ELSE PAINT(98,99),2,2 16240 LOCATE (10+VMH2)/8-1,378/8+1:PRINT "B" 16250 RETURN 17000 ' ----------------------- 17010 ' * graph draw sub(2) * 17020 ' ----------------------- 17030 VIEW(475,56)-(635,196),,5 17040 WINDOW SCREEN(-10,-10)-(110,110) 17050 CIRCLE(20,10),10,7,3.14159*.5,3.14159*3/2 17060 CIRCLE(70,10),10,7,3.14159*3/2,3.14159*.5 17070 LINE(10,10)-(10, 50),7 17080 LINE(10,50)-(10,100),7,,&HF99F 17090 LINE(80,10)-(80,50),7 17100 LINE(80,50)-(80,100),7,,&HF99F 17110 CIRCLE(70,50),10,7,3.14159*3/2,3.14159*.5 17120 LINE( 20,10)-( 70,10),7,,&HF0F0 17130 LINE( 20,10)-( 70,50),7,,&HF0F0 17140 LINE( 90,10)-(105,10),7,,&H8888 17150 LINE( 90,50)-(105,50),7,,&H8888 17160 LINE(101,10)-(101,50),7,,&H8888 17170 LINE( 10,90)-( 80,90),7,,&H8888 17180 LINE( 0,100)-(100,100),2 17190 COLOR 6 17200 LOCATE 6,62:PRINT "T" 17210 LOCATE 6,76:PRINT "R1" 17220 LOCATE 8,77:PRINT "HP" 17230 LOCATE 11,76:PRINT "R2" 17240 LOCATE 14,69:PRINT "D" 17250 COLOR 7:RETURN 20000 ' --------------- 20010 ' * data file * 20020 ' --------------- 20030 OPEN "DATARF" AS #1 20040 FIELD #1,4 AS KAR$,4 AS KMR$,4 AS FQR$,4 AS FZR$,4 AS CLR$,4 AS SLR$, 4 AS RLR$,4 AS IAR$,4 AS IBR$,4 AS ALR$,4 AS BLR$,4 AS FLR$, 4 AS TLR$,4 AS ROR$,4 AS DIR$,4 AS H1R$,4 AS H2R$ 20050 FIELD #1,68 AS DUMMY$,4 AS HSR$,4 AS D1R$,4 AS DDFR$,4 AS HHFR$, 10 AS VFR$,8 AS ACR$,8 AS AVR$,2 AS SDR$,4 AS FR$,4 AS GR$ 20060 LSET KAR$=MKS$(K(1)):LSET KMR$=MKS$(K(2)):LSET FQR$=MKS$(FQ): LSET FZR$=MKS$(FZ) :LSET CLR$=MKS$(CL(2)):LSET SLR$=MKS$(SL) 20070 LSET RLR$=MKS$(RL(Z)):LSET IAR$=MKS$(X1(Z)):LSET IBR$=MKS$(X2(Z)): LSET ALR$=MKS$(XL1(Z)):LSET BLR$=MKS$(XL2(Z)) 20080 LSET FLR$=MKS$(HL(Z)):LSET TLR$=MKS$(RLF):LSET ROR$=ROT$: LSET DIR$=MKS$(D):LSET H1R$=MKS$(H1):LSET H2R$=MKS$(H2): LSET HSR$=MKS$(HS):LSET D1R$=MKS$(D1) 20090 LSET DDFR$=MKS$(DDF):LSET HHFR$=MKS$(HHF):LSET VFR$=VF$: LSET ACR$=MKD$(AC):LSET AVR$=MKD$(AV):LSET SDR$=SD$:LSET FR$=MKS$(F): LSET GR$=MKS$(G) 20100 PUT #1,1 20110 CLOSE #1:RETURN