home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / bus_pers / ham.lha / CQWWDXPrt_v1.0 (.txt) < prev    next >
AmigaBASIC Source Code  |  1990-08-29  |  19KB  |  509 lines

  1. 'August 1990. CQWWDXPrt_1.0 was developed by George R. Leone, K6SG, a
  2. 'member of the River City Contesters and of the Sacramento Amiga Computer
  3. 'Club. Use this public domain program at your own risk. The developer assumes
  4. 'no responsibility for any losses whatsoever incurred by its use nor does he
  5. 'assume any for upkeep or debugging of the program. It may be freely copied 
  6. 'and distributed but not sold for profit.
  7.  
  8. CLEAR ,175000
  9. WIDTH 80
  10. DIM q$(1,9) ,qc$(1,9),a$(3000),scor$(6,5),cm$(800),zm$(250)
  11.                                
  12.   PRINT "Before proceeding I need some information: ":PRINT
  13.   LOCATE 5,10:INPUT "Your first name ";my.nam$        'entries personalize reports
  14.   my.nam$=UCASE$(my.nam$)
  15.   LOCATE 7,10:INPUT "Your call ";my.cal$
  16.   my.cal$=UCASE$(my.cal$)
  17.   LOCATE 9,10:INPUT "State ";stat$
  18.   stat$=UCASE$(stat$)
  19.   LOCATE 11,10:INPUT "Your Country ";myctry$
  20.   myctry$=UCASE$(myctry$)
  21.   yrin:
  22.   LOCATE 13,10:INPUT "Enter all digits of contest year";year$
  23.   IF year$="" THEN GOTO yrin:
  24.   yr$=RIGHT$(year$,2)
  25.  mode: LOCATE 15,34:PRINT "      "
  26.   LOCATE 15,10:INPUT "Enter mode - SSB or CW ";mode$
  27.   mode$=UCASE$(mode$)
  28.   IF mode$ <> "SSB" AND mode$ <> "CW" THEN GOTO mode
  29.  
  30. menu.selection:
  31.   CLS
  32.   PRINT:PRINT TAB(18);"CQWW DX CONTEST REPORT PRINTOUT SELECTION"
  33.   PRINT:PRINT:PRINT TAB(15);"1.  Print Log "
  34.   PRINT:PRINT TAB(15);"2.  Print Summary Sheet"
  35.   PRINT:PRINT TAB(15);"3.  Print Dupesheet  "
  36.   PRINT:PRINT TAB(15);"4.  Print Multiplier Check Sheets"
  37.   PRINT:PRINT TAB(15);"5.  Make Log Corrections "
  38.   PRINT:PRINT TAB(15);"6.  Print Labels  "
  39.   PRINT:PRINT TAB(15);"7.  Main Menu "
  40.   LOCATE 19,10:PRINT "NOTE: Set printer to top of page."
  41.   PRINT:PRINT:INPUT "Pick a number ";pn$
  42.   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
  43.   IF pn$="1" THEN GOSUB clr.ctrs:GOTO prints.log.title
  44.   IF pn$="2" THEN GOTO prints.summary.sheet
  45.   IF pn$="3" THEN GOSUB menu.first:GOTO prints.dupe.sheet
  46.   IF pn$="4" THEN GOSUB menu.first:GOTO prints.mult.list
  47.   IF pn$="5" THEN GOSUB menu.first:GOTO correct.log
  48.   IF pn$="6" THEN GOTO prints.labels
  49.   IF pn$="7" THEN CLOSE:CLS:CLEAR:CHAIN "CQWWDXBoot1.0"
  50.  
  51. prints.log.title:
  52.   CLS
  53. getinfo: CLOSE
  54.   GOSUB clr.ctrs
  55.  
  56.   LOCATE 5,10:INPUT "Enter band for which log is desired"; band$
  57.   IF band$ <> "1.8" AND band$ <> "3.5" AND band$ <> "7.0" THEN band$=band$+" "
  58.   OPEN "CQWW"+yr$+mode$ AS #2 LEN = 75
  59.   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$
  60.   qso.ptr=LOF(2)/75
  61. again.sam:
  62.   pg=pg+1
  63.   LPRINT SPC(22);"CQ**** WORLD WIDE DX CONTEST ****CQ       Page ";pg             
  64.   LPRINT:LPRINT "CALL USED: ";my.cal$;"   MODE: ";mode$;SPC(8);"Log for ";band$;" Mhz. Band"
  65.   LPRINT "-----------------------------------------------------------------------------"
  66.   LPRINT "Date      Time   Station      SENT     RCVD    Zone   Ctry    PTS   QSO#"
  67.   LPRINT "-----------------------------------------------------------------------------"
  68.  
  69. git: IF x > qso.ptr THEN GOTO last.page
  70.    x= x + 1
  71.                                  'starts qso counter                                      
  72.    GET #2, x
  73.      q$(1,1)=bn$
  74.      IF q$(1,1) <> band$ THEN  git 
  75.      q$(1,2)=dayt$
  76.      q$(1,3)=tyme$
  77.      q$(1,4)=his.ca$
  78.      q$(1,5)=my.nr$
  79.      q$(1,6)=his.nr$                
  80.      q$(1,8)=nu.mul$
  81.      q$(1,7) = nu.zo$
  82.      q$(1,9)=poynt$
  83.      pts= VAL(poynt$)
  84.  
  85.   IF band$="1.8" THEN c=1
  86.   IF band$="3.5" THEN c=2
  87.   IF band$="7.0" THEN c=3
  88.   IF band$="14 " THEN c=4
  89.   IF band$="21 " THEN c=5
  90.   IF band$="28 " THEN c=6
  91.   
  92.   IF  nu.mul$ <> "      " THEN ctr1=ctr1+1    
  93.   IF  nu.zo$ <> "  " THEN ctr1a=ctr1a+1
  94.   ctr1b = ctr1b + pts                                  
  95.   ctr1c = ctr1c + 1 
  96.   scor$(c,1)=STR$(ctr1)
  97.   scor$(c,2)=STR$(ctr1a)
  98.   scor$(c,3)=STR$(ctr1b)
  99.   scor$(c,4)=STR$(ctr1c)
  100.   LPRINT q$(1,2);" ";" ";q$(1,3);"  "q$(1,4);" ";q$(1,5);"   ";q$(1,6);"  ";q$(1,7);"     ";q$(1,8);"   ";q$(1,9);"   ";x
  101.    IF ctr1c = LOF(2)/75  THEN GOTO last.page
  102.    IF ctr1c MOD 50 = 0 THEN GOSUB print.footer     'puts 22 lines on screen
  103.                                          'marks qso counter at end of page
  104.      GOTO git
  105.      GOTO last.page
  106.  
  107. print.footer:
  108.   LPRINT:LPRINT "Band  QSO'S  Qso Points  Zones     Countries     "    'footnotes each page with statistics
  109.   LPRINT band$;"    ";scor$(c,4);"        ";scor$(c,3);"       ";scor$(c,2);"      ";scor$(c,1)
  110.   LPRINT CHR$(13) CHR$(12)
  111.   GOTO again.sam
  112.  
  113. clr.ctrs: pg=0: x=0:
  114.   'qsoctr=0 
  115.   ctr1=0        'Country mult counter
  116.   ctr1a=0       'Zone mult counter
  117.   ctr1b=0       'Qso point counter         
  118.   ctr1c=0       'Band qso counter
  119.   RETURN
  120.  
  121. prints.mult.list:
  122.    CLS
  123.   LOCATE 8,5:PRINT "1. Print Country Multiplier List."
  124.   LOCATE 10,5:PRINT "2. Print Zone Multiplier List."
  125.   LOCATE 12,5:PRINT "3. Main Menu."
  126.   LOCATE 15,5:INPUT "Pick a number " ,  m$
  127.   IF m$ <> "1" AND m$ <> "2" AND m$ <> "3" THEN prints.mult.list
  128.   IF m$ = "1" THEN GOTO git.a.mult
  129.   IF m$ = "2" THEN GOTO git.a.mult
  130.   IF m$ = "3" THEN GOTO menu.selection
  131.  
  132. last.page:LPRINT:
  133.   LPRINT "Band   QSO's   Qso Points  Zones   Countries    "    'footnotes each page with statistics
  134.   LPRINT band$;"    ";scor$(c,4);"       ";scor$(c,3);"        ";scor$(c,2);"        ";scor$(c,1)
  135.   LPRINT CHR$(13) CHR$(12)
  136.   GOTO menu.selection
  137.  
  138. finish:
  139.   PRINT:PRINT
  140.   PRINT "<Press any key to continue.>";
  141.   hit$ = INPUT$(1) 
  142.   RETURN
  143.  
  144. prints.title:
  145.   CLS
  146.   IF pn$ = "3" THEN tit$ = "DUPE"
  147.   IF m$ = "1" THEN tit$ = "COUNTRY"
  148.   IF m$ = "2" THEN tit$ = "ZONE"
  149.   LPRINT TAB(3);"Call...";my.cal$;SPC(10);year$+" CQWW DX CONTEST " ;tit$;" CHECKSHEET         Page ";pg
  150.   LPRINT STRING$(77,"-") 
  151.   RETURN
  152.  
  153. menu.first:
  154.    an$=""
  155.    pg=0:x=0
  156.    RETURN
  157.  
  158. prints.dupe.sheet: CLOSE
  159.   OPEN "CQWW"+yr$+mode$ AS #2 LEN = 75
  160.   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$
  161.   qso.ptr=LOF(2)/75
  162.   IF pn$ = "3" THEN GOSUB git.a.call
  163.   GOSUB d.shell.sort
  164.   IF pn$="3" THEN GOTO dupe.output
  165.  
  166. git.a.call:                                   
  167.   FOR xd=1 TO LOF(2)/75
  168.   GET #2, xd
  169.   a$(xd)=bn$+" "+his.ca$
  170.     NEXT xd
  171.   RETURN
  172.  
  173. c.shell.sort: 
  174.   z=xd
  175.   t=xd-1
  176.   CLS
  177.  
  178. c.shell.algorithm:
  179.   n=LOF(2)/75
  180.   l=(2^INT(LOG(n)/LOG(2)))-1
  181.  
  182. c.start:
  183.   l=INT(l/2)
  184.   IF l < 1 THEN sorted.output
  185.   FOR j = 1 TO l
  186.   FOR k=j + l TO n STEP l
  187.    i=k
  188.     t$=cm$(i)
  189.    c.compare:
  190.     IF cm$(i-l) <= t$ THEN c.substitute
  191.     cm$(i)=cm$(i-l)
  192.    i=i-l
  193.    IF i > l THEN c.compare
  194.  
  195. c.substitute:
  196.   cm$(i)=t$
  197.    LOCATE 1,1: PRINT t$                   
  198.       NEXT k
  199.     NEXT j
  200.   GOTO c.start
  201.  
  202. sorted.output:pg=0: 
  203.   IF pn$ = "3" THEN GOTO dupe.output 
  204.   IF m$ = "1" THEN GOTO ctry.output
  205.   IF m$ = "2" THEN GOTO zone.output
  206.  
  207. dupe.output: pg=pg+1
  208.   GOSUB prints.title
  209.   FOR xd=1 TO n
  210.   ptr=ptr+1
  211.   IF ptr > 5 THEN LPRINT:ptr=1
  212.    LPRINT a$(xd);              'prints calls in alpha/num sequence
  213.    
  214.    IF xd = n THEN GOTO last.page1
  215.    IF xd MOD 250 = 0 THEN GOTO dupe.output        'puts 200 calls per page
  216.     NEXT xd
  217.  
  218. last.page1:
  219.   LPRINT CHR$(13) CHR$(12)
  220.   GOTO menu.selection
  221.  
  222. d.shell.sort: 
  223.   z=xd
  224.   t=xd-1
  225.   CLS
  226.  
  227. d.shell.algorithm:
  228.   n=LOF(2)/75
  229.   l=(2^INT(LOG(n)/LOG(2)))-1
  230.  
  231. d.start:
  232.   l=INT(l/2)
  233.   IF l < 1 THEN sorted.output
  234.   FOR j = 1 TO l
  235.   FOR k=j + l TO n STEP l
  236.    i=k
  237.     t$=a$(i)
  238.    d.compare:
  239.     IF a$(i-l) <= t$ THEN d.substitute
  240.     a$(i)=a$(i-l)
  241.    i=i-l
  242.    IF i > l THEN d.compare
  243.  
  244. d.substitute:
  245.   a$(i)=t$
  246.    LOCATE 1,1: PRINT t$                   
  247.       NEXT k
  248.     NEXT j
  249.   GOTO d.start
  250.  
  251.    
  252. ctry.output: pg=pg+1
  253.   GOSUB prints.title
  254.   y=0
  255.    cop:                                   
  256.     y=y+1
  257.     IF cm$(y) = "" THEN GOTO cop  
  258.     IF cm$(y) <> "" THEN LPRINT cm$(y),
  259.     IF y = n THEN GOTO last.page1
  260.     IF y MOD 200 = 0 THEN GOTO ctry.output        'puts 200 calls on screen
  261.      GOTO cop
  262.  
  263. z.shell.sort: 
  264.   z=xd
  265.   t=xd-1
  266.   CLS
  267.  
  268. z.shell.algorithm:
  269.   n=LOF(2)/75
  270.   l=(2^INT(LOG(n)/LOG(2)))-1
  271.  
  272. z.start:
  273.   l=INT(l/2)
  274.   IF l < 1 THEN sorted.output
  275.   FOR j = 1 TO l
  276.   FOR k=j + l TO n STEP l
  277.    i=k
  278.     t$=zm$(i)
  279.     z.compare:
  280.     IF zm$(i-l) <= t$ THEN z.substitute
  281.     zm$(i)=zm$(i-l)
  282.    i=i-l
  283.    IF i > l THEN z.compare
  284.  
  285. z.substitute:
  286.   zm$(i)=t$
  287.    LOCATE 1,1: PRINT t$                   
  288.       NEXT k
  289.     NEXT j
  290.   GOTO z.start
  291.  
  292. zone.output: pg=pg+1
  293.   GOSUB prints.title                  
  294.   y=0
  295.   zop:
  296.    y=y+1
  297.     IF zm$(y) = "" THEN GOTO zop  
  298.     IF zm$(y) <> "" THEN LPRINT zm$(y),
  299.     IF y = n THEN GOTO last.page1
  300.     IF y MOD 200 = 0 THEN GOTO ctry.output        'puts 200 calls on screen
  301.      GOTO zop
  302.  
  303. git.a.mult: CLOSE
  304.   OPEN "CQWW"+yr$+mode$ AS #2 LEN = 75
  305.   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$
  306.   qso.ptr=LOF(2)/75
  307.   IF m$ = "1" THEN ctryit
  308.   IF m$ = "2" THEN zoneit
  309.  
  310. ctryit:                                
  311.   FOR xd=1 TO LOF(2)/75
  312.   GET #2, xd
  313.    IF nu.mul$ <> "      " THEN cm$(xd)=bn$+" "+nu.mul$ 
  314.    NEXT
  315.   GOTO c.shell.sort
  316.  
  317. zoneit:                                
  318.   FOR xd=1 TO LOF(2)/75
  319.   GET #2, xd
  320.    IF nu.zo$ <> "  " THEN zm$(xd)=bn$+" "+nu.zo$
  321.    NEXT
  322.   GOTO z.shell.sort
  323.  
  324. prints.summary.sheet:
  325.   LPRINT TAB(36);year$
  326.   LPRINT TAB(22);"CQ**** WORLD WIDE DX CONTEST ****CQ"
  327.   LPRINT STRING$(77,"-")
  328.   LPRINT:LPRINT TAB(15);"CALL SIGN: ";my.cal$;TAB(45);"COUNTRY: ";myctry$    
  329.   LPRINT:LPRINT TAB(5);"MODE: ";mode$;TAB(20);"( )Single Op.,All Band    ( )Multi-Op. Single Transmitter"
  330.   LPRINT TAB(20);"( )Single Op.____M Band   ( )Multi-Op. Multi-Transmitter"
  331.   LPRINT "    QRP-5w or less:( ) "
  332.   LPRINT
  333.   LPRINT SPC(5);"Band   Valid QSOs  QSO Points  Zone Mult Ctry Mult  Score"
  334.   LPRINT SPC(5);STRING$(72,"-")
  335.   LPRINT TAB(7);"160";TAB(15);scor$(1,4);TAB(27);scor$(1,3)TAB(39);scor$(1,2);TAB(50);scor$(1,1);TAB(60);(VAL(scor$(1,1))+VAL(scor$(1,2)))*VAL(scor$(1,3))  
  336.   LPRINT TAB(7);"80";TAB(15);scor$(2,4);TAB(27);scor$(2,3)TAB(39);scor$(2,2);TAB(50);scor$(2,1);TAB(60);(VAL(scor$(2,1))+VAL(scor$(2,2)))*VAL(scor$(2,3)) 
  337.   LPRINT TAB(7);"40";TAB(15);scor$(3,4);TAB(27);scor$(3,3)TAB(39);scor$(3,2);TAB(50);scor$(3,1);TAB(60);(VAL(scor$(3,1))+VAL(scor$(3,2)))*VAL(scor$(3,3))  
  338.   LPRINT TAB(7);"20";TAB(15);scor$(4,4);TAB(27);scor$(4,3)TAB(39);scor$(4,2);TAB(50);scor$(4,1);TAB(60);(VAL(scor$(4,1))+VAL(scor$(4,2)))*VAL(scor$(4,3)) 
  339.   LPRINT TAB(7);"15";TAB(15);scor$(5,4);TAB(27);scor$(5,3)TAB(39);scor$(5,2);TAB(50);scor$(5,1);TAB(60);(VAL(scor$(5,1))+VAL(scor$(5,2)))*VAL(scor$(5,3))
  340.   LPRINT TAB(7);"10";TAB(15);scor$(6,4);TAB(27);scor$(6,3)TAB(39);scor$(6,2);TAB(50);scor$(6,1);TAB(60);(VAL(scor$(6,1))+VAL(scor$(6,2)))*VAL(scor$(6,3)) 
  341.   LPRINT SPC(5);STRING$(72,"-")
  342.   tot4=VAL(scor$(1,4))+VAL(scor$(2,4))+VAL(scor$(3,4))+VAL(scor$(4,4))+VAL(scor$(5,4))+VAL(scor$(6,4)) 
  343.   tot3=VAL(scor$(1,3))+VAL(scor$(2,3))+VAL(scor$(3,3))+ VAL(scor$(4,3))+VAL(scor$(5,3))+VAL(scor$(6,3)) 
  344.   tot2=VAL(scor$(1,2))+VAL(scor$(2,2))+VAL(scor$(3,2))+ VAL(scor$(4,2))+VAL(scor$(5,2))+VAL(scor$(6,2))
  345.   tot1=VAL(scor$(1,1))+VAL(scor$(2,1))+VAL(scor$(3,1))+ VAL(scor$(4,1))+VAL(scor$(5,1))+VAL(scor$(6,1)) 
  346.   LPRINT TAB(3);"ALL BANDS";TAB(15);tot4;TAB(27);tot3;TAB(39);tot2;TAB(50);tot1;TAB(60);tot3*(tot1+tot2)
  347.   LPRINT TAB(60);
  348.   LPRINT STRING$(77,"-")
  349.   LPRINT:LPRINT "Station Description:";STRING$(57,"_")
  350.   LPRINT:LPRINT STRING$(77,"_")
  351.   LPRINT:LPRINT "Antenna(s): ";STRING$(65,"_")
  352.   LPRINT:LPRINT STRING$(77,"_")
  353.   LPRINT:LPRINT "Operators:"; STRING$(67,"_")
  354.   LPRINT:LPRINT STRING$(77,"_")
  355.   LPRINT:LPRINT "Remarks: ";STRING$(68,"_")
  356.   LPRINT:LPRINT STRING$(77,"_")
  357.   LPRINT:LPRINT STRING$(77,"_")
  358.   LPRINT:LPRINT "Club Competition / Minimum 3 logs:";STRING$(43,"_")
  359.   LPRINT:LPRINT "This is to certify that in this contest I have operated my transmitter
  360.   LPRINT "within the limitations of my license and have observed fully the rules and
  361.   LPRINT "regulations of the contest."
  362.   LPRINT TAB(27);"Signature";STRING$(42,"_")
  363.   LPRINT "Type or Print"
  364.   LPRINT:LPRINT "Name";STRING$(47,"_");"Call";STRING$(22,"_")
  365.   LPRINT:LPRINT "Address";STRING$(70,"_")
  366.   LPRINT:LPRINT "City";STRING$(73,"_")
  367.   LPRINT:LPRINT "State or Country";STRING$(35,"_");"ZIP";STRING$(23,"_")
  368.   LPRINT CHR$(13) CHR$(12)
  369.   GOTO menu.selection
  370.  
  371. prints.labels:
  372.   CLOSE 
  373.   CLS
  374.   OPEN "CQWW"+yr$+mode$ AS #2 LEN = 75
  375.   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$
  376.   qso.ptr=LOF(2)/75
  377.   i=0
  378.   LOCATE 3,5:INPUT "Do you want to print (S)ingle or (A)ll labels? "; an$
  379.   an$=UCASE$(an$)                          'makes entries case blind
  380.   IF an$ <> "S" AND an$ <> "A" THEN GOTO prints.labels  'accepts only i or a
  381.   IF an$ = "S" THEN GOTO retrieve
  382.   IF an$ = "A" THEN GOTO git.by.call
  383.   
  384. make.labels:
  385.   LPRINT
  386.   LPRINT "Confirming QSO with ";q$(1,4)              'prints all labels
  387.   LPRINT "DATE ";q$(1,2);": UTC ";q$(1,3)
  388.   LPRINT "BAND ";q$(1,1);" Mhz ";mode$;":MY NR ";q$(1,5)
  389.   LPRINT "TNX UR CQWW DX NR ";q$(1,6)
  390.   LPRINT "73, CU NEXT YR. -- ";my.nam$
  391.   LPRINT
  392.   RETURN
  393.  
  394. make.a.label:
  395.   LPRINT                                               'prints one label
  396.   LPRINT "Confirming QSO with ";qc$(1,4)
  397.   LPRINT "DATE ";qc$(1,2);": UTC ";qc$(1,3)
  398.   LPRINT "BAND ";qc$(1,1);" Mhz ";mode$;":MY NR ";qc$(1,5)
  399.   LPRINT "TNX UR CQWW DX NR ";qc$(1,6)
  400.   LPRINT "73, CU NEXT YR. -- ";my.nam$
  401.   LPRINT
  402.   GOTO retrieve
  403.  
  404. correct.log:
  405.   CLS
  406.   CLOSE
  407.   OPEN "CQWW"+yr$+mode$ AS #2 LEN = 75
  408.   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$
  409.   qso.ptr=LOF(2)/75
  410.  
  411. retrieve:
  412.   PRINT SPC(5):INPUT "Enter band or Press (M) for Menu";ans$
  413.   ans$=UCASE$(ans$)
  414.   IF ans$="M" THEN GOTO menu.selection :ELSE band$=ans$
  415.   IF band$ <> "1.8" AND band$ <> "3.5" AND band$ <> "7.0" THEN band$=band$+" "      'adds space to other bands for matching
  416.   INPUT "Retrieve by (C)all or (S)erial Number ";rt$
  417.   rt$=UCASE$(rt$)
  418.   IF rt$="S" THEN INPUT "Enter serial nr. ";i: GOTO git.by.ptr
  419.   INPUT "Enter Call "; cal$
  420.   cal$=UCASE$(cal$)
  421.   GOTO get.call
  422.  
  423. git.by.call:                        'This array used getting info
  424.   FOR qso.ptr = 1 TO LOF(2)/75       'for printing (A)ll labels
  425.    GET #2, qso.ptr
  426.      q$(1,1)=bn$
  427.      q$(1,2)=dayt$
  428.      q$(1,3)=tyme$
  429.      q$(1,4)=his.ca$
  430.      q$(1,5)=my.nr$
  431.      q$(1,6)=his.nr$                
  432.      q$(1,7)=nu.zo$   
  433.      q$(1,8) = nu.mul$
  434.      q$(1,9)=poynt$
  435.      pts= VAL(poynt$)
  436.      GOSUB make.labels
  437.      IF qso.ptr <> LOF(2)/75  THEN NEXT :ELSE GOSUB finish:GOTO menu.selection
  438.     
  439. get.call: i=0 :ctr=0
  440.   
  441. goagn:                              
  442.     FOR i = 1 TO qso.ptr
  443.    GET #2, i
  444.      q$(1,1)=bn$
  445.      ctr=INSTR(his.ca$," ")
  446.      q$(1,4)=LEFT$(his.ca$,ctr-1)
  447.      IF q$(1,1)=band$ AND q$(1,4) = cal$ THEN git.by.ptr :ELSE NEXT
  448.    PRINT "Call not found!":BEEP:BEEP:GOTO retrieve
  449.                                         
  450. git.by.ptr:                                 
  451.   CLS                            'This array used for correcting log entry
  452.   GET #2, i                      'and getting info for printing single labels
  453.      qc$(1,1)=bn$
  454.      qc$(1,2)=dayt$
  455.      qc$(1,3)=tyme$
  456.      qc$(1,4)=his.ca$
  457.      qc$(1,5)=my.nr$
  458.      qc$(1,6)=his.nr$                
  459.      qc$(1,7)=nu.zo$   
  460.      qc$(1,8)=nu.mul$
  461.      qc$(1,9)=poynt$
  462.   IF an$ = "S"  THEN GOTO make.a.label
  463.  
  464. Correct.entry:
  465.   PRINT "NOTE: Enter a pair of spaced Quotation Marks at the prompt to 
  466.   PRINT "delete an item."
  467.   PRINT                                                      
  468.   PRINT "Band  Date      Time   Station      SENT    RCVD   N Zone  N Ctry    PTS"
  469.   PRINT qc$(1,1);"   ";qc$(1,2);"  ";qc$(1,3);"  "qc$(1,4);" ";qc$(1,5);"  ";qc$(1,6);"   ";qc$(1,7);"    ";qc$(1,8);"     ";qc$(1,9)
  470.    INPUT "Band    :",ba$
  471.    IF ba$ <> "" THEN qc$(1,1)=ba$ 
  472.    INPUT "Date    :",m.dat$                   
  473.    IF m.dat$ <> "" THEN qc$(1,2)=m.dat$       
  474.    INPUT "Time    :",m.time$                 
  475.    IF m.time$ <> "" THEN qc$(1,3)=m.time$
  476.    INPUT "Station :", h.cal$
  477.    h.cal$=UCASE$(h.cal$)
  478.    IF h.cal$ <> "" THEN  qc$(1,4)=h.cal$
  479.    INPUT "Sent    :",m.numb$
  480.    IF m.numb$ <> "" THEN qc$(1,5)=m.numb$ 
  481.    INPUT "Received:",h.nr$
  482.    IF h.nr$ <> "" THEN qc$(1,6)=h.nr$
  483.    INPUT "New Zone:",n.zo$ 
  484.    IF n.zo$ <> "" THEN qc$(1,7)=n.zo$
  485.    INPUT "New Mult:",n.mul$
  486.    n.mul$=UCASE$(n.mul$)
  487.    IF n.mul$ <> "" THEN qc$(1,8) = n.mul$
  488.    INPUT "Points  :",pint$
  489.    IF pint$ <> "" THEN qc$(1,9)=pint$
  490.   PRINT "Band  Date      Time   Station      SENT    RCVD   N Zone  N Ctry    PTS"
  491.   PRINT qc$(1,1);"   ";qc$(1,2);"  ";qc$(1,3);"  "qc$(1,4);" ";qc$(1,5);"  ";qc$(1,6);"   ";qc$(1,7);"    ";qc$(1,8);"     ";qc$(1,9)
  492. inky: a$=INKEY$:IF a$="" THEN  GOTO inky
  493. File.it:             'enters corrected or non-corrected log record
  494.   LSET bn$ = qc$(1,1) 
  495.   LSET dayt$ = qc$(1,2)
  496.   LSET tyme$ = qc$(1,3)
  497.   LSET his.cal$ = qc$(1,4)
  498.   LSET my.nr$ = qc$(1,5)
  499.   LSET his.nr$ =qc$(1,6)
  500.   LSET nu.zo$ = qc$(1,7)
  501.   LSET nu.mul$ =qc$(1,8)
  502.   LSET poynt$ = qc$(1,9)
  503.   
  504.     PUT #2, i                 
  505.   CLS
  506.   GOTO retrieve
  507.  
  508.  
  509.