IF pn$ <> "1" AND pn$ <> "2" AND pn$ <> "3" AND pn$ <> "4" AND pn$ <> "5" AND pn$ <> "6" AND pn$ <> "7" THEN GOTO menu.selection
IF pn$="1" THEN GOSUB clr.ctrs:GOTO prints.log.title
IF pn$="2" THEN GOTO prints.summary.sheet
IF pn$="3" THEN GOSUB menu.first:GOTO prints.dupe.sheet
IF pn$="4" THEN GOSUB menu.first:GOTO prints.mult.list
IF pn$="5" THEN GOTO correct.log
IF pn$="6" THEN GOTO prints.labels
IF pn$="7" THEN CLOSE:CLS:CLEAR:CHAIN "CQWWDXBoot1.0"
prints.log.title:
CLS
getinfo: CLOSE
GOSUB clr.ctrs
INPUT "Enter band for which log is desired"; band$
IF band$ <> "1.8" AND band$ <> "3.5" AND band$ <> "7.0" THEN band$=band$+" "
IF band$="1.8" THEN c=1
IF band$="3.5" THEN c=2
IF band$="7.0" THEN c=3
IF band$="14 " THEN c=4
IF band$="21 " THEN c=5
IF band$="28 " THEN c=6
OPEN "CQWW"+yr$+mode$ AS #2 LEN = 75
FIELD #2,3 AS bn$,8 AS dayt$,5 AS tyme$,12 AS his.ca$,6 AS my.nr$,6 AS his.nr$,2 AS nu.zo$,6 AS nu.mul$,1 AS poynt$,6 AS na$,5 AS time.prev$,5 AS time.on$,5 AS sign.in$,5 AS sign.out$
qso.ptr=LOF(2)/75
again.sam:
pg=pg+1
PRINT SPC(22);"CQ**** WORLD WIDE DX CONTEST ****CQ Page ";pg
PRINT:PRINT "CALL USED: ";my.cal$;" MODE: ";mode$;SPC(8);"Log for ";band$;" Mhz. Band"
FIELD #2,3 AS bn$,8 AS dayt$,5 AS tyme$,12 AS his.ca$,6 AS my.nr$,6 AS his.nr$,2 AS nu.zo$,6 AS nu.mul$,1 AS poynt$,6 AS na$,5 AS time.prev$,5 AS time.on$,5 AS sign.in$,5 AS sign.out$
qso.ptr=LOF(2)/75
xd=0
IF pn$ = "3" THEN GOSUB git.a.call
IF m$ = "1" THEN GOSUB git.a.ctry
IF m$ = "2" THEN GOSUB git.a.zone
GOSUB shell.sort
GOTO dupe.output
git.a.call:xd=0
FOR xd=1 TO LOF(2)/75
GET #2, xd
a$(xd)=bn$+" "+his.ca$
NEXT xd
RETURN
git.a.ctry:xd=0
FOR xd=1 TO LOF(2)/75
GET #2, xd
a$(xd)=bn$+" "+na$
NEXT xd
RETURN
git.a.zone: xd=0
FOR xd=1 TO LOF(2)/75
GET #2, xd
a$(xd)=bn$+" "+nu.zo$
NEXT xd
RETURN
shell.sort:
z=xd
T=xd-1
CLS
shell.algorithm:
n=LOF(2)/75
l=(2^INT(LOG(n)/LOG(2)))-1
start:
l=INT(l/2)
IF l < 1 THEN sorted.output
FOR j = 1 TO l
FOR k=j + l TO n STEP l
i=k
T$=a$(i)
compare:
IF a$(i-l) <= T$ THEN substitute
a$(i)=a$(i-l)
i=i-l
IF i > l THEN compare
substitute:
a$(i)=T$
LOCATE 1,1: PRINT T$
NEXT k
NEXT j
GOTO start
sorted.output:
GOSUB prints.title
PRINT
FOR xd=1 TO n
IF m$="1" THEN PRINT a$(xd),
IF m$="2" THEN PRINT a$(xd), 'prints mults in alpha/num sequence by band
IF pn$="3" THEN PRINT a$(xd)" "; 'prints calls in alpha/num sequence
IF xd MOD 100 = 0 THEN GOSUB pageit 'puts 100 calls on screen
NEXT xd
GOSUB finish
PRINT CHR$(13) CHR$(12)
GOTO menu.selection
git.a.mult: CLOSE
OPEN "CQWW"+yr$+mode$ AS #2 LEN = 75
FIELD #2,3 AS bn$,8 AS dayt$,5 AS tyme$,12 AS his.ca$,6 AS my.nr$,6 AS his.nr$,2 AS nu.zo$,6 AS nu.mul$,1 AS poynt$,6 AS na$,5 AS time.prev$,5 AS time.on$,5 AS sign.in$,5 AS sign.out$
qso.ptr=LOF(2)/75
IF m$ = "1" THEN ctryit
IF m$ = "2" THEN zoneit
ctryit:
FOR xd=1 TO LOF(2)/75
GET #2, xd
IF nu.mul$=" " THEN a$(xd)=" " :ELSE a$(xd)=bn$+" "+nu.mul$
NEXT
GOTO shell.sort
zoneit:
FOR xd=1 TO LOF(2)/75
GET #2, xd
IF nu.zo$=" " THEN a$(xd)=" " :ELSE a$(xd)=bn$+" "+nu.zo$
NEXT
GOTO shell.sort
prints.summary.sheet:
PRINT TAB(35);year$
PRINT TAB(22);"CQ**** WORLD WIDE DX CONTEST ****CQ"
PRINT:PRINT "State or Country";STRING$(35,"_");"ZIP";STRING$(20,"_")
GOSUB finish
PRINT CHR$(13) CHR$(12)
GOTO menu.selection
prints.labels:
CLOSE
CLS
OPEN "CQWW"+yr$+mode$ AS #2 LEN = 75
FIELD #2,3 AS bn$,8 AS dayt$,5 AS tyme$,12 AS his.ca$,6 AS my.nr$,6 AS his.nr$,2 AS nu.zo$,6 AS nu.mul$,1 AS poynt$,6 AS na$,5 AS time.prev$,5 AS time.on$,5 AS sign.in$,5 AS sign.out$
qso.ptr=LOF(2)/75
i=0
LOCATE 3,5:INPUT "Do you want to print (I)ndividual or (A)ll labels? "; an$
an$=UCASE$(an$) 'makes entries case blind
IF an$ <> "I" AND an$ <> "A" THEN GOTO prints.labels 'accepts only i or a
IF an$ = "I" THEN GOTO retrieve
IF an$ = "A" THEN GOTO git.by.call
make.labels:
PRINT
PRINT "Confirming QSO with ";q$(1,4) 'prints all labels
PRINT "DATE ";q$(1,2);": UTC ";q$(1,3)
PRINT "BAND ";q$(1,1);" Mhz ";mode$;": MY NR ";q$(1,5)
PRINT "TNX UR CQWW DX NR ";q$(1,6)
PRINT "73, CU NEXT YR. -- ";my.nam$
PRINT
RETURN
make.a.label:
PRINT 'prints one label
PRINT "Confirming QSO with ";qc$(1,4)
PRINT "DATE ";qc$(1,2);": UTC ";qc$(1,3)
PRINT "BAND ";qc$(1,1);" Mhz ";mode$;": MY NR ";qc$(1,5)
PRINT "TNX UR CQWW DX NR ";qc$(1,6)
PRINT "73, CU NEXT YR. -- ";my.nam$
PRINT
an$=""
GOTO retrieve
correct.log:
CLS
CLOSE
OPEN "CQWW"+yr$+mode$ AS #2 LEN = 75
FIELD #2,3 AS bn$,8 AS dayt$,5 AS tyme$,12 AS his.ca$,6 AS my.nr$,6 AS his.nr$,2 AS nu.zo$,6 AS nu.mul$,1 AS poynt$,6 AS na$,5 AS time.prev$,5 AS time.on$,5 AS sign.in$,5 AS sign.out$
qso.ptr=LOF(2)/75
retrieve:
PRINT SPC(5):INPUT "Enter band or Press (M) for Menu";ans$
ans$=UCASE$(ans$)
IF ans$="M" THEN GOTO menu.selection :ELSE band$=ans$
IF band$ <> "160" THEN band$=band$+" " 'adds space to other bands for matching
INPUT "Retrieve by (C)all or (S)erial Number ";rt$
rt$=UCASE$(rt$)
IF rt$="S" THEN INPUT "Enter serial nr. ";i: GOTO git.by.ptr
INPUT "Enter Call "; cal$
cal$=UCASE$(cal$)
GOTO get.call
git.by.call: 'This array used getting info
FOR qso.ptr = 1 TO LOF(2)/75 'for printing (A)ll labels
GET #2, qso.ptr
q$(1,1)=bn$
q$(1,2)=dayt$
q$(1,3)=tyme$
q$(1,4)=his.ca$
q$(1,5)=my.nr$
q$(1,6)=his.nr$
q$(1,7)=nu.zo$
q$(1,8) = nu.mul$
q$(1,9)=poynt$
pts= VAL(poynt$)
GOSUB make.labels
IF qso.ptr <> LOF(2)/75 THEN NEXT :ELSE GOSUB finish:GOTO menu.selection
get.call: x=0 :ctr=0
goagn:
FOR i = 1 TO qso.ptr
GET #2, i
q$(1,1)=bn$
ctr=INSTR(his.ca$," ")
q$(1,4)=LEFT$(his.ca$,ctr-1)
IF q$(1,1)=band$ AND q$(1,4) = cal$ THEN git.by.ptr :ELSE NEXT
PRINT "Call not found!":BEEP:BEEP:GOTO retrieve
git.by.ptr:
CLS 'This array used for correcting log entry
GET #2, i 'and getting info for printing single labels
qc$(1,1)=bn$
qc$(1,2)=dayt$
qc$(1,3)=tyme$
qc$(1,4)=his.ca$
qc$(1,5)=my.nr$
qc$(1,6)=his.nr$
qc$(1,7)=nu.zo$
qc$(1,8)=nu.mul$
qc$(1,9)=poynt$
IF an$ = "I" THEN GOTO make.a.label
Correct.entry:
PRINT "NOTE: Enter spaced Quotation Marks to delete an entry"
PRINT:
PRINT "Band Date Time Station SENT RCVD N Zone N Ctry PTS"