MicroEMACS 3.11c for Windows, prerelease update 1.1    Pierre Perret
====================================================   October 12, 1992
Development notes

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

README.SRC	this file
MEWINB3.MAK     Makefile for Borland C 3.0 (generates debug info)
MEWINMS.MAK     Makefile for MSC 7.0 (for both Win 3.x and Windows NT)
BASIC.C         \
BIND.C          |
BUFFER.C        |
CHAR.C          |
CRYPT.C         \
ELANG.H          | MicroEMACS unmodified 3.11c source files
ISEARCH.C       /
LOCK.C          |
REGION.C        |
TAGS.C          /
DISPLAY.C       \
DOLOCK.C        |
EBIND.H         |
EDEF.H          |
EFUNC.H         |
ENGLISH.H       |
EPATH.H         |
EPROTO.H        |
ESTRUCT.H       |
EVAL.C          |
EVAR.H          |
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 source file
MSWMENU.RC          menu resource
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
MSWGRIN1.CUR        \
    to               |  components of the animated grinder cursor
MSWGRIN8.CUR        /
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, screen juggling, drag'n drop)
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 and MSC 7.0, not by Borland
C++ 3.1 (It may very well work, but I do not have that version). Borland
C++ 2.0 lacks a library function "_fullpath" used by MSWFILE.C.

- If you want to compile this code but do not have a Windows 3.1 SDK (or
Borland C++ 3.1, or Windows NT), you need to set the #define WIN30SDK to
1 in MSWIN.H. This will remove a few features (notably drag'n drop) but
makes the sources compatible with the 3.0 WINDOWS.H.

- This code has to be compiled in large model. Since, even in that
model, Borland C++ and MSC 7.0 can generate a single Data Segment, it is
still possible to run multiple instances of MEWIN. The other compilers
may 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 MDI availability..

- For Windows 3.x, the Borland C++ 3.0 and MSC 7.0 libraries provide a
segment suballocator for the malloc, realloc and free functions. Other
compilers often supply 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. A previous BETA 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 (a UAE dump taker/analyzer)... The thing has
never reared its ugly head since then!

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

Enjoy...

		Pierre Perret

