home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HAM Radio 1
/
HamRadio.cdr
/
tech
/
ee2
/
tpcmod01.bas
< prev
next >
Wrap
BASIC Source File
|
1987-02-07
|
6KB
|
253 lines
10 PRINT"**S. NOVAK , OCT ,84 *****"
20 LPRINT"**S. NOVAK , OCT ,84 *****"
30 PRINT "PRINTED IN R.F. DESIGN, May 85"
40 LPRINT "PRINTED IN R.F. DESIGN, May 85"
50 PRINT"MAKE SURE PRINTER IS TURNED ON AND READY!"
60 REM " PARAM. CONV. ",8
70 PI=3.14159265#
80 LPRINT " PARAM. CONVERSION PROGRAM; MODIFIED BY J.PETROSINO AND G.HARRISON 9/85"
90 PRINT " PARAM. CONVERSION PROGRAM; MODIFIED BY J.PETROSINO AND G.HARRISON 9/85"
100 DIM R(4),I(4),M(4),A(4),A$(4)
110 A$(1)=" INPUT PARAM. (11)="
120 A$(2)=" REVERSE PARAM. (12)="
130 A$(3)=" FORWARD PARAM. (21)="
140 A$(4)=" OUTPUT PARAM. (22)="
150 INPUT " PARAMETERS SUPPLIED ?(Z,Y,H,S,A)";P$
160 LPRINT " PARAMETERS SUPPLIED ?(Z,Y,H,S,A)";P$
170 INPUT" POLAR FORM (P) OR RE. AND IM. PARTS (R)";R$
180 LPRINT" POLAR FORM (P) OR RE. AND IM. PARTS (R)";R$
190 INPUT" PARAMETER REQUIRED (Z,Y,H,S,A)";S$
200 LPRINT" PARAMETER REQUIRED (Z,Y,H,S,A)";S$
210 IF P$="S" OR S$="S" THEN GOSUB 1780
220 IF R$="P" THEN LPRINT " ENTER MAGNITUDE AND ANGLE IN DEGREES"
230 IF R$="P" THEN PRINT " ENTER MAGNITUDE AND ANGLE IN DEGREES"
240 IF R$="R" THEN LPRINT " ENTER REAL AND IMAG. PART"
250 IF R$="R" THEN PRINT " ENTER REAL AND IMAG. PART"
260 FOR K=1 TO 4
270 PRINT A$(K)
280 INPUT R(K),I(K)
290 LPRINT A$(K) R(K)","I(K)
300 IF R$="P" THEN GOSUB 1890
310 NEXT K
320 PRINT : LPRINT
330 IF P$="H" AND S$="S" OR P$="S" AND S$="H" THEN GOSUB 2400
340 IF P$="H" AND S$="A" OR P$="A" AND S$="H" THEN GOSUB 2430
350 IF P$="S" AND S$="Z" OR P$="Z" AND S$="S" THEN GOSUB 2450
360 IF P$="S" AND S$="A" THEN GOSUB 2490
370 IF P$="A" AND S$="S" THEN GOSUB 2470
380 REM MULTIPLY BY Z0 **************
390 IF P$="Y" AND S$="S" THEN GOSUB 2040
400 REM CALC. P12*P21 AND DP**********
410 R1=R(2)
420 I1=I(2)
430 R2=R(3)
440 I2=I(3)
450 GOSUB 1800
460 P=RE
470 Q=IM
480 R1=R(1)
490 I1=I(1)
500 R2=R(4)
510 I2=I(4)
520 GOSUB 1800
530 R=RE-P
540 I=IM-Q
550 R1=R(1)
560 REM SELECT PARAM. ******************
570 IF P$="Z" AND S$="Y" OR P$="Y" AND S$="Z" THEN GOSUB 920
580 IF P$="A" AND S$="Z" OR P$="Z" AND S$="A" THEN GOSUB 1140
590 IF P$="H" AND S$="Z" OR P$="Z" AND S$="H" THEN GOSUB 1340
600 IF P$="Y" AND S$="S" OR P$="S" AND S$="Y" THEN GOSUB 1540
610 IF P$="H" AND S$="Y" OR P$="Y" AND S$="H" THEN GOSUB 720
620 REM DUAL CONVERSIONS **************
630 IF P$="Y" AND S$="A" THEN 660
640 IF P$="A" AND S$="Y" THEN 690
650 GOTO 2160
660 P$="Z"
670 GOSUB 920
680 GOTO 380
690 P$="Z"
700 GOSUB 1140
710 GOTO 380
720 REM CONV. Y TO H OR H TO Y *********
730 R2=R(1)
740 I2=I(1)
750 R1=1
760 I1=0
770 K=1
780 GOSUB 2080
790 R1=-R(2)
800 I1=-I(2)
810 K=2
820 GOSUB 2080
830 R1=R(3)
840 I1=I(3)
850 K=3
860 GOSUB 2080
870 R1=R
880 I1=I
890 K=4
900 GOSUB 2080
910 RETURN
920 REM CONV. Y TO Z OR Z TO Y *********
930 R3=R(1)
940 I3=I(1)
950 R1=R(4)
960 I1=I(4)
970 R2=R
980 I2=I
990 K=1
1000 GOSUB 2080
1010 R1=-R(2)
1020 I1=-I(2)
1030 K=2
1040 GOSUB 2080
1050 R1=-R(3)
1060 I1=-I(3)
1070 K=3
1080 GOSUB 2080
1090 R1=R3
1100 I1=I3
1110 K=4
1120 GOSUB 2080
1130 RETURN
1140 REM CONV. A TO Z OR Z TO A ********
1150 R2=R(3)
1160 I2=I(3)
1170 R1=R(1)
1180 I1=I(1)
1190 K=1
1200 GOSUB 2080
1210 R1=R
1220 I1=I
1230 K=2
1240 GOSUB 2080
1250 R1=1
1260 I1=0
1270 K=3
1280 GOSUB 2080
1290 R1=R(4)
1300 I1=I(4)
1310 K=4
1320 GOSUB 2080
1330 RETURN
1340 REM CONV. H TO Z OR Z TO H *******
1350 R2=R(4)
1360 I2=I(4)
1370 R1=R
1380 I1=I
1390 K=1
1400 GOSUB 2080
1410 R1=R(2)
1420 I2=I(2)
1430 K=2
1440 GOSUB 2080
1450 R1=-R(3)
1460 I1=-I(3)
1470 K=3
1480 GOSUB 2080
1490 R1=1
1500 I1=0
1510 K=4
1520 GOSUB 2080
1530 RETURN
1540 REM CONV. Y TO S OR S TO Y *******
1550 R3=R(1)
1560 I3=I(1)
1570 R1=1+R(4)-R(1)-R
1580 I1=I(4)-I(1)-I
1590 R2=1+R(4)+R(1)+R
1600 I2=I(4)+I(1)+I
1610 IF P$="S" AND S$="Y" THEN R2=R2*Z0
1620 IF P$="S" AND S$="Y" THEN I2=I2*Z0
1630 K=1
1640 GOSUB 2080
1650 R1=-2*R(2)
1660 I1=-2*I(2)
1670 K=2
1680 GOSUB 2080
1690 R1=-2*R(3)
1700 I1=-2*I(3)
1710 K=3
1720 GOSUB 2080
1730 R1=1+R3-R(4)-R
1740 I1=I3-I(4)-I
1750 K=4
1760 GOSUB 2080
1770 RETURN
1780 INPUT " CHAR. IMP. OF THE LINE (Z0)=",Z0
1790 RETURN
1800 REM COMPL. NO MULT. SUB ************
1810 RE=R1*R2-I1*I2
1820 IM=I1*R2+R1*I2
1830 RETURN
1840 REM COMP. NO. DIV. SUB *************
1850 D=R2*R2+I2*I2
1860 RE=(R1*R2+I1*I2)/D
1870 IM=(I1*R2-R1*I2)/D
1880 RETURN
1890 REM POLAR TO RECT. ***************
1900 A=I(K)
1910 M=R(K)
1920 A=A*PI/180
1930 RE=M*COS(A)
1940 IM=M*SIN(A)
1950 R(K)=RE
1960 I(K)=IM
1970 RETURN
1980 REM RECT. TO POLAR ***************
1990 M=SQR(RE*RE+IM*IM)
2000 A=90*(SGN(IM)+(IM=0))
2010 IF RE=0 THEN 2030
2020 A=ATN(IM/RE)*180/PI+A*(1-SGN(RE))
2030 RETURN
2040 FOR K=1 TO 4
2050 R(K)=R(K)*Z0:I(K)=I(K)*Z0
2060 NEXT K
2070 RETURN
2080 REM SUB. STORE RESULTS ***********
2090 GOSUB 1840
2100 R(K)=RE
2110 I(K)=IM
2120 GOSUB 1980
2130 M(K)=M
2140 A(K)=A
2150 RETURN
2160 REM SUB. PRINT *******************
2170 LPRINT " CALCULATED PARAMETER ="S$
2180 PRINT " CALCULATED PARAMETER ="S$
2190 E=1E+08
2200 FOR K=1 TO 4
2210 LPRINT A$(K);S$
2220 PRINT A$(K);S$
2230 LPRINT "RE","IM","MAG","ANGLE"
2240 PRINT "RE","IM","MAG","ANGLE"
2250 REM LPRINT (INT(R(K)*E))/E, (INT(I(K)*E))/E, (INT(M(K)*E))/E, (INT(A(K)*E))/E
2260 REM PRINT (INT(R(K)*E))/E, (INT(I(K)*E))/E, (INT(M(K)*E))/E, (INT(A(K)*E))/E
2270 PRINT USING "#.###^^^^ ";R(K),I(K),M(K),A(K)
2280 LPRINT USING "##.###^^^^ ";R(K),I(K),M(K),A(K)
2290 LPRINT
2300 NEXT K
2310 PRINT""
2320 PRINT""
2330 LPRINT""
2340 LPRINT""
2350 LPRINT""
2360 IF S1$<>S$ THEN 2510
2370 INPUT " ANOTHER CALCULATION (Y OR N)";C$
2380 IF C$<>"Y" THEN END
2390 GOTO 150
2400 REM SUB FOR PAR CON **********
2410 S1$=S$:S0$=S$:S$="Y"
2420 RETURN
2430 S1$=S$:S0$=S$:S$="Z"
2440 RETURN
2450 S1$=S$:S0$=S$:S$="Y"
2460 RETURN
2470 S1$=S$:S0$=S$:S$="Y"
2480 RETURN
2490 S1$=S$:S0$="Z":S$="Y"
2500 RETURN
2510 P$=S$:S$=S0$:S0$=S1$
2520 GOTO 330