home *** CD-ROM | disk | FTP | other *** search
- 10 REM This program will calculate 3rd order, 5th order, 7th order, and
- 20 REM three transmitter intermodulation products. The hit width is
- 30 REM variable to 999Khz. Enter a zero (0) when finished enteriing
- 40 REM transmitter or receiver frequencies.
- 50 REM '
- 60 REM '
- 70 REM THIS PROGRAM IS OF UNKNOWN ORIGIN.
- 71 REM '
- 80 REM This program has been modified to it's present state by
- 90 REM Jerry Waclawski
- 100 REM 4508 Mark Ave.
- 110 REM Las Vegas, NV 89108
- 120 REM '
- 130 REM '
- 140 REM '
- 150 REM *** INPUT DATA TRANSMITTERS ***
- 160 '
- 170 '
- 180 DEFDBL R,T
- 190 A = 0
- 200 DIM T(100)
- 210 PRINT CHR$(12)
- 220 PRINT TAB(33);"I N T E R M O D"
- 230 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
- 240 INPUT "ENTER SITE NAME: ",S$
- 250 PRINT
- 260 INPUT "ENTER DATE (MM/DD/YY): ",D$
- 270 PRINT
- 280 INPUT "ENTER HIT WINDOW WIDTH IN KHZ: ",W
- 290 PRINT
- 300 W = W/1000
- 310 A = A + 1
- 320 INPUT "ENTER TRANSMIT FREQUENCY: ",T(A)
- 330 IF T(A) = 0 THEN 390
- 340 IF T(A) > 999 THEN 350 ELSE 360
- 350 PRINT CHR$(7);"TX FREQUENCY MUST BE LESS THEN 999 MHZ.":GOTO 320
- 360 FRMT$= "T ## ###.####"
- 370 PRINT USING FRMT$;A,T(A)
- 380 GOTO 310
- 390 INPUT "DO YOU WANT A PRINTOUT? (Y/N)",A$
- 400 IF A$ = "Y" THEN GOSUB 690
- 410 INPUT "DO YOU WANT TO CORRECT OR ADD XMITS? (Y/N)",A$
- 420 IF A$ <> "Y" THEN 460
- 430 INPUT "ENTER TRANSMITTER NUMBER TO CHANGE",A
- 440 INPUT "ENTER NEW TX FREQ.",T(A)
- 450 GOTO 410
- 460 INPUT "DO YOU WANT A PRINTOUT AGAIN? (Y/N)",A$
- 470 IF A$ = "Y" THEN GOSUB 690 ELSE 560
- 480 PRINT CHR$(12)
- 490 '
- 500 '
- 510 '
- 520 '
- 530 REM *** START TRANSMIT BUBBLESORT ***
- 540 '
- 550 '
- 560 A = 0 'RESET A
- 570 F = 1 'SET FLAG
- 580 A = A + 1 'STEP A UP ONE
- 590 IF T(A+1) = 0 THEN 620 'CHECK IF OUT OF DATA
- 600 IF T(A) > T(A+1) THEN 640 'GOTO SWAP ROUTINE
- 610 GOTO 580 'FETCH ANOTHER
- 620 IF F = 0 THEN 560 'OUT OF DATA GO AGAIN
- 630 GOTO 840 'OUT OF DATA AND FLAG SET
- 640 X = T(A) 'SAVE T(A)
- 650 T(A) = T(A+1) 'SWAP
- 660 T(A+1) = X 'SWAP
- 670 F=0 'RESET FLAG
- 680 GOTO 580 'FETCH ANOTHER
- 690 LPRINT
- 700 LPRINT "T R A N S M I T T E R S";TAB(37);"SITE: ";S$;TAB(66);"DATE: ";D$
- 710 LPRINT
- 720 A = 0
- 730 A = A+1
- 740 IF T(A)=0 THEN RETURN
- 750 LPRINT USING " T ## ###.####";A,T(A)
- 760 GOTO 730
- 770 '
- 780 '
- 790 '
- 800 '
- 810 REM *** INPUT DATA RECEIVERS ***
- 820 '
- 830 '
- 840 D=0
- 850 DIM R(100)
- 860 PRINT CHR$(12)
- 870 D=D+1
- 880 INPUT "ENTER RECEIVER FREQ: ",R(D)
- 890 IF R(D)=0 THEN 950
- 900 IF R(D) > 999 THEN 910 ELSE 920
- 910 PRINT CHR$(7);"RX FREQUENCY MUST BE LESS THEN 999 MHZ":GOTO 880
- 920 FRMT$= "R ## ###.####"
- 930 PRINT USING FRMT$;D,R(D)
- 940 GOTO 870
- 950 INPUT "DO YOU WANT A PRINTOUT? (Y/N)",A$
- 960 IF A$="Y" THEN GOSUB 1250
- 970 INPUT "DO YOU WANT TO CORRECT OR ADD RECS? (Y/N)",A$
- 980 IF A$ <> "Y" THEN 1020
- 990 INPUT "ENTER RECEIVER NUMBER TO CHANGE OR ADD",D
- 1000 INPUT "ENTER NEW RECEIVER FREQUENCY",R(D)
- 1010 GOTO 970
- 1020 INPUT "DO YOU WANT A PRINTOUT AGAIN? (Y/N)",A$
- 1030 IF A$="Y" THEN GOSUB 1250 ELSE 1120
- 1040 PRINT CHR$(12)
- 1050 '
- 1060 '
- 1070 '
- 1080 '
- 1090 REM *** START RECEIVE BUBBLESORT ***
- 1100 '
- 1110 '
- 1120 D = 0 'RESET D
- 1130 F = 1 'SET FLAG
- 1140 D = D+1 'STEP D UP ONE
- 1150 IF R(D+1) = 0 THEN 1180 'CHECK IF OUT OF DATA
- 1160 IF R(D) > R(D+1) THEN 1200 'GOTO SWAP ROUTINE
- 1170 GOTO 1140 'FETCH ANOTHER
- 1180 IF F=0 THEN 1120 'OUT OF DATA GO AGAIN
- 1190 GOTO 1400 'OUT OF DATA AND FLAG SET
- 1200 X=R(D) 'SAVE R(D)
- 1210 R(D) = R(D+1) 'SWAP
- 1220 R(D+1) = X 'SWAP
- 1230 F = 0 'RESET FLAG
- 1240 GOTO 1140 'FETCH ANOTHER
- 1250 LPRINT
- 1260 LPRINT "R E C E I V E R S ";TAB(37);"SITE: ";S$;TAB(66);"DATE: ";D$
- 1270 LPRINT
- 1280 D = 0
- 1290 D = D+1
- 1300 IF R(D) = 0 THEN RETURN
- 1310 LPRINT USING "R ## ###.####";D,R(D)
- 1320 GOTO 1290
- 1330 '
- 1340 '
- 1350 '
- 1360 '
- 1370 REM *** START IM CALCULATIONS ***
- 1380 '
- 1390 '
- 1400 K = 0
- 1410 K = K+1
- 1420 IF K = 5 THEN 1900
- 1430 ON K GOSUB 1550,1670,1680,1750
- 1440 A = 1
- 1450 E = 1
- 1460 E = E+1
- 1470 IF E = A THEN 1500
- 1480 ON K GOSUB 1820,1840,1860,1880
- 1490 GOSUB 2200
- 1500 IF T(E) <> 0 THEN 1460
- 1510 IF T(A) = 0 THEN 1410
- 1520 A = A+1
- 1530 E =1
- 1540 GOTO 1470
- 1550 LPRINT CHR$(12)
- 1560 GOSUB 2380
- 1570 LPRINT
- 1580 LPRINT TAB(14);" I N T E R M O D P R O G R A M "; "(+/-";W*1000;"KHZ)"
- 1590 LPRINT:LPRINT
- 1600 LPRINT "SITE: ";S$;TAB(58);"DATE: ";D$
- 1610 LPRINT:LPRINT:LPRINT
- 1620 GOSUB 2380
- 1630 LPRINT TAB(25);"THIRD ORDER INTERMOD PRODUCTS";TAB(64);"+/-";W*1000;"Khz"
- 1640 LPRINT:LPRINT
- 1650 LPRINT "Receiver 2X Trans Trans IM Freq Error"
- 1660 LPRINT
- 1670 RETURN
- 1680 LPRINT:LPRINT:LPRINT
- 1690 GOSUB 2380
- 1700 LPRINT TAB(25);"FIFTH ORDER INTERMOD PRODUCTS";TAB(64);"+/-";W*1000;"Khz"
- 1710 LPRINT
- 1720 LPRINT"Receiver 3X Trans 2X Trans IM Freq Error"
- 1730 LPRINT
- 1740 RETURN
- 1750 LPRINT:LPRINT:LPRINT
- 1760 GOSUB 2380
- 1770 LPRINT TAB(24);"SEVENTH ORDER INTERMOD PRODUCTS";TAB(64);"+/-";W*1000;"Khz"
- 1780 LPRINT
- 1790 LPRINT"Receiver 4X Trans 3X Trans IM Freq Error"
- 1800 LPRINT
- 1810 RETURN
- 1820 G = T(A) + T(A) - T(E)
- 1830 RETURN
- 1840 G = T(A) + T(A) +T(E)
- 1850 RETURN
- 1860 G = T(A) + T(A) + T(A) - T(E) - T(E)
- 1870 RETURN
- 1880 G = T(A) + T(A) + T(A) + T(A) - T(E) - T(E) - T(E)
- 1890 RETURN
- 1900 LPRINT:LPRINT:LPRINT
- 1910 GOSUB 2380
- 1920 LPRINT TAB(21);"THREE TRANSMITTER THIRD ORDER PRODUCTS";TAB(64);"+/-";W*1000;"Khz"
- 1930 LPRINT
- 1940 LPRINT "Receiver Trans Trans Trans IM Freq Error"
- 1950 LPRINT
- 1960 A = 1
- 1970 B = 2
- 1980 C = 2
- 1990 C = C+1
- 2000 IF C = A OR C = B THEN 2030
- 2010 G = T(A) + T(B) - T(C)
- 2020 GOSUB 2200
- 2030 IF T(C+1) <> 0 THEN 1990
- 2040 IF T(B+1) = 0 THEN 2080
- 2050 B = B+1
- 2060 C = 1
- 2070 GOTO 2000
- 2080 IF T(A+2) = 0 THEN 2410
- 2090 A = A+1
- 2100 B = A+1
- 2110 C = 1
- 2120 GOTO 2000
- 2130 '
- 2140 '
- 2150 '
- 2160 '
- 2170 REM *** COMPARE SUBROUTINES ***
- 2180 '
- 2190 '
- 2200 D = 0
- 2210 D=D+1
- 2220 IF R(D) = 0 THEN 2280
- 2230 H = (G-R(D))
- 2240 J = ABS(H)
- 2250 IF J >(W+.001)THEN 2210
- 2260 ON K GOSUB 2290,2320,2290,2290,2350
- 2270 GOTO 2210
- 2280 RETURN
- 2290 FRMT$= "###.#### = ###.#### - ###.#### ###.#### #### Khz"
- 2300 LPRINT USING FRMT$;R(D),T(A),T(E),G,H*1000
- 2310 RETURN
- 2320 FRMT$="###.#### - ###.#### ###.#### ####Khz"
- 2330 LPRINT USING FRMT$;R(D),T(A),T(E),G,H*1000
- 2340 RETURN
- 2350 FRMT$="###.#### = ###.#### + ###.#### - ###.#### ###.#### ####Khz"
- 2360 LPRINT USING FRMT$;R(D),T(A),T(B),T(C),G,H*1000
- 2370 RETURN
- 2380 FOR X=1 TO 79:LPRINT "*";:NEXT X
- 2390 RETURN
- 2400 LPRINT:LPRINT
- 2410 LPRINT "END OF PROGRAM----BYE FOR NOW"
- 2420 LPRINT CHR$(12)
- 2430 END