home *** CD-ROM | disk | FTP | other *** search
- 2 KEY OFF:GOSUB 10000:PRINT CL$
- 3 REM
- 4 REM ************************************************************************
- 5 REM ** PROGRAM BY L.A. GERIG, R.R.#1, MONROEVILLE, IND 46773 **
- 6 REM ** DOCUMENTATION HISTORY OCT '84 HAM RADIO MAGAZINE (C64 VERSION) **
- 7 REM ** JAN '82 & JUN '85 RF DESIGN (C64 VERSION) **
- 8 REM ** DATE TBD RF DESIGN (THIS IBM BASICA VERSION) **
- 9 REM ************************************************************************
- 10 INPUT"WHAT IS THE CHARACTERISTIC IMPEDANCE (IN OHMS)";Z0
- 12 PRINT:INPUT"HOW MANY FREQUENCIES (1-10)";N:PRINT
- 14 IF N<1 OR N>10 THEN 12
- 16 FOR J=1 TO N
- 18 PRINT"INPUT FREQUENCY"J;:INPUT"IN MHZ";F(J)
- 20 PRINT"INPUT RS, XS OF LOAD AT "F(J)"MHZ";:INPUT R(J),I(J)
- 22 X(J)=R(J):Y(J)=I(J):NEXT J:CLS:PRINT
- 24 PRINT" THESE WERE YOUR LOAD IMPEDANCE INPUTS:":PRINT
- 26 PRINT" FREQ (MHZ) RS (OHMS) XS (OHMS)":PRINT:FOR J=1 TO N
- 28 PRINT USING " #####.###";F(J);:PRINT USING " #####.###";R(J);
- 30 PRINT USING " #####.###";I(J):NEXT J
- 32 LOCATE 18:INPUT"ARE YOU SATISFIED (Y=YES)";A$
- 34 IF A$<>"Y" AND A$<>"y" THEN GOTO 12
- 38 INPUT"PRINT LOAD VALUES ON PRINTER (Y=YES)";A$
- 40 IF A$="Y" OR A$="y" THEN GOSUB 12000
- 42 IF GR=2 THEN INPUT"PLOT LOAD IMPEDANCE (Y=YES)";P$
- 44 IF P$="Y" OR P$="y" THEN GOSUB 8000
- 50 PRINT CL$" CHOOSE TYPE OF MATCHING SECTION";DN$DN$
- 52 PRINT" 1 SERIES C
- 54 PRINT" 2 SERIES L
- 56 PRINT" 3 SERIES TUNED (SERIES L-C)
- 58 PRINT" 4 SERIES TUNED (PARALLEL L-C)
- 60 PRINT" 5 SERIES TRANSMISSION LINE
- 62 PRINT" 6 SHUNT C
- 64 PRINT" 7 SHUNT L
- 66 PRINT" 8 SHUNT TUNED (SERIES L-C)
- 68 PRINT" 9 SHUNT TUNED (PARALLEL L-C)
- 70 PRINT"10 SHUNT TRANSMISSION LINE
- 72 PRINT"11 TRANSFORMER
- 74 PRINT"12 SERIES R
- 76 PRINT"13 SHUNT R
- 78 PRINT DN$"14 STOP ADDING SECTIONS"
- 80 PRINT DN$"15 CALCULATE MODE (L-C-LINE VALUES)"DN$
- 90 INPUT"WHAT IS YOUR CHOICE (1-15)";M
- 92 IF M<1 OR M>15 THEN 90
- 94 ON M GOTO 1000,1500,2000,2500,3000,3500,4000,4500,5000,5500
- 96 ON (M-10) GOTO 6000,6500,7000,7500,9500
- 1000 PRINT CL$;"ADD SERIES CAPACITOR
- 1002 INPUT"WHAT IS VALUE (IN PF)";C
- 1010 FOR J=1 TO N
- 1015 X(J)=R(J)
- 1020 Y(J)=I(J)-1/(2*PI*F(J)*C*.000001)
- 1025 NEXT J: GOTO 9000
- 1500 PRINT CL$;"ADD SERIES INDUCTOR
- 1502 INPUT"WHAT IS VALUE (IN UH)";L
- 1510 FOR J=1 TO N:X(J)=R(J)
- 1520 Y(J)=I(J)+2*PI*F(J)*L:NEXT J:GOTO 9000
- 2000 PRINT CL$;"ADD SERIES TUNED (SERIES L-C)
- 2002 INPUT"WHAT IS VALUE OF C (IN PF)";C
- 2004 INPUT"WHAT IS VALUE OF L (IN UH)";L
- 2010 FOR J=1 TO N: X(J)=R(J)
- 2020 Y(J)=I(J)+2*PI*F(J)*L-1/(2*PI*F(J)*C*.000001):NEXT J:GOTO 9000
- 2500 PRINT CL$;"ADD SERIES TUNED (PARALLEL L-C)
- 2502 INPUT"WHAT IS VALUE OF C (IN PF)";C
- 2504 INPUT"WHAT IS VALUE OF L (IN UH)";L
- 2510 FOR J=1 TO N: X(J)=R(J)
- 2520 Y(J)=I(J)+(2*PI*F(J)*L)/(1-((2*PI*F(J))^2)*L*C*.000001):NEXT J:GOTO 9000
- 3000 PRINT CL$;"ADD SERIES TRANSMISSION LINE
- 3002 INPUT"WHAT IS LINE IMPEDANCE (OHMS)";Z1
- 3004 INPUT"WHAT IS VELOCITY FACTOR";V
- 3006 INPUT"WHAT IS LENGTH (IN INCHES)";LL
- 3010 FOR J=1 TO N
- 3015 T=1.2*LL*F(J)/39.37/V
- 3020 D=(R(J)+Z1)^2+I(J)^2
- 3025 R=(R(J)^2-Z1^2+I(J)^2)/D
- 3030 I=2*Z1*I(J)/D
- 3035 Z=SQR(R*R+I*I)
- 3040 T=180/PI*ATN(I/(R+1E-30))-2*T+180*(R<0)
- 3045 R=Z*COS(T*PI/180)
- 3050 I=Z*SIN(T*PI/180)
- 3055 D=(1-R)^2+I^2
- 3060 X(J)=Z1*(1-R^2-I^2)/D
- 3065 Y(J)=2*Z1*I/D
- 3070 NEXT J:GOTO 9000
- 3500 PRINT CL$;"ADD SHUNT CAPACITOR
- 3502 INPUT"WHAT IS VALUE OF C (IN PF)";C
- 3506 FOR J=1 TO N: W=2*PI*C*.000001
- 3508 D=(1-W*F(J)*I(J))^2+(R(J)*W*F(J))^2
- 3510 X(J)=R(J)/D
- 3512 Y(J)=(I(J)*(1-W*F(J)*I(J))-R(J)^2*W*F(J))/D:NEXT J:GOTO 9000
- 4000 PRINT CL$;"ADD SHUNT INDUCTOR
- 4002 INPUT"WHAT IS VALUE OF L (IN UH)";L
- 4015 FOR J=1 TO N: W=2*PI*F(J)*L
- 4025 D=R(J)^2+(I(J)+W)^2
- 4030 X(J)=R(J)*W^2/D
- 4035 Y(J)=W*(R(J)^2+I(J)^2+W*I(J))/D
- 4040 NEXT J:GOTO 9000
- 4500 PRINT CL$;"ADD SHUNT TUNED (SERIES L-C)
- 4502 INPUT"WHAT IS VALUE OF C (IN PF)";C
- 4504 INPUT"WHAT IS VALUE OF L (IN UH)";L
- 4510 FOR J=1 TO N
- 4515 W=2*PI*F(J)*L-(1000000!)/(2*PI*F(J)*C)
- 4517 D=R(J)^2+(I(J)+W)^2
- 4520 X(J)=R(J)*W^2/D
- 4525 Y(J)=W*(R(J)^2+I(J)^2+W*I(J))/D
- 4530 NEXT J:GOTO 9000
- 5000 PRINT CL$;"ADD SHUNT TUNED (PARALLEL L-C)
- 5002 INPUT"WHAT IS VALUE OF C (IN PF)";C
- 5004 INPUT"WHAT IS VALUE OF L (IN UH)";L
- 5010 FOR J=1 TO N
- 5015 W=(2*PI*F(J)*L)/(1-((2*PI*F(J))^2)*L*C*.000001)
- 5020 D=R(J)^2+(I(J)+W)^2
- 5025 X(J)=R(J)*W^2/D
- 5030 Y(J)=W*(R(J)^2+I(J)^2+W*I(J))/D
- 5035 NEXT J:GOTO 9000
- 5500 PRINT CL$;"ADD SHUNT TRANSMISSION LINE
- 5502 INPUT"WHAT IS LINE IMPEDANCE (OHMS)";Z1
- 5504 INPUT"WHAT IS LINE VELOCITY FACTOR";V
- 5506 INPUT"WHAT IS LENGTH (IN INCHES)";LL
- 5508 LOCATE 4,40:PRINT"OPEN (O) OR SHORTED (S) STUB";
- 5510 INPUT S$
- 5512 IF S$="s" THEN S$="S"
- 5514 IF S$="o" THEN S$="O"
- 5516 IF S$<>"O" AND S$<>"S" THEN 5510
- 5520 FOR J=1 TO N
- 5525 T=LL*F(J)*1.2/39.37/V
- 5530 IF S$="S" THEN W=Z1*TAN(T*PI/180)
- 5535 IF S$="O" THEN W=Z1*TAN((T+90)*PI/180)
- 5540 D=R(J)^2+(I(J)+W)^2
- 5545 X(J)=R(J)*W^2/D
- 5550 Y(J)=W*(R(J)^2+I(J)^2+W*I(J))/D
- 5555 NEXT J:GOTO 9000
- 6000 PRINT CL$;"ADD TRANSFORMER
- 6002 INPUT"STEP UP OR DOWN (U OR D)";T$
- 6004 IF T$<>"U" AND T$<>"D" AND T$<>"u" AND T$<>"d" THEN 6000
- 6006 INPUT"WHAT TRANSFORMATION RATIO";W
- 6010 IF T$="D" OR T$="d" THEN W=1/W
- 6020 FOR J=1 TO N: X(J)=W*R(J)
- 6025 Y(J)=W*I(J): NEXT J: GOTO 9000
- 6500 PRINT CL$;"ADD SERIES RESISTOR
- 6502 INPUT"WHAT VALUE OF R";RS
- 6506 FOR J=1 TO N: X(J)=R(J)+RS
- 6508 Y(J)=I(J):NEXT J: GOTO 9000
- 7000 PRINT CL$;"ADD SHUNT RESISTOR
- 7002 INPUT"WHAT VALUE OF R";RS
- 7004 FOR J=1 TO N
- 7006 D=(R(J)+RS)^2+I(J)^2
- 7008 X(J)=RS*(R(J)^2+RS*R(J)+I(J)^2)/D
- 7010 Y(J)=I(J)*RS^2/D: NEXT J: GOTO 9000
- 7500 CLS:INPUT "WANT TO RUN ANOTHER ONE";A$
- 7502 IF LEFT$(A$,1)="Y" OR LEFT$(A$,1)="y" THEN CLS:GOTO 6
- 7504 LOCATE 12,34:PRINT"GOOD-BY"DN$DN$DN$DN$DN$:END
- 8000 GET (0,0)-(639,35),TEXT#:CLS
- 8005 IF X=4 THEN PUT (80,9),BLANK#:GOTO 8020
- 8010 PUT (80,9),FULL#
- 8020 FOR J=1 TO N
- 8025 D=(X(J)+Z0)^2+Y(J)^2
- 8030 PX(J)=((X(J)-Z0)*(X(J)+Z0)+Y(J)^2)/D*217
- 8035 PY(J)=-2*Y(J)*Z0/D*90
- 8040 PSET (PX(J)+320,PY(J)+100):DRAW PT$
- 8050 IF D$="S" AND J>1 THEN LINE (320+PX(J-1),100+PY(J-1))-(320+PX(J),100+PY(J))
- 8060 NEXT J
- 8070 PRINT"<PRT SCN> FOR SCREEN DUMP TO PRINTER OR ANY KEY TO CONTINUE"
- 8075 FOR J=1 TO 2000:NEXT J:LOCATE 1:PRINT SPACE$(79)
- 8080 I$=INKEY$:IF I$="" THEN 8080
- 8100 GET (80,9)-(560,191),FULL#
- 8110 CLS:PUT (0,0),TEXT#:RETURN
- 8300 LOCATE 18:FOR J=1 TO 6:PRINT SPACE$(79):NEXT J
- 8305 LOCATE 21,1:INPUT"WHAT VALUE OF VSWR CIRCLE DO YOU WANT TO PLOT";VS
- 8310 IF VS<1 THEN 8310
- 8315 GET (0,0)-(639,35),TEXT#:CLS
- 8320 PUT (80,9),FULL#
- 8325 VR=217*(VS-1)/(VS+1)
- 8330 CIRCLE (320,100),VR
- 8340 GOTO 8070
- 9000 LOCATE 6:PRINT" FREQ (MHZ) RS (OHMS) XS (OHMS)"DN$
- 9005 FOR J=1 TO N
- 9010 PRINT USING " #####.###";F(J);:PRINT USING " #####.###";X(J);
- 9015 PRINT USING " #####.###";Y(J):NEXT J
- 9050 LOCATE 18
- 9055 PRINT"1 --> GOOD VALUE: KEEP & PROCEED
- 9060 PRINT"2 --> PRINT LATEST ITERATION & VALUES ON PRINTER
- 9065 PRINT"3 --> BAD VALUE: DISCARD & TRY A NEW CIRCUIT
- 9070 IF GR=1 THEN 9100
- 9075 PRINT"4 --> PLOT ON CLEAN CHART
- 9080 PRINT"5 --> PLOT ON LAST CHART
- 9085 PRINT"6 --> PLOT CONSTANT VSWR CIRCLES ";
- 9100 INPUT X
- 9110 IF X=1 THEN 9200
- 9120 IF X=2 THEN GOSUB 12000:GOTO 9050
- 9130 IF X=3 THEN 50
- 9140 IF X=4 AND GR=2 THEN GOSUB 8000:GOTO 9000
- 9150 IF X=5 AND GR=2 THEN GOSUB 8000:GOTO 9000
- 9160 IF X=6 AND GR=2 THEN GOSUB 8300:GOTO 9000
- 9170 GOTO 9100
- 9200 FOR J=1 TO N:R(J)=X(J)
- 9210 I(J)=Y(J):NEXT J
- 9215 LOCATE 18:FOR J=1 TO 6:PRINT SPACE$(79):NEXT J
- 9225 LOCATE 18:PRINT"YOU MUST NOW MATCH THE IMPEDANCES LISTED ABOVE.";
- 9230 FOR J=1 TO 1500:NEXT J:GOTO 50
- 9462 LEN=WL*EL/360*V:LEN=INT(100*LEN+.5)/100
- 9500 PRINT CL$"DO YOU WISH TO CALCULATE (1) L-C VALUES
- 9502 PRINT DN$" OR (2) LINE LENGTHS"DN$
- 9504 INPUT "WHAT IS YOUR CHOICE (1 OR 2)";CH
- 9506 IF CH<>1 AND CH<>2 THEN 9504
- 9508 ON CH GOTO 9520,9550
- 9520 PRINT DN$DN$:INPUT"INPUT OPERATING FREQUENCY (MHZ)";OF
- 9522 INPUT "INPUT DESIRED REACTANCE (OHMS)";DX
- 9524 IF DX=0 THEN 9522
- 9526 IF DX<0 THEN DX=-DX
- 9528 IND=DX/(2*PI*OF)
- 9530 CAP=1000000!/(2*PI*DX*OF)
- 9532 PRINT DN$"USE INDUCTANCE OF ";IND;"UH ";
- 9534 PRINT "OR CAPICATANCE OF ";CAP;"PF
- 9536 PRINT DN$"FOR REACTANCE OF ";DX;"OHMS AT"OF"MHZ
- 9538 GOTO 9590
- 9550 PRINT DN$DN$:INPUT"INPUT OPERATING FREQUENCY (MHZ)";OF
- 9552 INPUT "INPUT VELOCITY FACOTR OF YOUR LINE";V
- 9554 INPUT "INPUT ELECTRICAL LENGTH DESIRED IN DEGREES (0-360)";EL
- 9556 IF EL<0 OR EL>360 THEN 9554
- 9558 WL=300*39.37/OF
- 9560 PRINT DN$"ONE WAVELENGTH IN AIR =";WL;"INCHES AT"OF"MHZ
- 9562 L1=INT(100*WL*EL/360*V+.5)/100
- 9564 PRINT DN$;EL;"DEGREES WITH VEL FACTOR OF";V" = "L1"INCHES
- 9590 PRINT DN$DN$"PRESS ANY KEY TO RETURN TO MATCHING NETWORK MENU"
- 9592 I$=INKEY$:IF I$="" THEN 9592
- 9594 GOTO 50
- 10000 PI=3.141573:CL$=CHR$(12):DN$=CHR$(31):PT$="U2D4U2R4L8R4E1G2E1H1F2H1
- 10002 PRINT CL$DN$,"IMPEDANCE MATCHING PROGRAM WITH SMITH CHART DISPLAY
- 10004 PRINT DN$," FOR THE IBM-PC OR COMPATIBLES
- 10006 PRINT DN$,," V1.11 C 1986":PRINT DN$,," BY
- 10010 PRINT DN$,," LYNN A. GERIG":LOCATE 17
- 10020 PRINT"SELECT YOUR HARDWARE CONFIGURAGION FROM THE FOLLOWING MENU:
- 10022 PRINT:PRINT" 1 --> TEXT ONLY (SUCH AS MONOCHROME TEXT CARD)
- 10024 PRINT:PRINT" 2 --> IBM COLOR/GRAPHICS EMULATION
- 10026 PRINT" (YOU CAN PLOT GRAPHICS FROM BASIC)
- 10030 INPUT GR
- 10032 IF GR<>1 AND GR<>2 THEN 10030
- 10038 IF GR=1 THEN RETURN
- 10100 SCREEN 2:CLS:PRINT"THANKS FOR WAITING WHILE I DRAW THE CHART."
- 10104 CIRCLE (320,100),217
- 10106 LINE (103,100)-(537,100)
- 10108 CIRCLE (537,10),217,,PI,1.45*PI
- 10110 CIRCLE (537,190),217,,.55*PI,PI
- 10112 CIRCLE (429,100),109
- 10114 LOCATE 13,12:PRINT"0"
- 10116 LOCATE 13,69:PRINT"oo":PSET (550,100):PSET (551,100)
- 10118 LOCATE 5,18:PRINT".4":LOCATE 22,18:PRINT"-.4
- 10120 A=175:B=248:C=392:D=465
- 10122 FOR J=98 TO 102:PSET (A,J):PSET (B,J):PSET (C,J):PSET (D,J): NEXT J
- 10124 LOCATE 14,22:PRINT".2"
- 10126 LOCATE 14,31:PRINT".5"
- 10128 LOCATE 14,41:PRINT"1"
- 10130 LOCATE 14,50:PRINT"2"
- 10132 LOCATE 14,59:PRINT"5"
- 10134 CIRCLE (537,325),544,,.625*PI,.742*PI
- 10136 CIRCLE (537,-125),544,,1.257*PI,1.375*PI
- 10140 DIM BLANK#(1500),FULL#(1500),TEXT#(400)
- 10142 GET (80,9)-(560,191),BLANK#:GET (80,9)-(560,191),FULL#:CLS
- 10202 PRINT"TO ENABLE CAPABILITY OF GRAPHICS SCREEN DUMP TO PRINTER (USING THE
- 10204 PRINT"<PRINT SCREEN> KEY FROM THE KEYBOARD), YOU MUST RUN THE APPROPRIATE
- 10206 PRINT"HI-RES SCREEN DUMP UTILITY FILE FOR YOUR HARDWARE AT THE DOS LEVEL
- 10208 PRINT"BEFORE ENTERING BASIC AND RUNNING THIS PROGRAM."DN$DN$
- 10210 PRINT"DO YOU WISH TO PLOT DISCRETE FREQUENCIES? ( + + +)"DN$
- 10212 PRINT"OR DO YOU DESIRE A SMOOTH GRAPHICS PLOT? ( +---+-----+)"DN$
- 10214 INPUT"INPUT D OR S";D$
- 10216 IF D$="d" THEN D$="D"
- 10218 IF D$="s" THEN D$="S"
- 10220 IF D$<>"D" AND D$<>"S" THEN 10214
- 10222 RETURN
- 12000 LPRINT CHR$(27)CHR$(64):FOR J=1 TO (N+7):FOR K=1 TO 79
- 12004 Q=SCREEN (J,K):IF Q=0 THEN Q=32
- 12006 LPRINT CHR$(Q);:NEXT K:LPRINT:NEXT J:LPRINT:LPRINT:RETURN