home *** CD-ROM | disk | FTP | other *** search
/ Super Games / visualcdgame.iso / dosgames / contintl / stl.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1992-06-30  |  26.8 KB  |  496 lines

  1. 10  REM *****************************************************
  2. 20  REM               S T L   P R O G R A M
  3. 30  REM         PATH GAINS, LOSSES, AND CLEARANCE
  4. 40  REM                 By: Steve Schott
  5. 50  REM *****************************************************
  6. 60  CL$ = "                                                                               " : REM  String of Blanks to Clear Line
  7. 70  CHL$ = "                                        " : REM Clear Half Line
  8. 80  D$ = CHR$(248) 'Degree Symbol
  9. 90  Q$ = CHR$(34) 'Quotation Mark (")
  10. 100  FORMFEED$ = CHR$(12) 'Form Feed (FF)
  11. 110  PI = 3.14159 'Pi
  12. 120  LG = 0.434294 'Natural to Common Log Conversion
  13. 130  DIM D(150) : DIM F(3,150) : DIM FT(150) : DIM H(3,150) : DIM RT$(20)
  14. 140  GOTO 1810
  15. 150  DATA -76.9, -84, -82, -66, -84, -67, -80.9, -74.9, -77.3, -84, -86.9, -72.9
  16. 160  REM  -------------
  17. 170  REM  PATH DISTANCE
  18. 180  REM  -------------
  19. 190  LOCATE 3,1 : PRINT CL$ : LOCATE 3,3 : PRINT " 1." : LOCATE 3,20 : PRINT "Path Distance: "; :LOCATE 3,40 : INPUT "",A$
  20. 200  D = VAL(A$)
  21. 210  IF D =< 0 THEN 190
  22. 220  LOCATE 3,1 : PRINT CL$ : LOCATE 3,3 : PRINT " 1." : LOCATE 3,20 : PRINT "Path Distance: "
  23. 230  LOCATE 3,40 : PRINT CHL$ : LOCATE 3,40 : PRINT USING "###.#  Miles";D
  24. 240  REM -----------
  25. 250  REM PATH LOSSES
  26. 260  REM -----------
  27. 270  CP = 97 + (20 * ((LOG(D)) * LG))
  28. 280  GP = 98.3 + (20 * ((LOG(D)) * LG))
  29. 290  LOCATE 4,1 : PRINT CL$ : LOCATE 4,3 : PRINT " 2." : LOCATE 4,18 : PRINT "Clear Path Loss: "; :LOCATE 4,40 : PRINT USING "###.## dB";CP : LOCATE 4,50 : PRINT USING "(Grazing Path Loss: ###.# dB)";GP
  30. 300  RETURN
  31. 310  REM -----------------------
  32. 320  REM TRANSMITTER LINE LENGTH
  33. 330  REM -----------------------
  34. 340  LOCATE 5,1 : PRINT CL$ : LOCATE 5,3 : PRINT " 3." : LOCATE 5,10 : PRINT "Transmitter Line Length: "; :LOCATE 5,40 : INPUT "",A$
  35. 350  LL% = VAL(A$)
  36. 360  IF LL% =< 0 THEN 340
  37. 370  GOSUB 2130 : XL% = LL% : XL = LA : XL$ = L$
  38. 380  LOCATE 5,1 : PRINT CL$ : LOCATE 5,3 : PRINT " 3." : LOCATE 5,12 : PRINT "Transmitter Line Loss: "
  39. 390  LOCATE 5,40 : PRINT CHL$ : LOCATE 5,40 : PRINT USING "###.## dB loss w/";XL;: PRINT XL%;"ft. of ";XL$
  40. 400  RETURN
  41. 410  REM --------------------
  42. 420  REM RECEIVER LINE LENGTH
  43. 430  REM --------------------
  44. 440  LOCATE 6,1 : PRINT CL$ : LOCATE 6,3 : PRINT " 4." : LOCATE 6,13 : PRINT "Receiver Line Length: "; :LOCATE 6,40 : INPUT "",A$
  45. 450  LL% = VAL(A$)
  46. 460  IF LL% =< 0 THEN 440
  47. 470  GOSUB 2130 : RL% = LL% : RL = LA : RL$ = L$
  48. 480  LOCATE 6,1 : PRINT CL$ : LOCATE 6,3 : PRINT " 4." : LOCATE 6,15 : PRINT "Receiver Line Loss: "
  49. 490  LOCATE 6,40 : PRINT CHL$ : LOCATE 6,40 : PRINT USING "###.## dB loss w/";RL;: PRINT RL%;"ft. of ";RL$
  50. 500  RETURN
  51. 510  REM ----------------
  52. 520  REM MATED CONNECTORS
  53. 530  REM ----------------
  54. 540  LOCATE 20,1 : PRINT "SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND"
  55. 550  PRINT "   Number of mated connectors in transmission line not including isocouplers,"
  56. 560  PRINT "   combiners, etc.  Enter 4 connectors if pigtails used -- Enter 2 without."
  57. 570  PRINT "SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND"
  58. 580  LOCATE 7,1 : PRINT CL$ : LOCATE 7,3 : PRINT " 5." : LOCATE 7,11 : PRINT "Total Connector Losses:"
  59. 590  LOCATE 19,1 : PRINT CL$ : LOCATE 19,17 : INPUT "NUMBER OF CONNECTORS IN TRANSMITTER LINE: ",A$ : NX% = VAL(A$) : IF NX% =< 0 THEN 590
  60. 600  LOCATE 19,1 : PRINT CL$ : LOCATE 19,17 : INPUT "NUMBER OF CONNECTORS IN RECEIVER LINE: ",A$ : NR% = VAL(A$) : IF NR% =< 0 THEN 600
  61. 610  NC% = NX% + NR% : CL = NC% * 0.125
  62. 620  GOSUB 2310
  63. 630  LOCATE 7,1 : PRINT CL$ : LOCATE 7,3 : PRINT " 5." : LOCATE 7,11 : PRINT "Total Connector Losses:"
  64. 640  LOCATE 7,40 : PRINT CHL$ : LOCATE 7,40 : PRINT USING "###.## dB loss with";CL;: PRINT NC%;"mated connectors"
  65. 650  RETURN
  66. 660  REM -------------------
  67. 670  REM OTHER SYSTEM LOSSES
  68. 680  REM -------------------
  69. 690  LOCATE 8,1 : PRINT CL$ : LOCATE 8,3 : PRINT " 6." : LOCATE 8,14 : PRINT "Other System Losses: "
  70. 700  LOCATE 20,1 : PRINT "SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND"
  71. 710  IC = 0 : LOCATE 21,22 : INPUT "IS AN ISOCOUPLER USED (Y/N)? ",A$ : IF A$ = "y" OR A$ = "Y" THEN IC = 1 : LOCATE 21,1 : PRINT CL$ : LOCATE 21,10 : INPUT "IS THE ISOCOUPLER IN THE TRANSMITTER LINE (Y/N)? ",A$ : IF A$ = "y" OR A$ = "Y" THEN IX = IC
  72. 720  CB = 0 : LOCATE 21,1 : PRINT CL$ : LOCATE 21,22 : INPUT "IS A COMBINER USED (Y/N)? ",A$ : IF A$ = "y" OR A$ = "Y" THEN CB = 4
  73. 730  SP = 0 : LOCATE 21,1 : PRINT CL$ : LOCATE 21,22 : INPUT "IS A POWER SPLITTER USED (Y/N)? ",A$ : IF A$ = "y" OR A$ = "Y" THEN SP = 3.7
  74. 740  CR = 0 : LOCATE 21,1 : PRINT CL$ : LOCATE 21,22 : INPUT "IS A CAVITY RESONATOR USED (Y/N)? ",A$ : IF A$ = "n" OR A$ = "N" OR A$ = "" THEN GOTO 762
  75. 750  IF A$ = "y" OR A$ = "Y" THEN LOCATE 21,1 : PRINT CL$ : LOCATE 21,5 : INPUT "CAVITY RESONATOR TUNED FOR:   (A) -0.5 DB   (B) -1.0 DB  (C) -1.5 DB ?",CR$
  76. 760  IF CR$ = "a" OR CR$ = "A" THEN CR = 0.5 ELSE IF CR$ = "b" OR CR$ = "B" THEN CR = 1 ELSE IF CR$ = "c" OR CR$ = "C" THEN CR = 1.5 ELSE GOTO 750
  77. 762  OT = 0 : LOCATE 21,1 : PRINT CL$ : LOCATE 21,22 : INPUT "OTHER LOSSES IN SYSTEM (Y/N)? ",A$ : IF A$ = "n" OR A$ = "N" OR A$ = "" THEN GOTO 770
  78. 764  IF A$ = "y" OR A$ = "Y" THEN LOCATE 21,1 : PRINT CL$ : LOCATE 21,5 : INPUT "ENTER OTHER LOSSES IN DB: ",OT$ : OT = VAL(OT$) : OT = ABS(OT)
  79. 766  OX = 0 : LOCATE 21,1 : PRINT CL$ : LOCATE 21,10 : INPUT "IS THE OTHER LOSS IN THE TRANSMITTER LINE (Y/N)? ",A$ : IF A$ = "y" OR A$ = "Y" THEN OX = OT
  80. 770  GOSUB 2310
  81. 780  OL = IC + CB + SP + CR + OT
  82. 790  LOCATE 8,1 : PRINT CL$ : LOCATE 8,3 : PRINT " 6." : LOCATE 8,14 : PRINT "Other System Losses: "
  83. 800  LOCATE 8,40 : PRINT CHL$ : LOCATE 8,40 : PRINT USING "###.## dB";OL
  84. 810  RETURN
  85. 820  REM -----------------------------
  86. 830  REM CALCULATE TOTAL SYSTEM LOSSES
  87. 840  REM -----------------------------
  88. 850  LOCATE 9,40 : PRINT "SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND"
  89. 860  SL = CP + RL + XL + CL + OL
  90. 870  LOCATE 10,1 : PRINT CL$ : LOCATE 10,14 : PRINT "TOTAL SYSTEM LOSSES:" : LOCATE 10,40 : PRINT USING "###.## dB";SL
  91. 880  RETURN
  92. 890  REM ----------------
  93. 900  REM TRANSMITTER GAIN
  94. 910  REM ----------------
  95. 920  LOCATE 19,26 : PRINT "MAXIMUM TRANSMITTER POWER"
  96. 930  PRINT "SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND"
  97. 940  PRINT "Marti STL-8:   8W     Moseley PCL-505: 7W     TFT 7700: 12W     TFT 8600:   7W"
  98. 950  PRINT "Marti STL-10: 10W     Moseley PCL-600: 5W     TFT 8300: 14W     MCI PRS-10: 10W"
  99. 960  PRINT "Moseley 6010:  7W     Moseley PCL-606: 6W"
  100. 970  LOCATE 12,1 : PRINT CL$ : LOCATE 12,3 : PRINT " 7." : LOCATE 12,9 : PRINT "Transmitter Power Output: "; : LOCATE 12,40 : INPUT "",A$
  101. 980  TP = VAL(A$) : IF TP =< 0 OR TP > 15 THEN GOTO 970
  102. 990  TG = 30 + 10 * (LOG(TP) * LG)
  103. 1000  GOSUB 2310
  104. 1010  LOCATE 12,1 : PRINT CL$ : LOCATE 12,3 : PRINT " 7." : LOCATE 12,9 : PRINT "Transmitter Power Output: "
  105. 1020  LOCATE 12,40 : PRINT CHL$ : LOCATE 12,40 : PRINT USING "###.## dB gain with";TG;: PRINT TP;"Watts TPO"
  106. 1030  RETURN
  107. 1040  REM --------------------
  108. 1050  REM CHOOSE RECEIVER TYPE
  109. 1060  REM --------------------
  110. 1070  LOCATE 19,1 : PRINT "SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND"
  111. 1080  RT$(1)="Marti R-200" : RT$(2)="Marti R-10/950" : RT$(3)="Moseley PCL-505/600" : RT$(4)="Moseley PCL-505/600/C" : RT$(5)="Moseley PCL-606/6000" : RT$(6)="Moseley PCL-606/C"
  112. 1090  RT$(7)="T.F.T. 7705" : RT$(8)="T.F.T. 7707" : RT$(9)="T.F.T. 8301" : RT$(10)="T.F.T. 8601" : RT$(11)="M.C.I. PRS-10N" : RT$(12)="M.C.I. PRS-10C"
  113. 1100  I = 1 : FOR C = 1 TO 61 STEP 30 : FOR L = 20 TO 23 : LOCATE L,C : PRINT USING "##) ";I; : PRINT RT$(I) : I = I + 1 : NEXT L : NEXT C
  114. 1110  LOCATE 18,28 : INPUT "SELECT RECEIVER TYPE: ",A$ : RT% = VAL(A$) : IF RT% =< 0 OR RT% > 12 THEN 1110
  115. 1120  FOR I = 1 TO RT% : READ RT : NEXT I : RESTORE
  116. 1130  RZ = 10 ^ (RT / 20) * 223600
  117. 1140  LOCATE 18,1 : PRINT CL$ : GOSUB 2310
  118. 1150  RETURN
  119. 1160  REM ------------------------
  120. 1170  REM TRANSMITTER ANTENNA GAIN
  121. 1180  REM ------------------------
  122. 1190  LOCATE 13,1 : PRINT CL$ : LOCATE 13,3 : PRINT " 8." : LOCATE 13,9 : PRINT "Transmitter Antenna Gain: "; : GOSUB 2360
  123. 1200  GOSUB 2440 : GOSUB 2310 : XG = AG : XG$ = AZ$ : XBW$ = BW$
  124. 1210  LOCATE 13,1 : PRINT CL$ : LOCATE 13,3 : PRINT " 8." : LOCATE 13,9 : PRINT "Transmitter Antenna Gain: "
  125. 1220  LOCATE 13,40 : PRINT CHL$ : LOCATE 13,40 : PRINT USING "###.## dB gain with ";XG;: PRINT XG$
  126. 1230  RETURN
  127. 1240  REM ---------------------
  128. 1250  REM RECEIVER ANTENNA GAIN
  129. 1260  REM ---------------------
  130. 1270  LOCATE 14,1 : PRINT CL$ : LOCATE 14,3 : PRINT " 9." : LOCATE 14,12 : PRINT "Receiver Antenna Gain: "; : GOSUB 2360
  131. 1280  GOSUB 2440 : GOSUB 2310 : RG = AG : RG$ = AZ$ : RBW$ = BW$
  132. 1290  LOCATE 14,1 : PRINT CL$ : LOCATE 14,3 : PRINT " 9." : LOCATE 14,12 : PRINT "Receiver Antenna Gain: "
  133. 1300  LOCATE 14,40 : PRINT CHL$ : LOCATE 14,40 : PRINT USING "###.## dB gain with ";RG;: PRINT RG$
  134. 1310  RETURN
  135. 1320  REM --------------------
  136. 1330  REM ANTENNA PREAMPLIFIER
  137. 1340  REM --------------------
  138. 1350  LOCATE 15,1 : PRINT CL$ : LOCATE 15,3 : PRINT "10." : LOCATE 15,8 : PRINT "Antenna Preamplifier Gain: "
  139. 1360  LOCATE 19,20 : INPUT "Is an Antenna Preamplifer Used? ",A$ : LOCATE 19,1 : PRINT CL$ : IF A$ = "y" OR A$ = "Y" THEN GOTO 1380
  140. 1370  LOCATE 15,40 : PRINT CHL$ : PA = 0 : LOCATE 15,40 : PRINT " NONE USED" : RETURN
  141. 1380  LOCATE 19,20 : PRINT "Enter Preamplifier Gain in dB"
  142. 1390  LOCATE 15,40 : PRINT CHL$ : LOCATE 15,40 : INPUT "",PA$ : PA = VAL(PA$) : IF PA =< 0 THEN 1380
  143. 1400  LOCATE 19,1 : PRINT CL$
  144. 1410  LOCATE 15,1 : PRINT CL$ : LOCATE 15,3 : PRINT "10." : LOCATE 15,8 : PRINT "Antenna Preamplifier Gain: "
  145. 1420  IF PA = 0 THEN GOTO 1370 ELSE LOCATE 15,40 : PRINT CHL$ : LOCATE 15,40 : PRINT USING "###.## dB Gain";PA
  146. 1430  RETURN
  147. 1440  REM ---------------------------
  148. 1450  REM CALCULATE TOTAL SYSTEM GAIN
  149. 1460  REM ---------------------------
  150. 1470  LOCATE 16,40 : PRINT "SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND"
  151. 1480  SG = TG + XG + RG + PA
  152. 1490  LOCATE 17,1 : PRINT CL$ : LOCATE 17,15 : PRINT "TOTAL SYSTEM GAINS:" : LOCATE 17,40 : PRINT USING "###.## dB";SG
  153. 1500  RETURN
  154. 1510  REM ---------------------
  155. 1520  REM CALCULATE SYSTEM LOSS
  156. 1530  REM ---------------------
  157. 1540  SY = SG - SL
  158. 1550  SZ = 10 ^ (SY / 20) * 223600
  159. 1560  LOCATE 19,18 : PRINT "RECEIVER SIGNAL:" : LOCATE 19,40 : PRINT USING "###.## dB = ";SY; : PRINT USING "(#### uV)";SZ
  160. 1570  REM -----------------------
  161. 1580  REM MINIMUM RECEIVER SIGNAL
  162. 1590  REM -----------------------
  163. 1600  LOCATE 20,18 : L$ = "MIN " + RT$(RT%) + " SIGNAL:" : LOCATE 20,34 - LEN(L$) : PRINT L$ : LOCATE 20,40 : PRINT USING "###.## dB = ";RT; : PRINT USING "(#### uV)";RZ
  164. 1610  REM -----------
  165. 1620  REM FADE MARGIN
  166. 1630  REM -----------
  167. 1640  FM = SY - RT
  168. 1650  LOCATE 21,22 : PRINT "FADE MARGIN:" : LOCATE 21,40 : PRINT USING "###.## dB";FM
  169. 1660  REM -------------
  170. 1670  REM CALCULATE ERP
  171. 1680  REM -------------
  172. 1690  LX = XL + NL + IX + CB + OX : REM CALCULATE XMTR SYSTEM LOSSES
  173. 1700  AP = TP * (10^ (( - 1 * LX) / 10)) : PG = 10 ^ (XG / 10) : ERP = AP * PG
  174. 1710  RETURN
  175. 1720  REM --------
  176. 1730  REM SUB MENU
  177. 1740  REM --------
  178. 1750  LOCATE 23,1 : PRINT CL$ : LOCATE 23,18 : COLOR 15 : PRINT "C"; : COLOR 6 : PRINT "hange Data  -  "; : COLOR 15 : PRINT "A"; : COLOR 6 : PRINT "ntenna Data  -  "; : COLOR 15 : PRINT "M"; : COLOR 6 : PRINT "ain Menu" : COLOR 7
  179. 1760  A$ = INPUT$(1)
  180. 1770  IF A$ = "c" OR A$ = "C" THEN GOTO 2700
  181. 1780  IF A$ = "a" OR A$ = "A" THEN GOTO 1940
  182. 1790  IF A$ = "m" OR A$ = "M" THEN GOTO 1810
  183. 1800  GOTO 1760
  184. 1810  REM ---------
  185. 1820  REM MAIN MENU
  186. 1830  REM ---------
  187. 1840  GOSUB 2570
  188. 1850  LOCATE 5,1 : PRINT "1.  Enter New Data" : PRINT : PRINT "2.  Display Losses and Gains on Screen" : PRINT : PRINT "3.  Print Losses and Gains" : PRINT : PRINT "4.  Display Path Clearance on Screen" : PRINT
  189. 1855  PRINT "5.  Print Path Clearance" : PRINT : PRINT "6.  Print Path Clearance Explanation" : PRINT : PRINT "7.  Quit"
  190. 1860  LOCATE 22,32 : COLOR 15 : PRINT "SELECT NUMBER: "; : COLOR 7 : A$ = INPUT$(1)
  191. 1870  A = VAL(A$) : IF A < 1 OR A > 7 THEN 1860
  192. 1875  IF A > 1 AND A < 7 AND D = 0 THEN LOCATE 22,10 : PRINT "NO DATA ENTERED . . . . . . . PRESS ANY KEY TO CONTINUE" : A$ = INPUT$(1) : GOTO 1810
  193. 1880  ON A GOTO 2660, 1900, 2790, 3600, 4270, 3870, 1890
  194. 1890  RUN "TECHMENU"
  195. 1900  REM ----------------------------------
  196. 1910  REM DISPLAY GAINS AND LOSSES ON SCREEN
  197. 1920  REM ----------------------------------
  198. 1930  GOSUB 2570 : GOTO 2780
  199. 1940  REM ------------------------------
  200. 1950  REM DISPLAY ANTENNA DATA ON SCREEN
  201. 1960  REM ------------------------------
  202. 1970  GOSUB 2600 'PRINT SCREEN HEADER
  203. 1980  LOCATE 5,1 : PRINT "  Transmitter Power Output:      "; : PRINT USING " ##.## Watts";TP
  204. 1990  PRINT "Transmitting System Losses:      "; : PRINT USING " ##.## Watts"; TP - AP; : PRINT USING " (##.## dB)";LX
  205. 2000  PRINT "       Antenna Input Power:      "; : PRINT USING "###.## Watts";AP
  206. 2010  PRINT "        Antenna Power Gain:      "; : PRINT USING "###.## Gain for ";PG; : PRINT XG$; " Antenna"
  207. 2020  PRINT "  Effective Radiated Power:     "; : PRINT USING "####.## Watts";ERP
  208. 2030  PRINT
  209. 2040  PRINT "              Antenna Gain:      "; : PRINT USING "###.## dBI for ";XG; : PRINT XG$; " Antenna"
  210. 2050  PRINT "        Antenna Beam Width:       "; : PRINT XBW$
  211. 2060  PRINT
  212. 2070  IF IC THEN PRINT TAB(35); : PRINT USING "* ##.##  dB Loss in Isocoupler";IC
  213. 2080  IF CB THEN PRINT TAB(35); : PRINT USING "* ##.##  dB Loss in Combiner";CB
  214. 2090  IF SP THEN PRINT TAB(35); : PRINT USING "* ##.##  dB Loss in Power Splitter";SP
  215. 2100  IF CR THEN PRINT TAB(35); : PRINT USING "* ##.##  dB Loss in Cavity Resonator";CR
  216. 2105  IF OT THEN PRINT TAB(35); : PRINT USING "* ##.##  dB Loss (Other Losses)";OT
  217. 2110  LOCATE 23,28 : COLOR 15 : PRINT "Press Any Key for Menu" : COLOR 7 : A$ = INPUT$(1) : GOTO 1810
  218. 2120  END
  219. 2130  REM -------------------
  220. 2140  REM LINE SELECTION MENU
  221. 2150  REM -------------------
  222. 2160  LOCATE 20, 1 : PRINT "SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND"
  223. 2170  PRINT "1. RG-8/U    3. 1/2";Q$;" Foam    5. 1-1/4";Q$;" Foam    7. 1/2";Q$;" Air    9. 1-5/8";Q$;" AIR"
  224. 2180  PRINT "2. RG-21B/U  4. 7/8";Q$;" Foam    6. 1-5/8";Q$;" Foam    8. 7/8";Q$;" Air"
  225. 2190  PRINT "SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND"
  226. 2200  LOCATE 19,31 : INPUT "SELECT LINE SIZE: ",A$
  227. 2210  LA = VAL(A$) : IF LA =< 0 OR LA > 9 THEN GOTO 2200
  228. 2220  IF LA = 1 THEN LA = 8.5 : L$ = "RG-8/U"
  229. 2230  IF LA = 2 THEN LA = 3.8 : L$ = "RG-21B/U"
  230. 2240  IF LA = 3 THEN LA = 2.34 : L$ = "1/2" + Q$ + " Foam"
  231. 2250  IF LA = 4 THEN LA = 1.31 : L$ = "7/8" + Q$ + " Foam"
  232. 2255  IF LA = 5 THEN LA = 0.967 : L$ = "1-1/4" + Q$ + " Foam"
  233. 2260  IF LA = 6 THEN LA = 0.819 : L$ = "1-5/8" + Q$ + " Foam"
  234. 2270  IF LA = 7 THEN LA = 2.65 : L$ = "1/2" + Q$ + " Air"
  235. 2280  IF LA = 8 THEN LA = 1.27 : L$ = "7/8" + Q$ + " Air"
  236. 2290  IF LA = 9 THEN LA = 0.7 : L$ = "1-5/8" + Q$ + " Air"
  237. 2300  LA = (LA / 100) * LL%
  238. 2310  REM --------------
  239. 2320  REM CLEAR SUB MENU
  240. 2330  REM --------------
  241. 2340  LOCATE 19,1 : FOR I = 1 TO 5 : PRINT CL$ : NEXT I
  242. 2350  RETURN
  243. 2360  REM -----------------
  244. 2370  REM ANTENNA GAIN MENU
  245. 2380  REM -----------------
  246. 2390  LOCATE 20,1 : PRINT "SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND"
  247. 2400  PRINT "A. P-948 4 ft   C. P-996 8 ft     E. MG-944 MINIGRID      G. MF-960 MINIFLECTOR"
  248. 2410  PRINT "B. P-972 6 ft   D. P-9120 10 ft   F. PR-450 PARAFLECTOR   H. SH-872 SHORT HAUL"
  249. 2420  PRINT "SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND"
  250. 2430  RETURN
  251. 2440  LOCATE 19,1 : PRINT CL$ : LOCATE 19,29 : INPUT "SELECT ANTENNA TYPE: ",A$
  252. 2450  IF A$ = "a" OR A$ = "A" THEN AZ$ = "P-9A48G 4-foot" : AG = 19.1 : BW$ = "17.5 Degrees" : RETURN
  253. 2460  IF A$ = "b" OR A$ = "B" THEN AZ$ = "P-9A72G 6-foot" : AG = 22.6 : BW$ = "11.1 Degrees" : RETURN
  254. 2470  IF A$ = "c" OR A$ = "C" THEN AZ$ = "P-9A96G 8-foot" : AG = 25.1 : BW$ = "8.7 Degrees" : RETURN
  255. 2480  IF A$ = "d" OR A$ = "D" THEN AZ$ = "P-9A126G 10-foot" : AG = 27 : BW$ = "7 Degrees" : RETURN
  256. 2490  IF A$ = "e" OR A$ = "E" THEN AZ$ = "MG-944 Minigrid" : AG = 13.5 : BW$ = "18 Degrees" : RETURN
  257. 2500  IF A$ = "f" OR A$ = "F" THEN AZ$ = "PR-450 Paraflector" : AG = 18 : BW$ = "Hor: 12 Deg & Ver: 24 Deg" : RETURN
  258. 2510  IF A$ = "g" OR A$ = "G" THEN AZ$ = "MR-960 Miniflector" : AG = 14 : BW$ = "16 Degrees" : RETURN
  259. 2520  IF A$ = "h" OR A$ = "H" THEN AZ$ = "SH-872 Short Haul" : AG = 19 : BW$ = "13 Degrees Horizontal" : RETURN
  260. 2530  GOTO 2440
  261. 2540  REM --------------
  262. 2550  REM SCREEN HEADERS
  263. 2560  REM --------------
  264. 2570  CLS : COLOR 7,0 : KEY OFF
  265. 2580  PRINT "THENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHEN   S T L   P R O G R A M   THENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHEN"
  266. 2590  RETURN
  267. 2600  CLS : COLOR 7,0 : KEY OFF
  268. 2610  PRINT "THENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHEN   A N T E N N A   D A T A  THENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHEN"
  269. 2620  RETURN
  270. 2630  CLS : COLOR 7,0 : KEY OFF
  271. 2640  PRINT "THENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHEN   P A T H   C L E A R A N C E   THENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHEN"
  272. 2650  RETURN
  273. 2660  REM --------------
  274. 2670  REM ENTER NEW DATA
  275. 2680  REM --------------
  276. 2690  GOSUB 2570 : GOSUB 160 : GOSUB 310 : GOSUB 410 : GOSUB 510 : GOSUB 660 : GOSUB 820 : GOSUB 890 : GOSUB 1040 : GOSUB 1160 : GOSUB 1240 : GOSUB 1320 : GOSUB 1440 : GOSUB 1510 : GOTO 1720
  277. 2700  REM ------------
  278. 2710  REM MAKE CHANGES
  279. 2720  REM ------------
  280. 2730  LOCATE 23,1 : PRINT CL$ : LOCATE 23,27 : INPUT "Change Which Number? ",A$
  281. 2740  A = VAL(A$) : IF A < 1 OR A > 10 THEN 2730
  282. 2750  GOSUB 2310
  283. 2760  ON A GOSUB 160, 160, 310, 410, 510, 660, 890, 1160, 1240, 1320 : REM SELECT CHANGE NUMBER
  284. 2770  IF A = 7 THEN GOSUB 1040
  285. 2780  GOSUB 220 : GOSUB 380 : GOSUB 480 : GOSUB 630 : GOSUB 790 : GOSUB 820 : GOSUB 1010 : GOSUB 1210 : GOSUB 1290 : GOSUB 1410 : GOSUB 1440 : GOSUB 1510 : GOTO 1720
  286. 2790  REM -------------------------------------
  287. 2800  REM SEND LOSSES AND GAINS DATA TO PRINTER
  288. 2810  REM -------------------------------------
  289. 2815  FOR I = 3 TO 23 : LOCATE I,1 : PRINT CL$ : NEXT I
  290. 2820  GOSUB 4730
  291. 2830  WIDTH "lpt1:",90 + T
  292. 2840  LPRINT PITCH$; BOLD$;
  293. 2850  N$ = "STL DATA PREPARED FOR: " + NM$ : TB = INT (T + 40 - LEN(N$) / 2) : LPRINT TAB(TB) N$
  294. 2860  LPRINT TAB(T) "_______________________________________________________________________________" : LPRINT
  295. 2870  LPRINT TAB(T) " 1.          Path Distance:      "; : LPRINT USING "###.#  Miles";D
  296. 2880  LPRINT TAB(T) " 2.        Clear Path Loss:      "; : LPRINT USING "###.## dB";CP; : LPRINT USING " (Grazing Path Loss: ###.# dB)";GP
  297. 2890  LPRINT TAB(T) " 3.  Transmitter Line Loss:      "; : LPRINT USING "###.## dB loss w/";XL;: LPRINT XL%;"ft. of ";XL$
  298. 2900  LPRINT TAB(T) " 4.     Receiver Line Loss:      "; : LPRINT USING "###.## dB loss w/";RL;: LPRINT RL%;"ft. of ";RL$
  299. 2910  LPRINT TAB(T) " 5. Total Connector Losses:      "; : LPRINT USING "###.## dB with";CL;: LPRINT NC%;"mated connectors"
  300. 2920  LPRINT TAB(T) " 6.    Other System Losses: *    "; : LPRINT USING "###.## dB";OL
  301. 2930  LPRINT TAB(T) "                                 ----------------------------------------------"
  302. 2940  LPRINT TAB(T) "       TOTAL SYSTEM LOSSES:      "; : LPRINT USING "###.## dB";SL
  303. 2950  LPRINT : LPRINT
  304. 2960  LPRINT TAB(T) " 7. Transmitter Pwr Output:      "; : LPRINT USING "###.## dB gain with";TG;: LPRINT TP;"Watts TPO"
  305. 2970  LPRINT TAB(T) " 8.   Transmitting Antenna:      "; : LPRINT USING "###.## dB gain with ";XG;: LPRINT XG$
  306. 2980  LPRINT TAB(T) " 9.      Receiving Antenna:      "; : LPRINT USING "###.## dB gain with ";RG;: LPRINT RG$
  307. 2990  IF PA <> 0 THEN LPRINT TAB(T) "10.   Antenna Preamplifier:      "; : LPRINT USING "###.## dB gain";PA
  308. 3000  LPRINT TAB(T) "                                 ----------------------------------------------"
  309. 3010  LPRINT TAB(T) "        TOTAL SYSTEM GAINS:      "; : LPRINT USING "###.## dB";SG
  310. 3020  LPRINT : LPRINT
  311. 3030  LPRINT TAB(T) "           RECEIVER SIGNAL:      "; : LPRINT USING "###.## dB = ";SY; : LPRINT USING "(#### uV)";SZ
  312. 3040  LPRINT TAB(T) "            MINIMUM SIGNAL:      "; : LPRINT USING "###.## dB = ";RT; : LPRINT USING "(#### uV)";RZ; : LPRINT " for "; RT$(RT%); " Rcvr"
  313. 3050  LPRINT TAB(T) "               FADE MARGIN:      "; : LPRINT USING "###.## dB";FM
  314. 3060  LPRINT : LPRINT
  315. 3070  LPRINT TAB(T) "  Transmitter Power Output:      "; : LPRINT USING " ##.## Watts";TP
  316. 3080  LPRINT TAB(T) "Transmitting System Losses:      "; : LPRINT USING " ##.## Watts"; TP - AP; : LPRINT USING " (##.## dB)";LX
  317. 3090  LPRINT TAB(T) "       Antenna Input Power:      "; : LPRINT USING "###.## Watts";AP
  318. 3100  LPRINT TAB(T) "        Antenna Power Gain:      "; : LPRINT USING "###.## Gain for ";PG; : LPRINT XG$; " Antenna"
  319. 3110  LPRINT TAB(T) "  Effective Radiated Power:     "; : LPRINT USING "####.## Watts";ERP
  320. 3120  LPRINT TAB(T) "              Antenna Gain:      "; : LPRINT USING "###.## dBI for ";XG; : LPRINT XG$; " Antenna"
  321. 3130  LPRINT TAB(T) "        Antenna Beam Width:       "; : LPRINT XBW$
  322. 3140  LPRINT : LPRINT
  323. 3150  IF IC THEN LPRINT TAB(T+35); : LPRINT USING "* ##.##  dB Loss in Isocoupler";IC
  324. 3160  IF CB THEN LPRINT TAB(T+35); : LPRINT USING "* ##.##  dB Loss in Combiner";CB
  325. 3170  IF SP THEN LPRINT TAB(T+35); : LPRINT USING "* ##.##  dB Loss in Power Splitter";SP
  326. 3180  IF CR THEN LPRINT TAB(T+35); : LPRINT USING "* ##.##  dB Loss in Cavity Resonator";CR
  327. 3185  IF OT THEN LPRINT TAB(T+35); : LPRINT USING "* ##.##  dB Loss in Other Losses";OT
  328. 3190  LPRINT FORMFEED$
  329. 3200  GOTO 1810
  330. 3210  REM -----------------------------------------
  331. 3220  REM ENTER EARTH CURVATURE & FRESNEL ZONE DATA
  332. 3230  REM         AND DISPLAY TO SCREEN
  333. 3240  REM -----------------------------------------
  334. 3250  GOSUB 2630 : LOCATE 3,1
  335. 3260  PRINT "To determine the correct path height necessary to clear obstructions along the"
  336. 3270  PRINT "microwave path, at least two factors must be determined which are:"
  337. 3280  PRINT
  338. 3290  PRINT "            1. EARTH CURVATURE              2. FRESNEL ZONE RADIUS"
  339. 3300  PRINT
  340. 3310  PRINT "EARTH CURVATURE:"
  341. 3320  PRINT "The Earth Curvature Constant is expressed as K with TRUE EARTH CURVATURE as the"
  342. 3330  PRINT "reference (K = 1).  The RADIO HORIZON is expressed as 4/3rd of true earth curv-"
  343. 3340  PRINT "ature (K = 4/3) and is the most commonly used constant.  However, atmospheric &"
  344. 3350  PRINT "climatic conditions may require earth curvatures of 1 (true earth) or 2/3rds."
  345. 3360  PRINT
  346. 3370  PRINT "FRESNEL ZONE:"
  347. 3380  PRINT "Clearance of at least 60% of the first fresnel zone is usually necessary for a"
  348. 3390  PRINT "clear path.  Three fresnel zones are used in this program: (1.0F, 0.6F & 0.3F)."
  349. 3400  PRINT
  350. 3410  PRINT "EXAMPLES:    No Temperature Inversions (Rocky Mountains) ...... K = 4/3    0.6F"
  351. 3420  PRINT "             Some Light Standard Fog (Plains & N.E. States) ... K = 4/3    1.0F"
  352. 3430  PRINT "             Surface Layers & Ground Fog (Coastal Areas) ...... K = 1      0.6F"
  353. 3440  PRINT "             Ducting Fog & Over Water (Coastal & Gulf States) . K = 2/3    0.3F"
  354. 3450  LOCATE 23,7 : COLOR 15 : PRINT "Select Earth Curvature:   (A) K = 4/3   (B) K = 1   (C) K = 2/3" : COLOR 7 : A$ = INPUT$(1)
  355. 3460  IF A$ = "a" OR A$ = "A" THEN K = 1 : K$ = "4/3rds Earth Curvature" : GOTO 3500
  356. 3470  IF A$ = "b" OR A$ = "B" THEN K = 2 : K$ = "True Earth Curvature" : GOTO 3500
  357. 3480  IF A$ = "c" OR A$ = "C" THEN K = 2 : K$ = "True Earth Curvature" : GOTO 3500
  358. 3490  GOTO 3450
  359. 3500  LOCATE 23,1 : PRINT CL$
  360. 3510  LOCATE 23,3 : COLOR 15 : PRINT "Select Fresnel Zone Clearance:   (A) F = 1.0   (B) F = 0.6   (C) F = 0.3" : COLOR 7 : A$ = INPUT$(1)
  361. 3520  IF A$ = "a" OR A$ = "A" THEN E = 1 : F$ = "1.0 of First Fresnel Zone" : RETURN
  362. 3530  IF A$ = "b" OR A$ = "B" THEN E = 2 : F$ = "0.6 of First Fresnel Zone" : RETURN
  363. 3540  IF A$ = "c" OR A$ = "C" THEN E = 2 : F$ = "0.3 of First Fresnel Zone" : RETURN
  364. 3550  GOTO 3510
  365. 3560  REM ------------------------------------------------
  366. 3570  REM     DISPLAY PATH CLEARANCE INFO TO SCREEN
  367. 3580  REM ENTER EARTH CURVATURE AND FRESNEL ZONE CONSTANTS
  368. 3590  REM ------------------------------------------------
  369. 3600  GOSUB 3210 : GOSUB 2630 : LOCATE 3,1
  370. 3610  PRINT "PATH CLEARANCE DATA will be displayed in 1/2 mile intervals.  All three earth"
  371. 3620  PRINT "curvatures (4/3, 1/1, & 2/3), all three fresnel zone radii (1.0, 0.6, & 0.3),"
  372. 3630  PRINT "and the total of the two constants selected are displayed in columns."
  373. 3640  PRINT
  374. 3650  PRINT "To use this data you must first construct a TERRAIN PROFILE on graph paper."
  375. 3660  PRINT "Special earth curvature graph paper is NOT necessary.  Use ordinary straight"
  376. 3670  PRINT "line graph paper and plot terrain altitude vs. distance from topographical maps"
  377. 3680  PRINT "such as U.S. Geological Survey Maps.  Plot the altitude of the STL transmitting"
  378. 3690  PRINT "and receiving antennas and draw a straight line between them.  Height between"
  379. 3700  PRINT "the plotted terrain and the straight line cannot exceed the total (last column)."
  380. 3710  LOCATE 23,12 : COLOR 15 : PRINT "Press Any Key to Display Data - Press ESC Key to Pause" : COLOR 7 : GOSUB 4410 : A$ = INPUT$(1)
  381. 3720  REM --------------------------------
  382. 3730  REM DISPLAY PATH CLEARANCE ON SCREEN
  383. 3740  REM --------------------------------
  384. 3750  CLS : COLOR 1,7 : LOCATE 25,1 : PRINT " MILES  4/3 K    1/1 K    2/3 K    1.0 F    0.6 F    0.3 F    TOTAL           "; : COLOR 7,0
  385. 3760  LOCATE 24,1 : PRINT CL$
  386. 3770  FOR I = 0 TO J
  387. 3780  PRINT USING "##.#";D(I); : PRINT TAB(9); : PRINT USING "###";H(1,I); : PRINT TAB(18); : PRINT USING "###";H(2,I); : PRINT TAB(27) : PRINT USING "###";H(3,I);
  388. 3790  PRINT TAB(36); : PRINT USING "###";F(1,I); : PRINT TAB(45); : PRINT USING "###";F(2,I); : PRINT TAB(54) : PRINT USING "###";F(3,I);
  389. 3800  PRINT TAB(63); : PRINT USING "### ft.";FT(I)
  390. 3810  PAUSE$ = INKEY$
  391. 3820  IF PAUSE$ = CHR$(27) THEN GOSUB 4590
  392. 3830  NEXT I
  393. 3840  PRINT
  394. 3850  COLOR 15 : PRINT TAB(19) "Press Any Key to Return to the Menu" : COLOR 7 : PRINT : A$ = INPUT$(1)
  395. 3860  GOTO 1810
  396. 3870  REM ------------------------------------------------------------
  397. 3880  REM SEND EARTH CURVATURE & FRESNEL ZONE INFO AND DATA TO PRINTER
  398. 3890  REM ------------------------------------------------------------
  399. 3910  FOR I = 3 TO 23 : LOCATE I,1 : PRINT CL$ : NEXT I
  400. 3920  GOSUB 4770
  401. 3930  WIDTH "lpt1:",80 + T
  402. 3940  LPRINT PITCH$; BOLD$; TAB(28 + T) "EXPLAINATION OF STL DATA"; CLBOLD$
  403. 3950  LPRINT
  404. 3960  LPRINT TAB(T) "To determine the correct path height necessary to clear obstructions along the"
  405. 3970  LPRINT TAB(T) "microwave path, at least two factors must be determined which are:"
  406. 3980  LPRINT
  407. 3990  LPRINT TAB(T) "            1. EARTH CURVATURE              2. FRESNEL ZONE RADIUS"
  408. 4000  LPRINT
  409. 4010  LPRINT TAB(T) "EARTH CURVATURE:"
  410. 4020  LPRINT TAB(T) "The Earth Curvature Constant is expressed as K with TRUE EARTH CURVATURE as the"
  411. 4030  LPRINT TAB(T) "reference (K = 1).  The RADIO HORIZON is expressed as 4/3rd of true earth curv-"
  412. 4040  LPRINT TAB(T) "ature (K = 4/3) and is the most commonly used constant.  However, atmospheric &"
  413. 4050  LPRINT TAB(T) "climatic conditions may require earth curvatures of 1 (true earth) or 2/3rds."
  414. 4060  LPRINT
  415. 4070  LPRINT TAB(T) "FRESNEL ZONE:"
  416. 4080  LPRINT TAB(T) "Clearance of at least 60% of the first fresnel zone is usually necessary for a"
  417. 4090  LPRINT TAB(T) "clear path.  Three fresnel zones are used in this program: (1.0F, 0.6F & 0.3F)."
  418. 4100  LPRINT
  419. 4110  LPRINT TAB(T) "EXAMPLES:    No Temperature Inversions (Rocky Mountains) ...... K = 4/3    0.6F"
  420. 4120  LPRINT TAB(T) "             Some Light Standard Fog (Plains & N.E. States) ... K = 4/3    1.0F"
  421. 4130  LPRINT TAB(T) "             Surface Layers & Ground Fog (Coastal Areas) ...... K = 1      0.6F"
  422. 4140  LPRINT TAB(T) "             Ducting Fog & Over Water (Coastal & Gulf States) . K = 2/3    0.3F"
  423. 4150  LPRINT
  424. 4160  LPRINT TAB(T) "PATH CLEARANCE DATA will be displayed in 1/2 mile intervals.  All three earth"
  425. 4170  LPRINT TAB(T) "curvatures (4/3, 1/1, & 2/3), all three fresnel zone radii (1.0, 0.6, & 0.3),"
  426. 4180  LPRINT TAB(T) "and the total of the two constants selected are displayed in columns."
  427. 4190  LPRINT
  428. 4200  LPRINT TAB(T) "To use this data you must first construct a TERRAIN PROFILE on graph paper."
  429. 4210  LPRINT TAB(T) "Special earth curvature graph paper is NOT necessary.  Use ordinary straight"
  430. 4220  LPRINT TAB(T) "line graph paper and plot terrain altitude vs. distance from topographical maps"
  431. 4230  LPRINT TAB(T) "such as U.S. Geological Survey Maps.  Plot the altitude of the STL transmitting"
  432. 4240  LPRINT TAB(T) "and receiving antennas and draw a straight line between them.  Height between"
  433. 4250  LPRINT TAB(T) "the plotted terrain and the straight line cannot exceed the total (last column)."
  434. 4260  LPRINT FORMFEED$
  435. 4265  GOTO 1810
  436. 4270  REM --------------------------------
  437. 4280  REM SEND PATH HEIGHT DATA TO PRINTER
  438. 4290  REM --------------------------------
  439. 4300  GOSUB 3210 : FOR I = 3 TO 23 : LOCATE I,1 : PRINT CL$ : NEXT I : GOSUB 4770 : WIDTH "lpt1:",80 + T
  440. 4310  GOSUB 4410
  441. 4320  LPRINT BOLD$; PITCH$: LPRINT TAB(T) " MILES  4/3 K    1/1 K    2/3 K    1.0 F    0.6 F    0.3 F       TOTAL"
  442. 4330  LPRINT TAB(T) "------ -----    -----    -----    -----    -----    -----     ---------"
  443. 4340  FOR I = 0 TO J
  444. 4350  LPRINT TAB(T) : LPRINT USING "##.#";D(I); : LPRINT TAB(T + 9); : LPRINT USING "###";H(1,I); : LPRINT TAB(T + 18); : LPRINT USING "###";H(2,I); : LPRINT TAB(T + 27) : LPRINT USING "###";H(3,I);
  445. 4360  LPRINT TAB(T + 36); : LPRINT USING "###";F(1,I); : LPRINT TAB(T + 45); : LPRINT USING "###";F(2,I); : LPRINT TAB(T + 54) : LPRINT USING "###";F(3,I);
  446. 4370  LPRINT TAB(T + 63); : LPRINT USING "### ft.";FT(I)
  447. 4380  NEXT I
  448. 4385  LPRINT : LPRINT TAB(T); "Total Is Sum of "; K$; " and "; F$; "."
  449. 4390  LPRINT FORMFEED$
  450. 4400  GOTO 1810
  451. 4410  REM --------------------------------------------
  452. 4420  REM CALCULATE PATH HEIGHT AND FRESNEL ZONE RADII
  453. 4430  REM --------------------------------------------
  454. 4440  J = INT (D/0.5)
  455. 4450  FOR I = 0 TO J : D(I) = I * 0.5 '1/2 Mile Segments
  456. 4460  DD1 =  D(I) : DD2 = D - D(I) : DD = DD1 * DD2
  457. 4470  H(1,I) = DD / (1.5 * (4 / 3))
  458. 4480  H(2,I) = DD / (1.5)
  459. 4490  H(3,I) = DD / (1.5 * (2 / 3))
  460. 4500  FZ = 72.1 * SQR (D(I) * (D - D(I)) / (0.95 * D))
  461. 4510  F(1,I) = FZ
  462. 4520  F(2,I) = 0.6 * FZ
  463. 4530  F(3,I) = 0.3 * FZ
  464. 4540  FT(I) = H(K,I) + F(E,I)
  465. 4550  IF FLAG THEN FLAG = 0 : RETURN
  466. 4560  NEXT I
  467. 4570  IF D > D(I) THEN : D(I) = D : J = J + 1 : FLAG = 1 : GOTO 4460
  468. 4580  RETURN
  469. 4590  REM ---------------------------------------------
  470. 4600  REM SUB-ROUTINE TO PAUSE PATH CLEARANCE SCROLLING
  471. 4610  REM ---------------------------------------------
  472. 4620  START$ = INKEY$
  473. 4630  IF START$ = CHR$(27) THEN RETURN
  474. 4640  GOTO 4620
  475. 4650  REM ---------------------------------------------------------
  476. 4660  REM PRINTER CODES FOR 12 PITCH, BOLD PRINT, NORMAL PRINT
  477. 4670  REM FOR BROTHER/DYNEX (DIABLO), IBM QUIETWRITER, EPSON, TANDY
  478. 4680  REM ---------------------------------------------------------
  479. 4690  PITCH$ = CHR$(27) + CHR$(31) + CHR$(11) : BOLD$ = CHR$(27) + CHR$(87) : NORMAL$ = CHR$(27) + CHR$(38) : RETURN 'Printer Codes for Brother/Dynex (Diablo)
  480. 4700  PITCH$ = CHR$(27) + CHR$(58) : BOLD$ = CHR$(27) + CHR$(71) : NORMAL$ = CHR$(27) + CHR$(72) : RETURN 'Printer Codes for IBM QuietWriter
  481. 4710  PITCH$ = CHR$(27) + CHR$(80) : BOLD$ = CHR$(69) : NORMAL$ = CHR$(70) : RETURN 'Printer Codes for Epson
  482. 4720  PITCH$ = CHR$(27) + CHR$(14) : BOLD$ = CHR$(15) : NORMAL$ = CHR$(14) : RETURN 'Printer Codes for Tandy Daisy Wheel Printer II (BOLD$ is Underlining for Tandy)
  483. 4725  PITCH$ = CHR$(27) + CHR$(40) + CHR$(115) + CHR$(49) + CHR$(53) + CHR$(72): BOLD$ = CHR$(27) + CHR$(40) + CHR$(115) + CHR$(51) + CHR$(66) :LPI$ = CHR$(27) + CHR$(38) + CHR$(108) + CHR$(56) + CHR$(68)
  484. 4727  NORMAL$ = CHR$(27) + CHR$(40) + CHR$(115) + CHR$(49) + CHR$(48) + CHR$(72) + CHR$(27) + CHR$(40) + CHR$(115) + CHR$(48) + CHR$(66) + CHR$(27) + CHR$(38) + CHR$(108) + CHR$(54) + CHR$(68): RETURN 'Printer Codes for LaserJet
  485. 4730  REM ------------------
  486. 4740  REM INITIALIZE PRINTER
  487. 4750  REM ------------------
  488. 4760  LOCATE 18,1 : PRINT CL$ : LOCATE 18,21 : PRINT "Enter Name of Station or Company: "; : LINE INPUT ""; NM$
  489. 4770  LOCATE 18,1 : PRINT CL$ : LOCATE 18,1 : COLOR 5 : PRINT "Number of Characters in Lefthand Margin (12 Characters/Inch): "; : COLOR 7 : INPUT "", TB$ : T = VAL (TB$) : IF T < 1 THEN BEEP : GOTO 4770
  490. 4780  LOCATE 18,1 : PRINT CL$ : LOCATE 18,1 : COLOR 5 : PRINT "Enter Number of Lines in Top Margin (6 Lines per Inch): "; : COLOR 7 : INPUT "", TM$ : TM = VAL (TM$)
  491. 4790  LOCATE 18,1 : PRINT CL$ : LOCATE 18,1 : COLOR 5 : PRINT "Printer: (1)-Brother/Diablo (2)-QuietWriter (3)-Epson (4)-Tandy (5)-LaserJet "; : COLOR 7 : INPUT "", PT$ : PT = VAL (PT$) : IF PT < 1 OR PT > 5 THEN BEEP : GOTO 4790
  492. 4795  ON PT GOSUB 4690, 4700, 4710, 4720, 4725
  493. 4800  LOCATE 18,1 : PRINT CL$ : LOCATE 18,4 : COLOR 7 : PRINT "PREPARE PRINTER - PRESS <ESC> ABORT or ANY OTHER KEY TO START PRINTING"; : A$ = INPUT$(1) : IF A$ = CHR$(27) THEN LOCATE 21,1 : PRINT CL$ : GOTO 1810
  494. 4810  IF TM < 1 THEN GOTO 4820 ELSE FOR I = 1 TO TM : LPRINT : NEXT I
  495. 4820  RETURN
  496.