100 ' RF1RX.BAS Dan Maguire AC6LA 110 ' 120 ' Calculates complex impedance (R and magnitude of X) based on 130 ' SWR and Z values. Ballpark accuracy only. 140 ' See Autek RF-1 instruction manual for more details. 150 ' 160 ' Thanks go to Leon Braskamp, AA6GL, for the idea of including 170 ' the hints to determine the sign of X in the program output. 180 ' 190 DIM SWR(3), Z(3) 200 PMJ$ = CHR$(241)+"j" 210 ' 220 COLOR 7,1 230 CLS 240 PRINT "--- RF1RX ---"; 250 PRINT " Autek RF-1 SWR and Z readings converted to R";PMJ$;"X" 260 PRINT 270 PRINT "Enter values for SWR and Z below to do the initial computation." 280 PRINT 290 PRINT "To determine the sign of the computed reactance (X), slowly" 300 PRINT "rotate the FINE knob clockwise (higher frequency) until the" 310 PRINT "Z reading just changes. Then:" 320 PRINT 330 PRINT " If Z went down then X is negative (capacitive)." 340 PRINT " If Z went up then X is positive (inductive)." 350 PRINT 360 PRINT " --UNLESS-- you took your readings via a transmission line" 370 PRINT " which was 90-180, or 270-360, or 450-540 etc. degrees long," 380 PRINT " in which case the opposite is true." 390 PRINT 400 ' 410 PRINT 420 INPUT "SWR"; SWRIN 430 PRINT 440 INPUT " Z"; ZIN 450 ' 460 CLS 470 PRINT "--- RF1RX ---"; 480 PRINT " Autek RF-1 SWR and Z readings converted to R";PMJ$;"X" 490 PRINT 500 PRINT "SWR ="; SWRIN; 510 IF SWRIN >= 1.2 AND SWRIN <= 5 THEN NOTE1$ = "": GOTO 560 520 NOTE1$ = "y" 530 COLOR 14 540 PRINT "(1)"; 550 COLOR 7 560 PRINT " Z ="; ZIN 570 ' 580 IF ZIN <= 50 AND SWRIN >= 50/ZIN THEN GOTO 660 590 IF ZIN > 50 AND SWRIN >= ZIN/50 THEN GOTO 660 600 PRINT 610 COLOR 14 620 PRINT "This is an impossible combination of SWR and Z."; 630 PRINT " Nevertheless ..." 640 COLOR 7 650 ' 660 PRINT 670 IF SWRIN > 3 THEN GOTO 720 680 PRINT "Using a 10% range for SWR"; 690 SWR(1) = SWRIN * .9: SWR(2) = SWRIN: SWR(3) = SWRIN * 1.1 700 IF SWR(1) < 1 THEN SWR(1) = 1 710 GOTO 740 720 PRINT "Using a 20% range for SWR"; 730 SWR(1) = SWRIN * .8: SWR(2) = SWRIN: SWR(3) = SWRIN * 1.2 740 PRINT " and a 3% range for Z, R";PMJ$;"X could be:" 750 Z(1) = ZIN * .97: Z(2) = ZIN: Z(3) = ZIN * 1.03 760 ' 770 PRINT 780 IF SWR(3) >= 9.995 THEN US$="###.##": SKN=11: ELSE US$="##.##": SKN=12 790 IF Z(3) >= 99.95 THEN SK=16: UZ$="####.#": ELSE SK=15: UZ$="###.#" 800 PRINT SPC(SK); "SWR"; USING US$; SWR(1); 810 PRINT SPC(SKN); "SWR"; USING US$; SWR(2); 820 PRINT SPC(SKN); "SWR"; USING US$; SWR(3) 830 PRINT SPC(12);"-------------- -------------- --------------" 840 ' 850 NOTE2$ = "" 860 NOTE3$ = "" 870 FOR I = 1 TO 3 880 PRINT "Z"; USING UZ$; Z(I);: PRINT " : "; 890 FOR J = 1 TO 3 900 R = ((2500 + Z(I)*Z(I)) * SWR(J)) / (50 * (SWR(J)*SWR(J) + 1)) 910 IF R < Z(I) THEN X = SQR(Z(I)*Z(I) - R*R) ELSE X = 0 920 PRINT " "; USING "###.#"; R; 930 PRINT " ";PMJ$; 940 PRINT USING "###.#"; X; 950 IF X/R >= .2 AND X/R <= 5 THEN PRINT " ";: GOTO 1000 960 COLOR 14 970 IF R > X THEN PRINT " (2)";: NOTE2$ = "y": GOTO 990 980 PRINT " (3)";: NOTE3$ = "y" 990 COLOR 7 1000 NEXT J 1010 PRINT " " 1020 PRINT 1030 NEXT I 1040 ' 1050 COLOR 14 1060 IF NOTE1$ = "" THEN GOTO 1110 1070 PRINT 1080 PRINT "Note 1: "; 1090 IF SWRIN < 1.2 THEN PRINT "Low "; ELSE PRINT "High "; 1100 PRINT "SWR, likely inaccurate R and/or X." 1110 IF NOTE2$ = "" THEN GOTO 1140 1120 IF NOTE1$ = "" THEN PRINT 1130 PRINT "Note 2: R >> X, likely inaccurate X value." 1140 IF NOTE3$ = "" THEN GOTO 1170 1150 IF NOTE1$ = "" AND NOTE2$ = "" THEN PRINT 1160 PRINT "Note 3: X >> R, likely inaccurate R value." 1170 COLOR 7 1180 ' 1190 LOCATE 22,1 1200 PRINT STRING$(79,"-") 1210 RPT$ = "" 1220 CODES.CLR = 7 1230 VALUE.CLR = 7 1240 ' 1250 LOCATE 23,1 1260 PRINT "To repeat enter "; 1270 COLOR CODES.CLR 1280 PRINT "'s' or 'z' (for SWR or Z) "; 1290 CODES.CLR = 7 1300 COLOR VALUE.CLR 1310 PRINT "followed by a value "; 1320 VALUE.CLR = 7 1330 COLOR 7 1340 PRINT "(eg 's 2.3')." 1350 PRINT "To quit enter 'q'. [q]: "; 1360 IF RPT$ = "" THEN GOTO 1440 1370 CSRY = CSRLIN 1380 CSRX = POS(0) 1390 COLOR 14 1400 PRINT " (was '";RPT$;"') "; 1410 COLOR 7 1420 LOCATE CSRY,CSRX 1430 ' 1440 INPUT;"", RPT$ 1450 IF RPT$ = "q" OR RPT$ = "" THEN COLOR 7,0: CLS: SYSTEM 1460 ' 1470 IF LEFT$(RPT$,1) = "s" THEN CODE% = 1: GOTO 1530 1480 IF LEFT$(RPT$,1) = "z" THEN CODE% = 2: GOTO 1530 1490 BEEP 1500 CODES.CLR = 14 1510 GOTO 1250 1520 ' 1530 VALUE = VAL(MID$(RPT$,2)) 1540 IF VALUE <> 0 THEN GOTO 1590 1550 BEEP 1560 VALUE.CLR = 14 1570 GOTO 1250 1580 ' 1590 ON CODE% GOTO 1600, 1610 1600 SWRIN = VALUE: GOTO 460 1610 ZIN = VALUE: GOTO 460