home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / hamradio / induct20.bas < prev    next >
BASIC Source File  |  1994-07-13  |  16KB  |  391 lines

  1. 10 REM "INDUCT" consolidates "STRP-IND", "STRP-LNG",,"WIRE-IND", "WIRE-LNG",
  2. 20 REM  and "TPI" into one program, and adds several inductance calculations
  3. 30 REM  v1.0 by Bob Stein, W6NBI, 12/31/86.
  4. 40 REM  v2.0 by Bob Stein, W6NBI, 4/17/87.  Error trapping changed to to cover
  5. 50 REM  all menu selections.  New inductance calculations added.
  6. 60 REM ************************************************************************
  7. 70 PRINT CHR$(26) : CLEAR : ON ERROR GOTO 3610
  8. 80 PI=3.14159
  9. 90 PRINT "THIS PROGRAM WILL CALCULATE THE FOLLOWING FOR ROUND COPPER WIRE OR COPPER STRAP:
  10. 100 PRINT "   1 - Inductance of a single-layer coil
  11. 110 PRINT "   2 - No. of turns in a single-layer coil for a specified inductance
  12. 120 PRINT "   3 - No. of turns, from coil stock of known turns per inch or turns per cm,
  13. 130 PRINT "       for a specified inductance
  14. 140 PRINT "   4 - Inductance of a straight strap 
  15. 150 PRINT "   5 - Required length of a straight strap for a specified inductance
  16. 160 PRINT "   6 - Inductance of a transmission-line section
  17. 170 PRINT "   7 - Required length of transmission line for a specified inductance
  18. 180 PRINT "   8 - Inductance of a wire parallel to a ground plane
  19. 190 PRINT "   9 - Required length of wire above ground plane for a specified inductance
  20. 200 PRINT "  10 - Inductance of a straight wire
  21. 210 PRINT "  11 - Required length of a straight wire for a specified inductance
  22. 220 PRINT "  12 - Inductance of a multi-layer rectangular coil
  23. 230 PRINT "  13 - Inductance of a multi-layer circular coil 
  24. 240 PRINT "  14 - No. of turns in a multi-layer bobbin-wound coil for a specified
  25. 250 PRINT "       inductance
  26. 260 PRINT 
  27. 270 INPUT "ENTER YOUR CHOICE (1-14)  ",C%
  28. 280 IF C%<1 OR C%>14 THEN PRINT "Please enter a number between 1 and 14   " : GOTO 270
  29. 290 PRINT CHR$(26)
  30. 300 IF C%=11 THEN 3460 ELSE ON C% GOSUB 320,1870,440,570,690,1990,2370,1390,1610,2570,3460,860,1250,2670
  31. 310 GOTO 3620
  32. 320 REM **********************************************************************
  33. 330 PRINT TAB(26);"SINGLE-LAYER COIL INDUCTANCE
  34. 340 PRINT TAB(26);STRING$(28,"=")
  35. 350 GOSUB 3660
  36. 360 INPUT "NO. OF TURNS ";N
  37. 370 INPUT "COIL LENGTH ";LG
  38. 380 INPUT "COIL RADIUS ";R
  39. 390 IF A%=2 THEN LG=LG/25.4 : R=R/25.4
  40. 400 L=R*R*N*N/(9*R+10*LG)
  41. 410 PRINT 
  42. 420 PRINT "INDUCTANCE (uH) =";L
  43. 430 RETURN
  44. 440 REM **********************************************************************
  45. 450 PRINT TAB(8);"COIL TURNS REQUIRED USING FIXED NUMBER OF TURNS PER UNIT LENGTH
  46. 460 PRINT TAB(8);STRING$(63,"=")
  47. 470 GOSUB 3660
  48. 480 INPUT "INDUCTANCE (uH) ";L
  49. 490 IF A%=1 THEN PRINT "TURNS PER INCH "; ELSE PRINT "TURNS PER CM ";
  50. 500 INPUT T
  51. 510 INPUT "COIL RADIUS ";R
  52. 520 IF A%=2 THEN T=T*2.54 : R=R/2.54
  53. 530 N=(5*L+SQR(25*L*L+9*L*T*T*R^3))/(T*R*R)
  54. 540 PRINT
  55. 550 PRINT USING "NO. OF TURNS = ###.#";N
  56. 560 RETURN
  57. 570 REM **********************************************************************
  58. 580 PRINT TAB(27);"STRAIGHT STRAP INDUCTANCE
  59. 590 PRINT TAB(27);STRING$(25,"=")
  60. 600 GOSUB 3660
  61. 610 INPUT "STRAP LENGTH ";LG
  62. 620 INPUT "STRAP WIDTH ";B
  63. 630 INPUT "STRAP THICKNESS ";C
  64. 640 IF A%=2 THEN LG=LG/25.4  : B=B/25.4 : C=C/25.4
  65. 650 L=.0051*LG*(LOG(2*LG/(B+C))+(.224*(B+C)/LG)+.5)*1000
  66. 660 PRINT 
  67. 670 PRINT "INDUCTANCE (nH) =";L
  68. 680 RETURN
  69. 690 REM **********************************************************************
  70. 700 PRINT TAB(27);"STRAIGHT STRAP LENGTH
  71. 710 PRINT TAB(27);STRING$(21,"=")
  72. 720 GOSUB 3660
  73. 730 INPUT "INDUCTANCE (nH) ";L
  74. 740 INPUT "STRAP WIDTH ";B
  75. 750 INPUT "STRAP THICKNESS ";C
  76. 760 IF A%=2 THEN B=B/25.4 : C=C/25.4
  77. 770 X=1
  78. 780 LG=(.196*L)/(LOG((2*X)/(B+C))+(.224*(B+C)/X)+.5)
  79. 790 IF LG<.999*X OR LG>1.001*X THEN X=LG ELSE 810
  80. 800 GOTO 780
  81. 810 PRINT
  82. 820 IF A%=2 THEN LG=LG*25.4
  83. 830 PRINT "STRAP LENGTH =";LG;
  84. 840 IF A%=1 THEN PRINT "IN." ELSE PRINT "mm"
  85. 850 RETURN
  86. 860 REM **********************************************************************
  87. 870 PRINT TAB(20);"MULTI-LAYER RECTANGULAR COIL INDUCTANCE
  88. 880 PRINT TAB(20);STRING$(39,"=")
  89. 890 PRINT 
  90. 900 PRINT TAB(27);"!----------LG----------!
  91. 910 PRINT TAB(25);"->! T !<-                !
  92. 920 PRINT TAB(25);"- ";STRING$(24,"-");"\"
  93. 930 PRINT TAB(25);"! |                      | \
  94. 940 PRINT TAB(25);"! |   ----------------   |  |
  95. 950 PRINT TAB(25);"! |   |              |   |  |
  96. 960 PRINT TAB(25);"W |   |              |   |  |
  97. 970 PRINT TAB(25);"! |   |              |   |  |
  98. 980 PRINT TAB(25);"! |   ----------------   |  |
  99. 990 PRINT TAB(25);"! |                      |  |
  100. 1000 PRINT TAB(25);"- ";STRING$(24,"-");"\ |
  101. 1010 PRINT TAB(25);"   \ H                      \ 
  102. 1020 PRINT TAB(29);STRING$(25,"-")
  103. 1030 GOSUB 3660
  104. 1040 INPUT "OVERALL LENGTH (LG) ";LG
  105. 1050 INPUT "OVERALL WIDTH (W)   ";W
  106. 1060 INPUT "OVERALL HEIGHT (H)  ";H
  107. 1070 INPUT "COIL THICKNESS (T)  ";T
  108. 1080 PRINT "DO YOU WANT TO ENTER: 
  109. 1090 PRINT "   1 - TOTAL NO. OF TURNS
  110. 1100 PRINT "   2 - NO. OF TURNS/LAYER AND NO. OF LAYERS
  111. 1110 INPUT "     ENTER YOUR CHOICE ",Y%
  112. 1120 IF Y%<1 OR Y%>2 THEN PRINT "Please enter 1 or 2" : GOTO 1110
  113. 1130 IF Y%=2 THEN INPUT "NO. OF TURNS PER LAYER ";N ELSE 1170
  114. 1140 INPUT "NO. OF LAYERS IN COIL ";M
  115. 1150 N=N*M
  116. 1160 GOTO 1200
  117. 1170 INPUT "TOTAL NO. OF TURNS ";N
  118. 1180 IF A%=2 THEN LG=LG/25.4 : W=W/25.4 : H=H/25.4 : T=T/25.4
  119. 1190 REM  Formula from EDN; Aug 4, 1982; p164 (RSS Document #M905)
  120. 1200 C=LG+W-2*T
  121. 1210 L=.07*C*C*N*N/(1.908*C+9*H+10*T)
  122. 1220 PRINT 
  123. 1230 PRINT USING "INDUCTANCE (uH) = ####.#";L; : PRINT " (+/- 10%)
  124. 1240 RETURN
  125. 1250 REM **********************************************************************
  126. 1260 PRINT TAB(22);"MULTI-LAYER CIRCULAR COIL INDUCTANCE
  127. 1270 PRINT TAB(22);STRING$(36,"=")
  128. 1280 GOSUB 3660
  129. 1290 INPUT "INSIDE DIAMETER OF COIL ";ID
  130. 1300 INPUT "OUTSIDE DIAMETER OF COIL ";OD
  131. 1310 INPUT "HEIGHT OF COIL ";W
  132. 1320 INPUT "NO. OF TURNS ";N
  133. 1330 IF A%=2 THEN W=W/25.4 : ID=ID/25.4 : OD=OD/25.4
  134. 1340 R=(OD+ID)/4
  135. 1350 L=.8*R*R*N*N/(6*R+9*W+5*(OD-ID))
  136. 1360 PRINT 
  137. 1370 PRINT USING "INDUCTANCE (uH) = ####.#";L
  138. 1380 RETURN
  139. 1390 REM **********************************************************************
  140. 1400 PRINT TAB(25);"WIRE PARALLEL TO GROUND PLANE
  141. 1410 PRINT TAB(25);STRING$(29,"=")
  142. 1420 PRINT 
  143. 1430 PRINT TAB(28);"|---------LG---------|
  144. 1440 PRINT TAB(28);STRING$(22,"*");" -"
  145. 1450 PRINT TAB(49);"* |
  146. 1460 PRINT TAB(49);"* H
  147. 1470 PRINT TAB(49);"* |
  148. 1480 PRINT TAB(26);STRING$(23,"-");"*--
  149. 1490 PRINT TAB(26);STRING$(26,"/")
  150. 1500 GOSUB 3660 : GOSUB 3740
  151. 1510 INPUT "LENGTH (LG) ";LG
  152. 1520 INPUT "HEIGHT (H) ABOVE GROUND PLANE ";W
  153. 1530 IF A%=2 THEN R=D/2 ELSE LG=25.4*LG : R=12.7*D : W=25.4*W
  154. 1540 REM Equation from 1986 ARRL Handbook
  155. 1550 K1=SQR(LG*LG+R*R)
  156. 1560 K2=SQR(LG*LG+4*W*W)
  157. 1570 L=.2*LG*LOG((2*W/R)*((LG+K1)/(LG+K2)))+.2*(K2-K1+(LG/4)-(2*W)+R)
  158. 1580 PRINT 
  159. 1590 PRINT "INDUCTANCE (nH) =";L;"(INCLUDING DIMENSION 'H')
  160. 1600 RETURN
  161. 1610 REM **********************************************************************
  162. 1620 PRINT TAB(22);"WIRE LENGTH PARALLEL TO GROUND PLANE
  163. 1630 PRINT TAB(22);STRING$(36,"=")
  164. 1640 PRINT 
  165. 1650 PRINT TAB(28);"|---------LG---------|
  166. 1660 PRINT TAB(28);STRING$(22,"*");" -"
  167. 1670 PRINT TAB(49);"* |
  168. 1680 PRINT TAB(49);"* H
  169. 1690 PRINT TAB(49);"* |
  170. 1700 PRINT TAB(26);STRING$(23,"-");"*--
  171. 1710 PRINT TAB(26);STRING$(26,"/")
  172. 1720 GOSUB 3660 : GOSUB 3740
  173. 1730 INPUT "INDUCTANCE (nH) ";L
  174. 1740 INPUT "HEIGHT (H) ABOVE GROUND PLANE ";W
  175. 1750 IF A%=2 THEN R=D/2 ELSE R=12.7*D : W=25.4*W
  176. 1760 X=25
  177. 1770 K1=SQR(X*X+R*R)
  178. 1780 K2=SQR(X*X+4*W*W)
  179. 1790 LG=L/(.2*LOG((2*W/R)*((X+K1)/(X+K2)))+(.2*(K2-K1+(X/4)-(2*W)+R))/X)
  180. 1800 IF LG>.999*X AND LG<1.001*X THEN 1820 ELSE X=LG
  181. 1810 GOTO 1770
  182. 1820 IF A%=1 THEN LG=LG/25.4
  183. 1830 PRINT 
  184. 1840 IF LG>0 THEN PRINT "LENGTH (LG) =";LG; ELSE 3610
  185. 1850 IF A%=1 THEN PRINT "IN." ELSE PRINT "mm"
  186. 1860 GOTO 3620
  187. 1870 REM **********************************************************************
  188. 1880 PRINT TAB(28);"SINGLE-LAYER COIL TURNS
  189. 1890 PRINT TAB(28);STRING$(23,"=")
  190. 1900 GOSUB 3660
  191. 1910 INPUT "INDUCTANCE (uH) ";L
  192. 1920 INPUT "COIL LENGTH ";LG
  193. 1930 INPUT "COIL RADIUS ";R
  194. 1940 IF A%=2 THEN LG=LG/25.4 : R=R/25.4
  195. 1950 N=SQR(L*(9*R+10*LG)/(R*R))
  196. 1960 PRINT 
  197. 1970 PRINT "NO. OF TURNS = ";USING "###.#";N
  198. 1980 RETURN
  199. 1990 REM **********************************************************************
  200. 2000 PRINT TAB(24);"TRANSMISSION LINE INDUCTANCE
  201. 2010 PRINT TAB(24);STRING$(28,"=")
  202. 2020 PRINT : PRINT 
  203. 2030 PRINT "DO YOU WANT TO ENTER LINE LENGTH IN:
  204. 2040 PRINT "   1 - INCHES
  205. 2050 PRINT "   2 - CENTIMETERS
  206. 2060 PRINT "   3 - ELECTRICAL DEGREES
  207. 2070 PRINT "   4 - WAVELENGTH  
  208. 2080 INPUT "ENTER YOUR CHOICE ",Y%
  209. 2090 IF Y%<1 OR Y%>4 THEN PRINT "   Please enter a number between 1 and 4" : GOTO 2080
  210. 2100 INPUT "LINE LENGTH ";LG
  211. 2110 INPUT "OPEN (O) OR SHORTED (S) LINE ";T$
  212. 2120 IF T$<>"O" AND T$<>"o" AND T$<>"S" AND T$<>"s" THEN PRINT "Please enter 'O' or 'S'" : GOTO 2110
  213. 2130 INPUT "CHARACTERISTIC IMPEDANCE ";ZO
  214. 2140 IF Y%=<2 THEN INPUT "VELOCITY FACTOR (DECIMAL) ";V
  215. 2150 IF V>1 THEN PRINT "Please enter a value of 1 or less" : GOTO 2140
  216. 2160 INPUT "FREQUENCY (MHz) ";F
  217. 2170 IF Y%=1 THEN LG=LG*F/(11802.9*V)
  218. 2180 IF Y%=2 THEN LG=LG*F/(29979.3*V)
  219. 2190 IF Y%=3 THEN LG=LG/360
  220. 2200 WHILE LG>.5
  221. 2210   LG=LG-.5
  222. 2220 WEND
  223. 2230 PRINT 
  224. 2240 IF LG>.249 AND LG<.251 THEN PRINT "LINE IS A QUARTER-WAVE OPEN OR SHORT CIRCUIT" : RETURN
  225. 2250 IF LG>=.495 AND LG=<.5 THEN PRINT "LINE IS A HALF-WAVE TRANSFORMER" : RETURN
  226. 2260 LG=LG*2*PI
  227. 2270 IF T$="S" OR T$="s" THEN XL=ZO*TAN(LG) ELSE XL=-ZO*TAN(LG)
  228. 2280 IF XL<0 THEN PRINT "LINE IS CAPACITIVE" ELSE 2330
  229. 2290 C=ABS(1/(2*PI*F*XL))
  230. 2300 PRINT "   CAPACITANCE (pF) =";C*1E+06
  231. 2310 PRINT "   REACTANCE (OHMS) = ";XL
  232. 2320 RETURN
  233. 2330 L=XL/(2*PI*F)
  234. 2340 PRINT "INDUCTANCE (nH)  =";L*1000
  235. 2350 PRINT "REACTANCE (OHMS) =";XL
  236. 2360 RETURN
  237. 2370 REM **********************************************************************
  238. 2380 PRINT TAB(28);"TRANSMISSION LINE LENGTH
  239. 2390 PRINT TAB(28);STRING$(24,"=")
  240. 2400 PRINT : PRINT 
  241. 2410 INPUT "INDUCTANCE (nH) ";L
  242. 2420 INPUT "CHARACTERISTIC IMPEDANCE ";ZO
  243. 2430 INPUT "VELOCITY FACTOR (DECIMAL) ";V
  244. 2440 IF V>1 THEN PRINT "Please enter a value of 1 or less" : GOTO 2430
  245. 2450 INPUT "FREQUENCY (MHz) ";F
  246. 2460 INPUT "OPEN (O) OR SHORTED (S) LINE ";T$
  247. 2470 IF T$<>"O" AND T$<>"o" AND T$<>"S" AND T$<>"s" THEN PRINT "Please enter 'O' or 'S'" : GOTO 2460
  248. 2480 XL=2*PI*F*L*.001
  249. 2490 LG=ATN(XL/ZO)
  250. 2500 IF T$="O" OR T$="o" THEN LG=PI-LG
  251. 2510 LG=LG/(2*PI)    'wavelength
  252. 2520 LGD=LG*360        'degrees
  253. 2530 LGI=LG*V*11802.9/F    'inches
  254. 2540 PRINT 
  255. 2550 PRINT "LENGTH: ";LG;"WAVELENGTH =";LGD;"DEGREES =";LGI;"IN. =";LGI*2.54;"CM
  256. 2560 RETURN
  257. 2570 REM **********************************************************************
  258. 2580 PRINT TAB(26);"STRAIGHT WIRE INDUCTANCE
  259. 2590 PRINT TAB(26);STRING$(24,"=")
  260. 2600 GOSUB 3660 : GOSUB 3740
  261. 2610 INPUT "WIRE LENGTH ";LG
  262. 2620 IF A%=2 THEN LG=LG/25.4 : D=D/25.4
  263. 2630 L=.0051*LG*(LOG((4*LG)/D)-1)*1000
  264. 2640 PRINT
  265. 2650 PRINT "INDUCTANCE (nH) =";L
  266. 2660 RETURN
  267. 2670 REM **********************************************************************
  268. 2680 REM  This routine adapted from program written by Thomas N. Lockyer and
  269. 2690 REM  published in March 17, 1983 issue of "EDN"
  270. 2700 PRINT TAB(22);"MULTI-LAYER BOBBIN-WOUND COIL DESIGN
  271. 2710 PRINT TAB(22);STRING$(36,"=")
  272. 2720 PRINT : PRINT "DIMENSIONS MUST BE ENTERED IN INCHES" : PRINT 
  273. 2730 PRINT "IS BOBBIN:
  274. 2740 PRINT "  1 - CIRCULAR
  275. 2750 PRINT "  2 - RECTANGULAR
  276. 2760 INPUT "ENTER YOUR CHOICE ",J%
  277. 2770 IF J%<1 OR J%>2 THEN PRINT "Please enter 1 or 2" : GOTO 2760
  278. 2780 PRINT 
  279. 2790 INPUT "DESIRED INDUCTANCE (uH) ";H1
  280. 2800 IF J%=1 THEN PRINT "COIL AXIAL HEIGHT "; ELSE PRINT "COIL HEIGHT ";
  281. 2810 INPUT L
  282. 2820 IF J%=1 THEN PRINT "ESTIMATED COIL BUILD-UP (RADIAL THICKNESS) "; ELSE PRINT "ESTIMATED COIL BUILD-UP (THICKNESS) ";
  283. 2830 INPUT B
  284. 2840 IF B<.003 THEN PRINT "Estimated coil build-up is too small - reestimate!" : GOTO 2830
  285. 2850 INPUT "MUST INDUCTOR CARRY A SPECIFIED CURRENT? (Y/N) ";Z$
  286. 2860 IF Z$="N" OR Z$="n" THEN 2890
  287. 2870 INPUT "REQUIRED CURRENT (AMP) ";A2
  288. 2880 IF A2<.019 OR A2>21 THEN PRINT "Current must be between .019 and 21 amp - respecify!" : GOTO 2870
  289. 2890 IF J%=1 THEN 2950
  290. 2900 INPUT "LENGTH OF RECTANGULAR BOBBIN ";Y
  291. 2910 INPUT "WIDTH OF RECTANGULAR BOBBIN  ";D
  292. 2920 C=D+Y+2*B
  293. 2930 Z=1.908*C
  294. 2940 GOTO 2970
  295. 2950 INPUT "DIAMETER OF CIRCULAR BOBBIN ";D
  296. 2960 C=(D/2)+(B/2)
  297. 2970 K=9*L
  298. 2980 M=10*B
  299. 2990 IF J%=1 THEN 3040
  300. 3000 T=H1*(Z+K+M)
  301. 3010 P=T/.07
  302. 3020 N=SQR(P)/C
  303. 3030 GOTO 3080
  304. 3040 V=6*C
  305. 3050 T=H1*(V+K+M)
  306. 3060 P=T/.8
  307. 3070 N=SQR(P)/C
  308. 3080 A=SQR((B*L)/N)*800
  309. 3090 C1=A*A
  310. 3100 A1=C1/500
  311. 3110 REM  Calc wire size (10 to 40 AWG) and circular mils
  312. 3120 E=10
  313. 3130 FOR E=10 TO 40
  314. 3140   D1=10380
  315. 3150   F=E-9
  316. 3160   FOR G=1 TO F
  317. 3170     D1=D1-.207*D1
  318. 3180   NEXT G
  319. 3190   IF D1<C1 THEN 3210
  320. 3200 NEXT E
  321. 3210 IF Z$="N" OR Z$="n" THEN 3340 ELSE PFLAG%=PFLAG%+1
  322. 3220 IF PFLAG%=1 THEN PRINT " . . . calculating - please wait!
  323. 3230 REM  Determines wire size for specified current
  324. 3240 IF A1/A2<1.01 THEN 3290
  325. 3250 IF A1>A2 THEN 3270
  326. 3260 GOTO 3290
  327. 3270 B=B-.05*B
  328. 3280 IF J%=1 THEN 2960 ELSE 2920
  329. 3290 IF A2/A1<1.01 THEN 3340
  330. 3300 IF A1<A2 THEN 3320
  331. 3310 GOTO 3340
  332. 3320 B=B+.05*B
  333. 3330 IF J%=1 THEN 2960 ELSE 2920
  334. 3340 S=A*N/(L*800)
  335. 3350 IF A1>21 THEN PRINT "Estimated coil build-up is too large - redesign!" : RETURN
  336. 3360 IF A1<.019 THEN PRINT "Estimated coil build-up is too small - redesign!" : RETURN
  337. 3370 IF S<.9 THEN PRINT "Less than one coil layer - respecify coil length!" : RETURN
  338. 3380 PRINT 
  339. 3390 PRINT "NO. OF TURNS ";TAB(40);N
  340. 3400 PRINT "REQUIRED COIL BUILD-UP";TAB(40);B;"IN."
  341. 3410 PRINT "CIRCULAR MILS PER TURN AVAILABLE";TAB(40);C1
  342. 3420 PRINT "MAX. CURRENT AT 500 CM/AMP";TAB(40);A1;"AMP"
  343. 3430 PRINT "WIRE SIZE";TAB(40);E;"AWG"
  344. 3440 PRINT "NO. OF LAYERS";TAB(40);S
  345. 3450 RETURN
  346. 3460 REM *********************************************************************
  347. 3470 PRINT TAB(29);"STRAIGHT WIRE LENGTH
  348. 3480 PRINT TAB(29);STRING$(20,"=")
  349. 3490 GOSUB 3660 : GOSUB 3740
  350. 3500 INPUT "INDUCTANCE (nH) ";L
  351. 3510 IF A%=2 THEN D=D/25.4
  352. 3520 X=1
  353. 3530 LG=.196*L/(LOG(4*X/D)-1)
  354. 3540 IF LG>.999*X AND LG<1.001*X THEN 3560 ELSE X=LG
  355. 3550 GOTO 3530
  356. 3560 IF A%=2 THEN LG=LG*25.4
  357. 3570 PRINT 
  358. 3580 IF LG>0 THEN PRINT "WIRE LENGTH =";LG; ELSE 3610
  359. 3590 IF A%=1 THEN PRINT "IN." ELSE PRINT "mm"
  360. 3600 GOTO 3620
  361. 3610 PRINT : PRINT "NO SOLUTION FOR THE DATA ENTERED" : FLAG%=1
  362. 3620 PRINT : PRINT
  363. 3630 INPUT "RUN AGAIN? (Y/N)? ",R$
  364. 3640 IF R$="Y" OR R$="y" THEN RESTORE ELSE END
  365. 3650 IF FLAG%=1 THEN RESUME 70 ELSE 70
  366. 3660 REM **********************************************************************
  367. 3670 PRINT 
  368. 3680 PRINT "DO YOU WANT TO ENTER DIMENSIONS IN:
  369. 3690 PRINT "   1 - INCHES
  370. 3700 PRINT "   2 - MILLIMETERS
  371. 3710 INPUT "     ENTER YOUR CHOICE ",A%
  372. 3720 IF A%<1 OR A%>2 THEN PRINT "Please enter 1 or 2" : GOTO 3710
  373. 3730 RETURN
  374. 3740 REM **********************************************************************
  375. 3750 IF A%=1 THEN PRINT "DO YOU WANT TO ENTER WIRE DIAMETER IN:" ELSE 3810
  376. 3760 PRINT "   1 - INCHES
  377. 3770 PRINT "   2 - AWG SIZE
  378. 3780 INPUT "     ENTER YOUR CHOICE ",S%
  379. 3790 IF S%<1 OR S%>2 THEN PRINT "Please enter 1 or 2" : GOTO 3780
  380. 3800 IF S%=2 THEN INPUT "WIRE SIZE (EVEN NO. FROM 10 TO 40) ";Z% : GOTO 3820
  381. 3810 INPUT "WIRE DIAMETER ";D : RETURN
  382. 3820 IF Z%<10 OR Z%>40 THEN PRINT "Invalid size --->  "; : GOTO 3800
  383. 3830 FOR J=10 TO Z% STEP 2
  384. 3840   READ D
  385. 3850 NEXT J
  386. 3860 RETURN
  387. 3870 REM *********************************************************************
  388. 3880 REM Follows wire dia in inches from #10 to #40 AWG
  389. 3890 DATA .1019,.08081,.06408,.05082,.0403,.03196,.02535,.0201,.01594,.01264
  390. 3900 DATA .01003,.00795,.006305,.005,.003965,.003145
  391.