home *** CD-ROM | disk | FTP | other *** search
- REM PROGRAM SRT BY E.R. LE CLEAR 8-16-79
- REM THIS PROGRAM PROVIDES CALCULATOR TYPE
- REM OPERATION FOR COMPLEX QUANTITY MATH
- REM OPERATIONS INCLUDING SEVERAL MATRIX
- REM CONVERSION ROUTINES. DESCRIPTIONS OF
- REM EACH COMPLEX SUBROUTINE IS GIVEN IN
- REM FILE DISK.DOC .
- 1.0 PRINT "MENUE"
- PRINT "POL/REC REC/POL SER/PAR PAR/SER"
- PRINT "MPYCOM DIVCOM REFC/Z Z/REFC"
- PRINT "SMATX XMATS ZXXZ YZZY"
- PRINT "MTXMPY"
- INPUT "WHICH ?";SELECT$
- IF SELECT$="POL/REC" THEN GOSUB 2.0
- IF SELECT$="REC/POL" THEN GOSUB 3.0
- IF SELECT$="SER/PAR" THEN GOSUB 4.0
- IF SELECT$="PAR/SER" THEN GOSUB 5.0
- IF SELECT$="MPYCOM" THEN GOSUB 6.0
- IF SELECT$="DIVCOM" THEN GOSUB 7.0
- IF SELECT$="REFC/Z" THEN GOSUB 8.0
- IF SELECT$="Z/REFC" THEN GOSUB 9.0
- IF SELECT$="SMATX" THEN GOSUB 10.0
- IF SELECT$="XMATS" THEN GOSUB 11.0
- IF SELECT$="ZXXZ" THEN GOSUB 12.0
- IF SELECT$="YZZY" THEN GOSUB 13.0
- IF SELECT$="MTXMPY" THEN GOSUB 14.0
- GOTO 1.0
- 2.0 PRINT "POLAR TO RECTANGULAR "
- INPUT "MAGNITUDE, PHASE ?";TEMP.MAG,TEMP.PHA
- GOSUB 100.000
- PRINT "REAL= ";TEMP.REAL,"IMAGINARY= ";TEMP.IMAG
- RETURN
- 3.0 PRINT "RECTANGULAR TO POLAR "
- INPUT "REAL, IMAGINARY ?";TEMP.REAL,TEMP.IMAG
- GOSUB 100.100
- PRINT "MAGNITUDE= ";TEMP.MAG,"PHASE(DEG)= ";TEMP.PHA
- RETURN
- 4.0 PRINT "SERIAL TO PARALLEL IMPEDANCE "
- INPUT "SERIES R,SERIES X ?";TEMP.REAL,TEMP.IMAG
- GOSUB 101.100
- PRINT"PARALLEL R= ";TEMP.REAL,"PARALLEL X=";TEMP.IMAG
- RETURN
- 5.0 PRINT "PARALLEL TO SERIAL IMPEDANCE "
- INPUT "PARALLEL R, PARALLEL X ?";TEMP.REAL,TEMP.IMAG
- GOSUB 102.100
- PRINT "SERIES R=";TEMP.REAL,"SERIES X=";TEMP.IMAG
- RETURN
- 6.0 PRINT "COMPLEX MULTIPLICATION "
- INPUT "A+JB, C+JD ?";TEMP.REAL,TEMP.IMAG,TEMP1.REAL,TEMP1.IMAG
- GOSUB 103.100
- PRINT "C=";TEMP.REAL,"JD=";TEMP.IMAG
- RETURN
- 7.0 PRINT "COMPLEX DIVISION "
- INPUT "A+JB /C+JD";TEMP.REAL,TEMP.IMAG,TEMP1.REAL,TEMP1.IMAG
- GOSUB 104.100
- PRINT "C=";TEMP.REAL,"JD=";TEMP.IMAG
- RETURN
- 8.0 PRINT "REFLECTION COEFFICIENT TO LOAD Z "
- INPUT "MAGNITUDE, PHASE ?";TEMP.MAG,TEMP.PHA
- GOSUB 105.100
- PRINT "SERIES R=";TEMP.REAL,"SERIES X=";TEMP.IMAG
- RETURN
- 9.0 PRINT "LOAD Z TO REFLECTION COEFFICIENT"
- INPUT "SERIES R, SERIES X ?";TEMP.REAL,TEMP.IMAG
- GOSUB 106.100
- PRINT "MAGNITUDE=";TEMP.MAG,"PHASE=";TEMP.PHA
- RETURN
- 10.0 PRINT "S TO X MATRIX CONVERSION"
- INPUT "S11,S12,S21,S22";S11.REAL,S11.IMAG,S12.REAL,S12.IMAG,S21.REAL,S21.IMAG,S22.REAL,S22.IMAG
- GOSUB 107.100
- PRINT "A=";A.REAL,"+J";A.IMAG
- PRINT "B=";B.REAL,"+J";B.IMAG
- PRINT "C=";C.REAL,"+J";C.IMAG
- PRINT "D=";D.REAL,"+J";D.IMAG
- RETURN
- 11.0 PRINT "X TO S MATRIX CONVERSION"
- INPUT "A,B,C,D";A.REAL,A.IMAG,B.REAL,B.IMAG,C.REAL,C.IMAG,D.REAL,D.IMAG
- GOSUB 108.100
- PRINT "S11=";S11.REAL,"+J";S11.IMAG
- PRINT "S12=";S12.REAL,"+J";S12.IMAG
- PRINT "S21=";S21.REAL,"+J";S21.IMAG
- PRINT "S22=";S22.REAL,"+J";S22.IMAG
- RETURN
- 12.0 PRINT "Z AND X MATRIX CONVERSIONS"
- INPUT "Z11(X11), Z12(X12),Z21(X21),Z22(X22) ?";TEMPA.REAL,TEMPA.IMAG,TEMPB.REAL,TEMPB.IMAG,TEMPC.REAL,TEMPC.IMAG,TEMPD.REAL,TEMPD.IMAG
- GOSUB 109.100
- PRINT "X11(Z11)=";TEMPA.REAL,"+J";TEMPA.IMAG
- PRINT "X12(Z12)=";TEMPB.REAL,"+J";TEMPB.IMAG
- PRINT "X21(Z21)=";TEMPC.REAL,"+J";TEMPC.IMAG
- PRINT "X22(Z22)=";TEMPD.REAL,"+J";TEMPD.IMAG
- RETURN
- 13.0 PRINT "Z AND Y MATRIX CONVERSIONS"
- INPUT "Z11(Y11), Z12(Y12), Z21(Y21), Z22(Y22) ?";TEMPA.REAL,TEMPA.IMAG,TEMPB.REAL,TEMPB.IMAG,TEMPC.REAL,TEMPC.IMAG,TEMPD.REAL,TEMPD.IMAG
- GOSUB 110.100
- PRINT "Y11(Z11)=";TEMPA.REAL,"+J";TEMPA.IMAG
- PRINT "Y12(Z12)=";TEMPB.REAL,"+J";TEMPB.IMAG
- PRINT "Y21(Z21)=";TEMPC.REAL,"+J";TEMPC.IMAG
- PRINT "Y22(Z22)=";TEMPD.REAL,"+J";TEMPD.IMAG
- RETURN
- 14.0 PRINT "COMPLEX MATRIX MULTIPLICATION"
- INPUT "A11,A12,A21,A22";A11.REAL,A11.IMAG,A12.REAL,A12.IMAG,A21.REAL,A21.IMAG,A22.REAL,A22.IMAG
- INPUT "B11,B12,B21,B22";B11.REAL,B11.IMAG,B12.REAL,B12.IMAG,B21.REAL,B21.IMAG,B22.REAL,B22.IMAG
- GOSUB 111.100
- PRINT "C11=";C11.REAL,"+J";C11.IMAG
- PRINT "C12=";C12.REAL,"+J";C12.IMAG
- PRINT "C21=";C21.REAL,"+J";C21.IMAG
- PRINT "C22=";C22.REAL,"+J";C22.IMAG
- RETURN
- 100.000 REM ***********POL/REC***********
- TEMP.REAL=TEMP.MAG*COS(TEMP.PHA/57.296)
- TEMP.IMAG=TEMP.MAG*SIN(TEMP.PHA/57.296)
- RETURN
- 100.100 REM ***********REC/POL***********
- TEMP.MAG=SQR(TEMP.REAL*TEMP.REAL+TEMP.IMAG*TEMP.IMAG)
- TEMP.PHA=57.296*ATN(TEMP.IMAG/TEMP.REAL)
- RETURN
- 101.100 REM ***********SER/PAR***********
- A=TEMP.REAL : B=TEMP.IMAG
- Q=B/A
- IF Q<1E-12 THEN Q=1E-12
- TEMP.REAL=A*(1+Q*Q)
- TEMP.IMAG=B*(1+1/(Q*Q))
- RETURN
- 102.100 REM ***********PAR/SER***********
- A=TEMP.REAL : B=TEMP.IMAG
- Q=B/A
- IF Q<1E-12 THEN Q=1E-12
- TEMP.REAL=A/(1+1/(Q*Q))
- TEMP.IMAG=B/(1+Q*Q)
- RETURN
- 103.100 REM ***********MPYCOM***********
- A=TEMP.REAL : B=TEMP.IMAG
- C=TEMP1.REAL : D=TEMP1.IMAG
- TEMP.REAL=A*C-B*D
- TEMP.IMAG=A*D+B*C
- RETURN
- 104.100 REM ***********DIVCOM***********
- A=TEMP.REAL : B=TEMP.IMAG
- C=TEMP1.REAL : D=TEMP1.IMAG
- E=C*C+D*D
- IF E<1E-12 THEN E=1E-12
- TEMP.REAL=(A*C+B*D)/E
- TEMP.IMAG=(B*C-A*D)/E
- RETURN
- 105.100 REM ***********REFC/Z***********
- A=TEMP.MAG : B=TEMP.PHA
- SR=A*COS(B/57.296)
- IF SR<1E-12 THEN SR=1E-12
- SI=A*SIN(B/57.296)
- TEMP.REAL=1+SR : TEMP.IMAG=SI
- TEMP1.REAL=1-SR : TEMP1.IMAG=-SI
- GOSUB 104.100
- TEMR=TEMP.REAL : TEMI=TEMP.IMAG
- TEMP.REAL=50*TEMR : TEMP.IMAG=50*TEMI
- RETURN
- 106.100 REM ***********Z/REFC***********
- A=TEMP.REAL
- TEMP.REAL=A-50
- TEMP1.REAL=A+50 : TEMP1.IMAG=TEMP.IMAG
- GOSUB 104.100
- TEMP.MAG=SQR(TEMP.REAL*TEMP.REAL+TEMP.IMAG*TEMP.IMAG)
- TEMP.PHA=57.296*ATN(TEMP.IMAG/TEMP.REAL)
- RETURN
- 107.100 REM ***********SMATX***********
- T1R=1+S11.REAL : T1I=S11.IMAG
- T2R=1-S11.REAL : T2I=-S11.IMAG
- T3R=1+S22.REAL : T3I=S22.IMAG
- T4R=1-S22.REAL : T4I=-S22.IMAG
- TEMP.REAL=S12.REAL : TEMP.IMAG=S12.IMAG
- TEMP1.REAL=S21.REAL : TEMP1.IMAG=S21.IMAG
- GOSUB 103.100
- T5R=TEMP.REAL : T5I=TEMP.IMAG
- TEMP.REAL=T1R : TEMP.IMAG=T1I
- TEMP1.REAL=T4R : TEMP1.IMAG=T4I
- GOSUB 103.100
- Q1R=TEMP.REAL : Q1I=TEMP.IMAG
- Q2R=Q1R+T5R : Q2I=Q1I+T5I
- TEMP.REAL=Q2R : TEMP.IMAG=Q2I
- TEMP1.REAL=S21.REAL : TEMP1.IMAG=S21.IMAG
- GOSUB 104.100
- Q3R=TEMP.REAL : Q3I=TEMP.IMAG
- A.REAL=Q3R/2 : A.IMAG=Q3I/2
- TEMP.REAL=T2R : TEMP.IMAG=T2I
- TEMP1.REAL=T4R : TEMP1.IMAG=T4I
- GOSUB 103.100
- Q4R=TEMP.REAL : Q4I=TEMP.IMAG
- Q5R=Q4R-T5R : Q5I=Q4I-T5I
- TEMP.REAL=Q5R : TEMP.IMAG=Q5I
- TEMP1.REAL=S21.REAL : TEMP1.IMAG=S21.IMAG
- GOSUB 104.100
- Q6R=TEMP.REAL : Q6I=TEMP.IMAG
- C.REAL=Q6R/100 : C.IMAG=Q6I/100
- TEMP.REAL=T2R : TEMP.IMAG=T2I
- TEMP1.REAL=T3R : TEMP1.IMAG=T3I
- GOSUB 103.100
- Q7R=TEMP.REAL : Q7I=TEMP.IMAG
- Q8R=Q7R+T5R : Q8I=Q7I+T5I
- TEMP.REAL=Q8R : TEMP.IMAG=Q8I
- TEMP1.REAL=S21.REAL : TEMP1.IMAG=S21.IMAG
- GOSUB 104.100
- Q9R=TEMP.REAL : Q9I=TEMP.IMAG
- D.REAL=Q9R/2 : D.IMAG=Q9I/2
- TEMP.REAL=Q2R : TEMP.IMAG=Q2I
- TEMP1.REAL=Q8R : TEMP1.IMAG=Q8I
- GOSUB 103.100
- Q10R=TEMP.REAL : Q10I=TEMP.IMAG
- Q11R=Q10R-4*T5R : Q11I=Q10I-4*T5I
- TEMP.REAL=Q11R : TEMP.IMAG=Q11I
- TEMP1.REAL=S21.REAL : TEMP1.IMAG=S21.IMAG
- GOSUB 104.100
- TEMP1.REAL=Q5R : TEMP1.IMAG=Q5I
- GOSUB 104.100
- Q14R=TEMP.REAL : Q14I=TEMP.IMAG
- B.REAL=25*Q14R : B.IMAG=25*Q14I
- RETURN
- 108.100 REM ***********XMATS***********
- TEMP.REAL=A.REAL : TEMP.IMAG=A.IMAG
- TEMP1.REAL=D.REAL : TEMP1.IMAG=D.IMAG
- GOSUB 103.100
- Q1R=TEMP.REAL : Q1I=TEMP.IMAG
- TEMP.REAL=B.REAL : TEMP.IMAG=B.IMAG
- TEMP1.REAL=C.REAL : TEMP1.IMAG=C.IMAG
- GOSUB 103.100
- Q2R=TEMP.REAL : Q2I=TEMP.IMAG
- T1R=Q1R-Q2R : T1I=Q1I-Q2I
- T2R=A.REAL+50*C.REAL : T2I=A.IMAG+50*C.IMAG
- T3R=A.REAL-50*C.REAL : T3I=A.IMAG-50*C.IMAG
- T4R=D.REAL+50*C.REAL : T4I=D.IMAG+50*C.IMAG
- T5R=D.REAL-50*C.REAL : T5I=D.IMAG-50*C.IMAG
- TEMP.REAL=T2R : TEMP.IMAG=T2I
- TEMP1.REAL=T4R : TEMP1.IMAG=T4I
- GOSUB 103.100
- Q3R=TEMP.REAL : Q3I=TEMP.IMAG
- T6R=Q3R-T1R : T6I=Q3I-T1I
- TEMP.REAL=T3R : TEMP.IMAG=T3I
- TEMP1.REAL=T4R : TEMP1.IMAG=T4I
- GOSUB 103.100
- Q4R=TEMP.REAL : Q4I=TEMP.IMAG
- T7R=Q4R-T1R : T7I=Q4I-T1I
- TEMP.REAL=T2R : TEMP.IMAG=T2I
- TEMP1.REAL=T5R : TEMP1.IMAG=T5I
- GOSUB 103.100
- Q5R=TEMP.REAL : Q5I=TEMP.IMAG
- T8R=Q5R-T1R : T8I=Q5I-T1I
- TEMP.REAL=T7R : TEMP.IMAG=T7I
- TEMP1.REAL=T6R : TEMP1.IMAG=T6I
- GOSUB 104.100
- S11.REAL=TEMP.REAL : S11.IMAG=TEMP.IMAG
- Q6R=100*C.REAL : Q6I=100*C.IMAG
- TEMP.REAL=T1R : TEMP.IMAG=T1I
- TEMP1.REAL=T6R : TEMP1.IMAG=T6I
- GOSUB 104.100
- Q7R=TEMP.REAL : Q7I=TEMP.IMAG
- TEMP.REAL=Q6R : TEMP.IMAG=Q6I
- TEMP1.REAL=Q7R : TEMP1.IMAG=Q7I
- GOSUB 103.100
- S12.REAL=TEMP.REAL : S12.IMAG=TEMP.IMAG
- TEMP.REAL=Q6R : TEMP.IMAG=Q6I
- TEMP1.REAL=T6R : TEMP1.IMAG=T6I
- GOSUB 104.100
- S21.REAL=TEMP.REAL : S21.IMAG=TEMP.IMAG
- TEMP.REAL=T8R : TEMP.IMAG=T8I
- TEMP1.REAL=T6R : TEMP1.IMAG=T6I
- GOSUB 104.100
- S22.REAL=TEMP.REAL : S22.IMAG=TEMP.IMAG
- RETURN
- 109.100 REM ***********ZXXZ***********
- TEMP.REAL=TEMPA.REAL : TEMP.IMAG=TEMPA.IMAG
- TEMP1.REAL=TEMPD.REAL : TEMP1.IMAG=TEMPD.IMAG
- GOSUB 103.100
- TEM1R=TEMP.REAL : TEM1I=TEMP.IMAG
- TEMP.REAL=TEMPB.REAL : TEMP.IMAG=TEMPB.IMAG
- TEMP1.REAL=TEMPC.REAL : TEMP1.IMAG=TEMPC.IMAG
- GOSUB 103.100
- TEM2R=TEMP.REAL : TEM2I=TEMP.IMAG
- DELR=TEM1R-TEM2R : DELI=TEM1I-TEM2I
- TEMP.REAL=TEMPA.REAL : TEMP.IMAG=TEMPA.IMAG
- TEMP1.REAL=TEMPC.REAL : TEMP1.IMAG=TEMPC.IMAG
- GOSUB 104.100
- TEMPA.REAL=TEMP.REAL : TEMPA.IMAG=TEMP.IMAG
- TEMP.REAL=DELR : TEMP.IMAG=DELI
- TEMP1.REAL=TEMPC.REAL : TEMP1.IMAG=TEMPC.IMAG
- GOSUB 104.100
- TEMPB.REAL=TEMP.REAL : TEMPB.IMAG=TEMP.IMAG
- TEM3R=TEMPC.REAL : TEM3I=TEMPC.IMAG
- TEMP.REAL=1 : TEMP.IMAG=0
- TEMP1.REAL=TEM3R : TEMP1.IMAG=TEM3I
- GOSUB 104.100
- TEMPC.REAL=TEMP.REAL : TEMPC.IMAG=TEMP.IMAG
- TEMP.REAL=TEMPD.REAL : TEMP.IMAG=TEMPD.IMAG
- TEMP1.REAL=TEM3R : TEMP1.IMAG=TEM3I
- GOSUB 104.100
- TEMPD.REAL=TEMP.REAL : TEMPD.IMAG=TEMP.IMAG
- RETURN
- 110.100 REM ***********YZZY***********
- TEMP.REAL=TEMPA.REAL : TEMP.IMAG=TEMPA.IMAG
- TEMP1.REAL=TEMPD.REAL : TEMP1.IMAG=TEMPD.IMAG
- GOSUB 103.100
- Q1R=TEMP.REAL : Q1I=TEMP.IMAG
- TEMP.REAL=TEMPB.REAL : TEMP.IMAG=TEMPB.IMAG
- TEMP1.REAL=TEMPC.REAL : TEMP1.IMAG=TEMPC.IMAG
- GOSUB 103.100
- Q2R=TEMP.REAL : Q2I=TEMP.IMAG
- Q3R=Q1R-Q2R : Q3I=Q1I-Q2I
- TEM1R=TEMPA.REAL : TEM1I=TEMPA.IMAG
- TEM2R=-TEMPB.REAL : TEM2I=-TEMPB.IMAG
- TEM3R=-TEMPC.REAL : TEM3I=-TEMPC.IMAG
- TEM4R=TEMPD.REAL : TEM4I=TEMPD.IMAG
- TEMP.REAL=TEM4R : TEMP.IMAG=TEM4I
- TEMP1.REAL=Q3R : TEMP1.IMAG=Q3I
- GOSUB 104.100
- TEMPA.REAL=TEMP.REAL : TEMPA.IMAG=TEMP.IMAG
- TEMP.REAL=TEM3R : TEMP.IMAG=TEM3I
- TEMP1.REAL=Q3R : TEMP1.IMAG=Q3I
- GOSUB 104.100
- TEMPC.REAL=TEMP.REAL : TEMPC.IMAG=TEMP.IMAG
- TEMP.REAL=TEM2R : TEMP.IMAG=TEM2I
- TEMP1.REAL=Q3R : TEMP1.IMAG=Q3I
- GOSUB 104.100
- TEMPB.REAL=TEMP.REAL : TEMPB.IMAG=TEMP.IMAG
- TEMP.REAL=TEM1R : TEMP.IMAG=TEM1I
- TEMP1.REAL=Q3R : TEMP1.IMAG=Q3I
- GOSUB 104.100
- TEMPD.REAL=TEMP.REAL : TEMPD.IMAG=TEMP.IMAG
- RETURN
- 111.100 REM ***********MTXMPY***********
- A1=A11.REAL : B1=A11.IMAG : C1=A12.REAL : D1=A12.IMAG
- E1=A21.REAL : F1=A21.IMAG : G1=A22.REAL : H1=A22.IMAG
- A2=B11.REAL : B2=B11.IMAG : C2=B12.REAL : D2=B12.IMAG
- E2=B21.REAL : F2=B21.IMAG : G2=B22.REAL : H2=B22.IMAG
- C11.REAL=A1*A2-B1*B2+C1*E2-D1*F2
- C11.IMAG=B1*A2+A1*B2+C1*F2+D1*E2
- C12.REAL=A1*C2-B1*D2+C1*G2-D1*H2
- C12.IMAG=B1*C2+A1*D2+D1*G2+C1*H2
- C21.REAL=A2*E1-B2*F1+E2*G1-F2*H1
- C21.IMAG=A2*F1+B2*E1+E2*H1+F2*G1
- C22.REAL=C2*E1-D2*F1+G1*G2-H1*H2
- C22.IMAG=C2*F1+D2*E1+H1*G2+G1*H2
- RETURN
-