10 ' 20 ' *********************************************************************** 30 ' ** BY L.A. GERIG, R.R.#1, MONROEVILLE, IND 46773 ** 40 ' ** DOCUMENTATION IN MAY '86 HAM RADIO MAGAZINE ** 50 ' ** NOV '86 COMMUNICATIONS MAGAZINE ** 60 ' ** Authorized MBASIC 5.0 Adaptation by Jim Lill 1 May 87 ** 61 ' ** Distribution Rights retained by original author and limited to ** 62 ' ** free and non-commercial usage. ** 70 ' *********************************************************************** 80 ' 90 CLS$=CHR$(26):PRINT CLS$: ' CLEARSCREEN FOR YOUR TERMINAL 100 WA=2000:' DELAY VALUE FOR DISPLAYS 110 PRINT:PRINT "3.5-50 MHZ GROUND-WAVE PROPAGATION PROGRAM" 120 PRINT:PRINT "Adapted for CP/M by Jim Lill, WA2ZKD" 130 PRINT "Original by LYNN A. GERIG, WA9GFR" 140 FOR J=1 TO WA:NEXT J 150 PRINT CLS$ 160 PRINT"THIS PROGRAM CALCULATES EXPECTED RANGES FOR FREQUENCY BANDS OF" 170 PRINT"3.5, 7, 14, 28, AND 50 MHZ. THE APPROXIMATE DYNAMIC RANGE IS FOR" 180 PRINT"PATH LOSSES OF 100 TO 200 DB, COVERING MOST APPLICATIONS FOR RCVR" 190 PRINT"SENS OF .2 TO 10 MICRO-VOLTS AND XMTR POWER OF .1 TO 1000 WATTS." 200 PRINT"PROGRAM COVERS ANTENNA HEIGHTS FROM GROUND LEVEL TO 150 FEET." 210 PRINT:PRINT:PRINT"PROGRAM DEFAULTS TO RCVR SENS AND XMTR PWR IN DBM." 220 PRINT"WOULD YOU RATHER WORK WITH MICRO-VOLTS AND WATTS (Y=YES)";:INPUT D$ 230 IF D$="y" THEN D$="Y" 240 PRINT:INPUT"WHAT IS DESIRED TITLE FOR HARDCOPY";T$ 250 GOSUB 1460:' READ DATA 260 GOSUB 700:' SELECT FREQUENCY BAND 270 GOSUB 790:' SELECT XMTR PWR & RCVR SENS 280 GOSUB 950:' SELECT PROPAGATION PATH 290 GOSUB 1080:' SELECT ANTENNA PARAMETERS 300 ' MAIN PROGRAM CALCULATIONS 310 IF (H1=0 OR H2=0) AND PO=2 THEN GOSUB 1080 320 H$=H$(PO,PP,FB):' DATA FOR SELECTED POLARIZATION, PATH & FREQ 330 FOR J=1 TO 12:X=6*(J-1):P(J)=VAL(MID$(H$,X+1,3)) 340 D(J)=VAL(MID$(H$,X+4,3)):NEXT J 350 IF D(12)=999 THEN D(10)=1050:D(11)=1050:D(12)=1050 360 HX=HG(PO,PP,FB,H1):' XMIT ANTENNA HEIGHT GAIN 370 HR=HG(PO,PP,FB,H2):' RCVR ANTENNA HEIGHT GAIN 380 PL=PD-RD+HX+HR+GX+GR-LL:' PATH IN DB 390 PRINT CLS$:PRINT"GROUND WAVE PROPAGATION AT";F(FB);"MHZ" 400 PRINT:PRINT PO$(PO);" POLARIZATION OVER "; PP$(PP) 410 PRINT:PRINT"TRANSMITTER POWER OUT:";PD;TAB(30);"DBM" 420 PRINT TAB(23);PW;TAB(30);"WATTS" 430 PRINT:PRINT"RECEIVER SENSITIVITY: ";RD;TAB(30);"DBM" 440 PRINT TAB(23);RM;TAB(30);"UV" 450 PRINT:PRINT"TRANSMITTING ANTENNA: ";GX;"DB GAIN" 460 PRINT TAB(25);"AT";H(H1);"FEET" 470 PRINT:PRINT"RECEIVING ANTENNA: ";GR;"DB GAIN" 480 PRINT;TAB(25);"AT";H(H2);"FEET" 490 PRINT:PRINT"SYSTEM LOSSES: ";LL;"DB":PRINT 500 IF PL=P(12) THEN PRINT"RANGE NOT IN PROGRAM: >";D(12);"MILES":GOTO 560 520 FOR J=1 TO 11:X=J+1 530 IF PL>=P(J) AND PL1 AND FB<>2 AND FB<>3 AND FB<>4 AND FB<>5 THEN 700 780 PRINT:PRINT:RETURN 790 IF D$="Y" THEN INPUT"INPUT XMTR POWER (IN WATTS)";PW:GOTO 850 800 INPUT"INPUT XMTR POWER (IN DBM)";PD 810 PW=(PD-30)/10:PW=10^PW 820 IF PW>=1 THEN PW=INT(PW*10+.5)/10 830 IF PW<1 THEN PW=INT(PW*1000+.5)/1000 840 GOTO 860 850 PD=10*LOG(PW)/LOG(10)+30:PD=INT(PD*10+.5)/10 860 IF D$="Y" THEN INPUT"RCVR SENSITIVITY (IN MICRO-VOLTS)";RM:GOTO 930 870 INPUT"RCVR SENSITIVITY (IN DBM)";RD 880 IF RD>0 THEN PRINT"<1 MW IS A NEGATIVE NUMBER" 890 IF RD>0 THEN GOTO 870 900 RM=(RD+107)/20:RM=10^RM 910 IF RM>=1 THEN RM=INT(RM*10+.5)/10:GOTO 940 920 IF RM<1 THEN RM=INT(RM*100+.5)/100:GOTO 940 930 RD=20*LOG(RM)/LOG(10)-107:RD=INT(RD*10+.5)/10 940 RETURN 950 ' SELECT POLARIZATION & PROPAGATION PATH 960 PRINT:PRINT"VERTICAL OR HORIZONTAL POLARIZATION " 970 INPUT"(V OR H)";PO$ 980 IF PO$="V" OR PO$="v" THEN PO=1 990 IF PO$="H" OR PO$="h" THEN PO=2 1000 IF PO$<>"V" AND PO$<>"H" AND PO$<>"v" AND PO$<>"h" THEN GOTO 970 1010 PRINT:PRINT"SELECT PROPAGATION PATH FROM MENU":PRINT 1020 PRINT" 1 = POOR SOIL" 1030 PRINT" 2 = GOOD SOIL" 1040 PRINT" 3 = SEA WATER":PRINT 1050 INPUT"WHAT IS YOUR CHOICE";PP 1060 IF PP<>1 AND PP<>2 AND PP<>3 THEN 1010 1070 RETURN 1080 ' ANTENNA PARAMETERS 1090 PRINT CLS$:PRINT"CHOOSE ANTENNA FEEDPOINT HEIGHT ABOVE" 1100 PRINT"GROUND FROM THE FOLLOWING MENU:":PRINT:PRINT 1110 IF PO=1 THEN PRINT"0 = GROUNDED VERTICAL" 1120 PRINT"1 = 10' 4 = 40' 7 = 80'" 1130 PRINT"2 = 20' 5 = 50' 8 = 100'" 1140 PRINT"3 = 30' 6 = 60' 9 = 150'":PRINT:PRINT 1150 INPUT"SELECT HEIGHT OF TRANSMIT ANTENNA";H1:H1=INT(H1) 1160 INPUT"SELECT HEIGHT OF RECEIVE ANTENNA";H2:H2=INT(H2) 1170 IF H1<0 OR H2<0 OR H1>9 OR H2>9 THEN PRINT"NOT IN MENU" 1180 IF H1<0 OR H2<0 OR H1>9 OR H2>9 THEN GOTO 1150 1190 IF PO=2 AND (H1=0 OR H2=0) THEN PRINT "NOT IN MENU" 1200 IF PO=2 AND (H1=0 OR H2=0) THEN GOTO 1150 1210 PRINT:PRINT:PRINT 1220 INPUT"ENTER GAIN OF XMIT ANTENNA (IN DB)";GX 1230 INPUT"ENTER GAIN OF RCV ANTENNA (IN DB)";GR 1240 PRINT:PRINT:PRINT"ENTER TOTAL LOSSES AT TRANSMITTING AND" 1250 PRINT"RECEIVING ENDS OF THE LINK. INCLUDE" 1260 INPUT"COAX CABLE LOSSES, ETC. (IN DB)";LL 1270 PRINT CLS$:RETURN 1280 LPRINT M$;LL$:LPRINT:LPRINT:LPRINT M$;"TITLE: ";T$:LPRINT 1290 LPRINT M$;"GROUND WAVE PROPAGATION AT";F(FB);"MHZ" 1300 LPRINT M$;PO$(PO);" POLARIZATION OVER ";PP$(PP) 1310 LPRINT:LPRINT M$;"TRANSMITTER POWER OUT:";PD;TAB(37);"DBM" 1320 LPRINT TAB(29);PW;TAB(37);"WATTS 1330 LPRINT:LPRINT M$;"RECEIVER SENSITIVITY: ";RD;TAB(37);"DBM" 1340 LPRINT TAB(29);RM;TAB(37);"UV" 1350 LPRINT:LPRINT M$;"TRANSMITTING ANTENNA: ";GX;"DB GAIN" 1360 LPRINT TAB(31);"AT";H(H1);"FEET" 1370 LPRINT:LPRINT M$;"RECEIVING ANTENNA: ";GR;"DB GAIN" 1380 LPRINT TAB(31);"AT";H(H2);"FEET" 1390 LPRINT:LPRINT M$;"SYSTEM LOSSES: ";LL;"DB":LPRINT 1400 IF PLP(12) THEN LPRINT M$;"RANGE NOT IN PROGRAM; >";D(12);"MILES" 1420 IF PLP(12) THEN 1440 1430 LPRINT M$;"MAXIMUM EXPECTED RANGE:";DI;"MILES" 1440 LPRINT:LPRINT M$;LL$:LPRINT:LPRINT 1450 RETURN 1460 RD=7:PRINT:PRINT:PRINT:PRINT"READING DATA ";RD; 1470 DIM HG(2,3,5,9):DIM H$(2,3,5):DIM P(12):DIM D(12) 1480 FOR PO=1 TO 2:' 1=VERT 2=HORIZ 1490 FOR PP=1 TO 3:' 1=POOR SOIL 2=GOOD SOIL 3=SEA WATER 1500 FOR FB=1 TO 5:' 1=3.5 2=7 3=14 4=28 5=50MHZ 1510 FOR AH=1 TO 9:' 1=10' 2=20 3=30 ... 6=60 7=80 8=100 9=150' 1520 READ HG(PO,PP,FB,AH):' HEIGHT GAIN IN DB 1530 NEXT AH:NEXT FB:RD=RD-1:PRINT RD;:NEXT PP:NEXT PO 1540 DATA 0,0,0,0,0,0,0,0,0 1550 DATA -1,-1,0,.5,1,2,3,4,7 1560 DATA 0,1.5,3,5,7,8,10,12,15 1570 DATA 2,6,8,11,12.5,14,16.5,18.5,22 1580 DATA 6,11,14,17,18.5,20,22.5,24,28 1590 DATA 0,0,0,0,0,0,0,0,0 1600 DATA 0,0,0,0,0,0,0,0,0 1610 DATA -.5,-1,-1,-.5,0,1,2,4,7 1620 DATA 0,1,2,3.5,5,6,8,10,13 1630 DATA 1,4,7,9,11,13,15,17,20 1640 DATA 0,0,0,0,0,0,0,0,0 1650 DATA 0,0,0,0,0,0,0,0,0 1660 DATA 0,0,0,0,0,0,0,0,0 1670 DATA 0,0,0,0,0,0,0,0,0 1680 DATA -1,-1.5,-2,-2.5,-3,-3,-2,-1.5,1 1690 DATA 0,2,4,6,7,8,10.5,12,15.5 1700 DATA 0,3,6,7.5,9,11,13,15,18.5 1710 DATA 0,4,8,11,13,14,16,18,22 1720 DATA 0,5.5,9,12,14,15,17,19.5,23 1730 DATA 0,6,9.5,12.5,14.5,15.5,17.5,20,23.5 1740 DATA 0,4,7.5,10,11.5,13,16,18,21 1750 DATA 0,5,8,11,13,15,17,19,22 1760 DATA 0,6,10,12,14,16,18,20,23 1770 DATA 0,6,10,12,14,16,18,20,23 1780 DATA 0,6,10,12,14,16,18,20,23 1790 DATA 0,6,9.5,12,14,15.5,18,20,23 1800 DATA 0,6,9.5,12,14,15.5,18,20,23 1810 DATA 0,6,9.5,12,14,15.5,18,20,23 1820 DATA 0,6,9.5,12,14,15.5,18,20,23 1830 DATA 0,6,9.5,12,14,15.5,18,20,23 1840 H$(1,1,1)="099007109012119020129035139054149088159125" 1850 H$(1,1,1)=H$(1,1,1)+"169170179210189250199290209320" 1860 H$(1,1,2)="1054.51157.6125013135023145037155055165088" 1870 H$(1,1,2)=H$(1,1,2)+"175120185160195190205230215270" 1880 H$(1,1,3)="1112.51214.5131008141013151023161037171053" 1890 H$(1,1,3)=H$(1,1,3)+"181080191105201130211150221180" 1900 H$(1,1,4)="1181.81283.11385.5148010158016168025178040" 1910 H$(1,1,4)=H$(1,1,4)+"188058198078208096218120228130" 1920 H$(1,1,5)="1231.31332.2143004153007163012173018183030" 1930 H$(1,1,5)=H$(1,1,5)+"193043203058213075223090233110" 1940 H$(1,2,1)="099027109045119060129110139150149190159230" 1950 H$(1,2,1)=H$(1,2,1)+"169270179310189340199380209420" 1960 H$(1,2,2)="105014115023125032135060145090155125165160" 1970 H$(1,2,2)=H$(1,2,2)+"175200185225195240205270215300" 1980 H$(1,2,3)="1115.7121011131021141032151050161070171094" 1990 H$(1,2,3)=H$(1,2,3)+"181120191140201160211180221200" 2000 H$(1,2,4)="1184.21287.5138013148022158035168050178069" 2010 H$(1,2,4)=H$(1,2,4)+"188089198110208130218150228170" 2020 H$(1,2,5)="123003133005143010153015163024173037183050" 2030 H$(1,2,5)=H$(1,2,5)+"193067203083213100223120233140" 2040 H$(1,3,1)="099190109290119380129470139570149650159740" 2050 H$(1,3,1)=H$(1,3,1)+"169820179920189999189999189999" 2060 H$(1,3,2)="105150115215125280135350145425155500165580" 2070 H$(1,3,2)=H$(1,3,2)+"175640185700195780205840215900" 2080 H$(1,3,3)="111083121115131150141185151220161260171300" 2090 H$(1,3,3)=H$(1,3,3)+"181340191370201410211450221480" 2100 H$(1,3,4)="118035128050138070148090158110168130178150" 2110 H$(1,3,4)=H$(1,3,4)+"188170198190208210218230228250" 2120 H$(1,3,5)="123017133027143040153054163070173085183100" 2130 H$(1,3,5)=H$(1,3,5)+"193117203130213150223170233185" 2140 H$(2,1,1)="0991.51092.61194.81298.1139015149025159042" 2150 H$(2,1,1)=H$(2,1,1)+"169060179090189125199162209200" 2160 H$(2,1,2)="1051.51152.61254.81358.1145015155025165042" 2170 H$(2,1,2)=H$(2,1,2)+"175060185080195115205140215170" 2180 H$(2,1,3)="1111.51212.61314.81418.1151015161025171042" 2190 H$(2,1,3)=H$(2,1,3)+"181056191078201100211122221145" 2200 H$(2,1,4)="1181.81283.21385.9148010158016168030178040" 2210 H$(2,1,4)=H$(2,1,4)+"188060198080208096218116228136" 2220 H$(2,1,5)="1232.41334.11437.2153013163022173032183045" 2230 H$(2,1,5)=H$(2,1,5)+"193060203071213082223100233120" 2240 H$(2,2,1)="0990.71091.31192.3129004139007149013159022" 2250 H$(2,2,1)=H$(2,2,1)+"169036179055189080199110209150" 2260 H$(2,2,2)="1050.91151.61252.91350051458.8155016165026" 2270 H$(2,2,2)=H$(2,2,2)+"175042185066195090205120215150" 2280 H$(2,2,3)="1111.31212.1131004141007151013161021171035" 2290 H$(2,2,3)=H$(2,2,3)+"181050191075201095211120221142" 2300 H$(2,2,4)="1181.81283.21385.21489.5158016168026178040" 2310 H$(2,2,4)=H$(2,2,4)+"188058198076208094218116228135" 2320 H$(2,2,5)="1232.41334.21437.4153012163020173031183045" 2330 H$(2,2,5)=H$(2,2,5)+"193058203074213090223110233120" 2340 H$(2,3,1)="0990.61091.01191.71290031395.51499.5159017" 2350 H$(2,3,1)=H$(2,3,1)+"169028179046189072199108209140" 2360 H$(2,3,2)="1050.81151.41252.41354.31457.7155013165023" 2370 H$(2,3,2)=H$(2,3,2)+"175038185059195084205115215150" 2380 H$(2,3,3)="1111.21212.11313.81416.8151012161020171033" 2390 H$(2,3,3)=H$(2,3,3)+"181050191070201095211120221140" 2400 H$(2,3,4)="1181.71283.01385.41489.4158016168026178040" 2410 H$(2,3,4)=H$(2,3,4)+"188056198076208098218116228130" 2420 H$(2,3,5)="1232.41334.11437.2153012163020173032183045" 2430 H$(2,3,5)=H$(2,3,5)+"193060203076213090223110233125" 2440 F(1)=3.5:F(2)=7:F(3)=14:F(4)=30:F(5)=50 2450 RD=RD-1:PRINT RD 2460 PO$(1)="VERTICAL":PO$(2)="HORIZONTAL" 2470 PP$(1)="POOR SOIL":PP$(2)="GOOD SOIL":PP$(3)="SEA WATER" 2480 LL$="---------------------------------------":M$=" " 2490 H(0)=0:H(1)=10:H(2)=20:H(3)=30:H(4)=40:H(5)=50 2500 H(6)=60:H(7)=80:H(8)=100:H(9)=150 2510 RETURN