250 PRINT " ALL UNITS IN VOLTS, AMPS, OHMS, FARADS, HENRIES, HZ, ETC."
260 PRINT " NODE VOLTAGES AND IMPEDANCES REFERENCED TO NODE 0 (ground)."
270 PRINT " ALL CALC ASSUMED AT DC (0 FREQ) UNLESS FREQ SET WITH 'F' OPTION."
280 PRINT " MAXIMUM NUMBER OF SWEEP POINTS=100. IF ERROR 'GOTO 1290'.
290 PRINT: INPUT " WANT ADDITIONAL INFORMATION (Y/N)"; B$: IF B$<>"Y" GOTO 1300
300 CLS: PRINT " TCAP IS A PROGRAM FOR THE ANALYSIS OF ELECTRICAL CIRCUITS CONSISTING"
310 PRINT " OF RESISTORS, CAPACITORS, INDUCTORS AND SEVERAL COMMON ACTIVE DEVICES.
320 PRINT " FIRST DRAW THE CIRCUIT TO BE ANALAYZED ON A SHEET OF PAPER. ASSIGN A
330 PRINT " NUMBER TO EACH ELEMENT OF THE CIRCUIT. THIS IS THE COMPONENT NUMBER.
340 PRINT " NEXT ASSIGN A NUMBER TO EACH NETWORK NODE. A NODE IS PRESENT AT THE
350 PRINT " CONNECTION BETWEEN ELEMENTS. NO TWO ELEMENTS MAY BE CONNECTED WITHOUT
360 PRINT " A NODE BETWEEN THEM. EVERY ELEMENT MUST BEGIN AND END AT A NODE. ANY
370 PRINT " NUMBER OF ELEMENTS MAY BE CONNECTED TO A COMMON NODE.": PRINT:
380 PRINT " ONCE ALL THE ELEMENTS AND NODES ARE NUMBERED, YOU ARE READY TO ENTER
390 PRINT " YOUR NETWORK INTO TCAP.": PRINT
400 PRINT " TCAP WILL FIRST ASK WHETHER YOU WISH TO READ A FILE. TCAP ALLOWS YOU
410 PRINT " TO SAVE ON DISK CIRCUIT FILES ('S') YOU HAVE PREVIOUSLY WORKED ON. IF
420 PRINT " YOU DO NOT HAVE A PREVIOUS FILE YOU WISH TO WORK ON, TYPE 'N' OR
430 PRINT " HIT CARRIAGE RETURN AND TCAP WILL PUT YOU IN THE NEW FILE MODE. IN
440 PRINT " THE NEW FILE MODE, TCAP WILL FIRST ASK FOR THE HIGHEST NODE NUMBER."
450 PRINT " NEXT TCAP WILL ASK FOR THE NUMBER OF VOLTAGE SOURCES. IT WILL THEN
460 PRINT " ASK FOR THE NUMBER OF COMPONENTS. THIS NUMBER INCLUDES THE VOLTAGE
470 PRINT " SOURCES. YOU ARE THEN READY TO ENTER THE CIRCUIT ELEMENTS. THEY MAY
480 PRINT " BE ENTERED IN ANY ORDER. ENTER NODE AND ELEMENT VALUES SEPARATED BY
490 PRINT " COMMAS AS DIRECTED BY TCAP. FOR EXAMPLE A RESISTOR (COMPONENT TYPE 'R')
500 PRINT " BETWEEN NODES 2 AND 3 OF 120 OHMS WOULD BE ENTERED AS '2,3,120'.
510 INPUT " PRESS <CR> TO CONTINUE"; Q$: PRINT
520 PRINT " SAMPLE FILES: SAMPLE-1 AND SAMPLE-2 ARE NORMALLY INCLUDED WITH TCAP
530 PRINT " TO ILLUSTRATE HOW FILES ARE CREATED. LOAD AND LIST THESE FILES WITH
540 PRINT " WITH THE 'L' FUNCTION BEFORE ATTEMPTING TO ENTER A CIRCUIT OF YOUR OWN.": PRINT
550 PRINT " TCAP INITIALLY ASSUMES CALCULATIONS ARE TO BE AT DC (0 Hz). FOR CALCULATIONS
560 PRINT " AT OTHER FREQUENCIES, THE FREQUENCY MUST BE SET WITH THE 'F' COMMAND.
570 PRINT " TCAP CAN PERFORM NODE VOLTAGE CALCULATIONS AT A SINGLE FREQUENCY OR OVER
580 PRINT " A RANGE OF FREQUENCIES (SWEEP). WHEN PERFORMING A NON-SWEEP CALCULATION,
590 PRINT " IT WILL ALWAYS RETURN TO THE LAST SINGLE FREQUENCY SPECIFIED. TCAP CAN
600 PRINT " ALSO CALCULATE OVER A 'SWEEP' OF COMPONENT VALUES WITH THE 'C' FUNCTION.
610 PRINT " AFTER A COMPONENT SWEEP CALCULATION, TCAP WILL RETURN TO THE ORIGINAL
620 PRINT " COMPONENT VALUE. TCAP ALWAYS TABULATES THE RESULTS OF A SWEEP CALCULATION,
630 PRINT " BUT IT CAN ALSO DISPLAY THESE RESULTS IN GRAPHICAL FORM.
640 PRINT: INPUT " DO YOU WANT ADDITIONAL INFORMATION ON FUNCTIONS (Y/N)"; Q$
650 IF Q$<>"Y" THEN 860 ELSE PRINT
660 PRINT " TCAP CALCULATES NODE VOLTAGES WITH THE 'V' FUNCTION. THE 'I' FUNCTION
670 PRINT " CALCULATES THE CURRENT SUPPLIED BY ALL NETWORK VOLTAGE AND CURRENT SOURCES,
680 PRINT " BUT DOES NOT CALCULATE THE CURRENT THROUGH INDIVIDUAL NETWORK ELEMENTS.
690 PRINT " TO DETERMINE THE VOLTAGE ACROSS AND THE CURRENT THROUGH AN ELEMENT
700 PRINT " (OR NETWORK BRANCH), THE 'B' COMMAND IS USED. THIS FUNCTION WILL PROVIDE
710 PRINT " THE VOLTAGES ACROSS ALL 2-TERMINAL NETWORK ELEMENTS AND THE CURRENTS
720 PRINT " THROUGH THESE ELEMENTS (EXCEPT FOR SOURCES - PROVIDED BY THE 'I' COMMAND).
730 PRINT " VOLTAGE IS DEFINED AS POSITIVE AT THE FIRST NODE RELATIVE TO THE SECOND
740 PRINT " NODE. THE 'Z' FUNCTION PROVIDES THE IMPEDANCE BETWEEN A SPECIFIED NODE AND
750 PRINT " GROUND (NODE 0) WITH ALL VOLTAGE SOURCES SHORTED AND ALL CURRENT SOURCES
760 PRINT " OPEN CIRCUITED. TO CALCULATE THE INPUT (OR OUTPUT) IMPEDANCE OF A
770 PRINT " NETWORK, DRIVE THE NETWORK WITH A 1 AMP CURRENT SOURCE. THE VOLTAGE
780 PRINT " AT THE NODE OF THE CURRENT SOURCE EQUALS THE DESIRED IMPEDANCE. THIS
790 PRINT " IMPEDANCE MAY BE PLOTTED USING THE 'F' COMMAND AND SWEEP FUNCTION.": PRINT
800 PRINT " UPTO TEN COMPONENTS (EXCLUDING VOLTAGE SOURCES) MAY BE ADDED TO
810 PRINT " A NETWORK WITH THE 'A' FUNCTION JUST AS LONG AS NO ADDITIONAL NODES
820 PRINT " ARE ADDED. 'R' AND 'D' ALLOW THE SUBSTITUTION AND DELETION OF COMPONENTS.": PRINT
830 PRINT " THE 'M' FUNCTION CAUSES TCAP TO DISPLAY THE MAGNITUDES OF VOLTAGES IN
840 PRINT " dB. A REFERENCE VOLTAGE MUST BE SUPPLIED FOR THE 20 LOG(V/VREF) CALC.
850 PRINT " THE M FUNCTION IS TURNED OFF BY ENTERING A VREF=0.
860 PRINT: INPUT " DO YOU WANT INFORMATION ON ACTIVE DEVICES (Y/N)"; Q$
870 IF Q$<>"Y" THEN 1300
880 CLS: PRINT " TCAP HAS 5 ACTIVE DEVICE MODELS: PNP, NPN AND FET TRANSISTORS, A
890 PRINT " CONTROLLED VOLTAGE SOURCE (WHICH CAN BE MADE TO ACT LIKE A TUBE) AND
900 PRINT " AN OPERATIONAL AMPLIFIER.
910 PRINT
920 PRINT " FOR AC PROBLEMS THE PNP AND NPN MODELS ARE IDENTICAL. THEY CONSIST
930 PRINT " OF A .1 OHM RESISTANCE (APPROXIMATE SHORT CIRCUIT) CONNECTED
940 PRINT " BETWEEN THE BASE AND EMITTER TERMINALS AND A CONTROLLED CURRENT
950 PRINT " SOURCE BETWEEN THE COLLECTOR AND EMITTER TERMINALS. THE CURRENT
960 PRINT " PRODUCED BY THIS CURRENT SOURCE IS THE PRODUCT OF THE CURRENT
970 PRINT " FLOWING INTO THE BASE TERMINAL TIMES BETA. MORE COMPLEX TRANSISTOR
980 PRINT " MODELS MAY BE CREATED BY ADDING EXTRA ELEMENTS IN SERIES AND PARALLEL
990 PRINT " WITH THE DEVICE TERMINALS. FOR EXAMPLE A RESISTOR CAN BE PUT IN SERIES
1000 PRINT " WITH THE BASE TERMINAL TO SIMULATE THE EFFECT OF Rie, OR IN PARALLEL
1010 PRINT " WITH THE COLLECTOR/EMITTER TERMINALS TO SIMULATE THE EFFECT OF Hoe.
1020 PRINT " ACTIVE DEVICES CAN ALSO BE COMBINED TO MAKE EVEN MORE COMPLEX MODELS.
1030 PRINT: PRINT " IN THE DC CASE (F=0), A .7 VOLT SOURCE IS ADDED IN SERIES WITH THE
1040 PRINT " BASE TERMINALS OF THE BIPOLAR TRANSISTOR MODELS, WITH THE APPROPRIATE
1050 PRINT " POLARITY FOR EITHER PNP OR NPN DEVICES, AND TCAP CHECKS FOR CORRECT
1060 PRINT " BIAS POLARITY. IN THE AC CASE (F>0), THE .7 VOLT BATTERY IS ELIMINATED
1070 PRINT " AND ALL CIRCUIT VOLTAGE SOURCES ARE SET TO THE FREQUENCY SPECIFIED BY
1080 PRINT " 'F', I.E., SEPARATE CIRCUITS ARE NEEDED FOR BIAS (DC) AND AC CONDITIONS.
1090 PRINT: INPUT " PRESS <CR> TO CONTINUE"; Q$: PRINT
1100 PRINT " THE OPERATIONAL AMPLIFIER IS A CONTROLLED VOLTAGE SOURCE WHOSE
1110 PRINT " OUTPUT VOLTAGE IS THE PRODUCT OF THE VOLTAGE BETWEEN ITS (+) AND
1120 PRINT " (-) TERMINALS TIMES GAIN. AN OPEN CIRCUIT (2 MEGOHMS) IS PRESENT BE-
1130 PRINT " TWEEN THE (+) AND (-) TERMINALS WHICH ARE FLOATING RELATIVE TO THE
1140 PRINT " OUTPUT. THE OUTPUT VOLTAGE SOURCE HAS EFFECTIVELY A ZERO IMPEDANCE AND
1150 PRINT " IS CONNECTED TO GROUND (NODE 0).
1160 PRINT
1170 PRINT " THE FET MODEL IS A CONTROLLED CURRENT SOURCE, WHOSE OUTPUT DEPENDS
1180 PRINT " ON THE VOLTAGE AT THE GATE TERMINAL TIMES MU. IT HAS BOTH NEAR
1190 PRINT " INFINITE INPUT AND OUTPUT IMPEDANCES. BOTH INPUT AND OUTPUT TERMINALS
1200 PRINT " ARE REFERENCED TO THE SOURCE NODE. DC WISE, THE FET MODEL CAN BE
1210 PRINT " CONSIDERED AN ENHANCEMENT TYPE FET, BUT NO CHECK IS MADE FOR
1220 PRINT " CORRECT (LINEAR) BIAS CONDITIONS.
1230 PRINT
1240 PRINT " THE CVS (CONTROLLED VOLTAGE SOURCE) IS SIMILAR TO THE OPERATIONAL
1250 PRINT " AMPLIFIER OR OP-AMP, BUT HAS BOTH INPUT AND OUTPUT VOLTAGE
1260 PRINT " REFERENCED TO ITS COMMON CATHODE NODE. IT HAS INFINITE INPUT
1270 PRINT " AND ZERO OUTPUT IMPEDANCES. TO MAKE THE CVS MODEL A VACUUM TUBE, A
1280 PRINT " LARGE RESISTOR SHOULD BE ADDED IN SERIES WITH THE PLATE NODE.
1290 PRINT: INPUT " WANT HARD COPY OF ABOVE INFORMATION (Y/N)"; Q$: IF Q$="Y" THEN GOSUB 5460
1300 IF QH=1 THEN QH=0: RETURN
1310 CLEAR: PI=3.14159: P2=PI*2: P6=PI/180
1320 CLS:COLOR 1,14:FILES "*.CAP":COLOR 0,7:LOCATE 2,70:COLOR 4,0:PRINT FRE(""):COLOR 0,7: LOCATE 10,2:PRINT:PRINT;TAB(10);"DO YOU WANT TO ENTER A FILE (Y/N)";:INPUT A$
1330 IF A$="Y" THEN 1790
1340 PRINT:PRINT;TAB(10);" WHAT IS THE HIGHEST NODE NUMBER";:INPUT LS
1350 IF LS<1 OR LS<>INT(LS) THEN 1340
1360 PRINT:INPUT " HOW MANY VOLTAGE SOURCES ARE IN THE CIRCUIT"; LV
1370 IF LV<0 OR LV<>INT(LV) THEN 1360 ELSE NO=LS+LV
1380 PRINT:INPUT " HOW MANY COMPONENTS ARE IN THE CIRCUIT"; CT
1390 IF CT<1 OR CT<>INT(CT) THEN 1380
1400 COLOR 4,0:LOCATE 2,70:PRINT FRE(""):DIM Y(NO,NO+1),X(NO,NO+1),T(CT+LV+5),N1(CT+LV+5),N2(CT+LV+5),V(CT+LV+5),G(CT+LV+5),FP(100),FR(100),FY(100),FF(100):COLOR 0,7
1410 FOR CR=1 TO CT: GOSUB 2390: NEXT: GOTO 1630
1420 PRINT: PRINT " A TCAP PROGRAM ERROR HAS OCCURED"
1430 REM******************** MENU ********************
3440 PRINT" BASE-EMITTER JUNCTION OF TRANSISTOR AT B="N1(RL)"E="N2(RL)"C="V(RL):GOTO 3490
3450 IF SP>=DP THEN 3350
3460 PRINT" BASE-COLLECTOR JUNCTION OF TRANSISTOR AT B="N1(RL)"E="N2(RL)"C="V(RL):GOTO 3490
3470 IF DM-0.7<DP THEN 3440
3480 IF SP>DP THEN 3460 ELSE 3350
3490 PRINT" IS REVERSE BIASED. LINEAR CIRCUIT ANALYSIS IS NOT POSSIBLE.":RETURN
3500 REM *************** REMOVE ELEMENT *******************
3510 GOSUB 4420:PRINT:COLOR 4,15:PRINT;" CAUTION! A CIRCUIT ELEMENT WILL BE REMOVED BY THE FOLLOWING ACTION..":COLOR 0,15:PRINT;TAB(20);"ENTER 999 TO ABORT ":PRINT: INPUT "BRANCH # ";L
3519 IF L=999 GOTO 1430
3520 IF L<=CT AND L>0 THEN 3530 ELSE PRINT"INVALID COMPONENT NUMBER. ENTRY IGNORED.":RETURN
3530 IF L=CT THEN 3540 ELSE FOR P=L TO CT-1:T(P)=T(P+1):N1(P)=N1(P+1):N2(P)=N2(P+1):V(P)=V(P+1):G(P)=G(P+1):NEXT:CT=CT-1:RETURN
3540 T(CT)=0:CT=CT-1:RETURN
3550 REM ************** MAG IN dB SET **********************
3560 PRINT: PRINT "ALL VOLTAGE MAGNITUDES WILL BE IN dB RELATIVE TO REFERENCE."
3570 PRINT "TO RESET TO NORMAL MODE ENTER ZERO OR CARRIAGE RETURN."
3580 INPUT "REFERENCE VOLTAGE FOR dB CALC"; RF
3590 IF RF<0 THEN PRINT: PRINT "dB REF MUST BE > 0!": GOTO 3580
3600 R$=" dB": IF RF=0 THEN R$="": RETURN ELSE RETURN
3610 REM ************** Z CALC *****************************
3620 PRINT: PRINT"IMPEDANCE AT WHICH NODE? ( 1 -"LS") ";:INPUT ND: IF ND<1 OR ND>LS THEN 3620
3630 PRINT: PRINT;TAB(10);" Working...": PRINT:FOR L=1 TO NO:FOR CR=1 TO NO+1:Y(L,CR)=0:X(L,CR)=0:NEXT CR:NEXT L
3640 CR=CT:FOR CT=1 TO CR
3650 IF T(CT)=5 THEN Y=1E+10:GOSUB 4000
3660 IF T(CT)<>5 THEN GOSUB 3940
3670 NEXT CT:CT=CR:FOR L=1 TO NO:IF L=ND THEN Y(L,NO+1)=1 ELSE Y(L,NO+1)=0
3680 X(L,NO+1)=0:NEXT L:GOSUB 3080: GOTO 2880
3690 REM ************* CHANGE COMPONENT VALUES ***************
3700 PRINT: PRINT "VARIABLE COMPONENT MODE"
3710 W$="COMPONENT VALUE": E$="VALUE"
3720 PRINT "FREQUENCY SHOULD BE PRE-SET WITH <F> MODE <1>"
3730 PRINT: INPUT " BRANCH # TO BE VARIED"; ZN
3740 IF ZN>CT OR ZN<1 THEN PRINT "POINT OUT OF RANGE": RETURN
3750 INPUT "MIN VALUE, MAX VALUE AND # OF POINTS"; C1,C2,IN
3760 IF C1>=0 AND C2>=0 AND C2>C1 THEN 3780
3770 PRINT "IMPROPER ENTRY": GOTO 3750
3780 PRINT "WHICH NODE? ( 1 -"LS") ";:INPUT ND
3790 IF ND>LS OR ND<1 THEN PRINT"NODES ARE FROM 1 TO"LS"ONLY.":GOTO 3610