TADS on MS-DOS and Windows - Revisions for versions 2.2.3 through 2.4.0
=======================================================================

This file contains a list of changes to TADS that are specific to the
MS-DOS and Windows versions, from version 2.2.3 through version 2.4.0

Note that a separate file, called TADSV240.TXT, contains the
corresponding set of historical release notes that apply to all types
of computers, not only MS-DOS.  Please refer to TADSV240.TXT for
additional information about this series of releases.


------------------------------------------------------------------------------
2.4.0 May 16, 1999

(No changes specific to MS-DOS or Windows.)


------------------------------------------------------------------------------
2.3.0/MS-DOS patchlevel 1.0  02/01/1999

 - Fixed a bug in the Windows 32-bit console application version of the
   runtime (TR32.EXE): when entering a command line longer than the width
   of the window, the run-time scrolled up an extra line, leaving a blank
   line in the middle of the command.  This no longer happens.


------------------------------------------------------------------------------
2.2.6/MS-DOS patchlevel 1.0  09/30/98

 - The release notes are now separated into a generic section and a
   platform-specific section.  This file (DOSVER.TXT) describes the
   changes that apply only to the MS-DOS and Windows versions of TADS;
   a separate file, TADSVER.TXT, describes the generic changes that
   apply to all platforms.  Please refer to TADSVER.TXT for additional
   information about this TADS release.


------------------------------------------------------------------------------
2.2.5/MS-DOS patchlevel 1.0  08/24/98

 - The 32-bit Windows version of the run-time now supports external
   functions.  This applies to both the character-mode run-time (TR32)
   and the graphical HTML TADS run-time (HTMLTADS).

   The process of designing and coding your external function in C is
   the same as in past versions; refer to the TADS Author's Manual for
   a detailed description of how to write and call an external function.

   On Win32, external functions are implemented with DLL's (dynamic link
   libraries).  Each external function resides in its own DLL with the
   same name as the external function as given in the TADS source code
   of your game.  For example, suppose you define a function like this
   in your game's source (.t) file:

      myfunc: external function;

   In this case, the run-time will attempt to load a DLL file called
   MYFUNC.DLL (note that the Windows file system is case insensitive,
   so the case of your function's name is not significant for the
   purpose of loading the DLL file).

   To compile your external function, simply use the options or settings
   for your compiler to produce a DLL file from your .c file.  Note that
   your DLL must export the function "main".  Using Visual C++ version
   5.0 or later (and probably earlier, although we haven't tested these
   exact command line options with earlier versions), you can use the
   following command line to create a DLL from your .c file:

      cl /LD /I"TadsDir" testux.c /link /export:main /out:myfunc.dll

   In the line above, replace "TadsDir" with the path to your TADS
   executables directory; replace testux.c with the name of your .c
   source file; and replace myfunc.dll with the name of the DLL you
   wish to generate (which must be the same as the name of the external
   function as defined in your TADS source code file).

   The sample external function C code in TESTUX.C has additional
   information on the Win32 build procedure, including instructions
   for Borland C.

   At this time, there is no way to put a DLL into a .GAM file using
   the resource mechanism.  Each external function that your game uses
   must reside in a separate DLL file that you include with your game.

------------------------------------------------------------------------------
2.2.4/MS-DOS patchlevel 1.0  07/20/98  enhancements and fixes

 - maketrx and maketrx32 have several new options.  First, three new
   options let you specify the run-time version to use to build your
   stand-alone game:

      -html    - uses the HTML TADS Windows 95/NT run-time (HTMLTADS.EXE)
      -prot    - uses the 16-bit protected-mode DOS run-time (TRX.EXE)
      -win32   - uses the 32-bit Windows 95/NT console run-time (TR32.EXE)

   If you don't specify one of these options, the standard DOS run-time
   (TR.EXE) is used by default.  Note that these new options are merely
   a convenience feature, and you can still explicitly specify the
   executable to use; if you do specify a source executable, these
   options are ignored.

   Second, two new options can be used when building a stand-alone
   game executable based on the HTML TADS run-time:

      -icon icofile - specifies an icon file (.ICO) to use for the
          desktop icon for your game, instead of the default icon
          that the HTML TADS executable normally uses.  Your .ICO
          file must contain a 16-by-16 pixel, 16-color small icon,
          and a 32-by-32 pixel, 16-color large icon.  Other formats
          and sizes in the file are ignored.

      -savext ext - specifies the filename extension to use for saved
          game files produced by your stand-alone game.  Refer to the
          DIST.HTM in the HTML TADS notes for details about using this
          option.

   The -icon and -savext options only apply to games based on the HTML
   TADS run-time; they don't work with the other run-time versions.
   The -icon option is only supported by MAKETRX32 (not MAKETRX).

 - The default memory sizes on the 32-bit command line tools have
   been increased to large values.

   The new compiler default settings are:

     -mp 24576 (parsing pool size)
     -ml 16384 (local symbol table size)
     -mh 65535 (heap size)
     -ms 512   (stack size)
     -mg 8192  (label symbol table size)

   The new run-time default settings are:

     -mh 65535 (heap size)
     -ms 512   (stack size)
     -u 60000  (undo size)

   The new debugger default settings (for both the 32-bit command-line
   version and the HTML TADS Debugger for Windows 95/NT) are:

     -mh 65535 (heap size)
     -ms 512   (stack size)
     -mp 24576 (parsing pool size)
     -u 60000  (undo size)

 - The 32-bit command-line tools now have their messages linked into
   the executables, so TADSERR.MSG is not needed by these vesions of
   the tools.

 - The DOS version of the TADS Debugger was unstable in certain situations
   where execution stopped outside the context of user code; the most
   likely way to encounter this type of situation was to code a routine
   that is called by the parser with the incorrect number of arguments,
   since this would cause execution to stop effectively in the context
   of the parser, and not in any valid game source code.  The debugger
   is now more tolerant of this situation and can continue execution
   properly.

 - The Windows 32-bit console-mode run-time and debugger had a few
   problems with keyboard input; in particular, the "Alt" key didn't
   work properly for Alt + letter keys or Alt + numeric keypad keys.
   These problems have been corrected.

 - The Windows 32-bit console-mode run-time and debugger occasionally
   did not clear parts of the screen properly (this was most likely to
   be a problem during scrollback and using the save/restore dialogs).
   These problems have been corrected.

------------------------------------------------------------------------------
2.2.3/MS-DOS patchlevel 1.0  03/25/98

   (No DOS-specific changes were made in this version.)


------------------------------------------------------------------------------

Please consult TADSV222.DOS for information on releases from 2.1.1
through 2.2.2, and refer to TADSV200.DOS for information on releases
prior to 2.1.1.  See the note at the top of TADSVER.TXT for details
on where to find these older release notes files.