'July 18, 1990: ARRLDXScrn was prepared by George R. Leone, K6SG, a member of
'the River City Contesters, an Amateur Radio Club, and of the Sacramento Amiga
'Computer Club. He assumes no responsibility for any losses incurred by its
'use nor does he assume any responsibility for its upkeep. It is in the
'public domain and may be freely copied and distributed but may NOT be sold.
'This program will permit screen review all American Radio Relay League (ARRL) DX Contest
'reports and permits log corrections to be made. Use ARRLDXPrt for hard copy
'print out of reports.
CLEAR ,175000
WIDTH 80
DIM q$(1,13),qc$(1,13),a$(3000)
PRINT "Before proceeding I need some information: ":PRINT
LOCATE 5,10:INPUT "Your first name ";my.nam$ 'entries personalize reports
my.nam$=UCASE$(my.nam$)
LOCATE 7,10:INPUT "Your call ";my.cal$
my.cal$=UCASE$(my.cal$)
LOCATE 9,10:INPUT "ARRL Section ";my.sect$
my.sect$=UCASE$(my.sect$)
LOCATE 11,10:INPUT "State ";stat$
stat$=UCASE$(stat$)
yrin:
LOCATE 13,10:INPUT "Enter last two digits of contest year";yr$
IF yr$="" THEN GOTO yrin:
mode: LOCATE 15,34:PRINT " "
LOCATE 15,10:INPUT "Enter mode - SSB or CW ";mode$
mode$=UCASE$(mode$)
IF mode$ <> "SSB" AND mode$ <> "CW" THEN GOTO mode
LOCATE 17,10:INPUT "Transmitter power in watts ";pwr%
OPEN "ARRLDX"+yr$+mode$ AS #1 LEN = 70
FIELD #1,11 AS his.cal$,3 AS bnd$,8 AS dayt$,5 AS tyme$,6 AS my.nr$,6 AS his.nr$,5 AS time.prev$,5 AS time.on$,5 AS sign.in$,5 AS sign.out$,5 AS nu.mult$,1 AS poynt$,5 AS nat$
FIELD #1,11 AS his.cal$,3 AS bnd$,8 AS dayt$,5 AS tyme$,6 AS my.nr$,6 AS his.nr$,5 AS time.prev$,5 AS time.on$,5 AS sign.in$,5 AS sign.out$,5 AS nu.mult$,1 AS poynt$,5 AS nat$
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,1) 'prints all labels
PRINT "DATE ";q$(1,3);": UTC ";q$(1,4)
PRINT "BAND ";q$(1,2);" M ";mo$;":MY NR ";q$(1,5)
PRINT "TNX UR ARRL 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,1)
PRINT "DATE ";qc$(1,3);": UTC ";qc$(1,4)
PRINT "BAND ";qc$(1,2);" M ";mo$;":MY NR ";qc$(1,5)
PRINT "TNX UR ARRL DX NR ";qc$(1,6)
PRINT "73, CU NEXT YR. -- ";my.nam$
PRINT
GOTO retrieve
correct.log:
CLS
CLOSE
OPEN "ARRLDX"+yr$+mode$ AS #1 LEN = 70
FIELD #1,11 AS his.cal$,3 AS bnd$,8 AS dayt$,5 AS tyme$,6 AS my.nr$,6 AS his.nr$,5 AS time.prev$,5 AS time.on$,5 AS sign.in$,5 AS sign.out$,5 AS nu.mult$,1 AS poynt$,5 AS nat$
qso.ptr = 0
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(1)/70 'for printing (A)ll labels
GET #1, qso.ptr
q$(1,1)=his.cal$
q$(1,2)=bnd$
q$(1,3)=dayt$
q$(1,4)=tyme$
q$(1,5)=my.nr$
q$(1,6)=his.nr$
q$(1,11)=nu.mult$
q$(1,12)=poynt$
pts= pts+VAL(poynt$) 'adds points of each qso
q$(1,13)=nat$
GOSUB make.labels
IF qso.ptr <> LOF(1)/70 THEN NEXT :ELSE GOSUB finish:GOTO menu.selection
get.call: i=0 :ctr=0
goagn:
FOR i = 1 TO LOF(1)/70
GET #1, i
ctr = INSTR(his.cal$+" "," ") 'eliminates trailing blanks in
q$(1,1) = LEFT$(his.cal$,ctr-1) 'array to permit proper call sign match.
q$(1,2)=bnd$
IF q$(1,2) = band$ AND cal$ = q$(1,1) THEN GOTO git.by.ptr
NEXT
PRINT "Call not found!":BEEP:BEEP:GOTO retrieve
git.by.ptr:
CLS 'This array used for correcting log entry
GET #1, i 'and getting info for printing single labels
qc$(1,1)=his.cal$
qc$(1,2)=bnd$
qc$(1,3)=dayt$
qc$(1,4)=tyme$
qc$(1,5)=my.nr$
qc$(1,6)=his.nr$
qc$(1,7)=time.prev$
qc$(1,8)=time.om$
qc$(1,9)=sign.in$
qc$(1,10) =sign.out$
qc$(1,11)=nu.mult$
IF nu.mult$ = " " THEN multctr=multctr-1
qc$(1,12)=poynt$
pts= pts+VAL(poynt$)
qc$(1,13)=nat$
IF an$ = "I" THEN GOTO make.a.label
Correct.entry:
PRINT "NOTE: To clear a field enter a pair of spaced quotation marks."
PRINT "Band Date Time Station SENT RCVD NEW Mult PTS"