Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-03 - decus/20-0087/lan17.bas
There is 1 other file named lan17.bas in the archive. Click here to see a list.
00010 '  LAN17
00020 '  DUANE MOORE    D I G I T A L
00030 '  READS THE FILE YPARAM.LAN AND THE PARAMETERS ARE PLOTTED
00040 ' ON THE TTY.  SCALES ARE LINEAR, NOT LOG.  SCALING
00050 '  IS AUTOMATIC.
00060 '
00070 FILES YPARAM.LAN,LAN.BAK
00080 SCRATCH #2
00090 PRINT
00100 PRINT "TYPE H FOR HELP"
00110 PRINT "*";
00120 INPUT A$
00130 IF A$="SYS" GOTO 1820
00140 IF A$="DIS" GOTO 210
00150 IF A$="H" GOTO 1730
00160 IF A$="EXIT" GOTO 1820
00170 IF A$="TABLE" GOTO 200
00180 IF A$<>"POLAR" GOTO 220
00190 CHAIN LAN16
00200 CHAIN LAN13
00210 CHAIN LAN,200
00220 FOR J=1 TO 7 STEP 2
00230 IF END#1 GOTO 330
00240 INPUT #1,F
00250 FOR I=1 TO 8
00260 INPUT #1,Y(I)
00270 NEXT I
00280 IF A$="GB" GOTO 310
00290 PRINT #2,Y(J),Y(J+1)
00300 GOTO 230
00310 PRINT #2,Y(J)*COS(Y(J+1)/57.29577951),Y(J)*SIN(Y(J+1)/57.29577951)
00320 GOTO 230
00330 IF J=1 GOTO 380
00340 IF J=3 GOTO 400
00350 IF J=5 GOTO 420
00360 LET D$="Y(2,2)"
00370 GOTO 430
00380 LET D$="Y(1,1)"
00390 GOTO 430
00400 LET D$="Y(1,2)"
00410 GOTO 430
00420 LET D$="Y(2,1)"
00430 RESTORE #2
00440 GOSUB 500
00450 RESTORE #2
00460 SCRATCH #2
00470 RESTORE #1
00480 NEXT J
00490 GOTO 110
00500 MAT Q=ZER(61)
00510 RESTORE #2
00520 GOTO 1370
00530 RESTORE #2
00540 IF Y0<>Y1 GOTO 620
00550 IF Y0=0 GOTO 590
00560 IF Y0>0 GOTO 610
00570 LET Y1=0
00580 GOTO 620
00590 LET Y1=1
00600 GOTO 620
00610 LET Y0=0
00620 IF Z0<>Z1 GOTO 700
00630 IF Z0=0 GOTO 670
00640 IF Z0>0 GOTO 690
00650 LET Z1=0
00660 GOTO 700
00670 LET Z1=1
00680 GOTO 700
00690 LET Z0=0
00700 PRINT
00710 PRINT
00720 PRINT
00730 PRINT  "***"D$"***"
00740 PRINT 
00750 LET M2=Y0
00760 GOSUB 1650
00770 PRINT  M2 TAB(20);
00780 LET M2=Y1
00790 GOSUB 1650
00800 IF A$="GB" GOTO 830
00810 PRINT "MAGNITUDE","'*'"TAB(57)M2
00820 GOTO 840
00830 PRINT  "CONDUCTANCE","'*'"TAB(57)M2
00840 PRINT
00850 IF P9=20 GOTO 950
00860 LET M2=Z0
00870 GOSUB 1650
00880 PRINT   M2 TAB(20);
00890 LET M2=Z1
00900 GOSUB 1650
00910 IF A$="GB" GOTO 940
00920 PRINT "PHASE    ","'+'"TAB(57)M2
00930 GOTO 950
00940 PRINT  "SUSCEPTANCE","'+'"TAB(57)M2
00950 GOSUB 1250
00960 LET L=0
00970 IF END #2,GOTO 1700
00980 INPUT #2,Y,Z
00990 LET Q0=INT(60*(Y-Y0)/(Y1-Y0)+.5)+1
01000 LET Q(Q0)=1
01010 LET Q1=INT(60*(Z-Z0)/(Z1-Z0)+.5)+1
01020 LET Q(Q1)=2+Q(Q1)
01030 LET Q2=Q1
01040 IF Q2>Q0 GOTO 1060
01050 LET Q2=Q0
01060 GOSUB 1310
01070 PRINT  ;
01080 FOR I=1 TO Q2
01090 LET Q=Q(I)
01100 IF Q=0 GOTO 1190
01110 IF Q=1 GOTO 1170
01120 IF Q=2 GOTO 1150
01130 PRINT "O";
01140 GOTO 1200
01150 PRINT "+";
01160 GOTO 1200
01170 PRINT "*";
01180 GOTO 1200
01190 PRINT " ";
01200 NEXT I
01210 PRINT
01220 LET Q(Q0)=0
01230 LET Q(Q1)=0
01240 GOTO 970
01250 PRINT  " I";
01260 FOR I=1 TO 6
01270  PRINT  ".........I";
01280 NEXT I
01290 PRINT
01300 RETURN
01310 IF INT(L/10)=L/10 GOTO 1350
01320 PRINT  ".";
01330 LET L=L+1
01340 RETURN
01350 PRINT  "-";
01360 GOTO 1330
01370 LET Y0=1E35
01380 LET Z0=Y0
01390 LET Y1=-1E35
01400 LET Z1=Y1
01410 IF END #2,GOTO 530
01420 INPUT #2,Y,Z
01430 IF Y>Y0 GOTO 1450
01440 LET Y0=Y
01450 IF Y<Y1 GOTO 1470
01460 LET Y1=Y
01470 IF Z>Z0 GOTO 1490
01480 LET Z0=Z
01490 IF Z<Z1 GOTO 1510
01500 LET Z1=Z
01510 GOTO 1410
01520 LET M2=Y0
01530 GOSUB 1650
01540 LET Y0=M2
01550 LET M2=Y1
01560 GOSUB 1650
01570 LET Y1=M2
01580 LET M2=Z0
01590 GOSUB 1650
01600 LET Z0=M2
01610 LET M2=Z1
01620 GOSUB 1650
01630 LET Z1=M2
01640 GOTO 630
01650 IF M2=0 GOTO 1690
01660 LET M3=ABS(M2)
01670 LET M1=10^(INT(LOG(M3)/LOG(10)))
01680 LET M2=INT(100*M2/M1+.5)*M1/100
01690 RETURN
01700 GOSUB 1250
01710 PRINT ,<PA>
01720 RETURN
01730 PRINT
01740 PRINT "COMMAND","DESCRIPTION"
01750 PRINT "Y","PLOT MAGNITUDE AND ARGUMENT VS. FREQUENCY"
01760 PRINT "GB","PLOT CONDUCTANCE AND SUSCEPTANCE VS. FREQUENCY"
01770 PRINT "POLAR","PLOT CONDUCTANCE VS. SUSCEPTANCE"
01780 PRINT "TABLE","PRINT TABLE OF Y PARAMETERS"
01790 PRINT "EXIT","EXIT BACK TO BASIC"
01800 PRINT "DIS","RETURN TO DISPATCHER"
01810 GOTO 110
01820 END