diff --git a/PC/os2vacpp/_tkinter.def b/PC/os2vacpp/_tkinter.def
new file mode 100644
index 0000000..49dab8d
--- /dev/null
+++ b/PC/os2vacpp/_tkinter.def
@@ -0,0 +1,8 @@
+LIBRARY        _TKINTER INITINSTANCE TERMINSTANCE
+DESCRIPTION    'Python Extension DLL v1.0 for Access to Tcl/Tk Environment'
+PROTMODE
+DATA           MULTIPLE NONSHARED
+
+EXPORTS
+               init_tkinter
+
diff --git a/PC/os2vacpp/config.c b/PC/os2vacpp/config.c
index 3e7adf9..11caad2 100644
--- a/PC/os2vacpp/config.c
+++ b/PC/os2vacpp/config.c
@@ -50,7 +50,6 @@
 extern void initoperator();
 extern void initposix();
 extern void initregex();
-extern void initreop();
 extern void initrgbimg();
 extern void initrotor();
 extern void initsignal();
@@ -97,7 +96,6 @@
 #endif
         {"operator", initoperator},
         {"regex", initregex},
-        {"reop", initreop},
 //        {"rgbimg", initrgbimg},
 //        {"rotor", initrotor},
         {"signal", initsignal},
diff --git a/PC/os2vacpp/config.h b/PC/os2vacpp/config.h
index 373d009..e7901e3 100644
--- a/PC/os2vacpp/config.h
+++ b/PC/os2vacpp/config.h
@@ -4,10 +4,9 @@
 /**********************************************************************
  * config.h.  NOT Generated automatically by configure.
  *
- * This is a manually maintained version used for the Watcom,
- * Borland and Microsoft Visual C++ compilers on the MS Windows
- * platform, and the IBM VisualAge C/C++ compiler on the OS/2
- * platform.  It is a standard part of the Python distribution.
+ * This is a manually maintained version used for the IBM VisualAge
+ * C/C++ compiler on the OS/2 platform.  It is a standard part of
+ * the Python distribution.
  *
  * FILESYSTEM DEFINES:
  * The code specific to a particular way of naming files and
@@ -17,28 +16,12 @@
  *     DOSFILESYS   PCDOS-Style (for PCDOS, Windows and OS/2)
  *     MACFILESYS   Macintosh-Style
  *     UNIXFILESYS  Unix-Style
- *     AMIGAFILESYS AmigaDOS-Style (to-be-supported)
+ *     AMIGAFILESYS AmigaDOS-Style
  * 
  * Because of the different compilers and operating systems in
  * use on the Intel platform, neither the compiler name nor
  * the operating system name is sufficient.
  *
- * WINDOWS DEFINES:
- * The code specific to Windows should be wrapped around one of
- * the following #defines
- *
- * MS_WIN32 - Code specific to the MS Win32 API
- * MS_WIN16 - Code specific to the old 16 bit Windows API.
- * MS_WINDOWS - Code specific to Windows, but all versions.
- * MS_COREDLL - Code if the Python core is built as a DLL.
- *
- * Note that the old defines "NT" and "WIN32" are still supported, but
- * will soon be dropped.
- *
- * Also note that neither "_M_IX86" or "_MSC_VER" should be used for
- * any purpose other than "Windows Intel x86 specific" and "Microsoft
- * compiler specific".  Therefore, these should be very rare.
- *
  * OS/2 DEFINES:
  * The code specific to OS/2's Program API should be wrapped around
  *
@@ -64,565 +47,156 @@
 
 #include <io.h>
 
-#define HAVE_LIMITS_H
-#define HAVE_HYPOT
-#define DONT_HAVE_SIG_ALARM
-#define DONT_HAVE_SIG_PAUSE
-
-#define LONG_BIT               32
-
 /* Configuration Options for Finding Modules */
 #define PREFIX                 ""
 #define EXEC_PREFIX            ""
 
+/* Provide a default library so writers of extension modules
+ * won't have to explicitly specify it anymore
+ */
+#pragma library("Python15.lib")
+
 /***************************************************/
 /*    32-Bit IBM VisualAge C/C++ v3.0 for OS/2     */
 /*  (Convert Compiler Flags into Useful Switches)  */
 /***************************************************/
-#if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__)
-
-  #define COMPILER "[VisualAge C/C++]"
-  #define PYOS_OS2   /* Define Indicator of Operating System */
-  #define PYCC_VACPP /* Define Indicator of C Compiler */
+#define PLATFORM    "os2"
+#define COMPILER    "[VisualAge C/C++]"
+#define PYOS_OS2    /* Define Indicator of Operating System */
+#define PYCC_VACPP  /* Define Indicator of C Compiler */
 
   /* Platform Filesystem */
-  #define PYTHONPATH ".;.\\lib;.\\lib\\plat-win;.\\lib\\dos-8x3;.\\lib\\lib-tk"
-  #define DOSFILESYS /* OS/2 Uses the DOS File Naming Conventions */
-  /* #define IMPORT_8x3_NAMES */
+#define PYTHONPATH  ".;.\\lib;.\\lib\\plat-win;.\\lib\\lib-tk"
+#define DOSFILESYS  /* OS/2 Uses the DOS File Naming Conventions */
+/* #define IMPORT_8x3_NAMES (let's move up to long filenames) */
 
   /* Platform CPU-Mode Dependencies */
-  #define WORD_BIT  32  /* OS/2 is a 32-Bit Operating System */
+#define WORD_BIT                32 /* OS/2 is a 32-Bit Operating System */
+#define LONG_BIT                32
+#define SIZEOF_INT               4 /* Count of Bytes in an (int)            */
+#define SIZEOF_LONG              4 /* Count of Bytes in a (long)            */
+#define SIZEOF_VOID_P            4 /* Count of Bytes in a (void *)          */
+/* #define HAVE_LONG_LONG     1 */ /* VAC++ does not support (long long)    */
+/* #define SIZEOF_LONG_LONG   8 */ /* Count of Bytes in a (long long)       */
 
-  typedef int mode_t;
-  typedef int uid_t;
-  typedef int gid_t;
-  typedef int pid_t;
+/* Define if type char is unsigned and you are not using gcc.  */
+#ifndef __CHAR_UNSIGNED__
+/* #undef __CHAR_UNSIGNED__ */
+#endif
 
-  #if defined(__MULTI__)  /* If Compiler /Gt+ Multithread Option Enabled,  */
-    #define WITH_THREAD     /* Then Enable Threading Throughout Python     */
-    #define OS2_THREADS     /* And Use the OS/2 Flavor of Threads          */
-  #endif
+typedef int mode_t;
+typedef int uid_t;
+typedef int gid_t;
+typedef int pid_t;
+
+#if defined(__MULTI__)     /* If Compiler /Gt+ Multithread Option Enabled,  */
+  #define WITH_THREAD            1 /* Enable Threading Throughout Python    */
+  #define OS2_THREADS            1 /* And Use the OS/2 Flavor of Threads    */
+/* #define _REENTRANT 1 */ /* Use thread-safe errno, h_errno, and other fns */
+#endif
 
   /* Compiler Runtime Library Capabilities */
 #include <ctype.h>
 #include <direct.h>
+/* #undef BAD_STATIC_FORWARD */ /* if compiler botches static fwd decls */
 
-  /* #define VA_LIST_IS_ARRAY */
-  #define HAVE_CLOCK        /* We support all of the Unix clock() API      */
-  #define HAVE_STRFTIME     /* We have a strftime() formatting function    */
-  #define HAVE_PUTENV       /* We have a putenv() function                 */
-  #define HAVE_SYS_SELECT_H /* We have sys/select.h (under TCP/IP dirs)    */
-  #define HAVE_PROTOTYPES   /* Our Compiler Supports C Function Prototypes */
+#define STDC_HEADERS             1 /* VAC++ is an ANSI C Compiler           */
+#define HAVE_LIMITS_H            1 /* #include <limits.h>                   */
+#define HAVE_STDLIB_H            1 /* #include <stdlib.h>                   */
+#define HAVE_HYPOT               1 /* hypot()                               */
+#define HAVE_PUTENV              1 /* putenv()                              */
+#define HAVE_STDDEF_H            1 /* #include <stddef.h>                   */
+/* #define VA_LIST_IS_ARRAY   1 */ /* if va_list is an array of some kind   */
 
-  #ifdef USE_DL_EXPORT
-    #define DL_IMPORT(RTYPE) RTYPE _Export
-  #endif
+  /* Variable-Arguments/Prototypes */
+#define HAVE_PROTOTYPES          1 /* VAC++ supports C Function Prototypes  */
+#define HAVE_STDARG_H            1 /* #include <stdarg.h>                   */
+#define HAVE_STDARG_PROTOTYPES   1 /* Our <stdarg.h> has prototypes         */
 
-#endif /* VAC++ for OS/2 */
+  /* String/Memory/Locale Operations */
+#define HAVE_STRDUP              1 /* strdup()                              */
+#define HAVE_MEMMOVE             1 /* memmove()                             */
+#define HAVE_STRERROR            1 /* strerror()                            */
+#define HAVE_SETLOCALE           1 /* setlocale()                           */
+#define HAVE_LOCALE_H            1 /* #include <locale.h>                   */
+#define MALLOC_ZERO_RETURNS_NULL 1 /* Our malloc(0) returns a NULL ptr      */
 
-/***************************************************/
-/* 32-Bit Microsoft Visual C/C++ v2.0+ for Windows */
-/*  (Convert Compiler Flags into Useful Switches)  */
-/***************************************************/
-#if defined(_MSC_VER) && _MSC_VER > 850
-  /* Start of defines for MS_WIN32 using VC++ 2.0 and up */
-  #define NT        /* NT is obsolete - please use MS_WIN32 instead */
-  #define MS_WIN32
-  #define MS_WINDOWS
+  /* Signal Handling */
+#define RETSIGTYPE            void /* Return type of handlers (int or void) */
+#define HAVE_SIGNAL_H            1 /* #include <signal.h>                   */
+/* #undef WANT_SIGFPE_HANDLER   */ /* Handle SIGFPE (see Include/pyfpe.h)   */
+/* #define HAVE_ALARM         1 */ /* alarm()                               */
+/* #define HAVE_SIGINTERRUPT  1 */ /* siginterrupt()                        */
+/* #define HAVE_SIGRELSE      1 */ /* sigrelse()                            */
+#define DONT_HAVE_SIG_ALARM      1
+#define DONT_HAVE_SIG_PAUSE      1
 
-  /* For NT the Python core is in a DLL by default.  Test the
-   * standard macro MS_COREDLL to find out.  If you have an exception
-   * you must define MS_NO_COREDLL (do not test this macro)
-   */
-  #ifndef MS_NO_COREDLL
-    #define MS_COREDLL  /* Python core is in a DLL */
-    #ifndef USE_DL_EXPORT
-      #define USE_DL_IMPORT
-    #endif /* !USE_DL_EXPORT */
-  #endif /* !MS_NO_COREDLL */
+  /* Clock/Time Support */
+#define HAVE_FTIME               1 /* We have ftime() in <sys/timeb.h>      */
+#define HAVE_CLOCK               1 /* clock()                               */
+#define HAVE_STRFTIME            1 /* strftime()                            */
+#define HAVE_STRPTIME            1 /* strptime()                            */
+#define HAVE_MKTIME              1 /* mktime()                              */
+#define HAVE_TZNAME              1 /* No tm_zone but do have tzname[]       */
+#define HAVE_TIMES               1 /* #include <sys/times.h>                */
+#define HAVE_SYS_UTIME_H         1 /* #include <sys/utime.h>                */
+/* #define HAVE_UTIME_H       1 */ /* #include <utime.h>                    */
+#define HAVE_SYS_TIME_H          1 /* #include <sys/time.h>                 */
+/* #define TM_IN_SYS_TIME     1 */ /* <sys/time.h> declares struct tm       */
+#define HAVE_GETTIMEOFDAY        1 /* gettimeofday()                        */
+/* #define GETTIMEOFDAY_NO_TZ 1 */ /* gettimeofday() does not have 2nd arg  */
+/* #define HAVE_TIMEGM        1 */ /* timegm()                              */
+#define TIME_WITH_SYS_TIME       1 /* Mix <sys/time.h> and <time.h>         */
+#define SYS_SELECT_WITH_SYS_TIME 1 /* Mix <sys/select.h> and <sys/time.h>   */
+/* #define HAVE_ALTZONE       1 */ /* if <time.h> defines altzone           */
 
-  #ifdef _M_IX86
-    #define COMPILER "[MSC 32 bit (Intel)]"
-  #else
-    #define COMPILER "[MSC (Unknown)]"
-  #endif
+  /* Network/Sockets Support */
+#define HAVE_SYS_SELECT_H       1 /* #include <sys/select.h>                */
+#define BSD_SELECT              1 /* Use BSD versus OS/2 form of select()   */
+#define HAVE_SELECT             1 /* select()                               */
+#define HAVE_GETPEERNAME        1 /* getpeername()                          */
+/* #undef HAVE_GETHOSTNAME_R 1 */ /* gethostname_r()                        */
 
-  /* Platform Filesystem */
-  #define PYTHONPATH ".\\lib;.\\lib\\plat-win;.\\lib\\lib-tk"
-  #define DOSFILESYS /* Windows Uses the DOS File Naming Conventions */
+  /* File I/O */
+#define HAVE_DUP2                1 /* dup2()                                */
+#define HAVE_EXECV               1 /* execv()                               */
+#define HAVE_SETVBUF             1 /* setvbuf()                             */
+#define HAVE_GETCWD              1 /* getcwd()                              */
+#define HAVE_PIPE                1 /* pipe()     [OS/2-specific code added] */
+#define HAVE_FCNTL_H             1 /* #include <fcntl.h>                    */
+/* #define HAVE_FLOCK         1 */ /* flock()                               */
+/* #define HAVE_TRUNCATE      1 */ /* truncate()                            */
+/* #define HAVE_FTRUNCATE     1 */ /* ftruncate()                           */
+/* #define HAVE_LSTAT         1 */ /* lstat()                               */
+/* #define HAVE_DIRENT_H      1 */ /* #include <dirent.h>                   */
+/* #define HAVE_OPENDIR       1 */ /* opendir()                             */
 
-  /* Platform CPU-Mode Dependencies */
-  #define WORD_BIT 32
+  /* Process Operations */
+#define HAVE_GETPID              1 /* getpid()                              */
+#define HAVE_SYSTEM              1 /* system()                              */
+#define HAVE_WAIT                1 /* wait()                                */
+#define HAVE_KILL                1 /* kill()     [OS/2-specific code added] */
+#define HAVE_POPEN               1 /* popen()    [OS/2-specific code added] */
+/* #define HAVE_GETPPID       1 */ /* getppid()                             */
+/* #define HAVE_WAITPID       1 */ /* waitpid()                             */
+/* #define HAVE_FORK          1 */ /* fork()                                */
 
-  typedef int pid_t;
-  #define hypot _hypot
+  /* User/Group ID Queries */
+/* #define HAVE_GETEGID       1 */
+/* #define HAVE_GETEUID       1 */
+/* #define HAVE_GETGID        1 */
+/* #define HAVE_GETUID        1 */
 
-  /* Compiler Runtime Library Capabilities */
-  #pragma warning(disable:4113)
-  #include <stdio.h>
+  /* Unix-Specific */
+#define HAVE_SYS_UN_H            1 /* #include <sys/un.h>                   */
+/* #define HAVE_SYS_UTSNAME_H 1 */ /* #include <sys/utsname.h>              */
+/* #define HAVE_SYS_WAIT_H    1 */ /* #include <sys/wait.h>                 */
+/* #define HAVE_UNISTD_H      1 */ /* #include <unistd.h>                   */
+/* #define HAVE_UNAME         1 */ /* uname ()                              */
 
-  #define HAVE_CLOCK        /* We support all of the Unix clock() API      */
-  #define HAVE_STRFTIME     /* We have a strftime() formatting function    */
-  #define NT_THREADS
-  #define WITH_THREAD
-
-  #ifndef NETSCAPE_PI
-    #define USE_SOCKET
-  #endif
-
-  #ifdef USE_DL_IMPORT
-    #define DL_IMPORT(RTYPE) __declspec(dllimport) RTYPE
-  #endif
-
-  #ifdef USE_DL_EXPORT
-    #define DL_IMPORT(RTYPE) __declspec(dllexport) RTYPE
-  #endif
-#endif /* _MSC_VER && > 850 */
-
-/***************************************************/
-/* 16-Bit Microsoft Visual C/C++ v1.5+ for Windows */
-/*  (Convert Compiler Flags into Useful Switches)  */
-/***************************************************/
-#if defined(_MSC_VER) && _MSC_VER <= 850
-  #define COMPILER "[MSC 16-bit]"
-  #define MS_WIN16
-  #define MS_WINDOWS
-
-  /* Platform Filesystem */
-  #define PYTHONPATH ".;.\\lib;.\\lib\\win;.\\lib\\dos_8x3"
-  #define IMPORT_8x3_NAMES
-  #define DOSFILESYS /* Windows Uses the DOS File Naming Conventions */
-
-  /* Platform CPU-Mode Dependencies */
-  #define WORD_BIT 16
-
-  typedef int pid_t;
-
-  /* Compiler Runtime Library Capabilities */
-  #pragma warning(disable:4113)
-  #define memcpy memmove  /* memcpy dangerous pointer wrap in Win 3.1 */
-  #define hypot _hypot
-  #define SIGINT  2
-
-#include <stdio.h>
-
-  /* Windows 3.1 will not tolerate any console io in a dll */
-
-  #ifdef _USRDLL
-    #include <time.h>
-
-    #ifdef __cplusplus
-      extern "C" {
-    #endif
-
-    #define stdin   ((FILE *)0)
-    #define stdout  ((FILE *)1)
-    #define stderr  ((FILE *)2)
-
-    #define fflush  Py_fflush
-    int Py_fflush(FILE *);
-
-    #define fgets   Py_fgets
-    char *Py_fgets(char *, int, FILE *);
-
-    #define fileno  Py_fileno
-    int Py_fileno(FILE *);
-
-    #define fprintf Py_fprintf
-    int Py_fprintf(FILE *, const char *, ...);
-
-    #define printf  Py_printf
-    int Py_printf(const char *, ...);
-
-    #define sscanf  Py_sscanf
-    int Py_sscanf(const char *, const char *, ...);
-
-    clock_t  clock();
-    void     _exit(int);
-    void     exit(int);
-    int      sscanf(const char *, const char *, ...);
-
-    #ifdef __cplusplus
-      }
-    #endif
-  #endif /* _USRDLL */
-
-  #ifndef NETSCAPE_PI
-    /* use sockets, but not in a Netscape dll */
-    #define USE_SOCKET
-  #endif
-#endif /* MS_WIN16 */
-
-/***************************************************/
-/*      32-Bit Watcom C/C++ v?.? for Windows       */
-/*  (Convert Compiler Flags into Useful Switches)  */
-/***************************************************/
-#ifdef __WATCOMC__
-  #define COMPILER "[Watcom]"
-
-  /* Platform Filesystem */
-  #define PYTHONPATH ".;.\\lib;.\\lib\\win;.\\lib\\dos_8x3"
-  #define IMPORT_8x3_NAMES
-  #define DOSFILESYS /* Watcom Uses the DOS File Naming Conventions */
-
-  typedef int mode_t;
-  typedef int uid_t;
-  typedef int gid_t;
-  typedef int pid_t;
-
-  #if defined(__NT__)
-    #define NT  /* NT is obsolete - please use MS_WIN32 instead */
-    #define MS_WIN32
-    #define MS_WINDOWS
-    #define NT_THREADS
-    #define USE_SOCKET
-    #define WITH_THREAD
-  #elif defined(__WINDOWS__)
-    #define MS_WIN16
-    #define MS_WINDOWS
-  #endif
-
-  #ifdef M_I386
-    #define WORD_BIT 32
-  #else
-    #define WORD_BIT 16
-  #endif
-
-  /* Compiler Runtime Library Capabilities */
-  #include <ctype.h>
-  #include <direct.h>
-
-  #define VA_LIST_IS_ARRAY
-  #define HAVE_CLOCK
-  #define HAVE_STRFTIME
-
-  #ifdef USE_DL_EXPORT
-    #define DL_IMPORT(RTYPE) RTYPE __export
-  #endif
-#endif /* __WATCOMC__ */
-
-/***************************************************/
-/*      32-Bit Borland C/C++ v?.? for Windows      */
-/*  (Convert Compiler Flags into Useful Switches)  */
-/***************************************************/
-/* The Borland compiler defines __BORLANDC__ */
-/* XXX These defines are likely incomplete, but should be easy to fix. */
-#ifdef __BORLANDC__
-  #define COMPILER "[Borland]"
-
-  /* Platform Filesystem */
-  #define PYTHONPATH ".;.\\lib;.\\lib\\win;.\\lib\\dos_8x3"
-  #define IMPORT_8x3_NAMES
-  #define DOSFILESYS /* Borland Uses the DOS File Naming Conventions */
-
-  /* Compiler Runtime Library Capabilities */
-  #define HAVE_CLOCK
-  #define HAVE_STRFTIME
-
-  #ifdef USE_DL_IMPORT
-    #define DL_IMPORT(RTYPE)  RTYPE __import
-  #endif
-#endif /* BORLANDC */
-
-/********************************/
-/* End of compilers - finish up */
-/********************************/
-
-/****************************************
- * Adjustments for the Operating System
- ****************************************/
-#ifdef MS_WIN32
-  #define PLATFORM "win32"
-#else
-  #ifdef MS_WIN16
-    #define PLATFORM "win16"
-  #else
-    #ifdef PYOS_OS2
-      #define PLATFORM "os2"
-    #else
-      #define PLATFORM "dos"
-    #endif
-  #endif /* !MS_WIN16 */
-#endif /* !MS_WIN32 */
-
-/****************************************
- *   Supported Features in Runtime API
- ****************************************/
-
-/* Define if on AIX 3.
-   System headers sometimes define this.
-   We just want to avoid a redefinition error message.  */
-#ifndef _ALL_SOURCE
-/* #undef _ALL_SOURCE */
+#ifdef USE_DL_EXPORT
+  #define DL_IMPORT(RTYPE) RTYPE _System
 #endif
 
-/* Define to empty if the keyword does not work.  */
-/* #define const  */
-
-/* Define if you have dirent.h.  */
-/* #define DIRENT 1 */
-
-/* Define to the type of elements in the array set by `getgroups'.
-   Usually this is either `int' or `gid_t'.  */
-/* #undef GETGROUPS_T */
-
-/* Define to `int' if <sys/types.h> doesn't define.  */
-/* #undef gid_t */
-
-/* Define if your struct tm has tm_zone.  */
-/* #undef HAVE_TM_ZONE */
-
-/* Define if you don't have tm_zone but do have the external array
-   tzname.  */
-#define HAVE_TZNAME
-
-/* Define if on MINIX.  */
-/* #undef _MINIX */
-
-/* Define to `int' if <sys/types.h> doesn't define.  */
-/* #undef mode_t */
-
-/* Define if you don't have dirent.h, but have ndir.h.  */
-/* #undef NDIR */
-
-/* Define to `long' if <sys/types.h> doesn't define.  */
-/* #undef off_t */
-
-/* Define to `int' if <sys/types.h> doesn't define.  */
-/* #undef pid_t */
-
-/* Define if the system does not provide POSIX.1 features except
-   with this defined.  */
-/* #undef _POSIX_1_SOURCE */
-
-/* Define if you need to in order for stat and other things to work.  */
-/* #undef _POSIX_SOURCE */
-
-/* Define as the return type of signal handlers (int or void).  */
-#define RETSIGTYPE void
-
-/* Define to `unsigned' if <sys/types.h> doesn't define.  */
-/* #undef size_t */
-
-/* Define if you have the ANSI C header files.  */
-#define STDC_HEADERS 1
-
-/* Define if you don't have dirent.h, but have sys/dir.h.  */
-/* #undef SYSDIR */
-
-/* Define if you don't have dirent.h, but have sys/ndir.h.  */
-/* #undef SYSNDIR */
-
-/* Define if you can safely include both <sys/time.h> and <time.h>.  */
-/* #undef TIME_WITH_SYS_TIME */
-
-/* Define if your <sys/time.h> declares struct tm.  */
-/* #define TM_IN_SYS_TIME 1 */
-
-/* Define to `int' if <sys/types.h> doesn't define.  */
-/* #undef uid_t */
-
-/* Define if the closedir function returns void instead of int.  */
-/* #undef VOID_CLOSEDIR */
-
-/* Define if your <unistd.h> contains bad prototypes for exec*()
-   (as it does on SGI IRIX 4.x) */
-/* #undef BAD_EXEC_PROTOTYPES */
-
-/* Define if your compiler botches static forward declarations
-   (as it does on SCI ODT 3.0) */
-/* #define BAD_STATIC_FORWARD 1 */
-
-/* Define if getpgrp() must be called as getpgrp(0)
-   and (consequently) setpgrp() as setpgrp(0, 0). */
-/* #undef GETPGRP_HAVE_ARGS */
-
-/* Define this if your time.h defines altzone */
-/* #define HAVE_ALTZONE */
-
-/* Define if you have the putenv function.  */
-#ifdef MS_WIN32
-/* Does this exist on Win16? */
-#define HAVE_PUTENV
-#endif
-
-/* Define if your compiler supports function prototypes */
-#define HAVE_PROTOTYPES
-
-/* Define if  you can safely include both <sys/select.h> and <sys/time.h>
-   (which you can't on SCO ODT 3.0). */
-/* #undef SYS_SELECT_WITH_SYS_TIME */
-
-/* Define if you want to use SGI (IRIX 4) dynamic linking.
-   This requires the "dl" library by Jack Jansen,
-   ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z.
-   Don't bother on IRIX 5, it already has dynamic linking using SunOS
-   style shared libraries */
-/* #undef WITH_SGI_DL */
-
-/* Define if you want to emulate SGI (IRIX 4) dynamic linking.
-   This is rumoured to work on VAX (Ultrix), Sun3 (SunOS 3.4),
-   Sequent Symmetry (Dynix), and Atari ST.
-   This requires the "dl-dld" library,
-   ftp://ftp.cwi.nl/pub/dynload/dl-dld-1.1.tar.Z,
-   as well as the "GNU dld" library,
-   ftp://ftp.cwi.nl/pub/dynload/dld-3.2.3.tar.Z.
-   Don't bother on SunOS 4 or 5, they already have dynamic linking using
-   shared libraries */
-/* #undef WITH_DL_DLD */
-
-/* Define if you want to compile in rudimentary thread support */
-/* #undef WITH_THREAD */
-
-/* Define if you want to use the GNU readline library */
-/* #define WITH_READLINE 1 */
-
-/* Define if you have clock.  */
-#define HAVE_CLOCK
-
-/* Define if you have ftime.  */
-#define HAVE_FTIME
-
-/* Define if you have getpeername.  */
-#define HAVE_GETPEERNAME
-
-/* Define if you have getpgrp.  */
-/* #undef HAVE_GETPGRP */
-
-/* Define if you have getpid.  */
-#define HAVE_GETPID
-
-/* Define if you have gettimeofday.  */
-/* #undef HAVE_GETTIMEOFDAY */
-
-/* Define if you have getwd.  */
-/* #undef HAVE_GETWD */
-
-/* Define if you have lstat.  */
-/* #undef HAVE_LSTAT */
-
-/* Define if you have nice.  */
-/* #undef HAVE_NICE */
-
-/* Define if you have readlink.  */
-/* #undef HAVE_READLINK */
-
-/* Define if you have select.  */
-/* #undef HAVE_SELECT */
-
-/* Define if you have setpgid.  */
-/* #undef HAVE_SETPGID */
-
-/* Define if you have setpgrp.  */
-/* #undef HAVE_SETPGRP */
-
-/* Define if you have setsid.  */
-/* #undef HAVE_SETSID */
-
-/* Define if you have setvbuf.  */
-#define HAVE_SETVBUF
-
-/* Define if you have siginterrupt.  */
-/* #undef HAVE_SIGINTERRUPT */
-
-/* Define if you have symlink.  */
-/* #undef HAVE_SYMLINK */
-
-/* Define if you have tcgetpgrp.  */
-/* #undef HAVE_TCGETPGRP */
-
-/* Define if you have tcsetpgrp.  */
-/* #undef HAVE_TCSETPGRP */
-
-/* Define if you have times.  */
-#define HAVE_TIMES
-
-/* Define if you have uname.  */
-/* #undef HAVE_UNAME */
-
-/* Define if you have waitpid.  */
-/* #undef HAVE_WAITPID */
-
-/* Define if you have the <dlfcn.h> header file.  */
-/* #undef HAVE_DLFCN_H */
-
-/* Define if you have the <fcntl.h> header file.  */
-#define HAVE_FCNTL_H 1
-
-/* Define if you have the <signal.h> header file.  */
-#define HAVE_SIGNAL_H 1
-
-/* Define if you have the <stdarg.h> header file.  */
-#define HAVE_STDARG_H 1
-
-/* Define if you have the <stdarg.h> prototypes.  */
-#define HAVE_STDARG_PROTOTYPES 1
-
-/* Define if malloc(0) returns a NULL pointer */
-#define MALLOC_ZERO_RETURNS_NULL 1
-
-/* Define if you have the <stdlib.h> header file.  */
-#define HAVE_STDLIB_H 1
-
-/* Define if you have the <sys/audioio.h> header file.  */
-/* #undef HAVE_SYS_AUDIOIO_H */
-
-/* Define if you have the <sys/param.h> header file.  */
-/* #define HAVE_SYS_PARAM_H 1 */
-
-/* Define if you have the <sys/select.h> header file.  */
-/* #define HAVE_SYS_SELECT_H 1 */
-
-/* Define if you have the <sys/time.h> header file.  */
-/* #define HAVE_SYS_TIME_H 1 */
-
-/* Define if you have the <sys/times.h> header file.  */
-/* #define HAVE_SYS_TIMES_H 1 */
-
-/* Define if you have the <sys/un.h> header file.  */
-/* #define HAVE_SYS_UN_H 1 */
-
-/* Define if you have the <sys/utime.h> header file.  */
-#define HAVE_SYS_UTIME_H 1
-
-/* Define if you have the <sys/utsname.h> header file.  */
-/* #define HAVE_SYS_UTSNAME_H 1 */
-
-/* Define if you have the <thread.h> header file.  */
-/* #undef HAVE_THREAD_H */
-
-/* Define if you have the <unistd.h> header file.  */
-/* #define HAVE_UNISTD_H 1 */
-
-/* Define if you have the <utime.h> header file.  */
-/* #define HAVE_UTIME_H 1 */
-
-/* Define if you have the dl library (-ldl).  */
-/* #undef HAVE_LIBDL */
-
-/* Define if you have the mpc library (-lmpc).  */
-/* #undef HAVE_LIBMPC */
-
-/* Define if you have the nsl library (-lnsl).  */
-#define HAVE_LIBNSL 1
-
-/* Define if you have the seq library (-lseq).  */
-/* #undef HAVE_LIBSEQ */
-
-/* Define if you have the socket library (-lsocket).  */
-#define HAVE_LIBSOCKET 1
-
-/* Define if you have the sun library (-lsun).  */
-/* #undef HAVE_LIBSUN */
-
-/* Define if you have the termcap library (-ltermcap).  */
-/* #undef HAVE_LIBTERMCAP */
-
-/* Define if you have the termlib library (-ltermlib).  */
-/* #undef HAVE_LIBTERMLIB */
-
-/* Define if you have the thread library (-lthread).  */
-/* #undef HAVE_LIBTHREAD */
-
 #endif /* !Py_CONFIG_H */
 
diff --git a/PC/os2vacpp/makefile b/PC/os2vacpp/makefile
index d609d50..c60cd80 100644
--- a/PC/os2vacpp/makefile
+++ b/PC/os2vacpp/makefile
@@ -26,6 +26,7 @@
 #
 # History (Most Recent First)
 #
+# 26-Sep-98 jrr Retested and adjusted for building w/Python 1.5.2a1
 # 20-Nov-97 jrr Cleaned Up for Applying to Distribution
 # 29-Oct-97 jrr Modified for Use with Python 1.5 Alpha 4
 # 03-Aug-96 jrr Original for Use with Python 1.4 Release
@@ -48,18 +49,24 @@
 # Where to Find the IBM TCP/IP Socket Includes and Libraries
 OS2TCPIP        = C:\MPTN
 
+# Where to Find the Tcl/Tk Base Directory for Libs/Includes
+TCLTK		= D:\TclTk
+TCLBASE		= D:\Tcl7.6\OS2
+TKBASE		= D:\Tk4.2\OS2
+
 # Where to Put the .OBJ Files, To Keep Them Out of the Way
 PATHOBJ		= obj
 
 # Search Path for Include Files
-PROJINCLUDE	= .;$(OS2TCPIP)\Include;$(PY_INCLUDES)
+PROJINCLUDE	= .;$(TCLBASE);$(TKBASE);$(OS2TCPIP)\Include;$(PY_INCLUDES)
 
 # Place to Search for Sources re OpusMAKE Dependency Generator (Commercial)
 MKMF_SRCS	= $(PY_MODULES)\*.c $(PY_OBJECTS)\*.c $(PY_PARSER)\*.c $(PY_PYTHON)\*.c
 
 #.HDRPATH.c	:= $(PROJINCLUDE,;= ) $(.HDRPATH.c)
 #.PATH.c         = .;$(PY_MODULES);$(PY_OBJECTS);$(PY_PARSER);$(PY_PYTHON)
-OTHERLIBS	= $(OS2TCPIP)\lib\so32dll.lib $(OS2TCPIP)\lib\tcp32dll.lib
+OTHERLIBS	= $(OS2TCPIP)\lib\so32dll.lib $(OS2TCPIP)\lib\tcp32dll.lib \
+                  $(TCLTK)\Lib\Tcl76.lib $(TCLTK)\Lib\Tk42.lib
 
 #################
 # Inference Rules
@@ -171,7 +178,6 @@
                   $(PATHOBJ)\PosixModule.obj   \
                   $(PATHOBJ)\RegexModule.obj   \
                   $(PATHOBJ)\RegExpr.obj       \
-                  $(PATHOBJ)\ReopModule.obj    \
                   $(PATHOBJ)\SelectModule.obj  \
                   $(PATHOBJ)\SignalModule.obj  \
                   $(PATHOBJ)\SocketModule.obj  \
@@ -204,6 +210,8 @@
 		# /G4  = Generate Code for 486 (Use 386 for Debugger)
 		# /Gm  = Use Multithread Runtime
 		# /Gd  = Dynamically Load Runtime
+		# /Ms  = Use _System Calling Convention (vs _Optlink)
+		#        (to allow non-VAC++ code to call into Python15.dll)
 
 _OPT		= /O /Gl
 		# /O   = Enable Speed-Optimizations
@@ -238,7 +246,8 @@
 ###################
 # Primary Target(s)
 ###################
-All:  obj noise PyCore.lib Python15.lib Python15.dll Python.exe PGen.exe
+All:  obj noise PyCore.lib Python15.lib PGen.exe \
+      Python.exe PythonPM.exe Python15.dll _tkinter.dll
 
 Modules: $(MODULES)
 Objects: $(OBJECTS)
@@ -257,6 +266,15 @@
 #
 ##############
 
+# Python Extension DLL: Tcl/Tk Interface
+_tkinter.dll: $(PATHOBJ)\_tkinter.obj Python15.lib _tkinter.def
+	@ Echo Linking $@ As DLL
+	@ $(CC) $(CFLAGS) /B"/NOE" $(_DLL) /Fe$@ $(_MAP) $** $(OTHERLIBS) >>$(ERRS)
+
+$(PATHOBJ)\_tkinter.obj: $(PY_MODULES)\_tkinter.c
+	@ Echo Compiling $**
+	@ $(CC) -c $(CFLAGS) $(_DLL) -Fo$@ $** >>$(ERRS)
+
 # Object Library of All Essential Python Routines
 PyCore.lib: $(MODULES) $(OBJECTS) $(PARSER) $(PYTHON) $(PATHOBJ)\Config.obj
 	@ Echo Adding Updated Object Files to Link Library $@
@@ -265,6 +283,8 @@
 Python15.dll: $(PATHOBJ)\Compile.obj PyCore.lib Python.def
 	@ Echo Linking $@ As DLL
 	@ $(CC) $(CFLAGS) /B"/NOE" $(_DLL) /Fe$@ $(_MAP) $** $(OTHERLIBS) >>$(ERRS)
+	@ Echo Compressing $@ with LxLite
+	@ lxlite $@
 
 # IBM Linker Requires One Explicit .OBJ To Build a .DLL from a .LIB
 $(PATHOBJ)\Compile.obj: $(PY_PYTHON)\Compile.c
@@ -277,10 +297,15 @@
 	@ IMPLIB /NOLOGO /NOIGNORE $@ $** >>$(ERRS)
 	@ ILIB /NOLOGO /CONVFORMAT /NOEXTDICTIONARY /NOBROWSE /NOBACKUP $@; >>$(ERRS)
 
-# Small Program to Start Interpreter in Python15.dll
+# Small Command-Line Program to Start Interpreter in Python15.dll
 Python.exe: $(PATHOBJ)\Python.obj Python15.lib
 	@ Echo Linking $@ As EXE
-	@ $(CC) $(CFLAGS) $(_EXE) /B"/STACK:360000" /Fe$@ $(_MAP) $** $(OTHERLIBS) >>$(ERRS)
+	@ $(CC) $(CFLAGS) $(_EXE) /B"/PM:VIO /STACK:360000" /Fe$@ $(_MAP) $** $(OTHERLIBS) >>$(ERRS)
+
+# Small PM-GUI Program to Start Interpreter in Python15.dll
+PythonPM.exe: $(PATHOBJ)\Python.obj Python15.lib
+	@ Echo Linking $@ As EXE
+	@ $(CC) $(CFLAGS) $(_EXE) /B"/PM:PM /STACK:360000" /Fe$@ $(_MAP) $** $(OTHERLIBS) >>$(ERRS)
 
 PGen.exe: $(PGEN) PyCore.lib
 	@ Echo Linking $@ As EXE
@@ -305,6 +330,7 @@
 	-- @Echo Y | copy /U Python.exe   D:\EXEs
 	-- @Echo Y | copy /U Python15.dll D:\DLLs
 	-- @Echo Y | copy /U Python15.lib E:\Tau\Lib
+	-- @Echo Y | copy /U _tkinter.dll D:\Python
 
 test:
         python ..\..\lib\test\regrtest.py
@@ -947,19 +973,6 @@
 	 $(PY_INCLUDE)\stringobject.h $(PY_INCLUDE)\sysmodule.h $(PY_INCLUDE)\traceback.h \
 	 $(PY_INCLUDE)\tupleobject.h
 
-reopmodule.obj: $(PY_INCLUDE)\abstract.h $(PY_INCLUDE)\ceval.h $(PY_INCLUDE)\classobject.h \
-	 $(PY_INCLUDE)\cobject.h $(PY_INCLUDE)\complexobject.h config.h \
-	 $(PY_INCLUDE)\dictobject.h $(PY_INCLUDE)\fileobject.h $(PY_INCLUDE)\floatobject.h \
-	 $(PY_INCLUDE)\funcobject.h $(PY_INCLUDE)\import.h $(PY_INCLUDE)\intobject.h \
-	 $(PY_INCLUDE)\intrcheck.h $(PY_INCLUDE)\listobject.h $(PY_INCLUDE)\longobject.h \
-	 $(PY_INCLUDE)\methodobject.h $(PY_INCLUDE)\modsupport.h \
-	 $(PY_INCLUDE)\moduleobject.h $(PY_INCLUDE)\mymalloc.h $(PY_INCLUDE)\myproto.h \
-	 $(PY_INCLUDE)\object.h $(PY_INCLUDE)\objimpl.h $(PY_INCLUDE)\pydebug.h \
-	 $(PY_INCLUDE)\pyerrors.h $(PY_INCLUDE)\pyfpe.h $(PY_INCLUDE)\pystate.h \
-	 $(PY_INCLUDE)\python.h $(PY_INCLUDE)\pythonrun.h $(PY_INCLUDE)\rangeobject.h \
-	 $(PY_MODULES)\regexpr.h $(PY_INCLUDE)\sliceobject.h $(PY_INCLUDE)\stringobject.h \
-	 $(PY_INCLUDE)\sysmodule.h $(PY_INCLUDE)\traceback.h $(PY_INCLUDE)\tupleobject.h
-
 resource.obj: $(PY_INCLUDE)\abstract.h $(OS2TCPIP)\Include\sys\time.h $(PY_INCLUDE)\ceval.h \
 	 $(PY_INCLUDE)\classobject.h $(PY_INCLUDE)\cobject.h $(PY_INCLUDE)\complexobject.h \
 	 config.h $(PY_INCLUDE)\dictobject.h $(PY_INCLUDE)\fileobject.h \
diff --git a/PC/os2vacpp/python.def b/PC/os2vacpp/python.def
index b671d83..6477536 100644
--- a/PC/os2vacpp/python.def
+++ b/PC/os2vacpp/python.def
@@ -4,369 +4,472 @@
 DATA           MULTIPLE NONSHARED
 
 EXPORTS
-                ; Data
-                PyCFunction_Type
-                PyCObject_Type
-                PyClass_Type
-                PyCode_Type
-                PyComplex_Type
-                PyDict_Type
-                PyExc_ArithmeticError
-                PyExc_AttributeError
-                PyExc_EOFError
-                PyExc_Exception
-                PyExc_FloatingPointError
-                PyExc_IOError
-                PyExc_ImportError
-                PyExc_IndexError
-                PyExc_KeyError
-                PyExc_KeyboardInterrupt
-                PyExc_LookupError
-                PyExc_MemoryError
-                PyExc_NameError
-                PyExc_OverflowError
-                PyExc_RuntimeError
-                PyExc_StandardError
-                PyExc_SyntaxError
-                PyExc_SystemError
-                PyExc_SystemExit
-                PyExc_TypeError
-                PyExc_ValueError
-                PyExc_ZeroDivisionError
-                PyFile_Type
-                PyFloat_Type
-                PyFrame_Type
-                PyFunction_Type
-                PyInstance_Type
-                PyInt_Type
-                PyList_Type
-                PyLong_Type
-                PyMethod_Type
-                PyModule_Type
-                PyOS_InputHook
-                PyOS_ReadlineFunctionPointer
-                PyRange_Type
-                PySlice_Type
-                PyString_Type
-                PyTuple_Type
-                PyType_Type
-                Py_DebugFlag
-                Py_InteractiveFlag
-                Py_NoSiteFlag
-                Py_UseClassExceptionsFlag
-                Py_VerboseFlag
-                _PyParser_Grammar
-                _PyParser_TokenNames
-                _PyThread_Started
-                _Py_EllipsisObject
-                _Py_NoneStruct
-                _Py_TrueStruct
-                _Py_ZeroStruct
+               ; Data
+               PyCFunction_Type
+               PyCObject_Type
+               PyClass_Type
+               PyCode_Type
+               PyComplex_Type
+               PyDict_Type
+               PyExc_ArithmeticError
+               PyExc_AssertionError
+               PyExc_AttributeError
+               PyExc_EOFError
+               PyExc_EnvironmentError
+               PyExc_Exception
+               PyExc_FloatingPointError
+               PyExc_IOError
+               PyExc_ImportError
+               PyExc_IndexError
+               PyExc_KeyError
+               PyExc_KeyboardInterrupt
+               PyExc_LookupError
+               PyExc_MemoryError
+               PyExc_MemoryErrorInst
+               PyExc_NameError
+               PyExc_OSError
+               PyExc_OverflowError
+               PyExc_RuntimeError
+               PyExc_StandardError
+               PyExc_SyntaxError
+               PyExc_SystemError
+               PyExc_SystemExit
+               PyExc_TypeError
+               PyExc_ValueError
+               PyExc_ZeroDivisionError
+               PyFile_Type
+               PyFloat_Type
+               PyFrame_Type
+               PyFunction_Type
+               PyImport_FrozenModules
+               PyImport_Inittab
+               PyInstance_Type
+               PyInt_Type
+               PyList_Type
+               PyLong_Type
+               PyMethod_Type
+               PyModule_Type
+               PyOS_InputHook
+               PyOS_ReadlineFunctionPointer
+               PyRange_Type
+               PySlice_Type
+               PyString_Type
+               PyTraceBack_Type
+               PyTuple_Type
+               PyType_Type
+               Py_DebugFlag
+               Py_FrozenFlag
+               Py_InteractiveFlag
+               Py_NoSiteFlag
+               Py_OptimizeFlag
+               Py_TabcheckFlag
+               Py_UseClassExceptionsFlag
+               Py_VerboseFlag
+               _PyImport_Filetab
+               _PyImport_Inittab
+               _PyParser_Grammar
+               _PyParser_TokenNames
+               _PyThread_Started
+               _Py_EllipsisObject
+               _Py_NoneStruct
+               _Py_PackageContext
+               _Py_TrueStruct
+               _Py_ZeroStruct
+               _Py_abstract_hack
+               _Py_cobject_hack
+               _Py_re_syntax
+               _Py_re_syntax_table
 
-                ; Code
-                PyArg_Parse
-                PyArg_ParseTuple
-                PyArg_ParseTupleAndKeywords
-                PyArg_VaParse
-                PyCFunction_GetFunction
-                PyCFunction_GetSelf
-                PyCFunction_New
-                PyCObject_AsVoidPtr
-                PyCObject_FromVoidPtr
-                PyCObject_Import
-                PyCallable_Check
-                PyClass_IsSubclass
-                PyClass_New
-                PyCode_New
-                PyComplex_AsCComplex
-                PyComplex_FromCComplex
-                PyComplex_FromDoubles
-                PyComplex_ImagAsDouble
-                PyComplex_RealAsDouble
-                PyDict_Clear
-                PyDict_DelItem
-                PyDict_DelItemString
-                PyDict_GetItem
-                PyDict_GetItemString
-                PyDict_Items
-                PyDict_Keys
-                PyDict_New
-                PyDict_Next
-                PyDict_SetItem
-                PyDict_SetItemString
-                PyDict_Size
-                PyDict_Values
-                PyErr_BadArgument
-                PyErr_BadInternalCall
-                PyErr_CheckSignals
-                PyErr_Clear
-                PyErr_Fetch
-                PyErr_Format
-                PyErr_NewException
-                PyErr_NoMemory
-                PyErr_Occurred
-                PyErr_Print
-                PyErr_Restore
-                PyErr_SetFromErrno
-                PyErr_SetInterrupt
-                PyErr_SetNone
-                PyErr_SetObject
-                PyErr_SetString
-                PyEval_AcquireLock
-                PyEval_AcquireThread
-                PyEval_CallObject
-                PyEval_CallObjectWithKeywords
-                PyEval_EvalCode
-                PyEval_GetBuiltins
-                PyEval_GetFrame
-                PyEval_GetGlobals
-                PyEval_GetLocals
-                PyEval_GetRestricted
-                PyEval_InitThreads
-                PyEval_ReleaseLock
-                PyEval_ReleaseThread
-                PyEval_RestoreThread
-                PyEval_SaveThread
-                PyFile_AsFile
-                PyFile_FromFile
-                PyFile_FromString
-                PyFile_GetLine
-                PyFile_Name
-                PyFile_SetBufSize
-                PyFile_SoftSpace
-                PyFile_WriteObject
-                PyFile_WriteString
-                PyFloat_AsDouble
-                PyFloat_AsString
-                PyFloat_FromDouble
-                PyFrame_BlockPop
-                PyFrame_BlockSetup
-                PyFrame_FastToLocals
-                PyFrame_LocalsToFast
-                PyFrame_New
-                PyFunction_GetCode
-                PyFunction_GetGlobals
-                PyFunction_New
-                PyGrammar_AddAccelerators
-                PyGrammar_FindDFA
-                PyGrammar_LabelRepr
-                PyImport_AddModule
-                PyImport_Cleanup
-                PyImport_FrozenModules
-                PyImport_GetMagicNumber
-                PyImport_GetModuleDict
-                PyImport_Import
-                PyImport_ImportFrozenModule
-                PyImport_ImportModule
-                PyImport_ImportModuleEx
-                PyImport_ReloadModule
-                PyInstance_DoBinOp
-                PyInstance_New
-                PyInt_AsLong
-                PyInt_FromLong
-                PyInt_GetMax
-                PyInterpreterState_Clear
-                PyInterpreterState_Delete
-                PyInterpreterState_New
-                PyList_Append
-                PyList_AsTuple
-                PyList_GetItem
-                PyList_GetSlice
-                PyList_Insert
-                PyList_New
-                PyList_Reverse
-                PyList_SetItem
-                PyList_SetSlice
-                PyList_Size
-                PyList_Sort
-                PyLong_AsDouble
-                PyLong_AsLong
-                PyLong_AsUnsignedLong
-                PyLong_FromDouble
-                PyLong_FromLong
-                PyLong_FromString
-                PyLong_FromUnsignedLong
-                PyMapping_Check
-                PyMapping_GetItemString
-                PyMapping_HasKey
-                PyMapping_HasKeyString
-                PyMapping_Length
-                PyMapping_SetItemString
-                PyMarshal_Init
-                PyMarshal_ReadLongFromFile
-                PyMarshal_ReadObjectFromFile
-                PyMarshal_ReadObjectFromString
-                PyMarshal_WriteLongToFile
-                PyMarshal_WriteObjectToFile
-                PyMem_Free
-                PyMem_Malloc
-                PyMem_Realloc
-                PyMember_Get
-                PyMember_Set
-                PyMethod_Class
-                PyMethod_Function
-                PyMethod_New
-                PyMethod_Self
-                PyModule_GetDict
-                PyModule_GetName
-                PyModule_New
-                PyNode_AddChild
-                PyNode_Compile
-                PyNode_Free
-                PyNode_New
-                PyNumber_Absolute
-                PyNumber_Add
-                PyNumber_And
-                PyNumber_Check
-                PyNumber_Coerce
-                PyNumber_Divide
-                PyNumber_Divmod
-                PyNumber_Float
-                PyNumber_Int
-                PyNumber_Invert
-                PyNumber_Long
-                PyNumber_Lshift
-                PyNumber_Multiply
-                PyNumber_Negative
-                PyNumber_Or
-                PyNumber_Positive
-                PyNumber_Power
-                PyNumber_Remainder
-                PyNumber_Rshift
-                PyNumber_Subtract
-                PyNumber_Xor
-                PyOS_GetLastModificationTime
-                PyOS_InitInterrupts
-                PyOS_InterruptOccurred
-                PyOS_Readline
-                PyOS_strtol
-                PyOS_strtoul
-                PyObject_CallFunction
-                PyObject_CallMethod
-                PyObject_CallObject
-                PyObject_Compare
-                PyObject_GetAttr
-                PyObject_GetAttrString
-                PyObject_GetItem
-                PyObject_HasAttrString
-                PyObject_Hash
-                PyObject_IsTrue
-                PyObject_Length
-                PyObject_Print
-                PyObject_Repr
-                PyObject_SetAttr
-                PyObject_SetAttrString
-                PyObject_SetItem
-                PyObject_Str
-                PyObject_Type
-                PyParser_AddToken
-                PyParser_Delete
-                PyParser_New
-                PyParser_ParseFile
-                PyParser_ParseString
-                PyParser_SimpleParseFile
-                PyParser_SimpleParseString
-                PyRange_New
-                PyRun_AnyFile
-                PyRun_File
-                PyRun_InteractiveLoop
-                PyRun_InteractiveOne
-                PyRun_SimpleFile
-                PyRun_SimpleString
-                PyRun_String
-                PySequence_Check
-                PySequence_Concat
-                PySequence_Count
-                PySequence_GetItem
-                PySequence_GetSlice
-                PySequence_In
-                PySequence_Index
-                PySequence_Length
-                PySequence_Repeat
-                PySequence_SetItem
-                PySequence_SetSlice
-                PySequence_Tuple
-                PySlice_GetIndices
-                PySlice_New
-                PyString_AsString
-                PyString_Concat
-                PyString_ConcatAndDel
-                PyString_Format
-                PyString_FromString
-                PyString_FromStringAndSize
-                PyString_Size
-                PySys_GetFile
-                PySys_GetObject
-                PySys_SetArgv
-                PySys_SetObject
-                PySys_SetPath
-                PyThreadState_Clear
-                PyThreadState_Delete
-                PyThreadState_Get
-                PyThreadState_New
-                PyThreadState_Swap
-                PyThread_acquire_lock
-                PyThread_allocate_lock
-                PyThread_allocate_sema
-                PyThread_down_sema
-                PyThread_exit_thread
-                PyThread_free_lock
-                PyThread_free_sema
-                PyThread_get_thread_ident
-                PyThread_init_thread
-                PyThread_release_lock
-                PyThread_start_new_thread
-                PyThread_up_sema
-                PyToken_OneChar
-                PyToken_TwoChars
-                PyTokenizer_Free
-                PyTokenizer_FromFile
-                PyTokenizer_FromString
-                PyTokenizer_Get
-                PyTraceBack_Here
-                PyTraceBack_Print
-                PyTuple_GetItem
-                PyTuple_GetSlice
-                PyTuple_New
-                PyTuple_SetItem
-                PyTuple_Size
-                Py_AtExit
-                Py_BuildValue
-                Py_CompileString
-                Py_EndInterpreter
-                Py_Exit
-                Py_FatalError
-                Py_FdIsInteractive
-                Py_Finalize
-                Py_FindMethod
-                Py_FindMethodInChain
-                Py_FlushLine
-                Py_Free
-                Py_FrozenMain
-                Py_GetBuildInfo
-                Py_GetCopyright
-                Py_GetExecPrefix
-                Py_GetPath
-                Py_GetPrefix
-                Py_GetProgramFullPath
-                Py_GetProgramName
-                Py_GetVersion
-                Py_InitModule4
-                Py_Initialize
-                Py_IsInitialized
-                Py_Main
-                Py_Malloc
-                Py_NewInterpreter
-                Py_Realloc
-                Py_SetProgramName
-                Py_VaBuildValue
-                _PyObject_New
-                _PyObject_NewVar
-                _PyString_Resize
-                _Py_c_diff
-                _Py_c_neg
-                _Py_c_pow
-                _Py_c_prod
-                _Py_c_quot
-                _Py_c_sum
-                initimp
+               ; Code
+               PyArg_Parse
+               PyArg_ParseTuple
+               PyArg_ParseTupleAndKeywords
+               PyArg_VaParse
+               PyCFunction_Fini
+               PyCFunction_GetFlags
+               PyCFunction_GetFunction
+               PyCFunction_GetSelf
+               PyCFunction_New
+               PyCObject_AsVoidPtr
+               PyCObject_FromVoidPtrAndDesc
+               PyCObject_FromVoidPtr
+               PyCObject_GetDesc
+               PyCObject_Import
+               PyCallable_Check
+               PyClass_IsSubclass
+               PyClass_New
+               PyCode_Addr2Line
+               PyCode_New
+               PyComplex_AsCComplex
+               PyComplex_FromCComplex
+               PyComplex_FromDoubles
+               PyComplex_ImagAsDouble
+               PyComplex_RealAsDouble
+               PyDict_Clear
+               PyDict_DelItem
+               PyDict_DelItemString
+               PyDict_GetItem
+               PyDict_GetItemString
+               PyDict_Items
+               PyDict_Keys
+               PyDict_New
+               PyDict_Next
+               PyDict_SetItem
+               PyDict_SetItemString
+               PyDict_Size
+               PyDict_Values
+               PyErr_BadArgument
+               PyErr_BadInternalCall
+               PyErr_CheckSignals
+               PyErr_Clear
+               PyErr_ExceptionMatches
+               PyErr_Fetch
+               PyErr_Format
+               PyErr_GivenExceptionMatches
+               PyErr_NewException
+               PyErr_NoMemory
+               PyErr_NormalizeException
+               PyErr_Occurred
+               PyErr_Print
+               PyErr_PrintEx
+               PyErr_Restore
+               PyErr_SetFromErrno
+               PyErr_SetFromErrnoWithFilename
+               PyErr_SetInterrupt
+               PyErr_SetNone
+               PyErr_SetObject
+               PyErr_SetString
+               PyEval_AcquireLock
+               PyEval_AcquireThread
+               PyEval_CallFunction
+               PyEval_CallMethod
+               PyEval_CallObject
+               PyEval_CallObjectWithKeywords
+               PyEval_EvalCode
+               PyEval_GetBuiltins
+               PyEval_GetFrame
+               PyEval_GetGlobals
+               PyEval_GetLocals
+               PyEval_GetRestricted
+               PyEval_InitThreads
+               PyEval_ReleaseLock
+               PyEval_ReleaseThread
+               PyEval_RestoreThread
+               PyEval_SaveThread
+               PyFile_AsFile
+               PyFile_FromFile
+               PyFile_FromString
+               PyFile_GetLine
+               PyFile_Name
+               PyFile_SetBufSize
+               PyFile_SoftSpace
+               PyFile_WriteObject
+               PyFile_WriteString
+               PyFloat_AsDouble
+               PyFloat_AsString
+               PyFloat_Fini
+               PyFloat_FromDouble
+               PyFrame_BlockPop
+               PyFrame_BlockSetup
+               PyFrame_FastToLocals
+               PyFrame_Fini
+               PyFrame_LocalsToFast
+               PyFrame_New
+               PyFunction_GetCode
+               PyFunction_GetDefaults
+               PyFunction_GetGlobals
+               PyFunction_New
+               PyFunction_SetDefaults
+               PyGrammar_AddAccelerators
+               PyGrammar_FindDFA
+               PyGrammar_LabelRepr
+               PyGrammar_RemoveAccelerators
+               PyImport_AddModule
+               PyImport_AppendInittab
+               PyImport_Cleanup
+               PyImport_ExecCodeModule
+               PyImport_ExecCodeModuleEx
+               PyImport_ExtendInittab
+               PyImport_GetMagicNumber
+               PyImport_GetModuleDict
+               PyImport_Import
+               PyImport_ImportFrozenModule
+               PyImport_ImportModule
+               PyImport_ImportModuleEx
+               PyImport_ReloadModule
+               PyInstance_DoBinOp
+               PyInstance_New
+               PyInt_AsLong
+               PyInt_Fini
+               PyInt_FromLong
+               PyInt_GetMax
+               PyInterpreterState_Clear
+               PyInterpreterState_Delete
+               PyInterpreterState_New
+               PyList_Append
+               PyList_AsTuple
+               PyList_GetItem
+               PyList_GetSlice
+               PyList_Insert
+               PyList_New
+               PyList_Reverse
+               PyList_SetItem
+               PyList_SetSlice
+               PyList_Size
+               PyList_Sort
+               PyLong_AsDouble
+               PyLong_AsLong
+;               PyLong_AsLongLong
+               PyLong_AsUnsignedLong
+;               PyLong_AsUnsignedLongLong
+               PyLong_AsVoidPtr
+               PyLong_FromDouble
+               PyLong_FromLong
+;               PyLong_FromLongLong
+               PyLong_FromString
+               PyLong_FromUnsignedLong
+;               PyLong_FromUnsignedLongLong
+               PyLong_FromVoidPtr
+               PyMapping_Check
+               PyMapping_GetItemString
+               PyMapping_HasKey
+               PyMapping_HasKeyString
+               PyMapping_Length
+               PyMapping_SetItemString
+               PyMarshal_Init
+               PyMarshal_ReadLongFromFile
+               PyMarshal_ReadObjectFromFile
+               PyMarshal_ReadObjectFromString
+               PyMarshal_WriteLongToFile
+               PyMarshal_WriteObjectToFile
+               PyMarshal_WriteObjectToString
+               PyMem_Free
+               PyMem_Malloc
+               PyMem_Realloc
+               PyMember_Get
+               PyMember_Set
+               PyMethod_Class
+               PyMethod_Fini
+               PyMethod_Function
+               PyMethod_New
+               PyMethod_Self
+               PyModule_GetDict
+               PyModule_GetName
+               PyModule_New
+               PyNode_AddChild
+               PyNode_Compile
+               PyNode_Free
+;               PyNode_ListTree
+               PyNode_New
+               PyNumber_Absolute
+               PyNumber_Add
+               PyNumber_And
+               PyNumber_Check
+               PyNumber_Coerce
+               PyNumber_CoerceEx
+               PyNumber_Divide
+               PyNumber_Divmod
+               PyNumber_Float
+               PyNumber_Int
+               PyNumber_Invert
+               PyNumber_Long
+               PyNumber_Lshift
+               PyNumber_Multiply
+               PyNumber_Negative
+               PyNumber_Or
+               PyNumber_Positive
+               PyNumber_Power
+               PyNumber_Remainder
+               PyNumber_Rshift
+               PyNumber_Subtract
+               PyNumber_Xor
+               PyOS_AfterFork
+               PyOS_FiniInterrupts
+               PyOS_GetLastModificationTime
+               PyOS_InitInterrupts
+               PyOS_InterruptOccurred
+               PyOS_Readline
+               PyOS_StdioReadline
+               PyOS_strtol
+               PyOS_strtoul
+               PyObject_CallFunction
+               PyObject_CallMethod
+               PyObject_CallObject
+               PyObject_Cmp
+               PyObject_Compare
+               PyObject_DelItem
+               PyObject_GetAttr
+               PyObject_GetAttrString
+               PyObject_GetItem
+               PyObject_HasAttr
+               PyObject_HasAttrString
+               PyObject_Hash
+               PyObject_IsTrue
+               PyObject_Length
+               PyObject_Not
+               PyObject_Print
+               PyObject_Repr
+               PyObject_SetAttr
+               PyObject_SetAttrString
+               PyObject_SetItem
+               PyObject_Str
+               PyObject_Type
+               PyParser_AddToken
+               PyParser_Delete
+               PyParser_New
+               PyParser_ParseFile
+               PyParser_ParseString
+               PyParser_SimpleParseFile
+               PyParser_SimpleParseString
+               PyRange_New
+               PyRun_AnyFile
+               PyRun_File
+               PyRun_InteractiveLoop
+               PyRun_InteractiveOne
+               PyRun_SimpleFile
+               PyRun_SimpleString
+               PyRun_String
+               PySequence_Check
+               PySequence_Concat
+               PySequence_Contains
+               PySequence_Count
+               PySequence_DelItem
+               PySequence_DelSlice
+               PySequence_GetItem
+               PySequence_GetSlice
+               PySequence_In
+               PySequence_Index
+               PySequence_Length
+               PySequence_List
+               PySequence_Repeat
+               PySequence_SetItem
+               PySequence_SetSlice
+               PySequence_Tuple
+               PySlice_GetIndices
+               PySlice_New
+               PyString_AsString
+               PyString_Concat
+               PyString_ConcatAndDel
+               PyString_Fini
+               PyString_Format
+               PyString_FromString
+               PyString_FromStringAndSize
+               PyString_InternFromString
+               PyString_InternInPlace
+               PyString_Size
+               PySys_GetFile
+               PySys_GetObject
+               PySys_SetArgv
+               PySys_SetObject
+               PySys_SetPath
+               PySys_WriteStderr
+               PySys_WriteStdout
+               PyThreadState_Clear
+               PyThreadState_Delete
+               PyThreadState_Get
+               PyThreadState_GetDict
+               PyThreadState_New
+               PyThreadState_Swap
+               PyThread__exit_thread
+               PyThread_acquire_lock
+               PyThread_allocate_lock
+               PyThread_allocate_sema
+               PyThread_down_sema
+               PyThread_exit_thread
+               PyThread_free_lock
+               PyThread_free_sema
+               PyThread_get_thread_ident
+               PyThread_init_thread
+               PyThread_release_lock
+               PyThread_start_new_thread
+               PyThread_up_sema
+               PyToken_OneChar
+               PyToken_TwoChars
+               PyTokenizer_Free
+               PyTokenizer_FromFile
+               PyTokenizer_FromString
+               PyTokenizer_Get
+               PyTraceBack_Here
+               PyTraceBack_Print
+               PyTuple_Fini
+               PyTuple_GetItem
+               PyTuple_GetSlice
+               PyTuple_New
+               PyTuple_SetItem
+               PyTuple_Size
+               Py_AddPendingCall
+               Py_AtExit
+               Py_BuildValue
+               Py_CompileString
+               Py_EndInterpreter
+               Py_Exit
+               Py_FatalError
+               Py_FdIsInteractive
+               Py_Finalize
+               Py_FindMethod
+               Py_FindMethodInChain
+               Py_FlushLine
+               Py_Free
+               Py_GetArgcArgv
+               Py_GetBuildInfo
+               Py_GetCompiler
+               Py_GetCopyright
+               Py_GetExecPrefix
+               Py_GetPath
+               Py_GetPlatform
+               Py_GetPrefix
+               Py_GetProgramFullPath
+               Py_GetProgramName
+               Py_GetPythonHome
+               Py_GetVersion
+               Py_InitModule4
+               Py_Initialize
+               Py_IsInitialized
+               Py_Main
+               Py_MakePendingCalls
+               Py_Malloc
+               Py_NewInterpreter
+               Py_Realloc
+               Py_ReprEnter
+               Py_ReprLeave
+               Py_SetProgramName
+               Py_SetPythonHome
+               Py_VaBuildValue
+               _PyBuiltin_Fini_1
+               _PyBuiltin_Fini_2
+               _PyBuiltin_Init_1
+               _PyBuiltin_Init_2
+               _PyImport_FindExtension
+               _PyImport_Fini
+               _PyImport_FixupExtension
+               _PyImport_Init
+               _PyImport_LoadDynamicModule
+               _PyLong_New
+               _PyModule_Clear
+               _PyObject_New
+               _PyObject_NewVar
+               _PyString_Resize
+               _PySys_Init
+               _PyTuple_Resize
+               _Py_MD5Final
+               _Py_MD5Init
+               _Py_MD5Update
+;               _Py_addbit
+               _Py_c_diff
+               _Py_c_neg
+               _Py_c_pow
+               _Py_c_prod
+               _Py_c_quot
+               _Py_c_sum
+;               _Py_delbitset
+;               _Py_mergebitset
+;               _Py_meta_grammar
+;               _Py_newbitset
+               _Py_re_compile_fastmap
+               _Py_re_compile_initialize
+               _Py_re_compile_pattern
+               _Py_re_match
+               _Py_re_search
+               _Py_re_set_syntax
+;               _Py_samebitset
+
diff --git a/PC/os2vacpp/readme.txt b/PC/os2vacpp/readme.txt
index f805232..2da27b9 100644
--- a/PC/os2vacpp/readme.txt
+++ b/PC/os2vacpp/readme.txt
@@ -1,114 +1,114 @@
-IBM VisualAge C/C++ for OS/2
-============================
-
-To build Python for OS/2, change into ./os2vacpp and issue an 'NMAKE'
-command.  This will build a PYTHON15.DLL containing the set of Python
-modules listed in config.c and a small PYTHON.EXE to start the
-interpreter.
-
-By changing the C compiler flag /Gd- in the makefile to /Gd+, you can
-reduce the size of these by causing Python to dynamically link to the
-C runtime DLLs instead of including their bulk in your binaries. 
-However, this means that any system on which you run Python must have
-the VAC++ compiler installed in order to have those DLLs available.
-
-During the build process you may see a couple of harmless warnings:
-
-  From the C Compiler, "No function prototype given for XXX", which
-  comes from the use of K&R parameters within Python for portability.
-
-  From the ILIB librarian, "Module Not Found (XXX)", which comes
-  from its attempt to perform the (-+) operation, which removes and
-  then adds a .OBJ to the library.  The first time a build is done,
-  it obviously cannot remove what is not yet built.
-
-This build includes support for most Python functionality as well as
-TCP/IP sockets.  It omits the Posix ability to 'fork' a process but
-supports threads using OS/2 native capabilities.  I have tried to
-support everything possible but here are a few usage notes.
-
-
--- os.popen() Usage Warnings
-
-With respect to my implementation of popen() under OS/2:
-
-    import os
-
-    fd = os.popen("pkzip.exe -@ junk.zip", 'wb')
-    fd.write("file1.txt\n")
-    fd.write("file2.txt\n")
-    fd.write("file3.txt\n")
-    fd.write("\x1a")  # Should Not Be Necessary But Is
-    fd.close()
-
-There is a bug, either in the VAC++ compiler or OS/2 itself, where the
-simple closure of the write-side of a pipe -to- a process does not
-send an EOF to that process.  I find I must explicitly write a
-control-Z (EOF) before closing the pipe.  This is not a problem when
-using popen() in read mode.
-
-One other slight difference with my popen() is that I return None
-from the close(), instead of the Unix convention of the return code
-of the spawned program.  I could find no easy way to do this under
-OS/2.
-
-
--- BEGINLIBPATH/ENDLIBPATH
-
-With respect to environment variables, this OS/2 port supports the
-special-to-OS/2 magic names of 'BEGINLIBPATH' and 'ENDLIBPATH' to
-control where to load conventional DLLs from.  Those names are
-intercepted and converted to calls on the OS/2 kernel APIs and
-are inherited by child processes, whether Python-based or not.
-
-A few new attributes have been added to the os module:
-
-    os.meminstalled  # Count of Bytes of RAM Installed on Machine
-    os.memkernel     # Count of Bytes of RAM Reserved (Non-Swappable)
-    os.memvirtual    # Count of Bytes of Virtual RAM Possible
-    os.timeslice     # Duration of Scheduler Timeslice, in Milliseconds
-    os.maxpathlen    # Maximum Length of a Path Specification, in chars
-    os.maxnamelen    # Maximum Length of a Single Dir/File Name, in chars
-    os.version       # Version of OS/2 Being Run e.g. "4.00"
-    os.revision      # Revision of OS/2 Being Run (usually zero)
-    os.bootdrive     # Drive that System Booted From e.g. "C:"
-                     # (useful to find the CONFIG.SYS used to boot with)
-
-
--- Using Python as the Default OS/2 Batch Language
-
-Note that OS/2 supports the Unix technique of putting the special
-comment line at the time of scripts e.g. "#!/usr/bin/python" in
-a different syntactic form.  To do this, put your script into a file
-with a .CMD extension and added 'extproc' to the top as follows:
-
-    extproc C:\Python\Python.exe -x
-    import os
-    print "Hello from Python"
-
-The '-x' option tells Python to skip the first line of the file
-while processing the rest as normal Python source.
-
-
--- Suggested Environment Variable Setup
-
-With respect to the environment variables for Python, I use the
-following setup:
-
-    Set PYTHONHOME=E:\Tau\Projects\Python;D:\DLLs
-    Set PYTHONPATH=.;E:\Tau\Projects\Python\Lib; \
-                     E:\Tau\Projects\Python\Lib\plat-win
-
-The EXEC_PREFIX (optional second pathspec on PYTHONHOME) is where
-you put any Python extension DLLs you may create/obtain.  There
-are none provided with this release.
-
-
--- Contact Info
-
-If you have questions, suggestions or problems specifically with
-the OS/2 VAC++ port of Python, please contact me at:
-
-    Jeff Rush <jrush@summit-research.com>.
-
-I support no other platform but OS/2 (and eventually AmigaDOS).
+IBM VisualAge C/C++ for OS/2
+============================
+
+To build Python for OS/2, change into ./os2vacpp and issue an 'NMAKE'
+command.  This will build a PYTHON15.DLL containing the set of Python
+modules listed in config.c and a small PYTHON.EXE to start the
+interpreter.
+
+By changing the C compiler flag /Gd- in the makefile to /Gd+, you can
+reduce the size of these by causing Python to dynamically link to the
+C runtime DLLs instead of including their bulk in your binaries. 
+However, this means that any system on which you run Python must have
+the VAC++ compiler installed in order to have those DLLs available.
+
+During the build process you may see a couple of harmless warnings:
+
+  From the C Compiler, "No function prototype given for XXX", which
+  comes from the use of K&R parameters within Python for portability.
+
+  From the ILIB librarian, "Module Not Found (XXX)", which comes
+  from its attempt to perform the (-+) operation, which removes and
+  then adds a .OBJ to the library.  The first time a build is done,
+  it obviously cannot remove what is not yet built.
+
+This build includes support for most Python functionality as well as
+TCP/IP sockets.  It omits the Posix ability to 'fork' a process but
+supports threads using OS/2 native capabilities.  I have tried to
+support everything possible but here are a few usage notes.
+
+
+-- os.popen() Usage Warnings
+
+With respect to my implementation of popen() under OS/2:
+
+    import os
+
+    fd = os.popen("pkzip.exe -@ junk.zip", 'wb')
+    fd.write("file1.txt\n")
+    fd.write("file2.txt\n")
+    fd.write("file3.txt\n")
+    fd.write("\x1a")  # Should Not Be Necessary But Is
+    fd.close()
+
+There is a bug, either in the VAC++ compiler or OS/2 itself, where the
+simple closure of the write-side of a pipe -to- a process does not
+send an EOF to that process.  I find I must explicitly write a
+control-Z (EOF) before closing the pipe.  This is not a problem when
+using popen() in read mode.
+
+One other slight difference with my popen() is that I return None
+from the close(), instead of the Unix convention of the return code
+of the spawned program.  I could find no easy way to do this under
+OS/2.
+
+
+-- BEGINLIBPATH/ENDLIBPATH
+
+With respect to environment variables, this OS/2 port supports the
+special-to-OS/2 magic names of 'BEGINLIBPATH' and 'ENDLIBPATH' to
+control where to load conventional DLLs from.  Those names are
+intercepted and converted to calls on the OS/2 kernel APIs and
+are inherited by child processes, whether Python-based or not.
+
+A few new attributes have been added to the os module:
+
+    os.meminstalled  # Count of Bytes of RAM Installed on Machine
+    os.memkernel     # Count of Bytes of RAM Reserved (Non-Swappable)
+    os.memvirtual    # Count of Bytes of Virtual RAM Possible
+    os.timeslice     # Duration of Scheduler Timeslice, in Milliseconds
+    os.maxpathlen    # Maximum Length of a Path Specification, in chars
+    os.maxnamelen    # Maximum Length of a Single Dir/File Name, in chars
+    os.version       # Version of OS/2 Being Run e.g. "4.00"
+    os.revision      # Revision of OS/2 Being Run (usually zero)
+    os.bootdrive     # Drive that System Booted From e.g. "C:"
+                     # (useful to find the CONFIG.SYS used to boot with)
+
+
+-- Using Python as the Default OS/2 Batch Language
+
+Note that OS/2 supports the Unix technique of putting the special
+comment line at the time of scripts e.g. "#!/usr/bin/python" in
+a different syntactic form.  To do this, put your script into a file
+with a .CMD extension and added 'extproc' to the top as follows:
+
+    extproc C:\Python\Python.exe -x
+    import os
+    print "Hello from Python"
+
+The '-x' option tells Python to skip the first line of the file
+while processing the rest as normal Python source.
+
+
+-- Suggested Environment Variable Setup
+
+With respect to the environment variables for Python, I use the
+following setup:
+
+    Set PYTHONHOME=E:\Tau\Projects\Python;D:\DLLs
+    Set PYTHONPATH=.;E:\Tau\Projects\Python\Lib; \
+                     E:\Tau\Projects\Python\Lib\plat-win
+
+The EXEC_PREFIX (optional second pathspec on PYTHONHOME) is where
+you put any Python extension DLLs you may create/obtain.  There
+are none provided with this release.
+
+
+-- Contact Info
+
+If you have questions, suggestions or problems specifically with
+the OS/2 VAC++ port of Python, please contact me at:
+
+    Jeff Rush <jrush@summit-research.com>.
+
+I support no other platform but OS/2 (and eventually AmigaDOS).
