diff --git a/doc/user_guide/en/protocols.adoc b/doc/user_guide/en/protocols.adoc index f52b67cb9..35ea1b871 100644 --- a/doc/user_guide/en/protocols.adoc +++ b/doc/user_guide/en/protocols.adoc @@ -274,6 +274,15 @@ with constant envelope, equivalent to a Minimum Shift Keying (MSK) waveform. Frame duration is 72 ms, so the effective character transmission rate for standard messages is up to 250 cps. +Contest Mode in MSK144 conveys an additional acknowledgment bit (the +"`R`" in a message of the form `W9XYZ K1ABC R FN42`) by using the fact +that meteor scatter and other propagation modes usable with MSK144 are +generally effective only out to distances of order 2500 km. To convey +the message fragment `R FN42`, WSJT-X encodes the locator as that of +its antipodes. The receiving program recognizes a locator with +distance greater than 10,000 km, does the reverse transformation, and +inserts the implied "`R`". + MSK144 also supports short-form messages that can be used after QSO partners have exchanged both callsigns. Short messages consist of 4 bits encoding a signal report, R+report, RRR, or 73, together with a diff --git a/doc/user_guide/en/vhf-features.adoc b/doc/user_guide/en/vhf-features.adoc index f3e359423..a34f7a6db 100644 --- a/doc/user_guide/en/vhf-features.adoc +++ b/doc/user_guide/en/vhf-features.adoc @@ -271,6 +271,21 @@ messages at 50 or 70 MHz. At these frequencies, most pings are long enough to support standard messages -- which have the advantage of being readable by anyone listening in. +- A special *Contest Mode* for MSK144 can be activated by checking a +box on the *Settings | Advanced* tab. This mode is configured +especially for VHF contests in which four-character grid locators are +the required exchange. When *Contest Mode* is active, the standard QSO +sequence looks like this: + + CQ K1ABC FN42 + K1ABC W9XYZ EN37 + W9XYZ K1ABC R FN42 + K1ABC W9XYZ RRR + W9XYZ K1ABC 73 + +In contest circumstances K1ABC might choose to call CQ again rather +than sending 73 for his third transmission. + === Echo Mode *Echo* mode allows you to make sensitive measurements of your own diff --git a/lib/fix_contest_msg.f90 b/lib/fix_contest_msg.f90 index 2374f8fb0..411ef282a 100644 --- a/lib/fix_contest_msg.f90 +++ b/lib/fix_contest_msg.f90 @@ -5,25 +5,21 @@ subroutine fix_contest_msg(mycall,mygrid,hiscall,msg) ! of grid1. character*6 mycall,mygrid,hiscall - character*22 msg,t + character*22 msg character*6 g1,g2 logical isgrid - t=trim(mycall)//' '//trim(hiscall) - i0=index(msg,trim(t)) - if(i0.eq.1) then - i1=len(trim(t))+2 - g1=msg(i1:i1+3) - if(isgrid(g1)) then - call azdist(mygrid,g1,0.d0,nAz,nEl,nDmiles,nDkm,nHotAz,nHotABetter) - if(ndkm.gt.10000) then - call grid2deg(g1,dlong,dlat) - dlong=dlong+180.0 - if(dlong.gt.180.0) dlong=dlong-360.0 - dlat=-dlat - call deg2grid(dlong,dlat,g2) - msg=msg(1:i1-1)//'R '//g2(1:4) - endif + n=len(trim(msg)) + g1=msg(n-3:n)//' ' + if(isgrid(g1)) then + call azdist(mygrid,g1,0.d0,nAz,nEl,nDmiles,nDkm,nHotAz,nHotABetter) + if(ndkm.gt.10000) then + call grid2deg(g1,dlong,dlat) + dlong=dlong+180.0 + if(dlong.gt.180.0) dlong=dlong-360.0 + dlat=-dlat + call deg2grid(dlong,dlat,g2) + msg=msg(1:n-4)//'R '//g2(1:4) endif endif