home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HAM Radio 3
/
hamradioversion3.0examsandprograms1992.iso
/
misc
/
ham&el#3
/
intermd2.bas
< prev
next >
Wrap
BASIC Source File
|
1984-09-05
|
5KB
|
145 lines
1000 '** Intermod Run
1010 '** Variables: a,b,c,d,e,f,g,h,j,k,r,t,x,y,a$,b$
1020 U1$="###.####\ \###.####\ \###.#### #.### MHz"
1030 U2$="###.####\ \###.####\ \###.####\ \###.#### #.### MHz"
1040 REM
1050 A = 0
1060 DIM T(100)
1070 CLS
1080 PRINT " I N T E R M O D"
1090 A = A + 1
1100 INPUT "Enter Transmitter ";T(A)
1110 IF T(A)=0 GOTO 1140
1120 PRINT USING "\\ ## ###.####";"T",A,T(A)
1130 GOTO 1090
1140 INPUT "Do you want a printout ? Enter (Y) (N)";A$
1150 IF A$="Y" THEN GOSUB 1370
1160 INPUT "Do you want to correct or add any transmitters ? (Y) (N)";A$
1170 IF A$<>"Y" GOTO 1210
1180 PRINT "Enter transmitter # to change or add(x)";A
1190 INPUT "Enter new transmitter frequency";T(A)
1200 GOTO 1160
1210 INPUT "Do you want a printout again ? (Y) (N)";A$
1220 IF A$="Y" THEN GOSUB 1370
1230 ' START Transmitter bubble sort
1240 A=0
1250 F=1 ' Set flag
1260 A=A+1 ' Step a up one
1270 IF T(A+1)=0 GOTO 1300 ' Check for out of data
1280 IF T(A)>T(A+1) GOTO 1320 ' Go to switch
1290 GOTO 1260 ' Fetch another
1300 IF F=0 GOTO 1240 ' Out of data, go again
1310 GOTO 1430 ' Out of data and flag set
1320 X=T(A) ' Save t(a)
1330 T(A)=T(A+1) ' Swap
1340 T(A+1)=X ' Swap
1350 F=0 ' Reset flag
1360 GOTO 1260 ' Fetch another
1370 LPRINT CHR$(12);TAB(5);"Transmitters";CHR$(10)
1380 A=0
1390 A=A+1
1400 IF T(A)=0 THEN RETURN
1410 LPRINT USING "\\ ## ###.####";"t",A,T(A)
1420 GOTO 1390
1430 D=0 ' Input data: Receivers
1440 DIM R(100)
1450 CLS
1460 D = D + 1
1470 INPUT "Enter Receiver ";R(D)
1480 IF R(D)=0 GOTO 1510
1490 PRINT USING "\\ ## ###.####";"R",D,R(D)
1500 GOTO 1460
1510 INPUT "Do you want a printout ? Enter (Y) (N)";A$
1520 IF A$="Y" THEN GOSUB 1740
1530 INPUT "Do you want to correct or add any Receivers ? (Y) (N)";A$
1540 IF A$<>"Y" GOTO 1580
1550 PRINT "Enter Receiver # to change or add(x)";D
1560 INPUT "Enter new Receiver frequency";R(D)
1570 GOTO 1530
1580 INPUT "Do you want a printout again ? (Y) (N)";A$
1590 IF A$="Y" THEN GOSUB 1740
1600 ' START Receiver bubble sort"
1610 D=0
1620 F=1 ' Set flag
1630 D=D+1 ' Step d up one
1640 IF R(D+1)=0 GOTO 1670 ' Check for out of data
1650 IF R(D)>R(D+1) GOTO 1690 ' Go to switch
1660 GOTO 1630 ' Fetch another
1670 IF F=0 GOTO 1610 ' Out of data, go again
1680 GOTO 1800 ' Out of data and flag set
1690 X=R(D) ' Save r(d)
1700 R(D)=R(D+1) ' Swap
1710 R(D+1)=X ' Swap
1720 F=0 ' Reset flag
1730 GOTO 1630 ' Fetch another
1740 LPRINT CHR$(12);TAB(5);"Receivers";CHR$(10)
1750 D=0
1760 D=D+1
1770 IF R(D)=0 THEN RETURN
1780 LPRINT USING "\\ ## ###.####";"R",D,R(D)
1790 GOTO 1760
1800 K=0 ' Start IM calculations
1810 K=K+1
1820 IF K=4 GOTO 2100
1830 ON K GOSUB 1950,1980,2010
1840 A=1
1850 E=1
1860 E=E+1
1870 IF E=A GOTO 1900
1880 ON K GOSUB 2040,2060,2080
1890 GOSUB 2290
1900 IF T(E)<>0 GOTO 1860
1910 IF T(A)=0 GOTO 1810
1920 A=A+1
1930 E=1
1940 GOTO 1870
1950 LPRINT CHR$(10);" Third order INTERMOD products";CHR$(10)
1960 LPRINT " Receiver 2X Trans Trans +/- "
1970 RETURN
1980 LPRINT CHR$(10);" Fifth order INTERMOD products";CHR$(10)
1990 LPRINT " Receiver 3X Trans 2X trans +/-"
2000 RETURN
2010 LPRINT CHR$(10);" Seventh order INTERMOD Products";CHR$(10)
2020 LPRINT " Receiver 4X Trans 3X Trans +/-"
2030 RETURN
2040 G=T(A)+T(A)-T(E)
2050 RETURN
2060 G=T(A)+T(A)+T(A)-T(E)-T(E)
2070 RETURN
2080 G=T(A)+T(A)+T(A)+T(A)-T(E)-T(E)-T(E)
2090 RETURN
2100 LPRINT CHR$(10);" Three Transmitter, 3rd order products";CHR$(10)
2110 LPRINT " Receiver Trans Trans Trans +/-"
2120 A=1
2130 B=2
2140 C=2
2150 C=C+1
2160 IF C=A OR C=B GOTO 2190
2170 G=T(A)+T(B)-T(C)
2180 GOSUB 2290
2190 IF T(C+1)<>0 GOTO 2150
2200 IF T(B+1)=0 GOTO 2240
2210 B=B+1
2220 C=1
2230 GOTO 2160
2240 IF T(A+2)=0 GOTO 2420
2250 A=A+1
2260 B=A+1
2270 C=1
2280 GOTO 2160
2290 D=0 ' Compare subroutines
2300 REM
2310 REM
2320 D=D+1
2330 IF R(D)=0 GOTO 2380
2340 H=(G-R(D))
2350 J=ABS(H)
2360 IF J>.0125 GOTO 2320
2370 ON K GOSUB 2390,2390,2390,2410
2380 RETURN
2390 LPRINT USING U1$;R(D)," =",T(A)," -",T(E),H
2400 RETURN
2410 LPRINT USING U2$;R(D)," =",T(A)," +",T(B)," -",T(C),H
2420 SYSTEM
2430 END