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.