home *** CD-ROM | disk | FTP | other *** search
/ Antennas / Antennas_CD-ROM_Walnut_Creek_September_1996.iso / w4mb / vol2 / basic / wgdt.asc < prev    next >
Text File  |  1996-06-30  |  23KB  |  508 lines

  1. 2 ON ERROR GOTO 60000
  2. 3 CLS
  3. 10 PRINT " ***************************************************************"
  4. 20 PRINT " *                       WAVEGUIDE DATA                        *"
  5. 30 PRINT " *     REFERENCE- MORENO, MICROWAVE TRANSMISSION DESIGN DATA   *"
  6. 40 PRINT " *            ITT, REFERENCE DATA FOR RADIO ENGINEERS          *"
  7. 50 PRINT " *                PROGRAM BY  R.P. HAVILAND, W4MB              *"
  8. 60 PRINT " *                       COPYRGHT 1990                         *"
  9. 70 PRINT " *          MINILAB BOOKS, DAYTONA BEACH, FL 32121-1086        *"
  10. 80 PRINT " ***************************************************************"
  11. 90 DEF FNP (X) = INT(100 * X + .5) / 100
  12. 100 PI = 3.141592
  13. 110 DIM MODE$(25), UCON(25), RTABL(5, 18), CTABL(2, 13)
  14. 120 PRINT " THIS PROGRAM ASSUMES USE OF COMMERCIAL PIPE FOR DESIGNS,"
  15. 130 PRINT "  WITH THE NEAREST EIA AND MIL TYPES BEING INDICATED."
  16. 140 PRINT " DESIGNS ARE USUALLY BASED ON THE DOMINANT PROPAGATION MODES,"
  17. 150 PRINT "  TE01 FOR RECTANGULAR AND TE11 FOR CIRCULAR GUIDE."
  18. 160 PRINT "   ROUTINE 11 ALLOWS CHANGE OF MODES AND"
  19. 170 PRINT "    ROUTINES 6 AND 11 CHANGE OF GUIDE SIZE."
  20. 200 FOR N = 1 TO 25
  21. 210 READ MODE$(N)
  22. 220 NEXT N
  23. 230 FOR N = 1 TO 25
  24. 240 READ UCON(N)
  25. 250 NEXT N
  26. 260 FOR N = 1 TO 18
  27. 270 FOR M = 1 TO 5
  28. 280 READ RTABL(M, N)
  29. 290 NEXT M
  30. 300 NEXT N
  31. 310 FOR N = 1 TO 13
  32. 320 FOR M = 1 TO 2
  33. 330 READ CTABL(M, N)
  34. 340 NEXT M
  35. 350 NEXT N
  36. 400 PRINT " ENTER DESIGN CENTER FREQUENCY, MHZ";
  37. 410 IF FO <> 0 THEN PRINT ", 0=NO CHANGE"
  38. 420 INPUT FTEM
  39. 430 IF FTEM < 320 OR FTEM > 33000! THEN PRINT " BEYOND RANGE OF TABLES": GOTO 400
  40. 440 IF FTEM <> 0 THEN FO = FTEM
  41. 450 LAM = 29980 / FO: LAMIN = LAM / 2.54'CM,IN
  42. 460 PRINT " WAVELENGTH IN AIR ="; FNP(LAM); "CM"
  43. 470 PRINT "                   ="; FNP(LAMIN); "INCHES"
  44. 480 INPUT "  ENTER GUIDE TYPE, R=RECTANGULAR, C=CIRCULAR"; TG$
  45. 490 IF TG$ <> "R" AND TG$ <> "C" THEN 430
  46. 500 TN = 1
  47. 510 IF TG$ = "C" THEN 550
  48. 520 IF TN > 18 THEN PRINT "BEST SIZE IS BEYOND TABLES": TN = 18: GOTO 540
  49. 530 IF LAMIN < RTABL(2, TN) THEN TN = TN + 1: GOTO 520
  50. 540 ADIM = RTABL(2, TN) - 2 * RTABL(3, TN): BDIM = RTABL(1, TN) - 2 * RTABL(3, TN): GOTO 580
  51. 550 IF TN > 13 THEN PRINT "BEST SIZE IS BEYOND TABLES:TN=13:GOTO 570"
  52. 560 IF LAMIN < CTABL(1, TN) / 2 THEN TN = TN + 1: GOTO 550
  53. 570 RAD = CTABL(1, TN) / 2 - CTABL(2, TN)
  54. 580 IF TG$ = "R" THEN PRINT " DESIGN GUIDE ="; BDIM; "BY"; ADIM; "INCHES, INSIDE"
  55. 590 IF TG$ = "C" THEN PRINT " DESIGN GUIDE RADIUS="; RAD; "INCHES, INSIDE"
  56. 600 INPUT "   ENTER MODE VALUES, M,N: 0,0 SETS DOMINANT MODE"; MMODE, NMODE
  57. 610 IF MMODE > 0 OR NMODE > 0 THEN 640
  58. 620 IF TG$ = "R" THEN MMODE = 1: NMODE = 0: MODT$ = "E"
  59. 630 IF TG$ = "C" THEN MMODE = 1: NMODE = 1: MODT$ = "E"
  60. 640 PRINT
  61. 800 PRINT "    THE FOLLOWING ROUTINES ARE AVAILABLE"
  62. 810 PRINT "            1- ATTENUATION"
  63. 820 PRINT "            2- BELOW-CUTOFF ATTENUATION"
  64. 830 PRINT "            3- BENDS IN GUIDES"
  65. 840 PRINT "            4- WINDOWS"
  66. 850 PRINT "            5- CUTOFF, ETC"
  67. 860 PRINT "            6- DIMENSION TABLE"
  68. 870 PRINT "            7- UNITS  CONVERT"
  69. 880 PRINT "            8- COUPLING IRISES"
  70. 890 PRINT "            9- POWER CAPACITY"
  71. 900 PRINT "           10- RESONATORS"
  72. 910 PRINT "           11- CHANGE PARAMATERS"
  73. 920 PRINT "           12- QUIT"
  74. 930 INPUT " ENTER ROUTINE TO USE"; RS
  75. 940 ON RS GOSUB 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000, 11000, 64000
  76. 950 CLS
  77. 960 GOTO 800
  78. 1000 CLS
  79. 1010 IF LGIN = 0 THEN PRINT " DO CUTOFF FIRST": GOSUB 5200
  80. 1020 IF TG$ = "C" THEN 1100
  81. 1030 IF MODT$ = "M" THEN 1070
  82. 1040 IF NMODE = 0 THEN GOTO 1200
  83. 1050 IF MMODE = 1 THEN GOTO 1300
  84. 1060 PRINT " BEYOND PROVIDED CALCULATION RANGE": GOTO 1990
  85. 1070 IF MMODE = 0 THEN GOTO 1200
  86. 1080 IF NMODE = 1 AND MMODE = 1 THEN GOTO 1400
  87. 1090 PRINT " BEYOND PROVIDED CALCULATION RANGE": GOTO 1990
  88. 1100 IF MODT$ = "M" THEN GOTO 1140
  89. 1110 IF MMODE = 0 AND NMODE = 1 THEN GOTO 1500
  90. 1120 IF MMODE = 1 AND NMODE = 1 THEN GOTO 1600
  91. 1130 IF MMODE = 0 AND NMODE = 1 THEN GOTO 1700
  92. 1140 PRINT " BEYOND PROVIDED CALCULATION RANGE- SEE REFERENCES": GOTO 1990
  93. 1150 IF MMODE = 0 AND NMODE = 1 THEN GOTO 1500
  94. 1160 IF MMODE = 0 AND NMODE = 1 THEN GOTO 1600
  95. 1170 IF MMODE = 0 AND NMODE = 1 THEN GOTO 1700
  96. 1180 PRINT " BEYOND PROVIDED CALCULATION RANGE- SEE REFERENCES": GOTO 1990
  97. 1200 ATTN = 1.1095 / ADIM ^ 1.5 * (.5 * ADIM / BDIM * (FO / FC) ^ 1.5 + (FO / FC) ^ -.5)
  98. 1210 ATTN = ATTN / SQR((FO / FC) ^ 2 - 1)
  99. 1220 GOTO 1800
  100. 1300 ATTN = 1.1095 / ADIM ^ 1.5
  101. 1310 ATTN = ATTN * (ADIM / BDIM * (A + ADIM / BDIM) * (FO / FC) ^ 1.5 + (1 + (ADIM / BDIM) ^ 3) * (FO / FC) ^ -1 / 2)
  102. 1320 ATTN = ATTN / (1 + (ADIM / BDIM) ^ 2) ^ .75 * SQR((FO / FC) ^ 2 - 1)
  103. 1330 GOTO 1800
  104. 1400 ATTN = 1.1095 / ADIM ^ 1.5
  105. 1410 ATTN = ATTN * ((1 + BDIM / ADIM) ^ 3) * (FO / FC) ^ 1.5
  106. 1420 ATTN = ATTN / (1 + (BDIM / ADIM) ^ 2) ^ .75 / SQR((FO / FC) ^ 2 - 1)
  107. 1430 GOTO 1800
  108. 1500 ATTN = .4846 / RAD ^ 1.5
  109. 1510 ATTN = ATTN * (FO / FC) ^ 1.5 / SQR((FO / FC) ^ 2 - 1)
  110. 1520 GOTO 1900
  111. 1600 ATTN = .4237 / RAD ^ 1.5 * ((FO6FC) ^ 1.5 + 1 / 2.38 * (FO / FC) ^ 1.5)
  112. 1610 ATTN = ATTN / SQR((FO / FC) ^ 2 - 1)
  113. 1620 GOTO 1900
  114. 1700 ATTN = .6127 / RAD ^ 1.5 * (FO / FC) ^ -.5 / (SQR((FO / FC) ^ 2 - 1))
  115. 1710 GOTO 1900
  116. 1800 PRINT " FOR RECTANGULAR COPPER GUIDE"; ADIM; "BY"; BDIM; "INCHES"
  117. 1810 PRINT "  AND MODE "; CNAM$
  118. 1820 PRINT "ATTENUATION/100 FEET= "; FNP(ATTN); "DB"
  119. 1830 PRINT "  FOR BRASS MULTIPLY BY 1.4"
  120. 1840 GOTO 1990
  121. 1900 PRINT " FOR CIRCULAR COPPER GUIDE, DIAMETER="; 2 * RAD; "INCHES"
  122. 1910 PRINT "  AND MODE "; CNAM$
  123. 1920 PRINT "ATTENUATION/100 FEET= "; FNP(ATTN); "DB"
  124. 1930 PRINT "  FOR BRASS MULTIPLY BY 1.4"
  125. 1990 INPUT " PRESS RETURN TO CONTINUE"; T$
  126. 1999 RETURN
  127. 2000 CLS
  128. 2010 IF CWCM = 0 THEN PRINT " DO CUTOFF FIRST": GOSUB 5200
  129. 2100 INPUT "ENTER FREQUENCY, MHZ, 0 EQUALS NO CHANGE"; FTEM
  130. 2110 IF FTEM = 0 THEN FTEM = FO
  131. 2120 LTEM = 29980 / FTEM
  132. 2130 ATTN = 8.689999 * SQR((2 * PI / CWCM) ^ 2 - (2 * PI / LTEM) ^ 2)
  133. 2140 PRINT
  134. 2200 PRINT "ATTENUATION="; FNP(ATTN); "DB PER CM"
  135. 2210 PRINT "           ="; FNP(2.54 * ATTN); "DB PER INCH"
  136. 2220 PRINT "           ="; FNP(30.48 * ATTN); "DB PER FOOT"
  137. 2230 PRINT
  138. 2290 INPUT " PRESS RETURN TO CONTINUE"; T$
  139. 2999 RETURN
  140. 3000 CLS : IF TG$ = "C" THEN PRINT " NOT IMPLEMENTED": GOTO 3600
  141. 3010 IF CWCM = 0 THEN PRINT " DO CUTOFF FIRST": GOSUB 5200
  142. 3020 PRINT " THIS ROUTINE PROVIDES DATA FOR A 'TWO CUT' CORNER, TO CHANGE"
  143. 3030 PRINT "   THE DIRECTION OF A RECTANGULAR WAVEGUIDE RUN IN ONE PLANE"
  144. 3040 INPUT " ENTER THE AMOUNT OF DIRECTION CHANGE, DEGREES"; DCHG
  145. 3050 IF DCHG > 90 THEN PRINT "USE TWO CORNERS OF"; DCHG / 2; "DEGREES:GOTO 3040"
  146. 3060 INPUT "  ENTER BEND PLANE, E (NARROW) OR H (BROAD FACE)"; BPL$
  147. 3080 IF BPL$ = "E" THEN LRA = .25: GOTO 3200
  148. 3090 IF BPL$ = "H" THEN LRA = .288: GOTO 3200
  149. 3100 GOTO 3060
  150. 3200 CLS
  151. 3210 PRINT " SAW CUT ANGLE 1="; DCHG / 4; "DEGREES FROM ACROSS-GUIDE DIRECTION,"
  152. 3220 IF BPL$ = "H" THEN PRINT "  ON THE BROADEST GUIDE FACE"
  153. 3230 IF BPL$ = "E" THEN PRINT "  ON THE NARROWEST GUIDE FACE"
  154. 3240 PRINT
  155. 3300 PRINT " SAW CUT ANGLE 2="; -DCHG / 4; "DEGREES FROM ACROSS-GUIDE DIRECTION,"
  156. 3310 IF BPL$ = "H" THEN PRINT "  ON THE BROAD  GUIDE FACE"
  157. 3320 IF BPL$ = "E" THEN PRINT "  ON THE NARROW GUIDE FACE"
  158. 3330 PRINT
  159. 3400 PRINT " DISTANCE BETWEEN CUTS AT GUIDE CENTERLINE=";
  160. 3410 PRINT FNP(LRA * LGIN); "INCHES"
  161. 3420 PRINT "                                          =";
  162. 3430 PRINT FNP(LRA * LGCM); "CM"
  163. 3500 PRINT
  164. 3510 PRINT " ASSEMBLE TO MAKE DESIRED CORNER ANGLE, CLAMP AND"
  165. 3520 PRINT "  SOLDER CAREFULLY TO KEEP INTERIOR SMOOTH."
  166. 3600 INPUT "   PRESS RETURN TO CONTINUE"; T$
  167. 3999 RETURN
  168. 4000 CLS
  169. 4010 IF ZG = 0 THEN PRINT "DO CUTOFF FIRST": GOSUB 5200
  170. 4020 IF TG$ = "C" THEN 4500
  171. 4030 PRINT " FOR THIN WINDOWS SYMMETICAL TO CENTER-LINE OF GUIDE ONLY"
  172. 4040 INPUT "  ENTER 1= INDUCTIVE, 2= CAPACITIVE, 3=RESONANT WINDOW"; TEM
  173. 4050 ON TEM GOTO 4100, 4200, 4300, 4000
  174. 4100 INPUT " ENTER WINDOW WIDTH AS FRACTION OF INSIDE WIDTH OF GUIDE"; WWID
  175. 4110 FAC = PI * WWID * (1 / SQR(1 - (2 * ADIM / 3 / LAMIN) ^ 2) - 1)
  176. 4120 FAC1 = 1 + .75 * SIN(FAC) * SIN(FAC)
  177. 4130 FAC = PI / 2 * WWID * FAC1
  178. 4140 XL = ADIM / LGIN * TAN(FAC) * TAN(FAC) * ZG
  179. 4150 PRINT " WINDOW INDUCTIVE REACTANCE="; FNP(XL); "OHMS"
  180. 4160 GOTO 4990
  181. 4200 PRINT "NOT IMPLEMENTED, SEE REFERENCES"
  182. 4260 GOTO 4990
  183. 4300 INPUT " ENTER WIDTH OF THIN RESONANT WINDOW, INCHES, 0=QUIT"; WWID
  184. 4310 IF WWID = 0 THEN 4999
  185. 4320 IF LAMIN >= 2 * WWID THEN PRINT " IMPOSSIBLE CONDITION": GOTO 4300
  186. 4330 FAC = ADIM / BDIM * SQR(1 - (LAMIN / 2 / ADIM) ^ 2)
  187. 4340 FAC1 = SQR(1 - (LAMIN / 2 / WWID) ^ 2)
  188. 4350 WHT = WWID * FAC1 / FAC
  189. 4360 PRINT " WINDOW HEIGHT FOR RESONANCE="; WHT; "INCHES"
  190. 4370 GOTO 4990
  191. 4500 PRINT "NOT IMPLEMENTED, SEE IRISES"
  192. 4560 GOTO 4990
  193. 4990 INPUT "PRESS RETURN TO CONTINUE"; T$
  194. 4999 RETURN
  195. 5000 CLS
  196. 5010 INPUT " ENTER MODE VALUES, M,N: 0,0 SETS DOMINANT MODE"; MMODE, NMODE
  197. 5020 IF MMODE > 0 OR NMODE > 0 THEN 5050
  198. 5030 IF TG$ = "R" THEN MMODE = 1: NMODE = 0: GOTO 5060
  199. 5040 IF TG$ = "C" THEN MMODE = 1: NMODE = 1: GOTO 5060
  200. 5050 INPUT "MODE TYPE, E OR M"; MODT$
  201. 5060 IF TG$ = "C" THEN 5500
  202. 5200 CWIN = 2 / SQR((MMODE / ADIM) ^ 2 + (NMODE / BDIM) ^ 2)'INCHES
  203. 5210 IF CWIN < LAMIN THEN PRINT " MODE IS BELOW CUTOFF": GOTO 5990
  204. 5220 CWCM = CWIN * 2.54
  205. 5230 FC = 299.8 / CWCM
  206. 5240 ZG = 377 * LGIN / LAMIN * 2 * BDIM / ADIM
  207. 5250 CNAM$ = "TE" + CHR$(MMODE + 48) + CHR$(NMODE + 48)
  208. 5260 LGIN = LAMIN / SQR(1 - (LAMIN / CWIN) ^ 2)
  209. 5270 LGCM = LGIN * 2.54
  210. 5300 PRINT
  211. 5310 PRINT " FOR GUIDE"; ADIM; "BY"; BDIM; "INCHES"
  212. 5320 PRINT "  OPERATING IN MODE "; CNAM$
  213. 5330 PRINT "   CUTOFF WAVELENGTH="; CWCM; "CM"
  214. 5340 PRINT "    AT FREQUENCY OF"; FO; "MHZ"
  215. 5350 PRINT " WAVELENGTH IN AIR ="; FNP(LAM); "CM"
  216. 5360 PRINT "                   ="; FNP(LAMIN); "INCHES"
  217. 5370 PRINT " WAVELENGTH IN GUIDE="; FNP(LGCM); "CM"
  218. 5380 PRINT "                    ="; FNP(LGIN); "IN"
  219. 5390 GOTO 5990
  220. 5500 N = 0
  221. 5510 CNAM$ = MODT$ + CHR$(MMODE + 48) + CHR$(NMODE + 48)
  222. 5520 N = N + 1: IF N = 19 THEN PRINT "BEYOND TABLES": GOTO 5990
  223. 5530 IF MODE$(N) <> CNAM$ THEN 5520
  224. 5540 CWIN = 2 * PI * RAD / UCON(N)
  225. 5550 IF CWIN < LAMIN THEN PRINT " MODE IS BELOW CUTOFF": GOTO 5990
  226. 5560 CWCM = CWIN * 2.54
  227. 5570 FC = 299.8 / CWCM
  228. 5580 LGIN = LAMIN / SQR(1 - (LAMIN / CWIN) ^ 2)
  229. 5590 LGCM = LGIN * 2.54
  230. 5900 PRINT
  231. 5910 PRINT " FOR GUIDE"; 2 * RAD; "INCHES IN DIAMETER"
  232. 5920 PRINT "  OPERATING IN MODE "; "T" + CNAM$
  233. 5930 PRINT "   CUTOFF WAVELENGTH="; CWCM; "CM"
  234. 5940 PRINT "    AT FREQUENCY OF"; FO; "MHZ"
  235. 5950 PRINT " WAVELENGTH IN AIR ="; FNP(LAM); "CM"
  236. 5960 PRINT "                   ="; FNP(LAMIN); "INCHES"
  237. 5970 PRINT " WAVELENGTH IN GUIDE="; FNP(LGCM); "CM"
  238. 5980 PRINT "                    ="; FNP(LGIN); "IN"
  239. 5990 INPUT " PRESS RETURN TO CONTINUE"; T$
  240. 5999 RETURN
  241. 6000 INPUT "ENTER GUIDE TYPE, R=RECTANGULAR, C=CIRCULAR"; TG$
  242. 6010 IF TG$ <> "R" AND TG$ <> "C" THEN 6000
  243. 6020 INPUT "SEE  S=SPECIFIC SIZE OR T= COMPLETE TABLE "; TABL$
  244. 6030 IF TABL$ <> "T" AND TABL$ <> "S" THEN 6020
  245. 6040 IF TG$ = "C" AND TABL$ = "S" THEN 6200
  246. 6050 IF TG$ = "R" AND TABL$ = "T" THEN 6600
  247. 6060 IF TG$ = "R" AND TABL$ = "S" THEN 6800
  248. 6100 CLS
  249. 6110 PRINT "    COMMERCIAL CIRCULAR COPPER TUBING SIZES"
  250. 6120 PRINT "          DIMENSIONS IN INCHES"
  251. 6130 PRINT "DIAMETER", "WALL", "LOWER WAVLENG", "UPPER WAVLENG."
  252. 6140 FOR N = 1 TO 13
  253. 6150 PRINT CTABL(1, N), CTABL(2, 4), 3.1 * CTABL(1, N), 3.6 * CTABL(1, N)
  254. 6160 NEXT N
  255. 6170 GOTO 6990
  256. 6200 CLS
  257. 6210 PRINT "*** CAUTION - THIS ROUTINE CHANGES INITIAL GUIDE SELECTION"
  258. 6220 INPUT "ENTER CIRCULAR GUIDE DIAMETER,INCHES"; DIA
  259. 6330 RAD = DIA / 2
  260. 6340 TN = 1
  261. 6350 IF TN >= 13 THEN PRINT "SIZE NOT LISTED": GOTO 6990
  262. 6360 IF CTABL(1, TN) <> RAD THEN TN = TN + 1: GOTO 6340
  263. 6370 PRINT "DIAMETER", "WALL", "LOWER WAVLENG", "UPPER WAVLENG."
  264. 6380 PRINT CTABL(1, TN), CTABL(2, TN), 3.1 * CTABL(1, TN), 3.6 * CTABL(1, TN)
  265. 6390 PRINT " INITIAL WAVEGUIDE SELECTION NOW CHANGED TO THIS SIZE"
  266. 6400 GOTO 6990
  267. 6600 CLS
  268. 6610 PRINT "    COMMERCIAL RECTANGULAR COPPER TUBING SIZES"
  269. 6620 PRINT "A-HEIGHT", "B-WIDTH", "WALL", "LOWER WAVLENG", "UPPER WAVLENG."
  270. 6630 FOR N = 1 TO 18
  271. 6640 PRINT RTABL(1, N), RTABL(2, N), RTABL(3, N), 2.1 * RTABL(2, N), 3.3 * RTABL(2, N)
  272. 6650 NEXT N
  273. 6660 GOTO 6970
  274. 6800 CLS
  275. 6810 PRINT "*** CAUTION - THIS ROUTINE CHANGES INITIAL GUIDE SELECTION"
  276. 6820 INPUT "ENTER RECTANGULAR GUIDE WIDTH (B-DIMENSION), INCHES"; TEMP
  277. 6830 TN = 1
  278. 6840 IF TN >= 18 THEN PRINT "SIZE NOT LISTED": GOTO 6990
  279. 6850 IF RTABL(2, TN) <> TEMP THEN TN = TN + 1: GOTO 6840
  280. 6860 PRINT "A-HEIGHT", "B-WIDTH", "WALL", "LOWER WAVLENG", "UPPER WAVLENG."
  281. 6870 PRINT RTABL(1, TN), RTABL(2, TN), RTABL(3, TN), 2.1 * RTABL(2, TN), 3.3 * RTABL(2, TN)
  282. 6880 PRINT " INITIAL WAVEGUIDE SELECTION NOW CHANGED TO THIS SIZE"
  283. 6890 PRINT "          ALSO DESIGNATED AS EIA-"; RTABL(4, TN)
  284. 6900 PRINT "                          OR  RG-"; RTABL(5, TN); "/U"
  285. 6910 ADIM = RTABL(1, TN)
  286. 6920 BDIM = RTABL(2, TN)
  287. 6930 GOTO 6990
  288. 6970 PRINT " LARGER SIZES ARE AVAILABLE IN EIA AND JAN SERIES."
  289. 6980 PRINT "  FOR RECTANGULAR GUIDE USE 'PC-BOARD' TO CONSTRUCT GUIDE"
  290. 6990 INPUT "   PRESS RETURN TO CONTINUE"; T$
  291. 6999 RETURN
  292. 7000 CLS
  293. 7010 PRINT "CONVERSIONS, INPUT TO OUTPUT"
  294. 7020 PRINT "  ENTER 1 FOR INCHES TO CENTIMETERS"
  295. 7030 PRINT "        2 FOR FEET TO CENTIMETERS"
  296. 7040 PRINT "        3 FOR CENTIMETERS TO INCHES"
  297. 7050 PRINT "        4 FOR CENTIMETERS TO FEET"
  298. 7060 PRINT "        5 FOR FREQUENCY, MHZ TO WAVELENGTH, CM"
  299. 7070 PRINT "        6 FOR WAVELENGTH, CM TO FREQUENCY, MHZ"
  300. 7100 INPUT TEM
  301. 7110 ON TEM GOTO 7200, 7250, 7300, 7350, 7400, 7450, 7010
  302. 7200 INPUT "INCHES"; INV
  303. 7210 PRINT "CM="; 2.54 * INV
  304. 7220 GOTO 7980
  305. 7250 INPUT "FEET"; INV
  306. 7260 PRINT "CM="; 30.48 * INV
  307. 7270 GOTO 7980
  308. 7300 INPUT "CENTIMETERS"; INV
  309. 7310 PRINT "INCHES="; INV / 2.54
  310. 7320 GOTO 7980
  311. 7350 INPUT "CENTIMETERS"; INV
  312. 7360 PRINT "FEET="; INV / 30.48
  313. 7370 GOTO 7980
  314. 7400 INPUT "FREQUENCY,MHZ"; INV
  315. 7410 PRINT "WAVELENGTH, CM="; 29980 / INV
  316. 7420 GOTO 7980
  317. 7450 INPUT "WAVELENGTH, CM"; INV
  318. 7460 PRINT "FREQUENCY,MHZ="; 29980 / INV
  319. 7470 GOTO 7980
  320. 7980 INPUT "ENTER C- ANOTHER CONVERSION, OR RETURN TO FINISH"; T$
  321. 7990 IF T$ = "C" THEN 7010
  322. 7999 RETURN
  323. 8000 CLS
  324. 8010 IF ZG = 0 THEN PRINT " DO CUTOFF FIRST": GOSUB 5200
  325. 8020 IF TG$ = "C" THEN 8800
  326. 8030 PRINT " FOR DOMINANT MODE RECTANGULAR GUIDE ONLY"
  327. 8040 INPUT "  ENTER DIAMETER OF CENTERED HOLE, INCHES"; HDIA
  328. 8050 XL = ZG * 2 * PI / 3 * HDIA ^ 3 / ADIM / BDIM / LGIN
  329. 8060 ATTN = 20 * LOG(ZG / XL / 2) / 2.303
  330. 8070 PRINT " ENTER 1= IN-GUIDE COUPLING"
  331. 8080 PRINT "       2= B-FACE COUPLING, 2 GUIDES, BOTH ONE END SHORTED"
  332. 8090 PRINT "       3= B-FACE COUPLING, 2 GUIDES, ONE SHORTED, ONE MATCHED"
  333. 8100 PRINT "       4= B-FACE COUPLING, 2 GUIDES, ONE SHORTED, ONE MATCHED"
  334. 8110 INPUT TEM
  335. 8120 ON TEM GOTO 8200, 8300, 8400, 8500, 8060
  336. 8200 PRINT " HOLE INDUCTIVE REACTANCE="; FNP(XL); "OHMS"
  337. 8210 PRINT "  COUPLING ATTENUATION="; FNP(ATTN); "DB"
  338. 8220 PRINT "   IF DIAPHRAM IS THICK, ADD 32*THICKNESS/DIAMETER, DB"
  339. 8230 GOTO 8990
  340. 8300 ATTN = ATTN + 20 * LOG(4 * (ADIM / LGIN) ^ 2) / 2.3
  341. 8310 PRINT "  COUPLING ATTENUATION="; FNP(ATTN); "DB"
  342. 8320 PRINT "   IF DIAPHRAM IS THICK, ADD 32*THICKNESS/DIAMETER, DB"
  343. 8330 GOTO 8990
  344. 8400 ATTN = ATTN + 20 * LOG(8 * (ADIM / LGIN) ^ 2) / 2.3
  345. 8410 PRINT "  COUPLING ATTENUATION="; FNP(ATTN); "DB"
  346. 8420 PRINT "   IF DIAPHRAM IS THICK, ADD 32*THICKNESS/DIAMETER, DB"
  347. 8430 GOTO 8990
  348. 8500 PRINT "  COUPLING ATTENUATION="; FNP(ATTN); "DB"
  349. 8510 PRINT "   IF DIAPHRAM IS THICK, ADD 32*THICKNESS/DIAMETER, DB"
  350. 8530 GOTO 8990
  351. 8800 PRINT " FOR DOMINANT MODE CIRCULAR WAVEGUIDE"
  352. 8810 INPUT "  ENTER DIAMETER OF CENTERED HOLE, INCHES"; HDIA
  353. 8820 XL = 4 * RAD / LGIN / (5.71 * RAD ^ 3 / HDIA ^ 4 - 2.344)
  354. 8830 ATTN = 10 * LOG((1 / XL) ^ 2 / 4 + 1) / 2.303
  355. 8840 PRINT " NORMALIZED HOLE INDUCTIVE REACTANCE="; FNP(XL)
  356. 8850 PRINT "  COUPLING ATTENUATION="; FNP(ATTN); "DB"
  357. 8860 PRINT "   IF DIAPHRAM IS THICK, ADD 32*THICKNESS/DIAMETER, DB"
  358. 8990 INPUT " PRESS RETURN TO CONTINUE"; T$
  359. 8999 RETURN
  360. 9000 IF TG$ = "C" THEN 9500
  361. 9010 IF LGIN = 0 THEN PRINT "DO CUTOFF FIRST": GOSUB 5200
  362. 9020 IF MMODE <> 1 AND NMODE <> 0 THEN PRINT " DATA NOT AVAILABLE": GOTO 9990
  363. 9030 PB = .000663 * ADIM * BDIM * LAMIN / LGIN * (30000 * 2.54) ^ 2
  364. 9040 PRINT " IDEAL SEA-LEVEL BREAKDOWN POWER="; INT(PB); "WATTS"
  365. 9050 PRINT "  AND DROPS BY HALF FOR EACH 10000 FEET ABOVE SEA-LEVEL"
  366. 9060 PRINT "   SAFETY FACTORS OF 3-10 ARE DESIRABLE"
  367. 9070 GOTO 9990
  368. 9500 IF MMODE <> 1 AND NMODE <> 1 THEN PRINT " DATA NOT AVAILABLE": GOTO 9990
  369. 9510 PB = .00199 * ADIM * RAD * RAD / LGIN * (30000 * 2.54) ^ 2
  370. 9520 PRINT " IDEAL SEA-LEVEL BREAKDOWN POWER="; INT(PB); "WATTS"
  371. 9530 PRINT "  AND DROPS BY HALF FOR EACH 10000 FEET ABOVE SAE-LEVEL"
  372. 9540 PRINT "   SAFETY FACTORS OF 3-10 ARE DESIRABLE"
  373. 9990 INPUT "PRESS RETURN TO CONTINUE"; T$
  374. 9999 RETURN
  375. 10000 CLS : IF LGIN = 0 THEN PRINT "DO CUTOFF FIRST": GOSUB 5200
  376. 10010 PRINT " ENTER 1= WAVEGUIDE RESONATOR"
  377. 10020 PRINT "       2= RECTANGULAR RESONATOR"
  378. 10030 PRINT "       3= CYLINDRICAL RESONATOR"
  379. 10040 INPUT TEM
  380. 10050 ON TEM GOTO 10200, 10400, 10600, 10010
  381. 10200 INPUT "ENTER NUMBER OF HALF=WAVES OF RESONATOR LENGTH, >0"; RLN
  382. 10210 IF RLN <= 0 THEN 10200
  383. 10220 RLN = INT(RLN)
  384. 10230 RLN = RLN * LGIN / 2
  385. 10240 PRINT " RESONATOR LENGTH="; FNP(RLN); "INCHES"
  386. 10250 PRINT "                 ="; FNP(2.54 * RLN); "CM"
  387. 10260 GOTO 10990
  388. 10400 INPUT " ENTER RESONATOR DIMENSIONS, X,Y,Z, INCHES"; RX, RY, RZ
  389. 10410 PRINT "  RESONANT MODES MAY BE IDENTICAL, TWO IDENTICAL, OR DIFFERENT,"
  390. 10420 PRINT "   BUT ONLY ONE MAY BE ZERO."
  391. 10430 INPUT " ENTER NUMBER OF X,Y,Z HALF-WAVES AT RESONANCE"; LR, MR, NR
  392. 10440 CR = 4 / SQR((LR / RX) ^ 2 + (MR / RY) ^ 2 + (NR / RZ) ^ 2)
  393. 10450 PRINT " RESONANT WAVELENGTH="; FNP(CR); "INCHES"
  394. 10460 PRINT "                    ="; FNP(2.54 * CR); "CM"
  395. 10470 PRINT "  RESONANT FREQUENCY="; FNP(29980 / 2.54 / CR); "MHZ"
  396. 10480 GOTO 10990
  397. 10600 INPUT " ENTER RESONATOR LENGTH, INCHES"; RZ
  398. 10610 INPUT "  ENTER NUMBER OF HALF-WAVES OF LENGTH AT RESONANCE"; NR
  399. 10620 INPUT "ENTER RESONATOR DIAMETER, INCHES"; RD
  400. 10630 PRINT " RESONANCES OCCUR AT WAVELENGTHS AND FRQUENCIES OF"
  401. 10640 PRINT "MODE", "    WAVELENGTH", "FREQUENCY"
  402. 10650 PRINT , "INCHES", "  CM", "  MHZ"
  403. 10660 FOR N = 1 TO 25
  404. 10670 RLAM = 4 / SQR((NR / RZ) ^ 2 + (4 * UCON(N) / PI / RD) ^ 2)
  405. 10680 PRINT "T" + MODE$(N), FNP(RLAM), FNP(2.54 * RLAM), FNP(29980 / 2.54 / RLAM)
  406. 10690 IF N = 15 THEN INPUT " PRESS RETURN TO CONTINUE"; T$
  407. 10700 NEXT N
  408. 10990 INPUT "    PRESS RETURN TO CONTINUE"; T$
  409. 10999 RETURN
  410. 11000 CLS
  411. 11010 PRINT "  INPUT PARAMETER TO CHANGE"
  412. 11020 PRINT "          1- FREQUENCY "
  413. 11030 PRINT "          2- GUIDE TYPE"
  414. 11040 PRINT "          3- PROPAGATION TYPE"
  415. 11050 PRINT "          4- MODES (M,N VALUES)"
  416. 11060 PRINT "          5- SELECT SMALLER/LARGER SIZE"
  417. 11070 PRINT "          6- GUIDE SIZE NOT IN TABLES"
  418. 11080 PRINT "      OTHER-CONTINUE"
  419. 11090 INPUT TYP: IF TYP < 0 OR TYP > 6 THEN 11999
  420. 11100 ON TYP GOSUB 11200, 11300, 11400, 11500, 11600, 11800, 11000
  421. 11120 GOTO 11000
  422. 11200 INPUT " ENTER NEW FREQUENCY,MHZ"; FTEM
  423. 11210 IF FTEM < 320 OR FTEM > 33000! THEN PRINT " BEYOND TABLE RANGE": GOTO 11200
  424. 11220 FO = FTEM: LAM = 29980 / FO: LAMIN = LAM / 2.54
  425. 11230 GOTO 11990
  426. 11300 INPUT " ENTER GUIDE TYPE, R=RECTANGULAR, C=CIRCULAR"; TG$
  427. 11310 IF TG$ = "R" OR TG$ = "C" THEN 11990
  428. 11320 GOTO 11300
  429. 11400 INPUT " ENTER PROPAGATION TYPE, E=ELECTRIC, M=MAGNETIC"; MODT$
  430. 11410 GOSUB 5000
  431. 11420 GOTO 11990
  432. 11500 PRINT " CURRENT MODE VALUES M,N ARE"; MMODE, NMODE
  433. 11510 INPUT "ENTER NEW VALUES FOR M,N"; MMODE, NMODE
  434. 11520 GOTO 11990
  435. 11600 PRINT " CURRENT GUIDE TYPE IS ";
  436. 11610 IF TG$ = "R" THEN PRINT "RECTANGULAR"
  437. 11620 IF TG$ = "C" THEN PRINT "CIRCULAR"
  438. 11630 PRINT " CURRENT GUIDE SIZE IS ";
  439. 11640 IF TG$ = "R" THEN PRINT RTABL(2, TN); "INCHES WIDTH": MAX = 18
  440. 11650 IF TG$ = "C" THEN PRINT CTABL(1, TN); "INCHES DIAMETER": MAX = 18
  441. 11660 INPUT "ENTER -1 FOR SMALLER, 1 FOR LARGER, 0=NO CHANGE"; TEM
  442. 11670 IF TEM = 0 THEN 11990
  443. 11680 IF TEM > 0 THEN TN = TN - 1: IF TN < 1 THEN TN = 1
  444. 11690 IF TEM < 0 THEN TN = TN + 1: IF TN > MAX THEN TN = MAX
  445. 11700 IF TG$ = "C" THEN 11750
  446. 11710 IF TN < 1 OR TN > 18 THEN PRINT "SIZE IS BEYOND TABLES": GOTO 11630
  447. 11720 ADIM = RTABL(2, TN) - 2 * RTABL(3, TN): BDIM = RTABL(1, N) - 2 * RTABL(3, N)
  448. 11730 PRINT " *** CAUTION- GUIDE SIZE IS CHANGED"
  449. 11740 GOTO 11630
  450. 11750 IF TN < 1 OR TN > 13 THEN PRINT "SIZE IS BEYOND TABLES": GOTO 11630
  451. 11760 RAD = CTABL(1, N) - CTABL(2, N)
  452. 11770 PRINT " *** CAUTION- GUIDE SIZE IS CHANGED-USE ROUTINE 5, ETC"
  453. 11780 GOTO 11630
  454. 11800 IF TG$ = "C" THEN 11840
  455. 11810 INPUT " ENTER RECTANGULAR GUIDE INSIDE WIDTH, INCHES"; BDIM
  456. 11820 INPUT "                               HEIGHT, INCHES"; ADIM
  457. 11830 GOTO 11990
  458. 11840 INPUT " ENTER CIRCULAR GUIDE INSIDE DIAMETER, INCHES"; DIA
  459. 11850 RAD = DIA / 2
  460. 11860 GOTO 11990
  461. 11990 INPUT "PRESS RETURN TO CONTINUE"; T$
  462. 11999 RETURN
  463. 12000 END
  464. 50000 DATA "E11","M01","E21","M11","E01","E31","M21","E41","E12"
  465. 50010 DATA "M02","M31","E51","E22","M12","E02","E61","M41","E32"
  466. 50020 DATA "M22","E13","E71","M03","M51","E42","E81"
  467. 50030 DATA 1.841,2.405,3.054,3.832,3.832,4.201,5.136,5.318,5.332
  468. 50040 DATA 5.520,6.380,6.416,6.706,7.016,7.016,7.501,7.588,8.016
  469. 50050 DATA 8.417,8.536,8.578,8.654,8.771,9.283,9.647
  470. 50100 DATA 11.75,23.25,.125,2300,290
  471. 50110 DATA 10.75,21.25,.125,2100,291
  472. 50120 DATA 9.25,18.25,.125,1800,201
  473. 50130 DATA 7.75,15.25,.125,1500,202
  474. 50140 DATA 6,11.75,.125,1150,203
  475. 50150 DATA 5.125,10,.125,975,204
  476. 50160 DATA 4.1,7.95,.125,770,205
  477. 50170 DATA 3.41,6.66,.08,650,69
  478. 50180 DATA 2.31,4.46,.08,430,104
  479. 50190 DATA 1.86,3.56,.08,340,112
  480. 50200 DATA 1.5,3,.081,284,48
  481. 50210 DATA 1,2,.064,187,49
  482. 50220 DATA .75,1.5,.064,137,50
  483. 50230 DATA .625,1.25,.064,112,51
  484. 50240 DATA .5,1,.064,90,52
  485. 50250 DATA .375,.75,.064,0,0
  486. 50260 DATA .25,.5,.04,42,53
  487. 50270 DATA .25,.4375,.05,34,0
  488. 50400 DATA 12.125,.28
  489. 50410 DATA 10.125,.25
  490. 50420 DATA 8.125,.2
  491. 50430 DATA 6.125,.14                      
  492. 50440 DATA 5.125,.125
  493. 50450 DATA 4.125,.11
  494. 50460 DATA 3.125,.09
  495. 50470 DATA 2.125,.07
  496. 50480 DATA 1.625,.06
  497. 50490 DATA 1.125,.05
  498. 50500 DATA .875,.045
  499. 50510 DATA .625,.04
  500. 50520 DATA .5,.035
  501. 54520 DATA 8.125,.2
  502. 60000 PRINT "ERROR"; ERR; "AT LINE"; ERL
  503. 60010 IF ERR = 11 THEN PRINT "MODE AND SIZE OF GUIDE INCOMPATABLE"
  504. 60020 IF ERL = 2130 THEN PRINT " GUIDE IS ABOVE CUTOFF AT SPECIFIED FREQUENCY"
  505. 60030 RESUME 800
  506. 64000 STOP
  507.  
  508.