home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / ee3 / yzht-s.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1989-01-22  |  5.2 KB  |  105 lines

  1. 10  PRINT CHR$(26): PRINT "YZHT-S BY A. KATZ, TSC V1.2 2/17/86
  2. 20  REM COMPLEX ARITHMATIC SUBROUTEENS
  3. 30  DIM SR(2,2), SX(2,2), SM(2,2), SA(2,2), R(2,2), X(2,2)
  4. 40  DIM M(2,2), A(2,2): PI=4*ATN(1): DG=180/PI: Z0=50
  5. 50  DEF FNMR(AR,AX,BR,BX)=AR*BR-AX*BX
  6. 60  DEF FNMX(AR,AX,BR,BX)=AR*BX+AX*BR
  7. 70  DEF FNDR(AR,AX,BR,BX)=(AR*BR+AX*BX)/(BR^2+BX^2)
  8. 80  DEF FNDX(AR,AX,BR,BX)=(AX*BR-AR*BX)/(BR^2+BX^2)
  9. 90  DEF FNMG(AR,AX)=SQR(AR^2+AX^2)
  10. 100  DEF FNAG(AR,AX)=DG*(ATN(AX/AR)-(SGN(AR)-1)*PI/2)
  11. 120  DEF FNR(MG,AG)=MG*COS(AG/DG)
  12. 130  DEF FNX(MG,AG)=MG*SIN(AG/DG)
  13. 140  REM PARAMERER CONVERSION PROGRAM
  14. 150  PRINT: PRINT "PROGRAM FOR CALCULATING S FROM T, Z, Y, AND H PARAMETERS"
  15. 160  PRINT: INPUT "CALCULATE S FROM (T, Z, Y OR H)"; A$
  16. 170  IF A$="END" THEN END
  17. 180  PRINT: IF A$="Z" OR A$="Y" OR A$="H" OR A$="T" THEN 190 ELSE 160
  18. 190  PRINT "ANGLES IN DEGREES": PRINT
  19. 200  INPUT "VALUES IN 'POL' OR 'RECT' OR 'FILE' FORM"; Q$: PRINT
  20. 210  IF Q$="POL" THEN 240 ELSE IF Q$="RECT" THEN 300  ELSE IF Q$="FILE" THEN 220 ELSE 200
  21. 220  PRINT: INPUT "PARAMETER FILE NAME"; F$: F$=F$+"."+A$
  22. 230  OPEN "I",#1,F$: FOR I=1 TO 2: FOR J=1 TO 2: INPUT#1,R(I,J),X(I,J),M(I,J),A(I,J): NEXT J: NEXT I: CLOSE#1: GOTO 360
  23. 240  FOR I=1 TO 2: FOR J=1 TO 2
  24. 250  PRINT "MAG OF "; A$; "("; I; ","; J; ")=";: INPUT M(I,J)
  25. 260  PRINT "ANG OF "; A$; "("; I; ","; J; ")=";: INPUT A(I,J)
  26. 270  R(I,J)=FNR(M(I,J),A(I,J)): PRINT "REAL "; A$; "("; I; ","; J; ")="; R(I,J)
  27. 280  X(I,J)=FNX(M(I,J),A(I,J)): PRINT "IMAG. "; A$; "("; I; ","; J; ")="; X(I,J)
  28. 290  PRINT: NEXT: NEXT: GOTO 360
  29. 300  FOR I=1 TO 2: FOR J=1 TO 2
  30. 310  PRINT "REAL OF "; A$; "("; I; ","; J; ")=";: INPUT R(I,J)
  31. 320  PRINT "IMG OF "; A$; "("; I; ","; J; ")=";: INPUT X(I,J)
  32. 330  M(I,J)=FNMG(R(I,J),X(I,J)): PRINT "MAG "; A$; "("; I; ","; J; ")="; M(I,J)
  33. 340  A(I,J)=FNAG(R(I,J),X(I,J)): PRINT "ANGLE "; A$; "("; I; ","; J; ")="; A(I,J)
  34. 350  PRINT: NEXT: NEXT
  35. 360  IF A$="T" THEN 840 ELSE IF A$="H" THEN 390 ELSE IF A$="Y" THEN SF=Z0 ELSE SF=1/Z0
  36. 370  FOR I=1 TO 2: FOR J=1 TO 2: R(I,J)=SF*R(I,J): X(I,J)=SF*X(I,J)
  37. 380  NEXT: NEXT: GOTO 400
  38. 390  R(1,1)=R(1,1)/Z0: R(2,2)=Z0*R(2,2): X(1,1)=X(1,1)/Z0: X(2,2)=X(2,2)*Z0
  39. 400  IF A$="Z" THEN 420 ELSE IF A$="Y" THEN 560 ELSE IF A$="H"   THEN 700 ELSE 160
  40. 410  REM Z PARAMETER CALC
  41. 420  NR=FNMR((-1+R(1,1)),X(1,1),(1+R(2,2)),X(2,2))-FNMR(R(1,2),X(1,2),R(2,1),X(2,1))
  42. 430  NX=FNMX((-1+R(1,1)),X(1,1),(1+R(2,2)),X(2,2))-FNMX(R(1,2),X(1,2),R(2,1),X(2,1))
  43. 440  DR=FNMR((1+R(1,1)),X(1,1),(1+R(2,2)),X(2,2))-FNMR(R(1,2),X(1,2),R(2,1),X(2,1))
  44. 450  DX=FNMX((1+R(1,1)),X(1,1),(1+R(2,2)),X(2,2))-FNMX(R(1,2),X(1,2),R(2,1),X(2,1))
  45. 460  SR(1,1)=FNDR(NR,NX,DR,DX): SX(1,1)=FNDX(NR,NX,DR,DX)
  46. 470  NR=2*R(1,2): NX=2*X(1,2)
  47. 480  SR(1,2)=FNDR(NR,NX,DR,DX): SX(1,2)=FNDX(NR,NX,DR,DX)
  48. 490  NR=2*R(2,1): NX=2*X(2,1)
  49. 500  SR(2,1)=FNDR(NR,NX,DR,DX): SX(2,1)=FNDX(NR,NX,DR,DX)
  50. 510  NR=FNMR((1+R(1,1)),X(1,1),(-1+R(2,2)),X(2,2))-FNMR(R(1,2),X(1,2),R(2,1),X(2,1))
  51. 520  NX=FNMX((1+R(1,1)),X(1,1),(-1+R(2,2)),X(2,2))-FNMX(R(1,2),X(1,2),R(2,1),X(2,1))
  52. 530  SR(2,2)=FNDR(NR,NX,DR,DX): SX(2,2)=FNDX(NR,NX,DR,DX)
  53. 540  GOSUB 960: GOTO 160
  54. 550  REM Y PARAMETER CALC
  55. 560  NR=FNMR((1+R(2,2)),X(2,2),(1-R(1,1)),-X(1,1))+FNMR(R(1,2),X(1,2),R(2,1),X(2,1))
  56. 570  NX=FNMX((1+R(2,2)),X(2,2),(1-R(1,1)),-X(1,1))+FNMX(R(1,2),X(1,2),R(2,1),X(2,1))
  57. 580  DR=FNMR((1+R(1,1)),X(1,1),(1+R(2,2)),X(2,2))-FNMR(R(1,2),X(1,2),R(2,1),X(2,1))
  58. 590  DX=FNMX((1+R(1,1)),X(1,1),(1+R(2,2)),X(2,2))-FNMX(R(1,2),X(1,2),R(2,1),X(2,1))
  59. 600  SR(1,1)=FNDR(NR,NX,DR,DX): SX(1,1)=FNDX(NR,NX,DR,DX)
  60. 610  NR=-2*R(1,2): NX=-2*X(1,2)
  61. 620  SR(1,2)=FNDR(NR,NX,DR,DX): SX(1,2)=FNDX(NR,NX,DR,DX)
  62. 630  NR=-2*R(2,1): NX=-2*X(2,1)
  63. 640  SR(2,1)=FNDR(NR,NX,DR,DX): SX(2,1)=FNDX(NR,NX,DR,DX)
  64. 650  NR=FNMR((1+R(1,1)),X(1,1),(1-R(2,2)),-X(2,2))+FNMR(R(1,2),X(1,2),R(2,1),X(2,1))
  65. 660  NX=FNMX((1+R(1,1)),X(1,1),(1-R(2,2)),-X(2,2))+FNMX(R(1,2),X(1,2),R(2,1),X(2,1))
  66. 670  SR(2,2)=FNDR(NR,NX,DR,DX): SX(2,2)=FNDX(NR,NX,DR,DX)
  67. 680  GOSUB 960: GOTO 160
  68. 690  REM H PARAMETER CALC
  69. 700  NR=FNMR((-1+R(1,1)),X(1,1),(1+R(2,2)),X(2,2))-FNMR(R(1,2),X(1,2),R(2,1),X(2,1))
  70. 710  NX=FNMX((-1+R(1,1)),X(1,1),(1+R(2,2)),X(2,2))-FNMX(R(1,2),X(1,2),R(2,1),X(2,1))
  71. 720  DR=FNMR((1+R(1,1)),X(1,1),(1+R(2,2)),X(2,2))-FNMR(R(1,2),X(1,2),R(2,1),X(2,1))
  72. 730  DX=FNMX((1+R(1,1)),X(1,1),(1+R(2,2)),X(2,2))-FNMX(R(1,2),X(1,2),R(2,1),X(2,1))
  73. 740  SR(1,1)=FNDR(NR,NX,DR,DX): SX(1,1)=FNDX(NR,NX,DR,DX)
  74. 750  NR=2*R(1,2): NX=2*X(1,2)
  75. 760  SR(1,2)=FNDR(NR,NX,DR,DX): SX(1,2)=FNDX(NR,NX,DR,DX)
  76. 770  NR=-2*R(2,1): NX=-2*X(2,1)
  77. 780  SR(2,1)=FNDR(NR,NX,DR,DX): SX(2,1)=FNDX(NR,NX,DR,DX)
  78. 790  NR=FNMR((1-R(2,2)),-X(2,2),(1+R(1,1)),X(1,1))+FNMR(R(1,2),X(1,2),R(2,1),X(2,1))
  79. 800  NX=FNMX((1-R(2,2)),-X(2,2),(1+R(1,1)),X(1,1))+FNMX(R(1,2),X(1,2),R(2,1),X(2,1))
  80. 810  SR(2,2)=FNDR(NR,NX,DR,DX): SX(2,2)=FNDX(NR,NX,DR,DX)
  81. 820  GOSUB 960: GOTO 160
  82. 830  REM T PARAMETER CALC
  83. 840  SR(1,1)=FNDR(R(1,2),X(1,2),R(2,2),X(2,2))
  84. 850  SX(1,1)=FNDX(R(1,2),X(1,2),R(2,2),X(2,2))
  85. 860  NR=FNMR(R(1,1),X(1,1),R(2,2),X(2,2))-FNMR(R(1,2),X(1,2),R(2,1),X(2,1))
  86. 870  NX=FNMX(R(1,1),X(1,1),R(2,2),X(2,2))-FNMX(R(1,2),X(1,2),R(2,1),X(2,1))
  87. 880  SR(1,2)=FNDR(NR,NX,R(2,2),X(2,2))
  88. 890  SX(1,2)=FNDX(NR,NX,R(2,2),X(2,2))
  89. 900  SR(2,1)=FNDR(1,0,R(2,2),X(2,2))
  90. 910  SX(2,1)=FNDX(1,0,R(2,2),X(2,2))
  91. 920  SR(2,2)=-FNDR(R(2,1),X(2,1),R(2,2),X(2,2))
  92. 930  SX(2,2)=-FNDX(R(2,1),X(2,1),R(2,2),X(2,2))
  93. 940  GOSUB 960: GOTO 160
  94. 950  REM OUTPUT SUBROUTEEN
  95. 960  FOR I=1 TO 2: FOR J=1 TO 2: PRINT
  96. 970  PRINT "REAL S("; I; ","; J; ")="; SR(I,J)
  97. 980  PRINT "IMG S("; I; ","; J; ")="; SX(I,J)
  98. 990  SM(I,J)=FNMG(SR(I,J),SX(I,J)): SA(I,J)=FNAG(SR(I,J),SX(I,J))
  99. 1000  PRINT "MAG S("; I; ","; J; ")="; SM(I,J)
  100. 1010  PRINT "ANG S("; I; ","; J; ")="; SA(I,J): NEXT: NEXT
  101. 1020  PRINT: INPUT "WANT TO SAVE FILE (Y OR N)"; Q$
  102. 1030  IF Q$="N" THEN RETURN ELSE IF Q$="END" THEN END
  103. 1040  INPUT "FILE NAME"; F$: F$=F$+".S": OPEN "O",#1,F$ 
  104. 1050  FOR I=1 TO 2: FOR J=1 TO 2: PRINT#1,SR(I,J),SX(I,J),SM(I,J),SA(I,J): NEXT J: NEXT I: CLOSE #1: RETURN
  105.