home *** CD-ROM | disk | FTP | other *** search
- 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(1) THEN PRINT"RANGE NOT IN PROGRAM: <";D(1);"MILES":GOTO 560
- 510 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 PL<P(X) THEN DI=D(J)+(D(X)-D(J))*(PL-P(J))/(P(X)-P(J))
- 540 NEXT J:DI=INT(10*DI+.5)/10
- 550 PRINT"MAXIMUM EXPECTED RANGE: ";DI;"MILES"
- 560 PRINT:PRINT LL$
- 570 PRINT"F=NEW FREQ BAND R=RUN AGAIN Q=QUIT"
- 580 PRINT"A=MODIFY ANTENNAS X=MODIFY R/T SENS/PWR"
- 590 PRINT"N=NEW PATH OR POLARIZATION P=PRINTER DUMP";
- 600 INPUT" YOUR CHOICE";A$
- 610 PRINT:PRINT
- 620 IF A$="R" OR A$="r" THEN 260
- 630 IF A$="N" OR A$="n" THEN GOSUB 950
- 640 IF A$="A" OR A$="a" THEN GOSUB 1080
- 650 IF A$="X" OR A$="x" THEN GOSUB 790
- 660 IF A$="F" OR A$="f" THEN GOSUB 700
- 670 IF A$="P" OR A$="p" THEN GOSUB 1280
- 680 IF A$="Q" OR A$="q" THEN STOP
- 690 GOTO 300
- 700 PRINT CLS$:PRINT"SELECT FREQUENCY BAND FROM MENU":PRINT
- 710 PRINT TAB(9);" 1 = 3.5 MHZ"
- 720 PRINT TAB(9);" 2 = 7 MHZ"
- 730 PRINT TAB(9);" 3 = 14 MHZ"
- 740 PRINT TAB(9);" 4 = 30 MHZ"
- 750 PRINT TAB(9);" 5 = 50 MHZ":PRINT
- 760 INPUT"WHAT IS YOUR CHOICE";FB
- 770 IF FB<>1 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 PL<P(1) THEN LPRINT M$;"RANGE NOT IN PROGRAM: <";D(1);"MILES"
- 1410 IF PL>P(12) THEN LPRINT M$;"RANGE NOT IN PROGRAM; >";D(12);"MILES"
- 1420 IF PL<P(1) OR PL>P(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