diff --git a/libm65/decode1a.f90 b/libm65/decode1a.f90
index 8a616e1b2..d098ad51e 100644
--- a/libm65/decode1a.f90
+++ b/libm65/decode1a.f90
@@ -1,6 +1,6 @@
-subroutine decode1a(dd,newdat,f0,nflip,mode65,nfast,nfsample,xpol, &
- mycall,hiscall,hisgrid,neme,ndepth,nqd,dphi,ndphi,iloop, &
- nutc,nkhz,ndf,ipol,ntol,sync2,a,dt,pol,nkv,nhist,nsum,nsave, &
+subroutine decode1a(dd,newdat,f0,nflip,mode65,nfast,nfsample,xpol, &
+ mycall,hiscall,hisgrid,neme,ndepth,nqd,dphi,ndphi,iloop, &
+ nutc,nkhz,ndf,ipol,ntol,bqra64,sync2,a,dt,pol,nkv,nhist,nsum,nsave, &
qual,decoded)
! Apply AFC corrections to a candidate JT65 signal, then decode it.
@@ -14,7 +14,7 @@ subroutine decode1a(dd,newdat,f0,nflip,mode65,nfast,nfsample,xpol, &
real s2(66,126)
real s3(64,63),sy(63)
real a(5)
- logical first,xpol
+ logical first,xpol,bqra64
character decoded*22
character mycall*12,hiscall*12,hisgrid*6
data first/.true./,jjjmin/1000/,jjjmax/-1000/
diff --git a/libm65/map65a.f90 b/libm65/map65a.f90
index 3b7bfbd3c..9e99f592a 100644
--- a/libm65/map65a.f90
+++ b/libm65/map65a.f90
@@ -21,7 +21,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, &
character mycall*12,hiscall*12,mygrid*6,hisgrid*6,grid*6,cp*1
integer indx(MAXMSG),nsiz(MAXMSG)
logical done(MAXMSG)
- logical xpol
+ logical xpol,bqra64
character decoded*22,blank*22,cmode*2
real short(3,NFFT) !SNR dt ipol for potential shorthands
real qphi(12)
@@ -33,6 +33,8 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, &
data nfile/0/,nutc0/-999/,nid/0/,ip000/1/,ip001/1/,mousefqso0/-999/
save
+ bqra64=nfast.ge.100
+ nfast=mod(nfast,100)
mcall3a=mcall3b
mousefqso0=mousefqso
xpol=(nxpol.ne.0)
@@ -210,8 +212,8 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, &
idf=nint(1000.0*(freq+0.5*(nfa+nfb)-foffset-(ikHz+nfshift)))
call decode1a(dd,newdat,f00,nflip,mode65,nfast,nfsample, &
xpol,mycall,hiscall,hisgrid,neme,ndepth,nqd,dphi, &
- ndphi,iloop,nutc,ikHz,idf,ipol,ntol,sync2,a,dt, &
- pol,nkv,nhist,nsum,nsave,qual,decoded)
+ ndphi,iloop,nutc,ikHz,idf,ipol,ntol,bqra64,sync2, &
+ a,dt,pol,nkv,nhist,nsum,nsave,qual,decoded)
call timer('decode1a',1)
if(km.lt.MAXMSG) km=km+1
diff --git a/mainwindow.cpp b/mainwindow.cpp
index 7007f67e3..0e1cdeb58 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -152,6 +152,7 @@ MainWindow::MainWindow(QWidget *parent) :
m_colors="000066ff0000ffff00969696646464";
m_nfast=1;
m_nsave=0;
+ m_bQRA64=false;
bTune=false;
txPower=100;
iqAmp=0;
@@ -371,6 +372,7 @@ void MainWindow::writeSettings()
settings.setValue("NDepth",m_ndepth);
settings.setValue("NEME",m_onlyEME);
settings.setValue("KB8RQ",m_kb8rq);
+ settings.setValue("DecodeQRA64",m_bQRA64);
settings.setValue("NB",m_NB);
settings.setValue("NBslider",m_NBslider);
settings.setValue("GainX",(double)m_gainx);
@@ -462,6 +464,8 @@ void MainWindow::readSettings()
ui->actionOnly_EME_calls->setChecked(m_onlyEME);
m_kb8rq=settings.value("KB8RQ",false).toBool();
ui->actionF4_sets_Tx6->setChecked(m_kb8rq);
+ m_bQRA64=settings.value("DecodeQRA64",false).toBool();
+ ui->actionDecode_QRA64_near_QSO_frequency->setChecked(m_bQRA64);
m_NB=settings.value("NB",false).toBool();
ui->NBcheckBox->setChecked(m_NB);
m_NBslider=settings.value("NBslider",40).toInt();
@@ -1258,6 +1262,7 @@ void MainWindow::decode() //decode()
if(m_xpol) datcom_.nxpol=1;
datcom_.mode65=m_mode65;
datcom_.nfast=m_nfast;
+ if(m_bQRA64) datcom_.nfast += 100;
datcom_.nsave=m_nsave;
QString mcall=(m_myCall+" ").mid(0,12);
@@ -2159,3 +2164,8 @@ void MainWindow::on_actionTx_Tune_triggered()
g_pTxTune->set_txPower(txPower);
g_pTxTune->show();
}
+
+void MainWindow::on_actionDecode_QRA64_near_QSO_frequency_triggered(bool b)
+{
+ m_bQRA64=b;
+}
diff --git a/mainwindow.h b/mainwindow.h
index 2268f2533..11c4d7c8b 100644
--- a/mainwindow.h
+++ b/mainwindow.h
@@ -128,6 +128,7 @@ private slots:
void on_actionJT65C2_triggered();
void on_actionEdit_wsjt_log_triggered();
void on_actionTx_Tune_triggered();
+ void on_actionDecode_QRA64_near_QSO_frequency_triggered(bool b);
private:
Ui::MainWindow *ui;
@@ -196,6 +197,7 @@ private:
bool m_10db;
bool m_initIQplus;
bool m_bIQxt;
+ bool m_bQRA64;
float m_gainx;
float m_gainy;
diff --git a/mainwindow.ui b/mainwindow.ui
index 735362017..960c0fcb3 100644
--- a/mainwindow.ui
+++ b/mainwindow.ui
@@ -1142,6 +1142,8 @@ p, li { white-space: pre-wrap; }
+
+