home *** CD-ROM | disk | FTP | other *** search
/ World of Ham Radio 1997 / WOHR97_AmSoft_(1997-02-01).iso / basic / hamcalc.bas < prev    next >
BASIC Source File  |  1997-02-01  |  11KB  |  286 lines

  1. 10 CLS:PRINT "THIS PROGRAM WILL COMPUTE MISCELLANEOUS ";
  2. 20 PRINT "ELECTRONIC FORMULAS":PRINT
  3. 30 PRINT "IF NOT SPECIFIED, ALL ENTRIES ARE IN UNITS":PRINT
  4. 40 REM PROGRAM BY PAUL CRABTREE
  5. 50 PRINT TAB(21)"ENTER NUMBER OF ITEM":PRINT
  6. 60 CLEAR
  7. 70 PRINT
  8. 80 DIM R1(20),C1(20),L1(20)
  9. 90 FOR X=1 TO 12:READ B$:IF B$="777"GOTO 110
  10. 100 NEXT X
  11. 110 FOR A=1 TO 20:READ B$
  12. 120 IF B$="999"GOTO 240
  13. 130 ON A GOTO 150,160,150,160,150,160,150,160,150,160
  14. 140 ON A-10 GOTO 150,160,150,160,150,160,150,160
  15. 150 PRINT TAB(5)B$,:GOTO 170
  16. 160 PRINT TAB(40)B$
  17. 170 NEXT A
  18. 180 PRINT "IF YOU HAVE MORE VALUES FOR THIS PROGRAM"
  19. 190 PRINT "TYPE 'YES'. IF YOU WISH TO GO TO THE MAIN LIST THEN"
  20. 200 LINE INPUT "TYPE 'N0' ? ";M$
  21. 210 IF M$="YES" OR M$="yes" OR M$="y" THEN RETURN
  22. 220 IF M$="NO" OR M$="no" OR M$="n" GOTO 10
  23. 230 GOTO 180
  24. 240 PRINT :INPUT "WHAT ITEM NUMBER FROM MAIN LIST  ";Q
  25. 250 IF Q>18 GOTO 240
  26. 260 IF Q<1 GOTO 240
  27. 270 ON Q GOTO 390,1200,1480,1590,1730,1950,2010,2170,2300,950,1010
  28. 280 ON Q-11 GOTO 1050,1100,2640,1280,1370,500,610
  29. 290 DATA "BLACK","BROWN","RED","ORANGE","YELLOW","GREEN"
  30. 300 DATA "BLUE","VIOLET","GRAY","WHITE","777"
  31. 310 DATA "1 PARALLEL RESISTORS","2 RESONANT FREQUENCY"
  32. 320 DATA "3 SERIES CAPACITORS","4 REACTANCE","5 IMPEDANCE"
  33. 330 DATA "6 ANTENNA LENGTH","7 OHMS LAW","8 POWER FORMULA"
  34. 340 DATA "9 RESISTOR COLOR CODE","10 TRANSFORMER TURNS RATIO"
  35. 350 DATA "11 DECIBELS","12 CONDUCTANCE","13 FREQUENCY TO TIME"
  36. 360 DATA "14 TRANSMISSION LINE","15 ANT FIELD STRENGTH"
  37. 370 DATA "16 PEAK RADAR PULSE POWER","17 PARALLEL INDUCTORS"
  38. 380 DATA "18 PROGRAM CONVERSION TABLE","999"
  39. 390 PRINT "THIS PROGRAM WILL CALCULATE PARALLEL RESISTORS"
  40. 400 INPUT "HOW MANY RESISTORS  ";R
  41. 410 T=0:IF R>18 GOTO 400
  42. 420 IF R<2 GOTO 400
  43. 430 FOR X=1 TO R:PRINT "RESISTOR VALUE ";X;" IN OHMS";
  44. 440 INPUT " ? ";R1(X):IF X=R GOTO 460
  45. 450 NEXT X
  46. 460 FOR X=1 TO R:T=T+(1/R1(X)):IF X=R GOTO 480
  47. 470 NEXT X
  48. 480 PRINT "TOTAL RESISTANCE IS ";1/T;" OHMS"
  49. 490 GOSUB 180:PRINT :GOTO 400
  50. 500 PRINT "THIS PROGRAM WILL CALCULATE PARALLEL INDUCTORS"
  51. 510 INPUT "HOW MANY INDUCTORS ? ";L
  52. 520 T=0:IF L>18 GOTO 510
  53. 530 IF L<2 GOTO 510
  54. 540 FOR X=1 TO L:PRINT "INDUCTOR VALUE ";X;" IN HENRYS";
  55. 550 INPUT " ? ";L1(X):IF X=L GOTO 570
  56. 560 NEXT X
  57. 570 FOR X=1 TO L:T=T+(1/L1(X)):IF X=L GOTO 590
  58. 580 NEXT X
  59. 590 PRINT "TOTAL INDUCTANCE IS ";1/T;" HENRYS"
  60. 600 GOSUB 180:PRINT :GOTO 510
  61. 610 PRINT "THIS PROGRAM WILL CONVERT ENTRIES (TO BE USED IN ";
  62. 620 PRINT "MAIN PROGRAM) TO UNITS"
  63. 630 PRINT "CONVERT ITEM"
  64. 640 PRINT "(1)GIGA, (2)MEGA, (3)KILO, (4)MILLI, (5)MICRO,";
  65. 650 PRINT " (6)NANO, OR (7)PICO"
  66. 660 INPUT "TO UNITS  ";U
  67. 670 IF U=1 GOTO 890
  68. 680 IF U=2 GOTO 740
  69. 690 IF U=3 GOTO 770
  70. 700 IF U=4 GOTO 800
  71. 710 IF U=5 GOTO 830
  72. 720 IF U=6 GOTO 920
  73. 730 IF U=7 GOTO 860
  74. 740 INPUT "MEGA VALUE ? ";U
  75. 750 PRINT "MEGA VALUE ";U;" IS ";U*1000000!;" IN UNITS"
  76. 760 GOSUB 180:PRINT :GOTO 630
  77. 770 INPUT "KILO VALUE ? ";U
  78. 780 PRINT "KILO VALUE ";U;" IS ";U*1000;" IN UNITS"
  79. 790 GOSUB 180:PRINT :GOTO 630
  80. 800 INPUT "MILLI VALUE  ";U
  81. 810 PRINT "MILLI VALUE ";U;" IS ";U*.001;" IN UNITS"
  82. 820 GOSUB 180:PRINT :GOTO 630
  83. 830 INPUT "MICRO VALUE ? ";U
  84. 840 PRINT "MICRO VALUE ";U;" IS ";U*.000001;" IN UNITS"
  85. 850 GOSUB 180:PRINT :GOTO 630
  86. 860 INPUT "PICO VALUE ? ";U
  87. 870 PRINT "PICO VALUE ";U;" IS ";U*1E-12;" IN UNITS"
  88. 880 GOSUB 180:PRINT :GOTO 630
  89. 890 INPUT "GIGA VALUE ? ";U
  90. 900 PRINT "GIGA VALUE ";U;" IS ";U*1000000000#;" IN UNITS"
  91. 910 GOSUB 180:PRINT :GOTO 630
  92. 920 INPUT "NANO VALUE ? ";U
  93. 930 PRINT "NANO VALUE ";U;" IS ";U*9.999999E-10;" IN UNITS"
  94. 940 GOSUB 180:PRINT :GOTO 630
  95. 950 PRINT "THIS PROGRAM WILL CALCULATE SECONDARY VOLTAGE"
  96. 960 INPUT "PRIMARY VOLTAGE ? ";P
  97. 970 INPUT "SECONDARY TURNS ? ";S
  98. 980 INPUT "PRIMARY TURNS  ";P1
  99. 990 PRINT "THE SECONDARY VOLTAGE IS ";P*(S/P1)
  100. 1000 GOSUB 180:PRINT :GOTO 960
  101. 1010 PRINT "THIS PROGRAM WILL CALCULATE DECIBEL RATIO OF TWO POWERS"
  102. 1020 INPUT "ENTER POWER ONE  ";P1:INPUT "ENTER POWER TWO  ";P2
  103. 1030 PRINT "THE DECIBEL VALUE IS ";10*(LOG(P1/P2)/LOG(10));" DB"
  104. 1040 GOSUB 180:PRINT :GOTO 1020
  105. 1050 PRINT "THIS PROGRAM WILL CALCULATE CONDUCTANCE IN MHOS"
  106. 1060 INPUT "WHAT IS THE RESISTANCE  ";R
  107. 1070 IF R<=0 GOTO 1060
  108. 1080 PRINT "THE CONDUCTANCE IS ";1/R;" MHOS"
  109. 1090 GOSUB 180:PRINT :GOTO 1060
  110. 1100 PRINT "THIS PROGRAM WILL CALCULATE FREQUENCY TO TIME"
  111. 1110 INPUT "IS FREQUENCY IN HZ (1) OR KHZ (2)  ";M
  112. 1120 IF M=1 GOTO 1150
  113. 1130 IF M=2 GOTO 1170
  114. 1140 GOTO 1110
  115. 1150 INPUT "FREQUENCY IN HZ  ";F
  116. 1160 PRINT "THE FREQUENCY IS EQUAL TO ";1/F;" SECONDS":GOTO 1190
  117. 1170 INPUT "FREQUENCY IN KHZ  ";F
  118. 1180 PRINT "THE FREQUENCY IS EQUAL TO ";1/(F/1000);" MICROSECONDS"
  119. 1190 GOSUB 180:PRINT :GOTO 1110
  120. 1200 PRINT "THIS PROGRAM WILL CALCULATE RESONANT FREQUENCY"
  121. 1210 INPUT "INDUCTANCE IN HENRYS ? ";L
  122. 1220 INPUT "CAPACITANCE IN FARADS ? ";C
  123. 1230 P=2*(4*ATN(1)):P=P*(SQR(L*C)):P=1/P
  124. 1240 PRINT "THE RESONANT FREQUENCY IS ";P;" HZ"
  125. 1250 A=P/1000:B=A/1000:C=B/1000
  126. 1260 PRINT "IN KHZ";A;" IN MHZ";B;" IN GEGA HZ";C
  127. 1270 GOSUB 180:PRINT :GOTO 1210
  128. 1280 PRINT "THIS PROGRAM WILL CALCULATE FIELD STRENGTH"
  129. 1290 PRINT "AT MODERATE DISTANCES FROM THE TRANSMITTING ANTENNA"
  130. 1300 INPUT "WHAT IS THE EFFECTIVE ANTENNA HEIGHT IN METERS ? ";B
  131. 1310 INPUT "WHAT IS THE ANTENNA CURRENT IN AMPERES ? ";I
  132. 1320 INPUT "WHAT IS THE OPERATING WAVELENGTH IN METERS ? ";W
  133. 1330 INPUT "WHAT IS THE DISTANCE FROM ANTENNA IN METERS ? ";R
  134. 1340 E=(188*B*I)/(W*R)
  135. 1350 PRINT "THE FIELD STRENGTH IS ";E;" MILLIVOLTS PER METER"
  136. 1360 GOSUB 180:PRINT :GOTO 1300
  137. 1370 PRINT "THIS PROGRAM WILL CALCULATE THE PEAK"
  138. 1380 PRINT "POWER OF A RADAR PULSE"
  139. 1390 INPUT "WHAT IS THE PULSE WIDTH IN MICROSECONDS ? ";W
  140. 1400 INPUT "WHAT IS THE PULSE REPETION RATE  ";R
  141. 1410 INPUT "WHAT IS THE AVERAGE POWER IN WATTS ? ";P
  142. 1420 D1=1/R:W1=W/1000000!
  143. 1430 D1=W1/D1
  144. 1440 P1=P/D1:REM PEAK POWER
  145. 1450 PRINT "THE PEAK POWER IS ";P1;" WATTS"
  146. 1460 PRINT "THE DUTY CYCLE IS ";D1
  147. 1470 GOSUB 180:PRINT :GOTO 1370
  148. 1480 PRINT "THIS PROGRAM WILL CALCULATE SERIES CAPACITORS"
  149. 1490 INPUT "HOW MANY CAPACITORS ? ";C
  150. 1500 T=0:IF C>18 GOTO 1490
  151. 1510 IF C<2 GOTO 1490
  152. 1520 FOR X=1 TO C:PRINT "CAPACITOR VALUE ";X;" IN FARADS";
  153. 1530 INPUT " ? ";C1(X):IF X=C GOTO 1550
  154. 1540 NEXT X
  155. 1550 FOR X=1 TO C:T=T+(1/C1(X)):IF X=C GOTO 1570
  156. 1560 NEXT X
  157. 1570 PRINT "TOTAL CAPACITANCE IS ";1/T;" FARADS"
  158. 1580 GOSUB 180:PRINT :GOTO 1490
  159. 1590 PRINT "THIS PROGRAM WILL CALCULATE INDUCTIVE AND CAPACITIVE ";
  160. 1600 PRINT "REACTANCE"
  161. 1610 INPUT "SOLVE FOR INDUCTIVE (1) OR CAPACITIVE (2) REACTANCE ? ";R
  162. 1620 IF R=2 GOTO 1680
  163. 1630 PRINT "SOLVE FOR INDUCTIVE REACTANCE"
  164. 1640 INPUT "FREQUENCY IN HERTZ ? ";F
  165. 1650 INPUT "INDUCTANCE IN HENRYS ? ";L
  166. 1660 P=2*(4*ATN(1))
  167. 1670 PRINT "THE INDUCTIVE REACTANCE IS ";P*(F*L);" OHMS":GOTO 1720
  168. 1680 PRINT "SOLVE FOR CAPACITIVE REACTANCE"
  169. 1690 INPUT "FREQUENCY IN HERTZ ? ";F
  170. 1700 INPUT "CAPACITANCE IN FARADS ? ";C
  171. 1710 PRINT "THE CAPACITIVE REACTANCE IS ";1/(3.1416*(F*C));" OHMS"
  172. 1720 GOSUB 180:PRINT :GOTO 1610
  173. 1730 PRINT "THIS PROGRAM WILL CALCULATE SERIES OR PARALLEL IMPEDANCE"
  174. 1740 INPUT "SERIES (1) OR PARALLEL (2) CIRCUIT ? ";Q
  175. 1750 IF Q=2 GOTO 1860
  176. 1760 INPUT "RESISTANCE VALUE IN OHMS ? ";R
  177. 1770 INPUT "CAPACITANCE VALUE IN FARADS ? ";C
  178. 1780 INPUT "INDUCTANCE VALUE IN HENRYS  ";L
  179. 1790 IF C=L THEN Z=R:GOTO 1840
  180. 1800 IF L>C GOTO 1820
  181. 1810 IF C>L GOTO 1830
  182. 1820 Z=L-C:Z=Z*Z:Z=Z+(R*R):Z=SQR(Z):GOTO 1840
  183. 1830 Z=C-L:Z=Z*Z:Z=Z+(R*R):Z=SQR(Z)
  184. 1840 PRINT "THE IMPEDANCE IS ";Z;" OHMS"
  185. 1850 GOTO 1940
  186. 1860 INPUT "RESISTANCE VALUE IN OHMS ? ";R
  187. 1870 INPUT "CAPACITANCE VALUE IN FARADS ? ";C
  188. 1880 INPUT "INDUCTANCE VALUE IN HENRYS ? ";L
  189. 1890 A=12/R:B=12/C:C=12/L
  190. 1900 IF B>C THEN X=B-C
  191. 1910 IF C>B THEN X=C-B
  192. 1920 T=A*A:X=X*X
  193. 1930 PRINT "THE IMPEDANCE IS ";12/(SQR(T+X));" OHMS"
  194. 1940 GOSUB 180:PRINT :GOTO 1740
  195. 1950 PRINT "THIS PROGRAM WILL CALCULATE ANTENNA LENGTH"
  196. 1960 INPUT "FREQUENCY IN MHZ  ";F
  197. 1970 A=468/F:PRINT "THE HALF WAVE ANTENNA LENGTH IS ";A;" FEET";
  198. 1980 PRINT " OR ";:PRINT A*12;:PRINT " INCHES"
  199. 1990 PRINT "OPERATION WILL BE IN THE ";300/F;" METER BAND"
  200. 2000 GOSUB 180:PRINT :GOTO 1960
  201. 2010 PRINT "THIS PROGRAM WILL CALCULATE OHMS LAW"
  202. 2020 LINE INPUT "SOLVE FOR WHAT UNIT (E),(I), OR (R) ? ";U$
  203. 2030 IF U$="E"GOTO 2070
  204. 2040 IF U$="I"GOTO 2100
  205. 2050 IF U$="R"GOTO 2130
  206. 2060 GOTO 2020
  207. 2070 INPUT "CURRENT VALUE ? ";I
  208. 2080 INPUT "RESISTANCE VALUE ? ";R
  209. 2090 A=I*R:PRINT "THE VOLTAGE IS ";A:GOTO 2160
  210. 2100 INPUT "VOLTAGE VALUE ? ";E
  211. 2110 INPUT "RESISTANCE VALUE ? ";R
  212. 2120 A=E/R:PRINT "THE CURRENT IS ";A:GOTO 2160
  213. 2130 INPUT "VOLTAGE VALUE ? ";E
  214. 2140 INPUT "CURRENT VALUE ? ";I
  215. 2150 A=E/I:PRINT "THE RESISTANCE IS ";A
  216. 2160 GOSUB 180:PRINT :GOTO 2020
  217. 2170 PRINT "THIS PROGRAM WILL CALCULATE FOR POWER"
  218. 2180 INPUT "WHAT TWO UNITS (1)I&R, (2)E&R, (3)E&I  ";U
  219. 2190 IF U=1 GOTO 2230
  220. 2200 IF U=2 GOTO 2250
  221. 2210 IF U=3 GOTO 2270
  222. 2220 GOTO 2180
  223. 2230 INPUT "VALUE OF I,R ? ";A,B
  224. 2240 PRINT "POWER EQUALS ";B*(A*A);" WATTS":GOTO 2290
  225. 2250 INPUT "VALUE OF E,R ? ";A,B
  226. 2260 PRINT "POWER EQUALS ";B/(A*A);" WATTS":GOTO 2290
  227. 2270 INPUT "VALUE OF E,I ? ";A,B
  228. 2280 PRINT "POWER EQUALS ";A*B;" WATTS"
  229. 2290 GOSUB 180:PRINT :GOTO 2180
  230. 2300 PRINT "THIS PROGRAM WILL CALCULATE THE RESISTOR COLOR CODE"
  231. 2310 LINE INPUT "FIRST COLOR ? ";C1$
  232. 2320 RESTORE :A=0:FOR X=1 TO 12
  233. 2330 READ Q$:IF Q$=C1$THEN A=A:GOTO 2360
  234. 2340 IF Q$="777"GOTO 2310
  235. 2350 A=A+10:NEXT X
  236. 2360 LINE INPUT "SECOND COLOR ? ";C2$
  237. 2370 RESTORE :B=0:FOR X=1 TO 12
  238. 2380 READ R$:IF R$=C2$THEN B=B:GOTO 2410
  239. 2390 IF R$="777"GOTO 2360
  240. 2400 B=B+1:NEXT X
  241. 2410 LINE INPUT "THIRD COLOR ? ";C3$
  242. 2420 IF C3$="GOLD"THEN C=.1:GOTO 2480
  243. 2430 IF C3$="SILVER"THEN C=.01:GOTO 2480
  244. 2440 RESTORE :C=1:FOR X=1 TO 12
  245. 2450 READ S$:IF S$=C3$THEN C=C:GOTO 2480
  246. 2460 IF S$="777"GOTO 2410
  247. 2470 C=C*10:NEXT X
  248. 2480 K=C*(A+B):PRINT "THE RESISTANCE IS ";K;" OHMS"
  249. 2490 S=K
  250. 2500 K=K/1000:PRINT "OR ";K;" KILO OHMS"
  251. 2510 K=K/1000:PRINT "OR ";K;" MEGA OHMS"
  252. 2520 K=K/1000:PRINT "OR ";K;" GIGA OHMS"
  253. 2530 PRINT "ENTRIES FOR NEXT QUESTION (NONE, SILVER, OR GOLD)"
  254. 2540 LINE INPUT "FOURTH COLOR ? ";C4$
  255. 2550 IF C4$="NONE"GOTO 2580
  256. 2560 IF C4$="SILVER"GOTO 2590
  257. 2570 IF C4$="GOLD"GOTO 2600
  258. 2580 M=.2*S:GOTO 2620
  259. 2590 M=9.999999E-02*S:GOTO 2620
  260. 2600 M=.05*S:GOTO 2620
  261. 2610 GOSUB 180:PRINT :GOTO 2310
  262. 2620 PRINT "THE RESISTOR TOLERANCE IS ";M
  263. 2630 PRINT "THE TOLERANCE RANGE IS ";S-M;" TO ";S+M;" OHMS":GOTO 2610
  264. 2640 PRINT "THIS PROGRAM WILL CALCULATE THE CHARACTERISTIC"
  265. 2650 PRINT "IMPEDANCE OF TRANSMISSION LINES"
  266. 2660 LINE INPUT "IS TRANSMISSION LINE TWO WIRE PARALLEL ? ";X$
  267. 2670 IF X$="YES" OR X$="yes" OR X$="y" GOTO 2710
  268. 2680 LINE INPUT "IS TRANSMISSION LINE A COAXIAL LINE ? ";X$
  269. 2690 IF X$="YES" OR X$="yes" OR X$="y" GOTO 2770
  270. 2700 PRINT :PRINT "TYPE 'YES' FOR ONE OF THE QUESTIONS":GOTO 2660
  271. 2710 PRINT :PRINT "PARALLEL TRANSMISSION LINE"
  272. 2720 INPUT "WHAT IS THE SPACING BETWEEN CONDUCTORS IN INCHES  ";A
  273. 2730 INPUT "WHAT IS THE RADIUS OF ONE CONDUCTOR IN INCHES  ";B
  274. 2740 Z=276*(LOG(A/B))*.434295
  275. 2750 PRINT :PRINT "THE IMPEDANCE IS ";Z;" OHMS"
  276. 2760 GOSUB 180:PRINT :GOTO 2660
  277. 2770 PRINT :PRINT "COAXIAL TRANSMISSION LINE"
  278. 2780 PRINT "WHAT IS THE INNER DIAMETER OF THE OUTER CONDUCTOR"
  279. 2790 INPUT "IN INCHES  ";A
  280. 2800 PRINT "WHAT IS THE OUTER DIAMETER OF THE INNER CONDUCTOR"
  281. 2810 INPUT "IN INCHES  ";B
  282. 2820 Z=138*(LOG(A/B))*.434295
  283. 2830 PRINT :PRINT "THE IMPEDANCE IS ";Z;" OHMS"
  284. 2840 GOSUB 180:PRINT :GOTO 2660
  285. 2850 END
  286.