diff --git a/app/convbin/convbin.c b/app/convbin/convbin.c
index 0d5b713ae1e5bf0007161c79e13afd5d4326020c..ec78e0782a877d17279a503e46dddb026f8aaf5c 100644
--- a/app/convbin/convbin.c
+++ b/app/convbin/convbin.c
@@ -497,11 +497,10 @@ static int cmdopts(int argc, char **argv, rnxopt_t *opt, char **ifile,
     }
     if (nf>=1) opt->freqtype|=FREQTYPE_L1;
     if (nf>=2) opt->freqtype|=FREQTYPE_L2;
-    if (nf>=3) opt->freqtype|=FREQTYPE_E5b;
-    if (nf>=4) opt->freqtype|=FREQTYPE_L5;
-    if (nf>=5) opt->freqtype|=FREQTYPE_E6;
-    if (nf>=6) opt->freqtype|=FREQTYPE_E5ab;
-    if (nf>=7) opt->freqtype|=FREQTYPE_S;
+    if (nf>=3) opt->freqtype|=FREQTYPE_L5;
+    if (nf>=4) opt->freqtype|=FREQTYPE_E6;
+    if (nf>=5) opt->freqtype|=FREQTYPE_E5ab;
+    if (nf>=6) opt->freqtype|=FREQTYPE_S;
     
     if (*fmt) {
         if      (!strcmp(fmt,"rtcm2")) format=STRFMT_RTCM2;
diff --git a/app/convbin/msc/msc.vcxproj b/app/convbin/msc/msc.vcxproj
index 98dc8d9c2e79e87dcea65737b0ee1f3810ed4ed4..eaa56ccd016eb3b1cc03ea6f301f4095fc493184 100644
--- a/app/convbin/msc/msc.vcxproj
+++ b/app/convbin/msc/msc.vcxproj
@@ -76,7 +76,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <AdditionalIncludeDirectories>..\..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;TRACE;_CRT_SECURE_NO_DEPRECATE;ENAGLO;ENAQZS;ENAGAL;ENACMP;NFREQ=4;NEXOBS=3;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;TRACE;_CRT_SECURE_NO_DEPRECATE;ENAGLO;ENAQZS;ENAGAL;ENACMP;NFREQ=3;NEXOBS=3;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
diff --git a/app/rnx2rtkp/msc/msc.vcxproj b/app/rnx2rtkp/msc/msc.vcxproj
index 89e08b0bc8a6414297a6754f0b7e42278b32bbbe..41a18dd30e3653688c51e956fe239b669df14b6c 100644
--- a/app/rnx2rtkp/msc/msc.vcxproj
+++ b/app/rnx2rtkp/msc/msc.vcxproj
@@ -14,7 +14,7 @@
     <ProjectGuid>{830901EE-9359-489F-BA7E-04289F28D5E0}</ProjectGuid>
     <RootNamespace>msc</RootNamespace>
     <Keyword>Win32Proj</Keyword>
-    <WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion>
+    <WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
@@ -53,8 +53,8 @@
     <ClCompile>
       <Optimization>Disabled</Optimization>
       <AdditionalIncludeDirectories>..\..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;TRACE;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;ENAGLO;ENAQZS;ENAGAL;ENACMP;NFREQ=4;NEXOBS=3;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <MinimalRebuild>true</MinimalRebuild>
+      <PreprocessorDefinitions>WIN32;TRACE;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;ENAGLO;ENAQZS;ENAGAL;ENACMP;NFREQ=3;NEXOBS=3;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <MinimalRebuild>false</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
       <PrecompiledHeader>
@@ -80,7 +80,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <AdditionalIncludeDirectories>..\..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;TRACE;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;ENAGLO;ENAQZS;ENAGAL;ENACMP;NFREQ=4;NEXOBS=3;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;TRACE;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;ENAGLO;ENAQZS;ENAGAL;ENACMP;NFREQ=3;NEXOBS=3;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
@@ -105,7 +105,9 @@
     <ClCompile Include="..\..\..\src\datum.c" />
     <ClCompile Include="..\..\..\src\ephemeris.c" />
     <ClCompile Include="..\..\..\src\geoid.c" />
-    <ClCompile Include="..\..\..\src\ionex.c" />
+    <ClCompile Include="..\..\..\src\ionex.c">
+      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;TRACE;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;ENAGLO;ENAQZS;ENAGAL;ENACMP;NFREQ=3;NEXOBS=3;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
     <ClCompile Include="..\..\..\src\lambda.c" />
     <ClCompile Include="..\..\..\src\options.c" />
     <ClCompile Include="..\..\..\src\pntpos.c" />
diff --git a/app/rtkconv/codeopt.cpp b/app/rtkconv/codeopt.cpp
index b95baba75c3e997ffdeeb25fccb0630aab159642..dce7c7e21f38167ab9d28022a0e0c56bf0c96614 100644
--- a/app/rtkconv/codeopt.cpp
+++ b/app/rtkconv/codeopt.cpp
@@ -83,7 +83,7 @@ void __fastcall TCodeOptDialog::FormShow(TObject *Sender)
 	J33->Checked=mask[3][32]=='1';
 	C40->Checked=mask[5][39]=='1';
 	C41->Checked=mask[5][40]=='1';
-	C18->Checked=mask[5][11]=='1';
+	C12->Checked=mask[5][11]=='1';
 	C27->Checked=mask[5][26]=='1';
 	C28->Checked=mask[5][27]=='1';
 	C29->Checked=mask[5][28]=='1';
@@ -172,9 +172,9 @@ void __fastcall TCodeOptDialog::BtnOkClick(TObject *Sender)
 	if (J35->Checked) mask[3][34]='1';
 	if (J36->Checked) mask[3][35]='1';
 	if (J33->Checked) mask[3][32]='1';
-	if (C40->Checked){mask[5][39]='1';mask[5][46]='1';}
-	if (C41->Checked){mask[5][40]='1';mask[5][47]='1';}
-	if (C18->Checked){mask[5][17]='1';mask[5][11]='1';}
+	if (C40->Checked) mask[5][39]='1';
+	if (C41->Checked) mask[5][40]='1';
+	if (C12->Checked) mask[5][11]='1';
 	if (C27->Checked) mask[5][26]='1';
 	if (C28->Checked) mask[5][27]='1';
 	if (C29->Checked) mask[5][28]='1';
@@ -263,7 +263,7 @@ void __fastcall TCodeOptDialog::BtnSetAllClick(TObject *Sender)
 	J33->Checked=set;
 	C40->Checked=set;
 	C41->Checked=set;
-	C18->Checked=set;
+	C12->Checked=set;
 	C27->Checked=set;
 	C28->Checked=set;
 	C29->Checked=set;
@@ -323,9 +323,9 @@ void __fastcall TCodeOptDialog::UpdateEnable(void)
 	E24->Enabled=(NavSys&SYS_GAL)&&(FreqType&FREQTYPE_L5);
 	E25->Enabled=(NavSys&SYS_GAL)&&(FreqType&FREQTYPE_L5);
 	E26->Enabled=(NavSys&SYS_GAL)&&(FreqType&FREQTYPE_L5);
-	E27->Enabled=(NavSys&SYS_GAL)&&(FreqType&FREQTYPE_E5b);
-	E28->Enabled=(NavSys&SYS_GAL)&&(FreqType&FREQTYPE_E5b);
-	E29->Enabled=(NavSys&SYS_GAL)&&(FreqType&FREQTYPE_E5b);
+	E27->Enabled=(NavSys&SYS_GAL)&&(FreqType&FREQTYPE_L2);
+	E28->Enabled=(NavSys&SYS_GAL)&&(FreqType&FREQTYPE_L2);
+	E29->Enabled=(NavSys&SYS_GAL)&&(FreqType&FREQTYPE_L2);
 	E30->Enabled=(NavSys&SYS_GAL)&&(FreqType&FREQTYPE_E6);
 	E31->Enabled=(NavSys&SYS_GAL)&&(FreqType&FREQTYPE_E6);
 	E32->Enabled=(NavSys&SYS_GAL)&&(FreqType&FREQTYPE_E6);
@@ -342,18 +342,18 @@ void __fastcall TCodeOptDialog::UpdateEnable(void)
 	J16->Enabled=(NavSys&SYS_QZS)&&(FreqType&FREQTYPE_L2);
 	J17->Enabled=(NavSys&SYS_QZS)&&(FreqType&FREQTYPE_L2);
 	J18->Enabled=(NavSys&SYS_QZS)&&(FreqType&FREQTYPE_L2);
-	J24->Enabled=(NavSys&SYS_QZS)&&(FreqType&FREQTYPE_E5b);
-	J25->Enabled=(NavSys&SYS_QZS)&&(FreqType&FREQTYPE_E5b);
-	J26->Enabled=(NavSys&SYS_QZS)&&(FreqType&FREQTYPE_E5b);
+	J24->Enabled=(NavSys&SYS_QZS)&&(FreqType&FREQTYPE_L2);
+	J25->Enabled=(NavSys&SYS_QZS)&&(FreqType&FREQTYPE_L2);
+	J26->Enabled=(NavSys&SYS_QZS)&&(FreqType&FREQTYPE_L2);
 	J35->Enabled=(NavSys&SYS_QZS)&&(FreqType&FREQTYPE_E6);
 	J36->Enabled=(NavSys&SYS_QZS)&&(FreqType&FREQTYPE_E6);
 	J33->Enabled=(NavSys&SYS_QZS)&&(FreqType&FREQTYPE_E6);
-	C40->Enabled=(NavSys&SYS_CMP)&&(FreqType&FREQTYPE_L2);
-	C41->Enabled=(NavSys&SYS_CMP)&&(FreqType&FREQTYPE_L2);
-	C18->Enabled=(NavSys&SYS_CMP)&&(FreqType&FREQTYPE_L2);
-	C27->Enabled=(NavSys&SYS_CMP)&&(FreqType&FREQTYPE_E5b);
-	C28->Enabled=(NavSys&SYS_CMP)&&(FreqType&FREQTYPE_E5b);
-	C29->Enabled=(NavSys&SYS_CMP)&&(FreqType&FREQTYPE_E5b);
+	C40->Enabled=(NavSys&SYS_CMP)&&(FreqType&FREQTYPE_L1);
+	C41->Enabled=(NavSys&SYS_CMP)&&(FreqType&FREQTYPE_L1);
+	C12->Enabled=(NavSys&SYS_CMP)&&(FreqType&FREQTYPE_L1);
+	C27->Enabled=(NavSys&SYS_CMP)&&(FreqType&FREQTYPE_L2);
+	C28->Enabled=(NavSys&SYS_CMP)&&(FreqType&FREQTYPE_L2);
+	C29->Enabled=(NavSys&SYS_CMP)&&(FreqType&FREQTYPE_L2);
 	C42->Enabled=(NavSys&SYS_CMP)&&(FreqType&FREQTYPE_E6);
 	C43->Enabled=(NavSys&SYS_CMP)&&(FreqType&FREQTYPE_E6);
 	C33->Enabled=(NavSys&SYS_CMP)&&(FreqType&FREQTYPE_E6);
diff --git a/app/rtkconv/codeopt.dfm b/app/rtkconv/codeopt.dfm
index b6d398457c9fbf1d0daf04e381cafb83cbc069cc..08944d4636c855bd80f73aece32748dd219b51b3 100644
--- a/app/rtkconv/codeopt.dfm
+++ b/app/rtkconv/codeopt.dfm
@@ -67,7 +67,7 @@ object CodeOptDialog: TCodeOptDialog
     OnClick = BtnOkClick
   end
   object BtnCancel: TButton
-    Left = 318
+    Left = 324
     Top = 301
     Width = 71
     Height = 29
@@ -317,7 +317,7 @@ object CodeOptDialog: TCodeOptDialog
     end
   end
   object GroupBox3: TGroupBox
-    Left = 0
+    Left = 1
     Top = 107
     Width = 394
     Height = 69
@@ -606,23 +606,23 @@ object CodeOptDialog: TCodeOptDialog
     OnClick = BtnSetAllClick
   end
   object GroupBox6: TGroupBox
-    Left = 4
-    Top = 230
+    Left = 0
+    Top = 228
     Width = 393
     Height = 34
     Caption = 'BeiDou'
     TabOrder = 8
     object C40: TCheckBox
-      Left = 5
-      Top = 15
-      Width = 40
+      Left = 10
+      Top = 14
+      Width = 35
       Height = 16
-      Caption = '1I/2I'
+      Caption = '2I'
       Enabled = False
       TabOrder = 2
     end
     object C42: TCheckBox
-      Left = 270
+      Left = 238
       Top = 14
       Width = 32
       Height = 16
@@ -631,25 +631,25 @@ object CodeOptDialog: TCodeOptDialog
       TabOrder = 0
     end
     object C27: TCheckBox
-      Left = 157
+      Left = 124
       Top = 14
-      Width = 33
+      Width = 34
       Height = 16
       Caption = '7I'
       Enabled = False
       TabOrder = 3
     end
     object C28: TCheckBox
-      Left = 192
+      Left = 162
       Top = 14
-      Width = 34
+      Width = 44
       Height = 16
       Caption = '7Q'
       Enabled = False
       TabOrder = 4
     end
     object C29: TCheckBox
-      Left = 232
+      Left = 201
       Top = 14
       Width = 34
       Height = 16
@@ -658,25 +658,25 @@ object CodeOptDialog: TCodeOptDialog
       TabOrder = 1
     end
     object C41: TCheckBox
-      Left = 52
+      Left = 48
       Top = 14
-      Width = 50
+      Width = 34
       Height = 16
-      Caption = '1Q/2Q'
+      Caption = '2Q'
       Enabled = False
       TabOrder = 5
     end
-    object C18: TCheckBox
-      Left = 106
+    object C12: TCheckBox
+      Left = 86
       Top = 14
-      Width = 49
+      Width = 34
       Height = 16
-      Caption = '1X/2X'
+      Caption = '2X'
       Enabled = False
       TabOrder = 6
     end
     object C43: TCheckBox
-      Left = 308
+      Left = 276
       Top = 14
       Width = 32
       Height = 16
@@ -685,10 +685,10 @@ object CodeOptDialog: TCodeOptDialog
       TabOrder = 7
     end
     object C33: TCheckBox
-      Left = 344
-      Top = 12
-      Width = 33
-      Height = 19
+      Left = 314
+      Top = 14
+      Width = 32
+      Height = 16
       Caption = '6X'
       Enabled = False
       TabOrder = 8
diff --git a/app/rtkconv/codeopt.h b/app/rtkconv/codeopt.h
index c97d21659938ba55a69011eaf2fb7dc3a61c3b1a..7d624974dae35c5c65e8e4dad493b642ead162cb 100644
--- a/app/rtkconv/codeopt.h
+++ b/app/rtkconv/codeopt.h
@@ -81,13 +81,13 @@ __published:
 	TButton *BtnSetAll;
 	TCheckBox *J33;
 	TGroupBox *GroupBox6;
-    TCheckBox *C40;
+	TCheckBox *C40;
 	TCheckBox *C42;
 	TCheckBox *C27;
 	TCheckBox *C28;
 	TCheckBox *C29;
-    TCheckBox *C41;
-    TCheckBox *C18;
+	TCheckBox *C41;
+	TCheckBox *C12;
 	TCheckBox *C43;
 	TCheckBox *C33;
 	TCheckBox *R44;
diff --git a/app/rtkconv/convmain.cpp b/app/rtkconv/convmain.cpp
index f9b79b8766198fc9cda92c429e69f0556e820991..eede251f31934ca912efcfbd28d3e48ad10d7d5f 100644
--- a/app/rtkconv/convmain.cpp
+++ b/app/rtkconv/convmain.cpp
@@ -454,7 +454,7 @@ void __fastcall TMainWindow::BtnInFileViewClick(TObject *Sender)
 		!strcmp(ext+3,"g"  )||!strcmp(ext+3,"G"  )||!strcmp(ext+3,"h" )||
 		!strcmp(ext+3,"H"  )||!strcmp(ext+3,"q"  )||!strcmp(ext+3,"Q" )||
 		!strcmp(ext+3,"l"  )||!strcmp(ext+3,"L"  )||!strcmp(ext+3,"c" )||
-        !strcmp(ext+3,"C"  )||!strcmp(ext+3,"i"  )||!strcmp(ext+3,"I" )) {
+        !strcmp(ext+3,"C"  )) {
 		viewer->Show();
 		viewer->Read(RepPath(InFile_Text));
 	}
@@ -832,8 +832,6 @@ void __fastcall TMainWindow::ConvertFile(void)
 		else if (!strcmp(p+3,"L"   )) format=STRFMT_RINEX;
 		else if (!strcmp(p+3,"c"   )) format=STRFMT_RINEX;
 		else if (!strcmp(p+3,"C"   )) format=STRFMT_RINEX;
-		else if (!strcmp(p+3,"i"   )) format=STRFMT_RINEX;
-		else if (!strcmp(p+3,"I"   )) format=STRFMT_RINEX;
 		else {
 			showmsg("file format can not be recognized");
 			return;
@@ -866,7 +864,7 @@ void __fastcall TMainWindow::ConvertFile(void)
 	if (OutFile9->Enabled&&OutFileEna9->Checked) strcpy(ofile[8],OutFile9_Text.c_str());
 	
 	// check overwrite output file
-	for (i=0;i<8;i++) {
+	for (i=0;i<9;i++) {
 		if (!*ofile[i]||!(fp=fopen(ofile[i],"r"))) continue;
 		fclose(fp);
 		ConfDialog->Label2->Caption=ofile[i];
diff --git a/app/rtkconv/convmain.dfm b/app/rtkconv/convmain.dfm
index 84cf243559b5132245bd43c7b9c44928f9537d1f..2014eaa50577a7d5dec2f5e9cc538cb58c4e6fd6 100644
Binary files a/app/rtkconv/convmain.dfm and b/app/rtkconv/convmain.dfm differ
diff --git a/app/rtkconv/convopt.cpp b/app/rtkconv/convopt.cpp
index d92d3a36488695f74e131a538aa03c687417d1b0..3a3d275d9998d2b99cf0b892e776fd32f7436852 100644
--- a/app/rtkconv/convopt.cpp
+++ b/app/rtkconv/convopt.cpp
@@ -78,7 +78,6 @@ void __fastcall TConvOptDialog::FormShow(TObject *Sender)
 	Obs4->Checked=MainWindow->ObsType&OBSTYPE_SNR;
 	Freq1->Checked=MainWindow->FreqType&FREQTYPE_L1;
 	Freq2->Checked=MainWindow->FreqType&FREQTYPE_L2;
-	Freq3->Checked=MainWindow->FreqType&FREQTYPE_E5b;
 	Freq4->Checked=MainWindow->FreqType&FREQTYPE_L5;
 	Freq5->Checked=MainWindow->FreqType&FREQTYPE_E6;
 	Freq6->Checked=MainWindow->FreqType&FREQTYPE_E5ab;
@@ -139,7 +138,6 @@ void __fastcall TConvOptDialog::BtnOkClick(TObject *Sender)
 	if (Obs4->Checked) obstype|=OBSTYPE_SNR;
 	if (Freq1->Checked) freqtype|=FREQTYPE_L1;
 	if (Freq2->Checked) freqtype|=FREQTYPE_L2;
-	if (Freq3->Checked) freqtype|=FREQTYPE_E5b;
 	if (Freq4->Checked) freqtype|=FREQTYPE_L5;
 	if (Freq5->Checked) freqtype|=FREQTYPE_E6;
 	if (Freq6->Checked) freqtype|=FREQTYPE_E5ab;
@@ -181,7 +179,6 @@ void __fastcall TConvOptDialog::BtnMaskClick(TObject *Sender)
 	if (Nav7->Checked) CodeOptDialog->NavSys|=SYS_IRN;
 	if (Freq1->Checked) CodeOptDialog->FreqType|=FREQTYPE_L1;
 	if (Freq2->Checked) CodeOptDialog->FreqType|=FREQTYPE_L2;
-	if (Freq3->Checked) CodeOptDialog->FreqType|=FREQTYPE_E5b;
 	if (Freq4->Checked) CodeOptDialog->FreqType|=FREQTYPE_L5;
 	if (Freq5->Checked) CodeOptDialog->FreqType|=FREQTYPE_E6;
 	if (Freq6->Checked) CodeOptDialog->FreqType|=FREQTYPE_E5ab;
diff --git a/app/rtkconv/convopt.dfm b/app/rtkconv/convopt.dfm
index 700c41fa4362b9fd1b1dbd570baa1942d531f469..e6d6c3c80affcfa7dfe29190d976e24049ec950b 100644
--- a/app/rtkconv/convopt.dfm
+++ b/app/rtkconv/convopt.dfm
@@ -377,8 +377,8 @@ object ConvOptDialog: TConvOptDialog
     end
   end
   object TraceLevel: TComboBox
-    Left = 190
-    Top = 326
+    Left = 188
+    Top = 327
     Width = 63
     Height = 21
     Style = csDropDownList
@@ -420,36 +420,28 @@ object ConvOptDialog: TConvOptDialog
     object Freq2: TCheckBox
       Left = 42
       Top = 14
-      Width = 37
+      Width = 52
       Height = 17
-      Caption = 'L2'
+      Caption = 'L2/E5b'
       Checked = True
       State = cbChecked
       TabOrder = 1
     end
-    object Freq3: TCheckBox
-      Left = 74
-      Top = 14
-      Width = 53
-      Height = 17
-      Caption = 'E5b'
-      TabOrder = 2
-    end
     object Freq4: TCheckBox
-      Left = 113
-      Top = 14
+      Left = 100
+      Top = 16
       Width = 45
-      Height = 17
+      Height = 13
       Caption = 'L5'
-      TabOrder = 3
+      TabOrder = 2
     end
     object Freq5: TCheckBox
-      Left = 145
-      Top = 14
+      Left = 135
+      Top = 11
       Width = 39
-      Height = 17
+      Height = 24
       Caption = 'E6'
-      TabOrder = 4
+      TabOrder = 3
     end
     object Freq6: TCheckBox
       Left = 174
@@ -457,7 +449,7 @@ object ConvOptDialog: TConvOptDialog
       Width = 40
       Height = 17
       Caption = 'E5ab'
-      TabOrder = 5
+      TabOrder = 4
     end
     object Freq7: TCheckBox
       Left = 218
@@ -465,7 +457,7 @@ object ConvOptDialog: TConvOptDialog
       Width = 31
       Height = 17
       Caption = 'S'
-      TabOrder = 6
+      TabOrder = 5
     end
   end
   object ExSats: TEdit
diff --git a/app/rtkconv/convopt.h b/app/rtkconv/convopt.h
index b98ff667350e258616103e1c0795d86051b89c3d..c4c1034f5742ceed6f2e488e8274d49f1cfc24fb 100644
--- a/app/rtkconv/convopt.h
+++ b/app/rtkconv/convopt.h
@@ -51,7 +51,6 @@ __published:
 	TGroupBox *GroupBox4;
 	TCheckBox *Freq1;
 	TCheckBox *Freq2;
-	TCheckBox *Freq3;
 	TCheckBox *Freq4;
 	TCheckBox *Obs1;
 	TCheckBox *Nav5;
diff --git a/app/rtkconv/rtkconv.cbproj b/app/rtkconv/rtkconv.cbproj
index 5462fdedb1fa37bd7e5d277cb5791728ec3d0e1a..c3c5ef13bbd2af94b8f6401d45ce6a56513ab24f 100644
--- a/app/rtkconv/rtkconv.cbproj
+++ b/app/rtkconv/rtkconv.cbproj
@@ -6,7 +6,7 @@
         <Base>True</Base>
         <Config Condition="'$(Config)'==''">Release</Config>
         <FrameworkType>VCL</FrameworkType>
-        <ProjectVersion>18.4</ProjectVersion>
+        <ProjectVersion>18.6</ProjectVersion>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
         <TargetedPlatforms>1</TargetedPlatforms>
         <AppType>Application</AppType>
@@ -243,6 +243,10 @@
         <CppCompile Include="..\..\src\rcv\cmr.c">
             <BuildOrder>37</BuildOrder>
         </CppCompile>
+        <CppCompile Include="..\..\src\rcv\comnav.c">
+            <BuildOrder>5</BuildOrder>
+            <BuildOrder>15</BuildOrder>
+        </CppCompile>
         <CppCompile Include="..\..\src\rcv\crescent.c">
             <BuildOrder>20</BuildOrder>
             <BuildOrder>10</BuildOrder>
@@ -279,10 +283,6 @@
             <BuildOrder>5</BuildOrder>
             <BuildOrder>15</BuildOrder>
         </CppCompile>
-        <CppCompile Include="..\..\src\rcv\comnav.c">
-            <BuildOrder>5</BuildOrder>
-            <BuildOrder>15</BuildOrder>
-        </CppCompile>
         <CppCompile Include="..\..\src\rcv\tersus.c">
             <BuildOrder>38</BuildOrder>
         </CppCompile>
@@ -321,11 +321,11 @@
         <FormResources Include="codeopt.dfm"/>
         <FormResources Include="convmain.dfm"/>
         <FormResources Include="convopt.dfm"/>
-        <FormResources Include="..\appcmn\viewer.dfm"/>
         <FormResources Include="..\appcmn\aboutdlg.dfm"/>
         <FormResources Include="..\appcmn\confdlg.dfm"/>
         <FormResources Include="..\appcmn\keydlg.dfm"/>
         <FormResources Include="..\appcmn\timedlg.dfm"/>
+        <FormResources Include="..\appcmn\viewer.dfm"/>
         <FormResources Include="startdlg.dfm"/>
         <BuildConfiguration Include="Release">
             <Key>Cfg_2</Key>
@@ -414,67 +414,71 @@
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32c260.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
                 <DeployFile LocalName="..\..\src\rcv\cmr.c" Configuration="Debug" Class="ProjectFile">
                     <Platform Name="Win32">
                         <RemoteDir>.\</RemoteDir>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="..\..\src\rcv\novatel.c" Configuration="Release" Class="ProjectFile">
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32260.dll" Class="DependencyModule">
                     <Platform Name="Win32">
-                        <RemoteDir>.\</RemoteDir>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="..\..\src\rtkcmn.c" Configuration="Debug" Class="ProjectFile">
+                <DeployFile LocalName="Debug_Build\rtkconv.exe" Configuration="Debug" Class="ProjectOutput">
                     <Platform Name="Win32">
-                        <RemoteDir>.\</RemoteDir>
+                        <RemoteName>rtkconv.exe</RemoteName>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="..\..\src\pntpos.c" Configuration="Debug" Class="ProjectFile">
+                <DeployFile LocalName="..\..\src\ephemeris.c" Configuration="Release" Class="ProjectFile">
                     <Platform Name="Win32">
                         <RemoteDir>.\</RemoteDir>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="Debug_Build\rtkconv.exe" Configuration="Debug" Class="ProjectOutput">
+                <DeployFile LocalName="..\..\src\rtcm2.c" Configuration="Release" Class="ProjectFile">
                     <Platform Name="Win32">
-                        <RemoteName>rtkconv.exe</RemoteName>
+                        <RemoteDir>.\</RemoteDir>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="..\..\src\ephemeris.c" Configuration="Release" Class="ProjectFile">
+                <DeployFile LocalName="..\..\src\rtkcmn.c" Configuration="Debug" Class="ProjectFile">
                     <Platform Name="Win32">
                         <RemoteDir>.\</RemoteDir>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="..\..\src\rcv\nvs.c" Configuration="Release" Class="ProjectFile">
+                <DeployFile LocalName="..\..\src\rcv\novatel.c" Configuration="Release" Class="ProjectFile">
                     <Platform Name="Win32">
                         <RemoteDir>.\</RemoteDir>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="..\..\src\rtcm2.c" Configuration="Release" Class="ProjectFile">
+                <DeployFile LocalName="..\..\src\rcv\nvs.c" Configuration="Release" Class="ProjectFile">
                     <Platform Name="Win32">
                         <RemoteDir>.\</RemoteDir>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="..\..\src\ionex.c" Configuration="Release" Class="ProjectFile">
+                <DeployFile LocalName="..\..\src\pntpos.c" Configuration="Debug" Class="ProjectFile">
                     <Platform Name="Win32">
                         <RemoteDir>.\</RemoteDir>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="..\..\src\rcv\swiftnav.c" Configuration="Debug" Class="ProjectFile">
+                <DeployFile LocalName="..\..\src\ionex.c" Configuration="Release" Class="ProjectFile">
                     <Platform Name="Win32">
                         <RemoteDir>.\</RemoteDir>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="..\..\src\rcv\comnav.c" Configuration="Debug" Class="ProjectFile">
+                <DeployFile LocalName="..\..\src\rcv\swiftnav.c" Configuration="Debug" Class="ProjectFile">
                     <Platform Name="Win32">
                         <RemoteDir>.\</RemoteDir>
                         <Overwrite>true</Overwrite>
@@ -492,13 +496,13 @@
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="..\..\src\rcv\skytraq.c" Configuration="Release" Class="ProjectFile">
+                <DeployFile LocalName="..\..\src\rtkcmn.c" Configuration="Release" Class="ProjectFile">
                     <Platform Name="Win32">
                         <RemoteDir>.\</RemoteDir>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="..\..\src\rtkcmn.c" Configuration="Release" Class="ProjectFile">
+                <DeployFile LocalName="..\..\src\rcv\skytraq.c" Configuration="Release" Class="ProjectFile">
                     <Platform Name="Win32">
                         <RemoteDir>.\</RemoteDir>
                         <Overwrite>true</Overwrite>
@@ -584,6 +588,11 @@
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true'" LocalName="$(BDS)\Redist\osx64\libcgcrtl.dylib" Class="DependencyModule">
+                    <Platform Name="OSX64">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
                 <DeployFile LocalName="..\..\src\rcv\rcvlex.c" Configuration="Debug" Class="ProjectFile">
                     <Platform Name="Win32">
                         <RemoteDir>.\</RemoteDir>
@@ -626,12 +635,23 @@
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin64\cc64260mt.dll" Class="DependencyModule">
+                    <Platform Name="Win64">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
                 <DeployFile LocalName="..\..\src\rinex.c" Configuration="Release" Class="ProjectFile">
                     <Platform Name="Win32">
                         <RemoteDir>.\</RemoteDir>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
+                <DeployFile LocalName="..\..\src\rcv\comnav.c" Configuration="Debug" Class="ProjectFile">
+                    <Platform Name="Win32">
+                        <RemoteDir>.\</RemoteDir>
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
                 <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32250mt.dll" Class="DependencyModule">
                     <Platform Name="Win32">
                         <Overwrite>true</Overwrite>
@@ -777,15 +797,13 @@
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="..\..\src\rcv\swiftnav.c" Configuration="Release" Class="ProjectFile">
-                    <Platform Name="Win32">
-                        <RemoteDir>.\</RemoteDir>
+                <DeployFile Condition="'$(DynamicRTL)'=='true'" LocalName="$(BDS)\Redist\osx64\libcgstl.dylib" Class="DependencyModule">
+                    <Platform Name="OSX64">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="..\..\src\rcv\comnav.c" Configuration="Release" Class="ProjectFile">
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32260mt.dll" Class="DependencyModule">
                     <Platform Name="Win32">
-                        <RemoteDir>.\</RemoteDir>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
@@ -812,6 +830,16 @@
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin64\cc64260.dll" Class="DependencyModule">
+                    <Platform Name="Win64">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32c260mt.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
                 <DeployFile LocalName="..\..\src\rcv\crescent.c" Configuration="Debug" Class="ProjectFile">
                     <Platform Name="Win32">
                         <RemoteDir>.\</RemoteDir>
@@ -839,7 +867,6 @@
                         <Operation>1</Operation>
                     </Platform>
                     <Platform Name="Win32">
-                        <RemoteDir>Contents\MacOS</RemoteDir>
                         <Operation>0</Operation>
                     </Platform>
                 </DeployClass>
@@ -849,6 +876,12 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="AndroidFileProvider">
+                    <Platform Name="Android">
+                        <RemoteDir>res\xml</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="AndroidGDBServer">
                     <Platform Name="Android">
                         <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
@@ -885,6 +918,12 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="AndroidSplashStylesV21">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values-v21</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="Android_DefaultAppIcon">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable</RemoteDir>
@@ -963,6 +1002,11 @@
                         <Operation>1</Operation>
                         <Extensions>.framework</Extensions>
                     </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.framework</Extensions>
+                    </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                     </Platform>
@@ -985,6 +1029,11 @@
                         <Operation>1</Operation>
                         <Extensions>.dylib</Extensions>
                     </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                         <Extensions>.dll;.bpl</Extensions>
@@ -1008,6 +1057,11 @@
                         <Operation>1</Operation>
                         <Extensions>.dylib</Extensions>
                     </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                         <Extensions>.bpl</Extensions>
@@ -1030,6 +1084,10 @@
                         <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
                         <Operation>0</Operation>
                     </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
+                        <Operation>0</Operation>
+                    </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                     </Platform>
@@ -1166,23 +1224,41 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="ProjectOSXDebug">
+                    <Platform Name="OSX64">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="ProjectOSXEntitlements">
                     <Platform Name="OSX32">
                         <RemoteDir>..\</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="ProjectOSXInfoPList">
                     <Platform Name="OSX32">
                         <RemoteDir>Contents</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="ProjectOSXResource">
                     <Platform Name="OSX32">
                         <RemoteDir>Contents\Resources</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\Resources</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Required="true" Name="ProjectOutput">
                     <Platform Name="Android">
@@ -1205,6 +1281,10 @@
                         <RemoteDir>Contents\MacOS</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                     </Platform>
@@ -1244,6 +1324,7 @@
                 <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
             </Deployment>
         </BorlandProject>
diff --git a/app/rtknavi/navimain.cpp b/app/rtknavi/navimain.cpp
index f1b0cfe05cb51cfab71d24a9f5d335bd626b6a67..3a2413c221750602e974a9b62225d2d370ca6da9 100644
--- a/app/rtknavi/navimain.cpp
+++ b/app/rtknavi/navimain.cpp
@@ -2613,6 +2613,10 @@ void __fastcall TMainForm::LoadOpt(void)
     TrkScale2       =ini->ReadInteger("setting","trkscale2",       5);
     TrkScale3       =ini->ReadInteger("setting","trkscale3",       5);
     TrkScale4       =ini->ReadInteger("setting","trkscale4",       5);
+    FreqType1       =ini->ReadInteger("setting","freqtype1",       0);
+    FreqType2       =ini->ReadInteger("setting","freqtype2",       0);
+    FreqType3       =ini->ReadInteger("setting","freqtype3",       0);
+    FreqType4       =ini->ReadInteger("setting","freqtype4",       0);
     BLMode1         =ini->ReadInteger("setting","blmode1",         0);
     BLMode2         =ini->ReadInteger("setting","blmode2",         0);
     BLMode3         =ini->ReadInteger("setting","blmode3",         0);
@@ -2867,6 +2871,10 @@ void __fastcall TMainForm::SaveOpt(void)
     ini->WriteInteger("setting","trkscale2",  TrkScale2          );
     ini->WriteInteger("setting","trkscale3",  TrkScale3          );
     ini->WriteInteger("setting","trkscale4",  TrkScale4          );
+    ini->WriteInteger("setting","freqtype1",  FreqType1          );
+    ini->WriteInteger("setting","freqtype2",  FreqType2          );
+    ini->WriteInteger("setting","freqtype3",  FreqType3          );
+    ini->WriteInteger("setting","freqtype4",  FreqType4          );
     ini->WriteInteger("setting","blmode1",    BLMode1            );
     ini->WriteInteger("setting","blmode2",    BLMode2            );
     ini->WriteInteger("setting","blmode3",    BLMode3            );
diff --git a/src/convrnx.c b/src/convrnx.c
index 2292cbdaf99c2a75cfa91dc330b08da4beeafcf0..f744973f856e50d5130e0425a8ec5b07603b1f44 100644
--- a/src/convrnx.c
+++ b/src/convrnx.c
@@ -547,7 +547,6 @@ static void update_halfc(halfc_t *halfc, obsd_t *obs)
     }
 }
 /* dump half-cycle ambiguity status ------------------------------------------*/
-#if 1
 static void dump_halfc(halfc_t *halfc)
 {
     halfd_t *p;
@@ -565,7 +564,6 @@ static void dump_halfc(halfc_t *halfc)
         }
     }
 }
-#endif
 /* resolve half-cycle ambiguity ----------------------------------------------*/
 static void resolve_halfc(halfc_t *halfc, obsd_t *obs)
 {
diff --git a/src/options.c b/src/options.c
index 104b5596401ded8616bd8b6b37299a175d17e04d..b3737ba942fa81b8daccfa52b082976d39a3de84 100644
--- a/src/options.c
+++ b/src/options.c
@@ -40,7 +40,7 @@ static char snrmask_[NFREQ][1024];
 /* system options table ------------------------------------------------------*/
 #define SWTOPT  "0:off,1:on"
 #define MODOPT  "0:single,1:dgps,2:kinematic,3:static,4:static-start,5:movingbase,6:fixed,7:ppp-kine,8:ppp-static,9:ppp-fixed"
-#define FRQOPT  "1:l1,2:l1+l2,3:l1+l2+e5b,4:l1+l2+e5b+l5"
+#define FRQOPT  "1:l1,2:l1+l2,3:l1+l2+l5,4:l1+l2+l5+l6"
 #define TYPOPT  "0:forward,1:backward,2:combined"
 #define IONOPT  "0:off,1:brdc,2:sbas,3:dual-freq,4:est-stec,5:ionex-tec,6:qzs-brdc,7:qzs-lex,8:stec"
 #define TRPOPT  "0:off,1:saas,2:sbas,3:est-ztd,4:est-ztdgrad,5:ztd"
diff --git a/src/rcv/binex.c b/src/rcv/binex.c
index 061624432948eee029751afa62fcc7717e3e69c5..afd9bff1dabe6f11dbc8791e90fee0600e6b7a7c 100644
--- a/src/rcv/binex.c
+++ b/src/rcv/binex.c
@@ -1,7 +1,7 @@
 /*------------------------------------------------------------------------------
 * binex.c : binex dependent functions
 *
-*          Copyright (C) 2013-2017 by T.TAKASU, All rights reserved.
+*          Copyright (C) 2013-2019 by T.TAKASU, All rights reserved.
 *
 * reference :
 *     [1] UNAVCO, BINEX: Binary exchange format
@@ -627,7 +627,7 @@ static int decode_bnx_01_04(raw_t *raw, unsigned char *buff, int len)
     if (eph_sel==2&&!(eph.code&(1<<8))) return 0; /* only F/NAV */
     
     eph.A=sqrtA*sqrtA;
-    eph.iode=eph.iodc;
+    eph.iodc=eph.iode;
     eph.toe=gpst2time(eph.week,eph.toes);
     eph.toc=gpst2time(eph.week,eph.toes);
     eph.ttr=adjweek(eph.toe,tow);
@@ -983,6 +983,9 @@ static unsigned char *decode_bnx_7f_05_obs(raw_t *raw, unsigned char *buff,
             if      (freq[i]==5) freq[i]=2; /* B2 */
             else if (freq[i]==4) freq[i]=3; /* B3 */
         }
+        else if (sys==SYS_GAL) {
+            if (freq[i]==5) freq[i]=2; /* E5b */
+        }
     }
     for (i=0;i<NFREQ;i++) {
         for (j=0,k=-1;j<nobs;j++) {
diff --git a/src/rcv/javad.c b/src/rcv/javad.c
index e3eaf83d3d85947f31061c28559cbb97321c35b4..5f2a198babbaaee87bafe282d6c9ec4af46fb2da 100644
--- a/src/rcv/javad.c
+++ b/src/rcv/javad.c
@@ -1,7 +1,7 @@
 /*------------------------------------------------------------------------------
 * javad.c : javad receiver dependent functions
 *
-*          Copyright (C) 2011-2018 by T.TAKASU, All rights reserved.
+*          Copyright (C) 2011-2019 by T.TAKASU, All rights reserved.
 *
 * reference :
 *     [1] Javad GNSS, GREIS GNSS Receiver External Interface Specification,
@@ -43,6 +43,7 @@
 *                           fix problem to set eph->code for beidou and galileo
 *                           fix bug on saving galileo bgd to ephemeris
 *                           add receiver option -GALINAV, -GALFNAV
+*           2019/05/10 1.15 save galileo E5b data to obs index 2
 *-----------------------------------------------------------------------------*/
 #include "rtklib.h"
 
@@ -107,7 +108,7 @@ static int tofreq(char sig, int sys, int *type)
     };
     const int freqs[7][6]={
         {1,1,2,2,3,1}, {1,1,4,2,3,1}, {1,0,0,0,3,0},     /* GPS,QZS,SBS */
-        {1,6,5,4,3,0}, {1,1,2,2,3,0}, {1,0,2,3,3,1},     /* GAL,GLO,BDS */
+        {1,6,2,4,3,0}, {1,1,2,2,3,0}, {1,0,2,3,3,1},     /* GAL,GLO,BDS */
         {0,0,0,0,3,0}                                    /* IRN */
     };
     int i,j;
@@ -183,6 +184,9 @@ static double freq_sys(int sys, int freq, int freqn)
         }
         return 0.0;
     }
+    else if (sys==SYS_GAL&&freq==1) { /* Galileo E5b */
+        return FREQE5b;
+    }
     else {
         return CLIGHT/lam_carr[freq];
     }
diff --git a/src/rcv/novatel.c b/src/rcv/novatel.c
index c18275813a8848b41e8b9f042621188039ab733d..656a2cf1db9fa6a2df85b321c5dd140f9072a620 100644
--- a/src/rcv/novatel.c
+++ b/src/rcv/novatel.c
@@ -1,7 +1,7 @@
 /*------------------------------------------------------------------------------
-* notvatel.c : NovAtel OEM6/OEM5/OEM4 receiver functions
+* notvatel.c : NovAtel OEM6/OEM5/OEM4/OEM3 receiver functions
 *
-*          Copyright (C) 2007-2018 by T.TAKASU, All rights reserved.
+*          Copyright (C) 2007-2019 by T.TAKASU, All rights reserved.
 *
 * reference :
 *     [1] NovAtel, OM-20000094 Rev6 OEMV Family Firmware Reference Manual, 2008
@@ -54,6 +54,7 @@
 *           2018/10/10 1.16 fix problem on data souce for galileo ephemeris
 *                           output L2W instead of L2D for L2Pcodeless
 *                           test toc difference to output beidou ephemeris
+*           2019/05/10 1.17 save galileo E5b data to obs index 2
 *-----------------------------------------------------------------------------*/
 #include "rtklib.h"
 
@@ -219,7 +220,7 @@ static int decode_trackstat(unsigned int stat, int *sys, int *code, int *track,
             case  1: freq=0; *code=CODE_L1B; break; /* E1B  (OEM6) */
             case  2: freq=0; *code=CODE_L1C; break; /* E1C  (OEM6) */
             case 12: freq=2; *code=CODE_L5Q; break; /* E5aQ (OEM6) */
-            case 17: freq=4; *code=CODE_L7Q; break; /* E5bQ (OEM6) */
+            case 17: freq=1; *code=CODE_L7Q; break; /* E5bQ (OEM6) */
             case 20: freq=5; *code=CODE_L8Q; break; /* AltBOCQ (OEM6) */
             default: freq=-1; break;
         }
@@ -264,7 +265,6 @@ static int checkpri(const char *opt, int sys, int code, int freq)
     else if (sys==SYS_GAL) {
         if (strstr(opt,"-EL1B")&&freq==0) return code==CODE_L1B?0:-1;
         if (code==CODE_L1B) return nex<1?-1:NFREQ;
-        if (code==CODE_L7Q) return nex<2?-1:NFREQ+1;
         if (code==CODE_L8Q) return nex<3?-1:NFREQ+2;
     }
     return freq<NFREQ?freq:-1;
diff --git a/src/rcv/tersus.c b/src/rcv/tersus.c
index eeaec0853eda2c960eb8f6d233df2eac81f2ac32..c75488c8bdbe7ad8ef92a101bfdb46b015b72d27 100644
--- a/src/rcv/tersus.c
+++ b/src/rcv/tersus.c
@@ -1,14 +1,15 @@
 /*------------------------------------------------------------------------------
 * tersus.c : Tersus Precis receiver functions
 *
-*          Copyright (C) 2017 by T.TAKASU, All rights reserved.
+*          Copyright (C) 2017-2019 by T.TAKASU, All rights reserved.
 *
 * reference :
 *     [1] Tersus GNSS Inc., Command & Log Reference For Precis-BX306 & BX316
 *         GNSS RTK Board, Version V1.0-20170421
 *
 * version : $Revision:$ $Date:$
-* history : 2017/05/26 1.0 new
+* history : 2017/05/26 1.0  new
+*           2019/05/10 1.1  save galileo E5b data to obs index 2
 *-----------------------------------------------------------------------------*/
 #include "rtklib.h"
 
@@ -137,7 +138,7 @@ static int decode_trackstat(unsigned int stat, int *sys, int *code, int *track,
             case  1: freq=0; *code=CODE_L1B; break; /* E1B */
             case  2: freq=0; *code=CODE_L1C; break; /* E1C */
             case 12: freq=2; *code=CODE_L5Q; break; /* E5aQ */
-            case 17: freq=4; *code=CODE_L7Q; break; /* E5bQ */
+            case 17: freq=1; *code=CODE_L7Q; break; /* E5bQ */
             case 20: freq=5; *code=CODE_L8Q; break; /* AltBOCQ */
             default: freq=-1; break;
         }
@@ -183,7 +184,6 @@ static int checkpri(const char *opt, int sys, int code, int freq)
     else if (sys==SYS_GAL) {
         if (strstr(opt,"-EL1B")&&freq==0) return code==CODE_L1B?0:-1;
         if (code==CODE_L1B) return nex<1?-1:NFREQ;
-        if (code==CODE_L7Q) return nex<2?-1:NFREQ+1;
         if (code==CODE_L8Q) return nex<3?-1:NFREQ+2;
     }
     return freq<NFREQ?freq:-1;
diff --git a/src/rcv/ublox.c b/src/rcv/ublox.c
index d61765f8d197e1b979d040cdc72bde488e7c7104..ffb0289a4602f7c105fa1bc48ff9d04f9a15ef7e 100644
--- a/src/rcv/ublox.c
+++ b/src/rcv/ublox.c
@@ -62,6 +62,9 @@
 *           2018/11/05 1.26 fix problem on missing QZSS L2C signal
 *                           save signal in obs data by signal index
 *                           suppress warning for cnav in ubx-rxm-sfrbx
+*           2019/05/10 1.27 disable half-cyc-subtract flag on LLI for RXM-RAWX
+*                           save galileo E5b data to obs index 2
+*                           handle C17 as no-GEO (MEO/IGSO)
 *-----------------------------------------------------------------------------*/
 #include "rtklib.h"
 
@@ -202,8 +205,8 @@ static int sig_idx(int sys, int code)
     else if (sys == SYS_GAL) {
         if (code==CODE_L1C) return 1;
         if (code==CODE_L1B) return 1;
-        if (code==CODE_L7Q) return 3;
-        if (code==CODE_L7I) return 3;
+        if (code==CODE_L7I) return 2; /* E5bI */
+        if (code==CODE_L7Q) return 2; /* E5bQ */
     }
     else if (sys == SYS_QZS) {
         if (code==CODE_L1C) return 1;
@@ -988,7 +991,7 @@ static int decode_cnav(raw_t *raw, int sat, int off)
         trace(2,"ubx rawsfrbx subfrm id error: sat=%2d\n",sat);
         return -1;
     }
-    if (prn>5&&prn!=17) { /* IGSO/MEO */
+    if (prn>5&&prn<59) { /* IGSO/MEO */
         
         for (i=0;i<10;i++) {
             setbitu(raw->subfrm[sat-1]+(id-1)*38,i*30,30,words[i]);
@@ -998,7 +1001,7 @@ static int decode_cnav(raw_t *raw, int sat, int off)
         /* decode beidou D1 ephemeris */
         if (!decode_bds_d1(raw->subfrm[sat-1],&eph)) return 0;
     }
-    else { /* GEO (C01-05,C17) */
+    else { /* GEO (C01-05, C59-63) */
         if (id!=1) return 0;
         
         /* subframe 1 */
diff --git a/src/rcvraw.c b/src/rcvraw.c
index 3ef901030e02154c42dd9973e41fd4d19aa93a19..aad1d21d998cf1fb91f8f0146a7c09ea8d4441db 100644
--- a/src/rcvraw.c
+++ b/src/rcvraw.c
@@ -36,6 +36,7 @@
 *           2017/05/26 1.14 support TERSUS
 *           2018/10/10 1.15 update reference [5]
 *                           add set of eph->code/flag for galileo and beidou
+*           2018/12/05 1.16 add test of galileo i/nav word type 5
 *-----------------------------------------------------------------------------*/
 #include "rtklib.h"
 #include <stdint.h>
@@ -160,9 +161,9 @@ extern int decode_gal_inav(const unsigned char *buff, eph_t *eph)
     e1b_dvs    =getbitu(buff,i, 1);
     
     /* test word types */
-    if (type[0]!=0||type[1]!=1||type[2]!=2||type[3]!=3||type[4]!=4) {
-        trace(3,"decode_gal_inav error: type=%d %d %d %d %d\n",type[0],type[1],
-              type[2],type[3],type[4]);
+    if (type[0]!=0||type[1]!=1||type[2]!=2||type[3]!=3||type[4]!=4||type[5]!=5) {
+        trace(3,"decode_gal_inav error: type=%d %d %d %d %d %d\n",type[0],
+              type[1],type[2],type[3],type[4],type[5]);
         return 0;
     }
     /* test word type 0 time field */
diff --git a/src/rtcm3.c b/src/rtcm3.c
index 82801c62d3848f544f3fc95a5ede73dcaabecc12..195f0bc2ef0c855e6e84d329b541e0abc43cc1b5 100644
--- a/src/rtcm3.c
+++ b/src/rtcm3.c
@@ -1,7 +1,7 @@
 /*------------------------------------------------------------------------------
 * rtcm3.c : rtcm ver.3 message decorder functions
 *
-*          Copyright (C) 2009-2018 by T.TAKASU, All rights reserved.
+*          Copyright (C) 2009-2019 by T.TAKASU, All rights reserved.
 *
 * references :
 *     see rtcm.c
@@ -37,6 +37,7 @@
 *                           change mt for ssr 7 phase biases
 *                           add rtcm option -GALINAV, -GALFNAV
 *           2018/11/05 1.20 fix problem on invalid time in message monitor
+*           2019/05/10 1.21 save galileo E5b data to obs index 2
 *-----------------------------------------------------------------------------*/
 #include "rtklib.h"
 
@@ -1346,7 +1347,6 @@ static int decode_ssr2_head(rtcm_t *rtcm, int sys, int *sync, int *iod,
     *hsize=i;
     return nsat;
 }
-
 /* ssr signal and tracking mode ids ------------------------------------------*/
 static const int codes_gps[]={
     CODE_L1C,CODE_L1P,CODE_L1W,CODE_L1Y,CODE_L1M,CODE_L2C,CODE_L2D,CODE_L2S,
@@ -1824,6 +1824,14 @@ static void save_msm_obs(rtcm_t *rtcm, int sys, msm_h_t *h, const double *r,
         /* signal to rinex obs type */
         code[i]=obs2code(sys,sig[i],freq+i);
 
+        /* freqency index for beidou and galileo */
+        if (sys==SYS_CMP) {
+            if      (freq[i]==5) freq[i]=2; /* B2 */
+            else if (freq[i]==4) freq[i]=3; /* B3 */
+        }
+        else if (sys==SYS_GAL) {
+            if (freq[i]==5) freq[i]=2; /* E5b */
+        }
         if (code[i]!=CODE_NONE) {
             if (q) q+=sprintf(q,"L%s%s",sig[i],i<h->nsig-1?",":"");
         }
diff --git a/src/rtcm3e.c b/src/rtcm3e.c
index 7ffcb5e958dc16909789e6f026289afcecc9f39d..ccedcdefa930bf67e146c88e3319cdd16ade9d52 100644
--- a/src/rtcm3e.c
+++ b/src/rtcm3e.c
@@ -1,7 +1,7 @@
 /*------------------------------------------------------------------------------
 * rtcm3e.c : rtcm ver.3 message encoder functions
 *
-*          Copyright (C) 2012-2018 by T.TAKASU, All rights reserved.
+*          Copyright (C) 2012-2019 by T.TAKASU, All rights reserved.
 *
 * references :
 *     see rtcm.c
@@ -34,6 +34,7 @@
 *           2017/04/11 1.16 fix bug on gst-week in MT1045/1046
 *           2018/10/10 1.17 merge changes for 2.4.2 p13
 *                           change mt for ssr 7 phase biases
+*           2019/05/10 1.21 save galileo E5b data to obs index 2
 *-----------------------------------------------------------------------------*/
 #include "rtklib.h"
 
@@ -1771,11 +1772,14 @@ static int to_sigid(int sys, unsigned char code, int *freq)
         case SYS_CMP: msm_sig=msm_sig_cmp; break;
         default: return 0;
     }
-    /* freqency index for beidou */
+    /* freqency index for beidou and galileo */
     if (sys==SYS_CMP) {
         if      (*freq==5) *freq=2; /* B2 */
         else if (*freq==4) *freq=3; /* B3 */
     }
+    else if (sys==SYS_GAL) {
+        if (*freq==5) *freq=2; /* E5b */
+    }
     for (i=0;i<32;i++) {
         if (!strcmp(sig,msm_sig[i])) return i+1;
     }
diff --git a/src/rtkcmn.c b/src/rtkcmn.c
index edb1c86c1ca1fd5ff6dbc77b7b6e57ced0be1baa..d2d0e9c975fb9bc5358272e484a07c642f3f17ab 100644
--- a/src/rtkcmn.c
+++ b/src/rtkcmn.c
@@ -16,8 +16,6 @@
 *     [1] IS-GPS-200D, Navstar GPS Space Segment/Navigation User Interfaces,
 *         7 March, 2006
 *     [2] RTCA/DO-229C, Minimum operational performanc standards for global
-*         positioning system/wide area augmentation system airborne equipment,
-*         RTCA inc, November 28, 2001
 *     [3] M.Rothacher, R.Schmid, ANTEX: The Antenna Exchange Format Version 1.4,
 *         15 September, 2010
 *     [4] A.Gelb ed., Applied Optimal Estimation, The M.I.T Press, 1974
@@ -253,14 +251,15 @@ static char *obscodes[]={       /* observation code strings */
     "5B","5C","9A","9B","9C", "9X",""  ,""  ,""  ,""    /* 50-59 */
 };
 static unsigned char obsfreqs[]={
-    /* 1:L1/E1, 2:L2, 3:E5b, 4:L5/E5a/L3, 5:E6/LEX, 6:E5(a+b), 7:S */
+    /* 1:L1/E1, 2:L2/E5b, 3:L5/E5a/L3, 4:E6/LEX, 5:E5(a+b), 6:S */
     0, 1, 1, 1, 1,  1, 1, 1, 1, 1, /*  0- 9 */
     1, 1, 1, 1, 2,  2, 2, 2, 2, 2, /* 10-19 */
-    2, 2, 2, 2, 4,  4, 4, 3, 3, 3, /* 20-29 */
+    2, 2, 2, 2, 3,  3, 3, 2, 2, 2, /* 20-29 */
     5, 5, 5, 5, 5,  5, 5, 6, 6, 6, /* 30-39 */
     1, 1, 3, 3, 4,  4, 4, 1, 1, 4, /* 40-49 */
     4, 4, 7, 7, 7,  7, 0, 0, 0, 0  /* 50-59 */
 };
+
 static unsigned char obsfreqs_cmp[]={
     /* 1:B1, 2:B2, 3:B3 */
     0, 1, 1, 1, 1,  1, 1, 1, 1, 1, /*  0- 9 */
@@ -3389,7 +3388,7 @@ extern double satwavelen(int sat, int frq, const nav_t *nav)
     int i,sys=satsys(sat,NULL);
     
     if (sys==SYS_GLO) {
-        if (0<=frq&&frq<=1) {
+        if (0<=frq&&frq<=1) { /* L1,L2 */
             for (i=0;i<nav->ng;i++) {
                 if (nav->geph[i].sat!=sat) continue;
                 return CLIGHT/(freq_glo[frq]+dfrq_glo[frq]*nav->geph[i].frq);
@@ -3404,13 +3403,18 @@ extern double satwavelen(int sat, int frq, const nav_t *nav)
         else if (frq==1) return CLIGHT/FREQ2_CMP; /* B2 */
         else if (frq==2) return CLIGHT/FREQ3_CMP; /* B3 */
     }
-    else {
-        if      (frq==0) return CLIGHT/FREQL1; /* L1/E1 */
+    else if (sys==SYS_GAL) {
+        if      (frq==0) return CLIGHT/FREQL1; /* E1 */
+        else if (frq==1) return CLIGHT/FREQE5b; /* E5b */
+        else if (frq==2) return CLIGHT/FREQL5; /* E5a */
+        else if (frq==3) return CLIGHT/FREQE6; /* E6 */
+        else if (frq==5) return CLIGHT/FREQE5ab; /* E5ab */
+    }
+    else { /* GPS,QZS */
+        if      (frq==0) return CLIGHT/FREQL1; /* L1 */
         else if (frq==1) return CLIGHT/FREQL2; /* L2 */
-        else if (frq==2) return CLIGHT/FREQE5b; /* E5b */
-        else if (frq==3) return CLIGHT/FREQL5; /* L5/E5a */
-        else if (frq==4) return CLIGHT/FREQE6; /* L6/LEX */
-        else if (frq==5) return CLIGHT/FREQE5ab; /* E5a+b */
+        else if (frq==2) return CLIGHT/FREQL5; /* L5 */
+        else if (frq==3) return CLIGHT/FREQE6; /* L6/LEX */
         else if (frq==6) return CLIGHT/FREQs; /* S */
     }
     return 0.0;
diff --git a/src/rtklib.h b/src/rtklib.h
index 5ebb6b08dc8fe2db36ec6c17ec3cc0ca40ec180d..2abdfe5cd8078dba5bf19a700d1633d0f57e522b 100644
--- a/src/rtklib.h
+++ b/src/rtklib.h
@@ -1,7 +1,7 @@
 /*------------------------------------------------------------------------------
 * rtklib.h : rtklib constants, types and function prototypes
 *
-*          Copyright (C) 2007-2016 by T.TAKASU, All rights reserved.
+*          Copyright (C) 2007-2019 by T.TAKASU, All rights reserved.
 *
 * options : -DENAGLO   enable GLONASS
 *           -DENAGAL   enable Galileo
@@ -58,10 +58,10 @@ extern "C" {
 
 #define VER_RTKLIB  "demo5"             /* library version */
 
-#define PATCH_LEVEL "b31a"               /* patch level */
+#define PATCH_LEVEL "b32"               /* patch level */
 
 #define COPYRIGHT_RTKLIB \
-            "Copyright (C) 2007-2018 T.Takasu\nAll rights reserved."
+            "Copyright (C) 2007-2019 T.Takasu\nAll rights reserved."
 
 #define PI          3.1415926535897932  /* pi */
 #define D2R         (PI/180.0)          /* deg to rad */
@@ -80,13 +80,13 @@ extern "C" {
 
 #define MAXFREQ     7                   /* max NFREQ */
 
-#define FREQL1      1.57542E9           /* L1/E1  frequency 1 (Hz) */
-#define FREQL2      1.22760E9           /* L2     frequency 2 (Hz) */
-#define FREQE5b      1.20714E9          /* E5b    frequency 3 (Hz) */
-#define FREQL5      1.17645E9           /* L5/E5a frequency 4 (Hz) */
-#define FREQE6      1.27875E9           /* E6/LEX frequency 5 (Hz) */
-#define FREQE5ab    1.191795E9          /* E5a+b  frequency 6 (Hz) */
-#define FREQs       2.492028E9           /* S      frequency 7 (Hz) */
+#define FREQL1      1.57542E9           /* L1/E1/B1  frequency (Hz) */
+#define FREQL2      1.22760E9           /* L2     frequency (Hz) */
+#define FREQE5b     1.20714E9           /* E5b    frequency (Hz) */
+#define FREQL5      1.17645E9           /* L5/E5a frequency (Hz) */
+#define FREQE6      1.27875E9           /* E6/LEX frequency (Hz) */
+#define FREQE5ab    1.191795E9          /* E5a+b/B2  frequency (Hz) */
+#define FREQs       2.492028E9           /* S      frequency (Hz) */
 #define FREQ1_GLO   1.60200E9           /* GLONASS G1 base frequency (Hz) */
 #define DFRQ1_GLO   0.56250E6           /* GLONASS G1 bias frequency (Hz/n) */
 #define FREQ2_GLO   1.24600E9           /* GLONASS G2 base frequency (Hz) */
@@ -176,7 +176,7 @@ extern "C" {
 #endif
 #ifdef ENACMP
 #define MINPRNCMP   1                   /* min satellite sat number of BeiDou */
-#define MAXPRNCMP   35                  /* max satellite sat number of BeiDou */
+#define MAXPRNCMP   37                  /* max satellite sat number of BeiDou */
 #define NSATCMP     (MAXPRNCMP-MINPRNCMP+1) /* number of BeiDou satellites */
 #define NSYSCMP     1
 #else
@@ -272,12 +272,11 @@ extern "C" {
 #define OBSTYPE_ALL 0xFF                /* observation type: all */
 
 #define FREQTYPE_L1 0x01                /* frequency type: L1/E1 */
-#define FREQTYPE_L2 0x02                /* frequency type: L2/B1 */
-#define FREQTYPE_E5b 0x04               /* frequency type: E5b/B2 */
-#define FREQTYPE_L5 0x08                /* frequency type: L5/E5a/L3 */
-#define FREQTYPE_E6 0x10                /* frequency type: E6/LEX/B3 */
-#define FREQTYPE_E5ab 0x20              /* frequency type: E5(a+b) */
-#define FREQTYPE_S 0x40                 /* frequency type: S */
+#define FREQTYPE_L2 0x02                /* frequency type: L2/B1/E5b */
+#define FREQTYPE_L5 0x04                /* frequency type: L5/E5a/L3 */
+#define FREQTYPE_E6 0x08                /* frequency type: E6/LEX/B3 */
+#define FREQTYPE_E5ab 0x10              /* frequency type: E5(a+b) */
+#define FREQTYPE_S 0x20                 /* frequency type: S */
 #define FREQTYPE_ALL 0xFF               /* frequency type: all */
 
 #define CODE_NONE   0                   /* obs code: none or unknown */
@@ -1064,7 +1063,7 @@ typedef struct {        /* SNR mask type */
 typedef struct {        /* processing options type */
     int mode;           /* positioning mode (PMODE_???) */
     int soltype;        /* solution type (0:forward,1:backward,2:combined) */
-    int nf;             /* number of frequencies (1:L1,2:L1+L2,3:L1+L2+E5b,4:L1+L2+E5b+L5) */
+    int nf;             /* number of frequencies (1:L1,2:L1+L2,3:L1+L2+L3,4:L1+L2+L3+L4) */
     int navsys;         /* navigation system */
     double elmin;       /* elevation mask angle (rad) */
     snrmask_t snrmask;  /* SNR mask */
diff --git a/src/rtkpos.c b/src/rtkpos.c
index c2f38ef730ac79895101b9fdd9845e365bddfe91..bfd77e991e269f822afc33e55cde99a923c20d06 100644
--- a/src/rtkpos.c
+++ b/src/rtkpos.c
@@ -40,6 +40,7 @@
 *                           fix bug on slip detection of backward filter
 *           2016/08/20 1.22 fix bug on ddres() function
 *           2018/10/10 1.13 support api change of satexclude()
+*           2018/12/15 1.14 disable ambiguity resolution for gps-qzss
 *-----------------------------------------------------------------------------*/
 #include <stdarg.h>
 #include "rtklib.h"
@@ -1174,16 +1175,16 @@ static double gloicbcorr(int sat1, int sat2, const prcopt_t *opt, double lam1,
     
     return opt->exterr.gloicb[f]*0.01*dfreq; /* (m) */
 }
-/* test navi system (m=0:gps/qzs/sbs,1:glo,2:gal,3:bds) ----------------------*/
+/* test navi system (m=0:gps/sbs,1:glo,2:gal,3:bds,4:qzs) --------------------*/
 static int test_sys(int sys, int m)
 {
     switch (sys) {
         case SYS_GPS: return m==0;
-        case SYS_QZS: return m==0;
         case SYS_SBS: return m==0;
         case SYS_GLO: return m==1;
         case SYS_GAL: return m==2;
         case SYS_CMP: return m==3;
+        case SYS_QZS: return m==4;
     }
     return 0;
 }
@@ -1244,8 +1245,8 @@ static int ddres(rtk_t *rtk, const nav_t *nav, const obsd_t *obs, double dt, con
             tropr[i]=prectrop(rtk->sol.time,posr,1,azel+ir[i]*2,opt,x,dtdxr+i*3);
         }
     }
-    /* step through sat systems: m=0:gps/qzs/sbs,1:glo,2:gal,3:bds */
-    for (m=0;m<4;m++) { 
+    /* step through sat systems: m=0:gps/sbs,1:glo,2:gal,3:bds 4:qzs*/
+    for (m=0;m<5;m++) { 
 
         /* step through phases/codes */
         for (f=opt->mode>PMODE_DGPS?0:nf;f<nf*2;f++) {
@@ -1489,7 +1490,7 @@ static int ddmat(rtk_t *rtk, double *D,int gps,int glo,int sbs)
     /* set diaganol elements for all non sat phase-bias states */
     for (i=0;i<na;i++) D[i+i*nx]=1.0;
     
-    for (m=0;m<4;m++) { /* m=0:gps/qzs/sbs,1:glo,2:gal,3:bds */
+    for (m=0;m<5;m++) { /* m=0:gps/sbs,1:glo,2:gal,3:bds,4:qzs */
         
         /* skip if ambiguity resolution turned off for this sys */
         nofix=(m==0&&gps==0)||(m==1&&glo==0)||(m==3&&rtk->opt.bdsmodear==0);        
@@ -1555,7 +1556,7 @@ static void restamb(rtk_t *rtk, const double *bias, int nb, double *xa)
     for (i=0;i<rtk->nx;i++) xa[i]=rtk->x [i];  /* init all fixed states to float state values */
     for (i=0;i<rtk->na;i++) xa[i]=rtk->xa[i];  /* overwrite non phase-bias states with fixed values */
     
-    for (m=0;m<4;m++) for (f=0;f<nf;f++) {
+    for (m=0;m<5;m++) for (f=0;f<nf;f++) {
         
         for (n=i=0;i<MAXSAT;i++) {
             if (!test_sys(rtk->ssat[i].sys,m)||rtk->ssat[i].fix[f]!=2) {
@@ -1583,7 +1584,7 @@ static void holdamb(rtk_t *rtk, const double *xa)
     
     v=mat(nb,1); H=zeros(nb,rtk->nx);
     
-    for (m=0;m<4;m++) for (f=0;f<nf;f++) {
+    for (m=0;m<5;m++) for (f=0;f<nf;f++) {
         
         for (n=i=0;i<MAXSAT;i++) {
             if (!test_sys(rtk->ssat[i].sys,m)||rtk->ssat[i].fix[f]!=2||
diff --git a/src/solution.c b/src/solution.c
index 5fc7a64c87ac75956939cb0817b123783f066c42..d0796512d8f28cc86e5b394f7bf439cc34cac950 100644
--- a/src/solution.c
+++ b/src/solution.c
@@ -1477,7 +1477,7 @@ extern int outprcopts(unsigned char *buff, const prcopt_t *opt)
     const int sys[]={SYS_GPS,SYS_GLO,SYS_GAL,SYS_QZS,SYS_CMP,SYS_IRN,SYS_SBS,0};
     const char *s1[]={"single","dgps","kinematic","static","static-start","moving-base","fixed",
                  "ppp-kinematic","ppp-static","ppp-fixed",""};
-    const char *s2[]={"L1","L1+L2","L1+L2+E5b","L1+L2+E5b+L5"};
+    const char *s2[]={"L1","L1+L2","L1+L2+L5","L1+L2+L5+L6"};
     const char *s3[]={"forward","backward","combined"};
     const char *s4[]={"off","broadcast","sbas","iono-free","estimation",
                       "ionex tec","qzs","lex","vtec_sf","vtec_ef","gtec",""};
diff --git a/src/stream.c b/src/stream.c
index be0151638e03e8eaf5d8bbe1cdcf3d35045823e1..6452f59d94b1efcfeb2c8b1960a060ad5265a412 100644
--- a/src/stream.c
+++ b/src/stream.c
@@ -1,7 +1,7 @@
 /*------------------------------------------------------------------------------
 * stream.c : stream input/output functions
 *
-*          Copyright (C) 2008-2018 by T.TAKASU, All rights reserved.
+*          Copyright (C) 2008-2019 by T.TAKASU, All rights reserved.
 *
 * options : -DWIN32    use WIN32 API
 *           -DSVR_REUSEADDR reuse tcp server address
@@ -62,6 +62,7 @@
 *                           fix bug on file playback as slave mode
 *                           fix bug on timeset() in gpst instead of utc
 *                           update trace levels and buffer sizes
+*           2019/05/10 1.27 fix bug on dropping message on tcp stream (#144)
 *-----------------------------------------------------------------------------*/
 #include <ctype.h>
 #include "rtklib.h"
@@ -1246,7 +1247,6 @@ static int readtcpsvr(tcpsvr_t *tcpsvr, unsigned char *buff, int n, char *msg)
             }
             discontcp(&tcpsvr->cli[i],ticonnect);
             updatetcpsvr(tcpsvr,msg);
-            return 0;
         }
         if (nr>0) {
             tcpsvr->cli[i].tact=tickget();
@@ -1274,7 +1274,6 @@ static int writetcpsvr(tcpsvr_t *tcpsvr, unsigned char *buff, int n, char *msg)
             }
             discontcp(&tcpsvr->cli[i],ticonnect);
             updatetcpsvr(tcpsvr,msg);
-            return 0;
         }
         if (ns>0) tcpsvr->cli[i].tact=tickget();
     }