home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / hamradio / network.lbr / NETWORK.BZS / NETWORK.BAS
Encoding:
BASIC Source File  |  1987-08-30  |  14.6 KB  |  256 lines

  1. 100 REM ********************************************************************
  2. 110 REM *             RF NETWORK ANALYSIS PROGRAM                          *
  3. 120 REM *                 by KENNETH D. WYATT                              *
  4. 130 REM *       CONVERTED TO CP/M BY WILLIAM L. MUNSON                     *
  5. 140 REM *         VERSION 1.0 CP/M  -  SEPT. 26 1987                       *
  6. 150 REM ********************************************************************
  7. 160 MS=30:PP=150:L=1E-09:C=1E-12:CM=2.54:FR=1000000!:REM MS=# SECTIONS 
  8. 170 DIM R(MS),L(MS),C(MS),ST(MS),N(7),ET(MS)
  9. 175 CLS$=CHR$(14)+CHR$(28):REM +++++STRING SENT TO CLEAR TERMINAL SCREEN+++++
  10. 180 PRINT CLS$:PRINT:PRINT "  RF NETWORK ANALYSIS PROGRAM - VER 1.0 CP/M"
  11. 185 GOTO 3000:REM JUMP TO THE NEW/OLD FILE ROUTINE
  12. 190 PRINT:GOSUB 2810:PRINT "1) UNITS ARE OHMS, NH, PF, Mhz, AND INCHES":?
  13. 200 PRINT "2) MAXIMUM NUMBER OF SECTIONS IS 30.":PRINT
  14. 210 PRINT "3) IL(DB)=INSERTION LOSS IN DB.":PRINT
  15. 220 PRINT "4) RL(DB)=RETURN LOSS IN DB.":PRINT
  16. 230 PRINT "5) VSWR  =VOLTAGE STANDING WAVE RATIO.":PRINT
  17. 240 PRINT "6) RHO   =REFLECTION COEFFICIENT.":PRINT
  18. 250 PRINT "7) ZIN(R)=REAL PART OF INPUT IMPEDANCE.":PRINT
  19. 260 PRINT "8) ZIN(I)=IMAG PART OF INPUT IMPEDANCE.":PRINT
  20. 270 REM *********************** DATA INPUT **********************************
  21. 280 FOR I=1 TO 30:R(I)=0:C(I)=0:L(I)=0:NEXT I:GOSUB 2810
  22. 290 PRINT:PRINT "HOW MANY SECTIONS (MAX=30)":INPUT "(DON'T COUNT LOADS)";NS
  23. 300 IF NS>30 OR NS<1 THEN 290
  24. 310 PRINT:INPUT "SOURCE RESISTANCE (OHMS) = ";M:GOSUB 2830:RS=M
  25. 330 FOR N=1 TO NS
  26. 340 PRINT:GOSUB 2810:PRINT:PRINT "ENTER ELEMENT TYPE FOR SECTION ";N:GOSUB 2560
  27. 350 INPUT "ELEMENT TYPE (1-17)";ET(N)
  28. 360 IF ET(N)<1 OR ET(N)>17 THEN 340
  29. 370 IF ET(N)<3 THEN 430
  30. 380 IF ET(N)>2 AND ET(N)<5 THEN 450
  31. 390 IF ET(N)>4 AND ET(N)<7 THEN 440
  32. 400 IF ET(N)>6 AND ET(N)<12 THEN 460
  33. 410 IF ET(N)>11 AND ET(N)<17 THEN 490
  34. 420 IF ET(N)=17 THEN 680:REM XFMR MODEL
  35. 430 PRINT "R";N;"(OHMS) = ";:INPUT M:GOSUB 2830:R(N)=M:GOTO 690
  36. 440 PRINT "C";N;"  (PF) = ";:INPUT M:GOSUB 2830:C(N)=M:GOTO 690
  37. 450 PRINT "L";N;"  (NH) = ";:INPUT M:GOSUB 2830:L(N)=M:GOTO 690
  38. 460 PRINT "R";N;"(OHMS) = ";:INPUT M:GOSUB 2830:R(N)=M
  39. 470 PRINT "L";N;"  (NH) = ";:INPUT M:GOSUB 2830:L(N)=M
  40. 480 PRINT "C";N;"  (PF) = ";:INPUT M:GOSUB 2830:C(N)=M:GOTO 690
  41. 490 GOSUB 2860:C(N)=INT(DC*100+.5)/100:REM PRINT DIELECTRIC CONST. CHART
  42. 500 PRINT "ARE THE LINES/STUBS IN:":PRINT:PRINT "(1) PHYSICAL DIMENSIONS, OR"
  43. 510 INPUT "(2) ELECTRICAL PARAMETERS   ";PE
  44. 520 IF PE<1 OR PE>2 THEN 500
  45. 530 IF PE=2 THEN 630
  46. 540 PRINT:INPUT "ENTER THE WIDTH (IN)       = ";M:GOSUB 2830:W=M
  47. 550 INPUT "ENTER THE LENGTH (IN)      = ";M:GOSUB 2830:L(N)=INT(M*100+.5)/100
  48. 560 INPUT "ENTER BOARD THICKNESS (IN) = ";M:GOSUB 2830:TH=M
  49. 570 IF W/TH>1 THEN 600
  50. 580 EF=((C(N)+1/2)+((C(N)-1)/2)*((1+12*(TH/W))^(-.5)+.04*(1-W/TH)^2)
  51. 590 ZO=(60/SQR(EF))*LOG(8*TH/W+.25*W/TH):R(N)=INT(ZO*100+.5)/100:GOTO 770
  52. 600 EF=((C(N)+1)/2)+((C(N)-1)/2)*(1+12*(TH/W))^(-.5)
  53. 610 ZO=(120*3.14159/SQR(EF))/(W/TH+1.393+.667*LOG(W/TH+1.444))
  54. 620 R(N)=INT(ZO*100+.5)/100:GOTO 690
  55. 630 PRINT:INPUT "ENTER CHAR. IMPEDANCE (OHMS)   = ";M:GOSUB 2830:R(N)=M
  56. 640 R(N)=INT(M*100+.5)/100
  57. 650 INPUT "ENTER ELECTRICAL LENGTH (DEGS)  = ";M:GOSUB 2830:DE=M
  58. 660 INPUT "ENTER CENTER FREWUENCY (Mhz)    = ";M:GOSUB 2830:FO=M
  59. 670 L(N)=(DE*3E+10)/(C(N)*FO*FR*360):L(N)=INT(L(N)*100+.5)/100:GOTO 690
  60. 680 INPUT "TURNS RATIO (N) = ";M:GOSUB 2830:TR=M:GOTO 690
  61. 690 NEXT N
  62. 700 PRINT:GOSUB 2810:PRINT:INPUT "LOAD RESISTANCE (OHMS) = ";M:GOSUB 2830:RL=M
  63. 710 PRINT:PRINT "EDIT ELEMENTS (Y/N)";:INPUT Q1$:IF Q1$="N" OR Q1$="n" THEN 730
  64. 720 GOTO 1170
  65. 730 REM **************** DEFINE OR EDIT FREQUENCY ****************************
  66. 740 IF MF<>0 THEN ?:INPUT "SAME FREQ RANGE (Y/N)";Q$:IF Q$="Y" OR Q$="y" THEN 780
  67. 750 PRINT CLS$:PRINT:INPUT "MINIMUM FREQUENCY (Mhz) = ";MF:PRINT
  68. 760 INPUT "DELTA FREQUENCY   (Mhz) = ";DF
  69. 770 PRINT:INPUT "NUMBER OF STEPS ( <150 ) = ";NF:NF=NF-1:IF NF>PP THEN 770
  70. 780 PRINT:INPUT "OUTPUT TO (S)CREEN OR (P)RINTER   ";Q1$:? CLS$:IF Q1$="S" OR Q1$="s" THEN 830
  71. 790 GOSUB 2680:IF Q1$="p" THEN Q1$="P":REM *** PRINT ELEMENT LIST ***
  72. 800 REM ****************** DATA OUTPUT ***************************************
  73. 810 LPRINT "FREQ(Mhz)";TAB(14);"IL(DB)";TAB(23);"RL(DB)";TAB(33);"VSWR";
  74. 820 LPRINT TAB(43);"RHO";TAB(50);"ZIN(R)";TAB(59);"ZIN(I)":LPRINT
  75. 830 PRINT "FREQ(Mhz)";TAB(14);"IL(DB)";TAB(23);"RL(DB)";TAB(33);"VSWR";
  76. 840 PRINT TAB(43);"RHO";TAB(50);"ZIN(R)";TAB(59);"ZIN(I)"
  77. 850 CO=MF+DF*NF*FR
  78. 860 FOR K=0 TO NF
  79. 870 F=(MF+K*DF)*FR:W=2*3.14159*F
  80. 880 A1=1:D1=1:A4=0:B1=0:B4=0:C1=0:C4=0:D4=0
  81. 890 REM ******************** CALCULATE GAIN AND IMPEDANCES *******************
  82. 900 FOR N=1 TO NS
  83. 910 ON ET(N) GOTO 1620,1630,1640,1650,1660,1670,1680,1700,1740,1770,1790,1820,1840,1860,1880,1900,1920
  84. 920 REM ***************** MULTIPLY ABCD MATRICES *****************************
  85. 930 A3=A1*RA-A4*IA+B1*RC-B4*IC:A6=A1*IA+A4*RA+B1*IC+B4*RC
  86. 940 B3=A1*RB-A4*IB+B1*RD-B4*ID:B6=A1*IB+A4*RB+B1*ID+B4*RD
  87. 950 C3=C1*RA-C4*IA+D1*RC-D4*IC:C6=C1*IA+C4*RA+D1*IC+D4*RC
  88. 960 D3=C1*RB-C4*IB+D1*RD-D4*ID:D6=C1*IB+C4*RB+D4*RD+D1*ID
  89. 970 A1=A3:A4=A6:B1=B3:B4=B6:C1=C3:C4=C6:D1=D3:D4=D6:NEXT N
  90. 980 REM ********************* CALCULATE OUTPUT DATA **************************
  91. 990 G=(A3*RL+B3+C3*RS*RL+D3*RS)/RL:H=(A6*RL+B6+C6*RS*RL+D6*RS)/RL
  92. 1000 I=SQR(G^2+H^2)
  93. 1010 N(2)=INT(-10*LOG(RL*I^2/(4*RS))/LOG(10)*100+.5)/100:REM CALC IL
  94. 1020 V1=C3*RL+D3:V2=C6*RL+D6:Q=V1^2+V2^2
  95. 1030 N(6)=INT(((A3*RL+B3)*V1+(A6*RL+B6)*V2)/Q*100+.5)/100:REM ZIN(R)
  96. 1040 N(7)=INT(((A6*RL+B6)*V1-(A3*RL+B3)*V2)/Q*100+.5)/100:REM ZIN(I)
  97. 1050 N(1)=INT(F*1000/1000000!+.5)/1000:REM CALC FREQ
  98. 1060 R1=SQR((N(6)-RS)^2+N(7)^2):R2=SQR((N(6)+RS)^2+N(7)^2):RO=R1/R2
  99. 1070 IF RO=1 THEN RO=.9999:REM PREVENT RHO FROM REACHING 1.0
  100. 1080 N(5)=INT(RO*100+.5)/100:REM CALC RHO
  101. 1090 N(3)=-INT(20*LOG(1/RO)/LOG(10)*100+.5)/100:REM CALC RET LOSS
  102. 1100 N(4)=INT((1+RO)/(1-RO)*100+.5)/100:REM CALC VSWR
  103. 1110 OUTPUT$="":FOR I=1 TO 7:PRINT USING "######.##";N(I);:NEXT:PRINT
  104. 1120 IF Q1$="P" THEN FOR I=1 TO 7:LPRINT USING "######.##";N(I);:NEXT:LPRINT
  105. 1130 NEXT K:PRINT:X2=N(1):IF Q1$="P" THEN LPRINT CHR$(12):REM TOP OF FORM
  106. 1140 INPUT "(1)SWEEP FREQ (2)EDIT ELEMENTS (3)START OVER (4)QUIT OR (5)SAVE";D
  107. 1145 IF D=5 THEN GOSUB 3200:GOTO 1140
  108. 1150 IF D<1 OR D>4 THEN 1140
  109. 1160 ON D GOTO 730,1170,180,2850
  110. 1170 REM *********** PRINT ELEMENT TABLE / CHANGE ELEMENTS ******************
  111. 1180 PRINT CLS$:PRINT:PRINT "ELEM";TAB(11);"TYPE";TAB(23);"R";TAB(33);"L";TAB(43);"C"
  112. 1185 PRINT TAB(21);"(ZO)";TAB(32);"(L)";TAB(42);"(E)":PRINT:GOSUB 2810:Q$="          "
  113. 1190 F$=STR$(RS):PRINT "SOURCE R     ";LEFT$(Q$,10-LEN(F$))+F$:FOR J=1 TO NS
  114. 1200 OUTPUT$=""
  115. 1210 A=ET(J):GOSUB 2970:A=R(J):GOSUB 2970:A=L(J):GOSUB 2970:A=C(J):GOSUB 2970
  116. 1220 PRINT J;TAB(5);OUTPUT$
  117. 1230 OUTPUT$="":NEXT J:F$=STR$(RL):PRINT "LOAD R       ";LEFT$(Q$,10-LEN(F$))+F$
  118. 1240 GOSUB 2810:PRINT:PRINT "NOTE:   R,L,C ARE FOR ELEMENT TYPES 1-11."
  119. 1250 PRINT "        ZO,L,E ARE FOR ELEMENT TYPES 12-16."
  120. 1260 PRINT:GOSUB 2810:PRINT:INPUT "ENTER  (S)OURCE, (L)OAD, ELEMENT #, (E)DIT, OR (0)TO SWEEP FREQ";E$:PRINT:IF E$="" THEN 1260
  121. 1270 E=VAL(E$):IF E=0 THEN E=ASC(E$)
  122. 1280 IF E=83 OR E=115 THEN INPUT "SOURCE RESISTANCE (OHMS) = ";M:GOSUB 2830:RS=M:GOTO 1260
  123. 1290 IF E=76 OR E=108 THEN INPUT "LOAD RESISTANCE (OHMS) = ";M:GOSUB 2830:RL=M:GOTO 1260
  124. 1300 IF E=48 THEN 730
  125. 1310 IF E=69 OR E=101 THEN 1170
  126. 1320 IF E>NS THEN 1260
  127. 1330 IF E>0 THEN PRINT "ELEMENT TYPE ";ET(E)
  128. 1340 ON ET(E) GOTO 1350,1350,1590,1590,1580,1580,1360,1360,1360,1360,1360,1390,1390,1390,1390,1390,1600
  129. 1350 PRINT "R";E;"(OHMS) = ";:INPUT M:GOSUB 2830:R(E)=M:GOTO 1260
  130. 1360 PRINT "R";E;"(OHMS) = ";:INPUT M:GOSUB 2830:R(E)=M
  131. 1370 PRINT "L";E;"  (NH) = ";:INPUT M:GOSUB 2830:L(E)=M
  132. 1380 PRINT "C";E;"  (PF) = ";:INPUT M:GOSUB 2830:C(E)=M:GOTO 1260
  133. 1390 GOSUB 2860:C(E)=INT(DC*100+.5)/100:REM PRINT DIELECTRIC CONST. CHART
  134. 1400 PRINT "ARE THE LINES/STUBS IN:":PRINT:PRINT "(1) PHYSICAL DIMENSIONS, OR"
  135. 1410 INPUT "(2) ELECTRICAL PARAMETERS     ";PE
  136. 1420 IF PE<1 OR PE>2 THEN 1410
  137. 1430 IF PE=2 THEN 1530
  138. 1440 PRINT:INPUT "ENTER THEN WIDTH (IN)      = ";M:GOSUB 2830:W=M
  139. 1450 INPUT "ENTER THE LENGTH (IN)       = ";M:GOSUB 2830:L(E)=INT(M*100+.5)/100
  140. 1460 INPUT "ENTER BOARD THICKNESS (IN)  = ";M:GOSUB 2830:TH=M
  141. 1470 IF W/TH>1 THEN 1500
  142. 1480 EF=((C(E)+1/2)+((C(E)-1)/2)*((1+12*(TH/W))^(-.5)+.04*(1-W/TH)^2)
  143. 1490 ZO=(60/SQR(EF))*LOG(8*TH/W+.25*W/TH):R(E)=INT(ZO*100+.5)/100:GOTO 1260
  144. 1500 EF=((C(E)+1)/2)+((C(E)-1)/2)*(1+12*(TH/W))^(-.5)
  145. 1510 ZO=(120*3.14159/SQR(EF))/(W/TH+1.393+.667*LOG(W/TH+1.444))
  146. 1520 R(E)=INT(ZO*100+.5)/100:GOTO 1260
  147. 1530 PRINT:INPUT "ENTER CHAR. IMPEDANCE (OHMS)   = ";M:GOSUB 2830:R(E)=M
  148. 1540 R(E)=INT(M*100+.5)/100
  149. 1550 INPUT "ENTER ELECTRICAL LENGTH (DEGS)   = ";M:GOSUB 2830:DE=M
  150. 1560 INPUT "ENTER CENTER FREQUENCY (Mhz)     = ";M:GOSUB 2830:FO=M
  151. 1570 L(E)=(DE*3E+10)/(C(E)*FO*FR*360):L(E)=INT(L(E)*100+.5)/100:GOTO 1260
  152. 1580 PRINT "C";E;"   (PF) = ";:INPUT M:GOSUB 2830:C(E)=M:GOTO 1260
  153. 1590 PRINT "L";E;"   (NH) = ";:INPUT M:GOSUB 2830:L(E)=M:GOTO 1260
  154. 1600 PRINT "T";E;" TURNS RATIO (N) = ";:INPUT M:GOSUB 2830:TR=M:GOTO 1260
  155. 1610 REM *************** CALCULATE INDIVIDUAL ABCD MATRICES *****************
  156. 1620 RA=1:IA=0:RB=R(N):IB=0:RC=0:IC=0:RD=1:ID=0:GOTO 920:REM TYPE 1
  157. 1630 RA=1:IA=0:RB=0:IB=0:RC=1/R(N):IC=0:RD=1:ID=0:GOTO 920:REM TYPE 2
  158. 1640 RA=1:IA=0:RB=0:IB=W*L(N)*L:RC=0:IC=0:RD=1:ID=0:GOTO 920:REM TYPE 3
  159. 1650 RA=1:IA=0:RB=0:IB=0:RC=0:IC=-1/(W*L(N)*L):RD=1:ID=0:GOTO 920:REM TYPE 4
  160. 1660 RA=1:IA=0:RB=0:IB=-1/(W*C(N)*C):RC=0:IC=0:RD=1:ID=0:GOTO 920:REM TYPE 5
  161. 1670 RA=1:IA=0:RB=0:IB=0:RC=0:IC=W*C(N)*C:RD=1:ID=0:GOTO 920:REM TYPE 6
  162. 1680 RA=1:IA=0:RB=R(N):IB=W*L(N)*L-1/(W*C(N)*C)
  163. 1690 RC=0:IC=0:RD=1:ID=0:GOTO 920:REM TYPE 7
  164. 1700 RA=1:IA=0:RB=0:IB=0:V4=W^2*L(N)*L*C(N)*C-1:REM TYPE 8
  165. 1710 RC=W^2*(C(N)*C)^2*R(N)/(W^2*(C(N)*C)^2*R(N)^2+(W^2*L(N)*L*C(N)*C-1)^2)
  166. 1720 IC=-W*C(N)*C*V4/(W^2*(C(N)*C)^2*R(N)^2+V4^2)
  167. 1730 RD=1:ID=0:GOTO 920
  168. 1740 RB=W^2*R(N)*(L(N)*L)^2/(W^2*(L(N)*L)^2+R(N)^2*(1-W^2*L(N)*L*C(N)*C)^2)
  169. 1750 RA=1:IA=0:T=W^2*(L(N)*L)^2+R(N)^2*(1-W^2*L(N)*L*C(N)*C)^2
  170. 1760 IB=W*L(N)*L*R(N)^2*(1-W^2*L(N)*L*C(N)*C)/T:RC=0:IC=0:RD=1:ID=0:GOTO 920
  171. 1770 RC=1/R(N):IC=(-1+W^2*L(N)*L*C(N)*C)/(W*L(N)*L):REM TYPE 10
  172. 1780 RA=1:IA=0:RB=0:IB=0:RD=1:ID=0:GOTO 920
  173. 1790 RB=R(N)/((1-W^2*L(N)*L*C(N)*C)^2+(W*C(N)*C*R(N))^2):REM TYPE 11
  174. 1800 IB=W*(L(N)*L*(1-W^2*L(N)*L*C(N)*C)-C(N)*C*R(N)^2)*RB/R(N)
  175. 1810 RA=1:IA=0:RC=0:IC=0:RD=1:ID=0:GOTO 920
  176. 1820 V3=W*L(N)*CM*C(N)^.5/3E+10:RA=COS(V3):IA=0:RB=0:IB=R(N)*SIN(V3):REM TYPE 12
  177. 1830 RC=0:IC=SIN(V3)/R(N):RD=COS(V3):ID=0:GOTO 920
  178. 1840 V3=W*L(N)*CM*C(N)^.5/3E+10:REM TYPE 13
  179. 1850 RA=1:IA=0:RB=0:IB=0:RC=0:IC=TAN(V3)/R(N):RD=1:ID=0:GOTO 920
  180. 1860 V3=W*L(N)*CM*C(N)^.5/3E+10:REM TYPE 14
  181. 1870 RA=1:IA=0:RB=0:IB=0:RC=0:IC=-1/(TAN(V3)*R(N)):RD=1:ID=0:GOTO 920
  182. 1880 V3=W*L(N)*CM*C(N)^.5/3E+10:REM TYPE 15
  183. 1890 RA=1:IA=0:RB=0:IB=-R(N)/TAN(V3):RC=0:IC=0:RD=1:ID=0:GOTO 920
  184. 1900 V3=W*L(N)*CM*C(N)^.5/3E+10:REM TYPE 16
  185. 1910 RA=1:IA=0:RB=0:IB=R(N)*TAN(V3):RC=0:IC=0:RD=1:ID=0:GOTO 920
  186. 1920 RA=TR:IA=0:RB=0:IB=0:RC=0:IC=0:RD=1/TR:ID=0:GOTO 920:REM TYPE 17
  187. 2560 REM ****************** MENU SELECTION ********************************
  188. 2570 PRINT:PRINT " (1) SER R                (12) TRANSMISSION LINE"
  189. 2580 PRINT " (2) PAR R                (13) PAR OPEN STUB"
  190. 2590 PRINT " (3) SER L                (14) PAR SHORT STUB"
  191. 2600 PRINT " (4) PAR L                (15) SER OPEN STUB"
  192. 2610 PRINT " (5) SER C                (16) SER SHORT STUB"
  193. 2620 PRINT " (6) PAR C                (17) TRANSFORMER"
  194. 2630 PRINT " (7) SER (S-RLC)"
  195. 2640 PRINT " (8) PAR (S-RLC)"
  196. 2650 PRINT " (9) SER (P-RLC)"
  197. 2660 PRINT "(10) PAR (P-RLC)"
  198. 2670 PRINT "(11) SER (S-RL/P-C)":PRINT:RETURN
  199. 2680 REM *********** PRINT ELEMENT LIST AT START OF CHART **************
  200. 2690 GOSUB 2820:LPRINT "            RF NETWORK ANALYSIS PROGRAM - VER 1.0CPM"
  201. 2700 GOSUB 2820:LPRINT:LPRINT "NETWORK LISTING:":LPRINT
  202. 2710 LPRINT "ELEM";TAB(11);"TYPE";TAB(23);"R";TAB(33);"L";TAB(43);"C"
  203. 2720 LPRINT TAB(21);"(ZO)";TAB(32);"(L)";TAB(42);"(E)":LPRINT:Q$="          "
  204. 2730 F$=STR$(RS):LPRINT "SOURCE R     "+LEFT$(Q$,10-LEN(F$))+F$:FOR J=1 TO NS
  205. 2740 OUTPUT$=""
  206. 2750 A=ET(J):GOSUB 2970:A=R(J):GOSUB 2970:A=L(J):GOSUB 2970:A=C(J):GOSUB 2970
  207. 2760 LPRINT J;TAB(4);OUTPUT$
  208. 2770 OUTPUT$="":NEXT J:F$=STR$(RL):LPRINT "LOAD R       ";LEFT$(Q$,10-LEN(F$))+F$
  209. 2780 LPRINT:LPRINT "NOTE:   R,L,C ARE FOR ELEMENT TYPES 1-11."
  210. 2790 LPRINT "        ZO,L,E ARE FOR ELEMENT TYPES 12-16.":LPRINT
  211. 2800 GOSUB 2820:LPRINT:RETURN
  212. 2810 PRINT "===========================================":RETURN:REM PRINT LINE
  213. 2820 LPRINT "            ========================================":RETURN
  214. 2830 IF M=0 THEN M=.00001:RETURN:REM ZERO DATA INPUT IS NOT ALLOWED
  215. 2840 RETURN
  216. 2850 PRINT CLS$:STOP
  217. 2860 REM ******************* PRINT OUT DIELECTRIC CONSTANT CHART ************
  218. 2870 PRINT:PRINT "DIELECTRIC CONSTANT CHART:":PRINT
  219. 2880 PRINT "AIR                        1.00"
  220. 2890 PRINT "DUROID 5880                2.20"
  221. 2900 PRINT "DUROID 5870                2.23"
  222. 2910 PRINT "TEFLON-FIBERGLASS (PTFE)   2.55"
  223. 2920 PRINT "FUSED SILICA (QUARTZ)      3.78"
  224. 2930 PRINT "G-10 FIBERGLASS            4.50"
  225. 2940 PRINT "ALUMINA OR EPSILAM 10     10.00":PRINT
  226. 2950 INPUT "ENTER DESIRED DIELECTRIC CONST = ";M:GOSUB 2830:DC=M
  227. 2960 PRINT:RETURN
  228. 2970 REM ******************* FORMAT ELEMENT TABLE ***********************
  229. 2980 F$=STR$(A):P$=LEFT$(Q$,10-LEN(F$)):F$=P$+F$:OUTPUT$=OUTPUT$+F$:RETURN
  230. 3000 REM ************* GET DISK FILE ROUTINE ****************************
  231. 3010 PRINT:INPUT "DO YOU WANT TO RUN A (S)AVED OR (N)EW NETWORK";Q2$
  232. 3020 IF Q2$="S" OR Q2$="s" THEN GOTO 3040
  233. 3030 PRINT CLS$:GOTO 190:REM RETURN TO NETWORK INPUT SECTION
  234. 3040 PRINT CLS$:FILES:PRINT:PRINT
  235. 3050 PRINT:PRINT "ALL NETWORK FILES HAVE THE EXTENSION OF .NET"
  236. 3060 PRINT:PRINT "ENTER THE NAME OF THE NETWORK. (DON'T USE A FILE EXTENSION)"
  237. 3070 INPUT "FILENAME:";NA$:IF NA$="" THEN 3040
  238. 3080 NA$=NA$+".NET":OPEN "I",1,NA$:REM OPEN DISK FILE
  239. 3090 INPUT #1,NS:REM GET NUMBER OF SECTIONS
  240. 3100 FOR N=1 TO NS
  241. 3110 INPUT #1,ET(N),R(N),L(N),C(N),ST(N):REM GET ELEMENT VALUES
  242. 3120 NEXT N
  243. 3130 INPUT #1,RS,RL:REM GET SOURCE AND LOAD VALUES
  244. 3140 PRINT CLS$:CLOSE:GOTO 710:REM RETURN TO MAIN PROGRAM
  245. 3200 REM **************** WRITE TO DISK FILE ROUTINE **********************
  246. 3210 PRINT CLS$:PRINT:PRINT "ENTER THE FILENAME THE NETWORK WILL BE SAVED UNDER."
  247. 3220 PRINT "WARNING: IF YOU USE A DUPLICATE NAME THE OLD FILE WILL BE ERASED!!"
  248. 3230 PRINT:INPUT "FILENAME:";NA$:CLOSE:REM GET NEW FILE NAME
  249. 3240 NA$=NA$+".NET":OPEN "O",1,NA$:REM OPEN NEW FILE
  250. 3250 WRITE #1,NS
  251. 3260 FOR N=1 TO NS
  252. 3270 WRITE #1,ET(N),R(N),L(N),C(N),ST(N)
  253. 3280 NEXT N
  254. 3290 WRITE #1,RS,RL
  255. 3300 CLOSE:PRINT CLS$:RETURN
  256.