home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / rf3 / spur-ibm.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1986-08-18  |  3.5 KB  |  82 lines

  1. 10  CLS: PRINT "TRANSPONDER SPUR SEARCH PROGRAM V2.0M 7/28/86": PRINT
  2. 20  PRINT "      *********************************************
  3. 30  PRINT "      *                                           *
  4. 40  PRINT "      *  BY DR. ALLEN KATZ, CHAIRMAN              *
  5. 50  PRINT "      *  DEPT ELECTRONICS ENGINEERING TECHNOLOGY  *
  6. 60  PRINT "      *  TRENTON STATE COLLEGE, CN550             *
  7. 70  PRINT "      *  TRENTON, NEW JERSEY 8625                 *
  8. 80  PRINT "      *                                           *
  9. 90  PRINT "      *  THE AUTHOR RESERVES THE RIGHTS TO THIS   *
  10. 100  PRINT "      *  PROGRAM; HOWEVER, COPYING AND USE FOR    *
  11. 110  PRINT "      *  EDUCATIONAL PURPOSES IS ENCOURAGED.      *
  12. 120  PRINT "      *                                           *
  13. 130  PRINT "      *  PLEASE REPORT ANY ERRORS OR PROBLEMS     *
  14. 140  PRINT "      *  WITH THIS PROGRAM TO THE AUTHOR.         *
  15. 150  PRINT "      *  TEL (609) 771 2487                       *
  16. 160  PRINT "      *                                           *
  17. 170  PRINT "      *********************************************
  18. 210  PRINT: INPUT "DATE"; D$: INPUT "TITLE"; TL$: PRINT
  19. 220  INPUT "DIRTY L.O. CASE (Y/N)"; Q$: IF Q$="N" THEN INPUT "L.O. FREQ"; FU: LO=FU: LX=1: GOTO 270
  20. 230  INPUT "L.O. FREQ"; LO
  21. 240  INPUT "FUNDEMENTAL FREQ"; FU
  22. 250  P=INT(LO/FU+0.5): U=LO/P: IF U<>FU THEN FU=U: PRINT "NOT FACTOR - USE FUND FREQ ="; FU
  23. 260  INPUT "MAX HARMONIC"; LX
  24. 270  INPUT "LOWER EDGE OUTPUT FREQ"; FL
  25. 280  INPUT "UPPER EDGE OUTPUT FREQ"; FT: FO=FL: DF=FT-FL
  26. 290  INPUT "NUMBER OF CRITCAL PASS BANDS"; NB
  27. 300  FOR K=1 TO NB: PRINT: PRINT "PASS BAND #"; K
  28. 310  INPUT "LOWER EDGE"; LF(K): INPUT "UPPER EDGE"; UF(K): NEXT K
  29. 320  PG=1: PRINT
  30. 330  INPUT "WANT TO LIST OUTPUT BAND (Y/N)"; O$
  31. 340  INPUT "SPECIAL ORDER RESTRICTIONS (Y/N)"; Q$
  32. 350  IF Q$="N" THEN 380
  33. 360  INPUT "MAX ORDER FP"; NJ
  34. 370  INPUT "MAX ORDER SPUR"; NI: NX=NI+NJ: GOTO 390
  35. 380  INPUT "MAX ORDER"; NX: NI=NX: NJ=NX
  36. 390  LPRINT, "PAGE"; PG; SPC(3); TL$
  37. 400  LPRINT: LPRINT : LPRINT: LPRINT:
  38. 410  LPRINT, "TRANSPONDER SPUR SEARCH PROGRAM"; SPC(20); D$
  39. 420  LPRINT: LPRINT, "CRITICAL BANDS": FOR K=1 TO NB
  40. 430  LPRINT, "BAND #"; K; LF(K); " - "; UF(K)
  41. 435  NEXT K
  42. 440  LPRINT: CR=NB+9: FOR L=1 TO LX: FP=FU*L: FG=1
  43. 450  FOR I=1 TO NI: FOR J=1 TO NJ: IF J+I>=NX THEN 760
  44. 460  F1=(FO+FP*J)/I: F2=(FP*J-FO)/I: F3=(FO-FP*J)/I
  45. 470  FOR K=1 TO NB
  46. 480  IF F1+DF/I<LF(K) THEN 570
  47. 490  IF F1<LF(K) THEN LE=LF(K) ELSE LE=F1
  48. 500  IF F1>UF(K) THEN 570
  49. 510  IF F1+DF/I>UF(K) THEN TE=UF(K) ELSE TE=F1+DF/I
  50. 520  IF FG=1 THEN GOSUB 790
  51. 530  IF LO=J*FP THEN LPRINT, "*";
  52. 540  LPRINT, TAB(1); "SPUR EDGES: LOWER"; LE; TAB(29); "UPPER"; TE; TAB(44); "ORDER"; I+J; TAB(53); "SPUR X"; I; TAB(63); "FP X"; J: CR=CR+1
  53. 550  IF O$="N" THEN 570 ELSE FA=LE*I-FP*J: FB=TE*I-FP*J
  54. 560  LPRINT, TAB(1); "OUTPUT BAND: LOWER EDGE"; FA; TAB(35); "UPPER EDGE"; FB: CR=CR+1
  55. 570  IF F2<LF(K) THEN 660
  56. 580  IF F2-DF/I<LF(K) THEN LE=LF(K) ELSE LE=F2-DF/I
  57. 590  IF F2-DF/I>UF(K) THEN 660
  58. 600  IF F2>UF(K) THEN TE=UF(K) ELSE TE=F2
  59. 610  IF FG=1 THEN GOSUB 790
  60. 620  IF LO=J*FP THEN LPRINT, "*";
  61. 630  LPRINT, TAB(1); "SPUR EDGES: LOWER"; LE; TAB(29); "UPPER"; TE; TAB(44); "ORDER"; I+J; TAB(53); "SPUR X"; I; TAB(63); "FP X"; J: CR=CR+1
  62. 640  IF O$="N" THEN 660 ELSE FA=FP*J-TE*I: FB=FP*J-LE*I
  63. 650  LPRINT, TAB(1); "OUTPUT BAND: LOWER EDGE"; FA; TAB(35); "UPPER EDGE"; FB: CR=CR+1
  64. 660  IF F3+DF/I<LF(K) THEN 750
  65. 670  IF F3<LF(K) THEN LE=LF(K) ELSE LE=F3
  66. 680  IF F3>UF(K) THEN 750
  67. 690  IF F3+DF/I>UF(K) THEN TE=UF(K) ELSE TE=F3+DF/I
  68. 700  IF FG=1 THEN GOSUB 790
  69. 710  IF LO=J*FP THEN LPRINT, "*";
  70. 720  LPRINT, TAB(1); "SPUR EDGES: LOWER"; LE; TAB(29); "UPPER"; TE; TAB(44); "ORDER"; I+J; TAB(53); "SPUR X"; I; TAB(63); "FP X"; J: CR=CR+1
  71. 730  IF O$="N" THEN 750 ELSE FA=LE*I+FP*J: FB=TE*I+FP*J
  72. 740  LPRINT, TAB(1); "OUTPUT BAND: LOWER EDGE"; FA; TAB(35); "UPPER EDGE"; FB: CR=CR+1
  73. 750  NEXT K
  74. 760  NEXT J
  75. 765  NEXT I
  76. 770  IF CR>48 THEN PG=PG+1: LPRINT, CHR$(12), "PAGE"; PG; SPC(3); TL$: CR=600
  77. 772  NEXT L
  78. 774  LPRINT, CHR$(12): END
  79. 785  REM ******************* SUB ****************************
  80. 790  LPRINT: LPRINT: LPRINT, "FP = FUND FREQ X"; L; "="; FP, "OUTPUT FREQ BAND"; FL; " - "; FT: LPRINT: FG=0: CR=CR+4
  81. 800  RETURN
  82.