home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / david4 / resonant.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1986-12-11  |  2.6 KB  |  104 lines

  1. 100  CLS
  2. 110  SCREEN 0
  3. 120  WIDTH 80
  4. 130  KEY OFF
  5. 140  '
  6. 145  PRINT"THE BROADCASTERS DATABASE PRESENTS:":PRINT
  7. 150  PRINT "***************************************
  8. 160  PRINT "**   Resonant Frequency Calculator   **
  9. 170  PRINT "**   Vers 1.1          Dec. 20,1982  **
  10. 180  PRINT "***************************************
  11. 190  '
  12. 200  LOCATE 8,1
  13. 210  PRINT "- Enter values or press enter to skip -"
  14. 220  PRINT "       (two values only please)"
  15. 230  '
  16. 240  LOCATE 10,1
  17. 250  INPUT "Frequency in hertz (resonate)     = ",F
  18. 260  INPUT "Capacitive reactance in ohms      = ",XC
  19. 270  INPUT "Inductive reactance in ohms       = ",XL
  20. 280  INPUT "Capacitance in pico-farads        = ",C
  21. 290  INPUT "inductance in micro-henries       = ",L
  22. 300  '
  23. 310  PI = 6.28318               '**  2 * pi
  24. 320  '
  25. 330  IF F = 0 THEN 400          '**  must calculate frequency
  26. 340  '
  27. 350  IF (XC <> 0) THEN GOSUB 1000 : GOTO 800
  28. 360  IF (XL <> 0) THEN GOSUB 1100 : GOTO 800
  29. 370  IF (C  <> 0) THEN GOSUB 1200 : GOTO 800
  30. 380  IF (L  <> 0) THEN GOSUB 1300 : GOTO 800
  31. 390  GOTO 900
  32. 400  '
  33. 410  IF (XC <> 0) AND (C <> 0) THEN GOSUB 1400 : GOTO 800
  34. 420  IF (XL <> 0) AND (C <> 0) THEN GOSUB 1430 : GOTO 800
  35. 430  IF (XL <> 0) AND (L <> 0) THEN GOSUB 1500 : GOTO 800
  36. 440  IF (XC <> 0) AND (L <> 0) THEN GOSUB 1530 : GOTO 800
  37. 450  IF (C <> 0)  AND (L <> 0) THEN GOSUB 1600 : GOTO 800
  38. 460  GOTO 900
  39. 470  '
  40. 800  '**  Routine to print values on screen
  41. 810  LOCATE 10,37 : PRINT F  : LOCATE 10,53 : PRINT "hz"
  42. 820  LOCATE 11,37 : PRINT XC : LOCATE 11,53 : PRINT "ohms
  43. 830  LOCATE 12,37 : PRINT XL : LOCATE 12,53 : PRINT "ohms
  44. 840  LOCATE 13,37 : PRINT C  : LOCATE 13,53 : PRINT "pf
  45. 850  LOCATE 14,37 : PRINT L  : LOCATE 14,53 : PRINT "uh
  46. 860  LOCATE 20,1 : INPUT "PRESS T TO TERMINATE PROGRAM, ENTER TO CONTINUE - ",A$
  47. 865  IF A$="T" THEN 1650
  48. 870  CLEAR : POKE 106,0 : CLS : GOTO 150
  49. 880  '
  50. 900  '**  Error message routine - not enough data input
  51. 910  LOCATE 20,1
  52. 920  PRINT "Insufficient data to calculate values from
  53. 930  INPUT "Press enter to continue - ",A$
  54. 940  CLEAR : POKE 106,0 : CLS : GOTO 150
  55. 950  '
  56. 1000  '** Frequency and Xc are known
  57. 1010  C = 10^12 / ( PI * F * XC )
  58. 1020  XL = XC
  59. 1030  L = XL * 10^6 / ( PI * F )
  60. 1040  RETURN
  61. 1050  '
  62. 1100  '** Frequency and Xl are known
  63. 1110  L = XL * 10^6 / ( PI * F )
  64. 1120  XC = XL
  65. 1130  C = 10^12 / ( PI * F * XC )
  66. 1140  RETURN
  67. 1150  '
  68. 1200  '** Frequency and C are known
  69. 1210  XC = 10^12 / ( PI * F * C )
  70. 1220  XL = XC
  71. 1230  L = XL * 10^6 / ( PI * F )
  72. 1240  RETURN
  73. 1250  '
  74. 1300  '** Frequency and L are known
  75. 1310  XL = ( PI * F * L / 10^6 )
  76. 1320  XC = XL
  77. 1330  C = 10^12 / ( PI * F * XC )
  78. 1340  RETURN
  79. 1350  '
  80. 1400  '** XC and C are known
  81. 1410  XL = XC
  82. 1420  GOTO 1450
  83. 1430  '** XL and C are known
  84. 1440  XC = XL
  85. 1450  F = 10^12 / ( PI * C * XC )
  86. 1460  L = XL * 10^6 / ( PI * F )
  87. 1470  RETURN
  88. 1480  '
  89. 1500  '** XL and L are known
  90. 1510  XC = XL
  91. 1520  GOTO 1550
  92. 1530  '** XC and L are known
  93. 1540  XL = XC
  94. 1550  F = XL * 10^6 / ( PI * L )
  95. 1560  C = 10^12 / ( PI * XC * F )
  96. 1570  RETURN
  97. 1580  '
  98. 1600  '** C and L are known
  99. 1610  F = 10^9 / (PI * SQR( L * C ))
  100. 1620  XC = 10^12 / ( PI * F * C )
  101. 1630  XL = XC
  102. 1640  RETURN
  103. 1650  END
  104.