home *** CD-ROM | disk | FTP | other *** search
- 100 REM ********************************************************************
- 110 REM * RF NETWORK ANALYSIS PROGRAM *
- 120 REM * by KENNETH D. WYATT *
- 130 REM * CONVERTED TO CP/M BY WILLIAM L. MUNSON *
- 140 REM * VERSION 1.0 CP/M - SEPT. 26 1987 *
- 150 REM ********************************************************************
- 160 MS=30:PP=150:L=1E-09:C=1E-12:CM=2.54:FR=1000000!:REM MS=# SECTIONS
- 170 DIM R(MS),L(MS),C(MS),ST(MS),N(7),ET(MS)
- 175 CLS$=CHR$(14)+CHR$(28):REM +++++STRING SENT TO CLEAR TERMINAL SCREEN+++++
- 180 PRINT CLS$:PRINT:PRINT " RF NETWORK ANALYSIS PROGRAM - VER 1.0 CP/M"
- 185 GOTO 3000:REM JUMP TO THE NEW/OLD FILE ROUTINE
- 190 PRINT:GOSUB 2810:PRINT "1) UNITS ARE OHMS, NH, PF, Mhz, AND INCHES":?
- 200 PRINT "2) MAXIMUM NUMBER OF SECTIONS IS 30.":PRINT
- 210 PRINT "3) IL(DB)=INSERTION LOSS IN DB.":PRINT
- 220 PRINT "4) RL(DB)=RETURN LOSS IN DB.":PRINT
- 230 PRINT "5) VSWR =VOLTAGE STANDING WAVE RATIO.":PRINT
- 240 PRINT "6) RHO =REFLECTION COEFFICIENT.":PRINT
- 250 PRINT "7) ZIN(R)=REAL PART OF INPUT IMPEDANCE.":PRINT
- 260 PRINT "8) ZIN(I)=IMAG PART OF INPUT IMPEDANCE.":PRINT
- 270 REM *********************** DATA INPUT **********************************
- 280 FOR I=1 TO 30:R(I)=0:C(I)=0:L(I)=0:NEXT I:GOSUB 2810
- 290 PRINT:PRINT "HOW MANY SECTIONS (MAX=30)":INPUT "(DON'T COUNT LOADS)";NS
- 300 IF NS>30 OR NS<1 THEN 290
- 310 PRINT:INPUT "SOURCE RESISTANCE (OHMS) = ";M:GOSUB 2830:RS=M
- 330 FOR N=1 TO NS
- 340 PRINT:GOSUB 2810:PRINT:PRINT "ENTER ELEMENT TYPE FOR SECTION ";N:GOSUB 2560
- 350 INPUT "ELEMENT TYPE (1-17)";ET(N)
- 360 IF ET(N)<1 OR ET(N)>17 THEN 340
- 370 IF ET(N)<3 THEN 430
- 380 IF ET(N)>2 AND ET(N)<5 THEN 450
- 390 IF ET(N)>4 AND ET(N)<7 THEN 440
- 400 IF ET(N)>6 AND ET(N)<12 THEN 460
- 410 IF ET(N)>11 AND ET(N)<17 THEN 490
- 420 IF ET(N)=17 THEN 680:REM XFMR MODEL
- 430 PRINT "R";N;"(OHMS) = ";:INPUT M:GOSUB 2830:R(N)=M:GOTO 690
- 440 PRINT "C";N;" (PF) = ";:INPUT M:GOSUB 2830:C(N)=M:GOTO 690
- 450 PRINT "L";N;" (NH) = ";:INPUT M:GOSUB 2830:L(N)=M:GOTO 690
- 460 PRINT "R";N;"(OHMS) = ";:INPUT M:GOSUB 2830:R(N)=M
- 470 PRINT "L";N;" (NH) = ";:INPUT M:GOSUB 2830:L(N)=M
- 480 PRINT "C";N;" (PF) = ";:INPUT M:GOSUB 2830:C(N)=M:GOTO 690
- 490 GOSUB 2860:C(N)=INT(DC*100+.5)/100:REM PRINT DIELECTRIC CONST. CHART
- 500 PRINT "ARE THE LINES/STUBS IN:":PRINT:PRINT "(1) PHYSICAL DIMENSIONS, OR"
- 510 INPUT "(2) ELECTRICAL PARAMETERS ";PE
- 520 IF PE<1 OR PE>2 THEN 500
- 530 IF PE=2 THEN 630
- 540 PRINT:INPUT "ENTER THE WIDTH (IN) = ";M:GOSUB 2830:W=M
- 550 INPUT "ENTER THE LENGTH (IN) = ";M:GOSUB 2830:L(N)=INT(M*100+.5)/100
- 560 INPUT "ENTER BOARD THICKNESS (IN) = ";M:GOSUB 2830:TH=M
- 570 IF W/TH>1 THEN 600
- 580 EF=((C(N)+1/2)+((C(N)-1)/2)*((1+12*(TH/W))^(-.5)+.04*(1-W/TH)^2)
- 590 ZO=(60/SQR(EF))*LOG(8*TH/W+.25*W/TH):R(N)=INT(ZO*100+.5)/100:GOTO 770
- 600 EF=((C(N)+1)/2)+((C(N)-1)/2)*(1+12*(TH/W))^(-.5)
- 610 ZO=(120*3.14159/SQR(EF))/(W/TH+1.393+.667*LOG(W/TH+1.444))
- 620 R(N)=INT(ZO*100+.5)/100:GOTO 690
- 630 PRINT:INPUT "ENTER CHAR. IMPEDANCE (OHMS) = ";M:GOSUB 2830:R(N)=M
- 640 R(N)=INT(M*100+.5)/100
- 650 INPUT "ENTER ELECTRICAL LENGTH (DEGS) = ";M:GOSUB 2830:DE=M
- 660 INPUT "ENTER CENTER FREWUENCY (Mhz) = ";M:GOSUB 2830:FO=M
- 670 L(N)=(DE*3E+10)/(C(N)*FO*FR*360):L(N)=INT(L(N)*100+.5)/100:GOTO 690
- 680 INPUT "TURNS RATIO (N) = ";M:GOSUB 2830:TR=M:GOTO 690
- 690 NEXT N
- 700 PRINT:GOSUB 2810:PRINT:INPUT "LOAD RESISTANCE (OHMS) = ";M:GOSUB 2830:RL=M
- 710 PRINT:PRINT "EDIT ELEMENTS (Y/N)";:INPUT Q1$:IF Q1$="N" OR Q1$="n" THEN 730
- 720 GOTO 1170
- 730 REM **************** DEFINE OR EDIT FREQUENCY ****************************
- 740 IF MF<>0 THEN ?:INPUT "SAME FREQ RANGE (Y/N)";Q$:IF Q$="Y" OR Q$="y" THEN 780
- 750 PRINT CLS$:PRINT:INPUT "MINIMUM FREQUENCY (Mhz) = ";MF:PRINT
- 760 INPUT "DELTA FREQUENCY (Mhz) = ";DF
- 770 PRINT:INPUT "NUMBER OF STEPS ( <150 ) = ";NF:NF=NF-1:IF NF>PP THEN 770
- 780 PRINT:INPUT "OUTPUT TO (S)CREEN OR (P)RINTER ";Q1$:? CLS$:IF Q1$="S" OR Q1$="s" THEN 830
- 790 GOSUB 2680:IF Q1$="p" THEN Q1$="P":REM *** PRINT ELEMENT LIST ***
- 800 REM ****************** DATA OUTPUT ***************************************
- 810 LPRINT "FREQ(Mhz)";TAB(14);"IL(DB)";TAB(23);"RL(DB)";TAB(33);"VSWR";
- 820 LPRINT TAB(43);"RHO";TAB(50);"ZIN(R)";TAB(59);"ZIN(I)":LPRINT
- 830 PRINT "FREQ(Mhz)";TAB(14);"IL(DB)";TAB(23);"RL(DB)";TAB(33);"VSWR";
- 840 PRINT TAB(43);"RHO";TAB(50);"ZIN(R)";TAB(59);"ZIN(I)"
- 850 CO=MF+DF*NF*FR
- 860 FOR K=0 TO NF
- 870 F=(MF+K*DF)*FR:W=2*3.14159*F
- 880 A1=1:D1=1:A4=0:B1=0:B4=0:C1=0:C4=0:D4=0
- 890 REM ******************** CALCULATE GAIN AND IMPEDANCES *******************
- 900 FOR N=1 TO NS
- 910 ON ET(N) GOTO 1620,1630,1640,1650,1660,1670,1680,1700,1740,1770,1790,1820,1840,1860,1880,1900,1920
- 920 REM ***************** MULTIPLY ABCD MATRICES *****************************
- 930 A3=A1*RA-A4*IA+B1*RC-B4*IC:A6=A1*IA+A4*RA+B1*IC+B4*RC
- 940 B3=A1*RB-A4*IB+B1*RD-B4*ID:B6=A1*IB+A4*RB+B1*ID+B4*RD
- 950 C3=C1*RA-C4*IA+D1*RC-D4*IC:C6=C1*IA+C4*RA+D1*IC+D4*RC
- 960 D3=C1*RB-C4*IB+D1*RD-D4*ID:D6=C1*IB+C4*RB+D4*RD+D1*ID
- 970 A1=A3:A4=A6:B1=B3:B4=B6:C1=C3:C4=C6:D1=D3:D4=D6:NEXT N
- 980 REM ********************* CALCULATE OUTPUT DATA **************************
- 990 G=(A3*RL+B3+C3*RS*RL+D3*RS)/RL:H=(A6*RL+B6+C6*RS*RL+D6*RS)/RL
- 1000 I=SQR(G^2+H^2)
- 1010 N(2)=INT(-10*LOG(RL*I^2/(4*RS))/LOG(10)*100+.5)/100:REM CALC IL
- 1020 V1=C3*RL+D3:V2=C6*RL+D6:Q=V1^2+V2^2
- 1030 N(6)=INT(((A3*RL+B3)*V1+(A6*RL+B6)*V2)/Q*100+.5)/100:REM ZIN(R)
- 1040 N(7)=INT(((A6*RL+B6)*V1-(A3*RL+B3)*V2)/Q*100+.5)/100:REM ZIN(I)
- 1050 N(1)=INT(F*1000/1000000!+.5)/1000:REM CALC FREQ
- 1060 R1=SQR((N(6)-RS)^2+N(7)^2):R2=SQR((N(6)+RS)^2+N(7)^2):RO=R1/R2
- 1070 IF RO=1 THEN RO=.9999:REM PREVENT RHO FROM REACHING 1.0
- 1080 N(5)=INT(RO*100+.5)/100:REM CALC RHO
- 1090 N(3)=-INT(20*LOG(1/RO)/LOG(10)*100+.5)/100:REM CALC RET LOSS
- 1100 N(4)=INT((1+RO)/(1-RO)*100+.5)/100:REM CALC VSWR
- 1110 OUTPUT$="":FOR I=1 TO 7:PRINT USING "######.##";N(I);:NEXT:PRINT
- 1120 IF Q1$="P" THEN FOR I=1 TO 7:LPRINT USING "######.##";N(I);:NEXT:LPRINT
- 1130 NEXT K:PRINT:X2=N(1):IF Q1$="P" THEN LPRINT CHR$(12):REM TOP OF FORM
- 1140 INPUT "(1)SWEEP FREQ (2)EDIT ELEMENTS (3)START OVER (4)QUIT OR (5)SAVE";D
- 1145 IF D=5 THEN GOSUB 3200:GOTO 1140
- 1150 IF D<1 OR D>4 THEN 1140
- 1160 ON D GOTO 730,1170,180,2850
- 1170 REM *********** PRINT ELEMENT TABLE / CHANGE ELEMENTS ******************
- 1180 PRINT CLS$:PRINT:PRINT "ELEM";TAB(11);"TYPE";TAB(23);"R";TAB(33);"L";TAB(43);"C"
- 1185 PRINT TAB(21);"(ZO)";TAB(32);"(L)";TAB(42);"(E)":PRINT:GOSUB 2810:Q$=" "
- 1190 F$=STR$(RS):PRINT "SOURCE R ";LEFT$(Q$,10-LEN(F$))+F$:FOR J=1 TO NS
- 1200 OUTPUT$=""
- 1210 A=ET(J):GOSUB 2970:A=R(J):GOSUB 2970:A=L(J):GOSUB 2970:A=C(J):GOSUB 2970
- 1220 PRINT J;TAB(5);OUTPUT$
- 1230 OUTPUT$="":NEXT J:F$=STR$(RL):PRINT "LOAD R ";LEFT$(Q$,10-LEN(F$))+F$
- 1240 GOSUB 2810:PRINT:PRINT "NOTE: R,L,C ARE FOR ELEMENT TYPES 1-11."
- 1250 PRINT " ZO,L,E ARE FOR ELEMENT TYPES 12-16."
- 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
- 1270 E=VAL(E$):IF E=0 THEN E=ASC(E$)
- 1280 IF E=83 OR E=115 THEN INPUT "SOURCE RESISTANCE (OHMS) = ";M:GOSUB 2830:RS=M:GOTO 1260
- 1290 IF E=76 OR E=108 THEN INPUT "LOAD RESISTANCE (OHMS) = ";M:GOSUB 2830:RL=M:GOTO 1260
- 1300 IF E=48 THEN 730
- 1310 IF E=69 OR E=101 THEN 1170
- 1320 IF E>NS THEN 1260
- 1330 IF E>0 THEN PRINT "ELEMENT TYPE ";ET(E)
- 1340 ON ET(E) GOTO 1350,1350,1590,1590,1580,1580,1360,1360,1360,1360,1360,1390,1390,1390,1390,1390,1600
- 1350 PRINT "R";E;"(OHMS) = ";:INPUT M:GOSUB 2830:R(E)=M:GOTO 1260
- 1360 PRINT "R";E;"(OHMS) = ";:INPUT M:GOSUB 2830:R(E)=M
- 1370 PRINT "L";E;" (NH) = ";:INPUT M:GOSUB 2830:L(E)=M
- 1380 PRINT "C";E;" (PF) = ";:INPUT M:GOSUB 2830:C(E)=M:GOTO 1260
- 1390 GOSUB 2860:C(E)=INT(DC*100+.5)/100:REM PRINT DIELECTRIC CONST. CHART
- 1400 PRINT "ARE THE LINES/STUBS IN:":PRINT:PRINT "(1) PHYSICAL DIMENSIONS, OR"
- 1410 INPUT "(2) ELECTRICAL PARAMETERS ";PE
- 1420 IF PE<1 OR PE>2 THEN 1410
- 1430 IF PE=2 THEN 1530
- 1440 PRINT:INPUT "ENTER THEN WIDTH (IN) = ";M:GOSUB 2830:W=M
- 1450 INPUT "ENTER THE LENGTH (IN) = ";M:GOSUB 2830:L(E)=INT(M*100+.5)/100
- 1460 INPUT "ENTER BOARD THICKNESS (IN) = ";M:GOSUB 2830:TH=M
- 1470 IF W/TH>1 THEN 1500
- 1480 EF=((C(E)+1/2)+((C(E)-1)/2)*((1+12*(TH/W))^(-.5)+.04*(1-W/TH)^2)
- 1490 ZO=(60/SQR(EF))*LOG(8*TH/W+.25*W/TH):R(E)=INT(ZO*100+.5)/100:GOTO 1260
- 1500 EF=((C(E)+1)/2)+((C(E)-1)/2)*(1+12*(TH/W))^(-.5)
- 1510 ZO=(120*3.14159/SQR(EF))/(W/TH+1.393+.667*LOG(W/TH+1.444))
- 1520 R(E)=INT(ZO*100+.5)/100:GOTO 1260
- 1530 PRINT:INPUT "ENTER CHAR. IMPEDANCE (OHMS) = ";M:GOSUB 2830:R(E)=M
- 1540 R(E)=INT(M*100+.5)/100
- 1550 INPUT "ENTER ELECTRICAL LENGTH (DEGS) = ";M:GOSUB 2830:DE=M
- 1560 INPUT "ENTER CENTER FREQUENCY (Mhz) = ";M:GOSUB 2830:FO=M
- 1570 L(E)=(DE*3E+10)/(C(E)*FO*FR*360):L(E)=INT(L(E)*100+.5)/100:GOTO 1260
- 1580 PRINT "C";E;" (PF) = ";:INPUT M:GOSUB 2830:C(E)=M:GOTO 1260
- 1590 PRINT "L";E;" (NH) = ";:INPUT M:GOSUB 2830:L(E)=M:GOTO 1260
- 1600 PRINT "T";E;" TURNS RATIO (N) = ";:INPUT M:GOSUB 2830:TR=M:GOTO 1260
- 1610 REM *************** CALCULATE INDIVIDUAL ABCD MATRICES *****************
- 1620 RA=1:IA=0:RB=R(N):IB=0:RC=0:IC=0:RD=1:ID=0:GOTO 920:REM TYPE 1
- 1630 RA=1:IA=0:RB=0:IB=0:RC=1/R(N):IC=0:RD=1:ID=0:GOTO 920:REM TYPE 2
- 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
- 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
- 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
- 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
- 1680 RA=1:IA=0:RB=R(N):IB=W*L(N)*L-1/(W*C(N)*C)
- 1690 RC=0:IC=0:RD=1:ID=0:GOTO 920:REM TYPE 7
- 1700 RA=1:IA=0:RB=0:IB=0:V4=W^2*L(N)*L*C(N)*C-1:REM TYPE 8
- 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)
- 1720 IC=-W*C(N)*C*V4/(W^2*(C(N)*C)^2*R(N)^2+V4^2)
- 1730 RD=1:ID=0:GOTO 920
- 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)
- 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
- 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
- 1770 RC=1/R(N):IC=(-1+W^2*L(N)*L*C(N)*C)/(W*L(N)*L):REM TYPE 10
- 1780 RA=1:IA=0:RB=0:IB=0:RD=1:ID=0:GOTO 920
- 1790 RB=R(N)/((1-W^2*L(N)*L*C(N)*C)^2+(W*C(N)*C*R(N))^2):REM TYPE 11
- 1800 IB=W*(L(N)*L*(1-W^2*L(N)*L*C(N)*C)-C(N)*C*R(N)^2)*RB/R(N)
- 1810 RA=1:IA=0:RC=0:IC=0:RD=1:ID=0:GOTO 920
- 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
- 1830 RC=0:IC=SIN(V3)/R(N):RD=COS(V3):ID=0:GOTO 920
- 1840 V3=W*L(N)*CM*C(N)^.5/3E+10:REM TYPE 13
- 1850 RA=1:IA=0:RB=0:IB=0:RC=0:IC=TAN(V3)/R(N):RD=1:ID=0:GOTO 920
- 1860 V3=W*L(N)*CM*C(N)^.5/3E+10:REM TYPE 14
- 1870 RA=1:IA=0:RB=0:IB=0:RC=0:IC=-1/(TAN(V3)*R(N)):RD=1:ID=0:GOTO 920
- 1880 V3=W*L(N)*CM*C(N)^.5/3E+10:REM TYPE 15
- 1890 RA=1:IA=0:RB=0:IB=-R(N)/TAN(V3):RC=0:IC=0:RD=1:ID=0:GOTO 920
- 1900 V3=W*L(N)*CM*C(N)^.5/3E+10:REM TYPE 16
- 1910 RA=1:IA=0:RB=0:IB=R(N)*TAN(V3):RC=0:IC=0:RD=1:ID=0:GOTO 920
- 1920 RA=TR:IA=0:RB=0:IB=0:RC=0:IC=0:RD=1/TR:ID=0:GOTO 920:REM TYPE 17
- 2560 REM ****************** MENU SELECTION ********************************
- 2570 PRINT:PRINT " (1) SER R (12) TRANSMISSION LINE"
- 2580 PRINT " (2) PAR R (13) PAR OPEN STUB"
- 2590 PRINT " (3) SER L (14) PAR SHORT STUB"
- 2600 PRINT " (4) PAR L (15) SER OPEN STUB"
- 2610 PRINT " (5) SER C (16) SER SHORT STUB"
- 2620 PRINT " (6) PAR C (17) TRANSFORMER"
- 2630 PRINT " (7) SER (S-RLC)"
- 2640 PRINT " (8) PAR (S-RLC)"
- 2650 PRINT " (9) SER (P-RLC)"
- 2660 PRINT "(10) PAR (P-RLC)"
- 2670 PRINT "(11) SER (S-RL/P-C)":PRINT:RETURN
- 2680 REM *********** PRINT ELEMENT LIST AT START OF CHART **************
- 2690 GOSUB 2820:LPRINT " RF NETWORK ANALYSIS PROGRAM - VER 1.0CPM"
- 2700 GOSUB 2820:LPRINT:LPRINT "NETWORK LISTING:":LPRINT
- 2710 LPRINT "ELEM";TAB(11);"TYPE";TAB(23);"R";TAB(33);"L";TAB(43);"C"
- 2720 LPRINT TAB(21);"(ZO)";TAB(32);"(L)";TAB(42);"(E)":LPRINT:Q$=" "
- 2730 F$=STR$(RS):LPRINT "SOURCE R "+LEFT$(Q$,10-LEN(F$))+F$:FOR J=1 TO NS
- 2740 OUTPUT$=""
- 2750 A=ET(J):GOSUB 2970:A=R(J):GOSUB 2970:A=L(J):GOSUB 2970:A=C(J):GOSUB 2970
- 2760 LPRINT J;TAB(4);OUTPUT$
- 2770 OUTPUT$="":NEXT J:F$=STR$(RL):LPRINT "LOAD R ";LEFT$(Q$,10-LEN(F$))+F$
- 2780 LPRINT:LPRINT "NOTE: R,L,C ARE FOR ELEMENT TYPES 1-11."
- 2790 LPRINT " ZO,L,E ARE FOR ELEMENT TYPES 12-16.":LPRINT
- 2800 GOSUB 2820:LPRINT:RETURN
- 2810 PRINT "===========================================":RETURN:REM PRINT LINE
- 2820 LPRINT " ========================================":RETURN
- 2830 IF M=0 THEN M=.00001:RETURN:REM ZERO DATA INPUT IS NOT ALLOWED
- 2840 RETURN
- 2850 PRINT CLS$:STOP
- 2860 REM ******************* PRINT OUT DIELECTRIC CONSTANT CHART ************
- 2870 PRINT:PRINT "DIELECTRIC CONSTANT CHART:":PRINT
- 2880 PRINT "AIR 1.00"
- 2890 PRINT "DUROID 5880 2.20"
- 2900 PRINT "DUROID 5870 2.23"
- 2910 PRINT "TEFLON-FIBERGLASS (PTFE) 2.55"
- 2920 PRINT "FUSED SILICA (QUARTZ) 3.78"
- 2930 PRINT "G-10 FIBERGLASS 4.50"
- 2940 PRINT "ALUMINA OR EPSILAM 10 10.00":PRINT
- 2950 INPUT "ENTER DESIRED DIELECTRIC CONST = ";M:GOSUB 2830:DC=M
- 2960 PRINT:RETURN
- 2970 REM ******************* FORMAT ELEMENT TABLE ***********************
- 2980 F$=STR$(A):P$=LEFT$(Q$,10-LEN(F$)):F$=P$+F$:OUTPUT$=OUTPUT$+F$:RETURN
- 3000 REM ************* GET DISK FILE ROUTINE ****************************
- 3010 PRINT:INPUT "DO YOU WANT TO RUN A (S)AVED OR (N)EW NETWORK";Q2$
- 3020 IF Q2$="S" OR Q2$="s" THEN GOTO 3040
- 3030 PRINT CLS$:GOTO 190:REM RETURN TO NETWORK INPUT SECTION
- 3040 PRINT CLS$:FILES:PRINT:PRINT
- 3050 PRINT:PRINT "ALL NETWORK FILES HAVE THE EXTENSION OF .NET"
- 3060 PRINT:PRINT "ENTER THE NAME OF THE NETWORK. (DON'T USE A FILE EXTENSION)"
- 3070 INPUT "FILENAME:";NA$:IF NA$="" THEN 3040
- 3080 NA$=NA$+".NET":OPEN "I",1,NA$:REM OPEN DISK FILE
- 3090 INPUT #1,NS:REM GET NUMBER OF SECTIONS
- 3100 FOR N=1 TO NS
- 3110 INPUT #1,ET(N),R(N),L(N),C(N),ST(N):REM GET ELEMENT VALUES
- 3120 NEXT N
- 3130 INPUT #1,RS,RL:REM GET SOURCE AND LOAD VALUES
- 3140 PRINT CLS$:CLOSE:GOTO 710:REM RETURN TO MAIN PROGRAM
- 3200 REM **************** WRITE TO DISK FILE ROUTINE **********************
- 3210 PRINT CLS$:PRINT:PRINT "ENTER THE FILENAME THE NETWORK WILL BE SAVED UNDER."
- 3220 PRINT "WARNING: IF YOU USE A DUPLICATE NAME THE OLD FILE WILL BE ERASED!!"
- 3230 PRINT:INPUT "FILENAME:";NA$:CLOSE:REM GET NEW FILE NAME
- 3240 NA$=NA$+".NET":OPEN "O",1,NA$:REM OPEN NEW FILE
- 3250 WRITE #1,NS
- 3260 FOR N=1 TO NS
- 3270 WRITE #1,ET(N),R(N),L(N),C(N),ST(N)
- 3280 NEXT N
- 3290 WRITE #1,RS,RL
- 3300 CLOSE:PRINT CLS$:RETURN