Phar Lap Software, Inc.         Phone: +1 617 661 1510
60 Aberdeen Ave,                  FAX: +1 617 876 2972
Cambridge, MA  02138            Email: tech-support@pharlap.com

					Jan 19, 1994

This release is based on 286|DOS-Extender SDK 3.0.  This release
fully supports Borland C++ 4.0 and Microsoft Visual C++ 1.5, and
fixes a number of bugs in 286|DOS-Extender 3.0.  These notes contain
instructions for installing this update release, followed by a complete
list of user-visible changes.

If you find any problems with this release, please contact
our technical support department.

Special note to users of 286|DOS-Extender RTK:  after installing
this patch disk, you should also update your RTK files. (If you
do not, you may notice problems using BIND286.)  Please contact
Phar Lap technical support for more information.  


Installation
------------

Note that this installation overwrites your existing 3.0 files --
you may wish to back them up before proceeding.

This release is an incremental release.  It cannot be used by itself,
but rather must be installed "over"  286|DOS-Extender 3.0.  To install
this release, put your diskette into the diskette drive, and run
"install.exe" from that drive:

	A:\> install

After running install, you must re-run MKLIB.BAT for each
of the compilers you wish to use.

For Borland, type the following commands:

	C:> cd \run286\bc3\lib
	C:> mklib ...	;; mklib.bat MUST be re-run.  See 3.0 release notes
			;; for instructions.
	C:> mkgraph ...	;; ditto

	C:> cd \run286\bc4\lib
	C:> mklib ...	;; ditto
	C:> mkgraph ...	;; ditto

For Microsoft Visual C++:
	C:> cd \run286\msvc\lib
	C:> mklib ...
For other Microsoft compilers, re-run MKLIB in the appropriate directory.

The only configuration difference that should be noted is that support
for the Borland 4.0 compiler is located in the newly-created BC4 sub-
directory, and that two new .DLL files are present in RUN286\BIN for TDW.
In contrast, MSVC 1.5 support in the same directory as MSVC 1.0.


Borland-specific fixes
---------------------
BCC286 now accepts the -Fs parameter (for BC3.x and BC4 only).
BCC286 now correctly deletes __TMP.RSP if "-c" is used.
BCC286 no longer uses TASM to implement the "-start"
switch.  The start record is emitted directly by BCC286 now.

This update enables the "/DO" switch to TDW.

This update fixes a bug in which TDP.EXE will not load
and execute programs to be debugged, but TDW would.

Increase the size of all stack segments by 2 bytes to work around
a bug in TPROFW.

MKLIB.BAT would not operate correctly when invoked by 4DOS, a
replacement program for command.com.  MKLIB now works correctly
in both environments.

Under certain circumstances TLINK can produce invalid executable
modules.  Typical symptoms of this problem include the message:
Fatal error 286.2180: Load program failed -- error code 201 --
	      <filename>.EXE.
This release should fix that problem.

In a program compiled with Borland C, malloc() could return a pointer
too near to the 64K boundary, such that the following legal program
could print "Whoops!":
	main(){char *p = malloc(10); if(p+10 < p) printf("Whoops!\n");}
This has been fixed in the BC3 and BC4 directories.

TDW's support of European keyboards has been re-organized.  If your
nation's keyboard is not supported, contact tech-support@pharlap.com
(+1 617 661 1510), and ask for the source code to NLSKBD.DLL.  Currently
only USA, France, & Germany are supported, but if you add the tables
for your country, we will distribute them.

Microsoft-specific fixes
------------------------
This update fixes a problem in which calls to the Microsoft 
graphics library function "_polygon" might fault, depending 
upon details of the link process.

This update fixes a problem in which the Microsoft
C/C++ 7.0a or MSVC 1.0 graphics library function "_outtext"
would fault.

This update enables the "/2" switch to CVP7.

This update supports the Microsoft C/C++ specific run-time 
function calling convention.  For example you may now use _int86x
in your source code.  You can still continue to use the previous
calling convention e.g. int86x() as Microsoft C/C++ provides a
library named OLDNAMES.LIB that contains alias records mapping the
old names to the new names.

This update fixes a problem with the Microsoft graphics library
in which multiple calls to _setactivepage and _setvisualpage
in mode _ERESCOLOR cause the graphics screen to be incorrectly
mapped.  The problem will, at best, cause no output to be sent to
the screen.  If you have any memory-mapped devices, or if you
have any device drivers or TSRs loaded hi, then their data
would be overwritten without this update.

CVP7 no longer GP faults when the PATH environment variable is of a 
certain length.

CVP7 can now unassemble code that exists inside of the 286|DOS-Extender.

Under certain situations CVP7 would hang when either DLL load
notifications occured or the application got a GP fault. Both 
these problems are fixed in this release. 

Non-specific fixes
------------------
INT 10, function 5F is passed through to real mode unchanged.  We believe
this function takes no pointers and supports Chips & Technologies' VGA bios.

This update fixes a problem which caused BIND286.EXE to fail
when accepting input from a command file (via '@'), and fixes
a problem in which BIND286 used the root of the current drive
as a temporary file area.  This would fail on certain network
configurations.

If an interrupt happens while the direction flag is SET,
the the extender DPMI server no longer crashes.  (This
typically was seen when using the up-arrow key in CodeView.)

Better unwinding when a Windows DOS box DPMI server fails
to initialize.  Avoids a DOS box crash.

Avoid creating the swap file if -vm is specified, but we are
running under DPMI.

Added "-MODNAME" switch.  This switch takes no arguments.  When
it is specified, the NEW EXE loader tracks modules by their
module name, not their file name.  Module names are specified by
the NAME and LIBRARY fields in a .def file.  This change still
has holes in it, and may not be generally useful.  Contact
Phar Lap if you need more complete emulation of the Windows 
program loader than this provides.

DLL modules that are loaded by the "-loaddll" switch are now
released after all user processes have exited.

Interrupts taken over by the DOS-Extender DPMI client code are
now released before the DPMI exit call.  Not releasing the interrupts
appears to only be a problem with the Windows NT Single Command Shell.

Improve int 21h, function 0ah.

Add int 21h, function 69h.

Fix problem in which a DLL loaded by virtue of having satisfied
an import record could not subsequently be loaded by DosLoadModule.

Fixed a problem in which programs with unresolved import records
would GP fault.  They now (correctly) print the BADAPI message.

