home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / ee2 / intermod.bas < prev    next >
BASIC Source File  |  1987-02-07  |  4KB  |  96 lines

  1. 10 REM ******************************************************************
  2. 20 REM *****   "INTERMOD" Mixer Intermod/Harmonic PROGRAM  **************
  3. 30 REM *****   M.GOLDFARB  VERSION 0             NOV.,1983 **************
  4. 40 REM *****   M.GOLDFARB  VERSION 1 REVISION -  MAR.,1984 **************
  5. 50 REM *****   M.GOLDFARB  VERSION 1 REVISION A  JULY,1984 **************
  6. 60 REM *****   M.GOLDFARB  VERSION 1 REVISION B  AUG.,1984 **************
  7. 70 REM *****   M.GOLDFARB  VERSION 1 REVISION C  AUG.,1985 **************
  8. 80 REM ******************************************************************
  9. 90 CLS     ' Clears Screen (IBM & TRS-80)
  10. 100 PRINT "INTERMOD - MIXER INTERMOD TABLE VER.1 REV.C  M.GOLDFARB AUG 1985"
  11. 105 INPUT "OUTPUT TO PRINTER ?  ( Y , < N > )";Y$:Y$=LEFT$(Y$,1)
  12. 107 IF Y$="Y" OR Y$="y" THEN Y$="Y" ELSE Y$="N"
  13. 110 INPUT"LO Frequency Range in GHz (Low,High)";L1,L2
  14. 115 IF L2<L1 THEN 110
  15. 120 INPUT"RF Frequency Range in GHz (Low,High)";R1,R2
  16. 125 IF R2<R1 THEN 120
  17. 130 INPUT"Output Frequency Range in GHz (Low,High)";I1,I2
  18. 135 IF I2<I1 THEN 130
  19. 140 PRINT
  20. 150 INPUT"Maximum Product Order (n+m)";Q
  21. 160 L=(L1+L2)/2:REM LO Center Freq.:
  22. 170 R=(R1+R2)/2:REM RF Center Freq.
  23. 180 B2=(R2-R1)/(R*2)
  24. 185 A1$="Order     RF     LO     Low Product     High Product   Product in"
  25. 190 B$="(n+m)    (m)    (n)       (mR-nL)          (mR+nL)    Output Band"
  26. 195 C$="##       ##     ##  ###.### to ###.###  ###.### to ###.### \    \"
  27. 200 D$="_________________________________________________________________"
  28. 210 CLS
  29. 220 PRINT"********** Mixer Intermodulation/Harmonic Product Table *********"
  30. 225 PRINT
  31. 226 IF Y$="N" THEN 235
  32. 227 LPRINT"********** Mixer Intermodulation/Harmonic Product Table *********"
  33. 229 LPRINT
  34. 230 LPRINT "LO Frequency Range    :  ";L1;" GHz to ";L2;" GHz"
  35. 231 LPRINT "RF Frequency Range    :  ";R1;" GHz to ";R2;" GHz"
  36. 232 LPRINT "Output Frequency Range: ";I1;" GHz to ";I2;" GHz":LPRINT
  37. 233 LPRINT                                                        
  38. 234 LPRINT A1$:LPRINT B$
  39. 235 PRINT A1$:PRINT B$:PRINT D$
  40. 240 I=8   ' Page Counter 
  41. 250 M=0
  42. 260 N=Q   ' start loop with n= max.order
  43. 320 GOSUB 1000 ' calculate products  for given order "Q"
  44. 330 A$="n": REM test for spur in the output band
  45. 331 HL=0
  46. 332 IF V1>=I1 AND V1<=I2 THEN A$="HIGH"
  47. 334 IF V2>=I1 AND V2<=I2 THEN A$="HIGH"
  48. 336 IF V1>=I1 AND V2<=I2 THEN A$="HIGH"
  49. 338 IF V1<=I1 AND V2>=I2 THEN A$="HIGH"
  50. 339 IF A$="HIGH" THEN HL=1
  51. 340 IF U1>=I1 AND U1<=I2 THEN A$="LOW"
  52. 350 IF U2>=I1 AND U2<=I2 THEN A$="LOW"
  53. 360 IF U1>=I1 AND U2<=I2 THEN A$="LOW"
  54. 362 IF U1<=I1 AND U2>=I2 THEN A$="LOW"
  55. 363 IF A$="LOW" AND HL=1 THEN A$="BOTH"
  56. 364 IF M=1 AND N=1 THEN A$="output"
  57. 366 IF N+M=4 THEN PRINT:I=I-1
  58. 367 IF N+M=4 AND Y$="Y" THEN LPRINT
  59. 370 IF I=0 THEN INPUT" < return> to continue";X$
  60. 371 IF I>0 THEN 380
  61. 372 CLS
  62. 373 PRINT
  63. 374 PRINT A1$:PRINT B$:PRINT D$
  64. 376 PRINT:I=8
  65. 377 IF Y$="Y" THEN LPRINT
  66. 380 PRINT USING C$;N+M,M,N,U1,U2,V1,V2,A$
  67. 382 IF Y$="Y" THEN LPRINT USING C$;N+M,M,N,U1,U2,V1,V2,A$
  68. 385 I=I-1
  69. 390 N=N-1
  70. 395 IF M=0 AND N=0 THEN 410
  71. 400 IF N>=0 THEN 320
  72. 410 M=M+1:N=Q-M
  73. 415 PRINT
  74. 420 IF M<=Q THEN 320
  75. 430 PRINT
  76. 435 IF Y$="y" OR Y$="Y" THEN LPRINT CHR$(12)
  77. 437 INPUT "New Table <N> or Quit <Q>";X$:X$=LEFT$(X$,1)
  78. 440 IF X$="N" OR X$="n" THEN 60
  79. 450 IF X$="Q" OR X$="q" THEN CLS:SYSTEM
  80. 460 PRINT:GOTO 437
  81. 1000 REM *********** Subroutine: CALCSPUR
  82. 1010 IF M*R>=N*L THEN X=1 ELSE X=0
  83. 1015 Y=0
  84. 1020 IF X=0 AND N*L1>M*R2 THEN Y=1
  85. 1030 IF X=1 AND M*R1>N*L2 THEN Y=1 
  86. 1040 IF Y=0 THEN U1=0
  87. 1050 IF Y=1 AND X=0 THEN U1=N*L1-M*R2
  88. 1060 IF Y=1 AND X=1 THEN U1=M*R1-N*L2
  89. 1070 IF X=0 THEN U2=N*L2-M*R1 ELSE U2=M*R2-N*L1
  90. 1080 V1=M*R1+N*L1
  91. 1090 V2=M*R2+N*L2
  92. 1100 IF M=0 THEN U1=N*L1
  93. 1110 IF N=0 THEN U1=M*R1
  94. 1120 RETURN
  95. 32767 END
  96.