2270 LPRINT TAB(5);"SOURCE RC=";:LPRINT USING "#.###";MS;:LPRINT " ANG ";:LPRINT USING "###.##";SA;:LPRINT TAB(40);"LOAD RC = ";:LPRINT USING "#.###";ML;:LPRINT " ANG ";:LPRINT USING "###.##";AL
2460 LPRINT TAB(10);:LPRINT USING "####.#";F(J);:LPRINT TAB(25);:LPRINT USING "##.##";IL(J);:LPRINT TAB(40);:LPRINT USING "###.##";RL(J);:LPRINT TAB(55);:LPRINT USING "##.##";IR(J);:LPRINT TAB(69);:LPRINT USING "##.##";RO(J)
2470 NEXT J
2480 LPRINT " ":LPRINT " "
2490 INPUT "DO YOU WANT TO TUNE MATCHING NETWORK ELEMENTS - Y OR N";C$
2500 IF C$="Y" THEN 2520
2510 END
2520 INPUT "INPUT STUB LENGTH (IN)=";T1
2530 INPUT "INPUT LINE LENGTH (IN)=";L9
2540 INPUT "OUTPUT LINE LENGTH (IN)=";L0
2550 INPUT "OUTPUT STUB LENGTH (IN)=";T2
2560 GOTO 390
2570 REM polar to rectangular conversion
2580 RV=M*COS(A) :IV=M*SIN(A)
2590 RETURN
2600 REM rectangular to polar conversion
2610 MA=SQR(R^2+I^2)
2620 AN=ATN((I+0)/(R+0))
2630 IF R<0 THEN 2650
2640 GOTO 2670
2650 BN=AN+3.14159
2660 AN=BN
2670 RETURN
2680 REM load p matrix elements
2690 WR=RA*RE-IA*IE+RB*RG-IB*IG
2700 WI=RA*IE+IA*RE+RB*IG+IB*RG
2710 XR=RA*RF-IA*FI+RB*RH-IB*IH
2720 XI=RA*FI+IA*RF+RB*IH+IB*RH
2730 YR=RC*RE-IC*IE+RD*RG-ID*IG
2740 YI=RC*IE+IC*RE+RD*IG+ID*RG
2750 ZR=RC*RF-IC*FI+RD*RH-ID*IH
2760 ZI=RC*FI+IC*RF+RD*IH+ID*RH
2770 REM reload n matrix
2780 RE=WR:IE=WI:RF=XR:FI=XI
2790 RG=YR:IG=YI:RH=ZR:IH=ZI
2800 RETURN
2810 REM (s) parameter interpolation routine
2820 IF F(J)>FD GOTO 2850
2830 X=(C-D)*(F(J)-FL)/(FD-FL)+D
2840 Y=(E-G)*(F(J)-FL)/(FD-FL)+G :GOTO 2870
2850 X=(C-D)*(F(J)-FD)/(FH-FD)+D
2860 Y=(E-G)*(F(J)-FD)/(FH-FD)+G
2870 RETURN
2880 REM calculates main and stub lengths
2890 IF AZ>=0 THEN 2910
2900 AY=AZ+180 :GOTO 2920
2910 AY=AZ-180
2920 BC=SQR(8*K/(2*(1-K)))
2930 M5=(BC^4+4*BC*BC)/((4+BC*BC)^2)
2940 IF(M5-K)<0.01 THEN 2960
2950 PRINT M5;K:STOP
2960 GA=ATN(2/BC)*180/3.14159
2970 AM=ABS(AY):MG=ABS(GA)
2980 REM case I
2990 IF AY<0 THEN 3010
3000 GOTO 3090
3010 IF AM>MG THEN 3030
3020 GOTO 3200
3030 BB=-BC
3040 LL=(AM-MG)/720
3050 IF S$="O" THEN 3070
3060 LS=0.25-ATN(BC)/(2*3.14159) :GOTO 3370
3070 LS=0.5-ATN(BC)/(2*3.14159)
3080 GOTO 3370
3090 REM case II
3100 IF AY>0 THEN 3120
3110 GOTO 3200
3120 IF AM>=MG THEN 3140
3130 GOTO 3290
3140 BB=-BC
3150 LL=0.5-(MG+AM)/720
3160 IF S$="O" THEN 3180
3170 LS=0.25-ATN(BC)/(2*3.14159):GOTO 3370
3180 LS=0.5-ATN(BC)/(2*3.14159)
3190 GOTO 3370
3200 REM case III
3210 IF AY<0 THEN 3230
3220 GOTO 3290
3230 BB=BC
3240 LL=(AM+MG)/720
3250 IF S$="O" THEN 3270
3260 LS=0.25+ATN(BC)/(2*3.14159) :GOTO 3370
3270 LS=ATN(BC)/(2*3.14159)
3280 GOTO 3370
3290 REM case IV
3300 IF AY>0 THEN 3320
3310 PRINT"ERROR - NO CASE FITS":STOP
3320 BB=BC
3330 LL=(MG-AM)/720
3340 IF S$="O" THEN 3360
3350 LS=0.5-ATN(BC)/(2*3.14159):GOTO 3370
3360 LS=ATN(BC)/(2*3.14159)
3370 RETURN
3380 PRINT""
3390 PRINT"NOTE: USE GRAPHICS SCREEN DUMP FOR HARD COPY -- HIT ANY KEY TO RETURN TO MENU" :PRINT""
3400 INPUT "PLOT WHICH PARAMETER - GAIN, INPUT RL, OUTPUT RL, ISOL ";PP$
3410 INPUT "WHAT IS MAX PLOT VALUE - dB";PM
3420 SCREEN 2,0
3430 KEY OFF
3440 VIEW (212,3)-(628,182)
3450 WINDOW (-2,-56)-(102,0)
3460 FOR J=0 TO 100 STEP 10
3470 LINE (J,0)-(J,-50)
3480 NEXT J
3490 LINE (100,-50)-(0,-50)
3500 FOR J=0 TO -50 STEP -10
3510 LINE (0,J)-(100,J)
3520 NEXT J
3530 LINE (0,0)-(0,-50)
3540 LOCATE 23,47
3550 PRINT "FREQUENCY - GHz"
3560 FOR I=0 TO 5
3570 LOCATE 1+I*4,23
3580 PRINT USING "###.#";PM*(1-I/5)
3590 NEXT I
3600 LOCATE 11,18 :PRINT "dB"
3610 FOR J=0 TO 10
3620 LOCATE 22,27+J*5
3630 Q=(INT((FL+(FH-FL)/10*J)/10))/100
3640 PRINT USING "#.##";Q
3650 NEXT J
3660 LOCATE 2,7:PRINT "TRANSISTOR"
3670 LOCATE 4,3
3680 PRINT "AMPLIFIER RESPONSE"
3690 PSET (0,-50+50/PM*IL(1))
3700 I=1
3710 CT=1
3720 FOR J=0 TO N
3730 IF PP$="GAIN" THEN 3770
3740 IF PP$="INPUT RL" THEN 3790
3750 IF PP$="OUTPUT RL" THEN 3800
3760 IF PP$="ISOL" THEN 3810
3770 IF IL(J+1)<0 GOTO 3830
3780 LINE -(J*100/N,-50+50/PM*IL(I)):LOCATE 9,17:PRINT "GAIN" :LOCATE 19,7:PRINT "FIGURE 1":GOTO 3820