LOCATE 19,10:PRINT "NOTE: Set printer to top of page."
PRINT:PRINT:INPUT "Pick a number ";pn$
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 GOSUB menu.first: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
LOCATE 5,10:INPUT "Enter band for which log is desired"; band$
IF band$ <> "1.8" AND band$ <> "3.5" AND band$ <> "7.0" THEN band$=band$+" "
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
LPRINT SPC(22);"CQ**** WORLD WIDE DX CONTEST ****CQ Page ";pg
LPRINT:LPRINT "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
IF pn$ = "3" THEN GOSUB git.a.call
GOSUB d.shell.sort
IF pn$="3" THEN GOTO dupe.output
git.a.call:
FOR xd=1 TO LOF(2)/75
GET #2, xd
a$(xd)=bn$+" "+his.ca$
NEXT xd
RETURN
c.shell.sort:
z=xd
t=xd-1
CLS
c.shell.algorithm:
n=LOF(2)/75
l=(2^INT(LOG(n)/LOG(2)))-1
c.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$=cm$(i)
c.compare:
IF cm$(i-l) <= t$ THEN c.substitute
cm$(i)=cm$(i-l)
i=i-l
IF i > l THEN c.compare
c.substitute:
cm$(i)=t$
LOCATE 1,1: PRINT t$
NEXT k
NEXT j
GOTO c.start
sorted.output:pg=0:
IF pn$ = "3" THEN GOTO dupe.output
IF m$ = "1" THEN GOTO ctry.output
IF m$ = "2" THEN GOTO zone.output
dupe.output: pg=pg+1
GOSUB prints.title
FOR xd=1 TO n
ptr=ptr+1
IF ptr > 5 THEN LPRINT:ptr=1
LPRINT a$(xd); 'prints calls in alpha/num sequence
IF xd = n THEN GOTO last.page1
IF xd MOD 250 = 0 THEN GOTO dupe.output 'puts 200 calls per page
NEXT xd
last.page1:
LPRINT CHR$(13) CHR$(12)
GOTO menu.selection
d.shell.sort:
z=xd
t=xd-1
CLS
d.shell.algorithm:
n=LOF(2)/75
l=(2^INT(LOG(n)/LOG(2)))-1
d.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)
d.compare:
IF a$(i-l) <= t$ THEN d.substitute
a$(i)=a$(i-l)
i=i-l
IF i > l THEN d.compare
d.substitute:
a$(i)=t$
LOCATE 1,1: PRINT t$
NEXT k
NEXT j
GOTO d.start
ctry.output: pg=pg+1
GOSUB prints.title
y=0
cop:
y=y+1
IF cm$(y) = "" THEN GOTO cop
IF cm$(y) <> "" THEN LPRINT cm$(y),
IF y = n THEN GOTO last.page1
IF y MOD 200 = 0 THEN GOTO ctry.output 'puts 200 calls on screen
GOTO cop
z.shell.sort:
z=xd
t=xd-1
CLS
z.shell.algorithm:
n=LOF(2)/75
l=(2^INT(LOG(n)/LOG(2)))-1
z.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$=zm$(i)
z.compare:
IF zm$(i-l) <= t$ THEN z.substitute
zm$(i)=zm$(i-l)
i=i-l
IF i > l THEN z.compare
z.substitute:
zm$(i)=t$
LOCATE 1,1: PRINT t$
NEXT k
NEXT j
GOTO z.start
zone.output: pg=pg+1
GOSUB prints.title
y=0
zop:
y=y+1
IF zm$(y) = "" THEN GOTO zop
IF zm$(y) <> "" THEN LPRINT zm$(y),
IF y = n THEN GOTO last.page1
IF y MOD 200 = 0 THEN GOTO ctry.output 'puts 200 calls on screen
GOTO zop
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 cm$(xd)=bn$+" "+nu.mul$
NEXT
GOTO c.shell.sort
zoneit:
FOR xd=1 TO LOF(2)/75
GET #2, xd
IF nu.zo$ <> " " THEN zm$(xd)=bn$+" "+nu.zo$
NEXT
GOTO z.shell.sort
prints.summary.sheet:
LPRINT TAB(36);year$
LPRINT TAB(22);"CQ**** WORLD WIDE DX CONTEST ****CQ"
LPRINT:LPRINT "State or Country";STRING$(35,"_");"ZIP";STRING$(23,"_")
LPRINT 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 (S)ingle or (A)ll labels? "; an$
an$=UCASE$(an$) 'makes entries case blind
IF an$ <> "S" AND an$ <> "A" THEN GOTO prints.labels 'accepts only i or a
IF an$ = "S" THEN GOTO retrieve
IF an$ = "A" THEN GOTO git.by.call
make.labels:
LPRINT
LPRINT "Confirming QSO with ";q$(1,4) 'prints all labels
LPRINT "DATE ";q$(1,2);": UTC ";q$(1,3)
LPRINT "BAND ";q$(1,1);" Mhz ";mode$;":MY NR ";q$(1,5)
LPRINT "TNX UR CQWW DX NR ";q$(1,6)
LPRINT "73, CU NEXT YR. -- ";my.nam$
LPRINT
RETURN
make.a.label:
LPRINT 'prints one label
LPRINT "Confirming QSO with ";qc$(1,4)
LPRINT "DATE ";qc$(1,2);": UTC ";qc$(1,3)
LPRINT "BAND ";qc$(1,1);" Mhz ";mode$;":MY NR ";qc$(1,5)
LPRINT "TNX UR CQWW DX NR ";qc$(1,6)
LPRINT "73, CU NEXT YR. -- ";my.nam$
LPRINT
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$ <> "1.8" AND band$ <> "3.5" AND band$ <> "7.0" 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: i=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$ = "S" THEN GOTO make.a.label
Correct.entry:
PRINT "NOTE: Enter a pair of spaced Quotation Marks at the prompt to
PRINT "delete an item."
PRINT
PRINT "Band Date Time Station SENT RCVD N Zone N Ctry PTS"