mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-05-28 20:32:28 -04:00
Merge branch 'develop' of bitbucket.org:k1jt/wsjtx into develop
This commit is contained in:
commit
58f19c855b
@ -11,18 +11,18 @@ i3.n3 Example message Bits Total Purpose
|
|||||||
----------------------------------------------------------------------------------
|
----------------------------------------------------------------------------------
|
||||||
0.0 FREE TEXT MSG 71 71 Free text
|
0.0 FREE TEXT MSG 71 71 Free text
|
||||||
0.1 K1ABC RR73; W9XYZ <KH1/KH7Z> -12 28 28 10 5 71 DXpedition Mode
|
0.1 K1ABC RR73; W9XYZ <KH1/KH7Z> -12 28 28 10 5 71 DXpedition Mode
|
||||||
0.2 PA3XYZ/P R 590003 IO91NP 28 1 1 3 12 25 70 EU VHF contest
|
0.2 ... tbd
|
||||||
0.3 WA9XYZ KA1ABC R 16A EMA 28 28 1 4 3 7 71 ARRL Field Day
|
0.3 WA9XYZ KA1ABC R 16A EMA 28 28 1 4 3 7 71 ARRL Field Day
|
||||||
0.4 WA9XYZ KA1ABC R 32A EMA 28 28 1 4 3 7 71 ARRL Field Day
|
0.4 WA9XYZ KA1ABC R 32A EMA 28 28 1 4 3 7 71 ARRL Field Day
|
||||||
0.5 123456789ABCDEF012 71 71 Telemetry (18 hex)
|
0.5 123456789ABCDEF012 71 71 Telemetry (18 hex)
|
||||||
0.6 K1ABC RR73; CQ W9XYZ EN37 28 28 15 71 Contesting
|
0.6 Temporarily hijacked in packjt77 for WSPR-LF. This is not necessary!
|
||||||
0.7 ... tbd
|
0.7 ... tbd
|
||||||
|
|
||||||
1 WA9XYZ/R KA1ABC/R R FN42 28 1 28 1 1 15 74 Standard msg
|
1 WA9XYZ/R KA1ABC/R R FN42 28 1 28 1 1 15 74 Standard msg
|
||||||
2 PA3XYZ/P GM4ABC/P R JO22 28 1 28 1 1 15 74 EU VHF contest
|
2 PA3XYZ/P GM4ABC/P R JO22 28 1 28 1 1 15 74 EU VHF contest
|
||||||
3 TU; W9XYZ K1ABC R 579 MA 1 28 28 1 3 13 74 ARRL RTTY Roundup
|
3 TU; W9XYZ K1ABC R 579 MA 1 28 28 1 3 13 74 ARRL RTTY Roundup
|
||||||
4 <WA9XYZ> PJ4/KA1ABC RR73 12 58 1 2 1 74 Nonstandard calls
|
4 <WA9XYZ> PJ4/KA1ABC RR73 12 58 1 2 1 74 Nonstandard calls
|
||||||
5 TU; W9XYZ K1ABC R-07 FN 1 28 28 1 7 9 74 WWROF contest ?
|
5 <G4ABC/P> <PA9XYZ> R 570007 JO22DB 12 22 1 3 11 25 74 EU VHF Contest
|
||||||
6 ... tbd
|
6 ... tbd
|
||||||
7 ... tbd
|
7 ... tbd
|
||||||
----------------------------------------------------------------------------------
|
----------------------------------------------------------------------------------
|
||||||
|
@ -51,8 +51,8 @@ TU; G3AAA K1ABC R 559 MA
|
|||||||
-----------------------------------------------------------
|
-----------------------------------------------------------
|
||||||
CQ G4ABC/P IO91
|
CQ G4ABC/P IO91
|
||||||
G4ABC/P PA9XYZ JO22
|
G4ABC/P PA9XYZ JO22
|
||||||
PA9XYZ 590003 IO91NP
|
<PA9XYZ> <G4ABC/P> 590003 IO91NP
|
||||||
G4ABC/P R 570007 JO22DB
|
<G4ABC/P> <PA9XYZ> R 570007 JO22DB
|
||||||
PA9XYZ G4ABC/P RR73
|
PA9XYZ G4ABC/P RR73
|
||||||
|
|
||||||
8. Compound or nonstandard calls CQ
|
8. Compound or nonstandard calls CQ
|
||||||
|
@ -136,8 +136,8 @@ subroutine pack77(msg0,i3,n3,c77)
|
|||||||
call pack77_01(nwords,w,i3,n3,c77)
|
call pack77_01(nwords,w,i3,n3,c77)
|
||||||
if(i3.ge.0 .or. n3.ge.1) go to 900
|
if(i3.ge.0 .or. n3.ge.1) go to 900
|
||||||
! Check 0.2 (EU VHF contest exchange)
|
! Check 0.2 (EU VHF contest exchange)
|
||||||
call pack77_02(nwords,w,i3,n3,c77)
|
! call pack77_02(nwords,w,i3,n3,c77)
|
||||||
if(i3.ge.0) go to 900
|
! if(i3.ge.0) go to 900
|
||||||
|
|
||||||
! Check 0.3 and 0.4 (ARRL Field Day exchange)
|
! Check 0.3 and 0.4 (ARRL Field Day exchange)
|
||||||
call pack77_03(nwords,w,i3,n3,c77)
|
call pack77_03(nwords,w,i3,n3,c77)
|
||||||
@ -175,6 +175,10 @@ subroutine pack77(msg0,i3,n3,c77)
|
|||||||
call pack77_4(nwords,w,i3,n3,c77)
|
call pack77_4(nwords,w,i3,n3,c77)
|
||||||
if(i3.ge.0) go to 900
|
if(i3.ge.0) go to 900
|
||||||
|
|
||||||
|
! Check Type 5 (EU VHF Contest with 2 hashed calls, report, serial, and grid6)
|
||||||
|
call pack77_5(nwords,w,i3,n3,c77)
|
||||||
|
if(i3.ge.0) go to 900
|
||||||
|
|
||||||
! It defaults to free text
|
! It defaults to free text
|
||||||
800 i3=0
|
800 i3=0
|
||||||
n3=0
|
n3=0
|
||||||
@ -298,19 +302,6 @@ subroutine unpack77(c77,nrx,msg,unpk77_success)
|
|||||||
mycall13_set .and. &
|
mycall13_set .and. &
|
||||||
n10.eq.hashmy10) call_3='<'//trim(mycall13)//'>'
|
n10.eq.hashmy10) call_3='<'//trim(mycall13)//'>'
|
||||||
msg=trim(call_1)//' RR73; '//trim(call_2)//' '//trim(call_3)//' '//crpt
|
msg=trim(call_1)//' RR73; '//trim(call_2)//' '//trim(call_3)//' '//crpt
|
||||||
else if(i3.eq.0 .and. n3.eq.2) then
|
|
||||||
! 0.2 PA3XYZ/P R 590003 IO91NP 28 1 1 3 12 25 70 EU VHF contest
|
|
||||||
read(c77,1020) n28a,ip,ir,irpt,iserial,igrid6
|
|
||||||
1020 format(b28,2b1,b3,b12,b25)
|
|
||||||
call unpack28(n28a,call_1,unpk28_success)
|
|
||||||
if(.not.unpk28_success .or. n28a.le.2) unpk77_success=.false.
|
|
||||||
nrs=52+irpt
|
|
||||||
if(ip.eq.1) call_1=trim(call_1)//'/P'
|
|
||||||
write(cexch,1022) nrs,iserial
|
|
||||||
1022 format(i2,i4.4)
|
|
||||||
call to_grid6(igrid6,grid6)
|
|
||||||
msg=trim(call_1)//' '//cexch//' '//grid6
|
|
||||||
if(ir.eq.1) msg=trim(call_1)//' R '//cexch//' '//grid6
|
|
||||||
|
|
||||||
else if(i3.eq.0 .and. (n3.eq.3 .or. n3.eq.4)) then
|
else if(i3.eq.0 .and. (n3.eq.3 .or. n3.eq.4)) then
|
||||||
! 0.3 WA9XYZ KA1ABC R 16A EMA 28 28 1 4 3 7 71 ARRL Field Day
|
! 0.3 WA9XYZ KA1ABC R 16A EMA 28 28 1 4 3 7 71 ARRL Field Day
|
||||||
@ -498,6 +489,7 @@ subroutine unpack77(c77,nrx,msg,unpk77_success)
|
|||||||
' R '//crpt//' '//cserial
|
' R '//crpt//' '//cserial
|
||||||
endif
|
endif
|
||||||
else if(i3.eq.4) then
|
else if(i3.eq.4) then
|
||||||
|
! Type 4
|
||||||
read(c77,1050) n12,n58,iflip,nrpt,icq
|
read(c77,1050) n12,n58,iflip,nrpt,icq
|
||||||
1050 format(b12,b58,b1,b2,b1)
|
1050 format(b12,b58,b1,b2,b1)
|
||||||
do i=11,1,-1
|
do i=11,1,-1
|
||||||
@ -534,7 +526,22 @@ subroutine unpack77(c77,nrx,msg,unpk77_success)
|
|||||||
else
|
else
|
||||||
msg='CQ '//trim(call_2)
|
msg='CQ '//trim(call_2)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
else if(i3.eq.5) then
|
||||||
|
|
||||||
|
! Type 5 <PA3XYZ> <G4ABC/P> R 590003 IO91NP h12 h22 r1 s3 S11 g25
|
||||||
|
! EU VHF contest
|
||||||
|
read(c77,1060) n12,n22,ir,irpt,iserial,igrid6
|
||||||
|
1060 format(b12,b22,b1,b3,b11,b25)
|
||||||
|
call hash12(n12,call_1)
|
||||||
|
call hash22(n22,call_2)
|
||||||
|
nrs=52+irpt
|
||||||
|
write(cexch,1022) nrs,iserial
|
||||||
|
1022 format(i2,i4.4)
|
||||||
|
call to_grid6(igrid6,grid6)
|
||||||
|
if(ir.eq.0) msg=trim(call_1)//' '//trim(call_2)//' '//cexch//' '//grid6
|
||||||
|
if(ir.eq.1) msg=trim(call_1)//' '//trim(call_2)//' R '//cexch//' '//grid6
|
||||||
|
|
||||||
else if(i3.ge.6) then ! i3 values 6 and 7 are not yet defined
|
else if(i3.ge.6) then ! i3 values 6 and 7 are not yet defined
|
||||||
unpk77_success=.false.
|
unpk77_success=.false.
|
||||||
endif
|
endif
|
||||||
@ -840,63 +847,6 @@ subroutine pack77_01(nwords,w,i3,n3,c77)
|
|||||||
end subroutine pack77_01
|
end subroutine pack77_01
|
||||||
|
|
||||||
|
|
||||||
subroutine pack77_02(nwords,w,i3,n3,c77)
|
|
||||||
|
|
||||||
! Pack a Type 0.2 message: EU VHF Contest mode
|
|
||||||
! Example message: PA3XYZ/P R 590003 IO91NP 28 1 1 3 12 25
|
|
||||||
|
|
||||||
character*13 w(19),c13
|
|
||||||
character*77 c77
|
|
||||||
character*6 bcall_1,grid6
|
|
||||||
logical ok1,is_grid6
|
|
||||||
|
|
||||||
is_grid6(grid6)=len(trim(grid6)).eq.6 .and. &
|
|
||||||
grid6(1:1).ge.'A' .and. grid6(1:1).le.'R' .and. &
|
|
||||||
grid6(2:2).ge.'A' .and. grid6(2:2).le.'R' .and. &
|
|
||||||
grid6(3:3).ge.'0' .and. grid6(3:3).le.'9' .and. &
|
|
||||||
grid6(4:4).ge.'0' .and. grid6(4:4).le.'9' .and. &
|
|
||||||
grid6(5:5).ge.'A' .and. grid6(5:5).le.'X' .and. &
|
|
||||||
grid6(6:6).ge.'A' .and. grid6(6:6).le.'X'
|
|
||||||
|
|
||||||
call chkcall(w(1),bcall_1,ok1)
|
|
||||||
if(.not.ok1) return !bcall_1 must be a valid basecall
|
|
||||||
if(nwords.lt.3 .or. nwords.gt.4) return !nwords must be 3 or 4
|
|
||||||
nx=-1
|
|
||||||
if(nwords.ge.2) read(w(nwords-1),*,err=2) nx
|
|
||||||
2 if(nx.lt.520001 .or. nx.gt.594095) return !Exchange between 520001 - 594095
|
|
||||||
if(.not.is_grid6(w(nwords)(1:6))) return !Last word must be a valid grid6
|
|
||||||
|
|
||||||
! Type 0.2: PA3XYZ/P R 590003 IO91NP 28 1 1 3 12 25 70 EU VHF contest
|
|
||||||
i3=0
|
|
||||||
n3=2
|
|
||||||
i=index(w(1)//' ','/P ')
|
|
||||||
if(i.ge.4) then
|
|
||||||
ip=1
|
|
||||||
c13=w(1)(1:i-1)
|
|
||||||
else
|
|
||||||
ip=0
|
|
||||||
c13=w(1)
|
|
||||||
end if
|
|
||||||
call pack28(c13,n28a)
|
|
||||||
ir=0
|
|
||||||
if(w(2)(1:2).eq.'R ') ir=1
|
|
||||||
irpt=nx/10000 - 52
|
|
||||||
iserial=mod(nx,10000)
|
|
||||||
grid6=w(nwords)(1:6)
|
|
||||||
j1=(ichar(grid6(1:1))-ichar('A'))*18*10*10*24*24
|
|
||||||
j2=(ichar(grid6(2:2))-ichar('A'))*10*10*24*24
|
|
||||||
j3=(ichar(grid6(3:3))-ichar('0'))*10*24*24
|
|
||||||
j4=(ichar(grid6(4:4))-ichar('0'))*24*24
|
|
||||||
j5=(ichar(grid6(5:5))-ichar('A'))*24
|
|
||||||
j6=(ichar(grid6(6:6))-ichar('A'))
|
|
||||||
igrid6=j1+j2+j3+j4+j5+j6
|
|
||||||
write(c77,1010) n28a,ip,ir,irpt,iserial,igrid6,n3,i3
|
|
||||||
1010 format(b28.28,2b1,b3.3,b12.12,b25.25,b4.4,b3.3)
|
|
||||||
|
|
||||||
return
|
|
||||||
end subroutine pack77_02
|
|
||||||
|
|
||||||
|
|
||||||
subroutine pack77_03(nwords,w,i3,n3,c77)
|
subroutine pack77_03(nwords,w,i3,n3,c77)
|
||||||
|
|
||||||
! Check 0.3 and 0.4 (ARRL Field Day exchange)
|
! Check 0.3 and 0.4 (ARRL Field Day exchange)
|
||||||
@ -1326,6 +1276,67 @@ subroutine pack77_4(nwords,w,i3,n3,c77)
|
|||||||
900 return
|
900 return
|
||||||
end subroutine pack77_4
|
end subroutine pack77_4
|
||||||
|
|
||||||
|
subroutine pack77_5(nwords,w,i3,n3,c77)
|
||||||
|
|
||||||
|
! Pack a Type 0.2 message: EU VHF Contest mode
|
||||||
|
! Example message: PA3XYZ/P R 590003 IO91NP 28 1 1 3 12 25
|
||||||
|
! <PA3XYZ> <G4ABC/P> R 590003 IO91NP h10 h20 r1 s3 s12 g25
|
||||||
|
|
||||||
|
character*13 w(19),c13
|
||||||
|
character*77 c77
|
||||||
|
character*6 grid6
|
||||||
|
logical is_grid6
|
||||||
|
|
||||||
|
is_grid6(grid6)=len(trim(grid6)).eq.6 .and. &
|
||||||
|
grid6(1:1).ge.'A' .and. grid6(1:1).le.'R' .and. &
|
||||||
|
grid6(2:2).ge.'A' .and. grid6(2:2).le.'R' .and. &
|
||||||
|
grid6(3:3).ge.'0' .and. grid6(3:3).le.'9' .and. &
|
||||||
|
grid6(4:4).ge.'0' .and. grid6(4:4).le.'9' .and. &
|
||||||
|
grid6(5:5).ge.'A' .and. grid6(5:5).le.'X' .and. &
|
||||||
|
grid6(6:6).ge.'A' .and. grid6(6:6).le.'X'
|
||||||
|
|
||||||
|
if(nwords.lt.4 .or. nwords.gt.5) return !nwords must be 4 or 5
|
||||||
|
if(w(1)(1:1).ne.'<' .or. w(2)(1:1).ne.'<') return !Both calls must be hashed
|
||||||
|
nx=-1
|
||||||
|
read(w(nwords-1),*,err=2) nx
|
||||||
|
2 if(nx.lt.520001 .or. nx.gt.594095) return !Exchange between 520001 - 594095
|
||||||
|
if(.not.is_grid6(w(nwords)(1:6))) return !Last word must be a valid grid6
|
||||||
|
|
||||||
|
! Type 0.2: <PA3XYZ> <G4ABC/P> R 590003 IO91NP h10 h20 r1 s3 s12 g25
|
||||||
|
|
||||||
|
i3=5
|
||||||
|
n3=0
|
||||||
|
|
||||||
|
call save_hash_call(w(1),n10,n12,n22)
|
||||||
|
i2=index(w(1),'>')
|
||||||
|
c13=w(1)(2:i2-1)
|
||||||
|
n12=ihashcall(c13,12)
|
||||||
|
|
||||||
|
call save_hash_call(w(2),n10a,n12a,n22)
|
||||||
|
i2=index(w(2),'>')
|
||||||
|
c13=w(2)(2:i2-1)
|
||||||
|
n22=ihashcall(c13,22)
|
||||||
|
|
||||||
|
ir=0
|
||||||
|
if(w(3)(1:2).eq.'R ') ir=1
|
||||||
|
irpt=nx/10000 - 52
|
||||||
|
iserial=mod(nx,10000)
|
||||||
|
if(iserial.gt.2047) iserial=2047
|
||||||
|
grid6=w(nwords)(1:6)
|
||||||
|
j1=(ichar(grid6(1:1))-ichar('A'))*18*10*10*24*24
|
||||||
|
j2=(ichar(grid6(2:2))-ichar('A'))*10*10*24*24
|
||||||
|
j3=(ichar(grid6(3:3))-ichar('0'))*10*24*24
|
||||||
|
j4=(ichar(grid6(4:4))-ichar('0'))*24*24
|
||||||
|
j5=(ichar(grid6(5:5))-ichar('A'))*24
|
||||||
|
j6=(ichar(grid6(6:6))-ichar('A'))
|
||||||
|
igrid6=j1+j2+j3+j4+j5+j6
|
||||||
|
|
||||||
|
write(c77,1010) n12,n22,ir,irpt,iserial,igrid6,i3
|
||||||
|
1010 format(b12.12,b22.22,b1,b3.3,b11.11,b25.25,b3.3)
|
||||||
|
|
||||||
|
return
|
||||||
|
end subroutine pack77_5
|
||||||
|
|
||||||
|
|
||||||
subroutine packtext77(c13,c71)
|
subroutine packtext77(c13,c71)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user