From 201b29993c395e20650970653e071f6f6b2c6701 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 29 Aug 2018 14:18:56 -0400 Subject: [PATCH] More fixes related to nonstandard calls. --- lib/77bit/messages.txt | 4 ++-- lib/77bit/packjt77.f90 | 18 ++++++++++++------ lib/ft8/ft8b_2.f90 | 11 +++++++++-- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/lib/77bit/messages.txt b/lib/77bit/messages.txt index 4370fe411..4d29e1189 100644 --- a/lib/77bit/messages.txt +++ b/lib/77bit/messages.txt @@ -55,7 +55,7 @@ PA9XYZ 590003 IO91NP G4ABC/P R 570007 JO22DB PA9XYZ G4ABC/P RR73 -8. Compound or nonstandard callsign calls CQ +8. Compound or nonstandard calls CQ ----------------------------------------------------------- CQ PJ4/K1ABC PJ4/K1ABC @@ -64,7 +64,7 @@ W9XYZ -11 PJ4/K1ABC RRR PJ4/K1ABC 73 -9. Compound or nonstandard callsign answers a CQ +9. Compound or nonstandard answers CQ ----------------------------------------------------------- CQ W9XYZ EN37 YW18FIFA diff --git a/lib/77bit/packjt77.f90 b/lib/77bit/packjt77.f90 index 6220afdf6..6af3b3bf9 100644 --- a/lib/77bit/packjt77.f90 +++ b/lib/77bit/packjt77.f90 @@ -16,6 +16,10 @@ subroutine hash10(n10,c13) do i=1,nzhash if(ihash10(i).eq.n10) then c13=callsign(i) + if(c13(1:1).ne.'<') then + n=len(trim(c13)) + c13='<'//trim(c13)//'>'//' ' + endif go to 900 endif enddo @@ -31,11 +35,14 @@ subroutine hash12(n12,c13) do i=1,nzhash if(ihash12(i).eq.n12) then c13=callsign(i) + if(c13(1:1).ne.'<') then + n=len(trim(c13)) + c13='<'//trim(c13)//'>'//' ' + endif go to 900 endif enddo - 900 return end subroutine hash12 @@ -48,6 +55,10 @@ subroutine hash22(n22,c13) do i=1,nzhash if(ihash22(i).eq.n22) then c13=callsign(i) + if(c13(1:1).ne.'<') then + n=len(trim(c13)) + c13='<'//trim(c13)//'>'//' ' + endif go to 900 endif enddo @@ -77,7 +88,6 @@ integer function ihashcall(c0,m) return end function ihashcall - subroutine save_hash_call(c13,n10,n12,n22) character*13 c13 @@ -602,10 +612,6 @@ subroutine unpack28(n28_0,c13) ! This is a 22-bit hash of a callsign n22=n28 call hash22(n22,c13) !Retrieve callsign from hash table - if(c13(1:1).ne.'<') then - n=len(trim(c13)) - c13='<'//c13(1:n)//'>'//' ' - endif go to 900 endif diff --git a/lib/ft8/ft8b_2.f90 b/lib/ft8/ft8b_2.f90 index 19ce659a7..d755f6914 100644 --- a/lib/ft8/ft8b_2.f90 +++ b/lib/ft8/ft8b_2.f90 @@ -8,9 +8,10 @@ subroutine ft8b_2(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly, & include 'ft8_params.f90' parameter(NP2=2812) character*37 msg37,msgsent37 - character*12 mycall12,hiscall12 + character*12 mycall12,hiscall12,hiscall12_0 character*77 c77 character*6 mycall6,hiscall6,c1,c2 + character*13 c13 character*87 cbits real a(5) real s8(0:7,NN) @@ -43,7 +44,7 @@ subroutine ft8b_2(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly, & data mrr73/0,1,1,1,1,1,1,0,0,1,1,1,0,1,0,1,0,0,1/ data first/.true./ data graymap/0,1,3,2,5,6,4,7/ - save nappasses,naptypes,one + save nappasses,naptypes,one,hiscall12_0 if(first) then mcq=2*mcq-1 @@ -82,6 +83,12 @@ subroutine ft8b_2(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly, & first=.false. endif + if(hiscall12.ne.hiscall12_0) then + c13=hiscall12//' ' + call save_hash_call(c13,n10,n12,n22) + hiscall12_0=hiscall12 + endif + max_iterations=30 nharderrors=-1 nbadcrc=1 ! this is used upstream to flag good decodes.