diff -Naur ucon64/src/Makefile.vc6 ucon64.analyze/src/Makefile.vc6
--- ucon64/src/Makefile.vc6	2019-05-27 23:15:42.883832000 +0900
+++ ucon64.analyze/src/Makefile.vc6	2019-05-28 00:27:12.852528100 +0900
@@ -1,8 +1,8 @@
 USE_PARALLEL=1
 DLOPEN=1
-#USE_ZLIB=1
+USE_ZLIB=1
 USE_DISCMAGE=1
-#USE_USB=1
+USE_USB=1
 USE_LIBCD64=1
 USE_LIBCD64_RAWIO=1
 #WINXP_TARGETING=1
@@ -35,11 +35,12 @@
 
 CC=cl.exe
 CFLAGS=$(CFLAGS) /nologo /I. /W4 /Wall /wd4710 /wd4711 /wd4774 /O2 /MT \
-       /D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS /DHAVE_CONFIG_H
+       /D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS /DHAVE_CONFIG_H /analyze:stacksize 140000 /wd6031
 # Place /Wall *after* /W<n>. /W<n> after /Wall will adjust the effect of /Wall.
 # /wd4710, 'function' : function not inlined
 # /wd4711, function 'function' selected for inline expansion
 # /wd4774, 'function' : format string expected in argument 'argument' is not a string literal
+# /wd6031, Return value ignored: 'function'.
 !ifdef WINXP_TARGETING
 CFLAGS=$(CFLAGS) /I"%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.1A\Include" \
        /D_USING_V110_SDK71_ /arch:IA32
diff -Naur ucon64/src/backup/gd.c ucon64.analyze/src/backup/gd.c
--- ucon64/src/backup/gd.c	2019-05-19 11:09:06.154728200 +0900
+++ ucon64.analyze/src/backup/gd.c	2019-05-28 00:27:12.866528900 +0900
@@ -625,7 +625,14 @@
       gd3_dram_unit[i].name[11] = '\0';         // terminate string so we can print it (debug)
       // Use memcpy() instead of strcpy() so that the string terminator in
       //  names[i] won't be copied.
+#ifdef  _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 6387)
+#endif
       memcpy (gd3_dram_unit[i].name, strupr (names[i]), strlen (names[i]));
+#ifdef  _MSC_VER
+#pragma warning(pop)
+#endif
 
       x = strlen (dir) + strlen (names[i]) + 6; // file sep., suffix, ASCII-z => 6
       if ((filenames[i] = (char *) malloc (x)) == NULL)
diff -Naur ucon64/src/backup/libcd64/Makefile.vc6 ucon64.analyze/src/backup/libcd64/Makefile.vc6
--- ucon64/src/backup/libcd64/Makefile.vc6	2017-11-19 22:15:27.000000000 +0900
+++ ucon64.analyze/src/backup/libcd64/Makefile.vc6	2019-05-28 00:27:12.876529500 +0900
@@ -6,7 +6,7 @@
        /DDEBUG /D_CRT_SECURE_NO_WARNINGS /DHAVE_CONFIG_H
 !else
 CFLAGS=$(CFLAGS) /nologo /I. /W4 /Wall /wd4710 /wd4711 /O2 /MT \
-       /D_CRT_SECURE_NO_WARNINGS /DHAVE_CONFIG_H
+       /D_CRT_SECURE_NO_WARNINGS /DHAVE_CONFIG_H /analyze
 !endif
 # Place /Wall *after* /W<n>. /W<n> after /Wall will adjust the effect of /Wall.
 # /wd4710, 'function' : function not inlined
diff -Naur ucon64/src/backup/mgd.c ucon64.analyze/src/backup/mgd.c
--- ucon64/src/backup/mgd.c	2017-10-15 17:03:02.000000000 +0900
+++ ucon64.analyze/src/backup/mgd.c	2019-05-28 00:27:12.883529900 +0900
@@ -62,7 +62,14 @@
     }
   for (n = 0; n < size / 2; n++)
     {
+#ifdef  _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 6386)
+#endif
       (*buffer)[n] = src[n * 2 + 1];
+#ifdef  _MSC_VER
+#pragma warning(pop)
+#endif
       (*buffer)[size / 2 + n] = src[n * 2];
     }
   free (src);
@@ -83,7 +90,14 @@
   for (offset = 0; offset < data_size / 2; offset++)
     {
       (*buffer)[n++] = src[data_size / 2 + offset];
+#ifdef  _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 6386)
+#endif
       (*buffer)[n++] = src[offset];
+#ifdef  _MSC_VER
+#pragma warning(pop)
+#endif
     }
   free (src);
 }
diff -Naur ucon64/src/config.h ucon64.analyze/src/config.h
--- ucon64/src/config.h	1970-01-01 09:00:00.000000000 +0900
+++ ucon64.analyze/src/config.h	2019-05-28 00:27:12.887530100 +0900
@@ -0,0 +1,141 @@
+/* config.h.  Generated from config.h.in by configure.  */
+/* config.h.in.  Generated from configure.in by autoheader.  */
+
+/* enable debug output (default: no) */
+/* #undef DEBUG */
+
+/* enable dynamic loading of add-on libraries (default: yes) */
+#define DLOPEN 1
+
+/* Define to 1 if you have the <byteswap.h> header file. */
+/* #undef HAVE_BYTESWAP_H */
+
+/* Define to 1 if you have the `clock_nanosleep' function. */
+/* #undef HAVE_CLOCK_NANOSLEEP */
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+   */
+/* #undef HAVE_DIRENT_H */
+
+/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
+/* #undef HAVE_DOPRNT */
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+/* #undef HAVE_INTTYPES_H */
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+/* #undef HAVE_NDIR_H */
+
+/* Define to 1 if you have the `realpath' function. */
+/* #undef HAVE_REALPATH */
+
+/* Define to 1 if you have the <stdint.h> header file. */
+/* #undef HAVE_STDINT_H */
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `strftime' function. */
+#define HAVE_STRFTIME 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+/* #undef HAVE_STRINGS_H */
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strnlen' function. */
+#define HAVE_STRNLEN 1
+
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+   */
+/* #undef HAVE_SYS_DIR_H */
+
+/* Define to 1 if you have the <sys/io.h> header file. */
+/* #undef HAVE_SYS_IO_H */
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+   */
+/* #undef HAVE_SYS_NDIR_H */
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+/* #undef HAVE_UNISTD_H */
+
+/* Define to 1 if you have the `vprintf' function. */
+#define HAVE_VPRINTF 1
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "ucon64-main@lists.sourceforge.net"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "uCON64"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "uCON64 2.2.0"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "ucon64"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "2.2.0"
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* enable the use of color (default: yes) */
+#define USE_ANSI_COLOR 1
+
+/* build with libdiscmage support (default: yes) */
+#define USE_DISCMAGE 1
+
+/* build with libcd64 support (default: no) */
+#define USE_LIBCD64 1
+
+/* enable support for parallel port backup units (default: yes) */
+#define USE_PARALLEL 1
+
+/* use ppdev for parallel port I/O (default: no) */
+/* #undef USE_PPDEV */
+
+/* build with libusb support (default: no) */
+#define USE_USB 1
+
+/* build with gzip and zip support (default: yes) */
+#define USE_ZLIB 1
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef gid_t */
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+   calls it, or to nothing if 'inline' is not supported under any name.  */
+#ifndef __cplusplus
+/* Visual C++ 6 doesn't allow inline in C source code. */
+#define inline __inline
+#endif
+
+/* Define to `int' if <sys/types.h> does not define. */
+/* #undef pid_t */
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* #undef size_t */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef uid_t */
diff -Naur ucon64/src/console/gb.c ucon64.analyze/src/console/gb.c
--- ucon64/src/console/gb.c	2019-04-03 20:22:53.000000000 +0900
+++ ucon64.analyze/src/console/gb.c	2019-05-28 00:27:12.891530300 +0900
@@ -509,7 +509,14 @@
 
   // Windows 3.x BMP file format
   bmp_buffer[0] = 'B';
+#ifdef  _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 6386)
+#endif
   bmp_buffer[1] = 'M';
+#ifdef  _MSC_VER
+#pragma warning(pop)
+#endif
   bmp_buffer[2] = file_size & 0xff;
   bmp_buffer[3] = (file_size >> 8) & 0xff;
   bmp_buffer[10] = DATAOFFSET;
@@ -535,7 +542,14 @@
                     y_pos * GPWIDTH + x_pos);
             color = 3;
           }
+#ifdef  _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 6385)
+#endif
         bmp_buffer[DATAOFFSET + pixel_offset / 2] |= color << (~pixel_offset & 1) * 4;
+#ifdef  _MSC_VER
+#pragma warning(pop)
+#endif
       }
 
   ucon64_fwrite (bmp_buffer, 0, file_size, dest_name, "wb");
diff -Naur ucon64/src/console/genesis.c ucon64.analyze/src/console/genesis.c
--- ucon64/src/console/genesis.c	2019-04-10 01:45:28.000000000 +0900
+++ ucon64.analyze/src/console/genesis.c	2019-05-28 00:27:12.895530600 +0900
@@ -666,7 +666,14 @@
                  chunk_size, dest_name, "ab");
           printf (ucon64_msg[WROTE], dest_name);
 
+#ifdef  _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 6387)
+#endif
           strncpy (names[name_i++], p0, n)[n] = '\0';
+#ifdef  _MSC_VER
+#pragma warning(pop)
+#endif
           (*p)++;
         }
       mgd_write_index_file (names, name_i);
diff -Naur ucon64/src/libdiscmage/Makefile.vc6 ucon64.analyze/src/libdiscmage/Makefile.vc6
--- ucon64/src/libdiscmage/Makefile.vc6	2018-04-21 15:14:23.000000000 +0900
+++ ucon64.analyze/src/libdiscmage/Makefile.vc6	2019-05-28 00:27:12.903531000 +0900
@@ -1,13 +1,14 @@
 DLOPEN=1
-#USE_ZLIB=1
+USE_ZLIB=1
 #WINXP_TARGETING=1
 
 CC=cl.exe
 CFLAGS=$(CFLAGS) /nologo /I. /W4 /Wall /wd4710 /wd4711 /O2 /MT /DDLL \
-       /D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS /DHAVE_CONFIG_H
+       /D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS /DHAVE_CONFIG_H /analyze:stacksize 70000 /wd6031
 # Place /Wall *after* /W<n>. /W<n> after /Wall will adjust the effect of /Wall.
 # /wd4710, 'function' : function not inlined
 # /wd4711, function 'function' selected for inline expansion
+# /wd6031, Return value ignored: 'function'.
 !ifdef DLOPEN
 CFLAGS=$(CFLAGS) /DDLOPEN
 !endif
diff -Naur ucon64/src/libdiscmage/config.h ucon64.analyze/src/libdiscmage/config.h
--- ucon64/src/libdiscmage/config.h	1970-01-01 09:00:00.000000000 +0900
+++ ucon64.analyze/src/libdiscmage/config.h	2019-05-28 00:27:12.909531400 +0900
@@ -0,0 +1,141 @@
+/* config.h.  Generated from config.h.in by configure.  */
+/* config.h.in.  Generated from configure.in by autoheader.  */
+
+/* enable debug output (default: no) */
+/* #undef DEBUG */
+
+/* enable dynamic loading of add-on libraries (default: yes) */
+#define DLOPEN 1
+
+/* Define to 1 if you have the <byteswap.h> header file. */
+/* #undef HAVE_BYTESWAP_H */
+
+/* Define to 1 if you have the `clock_nanosleep' function. */
+/* #undef HAVE_CLOCK_NANOSLEEP */
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+   */
+/* #undef HAVE_DIRENT_H */
+
+/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
+/* #undef HAVE_DOPRNT */
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+/* #undef HAVE_INTTYPES_H */
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+/* #undef HAVE_NDIR_H */
+
+/* Define to 1 if you have the `realpath' function. */
+/* #undef HAVE_REALPATH */
+
+/* Define to 1 if you have the <stdint.h> header file. */
+/* #undef HAVE_STDINT_H */
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `strftime' function. */
+#define HAVE_STRFTIME 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+/* #undef HAVE_STRINGS_H */
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strnlen' function. */
+#define HAVE_STRNLEN 1
+
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+   */
+/* #undef HAVE_SYS_DIR_H */
+
+/* Define to 1 if you have the <sys/io.h> header file. */
+/* #undef HAVE_SYS_IO_H */
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+   */
+/* #undef HAVE_SYS_NDIR_H */
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+/* #undef HAVE_UNISTD_H */
+
+/* Define to 1 if you have the `vprintf' function. */
+#define HAVE_VPRINTF 1
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "ucon64-main@lists.sourceforge.net"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "uCON64"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "uCON64 2.2.0"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "ucon64"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "2.2.0"
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* enable the use of color (default: yes) */
+#define USE_ANSI_COLOR 1
+
+/* build with libdiscmage support (default: yes) */
+#define USE_DISCMAGE 1
+
+/* build with libcd64 support (default: no) */
+#define USE_LIBCD64 1
+
+/* enable support for parallel port backup units (default: yes) */
+#define USE_PARALLEL 1
+
+/* use ppdev for parallel port I/O (default: no) */
+/* #undef USE_PPDEV */
+
+/* build with libusb support (default: no) */
+#define USE_USB 1
+
+/* build with gzip and zip support (default: yes) */
+#define USE_ZLIB 1
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef gid_t */
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+   calls it, or to nothing if 'inline' is not supported under any name.  */
+#ifndef __cplusplus
+/* Visual C++ 6 doesn't allow inline in C source code. */
+#define inline __inline
+#endif
+
+/* Define to `int' if <sys/types.h> does not define. */
+/* #undef pid_t */
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* #undef size_t */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef uid_t */
diff -Naur ucon64/src/libdiscmage/format/cdi.c ucon64.analyze/src/libdiscmage/format/cdi.c
--- ucon64/src/libdiscmage/format/cdi.c	2018-02-23 01:44:17.000000000 +0900
+++ ucon64.analyze/src/libdiscmage/format/cdi.c	2019-05-28 00:27:12.915531700 +0900
@@ -101,7 +101,14 @@
 
   fseek (fh, 4, SEEK_CUR);     //     4    discjuggler settings        no idea of internal bit fields
   fread (&value8, 1, 1, fh);    //     1    filename_length
+#ifdef  _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 6029)
+#endif
   fread (&value_s, 1, value8, fh); //  [fl]    [filename]
+#ifdef  _MSC_VER
+#pragma warning(pop)
+#endif
 #ifdef  DEBUG
   value_s[value8] = 0;
   puts (value_s);
diff -Naur ucon64/src/libdiscmage/misc.c ucon64.analyze/src/libdiscmage/misc.c
--- ucon64/src/libdiscmage/misc.c	2019-05-28 00:00:56.355357600 +0900
+++ ucon64.analyze/src/libdiscmage/misc.c	2019-05-28 00:27:12.923532200 +0900
@@ -1159,7 +1159,14 @@
   else
     {
       dir[0] = '.';
+#ifdef  _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 6386)
+#endif
       dir[1] = '\0';
+#ifdef  _MSC_VER
+#pragma warning(pop)
+#endif
     }
 
   return dir;
@@ -2526,7 +2533,14 @@
     {
       if (comment)
         {
+#ifdef  _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 6386)
+#endif
           strcat (str, PROPERTY_COMMENT_S "\n" PROPERTY_COMMENT_S " ");
+#ifdef  _MSC_VER
+#pragma warning(pop)
+#endif
 
           for (p = strchr (str, '\0'); *comment; comment++)
             switch (*comment)
diff -Naur ucon64/src/libdiscmage/misc_z.c ucon64.analyze/src/libdiscmage/misc_z.c
--- ucon64/src/libdiscmage/misc_z.c	2019-04-26 20:53:30.000000000 +0900
+++ ucon64.analyze/src/libdiscmage/misc_z.c	2019-05-28 00:27:12.928532500 +0900
@@ -76,7 +76,14 @@
       while (!gzeof ((gzFile) file))
         {
           gzseek ((gzFile) file, 1024 * 1024, SEEK_CUR);
+#ifdef  _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 6269)
+#endif
           gzgetc ((gzFile) file);       // necessary in order to set EOF (zlib 1.2.8)
+#ifdef  _MSC_VER
+#pragma warning(pop)
+#endif
         }
 #else
       // Is there a more efficient way to determine the uncompressed size?
diff -Naur ucon64/src/misc/archive.c ucon64.analyze/src/misc/archive.c
--- ucon64/src/misc/archive.c	2019-04-26 20:52:33.000000000 +0900
+++ ucon64.analyze/src/misc/archive.c	2019-05-28 00:27:12.934532800 +0900
@@ -80,7 +80,14 @@
       while (!gzeof ((gzFile) file))
         {
           gzseek ((gzFile) file, 1024 * 1024, SEEK_CUR);
+#ifdef  _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 6269)
+#endif
           gzgetc ((gzFile) file);       // necessary in order to set EOF (zlib 1.2.8)
+#ifdef  _MSC_VER
+#pragma warning(pop)
+#endif
         }
 #else
       // Is there a more efficient way to determine the uncompressed size?
diff -Naur ucon64/src/misc/chksum.c ucon64.analyze/src/misc/chksum.c
--- ucon64/src/misc/chksum.c	2017-08-14 17:49:28.000000000 +0900
+++ ucon64.analyze/src/misc/chksum.c	2019-05-28 00:27:12.938533000 +0900
@@ -499,7 +499,14 @@
 
   crc = ~crc;
   while (size--)
+#ifdef  _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 6011)
+#endif
     crc = (crc >> 8) ^ crc16_table[(crc ^ *p++) & 0xff];
+#ifdef  _MSC_VER
+#pragma warning(pop)
+#endif
   return ~crc;
 }
 
@@ -531,7 +538,14 @@
 
   crc = ~crc;
   while (size--)
+#ifdef  _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 6011)
+#endif
     crc = (crc >> 8) ^ crc32_table[(crc ^ *p++) & 0xff];
+#ifdef  _MSC_VER
+#pragma warning(pop)
+#endif
   return ~crc;
 }
 #endif
diff -Naur ucon64/src/misc/file.c ucon64.analyze/src/misc/file.c
--- ucon64/src/misc/file.c	2019-04-26 04:52:11.000000000 +0900
+++ ucon64.analyze/src/misc/file.c	2019-05-28 00:27:12.942533300 +0900
@@ -448,7 +448,15 @@
 #if     defined DJGPP || defined __CYGWIN__ || defined __MINGW32__
          (*(p1 - 1) == '/' || *(p1 - 1) == '\\') && (*p1 == '/' || *p1 == '\\'))
 #else
+#ifdef  _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 6011)
+#pragma warning(disable: 28182)
+#endif
          *(p1 - 1) == DIR_SEPARATOR && *p1 == DIR_SEPARATOR)
+#ifdef  _MSC_VER
+#pragma warning(pop)
+#endif
 #endif
     p1--;
 
diff -Naur ucon64/src/misc/getopt.c ucon64.analyze/src/misc/getopt.c
--- ucon64/src/misc/getopt.c	2017-07-17 01:54:11.000000000 +0900
+++ ucon64.analyze/src/misc/getopt.c	2019-05-28 00:27:12.949533700 +0900
@@ -218,10 +218,17 @@
 /* Avoid depending on library functions or files
    whose names are inconsistent.  */
 
+#ifdef  _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 28251)
+#endif
 #ifdef __cplusplus
 extern "C"
 #endif
 char *getenv (const char *);
+#ifdef  _MSC_VER
+#pragma warning(pop)
+#endif
 
 static char *
 my_index (const char *str, int chr)
diff -Naur ucon64/src/patch/ips.c ucon64.analyze/src/patch/ips.c
--- ucon64/src/patch/ips.c	2017-08-14 17:49:28.000000000 +0900
+++ ucon64.analyze/src/patch/ips.c	2019-05-28 00:27:12.954533900 +0900
@@ -465,14 +465,28 @@
           unsigned char bridge[BRIDGE_LEN + 1];
 
           bridge[0] = byte;
+#ifdef  _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 6386)
+#endif
           buf[ndiffs] = byte2;
+#ifdef  _MSC_VER
+#pragma warning(pop)
+#endif
           n = fread (bridge + 1, 1, BRIDGE_LEN, orgfile);
           n2 = fread (buf + ndiffs + 1, 1,
                       MIN (BRIDGE_LEN, BUFSIZE - 1 - ndiffs), modfile);
           ncompare = 1 + MIN (n, n2);
 
           for (i = 1; i < ncompare; i++)        // buf[ndiffs] == bridge[0]
+#ifdef  _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 6385)
+#endif
             if (buf[ndiffs + i] != bridge[i])
+#ifdef  _MSC_VER
+#pragma warning(pop)
+#endif
               {
                 for (n = 0; n < i; n++)
                   {
