home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Antennas
/
Antennas_CD-ROM_Walnut_Creek_September_1996.iso
/
net94
/
basic
/
net94.asc
< prev
Wrap
Text File
|
1996-06-30
|
17KB
|
517 lines
1 REM $DYNAMIC
2 ON ERROR GOTO 60000
3 CLS
10 PRINT " ************ NETWORK ANALYSIS 94 ************"
11 PRINT " * SEE EDN FEB 4,1981, PP 126-133 *"
12 PRINT " * EXTENDED BY R.B.KOLBY, FEB. 1985 *"
13 PRINT " * AND BY R.P.HAVILAND 1986, 1994 *"
14 PRINT " ***********************************************"
15 PRINT
20 PRINT " THIS PROGRAM ANALYZES A MULTI-MODE NETWORK"
21 PRINT " IDENTIFY NODES BY SERIAL NUMBER"
22 PRINT " PREPARE NODE LIST BEFORE STARTING INPUT,"
23 PRINT " HIGHEST NODE NUMBER=SIGNAL COMMON"
24 PRINT " VARIABLES ARE OHMS, FARADS, HENRIES, HERTZ"
25 PRINT " USE EXPONENT FORM IN INPUT, E-3, E-6, E9, ETC."
26 PRINT
40 DEF FNP (X) = INT(X * 1000 + .5) / 1000
41 PI = 3.14159265#
42 C$ = CHR$(44)
43 SO$ = CHR$(14): SI$ = CHR$(15): PO$ = CHR$(16): ESC$ = CHR$(27)
50 P$ = " FREQ OUT/IN DB PHASE REAL IMAG"
60 K = FRE(-1): IF K < 0 THEN K = K + 2 ^ 16
61 K = INT(K / 5) - 23
62 X = INT((SQR(169 + 24 * K) - 26) / 12) - 1: K = 0
63 COMP = 0
70 PRINT " MAXIMUM NODES POSSIBLE WITH AVAILABLE MEMORY="; X
71 INPUT " NUMBER OF NODES TO ANALYZE, 0=FROM FILE"; Y
80 IF Y = 0 GOTO 3100
90 IF Y > X THEN 70
100 IF Y < X THEN X = Y
110 INPUT " ENTER NAME OF NET TO ANALYZE"; NA$
120 INPUT " ENTER REFERENCE DATE AS DDMMYY"; DA$
140 DIM A(X, X), B(X, X), P(X, X), Q(X, X), R(X, X), S(X, X), A$(22)
150 DIM I(2 * X), L(2 * X), M(2 * X), N(2 * X), O(2 * X), T(2 * X), Z(2 * X)
160 IF X > 5 THEN PRINT " WAIT FOR ARRAY SET-UP"
180 FOR J = 1 TO X
190 FOR I = 1 TO X
200 P(I, J) = 0
210 Q(I, J) = 0
220 R(I, J) = 0
230 S(I, J) = 0
240 NEXT I
250 NEXT J
260 N = 0
270 NODES = X: X = 1: T(X) = 0
300 A$(1) = " RESISTOR"
305 A$(2) = " CAPACITOR"
310 A$(3) = " INDUCTOR"
315 A$(4) = " TRANSMISSION LINE"
320 A$(5) = " SORTED STUB"
325 A$(6) = " OPEN STUB"
330 A$(7) = " OP-AMP"
335 A$(8) = " NPN TRANSISTOR"
340 A$(9) = " FET"
345 A$(10) = " TRIODE"
350 A$(11) = " TETRODE, PENTODE"
355 A$(12) = " STOP"
360 A$(13) = " ANALYZE NETWORK"
365 A$(14) = " SET PRINTER MODE"
370 A$(15) = " LOAD NETWORK FROM DISK"
375 A$(16) = " SAVE NETWORK TO DISK"
376 A$(17) = " RERUN PROGRAM"
377 A$(18) = " REPEAT ANALYSIS"
400 PRINT
410 CLS : PRINT
411 PRINT " COMPONENT TO ENTER"; TAB(30); " ACTION TO TAKE"
412 FOR K = 1 TO 11
413 PRINT K; A$(K);
414 IF K + 11 > 18 THEN PRINT : GOTO 416
415 PRINT TAB(30); K + 11; A$(K + 11)
416 NEXT K
420 PRINT : R6 = 0: INPUT " ENTER COMPONENT 1-11 OR ACTION 12-17"; R6
421 IF R6 < 1 OR R6 > 18 THEN 420
422 IF R6 > 11 THEN 429
423 IF S$ <> "Y" THEN 429
424 COMP = COMP + 1
425 LPRINT "COMPONENT #"; COMP; ", ";
429 CLS
430 ON R6 GOTO 730, 810, 770, 560, 690, 710, 990, 880, 840, 6000, 6200
440 ON (R6 - 11) GOTO 61010, 1060, 8000, 3000, 3500, 3010, 1059
450 GOTO 420
560 T(X) = 1: INPUT " SHIELD INPUT END NODE #="; M(X)
570 INPUT " CENTER INPUT NODE #="; I(X): INPUT " CENTER OUTPUT NODE #="; O(X)
580 INPUT " SHIELD OUTPUT NODE #="; N(X)
585 IF S$ = "Y" THEN LPRINT " TLINE CENTER IN="; I(X); " CENTER OUT="; O(X)
586 IF S$ = "Y" THEN LPRINT " SHIELD IN="; M(X); " SHIELD OUT="; N(X)
587 GOTO 610
590 INPUT "NODE A="; M(X)
600 INPUT "NODE B="; N(X)
610 INPUT "ZO="; Z(X)
620 INPUT " FREQUENCY AT WHICH LINE IS A QUARTER WAVE LONG"; L(X)
625 IF S$ = "Y" THEN LPRINT , "A="; M(X); " B="; N(X); " ZO="; Z(X); " LENGTH="; L(X)
630 IF I(X) > N THEN N = I(X)
640 IF M(X) > N THEN N = M(X)
650 IF N(X) > N THEN N = N(X)
660 IF O(X) > N THEN N = O(X)
670 X = X + 1: T(X) = 0
680 GOTO 410
690 T(X) = 3:
691 IF S$ = "Y" THEN LPRINT "SHORTED-STUB";
692 GOTO 590
710 T(X) = 2
711 IF S$ = "Y" THEN LPRINT "OPEN-STUB";
712 GOTO 590
730 INPUT " RESISTANCE, OHMS="; V: INPUT " END A NODE="; I: INPUT " END B NODE="; J
735 IF S$ = "Y" THEN LPRINT "RESISTOR="; V; "OHMS, A END="; I; " B END="; J
740 V = 1 / V
750 GOSUB 1430
760 GOTO 410
770 INPUT " L,HENRIES="; V: INPUT " END A NODE="; I: INPUT " END B NODE="; J
775 IF S$ = "Y" THEN LPRINT "INDUCTOR="; V; "HENRIES, A END="; I; " B END="; J
780 V = 1 / V
790 GOSUB 1360
800 GOTO 410
810 INPUT " C FARADS="; V: INPUT " END A NODE="; I: INPUT " END B NODE="; J
815 IF S$ = "Y" THEN LPRINT "CAPACITOR="; V; "FARADS, A END="; I; " B END="; J
820 GOSUB 1480
830 GOTO 410
840 INPUT " GATE NODE="; K: INPUT " SOURCE NODE="; J: INPUT " DRAIN NODE="; I
850 INPUT " FET GAIN, MHOS="; V: L = J
855 IF S$ = "Y" THEN LPRINT "FET GAIN="; V, " GATE="; K, " SOURCE="; J, " DRAIN="; I
860 GOSUB 1530
870 GOTO 410
880 INPUT " BASE NODE="; K: INPUT " EMITTER NODE="; J
881 INPUT " COLLECTOR NODE="; I
890 INPUT " BETA="; R5
891 INPUT " EMITTER CURRENT, * MILLAMPERES * ="; ECUR
892 RD = 26 / ECUR
893 PRINT " NPN BASE RESISTANCE="; RD
894 V= RD*(R5+1)
895 IF S$ = "Y" THEN LPRINT "NPN BASE RESISTANCE="; RD; " NPN BETA="; R5
896 IF S$ = "Y" THEN LPRINT " BASE,EMITTER,COLLECTOR="; K; C$; J; C$; I
900 V = 1 / V
910 L = I
920 I = K
930 GOSUB 1430
940 I = L
950 L = J
960 V = V * R5
970 GOSUB 1530
971 INPUT " PRESS RETURN TO CONTINUE"; C$
980 GOTO 410
990 INPUT " OPAMP +IN NODE="; K: INPUT " -IN NODE="; L
991 INPUT " -OUT NODE="; I: INPUT " +OUT NODE="; J
1000 INPUT " GAIN="; R5: INPUT " OUT RESISTANCE="; V
1005 IF S$ = "Y" THEN LPRINT " OPAMP GAIN="; R5, " ROUT="; V
1006 IF S$ = "Y" THEN LPRINT " +,-INPUT NODES="; K; C$; L
1007 IF S$ = "Y" THEN LPRINT " +,-OUTPUT NODES="; J; C$; I
1010 V = 1 / V
1020 GOSUB 1430
1030 V = V * R5
1040 GOSUB 1530
1050 GOTO 410
1059 IF M > 0 THEN N = N - 1: GOTO 1093
1060 INPUT " SIGNAL INPUT NODE="; E: INPUT " SIGNAL OUTPUT NODE="; F: N = N - 1
1070 INPUT " ENTER START, STOP FREQUENCIES,HZ"; G, H
1080 INPUT " ENTER # DATA POINTS"; M: IF M <= 2 THEN M = 2
1090 INPUT " ENTER 0=LOG,1=LINEAR FREQ.SCALE"; FS
1891 INPUT " SAVE OUTPUT DATA FILE, Y/N"; Q$
1092 IF Q$ = "Y" THEN GOSUB 7000
1093 CLS
1094 PRINT , "FILE "; NA$; " OF "; DA$
1095 PRINT , " INPUT NODE="; E, " OUTPUT NODE="; F
1096 PRINT P$
1100 D = (H - G) / (M - 1)
1110 R4 = EXP(LOG(H / G) / (M - 1))
1120 R0 = G: R9 = 0
1130 R9 = R9 + 1
1140 W = 2 * PI * R0
1150 O = E: Z = F
1160 GOSUB 2470
1170 GOSUB 2200
1180 V = R5: U = Z
1190 IF (E + F) / 2 = INT((E + F) / 2) THEN 1210
1200 U = U - 180
1210 O = E: Z = E
1220 GOSUB 2200
1230 U = U - Z
1240 IF V = 0 THEN R7 = -999: GOTO 1270
1250 IF R5 = 0 THEN R7 = 9999: GOTO 1270
1260 V = V / R5: R7 = 8.68589 * LOG(V)
1270 IF U > 180 THEN U = U - 360
1280 IF U < -180 THEN U = U + 360
1281 REAL = V * COS(U / 57.29578)
1282 IMG = V * SIN(U / 57.27578)
1290 PRINT USING "##.###^^^^"; R0; : PRINT TAB(13); FNP(V); TAB(26); FNP(R7);
1291 PRINT TAB(39); FNP(U); TAB(52); FNP(REAL); TAB(65); FNP(IMG)
1300 IF H$ = "Y" THEN LPRINT USING "##.###^^^^"; R0; : LPRINT TAB(13); FNP(V);
1301 IF H$ = "Y" THEN LPRINT TAB(26); FNP(R7); TAB(39); FNP(U);
1302 IF H$ = "Y" THEN LPRINT TAB(52); FNP(REAL); TAB(65); FNP(IMG)
1303 IF Q$ = "Y" THEN PRINT #4, USING "##.##^^^^"; R0;
1304 IF Q$ = "Y" THEN PRINT #4, FNP(V), FNP(R7), FNP(U), FNP(REAL), FNP(IMG)
1305 IF Z$ = "Y" THEN LPRINT USING "##.##^^^^"; R0; : LPRINT TAB(12);
1306 IF Z$ = "Y" THEN LPRINT FNP(V), FNP(R7), FNP(REAL), FNP(IMG)
1308 IF G$ = "Y" THEN GOSUB 9500 'PRINT GRAPHS
1310 IF FS = 0 THEN R0 = R0 * R4
1320 IF FS <> 0 THEN R0 = R0 + D
1330 IF R9 <> M THEN 1130
1340 N = N + 1
1350 PRINT " PRESS RETURN TO CONTINUE"
1351 INPUT C$
1352 IF Q$ = "Y" THEN CLOSE 4: Q$ = "N"
1353 IF G$ = "Y" THEN GOSUB 9070: LPRINT : LPRINT
1354 IF H$ = "Y" OR S$ = "Y" OR Z$ = "Y" THEN LPRINT : LPRINT
1355 GOTO 410
1360 R(I, I) = R(I, I) + V' IND
1370 R(J, J) = R(J, J) + V
1380 R(I, J) = R(I, J) - V
1390 R(J, I) = R(J, I) - V
1400 IF I > N THEN N = I
1410 IF J > N THEN N = J
1420 RETURN
1430 P(I, I) = P(I, I) + V 'RES, NPN
1440 P(J, J) = P(J, J) + V
1450 P(I, J) = P(I, J) - V
1460 P(J, I) = P(J, I) - V
1470 GOTO 1400
1480 Q(I, I) = Q(I, I) + V 'CAP
1490 Q(J, J) = Q(J, J) + V
1500 Q(I, J) = Q(I, J) - V
1510 Q(J, I) = Q(J, I) - V
1520 GOTO 1400
1530 P(I, K) = P(I, K) + V 'FET, NPN
1540 P(J, L) = P(J, L) + V
1550 P(J, K) = P(J, K) - V
1560 P(I, L) = P(I, L) - V
1570 IF K > N THEN N = K
1580 IF L > K THEN N = L
1590 GOTO 1400
1600 IF N > 1 THEN 1630 'COMP
1610 O = A(1, 1): Z = B(1, 1)
1620 RETURN
1630 O = 1
1640 Z = 0
1650 K = 1
1660 L = K
1670 S = ABS(A(K, K)) + ABS(B(K, K))
1680 I = K - 1
1690 I = I + 1
1700 T = ABS(A(I, K)) + ABS(B(I, K))
1710 IF S >= T THEN 1730
1720 L = I: S = T
1730 IF I <> N THEN 1690
1740 IF L = K THEN 1800
1750 J = 0
1760 J = J + 1
1770 S = -A(K, J): A(K, J) = A(L, J): A(L, J) = S
1780 A = -B(K, J): B(K, J) = B(L, J): B(L, J) = A
1790 IF J <> N THEN 1760
1800 L = K + 1: I = L - 1
1810 I = I + 1
1820 A = A(K, K) * A(K, K) + B(K, K) * B(K, K)
1830 S = (A(I, K) * A(K, K) + B(I, K) * B(K, K)) / A
1840 B(I, K) = (A(K, K) * B(I, K) - A(I, K) * B(K, K)) / A
1850 A(I, K) = S
1860 IF I <> N THEN 1810
1870 C = K - 1
1880 IF C = 0 THEN 1960
1890 J = L - 1
1900 J = J + 1: I = 0
1910 I = I + 1
1920 A(K, J) = A(K, J) - A(K, I) * A(I, J) + B(K, I) * B(I, J)
1930 B(K, J) = B(K, J) - B(K, I) * A(I, J) - A(K, I) * B(I, J)
1940 IF C <> I THEN 1910
1950 IF J <> N THEN 1900
1960 C = K
1970 K = K + 1: I = K - 1
1980 I = I + 1: J = 0
1990 J = J + 1
2000 A(I, K) = A(I, K) - A(I, J) * A(J, K) + B(I, J) * B(J, K)
2010 B(I, K) = B(I, K) - B(I, J) * A(J, K) - A(I, J) * B(J, K)
2020 IF J <> C THEN 1990
2030 IF I <> N THEN 1980
2040 IF K <> N THEN 1660
2050 L = 1
2060 C = INT(N / 2)
2070 IF N = 2 * C THEN 2100
2080 L = 0
2090 O = A(N, N): Z = B(N, N)
2100 I = 0
2110 I = I + 1
2120 J = N - I + L
2130 S = A(I, I) * A(J, J) - B(I, I) * B(J, J)
2140 A = A(I, I) * B(J, J) + A(J, J) * B(I, I)
2150 T = O * S - Z * A
2160 Z = Z * S + O * A
2170 O = T
2180 IF I <> C THEN 2110
2190 RETURN
2200 R5 = N 'DETERMINANT
2210 N = N - 1
2220 I = 0
2230 K = 0
2240 K = K + 1
2250 IF K <> O THEN 2270
2260 I = 1
2270 J = 0: L = 0
2280 L = L + 1
2290 IF L <> Z THEN 2310
2300 J = 1
2310 A(K, L) = P(K + I, L + J)
2320 B(K, L) = W * Q(K + I, L + J) - R(K + I, L + J) / W + S(K + I, L + J)
2330 IF L <> N THEN 2280
2340 IF K <> N THEN 2240
2350 GOSUB 1600
2360 N = R5
2370 R5 = SQR(O * O + Z * Z)
2380 Y = Z
2390 IF O = 0 THEN 2450
2400 Z = 180 / PI * ATN(Z / O)
2410 IF O > 0 THEN RETURN
2420 Z = Z + SGN(Y) * 180
2430 IF Y = 0 THEN Z = 180
2440 RETURN
2450 Z = 90 * SGN(Y)
2460 RETURN
2470 IF T(1) = 0 THEN RETURN
2480 X = 0
2490 R1 = 0
2500 R1 = R1 + 1: R2 = 0
2510 R2 = R2 + 1
2520 S(R1, R2) = 0
2530 IF R2 <> N + 1 THEN 2510
2540 IF R1 <> N + 1 THEN 2500
2550 X = X + 1
2560 IF X > 20 THEN RETURN
2570 IF T(X) = 0 THEN RETURN
2580 IF T(X) = 1 THEN 2640
2590 IF T(X) = 2 THEN 2830
2600 R1 = -1 / (Z(X) * TAN(.25 * W / L(X)))
2610 Q = M(X): R = N(X)
2620 GOSUB 2870
2630 GOTO 2550
2640 R1 = -1 / (Z(X) * TAN(.25 * W / L(X)))
2650 Q = M(X): R = I(X)
2660 GOSUB 2870
2670 Q = N(X): R = O(X): GOSUB 2870
2680 R1 = 1 / (Z(X) * SIN(.25 * W / L(X)))
2690 P = I(X)
2700 R = N(X)
2710 S(R, P) = S(R, P) - R1
2720 S(P, R) = S(P, R) - R1
2730 R = O(X)
2740 S(R, P) = S(R, P) + R1
2750 S(P, R) = S(P, R) + R1
2760 P = M(X)
2770 S(R, P) = S(R, P) - R1
2780 S(P, R) = S(P, R) - R1
2790 R = N(X)
2800 S(R, P) = S(R, P) + R1
2810 S(P, R) = S(P, R) + R1
2820 GOTO 2550
2830 R2 = 1 / (Z(X) * TAN(.25 * W / L(X)))
2840 R3 = 1 / (Z(X) * SIN(.25 * W / L(X)))
2850 R1 = R3 * R3 / R2 - R2
2860 GOTO 2610
2870 S(Q, Q) = S(Q, Q) + R1
2880 S(R, R) = S(R, R) + R1
2890 S(Q, R) = S(Q, R) - R1
2900 S(R, Q) = S(R, Q) - R1
2910 RETURN
2920 STOP
3000 PRINT " *** WARNING- ALL ARRAYS WILL BE ERASED ***"
3010 INPUT " CONTINUE, OR RETURN TO MENU FOR SAVE, Y/N"; T$
3020 IF T$ <> "Y" THEN RETURN
3030 ERASE A, B, P, Q, R, S, T, I, M, N, O, L, Z, A$
3040 IF R6 = 17 THEN GOTO 2
3100 INPUT " NAME OF FILE TO LOAD, .NET IS ADDED (*.*=DIR)"; FAN$
3110 INPUT " FILEPATH FOR LOAD, INCLUDE ANY : AND \"; FAP$
3120 IF FAN$ <> "*.*" THEN 3200
3130 FILES (FAP$ + FAN$)
3140 GOTO 3100
3200 OPEN FAP$ + FAN$ + ".NET" FOR INPUT AS #2
3210 INPUT #2, X, N
3220 DIM A(X, X), B(X, X), P(X, X), Q(X, X), R(X, X), S(X, X), A$(22)
3230 DIM I(2 * X), L(2 * X), M(2 * X), N(2 * X), O(2 * X), T(2 * X), Z(2 * X)
3300 FOR J = 1 TO X
3310 INPUT #2, I(J), T(J), M(J), N(J), O(J), L(J), Z(J)
3320 FOR K = 1 TO X
3330 INPUT #2, A(J, K), B(J, K), P(J, K), Q(J, K), R(J, K), S(J, K)
3340 NEXT K
3450 NEXT J
3400 INPUT #2, NA$, DA$
3410 CLOSE 2
3420 NODES = X
3430 GOTO 270
3500 INPUT " NAME OF FILE TO SAVE, .NET IS ADDED "; FAN$
3510 INPUT " FILEPATH FOR SAVE, INCLUDE ANY : AND \"; FAP$
3520 D$ = CHR$(13)
3530 OPEN FAP$ + FAN$ + ".NET" FOR OUTPUT AS #2
3550 PRINT #2, NODES; C$; N
3600 FOR J = 1 TO NODES
3610 PRINT #2, I(J); C$; T(J); C$; M(J); C$; N(J); C$; O(J); C$; L(J); C$; Z(J)
3620 FOR K = 1 TO NODES
3630 PRINT #2, A(J, K); C$; B(J, K); C$; P(J, K); C$; Q(J, K); C$; R(J, K); C$; S(J, K)
3640 NEXT K
3650 NEXT J
3700 PRINT #2, NA$
3710 PRINT #2, DA$
3720 CLOSE 2
3730 GOTO 410
4000 PRINT " SPARE ": GOTO 410
5000 PRINT " SPARE ": GOTO 410
6000 IF S$ = "Y" THEN LPRINT " TRIODE"
6010 INPUT " GRID NODE="; K
6020 IF S$ = "Y" THEN LPRINT " GRID NODE="; K
6030 INPUT " PLATE NODE="; I
6040 IF S$ = "Y" THEN LPRINT " PLATE NODE="; I
6050 INPUT " CATHODE NODE="; J
6060 IF S$ = "Y" THEN LPRINT " CATHODE NODE="; J: L = J
6070 INPUT " TRIODE MU-FACTOR="; MU
6080 IF S$ = "Y" THEN LPRINT " TRIODE MU-FACTOR="; MU
6090 INPUT " PLATE RESISTANCE, OHMS="; PRES
6100 IF S$ = "Y" THEN LPRINT " PLATE RESISTANCE, OHMS="; PRES
6110 V = MU / PRES
6120 GOSUB 1530
6130 V = 1 / PRES
6140 GOSUB 1430
6150 GOTO 410
6200 IF S$ = "Y" THEN LPRINT "TETRODE,PENTODE"
6210 INPUT " CONTROL GRID NODE="; K
6220 IF S$ = "Y" THEN LPRINT " CONTROL GRID NODE="; K
6230 INPUT " PLATE NODE="; I
6240 IF S$ = "Y" THEN LPRINT " PLATE NODE="; I
6250 INPUT " CATHODE NODE="; J: L = J
6260 IF S$ = "Y" THEN LPRINT " CATHODE NODE="; J
6270 INPUT " TRANSCONDUCTANCE, MHOS, ="; V
6280 IF S$ = "Y" THEN LPRINT " TRANSCONDUCTANCE, MHOS, ="; V
6290 INPUT " PLATE RESISTANCE, OHMS="; PRES
6300 IF S$ = "Y" THEN LPRINT " PLATE RESISTANCE, OHMS="; PRES
6310 GOSUB 1530
6320 V = 1 / PRES
6330 GOSUB 1430
6340 GOTO 410
7000 PRINT " OUTPUT DATA WILL SAVED AS "; NA$; "+.OUT"
7010 INPUT " ENTER FILEPATH TO USE, INCLUDE ANY : AND \"; OFP$
7020 OPEN OFP$ + NA$ + ".OUT" FOR OUTPUT AS #4
7030 RETURN
8000 PRINT " SELECT PRINTER MODE"
8010 PRINT " 1= OUTPUT TABLE ON"
8020 PRINT " 2= TABLE OFF"
8030 PRINT " 3= OUTPUT GRAPH ON"
8040 PRINT " 4= GRAPH OFF"
8050 PRINT " 5= REAL/IMAG TABLE ON"
8060 PRINT " 6= TABLE OFF"
8070 PRINT " 7= COMPONENT LIST ON"
8080 PRINT " 8= LIST OFF"
8090 INPUT T$
8100 LPRINT SI$
8110 LPRINT ESC$; "Q"; CHR$(120)
8200 IF T$ = "1" THEN H$ = "Y": G$ = "N": Z$ = "N": S$ = "N": GOSUB 9400
8210 IF T$ = "2" THEN H$ = "N"
8220 IF T$ = "3" THEN G$ = "Y": Z$ = "N": S$ = "N": H$ = "N": GOSUB 9000
8230 IF T$ = "4" THEN G$ = "N"
8240 IF T$ = "5" THEN Z$ = "Y": G$ = "N": H$ = "N": S$ = "N": GOSUB 9300
8250 IF T$ = "6" THEN Z$ = "N"
8260 IF T$ = "7" THEN S$ = "Y": H$ = "N": G$ = "N": Z$ = "N": GOSUB 9200
8270 IF T$ = "8" THEN S$ = "N"
8300 GOTO 410
9000 LPRINT " FILE "; NA$; " OF DATE "; DA$
9010 LPRINT : LPRINT , "INPUT NODE="; E, "OUTPUT NODE="; F
9020 LPRINT : LPRINT P$: LPRINT
9030 LPRINT "GAIN(*) -40 DB -20 DB 0";
9040 LPRINT " DB +20"
9050 LPRINT "ANGLE(+) -180 DEG 0";
9060 LPRINT " DEG 180"
9070 LPRINT : LPRINT " ";
9071 FOR B = 1 TO 6
9072 FOR BB = 1 TO 9
9073 LPRINT "+";
9074 NEXT BB
9075 LPRINT "X";
9076 NEXT B
9077 LPRINT
9080 RETURN
9200 LPRINT
9210 LPRINT " COMPONENT CONNECTION LIST FOR "; NA$; " OF "; DA$
9220 LPRINT
9230 RETURN
9300 LPRINT " FILE "; NA$; " OF DATE "; DA$
9310 LPRINT : LPRINT , "INPUT NODE="; E, "OUTPUT NODE="; F
9320 LPRINT : LPRINT
9330 LPRINT "FREQUENCY OUT/IN ANGLE REAL IMAG."
9340 RETURN
9400 LPRINT " FILE "; NA$; " OF DATE "; DA$
9410 LPRINT : LPRINT , "INPUT NODE="; E, "OUTPUT NODE="; F
9420 LPRINT : LPRINT P$: LPRINT
9430 RETURN
9500 T1 = LOG(R0) / LOG(10): T1 = INT(T1)
9510 T2 = R0 / 10 ^ T1: T2 = INT(1000 * T2 + .00000001#) / 1000
9520 T$ = STR$(T2) + " E" + STR$(T1)
9530 LPRINT T$;
9540 LPRINT TAB(12); "|";
9550 Y1 = R7 + 52: Y1 = INT(Y1)
9560 Q$ = "*": QQ$ = "+"
9570 IF Y1 < 13 THEN Y1 = 13: Q$ = "<"
9580 IF Y1 > 80 THEN Y1 = 80: Q$ = ">"
9590 Y2 = U / 6 + 42: Y2 = INT(Y2): IF Y2 < 13 THEN Y2 = 13: QQ$ = "^"
9595 IF Y1 = Y2 THEN LPRINT TAB(Y1); "%": GOTO 9670
9600 IF Y1 > Y2 THEN 9650
9610 LPRINT TAB(Y1); Q$;
9630 LPRINT TAB(Y2); QQ$;
9640 GOTO 9670
9650 LPRINT TAB(Y2); QQ$;
9660 LPRINT TAB(Y1); Q$;
9670 LPRINT TAB(0);
9680 RETURN
60000 PRINT " ERROR "; ERR; " AT LINE "; ERL
60010 IF ERL = 3240 THEN PRINT " FILE NOT FOUND": RESUME 3000
60020 IF ERL = 3540 THEN PRINT " FILE CREATION FAILURE": RESUME 3500
60030 IF ERR = 9 THEN PRINT " NODE ENTRY ERROR": GOTO 410
60040 IF ERR = 7 THEN PRINT " TOO MANY NODES- REDUCE #, OR INCREASE MEMORY"
60050 RESUME 411
61000 LPRINT ESC$; "@"
61010 STOP