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