551 lines
17 KiB
Plaintext
551 lines
17 KiB
Plaintext
0. LICENSE
|
|
|
|
You may without charge, royalty or other payment, copy and
|
|
distribute copies of this work and derivative works of this work
|
|
in source or binary form provided that: (1)
|
|
you appropriately publish on each copy an appropriate copyright
|
|
notice; (2) faithfully reproduce all prior copyright notices
|
|
included in the original work (you may also add your own
|
|
copyright notice); and (3) agree to indemnify and hold all prior
|
|
authors, copyright holders and licensors of the work harmless
|
|
from and against all damages arising from use of the work.
|
|
|
|
You may distribute sources of derivative works of the work
|
|
provided that (1) (a) all source files of the original work that
|
|
have been modified, (b) all source files of the derivative work
|
|
that contain any party of the original work, and (c) all source
|
|
files of the derivative work that are necessary to compile, link
|
|
and run the derivative work without unresolved external calls and
|
|
with the same functionality of the original work ("Necessary
|
|
Sources") carry a prominent notice explaining the nature and date
|
|
of the modification and/or creation. You are encouraged to make
|
|
the Necessary Sources available under this license in order to
|
|
further the development and acceptance of the work.
|
|
|
|
EXCEPT AS OTHERWISE RESTRICTED BY LAW, THIS WORK IS PROVIDED
|
|
WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES OF ANY KIND, INCLUDING
|
|
BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF FITNESS FOR A
|
|
PARTICULAR PURPOSE, MERCHANTABILITY OR TITLE. EXCEPT AS
|
|
OTHERWISE PROVIDED BY LAW, NO AUTHOR, COPYRIGHT HOLDER OR
|
|
LICENSOR SHALL BE LIABLE TO YOU FOR DAMAGES OF ANY KIND, EVEN IF
|
|
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
|
|
|
1. COMPILATION:
|
|
|
|
You must have one of:
|
|
|
|
Linux version 0.99.13 or above
|
|
NetBSD-current
|
|
FreeBSD-current or FreeBSD 1.1
|
|
|
|
To build Wine, first do a "./Configure" and then a "make" (or "gmake"
|
|
if you're running *BSD). The executable "wine" will be built. "wine"
|
|
will load and run 16-bit Windows' executables.
|
|
|
|
|
|
|
|
2. SETUP:
|
|
|
|
Wine requires you to have a file /usr/local/etc/wine.conf (you can
|
|
supply a different name when configuring wine) or a file called .winerc
|
|
in your homedirectory.
|
|
|
|
The formatstyle of this config file is just like a windows .ini file.
|
|
|
|
Here's an explanation of each section:
|
|
|
|
* [drives]
|
|
|
|
format: <driveletter> = <rootdirectory>
|
|
default: none
|
|
|
|
This section is used to specify the root directory of each `dos'drive
|
|
as windows' applications require a dos/mswindows based diskdrive &
|
|
directory scheme.
|
|
|
|
If you mounted you dos-partition as /dos and installed microsoft windows
|
|
in c:\windows than you should specify c=/dos in the drives section.
|
|
|
|
* [wine]
|
|
|
|
format: windows = <directory>
|
|
default: c:\windows
|
|
|
|
Used to specify an different windows directory.
|
|
|
|
format: system = <directory>
|
|
default: c:\windows\system
|
|
|
|
Used to specify an different system directory.
|
|
|
|
format: temp = <directory>
|
|
default: c:\temp
|
|
|
|
Used to specify a directory where windows applications can store temporary
|
|
files.
|
|
|
|
format: path = <directories separated by semi-colons>
|
|
default: c:\windows;c:\windows\system
|
|
|
|
Used to specify the path which will be used to find executables and DLL's.
|
|
|
|
format: systemresources = <filename>
|
|
default: c:\temp
|
|
|
|
Used to specify the name of sysres.dll, a dll which is used by wine itself.
|
|
|
|
* [serialports]
|
|
|
|
format: com[12345678] = <devicename>
|
|
default: none
|
|
|
|
Used to specify the devices which are used as com1 - com8.
|
|
|
|
* [parallelports]
|
|
|
|
format: lpt[12345678] = <devicename>
|
|
default: none
|
|
|
|
Used to specify the devices which are used as lpt1 - lpt8.
|
|
|
|
* [spy]
|
|
|
|
format: file = <filename or CON when logging to stdout>
|
|
default: none
|
|
|
|
used to specify the file which will be used as logfile.
|
|
|
|
format: exclude = <message names separated by semicolons>
|
|
default: none
|
|
|
|
Used to specify which messages will be excluded from the logfile.
|
|
|
|
format: include = <message names separated by semicolons>
|
|
default: none
|
|
|
|
Used to specify which messages will be included in the logfile.
|
|
|
|
|
|
|
|
3. RUNNING PROGRAMS
|
|
|
|
When invoking wine, you must specify the entire path to the executable,
|
|
or a filename only.
|
|
|
|
For example: to run Windows' solitaire:
|
|
|
|
wine sol (using the searchpath to locate the file)
|
|
wine sol.exe
|
|
|
|
wine c:\\windows\\sol.exe (using a dosfilename)
|
|
|
|
wine /usr/windows/sol.exe (using a unixfilename)
|
|
|
|
note: the path of the file will also be added to the path when
|
|
a full name is supplied on the commandline.
|
|
|
|
Have a nice game of solitaire, but be careful. Emulation isn't perfect.
|
|
So, occassionally it will crash.
|
|
|
|
|
|
|
|
4. EXAMPLE CONFIGFILE
|
|
|
|
----------------------------------------------------------------------------
|
|
[drives]
|
|
a=/mnt/fd0
|
|
c=/dos
|
|
d=~/Wine
|
|
|
|
[wine]
|
|
windows=c:\windows
|
|
system=c:\windows\system
|
|
temp=c:\temp
|
|
path=c:\windows;c:\windows\system;c:\winapps\word\;c:\winapps\pctools
|
|
systemresources=./sysres.dll
|
|
|
|
[serialports]
|
|
com1=/dev/cua1
|
|
com2=/dev/cua1
|
|
|
|
[parallelports]
|
|
lpt1=/dev/lp0
|
|
|
|
[spy]
|
|
;File=CON
|
|
;File=spy.log
|
|
Exclude=WM_TIMER;WM_SETCURSOR;WM_MOUSEMOVE;WM_NCHITTEST;WM_NCACTIVATE;WM_GETDLGCODE;
|
|
Include=WM_COMMAND;
|
|
|
|
----------------------------------------------------------------------------
|
|
|
|
|
|
5. BUILD:
|
|
|
|
The documentation for the build program is in the file build-spec.txt
|
|
|
|
|
|
6. FINALE:
|
|
|
|
Good luck,
|
|
|
|
If you successfully add anything, please send me a copy.
|
|
|
|
Bob Amstadt
|
|
bob@amscons.com
|
|
|
|
|
|
7. WHAT'S NEW
|
|
|
|
WHAT'S NEW with Wine-940602: (see ChangeLog for details)
|
|
- CLOCK.EXE runs.
|
|
- ABORT command added to debugger.
|
|
- Windows environment is now imported from the UNIX environment.
|
|
- Use of save unders and backing store are now the default. Resource
|
|
and command line options have been added to disable these things.
|
|
- Assorted new driver functions
|
|
- GetAsyncKeyState()
|
|
- More metafile support
|
|
- and many many bug fixes!
|
|
|
|
WHAT'S NEW with Wine-940524: (see ChangeLog for details)
|
|
- New menu functions
|
|
- EnumObjects()
|
|
- and many many bug fixes!
|
|
|
|
WHAT'S NEW with Wine-940518: (see ChangeLog for details)
|
|
- debugger improvements
|
|
- bug fixes to get some dialog boxes working.
|
|
- skeleton for passing MCI functions.
|
|
- beginnings of metafile support.
|
|
- and many many bug fixes!
|
|
|
|
WHAT'S NEW with Wine-940510: (see ChangeLog for details)
|
|
- debugger improvements
|
|
- mmsystem
|
|
- ShellAbout() and AboutDlgProc()
|
|
- and many many bug fixes!
|
|
|
|
WHAT'S NEW with Wine-940505: (see ChangeLog for details)
|
|
- faster color_stretch()
|
|
- SetSysMenu(), GetCursor(), GetDesktopWindow()
|
|
- WSAGetXbyY() now non-blocking
|
|
- and many many bug fixes!
|
|
|
|
WHAT'S NEW with Wine-940420: (see ChangeLog for details)
|
|
- new property functions
|
|
- new listbox and combo box functions
|
|
- GrayString() and CallGrayStringProc()
|
|
- and many many bug fixes!
|
|
|
|
WHAT'S NEW with Wine-940412: (see ChangeLog for details)
|
|
- menuing improvements
|
|
- drawing performance improvements
|
|
- beginnings of hooks
|
|
- MDI maximizing and tiling
|
|
- improvements in winsock implementation
|
|
- and many many bug fixes!
|
|
|
|
WHAT'S NEW with Wine-940405: (see ChangeLog for details)
|
|
- Mouse activation of menus working again
|
|
- GetprocAddress()
|
|
- SetDIBitsToDevice()
|
|
- FindWindow()
|
|
- int 10hm 25h and 26h
|
|
- in, inb, out, outb emulation
|
|
- and many many bug fixes!
|
|
|
|
WHAT'S NEW with Wine-940329: (see ChangeLog for details)
|
|
- MDI: child windows can be created, activated and cascaded.
|
|
- -depth option
|
|
- support for dithered brushes
|
|
- GetNearestColor(), RealizeDefaultPalette(),
|
|
GetSystemPaletteEntries(), and SelectPalette()
|
|
- System colors read from WIN.INI
|
|
- Keyboard menu manipulation (mouse is temporarily broken)
|
|
- GetFreeSystemResources()
|
|
- and many many bug fixes!
|
|
|
|
WHAT'S NEW with Wine-940322: (see ChangeLog for details)
|
|
- Speed improvements in bitmaps and mouse messages
|
|
- More MDI support. More to come next week...
|
|
- and many many bug fixes!
|
|
|
|
WHAT'S NEW with Wine-940315: (see ChangeLog for details)
|
|
- Beginnings of MDI support. More to come next week...
|
|
- Stress DLL
|
|
- and many many bug fixes!
|
|
|
|
WHAT'S NEW with Wine-940309: (see ChangeLog for details)
|
|
- New "exclude" and "include" filters for spy feature. See sample
|
|
wine.ini for details.
|
|
- -desktop and -name options (see ChangeLog)
|
|
- GetFreeSpace() and CreateIcon()
|
|
- and many many bug fixes!
|
|
|
|
WHAT'S NEW with Wine-940301: (see ChangeLog for details)
|
|
- NEW Configure script to set compile time options!
|
|
- Support for filesystems with short (less than 14 chars) filenames.
|
|
- Clipboard functions!
|
|
- and more...
|
|
|
|
WHAT'S NEW with Wine-940223: (see ChangeLog for details)
|
|
- FreeBSD support
|
|
- FloodFill()
|
|
- Desktop window support
|
|
- Menu fixes
|
|
- and more...
|
|
|
|
WHAT'S NEW with Wine-940216: (see ChangeLog for details)
|
|
- Many many bug fixes
|
|
- Switched to using Imakefile's instead of Makefile's.
|
|
- Lot's of changes for libwine.a
|
|
|
|
WHAT'S NEW with Wine-940209: (see ChangeLog for details)
|
|
- Many many bug fixes
|
|
- Minor directory structure reorganization
|
|
- New GetModule*() functions.
|
|
- WINSOCK DLL
|
|
- First stab at Wine as a library
|
|
|
|
WHAT'S NEW with Wine-940201: (see ChangeLog for details)
|
|
- Support for huge data structures.
|
|
- FreeBSD support.
|
|
- Many many bug fixes
|
|
|
|
WHAT'S NEW with version 0.8: (see ChangeLog for details)
|
|
- Eliminated Xt-dependent code. Thanks to Alexandre and Martin.
|
|
- EnumWindows() and EnumChildWindows()
|
|
- Activating and deactivating of windows.
|
|
- More work on system menus.
|
|
|
|
WHAT'S NEW with version 0.7: (see ChangeLog for details)
|
|
- Eliminated Xt-dependent code. Thanks to Alexandre and Martin.
|
|
- Other bug fixes.
|
|
- IsWIndowEnabled() and EnableWindow() now implemented.
|
|
- New command line options.
|
|
|
|
WHAT'S NEW with version 0.6: (see ChangeLog for details)
|
|
- Working towards elimination of Xt-dependent code. Thanks to
|
|
Alexandre and Martin.
|
|
- Other bug fixes.
|
|
- I added a rudimentary spy facility which can be turned
|
|
on from the wine.ini file. See the sample wine.ini
|
|
for details
|
|
|
|
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.
|