home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / ee3 / toolkit.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1989-01-22  |  19.3 KB  |  621 lines

  1. 10  'SAVE TOOLKIT
  2. 20  DIM RHO(100),ALPHA(100),RETLOS(100),RS(100),JXS(100),VSWR(100),THETA(100)
  3. 30  DIM RP(100),JXP(100),HEADER$(80),DAT1(100),DAT2(100),DAT3(100),DAT4(100)
  4. 40  DIM IMPED(100),SWR(100),SIR(100),NSRABS(100),ISRABS(100),NEWSNR(100),DEGRAD(100)
  5. 50  ZO=50:KLOG=4.34294:PI=3.14159
  6. 60  '
  7. 70  CLS
  8. 80  PRINT "   ******************** RF TOOLKIT *******************"
  9. 81  PRINT "   ************* FROM RF DESIGN FEB. 1987 ************"
  10. 82  PRINT "   ***** ENTERED/ENHANCED BY ROBERT C. ENTWISTLE *****"
  11. 83  PRINT "   ********* FOR RF/MICROWAVE II SPRING 1987 *********"
  12. 90  PRINT
  13. 100  '
  14. 110  'BY RICHARD BAIN 10/24/86 (RF DESIGN FEBRUARY 1987)
  15. 115  'ENTERED BY ROBERT ENTWISTLE FOR T.S.C. 3/13/87
  16. 120  KEY ON
  17. 130  PRINT " 1 = SNR DEGRADATION FOR A GIVEN LEVEL OF INTERFERENCE"
  18. 140  PRINT " 2 = INTERFERENCE LEVEL FOR A GIVEN SNR DEGRADATION"
  19. 150  PRINT " 3 = POWER OR VOLTAGE SUM OF TWO POWERS IN dBm"
  20. 160  PRINT " 4 = UNKNOWN POWER IN dBM GIVEN SUM & ONE POWER"
  21. 170  PRINT "        MENU ITEMS 5 TO 14 ACCEPT DATA FROM:     MENU ITEMS"
  22. 180  PRINT " 5 = RHO ANGLE ALPHA TO Rs+/-JXs -----------------  (7)"
  23. 190  PRINT " 6 = Rs+/-JXs TO RHO ANGLE ALPHA -----------------(12,14)"
  24. 200  PRINT " 7 = RETURN LOSS TO RHO (REFLECTION COEFFICIENT)"
  25. 210  PRINT " 8 = RHO TO RETURN LOSS --------------------------  (6)"
  26. 220  PRINT " 9 = RHO TO VSWR --------------------------------- (6,7)"
  27. 230  PRINT "10 = RHO TO MISMATCH LOSS ------------------------ (6,7)"
  28. 240  PRINT "11 = Rs+/-JXs TO Rp,JXp -------------------------- (5,14)"
  29. 250  PRINT "12 = Rp,JXp TO Rs+/-JXs --------------------------  (11)"
  30. 260  PRINT "13 = Rs+/-JXs TO Z ANGLE THETA ------------------- (5,12)"
  31. 270  PRINT "14 = Z ANGLE THETA TO Rs+/-JXs -------------------  (13)"
  32. 275  PRINT
  33. 280  INPUT "TYPE YOUR SELECTION, 1 TO 14"; ELECT
  34. 290  CLS:KEY OFF
  35. 300  IF ELECT=1 THEN GOSUB 460
  36. 310  IF ELECT=2 THEN GOSUB 790
  37. 320  IF ELECT=3 THEN GOSUB 1140
  38. 330  IF ELECT=4 THEN GOSUB 1520
  39. 340  IF ELECT=5 THEN GOSUB 1880
  40. 350  IF ELECT=6 THEN GOSUB 2410
  41. 360  IF ELECT=7 THEN GOSUB 2980
  42. 370  IF ELECT=8 THEN GOSUB 3330
  43. 380  IF ELECT=9 THEN GOSUB 3720
  44. 390  IF ELECT=10 THEN GOSUB 4080
  45. 400  IF ELECT=11 THEN GOSUB 4460
  46. 410  IF ELECT=12 THEN GOSUB 4890
  47. 420  IF ELECT=13 THEN GOSUB 5320
  48. 430  IF ELECT=14 THEN GOSUB 5770
  49. 440  GOTO 80
  50. 450  '************************ START OF SUBROUTINES *************************
  51. 460  ' THIS SUB CALCULATES SNR DEGRADATION VS INTERFERING SIG LEVEL
  52. 470  NUM=0
  53. 480  PRINT "SNR DEGRADATION VS SIGNAL TO INTERFERENCE RATIO (SIR)"
  54. 490  NUM=NUM+1
  55. 500  INPUT "SIGNAL TO NOISE RATIO (dB) =? ",SNR(NUM)
  56. 510  INPUT "SIGNAL TO INTERFERENCE RATIO (dB) =? ",SIR(NUM)
  57. 520  NSRABS(NUM)=10^(-SNR(NUM)/10) 'NSRABS=NOISE TO SIGNAL RATIO
  58. 530  ISRABS(NUM)=10^(-SIR(NUM)/10) 'ISRABS=INTERFERENCE TO SIGNAL RATIO
  59. 540  NEWSNR(NUM)=-4.34294*LOG(NSRABS(NUM)+ISRABS(NUM))
  60. 550  DEGRAD(NUM)=SNR(NUM)-NEWSNR(NUM)
  61. 560  INPUT "1 = NEW SET OF VALUES, 2 = PRINT RESULTS ",CHOOSE
  62. 570  IF CHOOSE=1 THEN GOTO 490
  63. 580  CLS
  64. 590  PRINT "SNR DEGRADATION VS SIGNAL TO INTERFERENCE RATIO (SIR)"
  65. 600  PRINT
  66. 610  PRINT "     SNR dB     SIR dB   NEW SNR dB  DEGRAD dB"
  67. 620  FOR M=1 TO NUM
  68. 630  PRINT USING "    +###.##";SNR(M),SIR(M),NEWSNR(M),DEGRAD(M)
  69. 640  NEXT M
  70. 650  LOCATE 25,1
  71. 660  INPUT"1 = DUMP TO PRINTER, 2 = NO DUMP ? ",DUMPIT
  72. 670  IF DUMPIT=2 THEN 740
  73. 680  LPRINT "SNR DEGRADATION VS SIGNAL TO INTERFERENCE RATIO (SIR)"
  74. 690  LPRINT
  75. 700  LPRINT "     SNR dB     SIR dB   NEW SNR dB  DEGRAD dB"
  76. 710  FOR M=1 TO NUM
  77. 720  LPRINT USING "    +###.##";SNR(M),SIR(M),NEWSNR(M),DEGRAD(M)
  78. 730  NEXT M
  79. 740  LOCATE 25,1
  80. 750  INPUT"PRESS ENTER TO RETURN TO MENU       ",ANYKEY
  81. 760  CLS
  82. 770  ELECT=20  'MENU VAR SET OUT OF RANGE
  83. 780  RETURN
  84. 790  '************************ MENU ITEM 2 ***********************
  85. 800  NUM=0
  86. 810  PRINT "SIGNAL TO INTERFERENCE RATIO (SIR) GIVEN SNR AND DEGRADATION"
  87. 820  NUM=NUM+1
  88. 830  INPUT "ENTER KNOWN SIGNAL TO NOISE RATIO (dB)=? ",SNR(NUM)
  89. 840  INPUT "ENTER KNOWN DEGRADATION (dB)=? ",DEGRAD(NUM)
  90. 850  NSRABS=10^(-SNR(NUM)/10)
  91. 860  NEWSNR(NUM)=SNR(NUM)-DEGRAD(NUM)
  92. 870  NEWNSRABS=10^(-NEWSNR(NUM)/10)
  93. 880  ISRABS=-NSRABS+NEWNSRABS
  94. 890  SIRDB(NUM)=-KLOG*LOG(ISRABS)
  95. 900  INPUT"1 = NEW SET OF VALUES, 2 = PRINT RESULTS ",CHOOSE
  96. 910  IF CHOOSE=1 THEN GOTO 820
  97. 920  CLS
  98. 930  PRINT"SIGNAL TO INTERFERENCE RATIO (SIR) GIVEN SNR AND DEGRADATION"
  99. 940  PRINT
  100. 950  PRINT"      SNR dB    DEGRAD dB    NEW SNR dB   SIR dB"
  101. 960  PRINT
  102. 970  FOR M=1 TO NUM
  103. 980  PRINT USING"     +###.##";SNR(M),DEGRAD(M),NEWSNR(M),SIRDB(M)
  104. 990  NEXT M
  105. 1000  LOCATE 25,1
  106. 1010  INPUT"1 = DUMP TO PRINTER, 2 = NO DUMP ? ",DUMPIT
  107. 1020  IF DUMPIT=2 THEN 1090
  108. 1030  LPRINT"SIGNAL TO INTERFERENCE RATIO (SIR) GIVEN SNR AND DEGRADATION"
  109. 1040  LPRINT
  110. 1050  LPRINT"      SNR dB  DEGRAD dB       NEW SNR dB   SIR dB"
  111. 1060  FOR M=1 TO NUM
  112. 1070  LPRINT USING"     +###.##";SNR(M),DEGRAD(M),NEWSNR(M),SIRDB(M)
  113. 1080  NEXT M
  114. 1090  LOCATE 25,1
  115. 1100  INPUT"PRESS ENTER TO RETURN TO MENU       ",ANYKEY
  116. 1110  CLS
  117. 1120  ELECT=20
  118. 1130  RETURN
  119. 1140  '************************ MENU ITEM 3 ***********************
  120. 1150  NUM=0
  121. 1160  PRINT"     POWER OR VOLTAGE SUM OF TWO POWERS IN dBm"
  122. 1170  PRINT
  123. 1180  INPUT"ENTER  1 FOR POWER ADDITION, 2 FOR VOLTAGE ADDITION ",P.OR.V
  124. 1190  NUM=NUM+1
  125. 1200  PRINT
  126. 1210  INPUT"ENTER FIRST POWER IN dBm ",P1(NUM)
  127. 1220  INPUT"ENTER SECOND POWER IN dBm ",P2(NUM)
  128. 1230  PSUM(NUM)=KLOG*LOG(10^(P1(NUM)/10)+10^(P2(NUM)/10)) 'POWER ADDITION
  129. 1240  IF P.OR.V=2 THEN PSUM(NUM)=2*KLOG*LOG(10^(P1(NUM)/20)+10^(P2(NUM)/20))
  130. 1250  INPUT"1 = ADD ANOTHER POWER TO SUM, 2 = CONTINUE ",WHICH
  131. 1255  'NOTE THAT P1 AND P2 WILL NOT BE CORRECT ON PRINTOUT FOR ABOVE STEP
  132. 1260  IF WHICH=1 THEN P1(NUM)=PSUM(NUM): GOTO 1220
  133. 1270  INPUT"1 = NEW SET OF VALUES, 2 = PRINT RESULTS ",CHOOSE
  134. 1280  IF CHOOSE=1 THEN 1190
  135. 1290  CLS
  136. 1300  IF P.OR.V=1 THEN PRINT"    POWER ADDITION OF TWO POWERS IN dBm"
  137. 1310  IF P.OR.V=2 THEN PRINT"   VOLTAGE ADDITION OF TWO POWERS IN dBm"
  138. 1320  PRINT
  139. 1330  PRINT"      P1 dBm      P2 dBm     Psum dBm"
  140. 1340  PRINT
  141. 1350  FOR M=1 TO NUM
  142. 1360  PRINT USING "     +###.##";P1(M),P2(M),PSUM(M)
  143. 1370  NEXT M
  144. 1380  LOCATE 25,1
  145. 1390  INPUT"1 = DUMP TO PRINTER, 2 = NO DUMP ? ",DUMPIT
  146. 1400  IF DUMPIT=2 THEN 1470
  147. 1410  IF P.OR.V=1 THEN LPRINT"     P1 dBm     P2 dBm     Psum dBm  (POWER SUM)"
  148. 1420  IF P.OR.V=2 THEN LPRINT"     P1 dBm     P2 dBm     Psum dBm  (VOLTAGE SUM)"
  149. 1430  LPRINT
  150. 1440   FOR M=1 TO NUM
  151. 1450  LPRINT USING "     +###.##",P1(M),P2(M),PSUM(M)
  152. 1460  NEXT M
  153. 1470  LOCATE 25,1
  154. 1480  INPUT"PRESS ENTER TO RETURN TO MENU       ",ANYKEY
  155. 1490  CLS
  156. 1500  ELECT=20
  157. 1510  RETURN
  158. 1520  '************************ MENU ITEM 4 ***********************
  159. 1530  PRINT"UNKNOWN POWER ADDED TO KNOWN POWER TO GIVE KNOWN SUM (dBm)"
  160. 1540  NUM=0
  161. 1550  PRINT
  162. 1560  INPUT"ENTER 1 FOR POWER SUBTRACTION, 2 FOR VOLTAGE ",P.OR.V
  163. 1570  NUM=NUM+1
  164. 1580  INPUT"ENTER KNOWN POWER (P1) IN dBm =? ",P1(NUM)
  165. 1590  INPUT"ENTER KNOWN SUM (Psum) IN dBm =? ",PSUM(NUM)
  166. 1600  IF P1(NUM)>PSUM(NUM) THEN PRINT"Psum MUST BE > P1! ":INPUT"PUSH ENTER TO CONTINUE",ANYCHAR:GOTO 1580
  167. 1610  P2(NUM)=KLOG*LOG(10^(PSUM(NUM)/10)-10^(P1(NUM)/10)) 'POWER DIFFERENCE
  168. 1620  IF P.OR.V=2 THEN P2(NUM)=2*KLOG*LOG(10^(PSUM(NUM)/20)-10^(P1(NUM)/20))
  169. 1630  INPUT"1 = NEW SET OF VALUES, 2 = PRINT RESULTS ";CHOOSE
  170. 1640  IF CHOOSE=1 THEN 1570
  171. 1650  CLS
  172. 1660  PRINT"UNKNOWN POWER ADDED TO KNOWN POWER TO GIVE A KNOWN SUM (dBm)"
  173. 1670  IF P.OR.V=1 THEN PRINT"             POWER SUBTRACTION"
  174. 1680  IF P.OR.V=2 THEN PRINT"            VOLTAGE SUBTRACTION"
  175. 1690  PRINT
  176. 1700  PRINT"     Psum dBm     P1 dBm   Punknown dBm"
  177. 1710  FOR M=1 TO NUM
  178. 1720  PRINT USING "     +###.##";PSUM(M),P1(M),P2(M)
  179. 1730  NEXT M
  180. 1740  LOCATE 25,1
  181. 1750  INPUT"1 = DUMP TO PRINTER, 2 = NO DUMP ? ",DUMPIT
  182. 1760  IF DUMPIT=2 THEN 1850
  183. 1770  LPRINT"   UNKNOWN POWER ADDED TO KNOWN POWER TO GIVE A KNOWN SUM (dBm)"
  184. 1780  IF P.OR.V=1 THEN LPRINT"             POWER SUBTRACTION"
  185. 1790  IF P.OR.V=2 THEN LPRINT"            VOLTAGE SUBTRACTION"
  186. 1800  LPRINT
  187. 1810  LPRINT"     Psum dBm     P1 dBm   Punknown dBm"
  188. 1820  FOR M=1 TO NUM
  189. 1830  LPRINT USING "     +###.##";PSUM(M),P1(M),P2(M)
  190. 1840  NEXT M
  191. 1850  LOCATE 25,1
  192. 1860  INPUT"PRESS ENTER TO RETURN TO MENU       ",ANYKEY
  193. 1870  CLS:ELECT=20:RETURN
  194. 1880  '************************ MENU ITEM 5 ***********************
  195. 1890  '
  196. 1900  PRINT"      CONVERTS RHO ANGLE ALPHA TO Rs+/-JXs"
  197. 1910  PRINT"         (RHO IS REFLECTION COEFFICIENT)"
  198. 1920  PRINT
  199. 1930  PRINT"PLEASE INDICATE IF THE DATA TO BE USED IS MENU SELECTION 7"
  200. 1940  PRINT"THAT IS TO BE CONVERTED OR IF NEW DATA IS BEING ENTERED."
  201. 1950  INPUT"TYPE 1 TO ENTER NEW DATA, 2 TO USE OLD DATA ",WHICH
  202. 1960  IF WHICH=2 AND DATYPE<>7 THEN INPUT"NO OLD DATA !!, PRESS ENTER FOR MENU",ANYKEY:CLS:ELECT=20:RETURN
  203. 1970  CLS
  204. 1980  IF WHICH=2 THEN 2060
  205. 1990  NUM=1 'NOTE THAT NUM IS IMPORTED FROM MENU ITEM 7 IF OLD DATA USED
  206. 2000  PRINT
  207. 2010  PRINT"TO END INPUT: ENTER 0,0 FOR DATA"
  208. 2020  INPUT"ENTER RHO,ANGLE ",RHO(NUM),ALPHA(NUM)
  209. 2030  IF RHO(NUM)=0 AND ALPHA(NUM)=0 THEN NUM=NUM-1:GOTO 2060
  210. 2040  NUM=NUM+1
  211. 2050  GOTO 2020
  212. 2060  FOR N=1 TO NUM
  213. 2070  A=1+RHO(N)*COS(ALPHA(N)*PI/180)
  214. 2080  C=1-RHO(N)*COS(ALPHA(N)*PI/180)
  215. 2090  B=RHO(N)*SIN(ALPHA(N)*PI/180)
  216. 2100  D=(A^2+B^2)^0.5
  217. 2110  E=(C^2+B^2)^0.5
  218. 2120  K=D/E
  219. 2130  ANG=(ATN(B/A)-ATN(-B/C))
  220. 2140  RS(N)=ZO*K*COS(ANG)
  221. 2150  JXS(N)=ZO*K*SIN(ANG)
  222. 2160  NEXT N
  223. 2170  DATYPE=5
  224. 2180  CLS
  225. 2190  PRINT"             RHO ANGLE ALPHA CONVERTED TO Rs+/JXs"
  226. 2200  PRINT
  227. 2210  PRINT"        RHO     ALPHA Deg.     Rs Ohms       JXs Ohms"
  228. 2220  FOR N=1 TO NUM
  229. 2230  PRINT USING"     +###.##";RHO(N),ALPHA(N);
  230. 2240  PRINT USING"     +#.###^^^^";RS(N),JXS(N)
  231. 2250  NEXT N
  232. 2260  LOCATE 25,1
  233. 2270  INPUT"1 = DUMP TO PRINTER, 2 = NO DUMP ? ",DUMPIT
  234. 2280  IF DUMPIT=2 THEN 2360
  235. 2310  LPRINT"        RHO     ALPHA Deg.     Rs Ohms       JXs Ohms"
  236. 2320  FOR N=1 TO NUM
  237. 2330  LPRINT USING"     +###.##";RHO(N),ALPHA(N);
  238. 2340  LPRINT USING"     +#.###^^^^";RS(N),JXS(N)
  239. 2350  NEXT N
  240. 2360  LOCATE 25,1
  241. 2370  INPUT"PRESS ENTER TO RETURN TO MENU       ",ANYKEY
  242. 2380  CLS
  243. 2390  ELECT=20
  244. 2400  RETURN
  245. 2410  '************************ MENU ITEM 6 ***********************
  246. 2420  '
  247. 2430  PRINT"CONVERTS Rs+/JXs TO RHO ANGLE ALPHA"
  248. 2440  PRINT
  249. 2450  PRINT"PLEASE INDICATE IF OLD DATA IS BEING USED, OR"
  250. 2460  PRINT"IF NEW DATA WILL BE ENTERED"
  251. 2470  INPUT"TYPE 1 TO ENTER NEW DATA, 2 TO USE OLD DATA ",WHICH
  252. 2480  IF WHICH=2 AND DATYPE<>12 AND DATYPE<>14 THEN INPUT"NO OLD DATA !!, PRESS ENTER FOR MENU",ANYKEY:CLS:ELECT=20:RETURN
  253. 2490  CLS
  254. 2500  IF WHICH=2 THEN 2580
  255. 2510  NUM=1
  256. 2520  PRINT
  257. 2530  PRINT"TO END INPUT: ENTER 0,0 FOR DATA"
  258. 2540  INPUT"ENTER Rs,JXs IN OHMS, WITH SIGN ",RS(NUM),JXS(NUM)
  259. 2550  IF RS(NUM)=O AND JXS(NUM)=0 THEN NUM=NUM-1:GOTO 2580
  260. 2560  NUM=NUM+1
  261. 2570  GOTO 2540
  262. 2580  FOR N=1 TO NUM
  263. 2590  IF RS(N)=ZO THEN RS(N)=ZO+0.000999999
  264. 2600  A=((RS(N)-ZO)^2+JXS(N)^2)^0.5
  265. 2610  B=((RS(N)+ZO)^2+JXS(N)^2)^0.5
  266. 2620  RHO(N)=A/B 'MAGNITUDE OF RHO
  267. 2630  COSANG1=JXS(N)/A
  268. 2640  SINANG1=(RS(N)-ZO)/A
  269. 2650  THETA1=ATN(JXS(N)/RS(N)-ZO)*180/PI 'CALC ARCTAN & CONVERT TO DEGREES
  270. 2660  IF COSANG1 <0 AND SINANG1 <0 THEN THETA1=THETA1-180
  271. 2670  IF COSANG1 >0 AND SINANG1 <0 THEN THETA1=THETA1+180
  272. 2680  'ABOVE 2 STEPS PUT ANGLE IN PROPER QUADRANT
  273. 2690  THETA2=ATN(JXS(N)/(RS(N)+ZO))*180/PI
  274. 2700  ALPHA(N)=THETA1-THETA2
  275. 2710  IF JXS(N)=0 AND RS(N) <50 THEN ALPHA(N)=180 'CORRECTS ANOMOLY @ JXS(N)=0
  276. 2720  NEXT N
  277. 2730  DATYPE=6
  278. 2740  CLS
  279. 2750  PRINT"             Rs+/JXs CONVERTED TO RHO ANGLE ALPHA"
  280. 2760  PRINT
  281. 2770  PRINT"       Rs ohms       JXs ohms        RHO      ALPHA deg."
  282. 2775  PRINT
  283. 2780  FOR N=1 TO NUM
  284. 2790  PRINT USING"     +#.###^^^^";RS(N),JXS(N);
  285. 2800  PRINT USING"      .####";RHO(N);
  286. 2810  PRINT USING"      +###.#";ALPHA(N)
  287. 2820  NEXT N
  288. 2830  LOCATE 25,1
  289. 2840  INPUT"1 = DUMP TO PRINTER, 2 = NO DUMP ? ",DUMPIT
  290. 2850  IF DUMPIT=2 THEN 2940
  291. 2860  LPRINT"     Rs ohms        JXs ohms         RHO       ALPHA deg."
  292. 2880  LPRINT"       Rs ohms       JXs ohms        RHO      ALPHA deg."
  293. 2885  LPRINT
  294. 2890  FOR N=1 TO NUM
  295. 2900  LPRINT USING"     +#.###^^^^";RS(N),JXS(N);
  296. 2910  LPRINT USING"      .####";RHO(N);
  297. 2920  LPRINT USING"      +###.#";ALPHA(N)
  298. 2930  NEXT N
  299. 2940  LOCATE 25,1
  300. 2950  INPUT"PRESS ENTER TO RETURN TO MENU       ",ANYKEY
  301. 2960  CLS:ELECT=20:RETURN
  302. 2970  '
  303. 2980  '************************ MENU ITEM 7 ***********************
  304. 2990  '
  305. 3000  PRINT"          RETURN LOSS IN dB CONVERTED TO RHO"
  306. 3010  PRINT"           (RHO IS REFLECTION COEFFICIENT)"
  307. 3020  PRINT
  308. 3030  NUM=1
  309. 3040  PRINT"ENTER 0 FOR DATA TO END INPUT"
  310. 3050  INPUT"ENTER RETURN LOSS IN dB (POSITIVE VALUE) ",RETLOSS(NUM)
  311. 3060  IF RETLOSS(NUM)=0 THEN NUM=NUM-1:GOTO 3100
  312. 3070  NUM=NUM+1
  313. 3080  GOTO 3050
  314. 3090  CLS
  315. 3100  FOR N=1 TO NUM
  316. 3110  RHO(N)=10^(-RETLOSS(N)/20)
  317. 3120  NEXT N
  318. 3130  DATYPE=7:CLS
  319. 3140  PRINT"      RET LOSS dB       RHO"
  320. 3150  PRINT
  321. 3160  FOR N=1 TO NUM
  322. 3170  PRINT USING"        +##.##";RETLOSS(N);
  323. 3180  PRINT USING"       #.###^^^^";RHO(N)
  324. 3190  NEXT N
  325. 3200  LOCATE 25,1
  326. 3210  INPUT"1 = DUMP TO PRINTER, 2 = NO DUMP ? ",DUMPIT
  327. 3220  IF DUMPIT=2 THEN 3290
  328. 3230  LPRINT"      RET LOSS dB       RHO"
  329. 3240  LPRINT
  330. 3250  FOR N=1 TO NUM
  331. 3260  LPRINT USING"        +##.##";RETLOSS(N);
  332. 3270  LPRINT USING"       #.###^^^^";RHO(N)
  333. 3280  NEXT N
  334. 3290  LOCATE 25,1
  335. 3300  INPUT"PRESS ENTER TO RETURN TO MENU       ",ANYKEY
  336. 3310  CLS:ELECT=20:RETURN
  337. 3320  'NEXT SUB
  338. 3330  '************************ MENU ITEM 8 ***********************
  339. 3340  '
  340. 3350  PRINT"          RHO CONVERTED TO RETURN LOSS IN dB"
  341. 3360  PRINT
  342. 3370  PRINT"PLEASE INDICATE IF OLD DATA WILL BE USED"
  343. 3380  PRINT"OR IF NEW DATA WILL BE ENTERED"
  344. 3390  INPUT"TYPE 1 TO ENTER NEW DATA, 2 TO USE OLD DATA ",WHICH
  345. 3400  IF WHICH=2 AND DATYPE<>6 THEN INPUT"NO OLD DATA !!, PRESS ENTER FOR MENU",ANYKEY:CLS:ELECT=20:RETURN
  346. 3410  CLS: IF WHICH=2 THEN 3470
  347. 3420  NUM=1:PRINT
  348. 3430  PRINT"TO END INPUT: ENTER 0 FOR DATA"
  349. 3440  INPUT"ENTER RHO (REFL COEF) ",RHO(NUM)
  350. 3450  IF RHO(NUM)=0 THEN NUM=NUM-1:GOTO 3470
  351. 3460  NUM=NUM+1:GOTO 3440
  352. 3470  FOR N=1 TO NUM
  353. 3480  RETLOSS(N)=2*KLOG*LOG(RHO(N))
  354. 3490  NEXT N
  355. 3500  DATYPE=8:CLS
  356. 3510  PRINT"  RHO CONVERTED TO RETURN LOSS IN dB"
  357. 3520  PRINT
  358. 3530  PRINT"         RHO        RETLOSS dB"
  359. 3540  PRINT
  360. 3550  FOR N=1 TO NUM
  361. 3560  PRINT USING"      #.###^^^^";RHO(N);
  362. 3570  PRINT USING"      +##.###";RETLOSS(N)
  363. 3580  NEXT N
  364. 3590  LOCATE 25,1
  365. 3600  INPUT"1 = DUMP TO PRINTER, 2 = NO DUMP ? ",DUMPIT
  366. 3610  IF DUMPIT=2 THEN 1850
  367. 3640  LPRINT"         RHO        RETLOSS dB"
  368. 3650  LPRINT
  369. 3660  FOR N=1 TO NUM
  370. 3670  LPRINT USING"      #.###^^^^";RHO(N);
  371. 3680  LPRINT USING"      +##.###";RETLOSS(N)
  372. 3690  NEXT N
  373. 3700  LOCATE 25,1:INPUT"PRESS ENTER TO RETURN TO MENU       ",ANYKEY
  374. 3710  CLS:ELECT=20:RETURN
  375. 3720  '************************ MENU ITEM 9 ***********************
  376. 3730  '
  377. 3740  PRINT"RHO CONVERTED TO VSWR (RHO NOT IN dB)"
  378. 3750  PRINT
  379. 3760  PRINT"PLEASE INDICATE IF OLD DATA WILL BE USED"
  380. 3770  PRINT"OR IF NEW DATA WILL BE ENTERED"
  381. 3780  INPUT"TYPE 1 TO ENTER NEW DATA, 2 TO USE OLD DATA ",WHICH
  382. 3790  IF WHICH=2 AND DATYPE<>6 AND DATYPE<>7 THEN INPUT"NO OLD DATA !!, PRESS ENTER FOR MENU",ANYKEY:CLS:ELECT=20:RETURN
  383. 3800  IF WHICH=2 THEN 3860
  384. 3810  NUM=1:PRINT
  385. 3820  PRINT"TO END INPUT: ENTER 0 FOR DATA"
  386. 3830  INPUT"ENTER RHO (REF COEF) ",RHO(NUM)
  387. 3840  IF RHO(NUM)=0 THEN NUM=NUM-1:GOTO 3860
  388. 3850  NUM=NUM+1:GOTO 3830
  389. 3860  FOR N=1 TO NUM
  390. 3870  VSWR(N)=(1+RHO(N))/(1-RHO(N))
  391. 3880  NEXT N
  392. 3890  DATYPE=9:CLS
  393. 3900  PRINT"      RHO CONVERTED TO VSWR"
  394. 3910  PRINT
  395. 3920  PRINT"        RHO        VSWR"
  396. 3930  FOR N=1 TO NUM
  397. 3940  PRINT USING"      #.####";RHO(N);
  398. 3950  PRINT USING"      ##.##";VSWR(N)
  399. 3960  NEXT N
  400. 3970  LOCATE 25,1
  401. 3980  INPUT"1 = DUMP TO PRINTER, 2 = NO DUMP ? ",DUMPIT
  402. 3990  IF DUMPIT=2 THEN 4050
  403. 4000  LPRINT"        RHO        VSWR"
  404. 4010  FOR N=1 TO NUM
  405. 4020  LPRINT USING"      #.####":RHO(N);
  406. 4030  LPRINT USING"      ##.##";VSWR(N)
  407. 4040  NEXT N
  408. 4050  LOCATE 25,1:INPUT"PRESS ENTER TO RETURN TO MENU       ",ANYKEY
  409. 4060  CLS:ELECT=20:RETURN
  410. 4070  '
  411. 4080  '************************ MENU ITEM 10 ***********************
  412. 4090  '
  413. 4100  PRINT"RHO CONVERTED TO MISMATCH LOSS IN dB"
  414. 4110  PRINT
  415. 4120  PRINT"PLEASE INDICATE IF OLD DATA WILL BE USED"
  416. 4130  PRINT"OR IF NEW DATA WILL BE ENTERED"
  417. 4140  INPUT"TYPE 1 TO ENTER NEW DATA, 2 TO USE OLD DATA ",WHICH
  418. 4150  IF WHICH=2 AND DATYPE<>6 AND DATYPE<>7 THEN INPUT"NO OLD DATA !!, PRESS ENTER FOR MENU",ANYKEY:CLS:ELECT=20:RETURN
  419. 4160  CLS:IF WHICH=2 THEN 4220
  420. 4170  NUM=1:PRINT
  421. 4180  PRINT"TO END INPUT: ENTER 0 FOR DATA"
  422. 4190  INPUT"ENTER RHO (REFL COEF) ",RHO(NUM)
  423. 4200  IF RHO(NUM)=0 THEN NUM=NUM-1:GOTO 4220
  424. 4210  NUM=NUM+1:GOTO 4190
  425. 4220  FOR N=1 TO NUM
  426. 4230  MMLOSS(N)=-KLOG*LOG(1-RHO(N)^2) 'MISMATCH LOSS IN dB *** PROB? ***
  427. 4240  NEXT N
  428. 4250  DATYPE=10:CLS
  429. 4260  PRINT"RHO CONVERTED TO MISMATCH LOSS IN dB"
  430. 4270  PRINT
  431. 4280  PRINT"       RHO    MISMATCH LOSS dB"
  432. 4290  PRINT
  433. 4300  FOR N=1 TO NUM
  434. 4310  PRINT USING"      #.####";RHO(N);
  435. 4320  PRINT USING"     +##.###";MMLOSS(N)
  436. 4330  NEXT N
  437. 4340  LOCATE 25,1
  438. 4350  INPUT"1 = DUMP TO PRINTER, 2 = NO DUMP ? ",DUMPIT
  439. 4360  IF DUMPIT=2 THEN 4430
  440. 4370  LPRINT"       RHO    MISMATCH LOSS dB"
  441. 4380  LPRINT
  442. 4390  FOR N=1 TO NUM
  443. 4400  LPRINT USING"      #.####";RHO(N);
  444. 4410  LPRINT USING"     +##.###";MMLOSS(N)
  445. 4420  NEXT N
  446. 4430  LOCATE 25,1:INPUT"PRESS ENTER TO RETURN TO MENU       ",ANYKEY
  447. 4440  CLS:ELECT=20:RETURN
  448. 4450  '
  449. 4460  '************************ MENU ITEM 11 ***********************
  450. 4470  '
  451. 4480  PRINT"CONVERTS Rs+/=JXs TO Rp,JXp (ALL IN OHMS)"
  452. 4490  PRINT
  453. 4500  PRINT"PLEASE INDICATE IF OLD DATA WILL BE USED"
  454. 4510  PRINT"OR IF NEW DATA WILL BE ENTERED"
  455. 4520  INPUT"TYPE 1 TO ENTER NEW DATA, 2 TO USE OLD DATA ",WHICH
  456. 4530  IF WHICH=2 AND DATYPE<>5 AND DATYPE<>14 THEN INPUT"NO OLD DATA !!, PRESS ENTER FOR MENU",ANYKEY:CLS:ELECT=20:RETURN
  457. 4540  CLS
  458. 4550  IF WHICH=2 THEN 4630
  459. 4560  NUM=1
  460. 4570  PRINT
  461. 4580  PRINT"TO END INPUT: ENTER 0,0 FOR DATA"
  462. 4590  INPUT"ENTER Rs/JXs IN OHMS, WITH SIGN ",RS(NUM),JXS(NUM)
  463. 4600  IF RS(NUM)=0 AND JXS(NUM)=0 THEN NUM=NUM-1:GOTO 4630
  464. 4610  NUM=NUM+1
  465. 4620  GOTO 4590
  466. 4630  FOR N=1 TO NUM
  467. 4640  IF RS(N)=0 THEN RS(N)=9.99E-07
  468. 4650  IF JXS(N)=0 THEN JXS(N)=9.99E-07
  469. 4660  JXP(N)=(RS(N)^2+JXS(N)^2)/JXS(N)
  470. 4670  RP(N)=(RS(N)^2+JXS(N)^2)/RS(N)
  471. 4680  NEXT N
  472. 4690  DATYPE=11:CLS
  473. 4700  PRINT"                   Rs+/-JXs CONVERTED TO Rp,JXp"
  474. 4710  PRINT
  475. 4720  PRINT"       Rs ohms       JXs ohms        Rp ohms       JXp ohms
  476. 4730  PRINT
  477. 4740  FOR N=1 TO NUM
  478. 4750  PRINT USING"     +#.###^^^^";RS(N),JXS(N),RP(N),JXP(N)
  479. 4760  NEXT N
  480. 4770  LOCATE 25,1
  481. 4780  INPUT"1 = DUMP TO PRINTER, 2 = NO DUMP ? ",DUMPIT
  482. 4790  IF DUMPIT=2 THEN 4850
  483. 4800  LPRINT"       Rs ohms       JXs ohms        Rp ohms       JXp ohms
  484. 4810  LPRINT
  485. 4820  FOR N=1 TO NUM
  486. 4830  LPRINT USING"     +#.###^^^^";RS(N),JXS(N),RP(N),JXP(N)
  487. 4840  NEXT N
  488. 4850  LOCATE 25,1
  489. 4860  INPUT"PRESS ENTER TO TO RETURN TO MENU    ",ANYKEY
  490. 4870  CLS:ELECT=20:RETURN
  491. 4880  '
  492. 4890  '************************ MENU ITEM 12 ***********************
  493. 4900  '
  494. 4910  PRINT"CONVERTS Rp,JXp TO Rs+/-JXs (ALL IN OHMS)"
  495. 4920  PRINT
  496. 4930  PRINT"PLEASE INDICATE IF OLD DATA WILL BE USED"
  497. 4940  PRINT"OR IF NEW DATA WILL BE ENTERED"
  498. 4950  INPUT"TYPE 1 TO ENTER NEW DATA, 2 TO USE OLD DATA ",WHICH
  499. 4960  IF WHICH=2 AND DATYPE<>11 THEN INPUT"NO OLD DATA !!, PRESS ENTER FOR MENU",ANYKEY:CLS:ELECT=20:RETURN
  500. 4970  CLS
  501. 4980  IF WHICH=2 THEN 5060
  502. 4990  NUM=1
  503. 5000  PRINT
  504. 5010  PRINT"TO END INPUT: ENTER 0,0 FOR DATA"
  505. 5020  INPUT"ENTER Rp,JXp IN OHMS, WITH SIGN ",RP(NUM),JXP(NUM)
  506. 5030  IF RP(NUM)=0 AND JXP(NUM)= 0 THEN NUM=NUM-1:GOTO 5060
  507. 5040  NUM=NUM+1
  508. 5050  GOTO 5020
  509. 5060  FOR N=1 TO NUM
  510. 5070  IF RP(N)=0 THEN RP(N)=9.99E-07
  511. 5080  IF JXP(N)=0 THEN JXP(N)=9.99E-07
  512. 5090  RS(N)=RP(N)*JXP(N)^2/(RP(N)^2+JXP(N)^2)
  513. 5100  JXS(N)=RP(N)^2*JXP(N)/(RP(N)^2+JXP(N)^2)
  514. 5110  NEXT N
  515. 5120  DATYPE=12:CLS
  516. 5130  PRINT"                   Rp,JXp CONVERTED TO Rs+/-JXs"
  517. 5140  PRINT
  518. 5150  PRINT"       Rp ohms       JXp ohms        Rs ohms       JXs ohms
  519. 5160  PRINT
  520. 5170  FOR N=1 TO NUM
  521. 5180  PRINT USING"     +#.###^^^^";RP(N),JXP(N),RS(N),JXS(N)
  522. 5190  NEXT N
  523. 5200  LOCATE 25,1
  524. 5210  INPUT"1 = DUMP TO PRINTER, 2 = NO DUMP ? ",DUMPIT
  525. 5220  IF DUMPIT=2 THEN 5280
  526. 5230  LPRINT"       Rp ohms       JXp ohms        Rs ohms       JXs ohms
  527. 5240  LPRINT
  528. 5250  FOR N=1 TO NUM
  529. 5260  LPRINT USING"     +#.###^^^^";RP(N),JXP(N),RS(N),JXS(N)
  530. 5270  NEXT N
  531. 5280  LOCATE 25,1
  532. 5290  INPUT"PRESS ENTER TO TO RETURN TO MENU    ",ANYKEY
  533. 5300  CLS:ELECT=20:RETURN
  534. 5310  '
  535. 5320  '************************ MENU ITEM 13 ***********************
  536. 5330  '
  537. 5340  PRINT"CONVERTS Rs+/-JXs TO Z (OHMS) ANGLE THETA (DEG.)"
  538. 5350  PRINT
  539. 5360  PRINT"PLEASE INDICATE IF OLD DATA WILL BE USED"
  540. 5370  PRINT"OR IF NEW DATA WILL BE ENTERED"
  541. 5380  INPUT"TYPE 1 TO ENTER NEW DATA, 2 TO USE OLD DATA ",WHICH
  542. 5390  IF WHICH=2 AND DATYPE<>5 AND DATYPE<>12 THEN INPUT"NO OLD DATA !!, PRESS ENTER FOR MENU",ANYKEY:CLS:ELECT=20:RETURN
  543. 5400  CLS
  544. 5410  IF WHICH=2 THEN 5490
  545. 5420  NUM=1
  546. 5430  PRINT
  547. 5440  PRINT"TO END INPUT: ENTER 0,0 FOR DATA"
  548. 5450  INPUT"ENTER Rs,JXs IN OHMS, WITH SIGN ",RS(NUM),JXS(NUM)
  549. 5460  IF RS(NUM)=0 AND JXS(NUM)=0 THEN NUM=NUM-1:GOTO 5490
  550. 5470  NUM=NUM+1
  551. 5480  GOTO 5450
  552. 5490  FOR N=1 TO NUM
  553. 5500  IF RS(N)=0 THEN RS(N)=9.99E-07
  554. 5510  IF JXS(N)=0 THEN JXS(N)=9.99E-07
  555. 5520  THETA(N)=ATN(JXS(N)/RS(N))*180/PI
  556. 5530  Z(N)=(RS(N)^2+JXS(N)^2)^0.5
  557. 5540  NEXT N
  558. 5550  DATYPE=13:CLS
  559. 5560  PRINT"                Rs+/-JXs CONVERTED TO Z ANGLE THETA"
  560. 5570  PRINT
  561. 5580  PRINT"       Rs ohms       JXs ohms        Z ohms      THETA deg."
  562. 5590  PRINT
  563. 5600  FOR N=1 TO NUM
  564. 5610  PRINT USING"     +#.###^^^^";RS(N),JXS(N),Z(N);
  565. 5620  PRINT USING"     +###.##";THETA(N)
  566. 5630  NEXT N
  567. 5640  LOCATE 25,1
  568. 5650  INPUT"1 = DUMP TO PRINTER, 2 = NO DUMP ? ",DUMPIT
  569. 5660  IF DUMPIT=2 THEN 5730
  570. 5670  LPRINT"       Rs ohms       JXs ohms        Z ohms      THETA deg."
  571. 5680  LPRINT
  572. 5690  FOR N=1 TO NUM
  573. 5700  LPRINT USING"     +#.###^^^^";RS(N),JXS(N),Z(N);
  574. 5710  LPRINT USING"     +###.##";THETA(N)
  575. 5720  NEXT N
  576. 5730  LOCATE 25,1
  577. 5740  INPUT"PRESS ENTER TO RETURN TO MENU       ",ANYKEY
  578. 5750  CLS:ELECT=20:RETURN
  579. 5760  '
  580. 5770  '************************ MENU ITEM 14 ***********************
  581. 5780  '
  582. 5790  PRINT"CONVERTS Z (OHMS) ANGLE THETA (DEG.) TO Rs+/-JXs (OHMS)"
  583. 5800  PRINT
  584. 5810  PRINT"PLEASE INDICATE IF OLD DATA WILL BE USED"
  585. 5820  PRINT"OR IF NEW DATA WILL BE ENTERED"
  586. 5830  INPUT"TYPE 1 TO ENTER NEW DATA, 2 TO USE OLD DATA ",WHICH
  587. 5840  IF WHICH=2 AND DATYPE<>13 THEN INPUT"NO OLD DATA !!, PRESS ENTER FOR MENU",ANYKEY:CLS:ELECT=20:RETURN
  588. 5850  CLS
  589. 5860  IF WHICH=2 THEN 5940
  590. 5870  NUM=1
  591. 5880  PRINT
  592. 5890  PRINT"TO END INPUT: ENTER 0,0 FOR DATA"
  593. 5900  INPUT"ENTER Z IN OHMS, THETA IN DEGREES ",Z(NUM),THETA(NUM)
  594. 5910  IF Z(NUM)=0 AND THETA(NUM)=0 THEN NUM=NUM-1:GOTO 5940
  595. 5920  NUM=NUM+1
  596. 5930  GOTO 5900
  597. 5940  FOR N=1 TO NUM
  598. 5950  JXS(N)=Z(N)*SIN(PI*THETA(N)/180)
  599. 5960  RS(N)=Z(N)*COS(PI*THETA(N)/180)
  600. 5970  NEXT N
  601. 5980  DATYPE=14:CLS
  602. 5990  PRINT"              Z ANGLE THETA CONVERTED TO Rs+/-JXs"
  603. 6000  PRINT
  604. 6010  PRINT"       Z ohms       THETA deg.       Rs ohms       JXs ohms"
  605. 6020  PRINT
  606. 6030  FOR N=1 TO NUM
  607. 6040  PRINT USING"     +#.###^^^^";Z(N),THETA(N),RS(N),JXS(N)
  608. 6050  NEXT N
  609. 6060  LOCATE 25,1
  610. 6070  INPUT"1 = DUMP TO PRINTER, 2 = NO DUMP ? ",DUMPIT
  611. 6080  IF DUMPIT=2 THEN 6140
  612. 6090  LPRINT"       Z ohms       THETA deg.       Rs ohms       JXs ohms"
  613. 6100  LPRINT
  614. 6110  FOR N=1 TO NUM
  615. 6120  LPRINT USING"     +#.###^^^^";Z(N),THETA(N),RS(N),JXS(N)
  616. 6130  NEXT N
  617. 6140  LOCATE 25,1
  618. 6150  INPUT"PRESS ENTER TO RETURN TO MENU       ",ANYKEY
  619. 6160  CLS:ELECT=20:RETURN
  620. 6170  END
  621.