Go to file
Alexandre Julliard 5f721f81fd Release 0.5
Sun Jan  2 12:38:53 1994  David Metcalfe <david@prism.demon.co.uk>

	* [windows/class.c]
	Implemented GetClassName and GetClassInfo.

	* [windows/caret.c]
	Various improvements to text caret code.

Fri Dec 31 15:22:22 1993  John Brezak <brezak@apollo.hp.com>

	* [misc/comm.c]
	Patches to work with NetBSD.

Thu Dec 30 12:11:55 1993  John Richardson <jrichard@cs.uml.edu>

	* [objects/bitblt.c] Added StretchBlt().

Tue Jan  4 05:22:07 1994  julliard@di.epfl.ch (Alexandre Julliard)

	* [misc/user.c]
	Added creation of system message queue.

	* [objects/bitmap.c] [objects/dcvalues.c] [windows/dc.c]
	Added DC size fields into DC structure.		

	* [objects/clipping.c]
	Bug fix in CLIPPING_IntersectRect().

	* [windows/class.c]
	Allocate a DCE instead of a DC for CS_CLASSDC classes.

	* [windows/clipping.c]
	Fixed GetUpdateRect() and GetUpdateRgn() to clip to the client area.

	* [windows/dce.c]
	Implemented GetDCEx() and GetWindowDC().

	* [windows/defwnd.c]
	Implemented WM_WINDOWPOSCHANGED handling.

	* [windows/event.c]
	Preliminary support for Xlib event handling instead of Xt callbacks.
	Changed MSG_AddMsg() calls to hardware_event() or PostMessage().

	* [windows/message.c]
	Preliminary support for multiple message queues.
	Implemented hardware_event() to store messages into the system queue.
	Implemented Get/SetTaskQueue().
	Better WM_PAINT and WM_TIMER handling.
	Changes to use Xlib instead of Xt for events.

	* [windows/painting.c]
	Use GetDCEx() to retrieve the DC, to get a correct visible region.

	* [windows/timer.c]
	Moved the timer procedure callback into DispatchMessage().
	Changed implementation to get rid of Xt timeouts.  Timer checking
	is now done inside GetMessage().

	* [windows/win.c]
	Allocate a DCE instead of a DC for CS_OWNDC windows.
	Replaced Xt calls with Xlib calls.
	Moved window positioning functions into windows/winpos.c

	* [windows/winpos.c]  (New file)
	Rewritten most of the window positioning functions.
	Implemented SetWindowPos() and MapWindowPoints().

Jan 3, 94 martin2@trgcorp.solucorp.qc.ca (Martin Ayotte)

	* [if1632/user.spec]
	Bad arguments description for function SetDlgItemText.

	* [objects/text.c]
	Function DrawText now handle DT_CALCRECT request.

	* [misc/message.c]
	Message boxes now use DrawText with DT_CALCRECT.

	* [windows/graphics.c]
	Bug fix in function FrameRect, (it was using PEN instead of BRUSH).

	* [windows/win.c]
	Bug fix for flags in function ShowWindow.
	More accurate WM_SIZE generated by function ShowWindow.

	* [controls/listbox.c]
	More code for LBS_MULTIPLESEL.
	More code for LBS_MULTICOLUMN.

	* [include/windows.h]
	Bad define for MF_SEPARATOR.

	* [controls/menu.c]
	New functions: PopMenuWndProc() with 'glues',
	CreatePopupMenu(), AppendMenu(), InsertMenu(), RemoveMenu(), 
	DeleteMenu(), ModifyMenu(), TrackPopupMenu().
	Code in stubs: CreateMenu(), DestroyMenu(). 

Sat Jan  1 10:22:43 1994  Bob Amstadt  (bob@pooh)

	* loader/wine.c: Added support for relocation types 5 and 6.

Mon Dec 27 11:06:03 1993  Erik Bos (erik@trashcan.hacktic.nl)

	* [misc/comm.c]
	new functions: BuildCommDCB(), OpenComm(), CloseComm(),
	SetCommBreak(), ClearCommBreak(), EscapeCommFunction(), FlushComm(),
	GetCommError(), SetCommEventMask(), GetCommEventMask(),
	SetCommState(), GetCommState(), TransmitCommChar(), ReadComm(), 
	WriteComm().

Wed Dec 22 13:00:15 1993  David Metcalfe <david@prism.demon.co.uk>

	* [windows/caret.c]
	Implemented text caret functions.

Tue Dec 21 06:13:58 1993  julliard@di.epfl.ch (Alexandre Julliard)

	* [loader/wine.c]
	Bug fix in LoadImage().

	* [objects/bitblt.c] [objects/clipping.c] [objects/text.c]
	  [windows/dc.c] [windows/dce.c] [windows/graphics.c]
	Modified graphics calls to take into account the DC origin.

	* [windows/defwnd.c]
	Added preliminary WM_NCCALCSIZE handling.

	* [windows/event.c]
	Send WM_NCCALCSIZE message on resize event.

	* [windows/win.c]
	Send WM_NCCALCSIZE message in CreateWindow().
	Realize widgets at creation time (should prevent problems with
	unrealized widgets).

Dec 19, 93 martin2@trgcorp.solucorp.qc.ca (Martin Ayotte)

	* [controls/static.c]
	Send mouse & keyboard message received to its parent.

	* [controls/scroll.c]
	Send keyboard message received to its parent.

	* [controls/listbox.c]
	Add Navigation keys .
	ListBox now use VSCROLL & HSCROLL instead of children.
	Alpha version of LBS_MULTIPLESEL.
	Alpha version of LBS_MULTICOLUMN.

	* [controls/combo.c]
	Add Navigation keys on closed ComboBox.
	Remove useless 'COMBOBOX_CreateComboBox' function.

Mon Dec 19 20:39:34 1993  Erik Bos (erik@trashcan.hacktic.nl)

	* [loader/wine.
	LoadImage() modified to use FindFile().

	* [misc/file.c]
	SetErrorMode added

	* [misc/dos_fs.c]
	bug fixes.

Dec 13, 93 martin2@trgcorp.solucorp.qc.ca (Martin Ayotte)

	* [memory/global.c]
	bug fix in GlobalGetFreeSegment : good ptr in 'g_prev'.

	* [sysres.dll]
	preliminary version of a 'glass of wine' bitmap

	* [windows/event.c]
	New function 'GetCapture'.

	* [controls/scroll.c]
	Remove useless 'SCROLLBAR_CreateScrollBar' function.

	* [controls/listbox.c]
	Remove useless 'LISTBOX_CreateListBox' function.

Mon Dec 13 13:51:00 1993  David Metcalfe <david@prism.demon.co.uk>

	* [objects/font.c]
	Corrected bugs in GetCharWidth().

	* [windows/event.c]
	Modified EVENT_key to send Windows virtual key codes for
	WM_KEYDOWN and WM_KEYUP messages, and a WM_CHAR message
	for printable characters.

Wed Dec 08 19:20:00 1993  Karl Guenter Wuensch (hn324wu@unidui.uni-duisburg.de)

	* [windows/graphics.c]
	Added Polyline and Polygon

Mon Dec 13 14:51:54 1993  Erik Bos (erik@trashcan.hacktic.nl)

	* [controls/listbox.c]
	ListBoxDirectory() modified to use dos_fs.c's functions to
	access files&|drives.

Sat Dec 04 17:04:23 1993  Erik Bos (erik@trashcan.hacktic.nl)

       	* [misc/dos_fs.c]
       	Added FindFile() to search a file in a dos/unix style path.
	
	* [misc/file.c]
	New Win31 functions: OpenFile, _lcreate, _llseek, GetTempDrive,
	GetTempFileName, GetWindowsDirectory, GetSystemDirectory,
	GetDriveType.			   

       	* [misc/int21.c]
       	Modified.

Wed Dec  1 16:20:45 1993  Miguel de Icaza  (miguel@roxanne.nuclecu.unam.mx)

        * [misc/profile.c]
        The Profile functions now return the correct values. They now
        implement all the features described in the SDK.

Tue Nov 30 13:55:27 1993  Bob Amstadt  (bob at amscons)

	* [loader/selector.c]
	Rewrote selector aliasing routines to use System V IPC
	routine to alias memory segments.

Nov 28, 93 martin2@trgcorp.solucorp.qc.ca (Martin Ayotte)

	* [controls/listbox.c]
	More consistency in functions using wIndexes

	* [controls/scroll.c]
	New function : ShowScrollBar().

	* [loader/cursor.c] ... New file
	Move cursor functions from [loader/resource.c].
	New function : ClipCursor().
	New function : GetClipCursor().
	New function : CreateCursor().
	SetCursor() now working using gloabal variable 'winHasCursor'.

	*[object/palette.c]
	New stub only : SelectPalette().
	New stub only : RealizePalette().

	*[win/event.c]
	New function : EVENT_enter_notify(),
		update 'winHasCursor' and send WM_SETCURSOR.

	*[win/defwnd.c]
	Add processing of WM_SETCURSOR message.

	*[win/win.c]
	New members in WND structure : hCursor, hWndVScroll & hWndHScroll. 
	CreateWindowEx() now create children for WM_HSCROLL & WM_VSCROLL.
	New function ClientToScreen().
	New function ScreenToClient().

Mon Nov 25 18:25:40 1993  Erik Bos (erik@trashcan.hacktic.nl)

       	* [files.h / regfunc.h / misc/dos.c]
       	Removed.

       	* [misc/dos_fs.c]
       	Added support for loading dosdrive cfg from wine.ini.

       	* [misc/int21.c]
       	Modified.


Wed Nov 24 11:37:33 1993  julliard@disuns2.epfl.ch (Alexandre Julliard)

	* [include/atom.h] [memory/atom.c]
	Implemented atoms.

	* [windows/class.c]
	Modified RegisterClass() to use atoms.
	Implemented CS_GLOBALCLASS style.

	* [windows/message.c]
	Implemented RegisterWindowMessage().

	* [loader/resource.c]
	Bug fix in LoadResource().

	* [windows/dialog.c]
	Modified CreateDialogParam() to use Find/LoadResource().
1994-01-04 20:14:34 +00:00
controls Release 0.5 1994-01-04 20:14:34 +00:00
debugger Release 0.5 1994-01-04 20:14:34 +00:00
etc Release 0.5 1994-01-04 20:14:34 +00:00
if1632 Release 0.5 1994-01-04 20:14:34 +00:00
include Release 0.5 1994-01-04 20:14:34 +00:00
loader Release 0.5 1994-01-04 20:14:34 +00:00
memory Release 0.5 1994-01-04 20:14:34 +00:00
misc Release 0.5 1994-01-04 20:14:34 +00:00
objects Release 0.5 1994-01-04 20:14:34 +00:00
test Release 0.5 1994-01-04 20:14:34 +00:00
tools Release 0.5 1994-01-04 20:14:34 +00:00
windows Release 0.5 1994-01-04 20:14:34 +00:00
BUGS Release 0.3.0 1993-09-04 10:09:32 +00:00
COPYRIGHT Release 0.0.2 1993-06-29 16:33:12 +00:00
ChangeLog Release 0.5 1994-01-04 20:14:34 +00:00
Imakefile Release 0.5 1994-01-04 20:14:34 +00:00
LICENSE Release 0.5 1994-01-04 20:14:34 +00:00
Makefile Release 0.5 1994-01-04 20:14:34 +00:00
PROPOSED_LICENSE Release 0.5 1994-01-04 20:14:34 +00:00
README Release 0.5 1994-01-04 20:14:34 +00:00
README.OEMANSI Release 0.4.3 1993-09-29 12:21:49 +00:00
WARRANTY Release 0.5 1994-01-04 20:14:34 +00:00
WIN31-APPLETS Release 0.4.0 1993-09-14 16:47:10 +00:00
Wine.tmpl Release 0.5 1994-01-04 20:14:34 +00:00
ansi2oem.trl Release 0.4.3 1993-09-29 12:21:49 +00:00
bsdmake.patch Release 0.5 1994-01-04 20:14:34 +00:00
oem2ansi.trl Release 0.4.3 1993-09-29 12:21:49 +00:00
oemansi.exe Release 0.4.3 1993-09-29 12:21:49 +00:00
sysres.dll Release 0.5 1994-01-04 20:14:34 +00:00
wine.ini Release 0.5 1994-01-04 20:14:34 +00:00

README

Copyright  Robert J. Amstadt, 1993.  All code is provided without
warranty.  All code is covered by the license contained in the file
LICENSE unless explicitly stated in the individual source file.

INSTALLATION:

Linux:

    Uncompress and untar this archive into the directory of your
choice.  This release requires a Linux version 0.99 pl13 kernel
or above.

NetBSD:

    If you use BSD make rather than GNU make, you must apply the patches
in the file "bsdmake.patch".  This release requires NetBSD-current.

All:

To build Wine, first do a "make depend" and then a "make".  The
executable "wine" will be built.  "wine" will load and run Windows'
executables.  You must have a file "wine.ini" in the current directory,
your homedirectory, or in the path specified by the environment 
variable WINEPATH. Multiple directories in WINEPATH should be seperated
by semi-colons and NOT by colons!

You must specify the entire path to the executable, or a filename only
(using the path= statement in wine.ini as the search path)

For example: to run Windows' solitaire:

	export WINEPATH=/etc;/usr/windows

	wine sol		   (using the path= statement in wine.ini
	wine sol.exe		    as the search path)

	wine c:\\windows\\sol.exe  (using a dosfilename)

	wine /usr/windows/sol.exe  (using a unixfilename)

Have a nice game of solitaire, but be careful.  Emulation isn't perfect.
So, occassionally it will crash.

WHAT'S NEW with version 0.5: (see ChangeLog for details)
	- Working towards elimination of Xt-dependent code.
	- StretchBlt()
	- GetClassName() & GetClassInfo()
	- Implemented loader relocation types 5 and 6.

WHAT'S NEW with version 0.4.14: (see ChangeLog for details)
	- Bug fixes and enhancements
	- Comm functions
	- Text caret functions

WHAT'S NEW with version 0.4.13: (see ChangeLog for details)
	- Bug fixes
	- GetCapture()
	- More keyboard handling
	- Polyline() and Polygon()

WHAT'S NEW with version 0.4.12: (see ChangeLog for details)
	- Bug fixes
	- New DOS file functions
	- Experimental Imakefiles

WHAT'S NEW with version 0.4.11: (see ChangeLog for details)
	- Bug fixes
	- New cursor functions
	- New file system handling
	- Atoms

WHAT'S NEW with version 0.4.10: (see ChangeLog for details)
	- Bug fixes
	- More scroll bar functions
	- More icon and cursor handling

WHAT'S NEW with version 0.4.9: (see ChangeLog for details)
	- Bug fixes
	- real MessageBox()
	- New resource functions
	- Icon functions
	- Selector manipulation functions
	- Catch()/Throw()

WHAT'S NEW with version 0.4.7: (see ChangeLog for details)
	- More dialog box functions
	- More DOS interrupts
	- NetBSD compatibility patches

WHAT'S NEW with version 0.4.5: (see ChangeLog for details)
	- Bug fixes
	- focus routines
	- dialog box functions
	- improvements to control windows

WHAT'S NEW with version 0.4.4: (see ChangeLog for details)
	- Bug fixes
	- New static control class
	- Preliminary listbox, combobox and scrollbar controls
	- System initialization file is now called "wine.ini", and
	  may be located in the user's current directory, the
	  user's home directory or any directory specified by
	  the WINEPATH environment variable.
	- The loader now searches the directories specified by the
	  WINEPATH environment variable for programs and DLLs.
	- Internal debugger now works on 386BSD.

WHAT'S NEW with version 0.4.3: (see ChangeLog for details)
	- Bug fixes
	- Resource loading now able to load DLL resources
	- Button control now based on GDI calls
	- Preliminary system color support
	- Miscellaneous window functions
	- Limited debugging facility (sometimes hangs)

WHAT'S NEW with version 0.4.2: (see ChangeLog for details)
	- Bug fixes
	- 32-bit callback functions allowed
	- .INI file handling
	- lstr* functions and ANSI<->OEM conversion functions.

WHAT'S NEW with version 0.4.1: (see ChangeLog for details)
	- Bug fixes
	- Memory usage changes.

WHAT'S NEW with version 0.4.0: (see ChangeLog for details)
	- Wine now compiles and runs under NetBSD.  Patches are
	  required for NetBSD.
	- Wine stat patches included.  Add "-DWINESTAT" to the definition
	  of COPTS in the main Makefile to activate.
	- Preliminary keyboard handling.
	- Button control window implemented.
	- many other new functions added.

WHAT'S NEW with version 0.3.1: (see ChangeLog for details)
	- LineDDA() completed
	- numerous bug fixes
	- INT 1Ah implemented
	- SOUND DLL implemented
	- More of WIN87EM DLL implemented
	- OpenFile() and friends implemented

WHAT'S NEW with version 0.3.0: (see ChangeLog for details)
	- Mouse capture
	- Text justification and underlining
	- Clipping
	- LoadBitmap() completed
	- Code generated by the Borland compiler should now work

WHAT'S NEW with version 0.2.8: (see ChangeLog for details)
	- Text functions from Alexandre
	- INT 21h from Eric
	- Menu improvements from David
	- Bug fixes and GetProcAddress() stub from me

WHAT'S NEW with version 0.2.7: (see ChangeLog for details)
    - sol.exe gets further.  I did some debugging and now solitaire
      stops when it tries to call GetTextExtent().  Any volunteers?
    - Many DC updates from Alexandre.
    - Menu updates to support underlining characters from David Metcalfe.

WHAT'S NEW with version 0.2.6: (see ChangeLog for details)
    - More region updates from Alexandre

WHAT'S NEW with version 0.2.5: (see ChangeLog for details)
    - Regions implemented by Alexandre
    - More menuing code from me

WHAT'S NEW with version 0.2.4: (see ChangeLog for details)
    - Many improvements to GDI from Alexandre
    - Many improvements to menu handling by me.

WHAT'S NEW with version 0.2.3: (see ChangeLog for details)
    - Bug fixes with SendMessage() and PostMessage()
    - Preliminary menu support

WHAT'S NEW with version 0.2.2: (see ChangeLog for details)
    - Misc bug fixes
    - More bitmap code
    - Timers
    - Memory DC's

WHAT'S NEW with version 0.2.1:
    - I have placed things into sub-directories.  The organization is
      not finalized.  I imagine that the directory structure will
      change as is necessary.  Files in the ./misc directory need
      to be split apart and placed in apropriate directories.
    - Tons of code from Alexandre.  He has constructed the framework
      for handling GDI objects.  He has also provided code for DCEs.
    - Local heap functions have been completed.
    - Bug fixes in global.c and win.c
    - New function GlobalQuickAlloc() combines GlobalAlloc() and
      GlobalLock() into a single function call.
    - New patch kit for Linux 0.99 pl11 kernel.  Thanks to Linus
      who has graciously included our patches into the ALPHA patch
      release cycle.

WHAT'S NEW with version 0.2.0:
    - Alexandre Julliard has provided a replacement for the Tcl code.
      The new code uses Xlib and Xt directly with no intervening
      interpretted language.  This should reduce the learning
      curve for casual hackers.
    - I changed all GLOBAL_ names to Global.

WHAT'S NEW with version 0.1.1:
    - I have completed global memory allocation, but I don't like it.
      It is not 100% compatible with Windows.  I need some more kernel
      modifications for 100% compatibility.
    - Alexandre Julliard has provided written better emulation for
      the Windows message queue.

WHAT'S NEW with version 0.1.0:
    - Latest patches from Alexandre Julliard.
    - minor bug fix in if1632.S

WHAT'S NEW with version 0.0.5:
    - Patches from Alexandre Julliard.  Some integration with Tcl.
    - Generic interface for callback procedures.  This will allow
      callbacks into DLLs.
    - MakeProcInstance() has been implemented but untested.

WHAT'S NEW with version 0.0.4:
    - Eric Youngdale modified wine.c and selector.c to allow loading
      of Windows DLLs.
    - Added global memory allocation routines (GlobalAlloc, GlobalFree,
      and GlobalLock)
    - Bitmap resource loading into global memory.

WHAT'S NEW with version 0.0.3:
    - Fixed bug with sector sizes.
    - Registers at program startup are now set correctly.
    - Segment fixups for relocatable-segment internal entry points.
    - Fixed bug in DOS PSP structure.
    - Some resource loading is done.
    - Added "return" ordinal type to build program.
    - Added comment capability to build program.

WHAT'S NEW with version 0.0.2:

    - Again thanks to Eric Youngdale for some very useful comments.
    - The Windows startup code created by Micrsoft C 7.0 now runs 
      to completion.
    - Added a new patch to the kernel to increase the usable size of
      the ldt to the full 32 entries currently allowed.
    - Imported name relocations are now supported.
    - Source code for my infamous test program is now included.
    - A handful of basic Windows functions are now emulated.  See
      "kernel.spec" for examples of how to use the build program.

WHAT'S NEW with version 0.0.1:

    - Eric Youngdale contributed countless improvements in memory
      efficiency, bug fixes, and relocation.
    - The build program has been completed.  It now lets you specify
      how the main DLL entry point should interface to your emulation
      library routines.  A brief description of how to build these
      specifications is included in the file "build-spec.txt".
    - The code to dispatch builtin DLL calls is complete, but untested.

TODO:

    - Segment fixup code completion.
    - Trap and handle DOS and DPMI calls.
    - GlobalAlloc of code segments.
    - Rewrite global memory support including kernel mods to allow
      application to mess with page map.
    - Handle self-loading applications.
    - Resource loading
    - Lots and lots of API fiunctions.

BUILD:

    The documentation for the build program is in the file build-spec.txt

FINALE:

Good luck,

	If you successfully add anything, please send me a copy.

Bob Amstadt
bob@amscons.com