10 KEY OFF:CLS:CLOSE 20 DEFINT A-Z 30 ' 40 'READ IN ALPHANUMERIC CONVERSION ARRAY 50 DIM AP(26) 60 FOR X= 1 TO 26 70 READ AP(X) 80 NEXT X 90 ' 100 'OPEN SERIAL PORT 110 OPEN "COM1:1200,N,8,1,CS,DS,RS,CD" AS #1 120 LOCATE 5,18:PRINT"TEN-TEC PARAGON SERIAL INTERFACE CONTROL PROGRAM" 130 LOCATE 8,31:PRINT "COPYRIGHT 1988" 140 LOCATE 9,37:PRINT "BY" 150 LOCATE 10,33:PRINT "TEN-TEC,INC." 160 LOCATE 13,32:PRINT "IBM VERSION 1.1":LOCATE 15,34:PRINT"MARCH 22,1989":GOSUB 3150 170 ' 180 'CLEAR OUT MEMORY TABLE ARRAY 190 DIM F1$(63),F2$(63),TG$(63),MD$(63),CF$(63),CH$(63) 200 FOR Q=0 TO 62 210 F1$(Q)="":F2$(Q)="":TG$(Q)="":MD$(Q)="":CF$(Q)="" 220 NEXT Q 230 ' 240 'PRINT MAIN MENU AND GET PARAGON STATUS 250 GOSUB 560 260 GOSUB 10090 270 C$=INKEY$:IF C$="" GOTO 270 280 IF LEN(C$)=2 THEN C$=RIGHT$(C$,1):GOTO 440 290 LOCATE 22,50:PRINT C$ 300 IF C$="1" THEN GOTO 780 310 IF C$="2" THEN GOTO 980 320 IF C$="3" THEN GOTO 1300 330 IF C$="4" THEN GOTO 5430 340 IF C$="5" THEN GOTO 3270 350 IF C$="6" THEN GOTO 3730 360 IF C$="7" THEN GOTO 3910 370 IF C$="8" THEN GOTO 1530 380 IF C$="9" THEN GOTO 5930 390 IF C$="C" THEN GOTO 500 400 IF C$="D" THEN GOTO 8180 410 IF C$="E" THEN GOTO 10130 420 IF C$="L" THEN GOTO 8720 430 IF C$="S" THEN GOTO 9790 435 IF C$="X" THEN SYSTEM 440 IF C$=CHR$(75) THEN GOTO 3170 ELSE 450 IF C$=CHR$(77) THEN GOTO 3220 ELSE 460 GOTO 250 470 ' 480 'DATA FOR ALPHANUMERIC CONVERSION ARRAY 490 DATA 76,77,78,79,80,81,82,83,84,85,86,72,73,66,62,67,63,68,59,69,60,58,70,65,75,74 500 D$="=" 510 PRINT #1,D$ 520 GOSUB 2170 530 GOTO 250 540 END 550 ' 560 'MAIN MENU PRINTOUT 570 CLS:LOCATE 1,30 580 PRINT "MAIN MENU" 590 LOCATE 2,25:PRINT "1---ENTER FREQUENCY" 600 LOCATE 3,25:PRINT "2---CHANGE MODE" 610 LOCATE 4,25:PRINT "3---CHANGE CRYSTAL FILTER" 620 LOCATE 5,25:PRINT "4---ENTER ALPHA TAG" 630 LOCATE 6,25:PRINT "5---CHANGE AUX. DISPLAY 640 LOCATE 7,25:PRINT "6---VFO FUNCTIONS" 650 LOCATE 8,25:PRINT "7---MEMORY FUNCTIONS 660 LOCATE 9,25:PRINT "8---DISPLAY RADIO STATUS 670 LOCATE 10,25:PRINT "9---AUX. FUNCTIONS 680 LOCATE 12,25:PRINT "C---CLEAR COMMAND" 690 LOCATE 13,25:PRINT "D---DISPLAY PARAGON MEMORY TABLE 700 LOCATE 14,25:PRINT "E---EDIT MEMORY TABLE" 710 LOCATE 15,25:PRINT "L---LOAD ALL PARAGON MEMORIES FROM DISK 720 LOCATE 16,25:PRINT "S---SAVE ALL PARAGON MEMORIES TO DISK 725 LOCATE 17,25:PRINT "X---EXIT TO DOS 730 LOCATE 19,20:PRINT "LEFT CURSOR---FREQUENCY TUNE DOWN" 740 LOCATE 20,20:PRINT "RIGHT CURSOR---FREQUENCY TUNE UP" 750 LOCATE 22,25:PRINT "SELECT DESIRED FUNCTION?" 760 RETURN 770 ' 780 'FREQUENCY ENTRY ROUTINE 790 CLS:LOCATE 17,20:PRINT "CURRENT FREQUENCY= ";F1$;".";F2$,"MHZ" 800 K=0 810 LOCATE 20,20:INPUT "ENTER FREQUENCY IN MHZ: ";FM$ 820 IF FM$="" THEN GOTO 250 830 X=LEN (FM$) 840 FOR N=1 TO X 850 D$=MID$(FM$,N,1) 860 IF D$="."THEN D$="W":K=1 ELSE 870 IF K>5 THEN GOTO 250 880 PRINT #1,D$ 890 IF K>0 THEN K=K+1 900 GOSUB 2170 910 NEXT N 920 IF K<6 THEN GOTO 940 930 GOTO 250 940 D$="@":PRINT #1,D$ 950 GOSUB 2170 960 GOTO 250 970 ' 980 'MODE CHANGE ROUTINE 990 CLS:LOCATE 4,30:PRINT "MODE SELECT MENU" 1000 LOCATE 6,30:PRINT "CURRENT MODE= ";MD$ 1010 LOCATE 8,30:PRINT "1---TUNE" 1020 LOCATE 9,30:PRINT "2---CW" 1030 LOCATE 10,30:PRINT "3---USB" 1040 LOCATE 11,30:PRINT "4---LSB" 1050 LOCATE 12,30:PRINT "5---AM" 1060 LOCATE 13,30:PRINT "6---FM" 1070 LOCATE 14,30:PRINT "7---RTTY" 1080 LOCATE 16,25:PRINT "M---RETURN TO MAIN MENU" 1090 LOCATE 18,25:PRINT "SELECT DESIRED MODE? " 1100 C$=INKEY$:IF C$="" GOTO 1100 1110 LOCATE 18,48:PRINT C$ 1120 IF C$="1" THEN D$="Q":GOTO 1210 ELSE 1130 IF C$="2" THEN D$="P":GOTO 1210 ELSE 1140 IF C$="3" THEN D$="O":GOTO 1210 ELSE 1150 IF C$="4" THEN D$="N":GOTO 1210 ELSE 1160 IF C$="5" THEN D$="M":GOTO 1210 ELSE 1170 IF C$="6" THEN D$="L":GOTO 1210 ELSE 1180 IF C$="7" THEN D$="X":DD$="P":GOTO 1240 ELSE 1190 IF C$="M" THEN GOTO 250 ELSE 1200 LOCATE 18,25:PRINT "WRONG NUMBER, TRY AGAIN ":GOSUB 3150:GOTO 1090 1210 PRINT #1,D$ 1220 GOSUB 2170 1230 GOTO 250 1240 PRINT #1,D$ 1250 GOSUB 2170 1260 PRINT #1,DD$ 1270 GOSUB 2170 1280 GOTO 250 1290 ' 1300 'CRYSTAL FILTER SELECT ROUTINE 1310 CLS:LOCATE 4,25:PRINT "CRYSTAL FILTER SELECT MENU" 1320 LOCATE 6,30:PRINT "CURRENT FILTER= ";CF$ 1330 LOCATE 8,30:PRINT "1---6.0 KHZ" 1340 LOCATE 9,30:PRINT "2---2.4 KHZ" 1350 LOCATE 10,30:PRINT "3---1.8 KHZ" 1360 LOCATE 11,30:PRINT "4---.50 KHZ" 1370 LOCATE 12,30:PRINT "5---.25 KHZ" 1380 LOCATE 14,25:PRINT "M---RETURN TO MAIN MENU" 1390 LOCATE 18,25:PRINT "SELECT DESIRED FILTER? " 1400 C$=INKEY$:IF C$="" GOTO 1400 1410 LOCATE 18,48:PRINT C$ 1420 IF C$="1" THEN D$="R":GOTO 1490 ELSE 1430 IF C$="2" THEN D$="S":GOTO 1490 ELSE 1440 IF C$="3" THEN D$="T":GOTO 1490 ELSE 1450 IF C$="4" THEN D$="U":GOTO 1490 ELSE 1460 IF C$="5" THEN D$="V":GOTO 1490 ELSE 1470 IF C$="M" THEN GOTO 250 ELSE 1480 LOCATE 18,25:PRINT "WRONG NUMBER, TRY AGAIN ":GOSUB 3150:GOTO 1390 1490 PRINT #1,D$ 1500 GOSUB 2170 1510 GOTO 250 1520 ' 1530 'RADIO STATUS DISPLAY ROUTINE 1540 CLS:LOCATE 10,20:PRINT "GETTING COMPLETE PARAGON STATUS":GOSUB 1550:GOTO 1910 1550 D$="\" 1560 PRINT #1,D$ 1570 FOR X=1 TO 7 1580 F$(X)=INPUT$(1,#1) 1590 F(X)=ASC(F$(X)) 1600 G$(X)=STR$(F(X)) 1610 NEXT X 1620 FOR X=1 TO 4 1630 DV$(X)=INPUT$(1,#1) 1640 DV(X)=ASC(DV$(X)) 1650 NEXT X 1660 MC$=INPUT$(1,#1) 1670 MC=ASC(MC$) 1680 SP$=INPUT$(1,#1) 1690 SP=ASC(SP$) 1700 FOR X=1 TO 5 1710 OS$(X)=INPUT$(1,#1) 1720 OS(X)=ASC(OS$(X)) 1730 SO$(X)=STR$(OS(X)) 1740 NEXT X 1750 FOR X=1 TO 7 1760 AP$(X)=INPUT$(1,#1) 1770 NEXT X 1780 MO$=INPUT$(1,#1) 1790 MO=ASC(MO$) 1800 DM$=INPUT$(1,#1) 1810 DM=ASC(DM$) 1820 HR$=INPUT$(1,#1) 1830 HR=ASC(HR$) 1840 MN$=INPUT$(1,#1) 1850 MN=ASC(MN$) 1860 SC$=INPUT$(1,#1) 1870 SC=ASC(SC$) 1880 RETURN 1890 ' 1900 'EXTRACT DATA 1910 GOSUB 2230 1920 GOSUB 1960 1930 GOTO 2120 1940 ' 1950 'PARAGON STATUS PRINTOUT 1960 CLS:PRINT "SELECTED VFO = ";VF$ 1970 PRINT "FREQUENCY = ";F1$;".";F2$,"MHZ" 1980 PRINT OT$;OL$ 1990 IF CH$="63" THEN PRINT "NO MEMORY CHANNEL SELECTED" ELSE PRINT "MEMORY CHANNEL = ";CH$;ML$ 2000 PRINT "ALPHA TAG = ";TG$ 2010 PRINT "MODE = ";MD$ 2020 PRINT "CRYSTAL FILTER = ";CF$;" KHZ" 2030 PRINT "TUNING STEP SIZE = ";SZ$;" HZ" 2040 PRINT "FAST TUNING =";FT$ 2050 PRINT "SPLIT =";ST$ 2060 PRINT 2070 PRINT "DATE = ";MM$;"/";DD$ 2080 PRINT "TIME = ";HH$;":";MT$;":";SS$ 2090 PRINT 2100 PRINT "AUX. DISPLAY = ";AD$ 2110 RETURN 2120 LOCATE 18,25:PRINT"PRESS M FOR MAIN MENU" 2130 C$=INKEY$:IF C$="" GOTO 2130 2140 IF C$<>"M" THEN GOTO 2130 2150 GOTO 250 2160 ' 2170 'DELAY ROUTINE 2180 'MAKE LONG ENOUGH FOR PARAGON TO EXECUTE COMMANDS 2190 FOR T = 1 TO 200 2200 NEXT T 2210 RETURN 2220 ' 2230 'ROUTINE TO EXTRACT REQUIRED DATA 2240 ' 2250 'GET SELECTED VFO 2260 V$=HEX$(DV(3)) 2270 V2$=RIGHT$(V$,1) 2280 IF V2$="8" OR V2$="9" OR V2$="A" OR V2$="B" THEN VF$="A" ELSE VF$="B" 2290 ' 2300 'GET SPLIT STATUS 2310 IF V2$="6" OR V2$="7" OR V2$="A" OR V2$="B" THEN ST$=" ON" ELSE ST$=" OFF" 2320 ' 2330 'GET OFFSET STATUS 2340 V3$=LEFT$(V$,1) 2350 V=LEN(V$) 2360 IF V<2 THEN OL$="OFF":GOTO 2390 ELSE 2370 IF V3$="2" OR V3$="6" OR V3$="A" THEN OL$="ON " ELSE OL$="OFF" 2380 ' 2390 'GET AUX. DISPLAY STATUS 2400 IF V<2 THEN AD$=" TAG":GOTO 2440 ELSE 2410 IF V3$="8" OR V3$="9" OR V3$="A" THEN AD$=" DATE":GOTO 2440 ELSE 2420 IF V3$="4" OR V3$="5" OR V3$="6" THEN AD$=" TIME":GOTO 2440 ELSE AD$=" TAG" 2430 ' 2440 'GET DISPLAYED FREQUENCY 2450 F1$=G$(1)+G$(2) 2460 F2$=G$(3)+G$(4)+G$(5)+G$(6)+G$(7) 2470 ' 2480 'GET OFFSET VALUE IF IT IS ON 2490 IF OL$="OFF" THEN GOTO 2530 ELSE 2500 IF OS(1)>1 THEN K$="-":GOTO 2510 ELSE K$="+" 2510 OL$=K$+SO$(2)+SO$(3)+"."+SO$(4)+SO$(5)+" KHZ" 2520 ' 2530 'GET MEMORY CHANNEL 2540 CH$=HEX$(MC) 2550 ' 2560 'GET ALPHA TAG 2570 TG$=AP$(1)+AP$(2)+AP$(3)+AP$(4)+AP$(5)+AP$(6)+AP$(7) 2580 ' 2590 'GET CURRENT OPERATING MODE 2600 M$=HEX$(DV(1)) 2610 IF M$="1" OR M$="81" THEN MD$="TUNE":GOTO 2690 ELSE 2620 IF M$="2" OR M$="82" THEN MD$="CW":GOTO 2690 ELSE 2630 IF M$="4" OR M$="84" THEN MD$="USB":GOTO 2690 ELSE 2640 IF M$="8" OR M$="88" THEN MD$="LSB":GOTO 2690 ELSE 2650 IF M$="10" OR M$="90" THEN MD$="AM":GOTO 2690 ELSE 2660 IF M$="20" OR M$="A0" THEN MD$="FM":GOTO 2690 ELSE 2670 IF M$="40" OR M$="C0" THEN MD$="RTTY" 2680 ' 2690 'GET FAST TUNING STATUS 2700 M=LEN(M$) 2710 IF M<2 THEN FT$=" OFF":GOTO 2750 ELSE 2720 LM$=LEFT$(M$,1) 2730 IF LM$="8" OR LM$="9" OR LM$="A" OR LM$="C" THEN FT$=" ON " ELSE FT$=" OFF" 2740 ' 2750 'GET SELECTED CRYSTAL FILTER 2760 FL$=HEX$(DV(2)) 2770 LF=LEN(FL$) 2780 IF LF<2 GOTO 2840 2790 FF$=LEFT$(FL$,1) 2800 IF FF$="8" THEN CF$="6.0":GOTO 2860 ELSE 2810 IF FF$="4" THEN CF$="2.4":GOTO 2860 ELSE 2820 IF FF$="2" THEN CF$="1.8":GOTO 2860 ELSE 2830 IF FF$="1" THEN CF$=".50":GOTO 2860 ELSE 2840 CF$=".25" 2850 ' 2860 'GET TYPE OF OFFSET IF ON 2870 IF OL$="OFF" THEN OT$="OFFSET IS ":GOTO 2910 2880 FR$=RIGHT$(FL$,1) 2890 IF FR$="2" OR FR$="3" OR FR$="A" OR FR$="B" THEN OT$="TX OFFSET = " :GOTO 2910 ELSE OT$="RX OFFSET = " 2900 ' 2910 'GET TUNING STEP SIZE 2920 SP=SP+1 2930 ON SP GOTO 2940,2950,2960,2970,2980 2940 SZ$="10":GOTO 3000 2950 SZ$="20":GOTO 3000 2960 SZ$="50":GOTO 3000 2970 SZ$="100":GOTO 3000 2980 SZ$="500" 2990 ' 3000 'EXTRACT CORRECT DATE 3010 MM$=HEX$(MO) 3020 DD$=HEX$(DM) 3030 IF DM>9 GOTO 3060 3040 DD$="0"+DD$ 3050 ' 3060 'EXTRACT CORRECT TIME 3070 HH$=HEX$(HR) 3080 MT$=HEX$(MN) 3090 IF MN>9 GOTO 3110 3100 MT$="0"+MT$ 3110 SS$=HEX$(SC) 3120 IF SC>9 GOTO 3140 3130 SS$="0"+SS$ 3140 RETURN 3150 FOR T = 1 TO 3000:NEXT T:RETURN 3160 ' 3170 'FREQUENCY DOWN TUNING ROUTINE 3180 D$="]" 3190 PRINT #1,D$ 3200 GOTO 260 3210 ' 3220 'FREQUENCY UP TUNING ROUTINE 3230 D$="[" 3240 PRINT #1,D$ 3250 GOTO 260 3260 ' 3270 'CHANGE AUX. DISPLAY ROUTINE 3280 CLS:LOCATE 5,20:PRINT "GETTING PARAGON AUX. DISPLAY STATUS" 3290 GOSUB 1550 3300 GOSUB 2230 3310 CLS:LOCATE 7,30:PRINT "AUX. DISPLAY MENU" 3320 LOCATE 9,30:PRINT "CURRENT AUX. DISPLAY= ";AD$ 3330 LOCATE 11,30:PRINT "1---TIME" 3340 LOCATE 12,30:PRINT "2---ALPHA TAG" 3350 LOCATE 13,30:PRINT "3---DATE" 3360 LOCATE 15,25:PRINT "M---RETURN TO MAIN MENU" 3370 LOCATE 18,25:PRINT"SELECT DESIRED AUX. DISPLAY " 3380 C$=INKEY$:IF C$="" GOTO 3380 3390 LOCATE 18,55:PRINT C$ 3400 IF C$="1" GOTO 3450 ELSE 3410 IF C$="2" GOTO 3540 ELSE 3420 IF C$="3" GOTO 3630 ELSE 3430 IF C$="M" THEN GOTO 250 ELSE 3440 LOCATE 18,25:PRINT" WRONG NUMBER,TRY AGAIN ":GOSUB 3150:GOTO 3370 3450 IF AD$=" TIME" GOTO 3710 3460 IF AD$=" DATE" GOTO 3500 3470 D$="B" 3480 PRINT #1,D$ 3490 GOSUB 2170 3500 D$="B" 3510 PRINT #1,D$ 3520 GOSUB 2170 3530 GOTO 3710 3540 IF AD$=" TAG" GOTO 3710 3550 IF AD$=" TIME" GOTO 3590 3560 D$="B" 3570 PRINT #1,D$ 3580 GOSUB 2170 3590 D$="B" 3600 PRINT #1,D$ 3610 GOSUB 2170 3620 GOTO 3710 3630 IF AD$=" DATE" GOTO 3710 3640 IF AD$=" TAG" GOTO 3590 3650 D$="B" 3660 PRINT #1,D$ 3670 GOSUB 2170 3680 D$="B" 3690 PRINT #1,D$ 3700 GOSUB 2170 3710 GOTO 250 3720 ' 3730 'VFO CONTROL FUNCTIONS 3740 CLS:LOCATE 10,30:PRINT "VFO FUNCTION MENU" 3750 LOCATE 13,25:PRINT "1---CHANGE VFOS" 3760 LOCATE 14,25:PRINT "2---SET VFOS EQUAL" 3770 LOCATE 15,25:PRINT "3---CHANGE SPLIT MODE" 3780 LOCATE 17,25:PRINT "M---RETURN TO MAIN MENU" 3790 LOCATE 19,25:PRINT "SELECT DESIRED FUNCTION? " 3800 C$=INKEY$:IF C$="" GOTO 3800 3810 LOCATE 19,50:PRINT C$ 3820 IF C$="1" THEN D$="F":GOTO 3870 3830 IF C$="2" THEN D$="E":GOTO 3870 3840 IF C$="3" THEN D$="J":GOTO 3870 3850 IF C$="M" THEN GOTO 250 ELSE 3860 LOCATE 19,25:PRINT "WRONG NUMBER,TRY AGAIN ":GOSUB 3150:GOTO 3790 3870 PRINT #1,D$ 3880 GOSUB 2170 3890 GOTO 250 3900 ' 3910 'MEMORY FUNCTION ROUTINES 3920 CLS:LOCATE 4,30:PRINT "MEMORY FUNCTIONS MENU" 3930 LOCATE 7,25:PRINT "1---MEMORY STORE" 3940 LOCATE 8,25:PRINT "2---MEMORY RECALL" 3950 LOCATE 9,25:PRINT "3---MEMORY LOCKOUT" 3960 LOCATE 10,25:PRINT "4---MEMORY CLEAR" 3970 LOCATE 11,25:PRINT "5---MEMORY TUNE" 3980 LOCATE 13,25:PRINT "C---CLEAR COMMAND" 3990 LOCATE 14,25:PRINT "M---RETURN TO MAIN MENU" 4000 LOCATE 19,25:PRINT "SELECT DESIRED FUNCTION? " 4010 C$=INKEY$:IF C$="" GOTO 4010 4020 LOCATE 19,50:PRINT C$ 4030 IF C$="1" THEN GOTO 4120 4040 IF C$="2" THEN GOTO 4280 4050 IF C$="3" THEN GOTO 4440 4060 IF C$="4" THEN GOTO 4970 4070 IF C$="5" THEN GOTO 5080 4080 IF C$="C" THEN GOTO 500 4090 IF C$="M" THEN GOTO 250 4100 LOCATE 19,25:PRINT "WRONG NUMBER, TRY AGAIN ":GOSUB 3150:GOTO 4000 4110 ' 4120 'MEMORY STORE ROUTINE 4130 CLS:LOCATE 10,20:PRINT "MEMORY STORE ROUTINE" 4140 LOCATE 12,20:INPUT "ENTER DESIRED MEMORY NUMBER (00-61)";CN$ 4150 GOSUB 4170 4160 GOTO 250 4170 D$="<" 4180 PRINT #1,D$ 4190 GOSUB 2170 4200 D$=LEFT$(CN$,1) 4210 PRINT #1,D$ 4220 GOSUB 2170 4230 D$=RIGHT$(CN$,1) 4240 PRINT #1,D$ 4250 GOSUB 2170 4260 RETURN 4270 ' 4280 'MEMORY RECALL ROUTINE 4290 CLS:LOCATE 10,20:PRINT "MEMORY RECALL ROUTINE" 4300 LOCATE 12,20:INPUT "ENTER DESIRED MEMORY NUMBER (00-61)";CN$ 4310 GOSUB 4330 4320 GOTO 1530 4330 D$=":" 4340 PRINT #1,D$ 4350 GOSUB 2170 4360 D$=LEFT$(CN$,1) 4370 PRINT #1,D$ 4380 GOSUB 2170 4390 D$=RIGHT$(CN$,1) 4400 PRINT #1,D$ 4410 GOSUB 2170 4420 RETURN 4430 ' 4440 'MEMORY LOCKOUT ROUTINE 4450 CLS:LOCATE 10,30:PRINT "MEMORY LOCK/UNLOCK MENU" 4460 LOCATE 13,25:PRINT "1---LOCK OUT SELECTED MEMORY CHANNEL 4470 LOCATE 14,25:PRINT "2---UNLOCK SELECTED MEMORY CHANNEL" 4480 LOCATE 15,25:PRINT "3---LOCK OUT ALL MEMORY CHANNELS" 4490 LOCATE 16,25:PRINT "4---UNLOCK ALL MEMORY CHANNELS" 4500 LOCATE 18,25:PRINT "M---RETURN TO MAIN MENU 4510 LOCATE 20,25:PRINT "SELECT DESIRED FUNCTION? " 4520 C$=INKEY$:IF C$="" GOTO 4520 4530 LOCATE 20,50:PRINT C$ 4540 IF C$="1" THEN GOTO 4610 ELSE 4550 IF C$="2" THEN GOTO 4690 ELSE 4560 IF C$="3" THEN GOTO 4770 ELSE 4570 IF C$="4" THEN GOTO 4870 ELSE 4580 IF C$="M" THEN GOTO 250 ELSE 4590 LOCATE 18,25:PRINT "WRONG NUMBER, TRY AGAIN ":GOSUB 3150:GOTO 4510 4600 ' 4610 'SELECTIVE MEMORY LOCKOUT ROUTINE 4620 CLS:LOCATE 12,20:INPUT "ENTER DESIRED MEMORY NUMBER (00-61)";CN$ 4630 GOSUB 4330 4640 D$="D" 4650 PRINT #1,D$ 4660 GOSUB 2170 4670 GOTO 250 4680 ' 4690 'SELECTIVE MEMORY UNLOCK ROUTINE 4700 CLS:LOCATE 12,20:INPUT "ENTER DESIRED MEMORY NUMBER (00-61)";CN$ 4710 GOSUB 4330 4720 D$=";" 4730 PRINT #1,D$ 4740 GOSUB 2170 4750 GOTO 250 4760 ' 4770 'GLOBAL MEMORY LOCKOUT ROUTINE 4780 CLS:LOCATE 12,20:PRINT "LOCKING OUT ALL MEMORY CHANNELS" 4790 D$="X" 4800 PRINT #1,D$ 4810 GOSUB 2170 4820 D$="<" 4830 PRINT #1,D$ 4840 GOSUB 2170 4850 GOTO 250 4860 ' 4870 'GLOBAL MEMORY UNLOCK ROUTINE 4880 CLS:LOCATE 12,20:PRINT "UNLOCKING ALL MEMORY CHANNELS" 4890 D$="X" 4900 PRINT #1,D$ 4910 GOSUB 2170 4920 D$=":" 4930 PRINT #1,D$ 4940 GOSUB 2170 4950 GOTO 250 4960 ' 4970 'SELECTIVE MEMORY CLEAR ROUTINE 4980 CLS:LOCATE 12,20:INPUT "ENTER DESIRED MEMORY NUMBER (00-61)";CN$ 4990 GOSUB 4330 5000 D$="X" 5010 PRINT #1,D$ 5020 GOSUB 2170 5030 D$="D" 5040 PRINT #1,D$ 5050 GOSUB 2170 5060 GOTO 250 5070 ' 5080 'MEMORY TUNE ROUTINE 5090 CLS:LOCATE 5,30:PRINT "MEMORY TUNE MENU" 5100 D$="A" 5110 PRINT #1,D$ 5120 GOSUB 2170 5130 LOCATE 8,25:PRINT "M---RETURN TO MAIN MENU" 5140 LOCATE 10,25:PRINT "LEFT CURSOR---MEMORY TUNE DOWN" 5150 LOCATE 11,25:PRINT "RIGHT CURSOR---MEMORY TUNE UP" 5160 LOCATE 20,25:PRINT "SELECT DESIRED FUNCTION? " 5170 C$=INKEY$:IF C$="" GOTO 5170 5180 IF LEN(C$)=2 THEN C$=RIGHT$(C$,1):GOTO 5210 5190 LOCATE 20,50:PRINT C$ 5200 IF C$="M" THEN GOTO 5380 ELSE 5210 IF C$=CHR$(75) THEN GOTO 5240 ELSE 5220 IF C$=CHR$(77) THEN GOTO 5340 ELSE 5230 LOCATE 20,25:PRINT "WRONG FUNCTION,TRY AGAIN ":GOSUB 3150:GOTO 5160 5240 D$="]" 5250 PRINT #1,D$ 5260 GOSUB 2170 5270 GOSUB 1550 5280 GOSUB 2230 5290 GOSUB 1960 5300 LOCATE 20,25:PRINT "M---RETURN TO MAIN MENU" 5310 LOCATE 22,25:PRINT "LEFT CURSOR---MEMORY TUNE DOWN" 5320 LOCATE 23,25:PRINT "RIGHT CURSOR---MEMORY TUNE UP" 5330 GOTO 5170 5340 D$="[" 5350 PRINT #1,D$ 5360 GOSUB 2170 5370 GOTO 5270 5380 D$="A" 5390 PRINT #1,D$ 5400 GOSUB 2170 5410 GOTO 250 5420 ' 5430 'ALPHA TAG ENTRY ROUTINE 5440 CLS:LOCATE 5,20:PRINT "SETTING AUX. DISPLAY TO TAG" 5450 GOSUB 1550 5460 GOSUB 2230 5470 GOSUB 5490 5480 GOTO 5610 5490 IF AD$=" TAG" GOTO 5570 5500 IF AD$=" TIME" GOTO 5540 5510 D$="B" 5520 PRINT #1,D$ 5530 GOSUB 2170 5540 D$="B" 5550 PRINT #1,D$ 5560 GOSUB 2170 5570 D$="@" 5580 PRINT #1,D$ 5590 GOSUB 2170 5600 RETURN 5610 CLS:LOCATE 20,20:INPUT "ENTER ALPHA TAG (UP TO 7 CHARACTERS)";A$ 5620 XX=LEN (A$) 5630 IF XX>7 THEN XX=7 5640 FOR N=1 TO XX 5650 DD$=MID$(A$,N,1) 5660 GOSUB 5850 5670 PRINT #1,D$ 5680 GOSUB 2170 5690 NEXT N 5700 IF XX=7 THEN GOTO 5740 ELSE 5710 D$="@" 5720 PRINT #1,D$ 5730 GOSUB 2170 5740 IF CH$<>"63" THEN GOTO 5820 5750 CLS:LOCATE 20,20:INPUT "ENTER DESIRED MEMORY NUMBER (00-61)";CH$ 5760 D$=LEFT$(CH$,1) 5770 PRINT #1,D$ 5780 GOSUB 2170 5790 D$=RIGHT$(CH$,1) 5800 PRINT #1,D$ 5810 GOSUB 2170 5820 CLS:LOCATE 20,15:PRINT "STORING TAG '";A$;"' IN MEMORY CHANNEL ";CH$ 5830 GOSUB 3150 5840 GOTO 250 5850 Y=ASC(DD$) 5860 IF Y>47 AND Y<58 THEN D$=CHR$(Y):RETURN 5870 X=Y-64 5880 IF X>26 OR X<1 THEN D$="G":GOTO 5910 5890 D=AP(X) 5900 D$=CHR$(D) 5910 RETURN 5920 ' 5930 'AUX. FUNCTIONS MENU 5940 CLS:LOCATE 3,25:PRINT "AUX. FUNCTIONS SELECT MENU" 5950 GOSUB 1550 5960 GOSUB 2230 5970 LOCATE 21,50:PRINT " " 5980 IF OL$="OFF" THEN RX$="OFF":TX$="OFF":GOTO 6010 5990 IF OT$="TX OFFSET = "THEN TX$="ON ":RX$="OFF":GOTO 6010 6000 TX$="OFF":RX$="ON " 6010 LOCATE 6,30:PRINT "1---RX OFFSET <";RX$;">" 6020 LOCATE 7,30:PRINT "2---TX OFFSET <";TX$;">" 6030 LOCATE 8,30:PRINT "3---FAST TUNING <";FT$;">" 6040 LOCATE 9,30:PRINT "4---VOICE 6050 LOCATE 10,30:PRINT "5---HAM BAND DOWN" 6060 LOCATE 11,30:PRINT "6---HAM BAND UP" 6070 LOCATE 12,30:PRINT "7---SET DATE <";MM$;"/";DD$;">" 6080 LOCATE 13,30:PRINT "8---SET TIME <";HH$;":";MT$;">" 6090 LOCATE 14,30:PRINT "9---DISPLAY RADIO STATUS" 6100 IF FT$=" ON " THEN SZ$="1 MHZ":GOTO 6120 6110 SZ$="100 KHZ" 6120 LOCATE 16,30:PRINT "LEFT CURSOR---";SZ$;" DOWN" 6130 LOCATE 17,30:PRINT "RIGHT CURSOR---";SZ$;" UP" 6140 LOCATE 19,30:PRINT "M---RETURN TO MAIN MENU" 6150 LOCATE 21,25:PRINT "SELECT DESIRED FUNCTION?" 6160 LOCATE 23,20:PRINT "VFO ";VF$;" FREQUENCY= ";F1$;".";F2$,"MHZ" 6170 C$=INKEY$:IF C$="" GOTO 6170 6180 IF LEN(C$) =2 THEN C$=RIGHT$(C$,1):GOTO 6300 6190 LOCATE 21,50:PRINT C$ 6200 IF C$="1" THEN GOTO 6340 6210 IF C$="2" THEN GOTO 6400 6220 IF C$="3" THEN GOTO 6460 6230 IF C$="4" THEN GOTO 6520 6240 IF C$="5" THEN GOTO 6590 6250 IF C$="6" THEN GOTO 6690 6260 IF C$="7" THEN GOTO 6790 6270 IF C$="8" THEN GOTO 7710 6280 IF C$="9" THEN GOTO 7620 6290 IF C$="M" THEN GOTO 250 6300 IF C$=CHR$(75) THEN GOTO 7500 6310 IF C$=CHR$(77) THEN GOTO 7560 6320 LOCATE 21,25:PRINT "WRONG NUMBER, TRY AGAIN :GOSUB 12100:GOTO 23120 6330 ' 6340 'RX OFFSET ON/OFF ROUTINE 6350 D$="H" 6360 PRINT #1,D$ 6370 GOSUB 2170 6380 GOTO 5950 6390 ' 6400 'TX OFFSET ON/OFF ROUTINE 6410 D$="I" 6420 PRINT #1,D$ 6430 GOSUB 2170 6440 GOTO 5950 6450 ' 6460 'FAST TUNING ON/OFF ROUTINE 6470 D$="G" 6480 PRINT #1,D$ 6490 GOSUB 2170 6500 GOTO 5950 6510 ' 6520 'VOICE READOUT ROUTINE 6530 D$=">" 6540 PRINT #1,D$ 6550 GOSUB 2170 6560 GOSUB 3150:GOSUB 3150:GOSUB 3150 6570 GOTO 5950 6580 ' 6590 'HAM BAND DOWN ROUTINE 6600 D$="X" 6610 PRINT #1,D$ 6620 GOSUB 2170 6630 D$="Y" 6640 PRINT #1,D$ 6650 GOSUB 2170 6660 GOSUB 3150 6670 GOTO 5950 6680 ' 6690 'HAM BAND UP ROUTINE 6700 D$="X" 6710 PRINT #1,D$ 6720 GOSUB 2170 6730 D$="Z" 6740 PRINT #1,D$ 6750 GOSUB 2170 6760 GOSUB 3150 6770 GOTO 5950 6780 ' 6790 'DATE SETTING ROUTINE 6800 CLS:LOCATE 10,25:PRINT "CURRENT DATE =";MM$;"/";DD$ 6810 LOCATE 15,25:INPUT "ENTER NEW DATE (MM/DD) :";NN$ 6820 IF LEN(NN$) <>5 THEN GOTO 7480 6830 NM$=LEFT$(NN$,2) 6840 ND$=RIGHT$(NN$,2) 6850 NM=VAL(NM$) 6860 IF NM<1 OR NM>12 THEN GOTO 7480 6870 ND=VAL(ND$) 6880 IF ND<1 OR ND>31 THEN GOTO 7480 6890 IF AD$=" DATE" GOTO 6970 6900 IF AD$=" TAG" GOTO 6940 6910 D$="B" 6920 PRINT #1,D$ 6930 GOSUB 2170 6940 D$="B" 6950 PRINT #1,D$ 6960 GOSUB 2170 6970 D$="X" 6980 PRINT #1,D$ 6990 GOSUB 2170 7000 D$=";" 7010 PRINT #1,D$ 7020 GOSUB 2170 7030 IF NM>VAL(MM$) THEN GOTO 7060 7040 IF NMVAL(DD$) THEN GOTO 7280 7260 IF ND"P" THEN GOTO 7670 7690 GOTO 5930 7700 ' 7710 'TIME SETTING ROUTINE 7720 CLS:LOCATE 10,25:PRINT "CURRENT TIME =";HH$;":";MT$ 7730 LOCATE 15,25:INPUT "ENTER NEW TIME (HH:MM) ";TT$ 7740 IF LEN(TT$) <>5 THEN GOTO 8160 7750 NH$=LEFT$(TT$,2) 7760 NT$=RIGHT$(TT$,2) 7770 NH=VAL(NH$) 7780 IF NH<0 OR NH>23 THEN GOTO 8160 7790 NT=VAL(NT$) 7800 IF NT<0 OR NT>59 THEN GOTO 8160 7810 IF AD$=" TIME" GOTO 7890 7820 IF AD$=" DATE" GOTO 7860 7830 D$="B" 7840 PRINT #1,D$ 7850 GOSUB 2170 7860 D$="B" 7870 PRINT #1,D$ 7880 GOSUB 2170 7890 D$="X" 7900 PRINT #1,D$ 7910 GOSUB 2170 7920 D$=";" 7930 PRINT #1,D$ 7940 GOSUB 2170 7950 TH$=LEFT$(NH$,1) 7960 UH$=RIGHT$(NH$,1) 7970 TH=ASC(TH$) 7980 UH=ASC(UH$) 7990 D$=CHR$(TH) 8000 PRINT #1,D$ 8010 GOSUB 2170 8020 D$=CHR$(UH) 8030 PRINT #1,D$ 8040 GOSUB 2170 8050 TM$=LEFT$(NT$,1) 8060 UM$=RIGHT$(NT$,1) 8070 TM=ASC(TM$) 8080 UM=ASC(UM$) 8090 D$=CHR$(TM) 8100 PRINT #1,D$ 8110 GOSUB 2170 8120 D$=CHR$(UM) 8130 PRINT #1,D$ 8140 GOSUB 2170 8150 GOTO 5930 8160 LOCATE 15,25:PRINT "WRONG FORMAT OR NUMBERS, TRY AGAIN":GOSUB 3150:GOTO 7710 8170 ' 8180 'MEMORY TABLE DISPLAY ROUTINE 8190 GOSUB 8230 8200 LOCATE 24,25:PRINT "PRESS M TO RETURN TO MAIN MENU" 8210 C$=INKEY$:IF C$="" THEN GOTO 8210 ELSE 8220 IF C$<>"M" THEN GOTO 8210 ELSE GOTO 250 8230 CLS:LOCATE 10,25:PRINT "PRINT MEMORY TABLE (Y/N)?" 8240 C$=INKEY$:IF C$="" THEN GOTO 8240 8250 IF C$="Y" THEN GOTO 11180 8260 IF C$="N" THEN GOTO 8270 ELSE GOTO 8230 8270 GOSUB 8510 8280 FOR Q= 0 TO 19 8290 IF CF$(Q)="" THEN PRINT Q:GOTO 8310 ELSE 8300 PRINT Q;" ";F1$(Q);".";F2$(Q),TG$(Q),MD$(Q),CF$(Q) 8310 NEXT Q 8320 GOSUB 8530 8330 GOSUB 8510 8340 FOR Q=20 TO 39 8350 IF CF$(Q)="" THEN PRINT Q:GOTO 8370 ELSE 8360 PRINT Q;" ";F1$(Q);".";F2$(Q),TG$(Q),MD$(Q),CF$(Q) 8370 NEXT Q 8380 GOSUB 8530 8390 GOSUB 8510 8400 FOR Q= 40 TO 59 8410 IF CF$(Q)="" THEN PRINT Q:GOTO 8430 ELSE 8420 PRINT Q;" ";F1$(Q);".";F2$(Q),TG$(Q),MD$(Q),CF$(Q) 8430 NEXT Q 8440 GOSUB 8530 8450 GOSUB 8510 8460 FOR Q= 60 TO 61 8470 IF CF$(Q)="" THEN PRINT Q:GOTO 8490 ELSE 8480 PRINT Q;" ";F1$(Q);".";F2$(Q),TG$(Q),MD$(Q),CF$(Q) 8490 NEXT Q 8500 RETURN 8510 CLS:LOCATE 1,25:PRINT "PARAGON MEMORY TABLE" 8520 LOCATE 3,1:PRINT "MEMORY NO.":LOCATE 3,15:PRINT "FREQUENCY":LOCATE 3,28:PRINT "ALPHA TAG":LOCATE 3,42:PRINT "MODE":LOCATE 3,52:PRINT "CRYSTAL FILTER":RETURN 8530 LOCATE 24,25:PRINT "PRESS RETURN FOR NEXT PAGE" 8540 C$=INKEY$:IF C$="" THEN GOTO 8540 ELSE 8550 IF C$<>CHR$(13) THEN GOTO 8540 ELSE RETURN 8560 ' 8570 'ROUTINE TO LOAD ALL PARAGON MEMORIES FROM DISK FILE 8580 ON ERROR GOTO 8650 8590 CLS:LOCATE 20,20:PRINT "ENTER DRIVE LETTER (A-D)" 8600 DN$=INKEY$:IF DN$="" THEN GOTO 8600 ELSE 8610 LOCATE 20,45:PRINT DN$ 8620 LOCATE 22,20:INPUT "ENTER FILENAME";NM$ 8630 FILE$=DN$+":"+NM$ 8640 OPEN "I",#2,FILE$ 8650 IF ERR=53 THEN LOCATE 22,20:PRINT "FILE NOT FOUND ":GOSUB 3150:RESUME 8620 8660 CLS 8670 FOR Q=0 TO 61 8680 INPUT #2,F1$(Q),F2$(Q),TG$(Q),MD$(Q),CF$(Q) 8690 LOCATE 20,20:PRINT "READING MEMORY CHANNEL ";Q 8700 NEXT Q 8710 CLOSE #2 8720 CLS:LOCATE 10,25:PRINT "MEMORY LOAD/SAVE MENU" 8730 LOCATE 12,25:PRINT "1---DISPLAY MEMORY TABLE 8740 LOCATE 13,25:PRINT"2---EDIT MEMORY TABLE" 8750 LOCATE 14,25:PRINT "3---LOAD PARAGON MEMORIES 8760 LOCATE 15,25:PRINT "4---GET NEW DISK FILE 8770 LOCATE 16,25:PRINT "5---SAVE MEMORY TABLE TO DISK" 8780 LOCATE 18,25:PRINT "M---RETURN TO MAIN MENU" 8790 LOCATE 20,25:PRINT "SELECT DESIRED FUNCTION?" 8800 C$=INKEY$:IF C$="" THEN GOTO 8800 ELSE 8810 LOCATE 20,50:PRINT C$ 8820 IF C$="1" THEN GOTO 8890 ELSE 8830 IF C$="2" THEN GOTO 10130 ELSE 8840 IF C$="3" THEN GOTO 8940 ELSE 8850 IF C$="4" THEN GOTO 8570 ELSE 8860 IF C$="5" THEN GOTO 9960 8870 IF C$="M" THEN GOTO 250 ELSE 8880 LOCATE 20,25:PRINT "WRONG NUMBER, TRY AGAIN ":GOSUB 3150:GOTO 8790 8890 GOSUB 8230 8900 LOCATE 24,25:PRINT "PRESS P TO RETURN TO PREVIOUS MENU" 8910 C$=INKEY$:IF C$="" THEN GOTO 8910 ELSE 8920 IF C$<>"P" THEN GOTO 8910 ELSE GOTO 8720 8930 ' 8940 'ROUTINE TO SEND MEMORY DATA TO PARAGON 8950 CLS 8960 FOR Q= 0 TO 61 8970 CF$=CF$(Q) 8980 IF CF$="" THEN GOTO 9040 8990 LOCATE 20,20:PRINT "NOW LOADING PARAGON MEMORY CHANNEL ";Q 9000 GOSUB 9070 9010 GOSUB 9270 9020 GOSUB 9460 9030 GOSUB 9620 9040 NEXT Q 9050 GOTO 8720 9060 ' 9070 'FREQUENCY TRANSFER ROUTINE 9080 F1$=F1$(Q):F2$=F2$(Q) 9090 IF VAL(F1$)=0 THEN GOTO 9170 9100 IF VAL(F1$)<10 THEN GOTO 9140 9110 D$=MID$(F1$,2,1) 9120 PRINT #1,D$ 9130 GOSUB 2170 9140 D$=MID$(F1$,4,1) 9150 PRINT #1,D$ 9160 GOSUB 2170 9170 D$="W" 9180 PRINT #1,D$ 9190 GOSUB 2170 9200 FOR N=2 TO 8 STEP 2 9210 D$=MID$(F2$,N,1) 9220 PRINT #1,D$ 9230 GOSUB 2170 9240 NEXT N 9250 RETURN 9260 ' 9270 'MODE TRANSFER ROUTINE 9280 MD$=MD$(Q) 9290 IF MD$="FM" THEN D$="L":GOTO 9420 ELSE 9300 IF MD$="AM" THEN D$="M":GOTO 9420 ELSE 9310 IF MD$="LSB" THEN D$="N":GOTO 9420 ELSE 9320 IF MD$="USB" THEN D$="O":GOTO 9420 ELSE 9330 IF MD$="CW" THEN D$="P":GOTO 9420 ELSE 9340 IF MD$="RTTY" THEN GOTO 9350 ELSE RETURN 9350 D$="P" 9360 PRINT #1,D$ 9370 GOSUB 2170 9380 D$="X" 9390 PRINT #1,D$ 9400 GOSUB 2170 9410 D$="P" 9420 PRINT #1,D$ 9430 GOSUB 2170 9440 RETURN 9450 ' 9460 'CRYSTAL FILTER TRANSFER ROUTINE 9470 CF$=CF$(Q) 9480 IF CF$="6.0"THEN D$="R":GOTO 9530 ELSE 9490 IF CF$="2.4"THEN D$="S":GOTO 9530 ELSE 9500 IF CF$="1.8"THEN D$="T":GOTO 9530 ELSE 9510 IF CF$=".50"THEN D$="U":GOTO 9530 ELSE 9520 IF CF$=".25"THEN D$="V":GOTO 9530 ELSE RETURN 9530 PRINT #1,D$ 9540 GOSUB 2170 9550 CN$=STR$(Q) 9560 CN$=RIGHT$(CN$,2) 9570 IF Q>9 THEN GOTO 9590 9580 CN$="0"+CN$ 9590 GOSUB 4170 9600 RETURN 9610 ' 9620 'ALPHA TAG TRANSFER ROUTINE 9630 GOSUB 1550 9640 GOSUB 2230 9650 GOSUB 5490 9660 XX=LEN(TG$(Q)) 9670 FOR N=1 TO XX 9680 DD$=MID$(TG$(Q),N,1) 9690 GOSUB 5850 9700 PRINT #1,D$ 9710 GOSUB 2170 9720 NEXT N 9730 IF XX=7 THEN GOTO 9770 ELSE 9740 D$="@" 9750 PRINT #1,D$ 9760 GOSUB 2170 9770 RETURN 9780 ' 9790 'ROUTINE TO SAVE ALL PARAGON MEMORIES TO DISK 9800 CLS:LOCATE 10,20:PRINT "RECALLING ALL MEMORIES FROM PARAGON" 9810 LOCATE 12,27:PRINT "**** PLEASE WAIT ****" 9820 FOR CN= 0 TO 61 9830 LOCATE 20,25:PRINT "RECALLING MEMORY NUMBER ";CN 9840 CN$=STR$(CN) 9850 CN$=RIGHT$(CN$,2) 9860 IF CN>9 THEN GOTO 9880 9870 CN$="0"+CN$ 9880 GOSUB 4330 9890 GOSUB 2170 9900 GOSUB 1550 9910 GOSUB 2230 9920 IF CH$="63" THEN F1$(CN)="":F2$(CN)="":TG$(CN)="":MD$(CN)="":CF$(CN)="":GOTO 9940 ELSE 9930 F1$(CN)=F1$:F2$(CN)=F2$:TG$(CN)=TG$:MD$(CN)=MD$:CF$(CN)=CF$ 9940 NEXT CN 9950 GOTO 8720 9960 CLS:LOCATE 20,20:PRINT "ENTER DRIVE LETTER (A-D)" 9970 DN$=INKEY$:IF DN$="" THEN GOTO 9970 ELSE 9980 LOCATE 20,45:PRINT DN$ 9990 LOCATE 22,20:INPUT "ENTER FILENAME";NM$ 10000 FILE$=DN$+":"+NM$ 10010 OPEN "O",#2,FILE$ 10020 CLS 10030 FOR Q=0 TO 61 10040 WRITE #2,F1$(Q),F2$(Q),TG$(Q),MD$(Q),CF$(Q) 10050 LOCATE 20,20:PRINT "WRITING MEMORY CHANNEL ";Q 10060 NEXT Q 10070 CLOSE #2 10080 GOTO 250 10090 GOSUB 1550 10100 GOSUB 2230 10110 LOCATE 23,20:PRINT "VF0 ";VF$;" FREQUENCY= ";F1$;".";F2$,"MHZ" 10120 RETURN 10130 CLS:LOCATE 5,25:INPUT "ENTER MEMORY NUMBER (00-61)";CN$ 10140 Q=VAL(CN$) 10150 IF Q<0 OR Q>61 THEN GOTO 11170 10160 CLS:LOCATE 7,25:PRINT "CURRENT VALUES ARE:" 10170 LOCATE 9,1:PRINT"MEMORY NO.":LOCATE 9,15:PRINT "FREQUENCY":LOCATE 9,28:PRINT"ALPHA TAG":LOCATE 9,42:PRINT"MODE":LOCATE 9,52:PRINT"CRYSTAL FILTER" 10180 LOCATE 10,1 10190 IF CF$(Q)="" THEN PRINT Q,"MEMORY EMPTY":GOTO 10210 ELSE 10200 PRINT Q:LOCATE 10,10:PRINT F1$(Q);".";F2$(Q):LOCATE 10,29:PRINT TG$(Q):LOCATE 10,43:PRINT MD$(Q):LOCATE 10,57:PRINT CF$(Q) 10210 LOCATE 12,25:PRINT"MEMORY EDIT MENU" 10220 LOCATE 14,30:PRINT"1---FREQUENCY" 10230 LOCATE 15,30:PRINT"2---ALPHA TAG" 10240 LOCATE 16,30:PRINT"3---MODE" 10250 LOCATE 17,30:PRINT"4---CRYSTAL FILTER" 10260 LOCATE 19,30:PRINT"M---RETURN TO MAIN MENU" 10270 LOCATE 20,30:PRINT"N---NEXT MEMORY TO EDIT" 10280 LOCATE 21,30:PRINT"P---GO TO MEMORY LOAD/SAVE MENU" 10290 LOCATE 23,25:PRINT"SELECT ITEM TO EDIT " 10300 C$=INKEY$:IF C$="" GOTO 10300 10310 LOCATE 23,48:PRINT C$ 10320 IF C$="1" GOTO 10400 10330 IF C$="2" GOTO 10650 10340 IF C$="3" GOTO 10720 10350 IF C$="4" GOTO 10930 10360 IF C$="M" GOTO 250 10370 IF C$="N" GOTO 10130 10380 IF C$="P" GOTO 8720 10390 LOCATE 23,25:PRINT"WRONG NUMBER, TRY AGAIN ":GOSUB 3150:GOTO 10290 10400 K=0:CLS:LOCATE 20,20:INPUT"ENTER FREQUENCY IN MHZ: ";FM$ 10410 X=LEN(FM$) 10420 FOR N= 1 TO X 10430 D$(N)=MID$(FM$,N,1) 10440 IF D$(N) = "." THEN K=N:P=N 10450 NEXT N 10460 IF K<3 GOTO 10490 10470 IF K>3 GOTO 10400 10480 F1$(Q)=STR$(VAL(D$(1)))+STR$(VAL(D$(2))):GOTO 10500 10490 IF K=1 THEN F1$(Q)=STR$(VAL(""))+STR$(VAL("")):GOTO 10500 ELSE F1$(Q)=STR$(VAL(""))+STR$(VAL(D$(1))) 10500 IF X=K GOTO 10620 10510 K=K+1 10520 F2$(Q)=STR$(VAL(D$(K))) 10530 K=K+1 10540 IF (K-P)>5 OR K=X+1 THEN GOTO 10560 ELSE 10550 F2$(Q)=F2$(Q)+STR$(VAL(D$(K))):GOTO 10530 10560 L=X-P 10570 IF L=5 GOTO 10630 10580 FOR N=1 TO 5-L 10590 F2$(Q)=F2$(Q)+STR$(VAL("0")) 10600 NEXT N 10610 GOTO 10630 10620 F2$(Q)=STR$(VAL("0"))+STR$(VAL("0"))+STR$(VAL("0"))+STR$(VAL("0"))+STR$(VAL("0")) 10630 GOSUB 11120 10640 GOTO 10200 10650 CLS:LOCATE 20,20:INPUT"ENTER ALPHA TAG (UP TO 7 CHARACTERS)";A$ 10660 IF LEN(A$)>7 THEN GOTO 10650 10670 TG$(Q)=A$ 10680 GOSUB 11120 10690 GOTO 10200 10700 ' 10710 'SELECT MODE 10720 CLS:LOCATE 5,30:PRINT"MODE SELECT MENU" 10730 LOCATE 8,30:PRINT"1---CW" 10740 LOCATE 9,30:PRINT"2---USB" 10750 LOCATE 10,30:PRINT"3---LSB" 10760 LOCATE 11,30:PRINT"4---AM" 10770 LOCATE 12,30:PRINT"5---FM" 10780 LOCATE 13,30:PRINT"6---RTTY" 10790 LOCATE 15,25:PRINT"SELECT DESIRED MODE" 10800 C$=INKEY$:IF C$="" GOTO 10800 10810 LOCATE 15,48:PRINT C$ 10820 IF C$="1" THEN MD$(Q)="CW":GOTO 10890 10830 IF C$="2" THEN MD$(Q)="USB":GOTO 10890 10840 IF C$="3" THEN MD$(Q)="LSB":GOTO 10890 10850 IF C$="4" THEN MD$(Q)="AM":GOTO 10890 10860 IF C$="5" THEN MD$(Q)="FM":GOTO 10890 10870 IF C$="6" THEN MD$(Q)="RTTY":GOTO 10890 10880 LOCATE 15,25:PRINT "WRONG NUMBER, TRY AGAIN ":GOSUB 3150:GOTO 10790 10890 GOSUB 11120 10900 GOTO 10200 10910 ' 10920 'SELECT CRYSTAL FILTER 10930 CLS:LOCATE 5,25:PRINT "CRYSTAL FILTER SELECT MENU" 10940 LOCATE 8,30:PRINT"1---6.0 KHZ" 10950 LOCATE 9,30:PRINT"2---2.4 KHZ" 10960 LOCATE 10,30:PRINT"3---1.8 KHZ" 10970 LOCATE 11,30:PRINT"4---.50 KHZ" 10980 LOCATE 12,30:PRINT"5---.25 KHZ" 10990 LOCATE 15,25:PRINT"SELECT DESIRED FILTER " 11000 C$=INKEY$:IF C$="" GOTO 11000 11010 LOCATE 15,48:PRINT C$ 11020 IF C$="1" THEN CF$(Q)="6.0":GOTO 11080 11030 IF C$="2" THEN CF$(Q)="2.4":GOTO 11080 11040 IF C$="3" THEN CF$(Q)="1.8":GOTO 11080 11050 IF C$="4" THEN CF$(Q)=".50":GOTO 11080 11060 IF C$="5" THEN CF$(Q)=".25":GOTO 11080 11070 LOCATE 15,25:PRINT"WRONG NUMBER, TRY AGAIN ":GOSUB 3150:GOTO 10990 11080 GOSUB 11120 11090 GOTO 10200 11100 ' 11110 'PRINT TABLE HEADER 11120 CLS:LOCATE 7,25:PRINT"NEW VALUES ARE:" 11130 LOCATE 9,1:PRINT"MEMORY NO.":LOCATE 9,15:PRINT"FREQUENCY":LOCATE 9,28:PRINT"ALPHA TAG":LOCATE 9,42:PRINT "MODE":LOCATE 9,52:PRINT"CRYSTAL FILTER" 11140 RETURN 11150 ' 11160 'ENTRY ERROR MESSAGE 11170 LOCATE 5,25:PRINT"WRONG MEMORY NUMBER, TRY AGAIN ":GOSUB 3150:GOTO 10130 11180 ' 11190 'MEMORY TABLE PRINTER OUTPUT ROUTINE 11200 CLS:LPRINT"MEMORY NO.";TAB(15);"FREQUENCY";TAB(28);"ALPHA TAG";TAB(42);"MODE";TAB(52);"CRYSTAL FILTER" 11210 FOR Q=0 TO 61 11220 IF CF$(Q)="" THEN LPRINT Q:GOTO 11240 11230 LPRINT Q;TAB(10);F1$(Q);".";F2$(Q);TAB(29);TG$(Q);TAB(43);MD$(Q);TAB(57);CF$(Q) 11240 NEXT Q 11250 RETURN