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
- 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.
- 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.
- 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:
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 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.
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.