Release 940524
[wine] / README
1 0. LICENSE
2
3 You may without charge, royalty or other payment, copy and
4 distribute copies of this work and derivative works of this work
5 in source or binary form provided that: (1) 
6 you appropriately publish on each copy an appropriate copyright
7 notice; (2) faithfully reproduce all prior copyright notices
8 included in the original work (you may also add your own
9 copyright notice); and (3) agree to indemnify and hold all prior
10 authors, copyright holders and licensors of the work harmless
11 from and against all damages arising from use of the work.
12
13 You may distribute sources of derivative works of the work
14 provided that (1) (a) all source files of the original work that
15 have been modified, (b) all source files of the derivative work
16 that contain any party of the original work, and (c) all source
17 files of the derivative work that are necessary to compile, link
18 and run the derivative work without unresolved external calls and
19 with the same functionality of the original work ("Necessary
20 Sources") carry a prominent notice explaining the nature and date
21 of the modification and/or creation.  You are encouraged to make
22 the Necessary Sources available under this license in order to
23 further the development and acceptance of the work.
24
25 EXCEPT AS OTHERWISE RESTRICTED BY LAW, THIS WORK IS PROVIDED
26 WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES OF ANY KIND, INCLUDING
27 BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF FITNESS FOR A
28 PARTICULAR PURPOSE, MERCHANTABILITY OR TITLE.  EXCEPT AS
29 OTHERWISE PROVIDED BY LAW, NO AUTHOR, COPYRIGHT HOLDER OR
30 LICENSOR SHALL BE LIABLE TO YOU FOR DAMAGES OF ANY KIND, EVEN IF
31 ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
32
33 1. COMPILATION:
34
35 You must have one of:
36
37         Linux version 0.99.13 or above
38         NetBSD-current
39         FreeBSD-current or FreeBSD 1.1
40
41 To build Wine, first do a "./Configure" and then a "make".  The
42 executable "wine" will be built.  "wine" will load and run 16-bit
43 Windows' executables. 
44
45
46
47 2. SETUP:
48
49 Wine requires you to have a file /usr/local/etc/wine.conf (you can
50 supply a different name when configuring wine) or a file called .winerc
51 in your homedirectory.
52
53 The formatstyle of this config file is just like a windows .ini file.
54
55 Here's an explanation of each section:
56
57 * [drives]
58
59 format: <driveletter> = <rootdirectory>
60 default: none
61
62 This section is used to specify the root directory of each `dos'drive 
63 as windows' applications require a dos/mswindows based diskdrive & 
64 directory scheme. 
65
66 If you mounted you dos-partition as /dos and installed microsoft windows 
67 in c:\windows than you should specify c=/dos in the drives section.
68
69 * [wine]
70
71 format: windows = <directory>
72 default: c:\windows
73
74 Used to specify an different windows directory.
75
76 format: system = <directory>
77 default: c:\windows\system
78
79 Used to specify an different system directory.
80
81 format: temp = <directory>
82 default: c:\temp
83
84 Used to specify a directory where windows applications can store temporary
85 files.
86
87 format: path = <directories separated by semi-colons>
88 default: c:\windows;c:\windows\system
89
90 Used to specify the path which will be used to find executables and DLL's.
91
92 format: systemresources = <filename>
93 default: c:\temp
94
95 Used to specify the name of sysres.dll, a dll which is used by wine itself.
96
97 * [serialports]
98
99 format: com[12345678] = <devicename>
100 default: none
101
102 Used to specify the devices which are used as com1 - com8.
103
104 * [parallelports]
105
106 format: lpt[12345678] = <devicename>
107 default: none
108
109 Used to specify the devices which are used as lpt1 - lpt8.
110
111 * [spy]
112
113 format: file = <filename or CON when logging to stdout>
114 default: none
115
116 used to specify the file which will be used as logfile.
117
118 format: exclude = <message names separated by semicolons>
119 default: none
120
121 Used to specify which messages will be excluded from the logfile.
122
123 format: include = <message names separated by semicolons>
124 default: none
125
126 Used to specify which messages will be included in the logfile.
127
128
129
130 3. RUNNING PROGRAMS
131
132 When invoking wine, you must specify the entire path to the executable,
133 or a filename only.
134
135 For example: to run Windows' solitaire:
136
137         wine sol                   (using the searchpath to locate the file)
138         wine sol.exe
139
140         wine c:\\windows\\sol.exe  (using a dosfilename)
141
142         wine /usr/windows/sol.exe  (using a unixfilename)
143
144 note: the path of the file will also be added to the path when
145       a full name is supplied on the commandline.
146
147 Have a nice game of solitaire, but be careful.  Emulation isn't perfect.
148 So, occassionally it will crash.
149
150
151
152 4. EXAMPLE CONFIGFILE
153
154 ----------------------------------------------------------------------------
155 [drives]
156 a=/mnt/fd0
157 c=/dos
158 d=~/Wine
159
160 [wine]
161 windows=c:\windows
162 system=c:\windows\system
163 temp=c:\temp
164 path=c:\windows;c:\windows\system;c:\winapps\word\;c:\winapps\pctools
165 systemresources=./sysres.dll
166
167 [serialports]
168 com1=/dev/cua1
169 com2=/dev/cua1
170
171 [parallelports]
172 lpt1=/dev/lp0
173
174 [spy]
175 ;File=CON
176 ;File=spy.log
177 Exclude=WM_TIMER;WM_SETCURSOR;WM_MOUSEMOVE;WM_NCHITTEST;WM_NCACTIVATE;WM_GETDLGCODE;
178 Include=WM_COMMAND;
179
180 ----------------------------------------------------------------------------
181
182
183 5. BUILD:
184
185     The documentation for the build program is in the file build-spec.txt
186
187
188 6. FINALE:
189
190 Good luck,
191
192         If you successfully add anything, please send me a copy.
193
194 Bob Amstadt
195 bob@amscons.com
196
197
198 7. WHAT'S NEW
199
200 WHAT'S NEW with Wine-940524: (see ChangeLog for details)
201         - New menu functions
202         - EnumObjects()
203         - and many many bug fixes!
204
205 WHAT'S NEW with Wine-940518: (see ChangeLog for details)
206         - debugger improvements
207         - bug fixes to get some dialog boxes working.
208         - skeleton for passing MCI functions.
209         - beginnings of metafile support.
210         - and many many bug fixes!
211
212 WHAT'S NEW with Wine-940510: (see ChangeLog for details)
213         - debugger improvements
214         - mmsystem
215         - ShellAbout() and AboutDlgProc()
216         - and many many bug fixes!
217
218 WHAT'S NEW with Wine-940505: (see ChangeLog for details)
219         - faster color_stretch()
220         - SetSysMenu(), GetCursor(), GetDesktopWindow()
221         - WSAGetXbyY() now non-blocking 
222         - and many many bug fixes!
223
224 WHAT'S NEW with Wine-940420: (see ChangeLog for details)
225         - new property functions
226         - new listbox and combo box functions
227         - GrayString() and CallGrayStringProc()
228         - and many many bug fixes!
229
230 WHAT'S NEW with Wine-940412: (see ChangeLog for details)
231         - menuing improvements
232         - drawing performance improvements
233         - beginnings of hooks
234         - MDI maximizing and tiling
235         - improvements in winsock implementation
236         - and many many bug fixes!
237
238 WHAT'S NEW with Wine-940405: (see ChangeLog for details)
239         - Mouse activation of menus working again
240         - GetprocAddress()
241         - SetDIBitsToDevice()
242         - FindWindow()
243         - int 10hm 25h and 26h
244         - in, inb, out, outb emulation
245         - and many many bug fixes!
246
247 WHAT'S NEW with Wine-940329: (see ChangeLog for details)
248         - MDI: child windows can be created, activated and cascaded.
249         - -depth option
250         - support for dithered brushes
251         - GetNearestColor(), RealizeDefaultPalette(), 
252           GetSystemPaletteEntries(), and SelectPalette()
253         - System colors read from WIN.INI
254         - Keyboard menu manipulation (mouse is temporarily broken)
255         - GetFreeSystemResources()
256         - and many many bug fixes!
257
258 WHAT'S NEW with Wine-940322: (see ChangeLog for details)
259         - Speed improvements in bitmaps and mouse messages
260         - More MDI support.  More to come next week...
261         - and many many bug fixes!
262
263 WHAT'S NEW with Wine-940315: (see ChangeLog for details)
264         - Beginnings of MDI support.  More to come next week...
265         - Stress DLL
266         - and many many bug fixes!
267
268 WHAT'S NEW with Wine-940309: (see ChangeLog for details)
269         - New "exclude" and "include" filters for spy feature.  See sample
270           wine.ini for details.
271         - -desktop and -name options (see ChangeLog)
272         - GetFreeSpace() and CreateIcon()
273         - and many many bug fixes!
274
275 WHAT'S NEW with Wine-940301: (see ChangeLog for details)
276         - NEW Configure script to set compile time options!
277         - Support for filesystems with short (less than 14 chars) filenames.
278         - Clipboard functions!
279         - and more...
280
281 WHAT'S NEW with Wine-940223: (see ChangeLog for details)
282         - FreeBSD support
283         - FloodFill()
284         - Desktop window support
285         - Menu fixes
286         - and more...
287
288 WHAT'S NEW with Wine-940216: (see ChangeLog for details)
289         - Many many bug fixes
290         - Switched to using Imakefile's instead of Makefile's.
291         - Lot's of changes for libwine.a
292
293 WHAT'S NEW with Wine-940209: (see ChangeLog for details)
294         - Many many bug fixes
295         - Minor directory structure reorganization
296         - New GetModule*() functions.
297         - WINSOCK DLL
298         - First stab at Wine as a library
299
300 WHAT'S NEW with Wine-940201: (see ChangeLog for details)
301         - Support for huge data structures.
302         - FreeBSD support.
303         - Many many bug fixes
304
305 WHAT'S NEW with version 0.8: (see ChangeLog for details)
306         - Eliminated Xt-dependent code.  Thanks to Alexandre and Martin.
307         - EnumWindows() and EnumChildWindows()
308         - Activating and deactivating of windows.
309         - More work on system menus.
310
311 WHAT'S NEW with version 0.7: (see ChangeLog for details)
312         - Eliminated Xt-dependent code.  Thanks to Alexandre and Martin.
313         - Other bug fixes.
314         - IsWIndowEnabled() and EnableWindow() now implemented.
315         - New command line options.
316
317 WHAT'S NEW with version 0.6: (see ChangeLog for details)
318         - Working towards elimination of Xt-dependent code.  Thanks to
319           Alexandre and Martin.
320         - Other bug fixes.
321         - I added a rudimentary spy facility which can be turned
322           on from the wine.ini file.  See the sample wine.ini
323           for details
324
325 WHAT'S NEW with version 0.5: (see ChangeLog for details)
326         - Working towards elimination of Xt-dependent code.
327         - StretchBlt()
328         - GetClassName() & GetClassInfo()
329         - Implemented loader relocation types 5 and 6.
330
331 WHAT'S NEW with version 0.4.14: (see ChangeLog for details)
332         - Bug fixes and enhancements
333         - Comm functions
334         - Text caret functions
335
336 WHAT'S NEW with version 0.4.13: (see ChangeLog for details)
337         - Bug fixes
338         - GetCapture()
339         - More keyboard handling
340         - Polyline() and Polygon()
341
342 WHAT'S NEW with version 0.4.12: (see ChangeLog for details)
343         - Bug fixes
344         - New DOS file functions
345         - Experimental Imakefiles
346
347 WHAT'S NEW with version 0.4.11: (see ChangeLog for details)
348         - Bug fixes
349         - New cursor functions
350         - New file system handling
351         - Atoms
352
353 WHAT'S NEW with version 0.4.10: (see ChangeLog for details)
354         - Bug fixes
355         - More scroll bar functions
356         - More icon and cursor handling
357
358 WHAT'S NEW with version 0.4.9: (see ChangeLog for details)
359         - Bug fixes
360         - real MessageBox()
361         - New resource functions
362         - Icon functions
363         - Selector manipulation functions
364         - Catch()/Throw()
365
366 WHAT'S NEW with version 0.4.7: (see ChangeLog for details)
367         - More dialog box functions
368         - More DOS interrupts
369         - NetBSD compatibility patches
370
371 WHAT'S NEW with version 0.4.5: (see ChangeLog for details)
372         - Bug fixes
373         - focus routines
374         - dialog box functions
375         - improvements to control windows
376
377 WHAT'S NEW with version 0.4.4: (see ChangeLog for details)
378         - Bug fixes
379         - New static control class
380         - Preliminary listbox, combobox and scrollbar controls
381         - System initialization file is now called "wine.ini", and
382           may be located in the user's current directory, the
383           user's home directory or any directory specified by
384           the WINEPATH environment variable.
385         - The loader now searches the directories specified by the
386           WINEPATH environment variable for programs and DLLs.
387         - Internal debugger now works on 386BSD.
388
389 WHAT'S NEW with version 0.4.3: (see ChangeLog for details)
390         - Bug fixes
391         - Resource loading now able to load DLL resources
392         - Button control now based on GDI calls
393         - Preliminary system color support
394         - Miscellaneous window functions
395         - Limited debugging facility (sometimes hangs)
396
397 WHAT'S NEW with version 0.4.2: (see ChangeLog for details)
398         - Bug fixes
399         - 32-bit callback functions allowed
400         - .INI file handling
401         - lstr* functions and ANSI<->OEM conversion functions.
402
403 WHAT'S NEW with version 0.4.1: (see ChangeLog for details)
404         - Bug fixes
405         - Memory usage changes.
406
407 WHAT'S NEW with version 0.4.0: (see ChangeLog for details)
408         - Wine now compiles and runs under NetBSD.  Patches are
409           required for NetBSD.
410         - Wine stat patches included.  Add "-DWINESTAT" to the definition
411           of COPTS in the main Makefile to activate.
412         - Preliminary keyboard handling.
413         - Button control window implemented.
414         - many other new functions added.
415
416 WHAT'S NEW with version 0.3.1: (see ChangeLog for details)
417         - LineDDA() completed
418         - numerous bug fixes
419         - INT 1Ah implemented
420         - SOUND DLL implemented
421         - More of WIN87EM DLL implemented
422         - OpenFile() and friends implemented
423
424 WHAT'S NEW with version 0.3.0: (see ChangeLog for details)
425         - Mouse capture
426         - Text justification and underlining
427         - Clipping
428         - LoadBitmap() completed
429         - Code generated by the Borland compiler should now work
430
431 WHAT'S NEW with version 0.2.8: (see ChangeLog for details)
432         - Text functions from Alexandre
433         - INT 21h from Eric
434         - Menu improvements from David
435         - Bug fixes and GetProcAddress() stub from me
436
437 WHAT'S NEW with version 0.2.7: (see ChangeLog for details)
438     - sol.exe gets further.  I did some debugging and now solitaire
439       stops when it tries to call GetTextExtent().  Any volunteers?
440     - Many DC updates from Alexandre.
441     - Menu updates to support underlining characters from David Metcalfe.
442
443 WHAT'S NEW with version 0.2.6: (see ChangeLog for details)
444     - More region updates from Alexandre
445
446 WHAT'S NEW with version 0.2.5: (see ChangeLog for details)
447     - Regions implemented by Alexandre
448     - More menuing code from me
449
450 WHAT'S NEW with version 0.2.4: (see ChangeLog for details)
451     - Many improvements to GDI from Alexandre
452     - Many improvements to menu handling by me.
453
454 WHAT'S NEW with version 0.2.3: (see ChangeLog for details)
455     - Bug fixes with SendMessage() and PostMessage()
456     - Preliminary menu support
457
458 WHAT'S NEW with version 0.2.2: (see ChangeLog for details)
459     - Misc bug fixes
460     - More bitmap code
461     - Timers
462     - Memory DC's
463
464 WHAT'S NEW with version 0.2.1:
465     - I have placed things into sub-directories.  The organization is
466       not finalized.  I imagine that the directory structure will
467       change as is necessary.  Files in the ./misc directory need
468       to be split apart and placed in apropriate directories.
469     - Tons of code from Alexandre.  He has constructed the framework
470       for handling GDI objects.  He has also provided code for DCEs.
471     - Local heap functions have been completed.
472     - Bug fixes in global.c and win.c
473     - New function GlobalQuickAlloc() combines GlobalAlloc() and
474       GlobalLock() into a single function call.
475     - New patch kit for Linux 0.99 pl11 kernel.  Thanks to Linus
476       who has graciously included our patches into the ALPHA patch
477       release cycle.
478
479 WHAT'S NEW with version 0.2.0:
480     - Alexandre Julliard has provided a replacement for the Tcl code.
481       The new code uses Xlib and Xt directly with no intervening
482       interpretted language.  This should reduce the learning
483       curve for casual hackers.
484     - I changed all GLOBAL_ names to Global.
485
486 WHAT'S NEW with version 0.1.1:
487     - I have completed global memory allocation, but I don't like it.
488       It is not 100% compatible with Windows.  I need some more kernel
489       modifications for 100% compatibility.
490     - Alexandre Julliard has provided written better emulation for
491       the Windows message queue.
492
493 WHAT'S NEW with version 0.1.0:
494     - Latest patches from Alexandre Julliard.
495     - minor bug fix in if1632.S
496
497 WHAT'S NEW with version 0.0.5:
498     - Patches from Alexandre Julliard.  Some integration with Tcl.
499     - Generic interface for callback procedures.  This will allow
500       callbacks into DLLs.
501     - MakeProcInstance() has been implemented but untested.
502
503 WHAT'S NEW with version 0.0.4:
504     - Eric Youngdale modified wine.c and selector.c to allow loading
505       of Windows DLLs.
506     - Added global memory allocation routines (GlobalAlloc, GlobalFree,
507       and GlobalLock)
508     - Bitmap resource loading into global memory.
509
510 WHAT'S NEW with version 0.0.3:
511     - Fixed bug with sector sizes.
512     - Registers at program startup are now set correctly.
513     - Segment fixups for relocatable-segment internal entry points.
514     - Fixed bug in DOS PSP structure.
515     - Some resource loading is done.
516     - Added "return" ordinal type to build program.
517     - Added comment capability to build program.
518
519 WHAT'S NEW with version 0.0.2:
520
521     - Again thanks to Eric Youngdale for some very useful comments.
522     - The Windows startup code created by Micrsoft C 7.0 now runs 
523       to completion.
524     - Added a new patch to the kernel to increase the usable size of
525       the ldt to the full 32 entries currently allowed.
526     - Imported name relocations are now supported.
527     - Source code for my infamous test program is now included.
528     - A handful of basic Windows functions are now emulated.  See
529       "kernel.spec" for examples of how to use the build program.
530
531 WHAT'S NEW with version 0.0.1:
532
533     - Eric Youngdale contributed countless improvements in memory
534       efficiency, bug fixes, and relocation.
535     - The build program has been completed.  It now lets you specify
536       how the main DLL entry point should interface to your emulation
537       library routines.  A brief description of how to build these
538       specifications is included in the file "build-spec.txt".
539     - The code to dispatch builtin DLL calls is complete, but untested.