MicroEMACS 3.11c for Windows, update 1.0            by Pierre Perret
========================================	      April 17, 1992         
Development notes

Files in this archive:
---------------------

README.SRC	    This file
MEWIN.MAK           Makefile to compile the executable using Borland C 3.0
BASIC.C         \
BIND.C          |
BUFFER.C        |
CHAR.C          |
CRYPT.C         |
DOLOCK.C        \
ELANG.H          |- MicroEMACS 3.11c unmodified source files
EPATH.H         /
EVAR.H          |
ISEARCH.C       |
LOCK.C          |
REGION.C        |
TAGS.C          /
DISPLAY.C       \
EBIND.H         |
EDEF.H          |
EFUNC.H         |
ENGLISH.H       |
EPROTO.H        |
ESTRUCT.H       |
EVAL.C          |
EXEC.C          \
FILE.C           |- modified MicroEMACS 3.11c source files
FILEIO.C        /
INPUT.C         |
LINE.C          |
MAIN.C          |
MOUSE.C         |
RANDOM.C        |   
SCREEN.C        |
SEARCH.C        |
WINDOW.C        |
WORD.C          /
MEWIN.DEF           linker definition file
MEWIN.RC            resouce main script file
MSWMENU.RC          menu script
MSWABOUT.DLG        about dialog box
MSWFILE.DLG         file dialog box
MSWFONTS.DLG        font dialog box
MSWMLH.DLG          message line history dialog box
MSWMODES.DLG        modes dialog box
MSWPRG.DLG          "waiting for other program" dialog box
MSWNOT.CUR          cursor for not-quiescent state
MSWCUR.CUR          pointing finger cursor
MSWAPP.ICO          application icon
MSWSCR.ICO          MDI child (screen) icon
MSWWAIT.ICO         icon for the "waiting for other program" dialog box
MSWMENU.H           menu IDs definitions
MSWRID.H            resource IDs definitions
MSWHELP.H           help contexts include file
MSWIN.H             main (all purpose) include file
MSWDISP.C           display handling module
MSWDRV.C            seen by the rest of the editor as the "display driver"
MSWEMACS.C          extra EMACS functions (clipboard and screen juggling)
MSWEXEC.C           code related to launching DOS sessions (or WinApps)
MSWFILE.C           file dialog box and current working directory management
MSWFONT.C           font initialization and dialog box
MSWINPUT.C          keyboard and mouse input handling
MSWMEM.C            suballocator replacing the standard malloc, free & realloc
MSWMENU.C           all the menu stuff (includes the menu binding functions)
MSWSYS.C            WinMain, message loop, window procs...

Remarks:
-------

This has been compiled by Borland C++ 3.0. If you hack at this source to
use another C compiler (there is no C++ in these sources), take the
following into consideration:

- This code has to be compiled in large model. Since, even in that
model, Borland C++ tries to generate a single Data Segment, it is still
possible to run multiple instances of MEWIN. Some other compilers tend to
generate multiple data segments in large model, thus creating
single-instance-only programs. Depending on the users' taste, this may
be a non-issue due to the availability of MDI screens..

- The "Windows Explicit Functions Exported" option of the Borland
compiler is used to reduce the size of the executable (the large
majority of the functions are FAR but do not require to be exported).
The exported functions are not listed in the DEF file as the Borland doc
says it would be incompatible with the use of that option.

- The Borland C++ 3.0 libraries provide a segment suballocator for the
malloc, realloc and free functions. Borland C++ 2.0 and other compilers
often supply only a simple segment allocator for those functions in
large model. Since the maximum number of segments allocated at any time
under Windows cannot exceed 8K (the number of entries in the selector
table), use of a suballocation mechanism is a must. The MSWMEM.C module
contains just that. The BETA version 0.7 of this program was compiled
with BC 2.0 and therefore used this module, so it has been tested.
However, I have encountered very rare occurences of UAEs that I believe
are caused by MSWMEM.C. The MSWIN.H module contains flags SUBALLOC and
MEMTRACE which should be set to 1 if you want to use malloc/realloc/free
from MSWMEM.C. MEMTRACE is not absolutely necessary but adds a trace of
the last 256 MSWMEM events. I had installed that to catch the UAE in the
act with the help of DrFrank (apost-mortem dump taker/analyzer)... The
thing has never reared its ugly head since then!

------------------------------------------------------------------------

Disclaimer and copyright:
------------------------

This program is supplied without waranties of any kind. Neither I
(Pierre Perret), nor the author and copyright owner of MicroEMACS
(Daniel M. Lawrence), can be held responsible or liable for any damage
caused by the use of this program.

In short: USE AT YOUR OWN RISK.

	(C)Copyright 1988, 1989, 1990, 1991, 1992 by Daniel M. Lawrence
	MicroEMACS 3.11 can be copied and distributed freely for any
	non-commercial purposes. Commercial users may use MicroEMACS
	3.11 inhouse. Shareware distributors may redistribute
	MicroEMACS 3.11 for media costs only. MicroEMACS 3.11 can only
	be incorporated into commercial software or resold with the
	permission of the current author:

		Daniel M. Lawrence
		617 New York St
		Lafayette, IN 47901

------------------------------------------------------------------------
