diff --git a/bacnet-stack/bacapp.h b/bacnet-stack/bacapp.h
index c5841d8d..005d5078 100644
--- a/bacnet-stack/bacapp.h
+++ b/bacnet-stack/bacapp.h
@@ -87,6 +87,9 @@ extern "C" {
bool bacapp_print_value(FILE * stream,
BACNET_APPLICATION_DATA_VALUE * value,
BACNET_PROPERTY_ID property);
+#else
+#define bacapp_parse_application_data(x,y,z) {(void)x;(void)y;(void)z;}
+#define bacapp_print_value(x,y,z) {(void)x;(void)y;(void)z;}
#endif
#ifdef TEST
diff --git a/bacnet-stack/ports/win32/bacnet/bacnet.dsp b/bacnet-stack/ports/win32/bacnet/bacnet.dsp
index 024dc2df..20d0b1c9 100644
--- a/bacnet-stack/ports/win32/bacnet/bacnet.dsp
+++ b/bacnet-stack/ports/win32/bacnet/bacnet.dsp
@@ -42,7 +42,7 @@ RSC=rc.exe
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "..\..\.." /I ".." /I "..\..\..\demo\object\\" /I "..\..\..\demo\handler\\" /D "NDEBUG" /D "BACDL_BIP" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TSM_ENABLED=1 /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I "..\..\.." /I ".." /I "..\..\..\demo\object\\" /I "..\..\..\demo\handler\\" /D "NDEBUG" /D "BACDL_BIP" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TSM_ENABLED=1 /D BACAPP_PRINT_ENABLED=1 /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
@@ -67,7 +67,7 @@ LINK32=link.exe
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\.." /I ".." /I "..\..\..\demo\object\\" /I "..\..\..\demo\handler\\" /D "_DEBUG" /D "BACDL_BIP" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TSM_ENABLED=1 /FR /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\.." /I ".." /I "..\..\..\demo\object\\" /I "..\..\..\demo\handler\\" /D "_DEBUG" /D "BACDL_BIP" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TSM_ENABLED=1 /D PRINT_ENABLED=1 /FR /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
@@ -229,6 +229,10 @@ SOURCE=..\main.c
# End Source File
# Begin Source File
+SOURCE=..\..\..\demo\object\mso.c
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\demo\handler\noserv.c
# End Source File
# Begin Source File
@@ -333,6 +337,10 @@ SOURCE=..\..\..\bacstr.h
# End Source File
# Begin Source File
+SOURCE=..\..\..\bactext.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\bigend.h
# End Source File
# Begin Source File
@@ -385,6 +393,10 @@ SOURCE=..\..\..\iam.h
# End Source File
# Begin Source File
+SOURCE=..\..\..\demo\object\mso.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\mstp.h
# End Source File
# Begin Source File
diff --git a/bacnet-stack/ports/win32/bacnet/bacnet.ncb b/bacnet-stack/ports/win32/bacnet/bacnet.ncb
index 5f88636e..57dbc67e 100644
Binary files a/bacnet-stack/ports/win32/bacnet/bacnet.ncb and b/bacnet-stack/ports/win32/bacnet/bacnet.ncb differ
diff --git a/bacnet-stack/ports/win32/bacnet/bacnet.opt b/bacnet-stack/ports/win32/bacnet/bacnet.opt
index c5c40996..74f473aa 100644
Binary files a/bacnet-stack/ports/win32/bacnet/bacnet.opt and b/bacnet-stack/ports/win32/bacnet/bacnet.opt differ
diff --git a/bacnet-stack/ports/win32/bacnet/bacnet.plg b/bacnet-stack/ports/win32/bacnet/bacnet.plg
index 2a93cfd5..3871de27 100644
--- a/bacnet-stack/ports/win32/bacnet/bacnet.plg
+++ b/bacnet-stack/ports/win32/bacnet/bacnet.plg
@@ -6,14 +6,16 @@
--------------------Configuration: bacnet - Win32 Debug--------------------
Command Lines
-Creating temporary file "C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP4F5.tmp" with contents
+Creating temporary file "C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP1254.tmp" with contents
[
-/nologo /MLd /W3 /Gm /GX /ZI /Od /I "..\..\.." /I ".." /I "..\..\..\demo\object\\" /I "..\..\..\demo\handler\\" /D "_DEBUG" /D "BACDL_BIP" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TSM_ENABLED=1 /FR"Debug/" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c
+/nologo /MLd /W3 /Gm /GX /ZI /Od /I "..\..\.." /I ".." /I "..\..\..\demo\object\\" /I "..\..\..\demo\handler\\" /D "_DEBUG" /D "BACDL_BIP" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TSM_ENABLED=1 /D PRINT_ENABLED=1 /FR"Debug/" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c
"C:\code\bacnet-stack\abort.c"
"C:\code\bacnet-stack\address.c"
"C:\code\bacnet-stack\demo\object\ai.c"
+"C:\code\bacnet-stack\demo\object\ao.c"
"C:\code\bacnet-stack\apdu.c"
"C:\code\bacnet-stack\arf.c"
+"C:\code\bacnet-stack\demo\object\av.c"
"C:\code\bacnet-stack\bacapp.c"
"C:\code\bacnet-stack\bacdcode.c"
"C:\code\bacnet-stack\bacerror.c"
@@ -24,6 +26,8 @@ Creating temporary file "C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP4F5.tmp" with conten
"C:\code\bacnet-stack\bigend.c"
"C:\code\bacnet-stack\ports\win32\bip-init.c"
"C:\code\bacnet-stack\bip.c"
+"C:\code\bacnet-stack\demo\object\bo.c"
+"C:\code\bacnet-stack\demo\object\bv.c"
"C:\code\bacnet-stack\crc.c"
"C:\code\bacnet-stack\datalink.c"
"C:\code\bacnet-stack\dcc.c"
@@ -51,20 +55,19 @@ Creating temporary file "C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP4F5.tmp" with conten
"C:\code\bacnet-stack\demo\handler\txbuf.c"
"C:\code\bacnet-stack\whois.c"
"C:\code\bacnet-stack\wp.c"
-"C:\code\bacnet-stack\demo\object\ao.c"
-"C:\code\bacnet-stack\demo\object\av.c"
-"C:\code\bacnet-stack\demo\object\bo.c"
-"C:\code\bacnet-stack\demo\object\bv.c"
+"C:\code\bacnet-stack\demo\object\mso.c"
]
-Creating command line "cl.exe @C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP4F5.tmp"
-Creating temporary file "C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP4F6.tmp" with contents
+Creating command line "cl.exe @C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP1254.tmp"
+Creating temporary file "C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP1255.tmp" with contents
[
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib /nologo /subsystem:console /incremental:yes /pdb:"Debug/bacnet.pdb" /debug /machine:I386 /out:"Debug/bacnet.exe" /pdbtype:sept
".\Debug\abort.obj"
".\Debug\address.obj"
".\Debug\ai.obj"
+".\Debug\ao.obj"
".\Debug\apdu.obj"
".\Debug\arf.obj"
+".\Debug\av.obj"
".\Debug\bacapp.obj"
".\Debug\bacdcode.obj"
".\Debug\bacerror.obj"
@@ -75,6 +78,8 @@ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32
".\Debug\bigend.obj"
".\Debug\bip-init.obj"
".\Debug\bip.obj"
+".\Debug\bo.obj"
+".\Debug\bv.obj"
".\Debug\crc.obj"
".\Debug\datalink.obj"
".\Debug\dcc.obj"
@@ -102,20 +107,22 @@ kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32
".\Debug\txbuf.obj"
".\Debug\whois.obj"
".\Debug\wp.obj"
-".\Debug\ao.obj"
-".\Debug\av.obj"
-".\Debug\bo.obj"
-".\Debug\bv.obj"
+".\Debug\mso.obj"
]
-Creating command line "link.exe @C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP4F6.tmp"
+Creating command line "link.exe @C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP1255.tmp"
Output Window
Compiling...
abort.c
address.c
ai.c
c:\code\bacnet-stack\demo\object\ai.c(87) : warning C4305: 'initializing' : truncation from 'const double ' to 'float '
+c:\code\bacnet-stack\demo\object\ai.c(125) : warning C4305: 'function' : truncation from 'const double ' to 'float '
+ao.c
+c:\code\bacnet-stack\demo\object\ao.c(163) : warning C4305: 'initializing' : truncation from 'const double ' to 'float '
apdu.c
arf.c
+av.c
+c:\code\bacnet-stack\demo\object\av.c(162) : warning C4305: 'initializing' : truncation from 'const double ' to 'float '
bacapp.c
bacdcode.c
bacerror.c
@@ -126,15 +133,17 @@ bi.c
bigend.c
bip-init.c
bip.c
+bo.c
+bv.c
crc.c
+Generating Code...
+c:\code\bacnet-stack\demo\object\bacfile.c(322) : warning C4761: integral size mismatch in argument; conversion supplied
+c:\code\bacnet-stack\bacapp.c(351) : warning C4761: integral size mismatch in argument; conversion supplied
+Compiling...
datalink.c
dcc.c
device.c
h_arf.c
-Generating Code...
-c:\code\bacnet-stack\demo\object\bacfile.c(327) : warning C4761: integral size mismatch in argument; conversion supplied
-c:\code\bacnet-stack\bacapp.c(444) : warning C4761: integral size mismatch in argument; conversion supplied
-Compiling...
h_arf_a.c
h_iam.c
h_rp.c
@@ -151,35 +160,34 @@ reject.c
ringbuf.c
rp.c
s_rp.c
+Generating Code...
+c:\code\bacnet-stack\demo\handler\s_rp.c(92) : warning C4761: integral size mismatch in argument; conversion supplied
+c:\code\bacnet-stack\npdu.c(340) : warning C4761: integral size mismatch in argument; conversion supplied
+c:\code\bacnet-stack\demo\handler\h_rp_a.c(73) : warning C4761: integral size mismatch in argument; conversion supplied
+Compiling...
s_whois.c
s_wp.c
tsm.c
txbuf.c
-Generating Code...
-c:\code\bacnet-stack\demo\handler\s_wp.c(92) : warning C4761: integral size mismatch in argument; conversion supplied
-c:\code\bacnet-stack\demo\handler\s_rp.c(88) : warning C4761: integral size mismatch in argument; conversion supplied
-c:\code\bacnet-stack\npdu.c(289) : warning C4761: integral size mismatch in argument; conversion supplied
-c:\code\bacnet-stack\demo\handler\h_rp_a.c(73) : warning C4761: integral size mismatch in argument; conversion supplied
-Compiling...
whois.c
wp.c
-ao.c
-c:\code\bacnet-stack\demo\object\ao.c(163) : warning C4305: 'initializing' : truncation from 'const double ' to 'float '
-av.c
-c:\code\bacnet-stack\demo\object\av.c(163) : warning C4305: 'initializing' : truncation from 'const double ' to 'float '
-bo.c
-bv.c
+mso.c
+c:\code\bacnet-stack\demo\object\mso.c(308) : warning C4244: '=' : conversion from 'unsigned long ' to 'unsigned char ', possible loss of data
+c:\code\bacnet-stack\demo\object\mso.c(333) : warning C4244: '=' : conversion from 'unsigned long ' to 'unsigned char ', possible loss of data
Generating Code...
-c:\code\bacnet-stack\wp.c(121) : warning C4761: integral size mismatch in argument; conversion supplied
+c:\code\bacnet-stack\wp.c(134) : warning C4761: integral size mismatch in argument; conversion supplied
+c:\code\bacnet-stack\demo\handler\s_wp.c(95) : warning C4761: integral size mismatch in argument; conversion supplied
Linking...
-Creating temporary file "C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP4F8.tmp" with contents
+Creating temporary file "C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP1257.tmp" with contents
[
/nologo /o"Debug/bacnet.bsc"
".\Debug\abort.sbr"
".\Debug\address.sbr"
".\Debug\ai.sbr"
+".\Debug\ao.sbr"
".\Debug\apdu.sbr"
".\Debug\arf.sbr"
+".\Debug\av.sbr"
".\Debug\bacapp.sbr"
".\Debug\bacdcode.sbr"
".\Debug\bacerror.sbr"
@@ -190,6 +198,8 @@ Creating temporary file "C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP4F8.tmp" with conten
".\Debug\bigend.sbr"
".\Debug\bip-init.sbr"
".\Debug\bip.sbr"
+".\Debug\bo.sbr"
+".\Debug\bv.sbr"
".\Debug\crc.sbr"
".\Debug\datalink.sbr"
".\Debug\dcc.sbr"
@@ -217,18 +227,15 @@ Creating temporary file "C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP4F8.tmp" with conten
".\Debug\txbuf.sbr"
".\Debug\whois.sbr"
".\Debug\wp.sbr"
-".\Debug\ao.sbr"
-".\Debug\av.sbr"
-".\Debug\bo.sbr"
-".\Debug\bv.sbr"]
-Creating command line "bscmake.exe @C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP4F8.tmp"
+".\Debug\mso.sbr"]
+Creating command line "bscmake.exe @C:\DOCUME~1\stk01\LOCALS~1\Temp\RSP1257.tmp"
Creating browse info file...
Output Window
Results
-bacnet.exe - 0 error(s), 10 warning(s)
+bacnet.exe - 0 error(s), 13 warning(s)