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