Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-03 - decus/20-0087/lan0.bas
There is 1 other file named lan0.bas in the archive. Click here to see a list.
00010  '    LAN0.BAS        DUANE MOORE        D I G I T A L
00020  '    CREATES THE CONFIGURATION FILE *CONFIG.LAN*.
00030  '  
00040  '    3-22-75
00050  '  
00060  '
00070  '
00080 LET C9=0
00090 GOTO 110
00100 LET C9=1
00110 FILES CONFIG.LAN
00120 SCRATCH #1
00130 LET Q8=1
00140 LET F8=1
00150 LET V8=1
00160 LET A8=1
00170 PRINT 
00180 PRINT "LAN0 CONFIGURATION FILE GENERATOR"
00190 PRINT
00200 PRINT "NUMBER OF NODES (INCLUDING THE DATUM NODE)";
00210 INPUT N
00220 IF N<3 GOTO 200
00230 IF N>100 GOTO 200
00240 PRINT #1,N
00250 PRINT
00260 PRINT "TYPE H FOR HELP."
00270 PRINT "*";
00280 INPUT A$
00290 IF A$="H" GOTO 2900
00300 IF A$="PAS" GOTO 340
00310 IF A$="ACT" GOTO 560
00320 IF A$="XCT" GOTO 2870
00330 GOTO 250
00340 PRINT #1,A$
00350 PRINT "PAS>";
00360 INPUT B$,N0,N1,V
00370 IF N0>N GOTO 460
00380 IF N0<0 GOTO 460
00390 IF N1>N GOTO 460
00400 IF N1<0 GOTO 460
00410 IF N0=N1 GOTO 480
00420 IF B$="R" GOTO 520
00430 IF B$="G" GOTO 520
00440 IF B$="L" GOTO 520
00450 IF B$="C" GOTO 520
00460 PRINT "WHAT?"
00470 GOTO 350
00480 PRINT #1,B$"   0   0   0"
00490 GOTO 270
00500 PRINT #1,B$"   0   0   0   0"
00510 GOTO 270
00520 PRINT #1,B$"  "N0"  "N1"  "V
00530 GOTO 350
00540 PRINT "WHAT?"
00550 GOTO 570
00560 PRINT #1,A$
00570 PRINT "ACT>";
00580 INPUT B$,V,N0,N1,N2
00590 IF N0>N GOTO 540
00600 IF N1>N GOTO 540
00610 IF N2>N GOTO 540
00620 IF N0<0 GOTO 540
00630 IF N1<0 GOTO 540
00640 IF N2<0 GOTO 540
00650 IF N0=N1 GOTO 500
00660 IF B$="Q" GOTO 760
00670 IF B$="F" GOTO 1300
00680 IF B$="V" GOTO 1690
00690 IF B$="A" GOTO 2080
00700 
00710 
00720 
00730 
00740 
00750 GOTO 540
00760 PRINT #1,B$"  "V"  "N0"  "N1"  "N2
00770 IF Q8<>1 GOTO 850
00780 PRINT "NUMBER OF BIPOLAR TRANSISTORS";
00790 INPUT Q9
00800 PRINT #1,Q9
00810 MAT Q=ZER(Q9,12)
00820 
00830 
00840 
00850 LET I=Q8
00860 LET Q(I,12)=V
00870 LET Q(I,1)=N0
00880 LET Q(I,2)=N1
00890 LET Q(I,3)=N2
00900 FOR J=1 TO I-1
00910 IF Q(I,12)=Q(J,12) GOTO 940
00920 NEXT J
00930 GOTO 980
00940 FOR K=4 TO 11
00950 LET Q(I,K)=Q(J,K)
00960 NEXT K
00970 GOTO 1280
00980 PRINT "TYPE '1' FOR GERMANIUM";
00990 INPUT Q(I,11)
01000 PRINT #1,Q(I,11)
01010 PRINT "Q-POINT EMITTER CURRENT (MA)";
01020 INPUT Q(I,11)
01030 PRINT #1,Q(I,11)
01040 PRINT "HIE";
01050 INPUT Q(I,4)
01060 PRINT #1,Q(I,4)
01070 PRINT "HRE";
01080 INPUT Q(I,5)
01090 PRINT #1,Q(I,5)
01100 PRINT "HFE";
01110 INPUT Q(I,6)
01120 PRINT #1,Q(I,6)
01130 PRINT "HOE";
01140 INPUT Q(I,7)
01150 PRINT #1,Q(I,7)
01160 PRINT "COB";
01170 INPUT Q(I,8)
01180 PRINT #1,Q(I,8)
01190 PRINT "FT";
01200 INPUT Q(I,10)
01210 PRINT #1,Q(I,10)
01220 IF Q(I,10)<>0 GOTO 1270
01230 PRINT "CIB";
01240 INPUT Q(I,9)
01250 PRINT #1,Q(I,9)
01260 GOTO 1280
01270 ' CIB WOULD BE CALCULATED FROM FT
01280 LET Q8=I+1
01290 GOTO 570
01300 PRINT #1,B$"  "V"  "N0"  "N1"  "N2
01310 IF F8<>1 GOTO 1390
01320 PRINT "NUMBER OF FET'S";
01330 INPUT F9
01340 PRINT #1,F9
01350 MAT F=ZER(F9,9)
01360 
01370 
01380 
01390 LET I=F8
01400 LET F(I,9)=V
01410 LET F(I,1)=N0
01420 LET F(I,2)=N1
01430 LET F(I,3)=N2
01440 FOR J=1 TO I-1
01450 IF F(I,9)=F(J,9) GOTO 1480
01460 NEXT J
01470 GOTO 1520
01480 FOR K=4 TO 8
01490 LET F(I,K)=F(J,K)
01500 NEXT K
01510 GOTO 1670
01520 PRINT "TRANSCONDUCTANCE (GM)";
01530 INPUT F(I,4)
01540 PRINT #1,F(I,4)
01550 PRINT "OUTPUT ADMITTANCE (GO)";
01560 INPUT F(I,5)
01570 PRINT #1,F(I,5)
01580 PRINT "CAPACITANCE C(ISS)";
01590 INPUT F(I,6)
01600 PRINT #1,F(I,6)
01610 PRINT "CAPACITANCE C(RSS)";
01620 INPUT F(I,7)
01630 PRINT #1,F(I,7)
01640 PRINT "CAPACITANCE C(OSS)";
01650 INPUT F(I,8)
01660 PRINT #1,F(I,8)
01670 LET F8=I+1
01680 GOTO 570
01690 PRINT #1,B$"  "V"  "N0"  "N1"  "N2
01700 IF V8<>1 GOTO 1780
01710 PRINT "NUMBER OF VACUUM TUBES";
01720 INPUT V9
01730 PRINT #1,V9
01740 MAT V=ZER(V9,9)
01750 
01760 
01770 
01780 LET I=V8
01790 LET V(I,9)=V
01800 LET V(I,1)=N0
01810 LET V(I,2)=N1
01820 LET V(I,3)=N2
01830 FOR J=1 TO I-1
01840 IF V(I,9)=V(J,9) GOTO 1870
01850 NEXT J
01860 GOTO 1910
01870 FOR K=4 TO 8
01880 LET V(I,K)=V(J,K)
01890 NEXT K
01900 GOTO 2060
01910 PRINT "TRANSCONDUCTANCE (GM)";
01920 INPUT V(I,4)
01930 PRINT #1,V(I,4)
01940 PRINT "PLATE RESISTANCE (RP)";
01950 INPUT V(I,5)
01960 PRINT #1,V(I,5)
01970 PRINT "CAPACITANCE C(GK)";
01980 INPUT V(I,6)
01990 PRINT #1,V(I,6)
02000 PRINT "CAPACITANCE C(GP)";
02010 INPUT V(I,7)
02020 PRINT #1,V(I,7)
02030 PRINT "CAPACITANCE C(PK)";
02040 INPUT V(I,8)
02050 PRINT #1,V(I,8)
02060 LET V8=I+1
02070 GOTO 570
02080 PRINT #1,B$"  "V"  "N0"  "N1"  "N2
02090 IF A8<>1 GOTO 2300
02100 PRINT "NUMBER OF OP AMPS";
02110 INPUT A9
02120 PRINT #1,A9
02130 IF A9<2 GOTO 2150
02140 PRINT "MAXIMUM ";
02150 PRINT "NUMBER OF LOW-PASS BREAKPOINTS";
02160 INPUT A7
02170 PRINT #1,A7
02180 IF A9<2 GOTO 2200
02190 PRINT "MAXIMUM ";
02200 PRINT "NUMBER OF RECIPROCAL-LOW-PASS BREAKPOINTS";
02210 INPUT A6
02220 PRINT #1,A6
02230 LET A5=9+A6+A7
02240 MAT A=ZER(A9,A5)
02250 
02260 
02270 
02280 
02290 
02300 LET I=A8
02310 LET A(I,1)=V
02320 LET A(I,2)=N0
02330 LET A(I,3)=N1
02340 LET A(I,4)=N2
02350 FOR J=1 TO I-1
02360 IF A(I,1)=A(J,1) GOTO 2830
02370 NEXT J
02380 PRINT "INPUT RESISTANCE";
02390 INPUT A(I,5)
02400 PRINT #1,A(I,5)
02410 PRINT "OPEN LOOP VOLTAGE GAIN";
02420 INPUT A(I,6)
02430 PRINT #1,A(I,6)
02440 PRINT "OUTPUT RESISTANCE";
02450 INPUT A(I,7)
02460 PRINT #1,A(I,7)
02470 LET A3$="LOW-PASS"
02480 LET A2=A7
02490 LET A1=0
02500 GOSUB 2670
02510 LET A3$="RECIPROCAL-LOW-PASS"
02520 LET A2=A6
02530 LET A1=A7
02540 GOSUB 2670
02550 PRINT "ORDER OF HIGH-PASS BREAKPOINT (IF ANY)";
02560 INPUT A(I,A5-1)
02570 PRINT #1,A(I,A5-1)
02580 IF A(I,A5-1)<1 GOTO 2650
02590 PRINT "HIGH-PASS BREAK FREQUENCY (HZ.)";
02600 INPUT A(I,A5)
02610 IF A(I,A5)>1E-20 GOTO 2640
02620 PRINT "NOT POSSIBLE."
02630 GOTO 2590
02640 PRINT #1,A(I,A5)
02650 LET A8=I+1
02660 GOTO 570
02670 IF A9<2 GOTO 2730
02680 PRINT "HOW MANY "A3$;
02690 INPUT A4
02700 PRINT #1,A4
02710 IF A4<=A2 GOTO 2740
02720 PRINT A2 "IS MAXIMUM."
02730 LET A4=A2
02740 FOR J=8 TO A4+7
02750 PRINT A3$ " BREAK FREQUENCY";
02760 INPUT A(I,J+A1)
02770 IF A(I,J+A1)>0 GOTO 2800
02780 PRINT "NOT POSSIBLE!"
02790 GOTO 2750
02800 PRINT #1,A(I,J+A1)
02810 NEXT J
02820 RETURN
02830 FOR K=5 TO A5
02840 LET A(I,K)=A(J,K)
02850 NEXT K
02860 GOTO 2650
02870 PRINT #1,A$
02880 IF C9=0 GOTO 3440
02890 CHAIN LAN1,100
02900 PRINT
02910 PRINT "NODES ARE NUMBERED IN ASCENDING ORDER:"
02920 PRINT ,"1, 2, 3, 4, 5, ... , N."
02930 PRINT
02940 PRINT "NODES 1, 2, AND 3 ARE RESERVED FOR INPUT, OUTPUT, AND"
02950 PRINT "GROUND, RESPECTIVELY."
02960 PRINT
02970 PRINT "THREE MODES ARE AVAILABLE:"
02980 PRINT 
02990 PRINT "COMMAND","MODE"
03000 PRINT "PAS","PASSIVE MODE, USED TO ENTER PASSIVE ELEMENTS"
03010 PRINT "ACT","ACTIVE MODE, FOR ENTERING ACTIVE ELEMENTS"
03020 PRINT "XCT","EXECUTE MODE, FOR INITIATING EXECUTION"
03030 PRINT
03040 PRINT "WHEN IN PASSIVE MODE, THE FOLLOWING FORMAT IS USED:"
03050 PRINT
03060 PRINT "PAS> ?[TYPE],[IN NODE],[OUT NODE],[ELEMENT VALUE]"
03070 PRINT
03080 PRINT ,"WHERE:","[TYPE]  IS"
03090 PRINT ,,"R   FOR A","RESISTANCE"
03100 PRINT ,,"G","CONDUCTANCE"
03110 PRINT ,,"L","INDUCTANCE"
03120 PRINT ,,"C","CAPACITANCE"
03130 PRINT
03140 PRINT ,,"[ELEMENT VALUE]  IS IN KILOHMS,"
03150 PRINT ,,"MILLIMHOS, MILLIHENRYS, OR MICROFARADS"
03160 PRINT
03170 PRINT "TO EXCAPE FOR PASSIVE MODE, ENTER '0,0,0,0'"
03180 PRINT
03190 PRINT "WHEN IN ACTIVE MODE, THE FOLLOWING FORMAT IS USED:"
03200 PRINT "ACT> ?[TYPE],[ID],[NON-INVERTING NODE],[INVERTING],[OUTPUT NODE]"
03210 PRINT
03220 PRINT ,"WHERE:","[TYPE]  IS"
03230 PRINT ,,"Q   FOR A","JUNCTION TRANSISTOR"
03240 PRINT ,,"F","FIELD EFFECT TRANSISTOR"
03250 PRINT ,,"V","VACUUM TUBE"
03260 PRINT ,,"A","OP AMP"
03270 PRINT
03280 PRINT ,,"[ID]  IS"
03290 PRINT ,,"ANY NUMERICAL IDENTIFICATION"
03300 PRINT
03310 PRINT,,"[NON-INVERTING],[INVERTING],[OUTPUT]  IS"
03320 PRINT ,,"E,B,C  FOR A","JUNCTION TRANSISTOR"
03330 PRINT ,,"S,G,D","FIELD EFFECT TRANSISTOR"
03340 PRINT ,,"K,G,P","VACUUM TUBE"
03350 PRINT ,,"+,-,OUTPUT","OP AMP"
03360 PRINT
03370 PRINT "ALL DATA VALUES ENTERED WHILE IN ACTIVE MODE ARE IN BASIC UNITS."
03380 PRINT
03390 PRINT "TO ESCAPE FORM ACTIVE MODE TYPE '0,0,0,0,0'"
03400 PRINT
03410 PRINT
03420 PRINT
03430 GOTO 270
03440 CHAIN LAN,200
03450 END