MicroEMACS 3.11c for Windows NT, pre-release update 1.0b    by Pierre Perret
========================================================    July 5, 1992

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

README		this file
MEWINNT.EXE	MS-Windows executable
EMACS.RC	sample start-up macro tailored for the Windows environment
EMACS.MDI       macro file for those who like to have one file per screen
EMACS.CUA       macro file for CUA-like mouse and keyboard behaviour
EMACS.INI	EMACS-related information to be put into WIN.INI
MEWIN.HLP       WinHelp file (not complete yet) for MicroEMACS

INSTALLATION
------------

Put the EMACS.RC, EMACS.MDI and EMACS.CUA files in the same directory as
MEWINNT.EXE (this directory does not need to be mentionned in the PATH).
Copy the contents of EMACS.INI into your WIN.INI file and edit them (the
only profile that must be edited is HelpFile). Once its contents have
been copied into WIN.INI, EMACS.INI is no longer needed.

EMACS.RC and EMACS.MDI are setup for VGA. If your display can accomodate
a text width of at least 100 character, you can replace 77 by 80 in the
line:
    set %scrwidth 77
in EMACS.MDI, uncomment the line:
    100  change-screen-width
in EMACS.RC and comment-out the line:
    InitialSize=optimized
in WIN.INI, within the [MicroEMACS] section.

OTHER FILES:
-----------

MicroEMACS normally comes with documentation and a bunch of scripts (aka
macros or "command files"). They are not supplied in this archive, but
are available separately. The files for release 3.11 are the ones you
need and they are available from a number of sources, including:

- COMPUSERVE, forum IBMAPP, library 1 for the executables (UE311I.EXE),
  official 3.11 release readme file (UE311.TXT), reference manual
  (UE311D.ZIP) and  macros (UE311M.ZIP). forum IBMPRO, library 3 for the
  official 3.11 sources (UE311C.ZIP, UE311H.ZIP and UE311K.ZIP).

- BIX, in the editors conference's listing area.

- various Internet hosts among which wuarchive and simtel20.

- The Programmer's Room BBS (see below)

The sources for this port are not publicly available yet. They will be
released with version 1.1 (at the end of the summer 1992).

WINDOWS 3.X VERSION
-------------------

This program is actually born as a port of MicroEMACS to Windows 3.0
which was released as MEWIN 1.0 in April 1992 with the full C source.
These files can be downloaded from:

- COMPUSERVE, forum WINADV

- Internet ftp.cica.indiana.edu, in the pub/pc/win3/util directory

- The Programmer's Room BBS

Aside from the porting to the WIN32 API, there is little difference of
functionnality between the two versions 1.0 and 1.0b (minor bug fixes).

HOW TO REPORT PROBLEMS OR SUBMIT SUGGESTIONS
--------------------------------------------

The prefered way to reach me to discuss about this program is through
CompuServe, in the MSWIN32 forum or on BIX in the editors conference, in
the emacs topic. My CompuServe ID is 73757,2337 and my BIX Id is
pierre_perret. You can also send Email directly to those accounts, but
forum/conference transactions have the advantage of being viewable by
others.

If you do not use CompuServe or BIX, but have Internet access, you can
exchange Internet mail with me by sending it to P.Perret@az05.bull.com

Other channels include:

- Phone:
    (602) 862-5448 at my office (9am - 5pm)
    (Note: hours given for Mountain Standard Time, no daylight savings)

- US mail:  Pierre Perret
	    4326 W Michigan Avenue
	    Glendale Az 85308

- The Programmer's Room BBS at (317) 742-5533 (300/1200/2400 and 9600
  [Hayes V series only], no parity, 8 databits, no stop bits). However,
  since this is a long distance call for me, I do not check-in very often.
  I am registered under my real name (Pierre Perret).

Please note that I am the author of this Windows port, not the author of
MicroEMACS itself. Problems that also occur with the standard 3.11
editor should be reported to Dan Lawrence on the Programmer's Room BBS.

USAGE NOTES
-----------

In doing this port, I have tried to preserve as much as possible the
MicroEMACS way of doing things, for the sake of minimizing changes in
the editor core...

VOCABULARY:

MicroEMACS calls "screens" what really should be called "MDI windows"
and calls "windows" what should be called "panes". Changing those
definitions in the Windows implementation would impact all the commands
that deal with "screens" and "windows" and would therefore break most
macros.

INPUT TO THE MESSAGE LINE:

Depending on the particular command that requested such input,
MicroEMACS implements varying character handling methods that are
definitely not CUA-compliant.

TEXT SELECTION:

Contrary to CUA standards, selections are not highlited (this will
be implemented in a future version of the base MicroEMACS editor).

MOUSE HANDLING:

Due to its mainframe heritage, and also it's capability to redefine
mouse behavior by macros, Emacs' mouse handling differs significantly
from that of other Windows applications (CUA-compliant ones):

- Emacs's notion of a double click is completely unrelated to the time
elapsed between two clicks. A double click is considered such if the
caret is at the same screen coordinates on both clicks.

- dragging with the left button pressed does not select text, it drags
the text across the viewport, horizontally or vertically.

- dragging with the right button pressed selects the text and:
 1) makes it a "region"
 2) copies it to the "kill buffer"
 3) if a double click occurs at the end of the drag, the selected region
    is deleted

- clicking with the right button (without dragging) inserts the contents
of the kill buffer at that location.

The EMACS.CUA file included with this package, loaded by the included
EMACS.RC, contains macros that modify the standard MicroEMACS mouse
bindings to provide a CUA-like interface.

CURRENT WORKING DIRECTORY:

The current working directory and selected drive is always set to the
file path associated with the current "window". If that path is not an
absolute one, it is dependant upon the previously visited directory
paths (including the directory field that appeared in a file dialog box,
even if the operation was cancelled).

FEATURES OF THIS WINDOWS PORT (over what is standard in MicroEMACS 3.11c)
-----------------------------

MENUS:

I have put most of the functions available in MicroEMACS into a set of
menus (some with nested popups). There are a few MicroEMACS functions
that would not make much sense in a menu and have therefore been
excluded. A few menu items have no equivalent function in the MicroEMACS
macro language.
In addition to the standard Windows convention of appending an ellipsis
to menus items that beget a dialog box, I have used the following: a
colon is appended to menus items that require a user response on the
message line and an equal sign is inserted in front of items that
require an argument to have been entered (by META + digits).

Key bindings are displayed in the menus, using the Windows format for
key descriptions instead of the MicroEMACS format (which, for some
function keys, can be quite cryptic).

Some menu items may appear grayed if the context is such that they are
unuseable.

ALT KEY HANDLING:

In Windows applications, the Alt key can be used in combination with a
letter or digit to pull down a menu from the menu bar. In MicroEMACS,
bindings have the priority over those menu bar accelerators. Thus, if
there is a conflict between a menu-bar accelerator and an emacs binding,
the accelerator looses. On the other hand, trying to create a new
binding interactively by simply invoking bind-to-key or macro-to-key
will not be possible if the desired binding matches a menu-bar
accelerator.
Note that a menu can still be invoked from the keyboard, even when the
accelerator conflict with a binding, by pressing AND releasing the Alt
key and THEN hitting the accelerator character.

"NOT QUIESCENT" STATE:

If a macro is executing, most menu selections cannot be processed (the
editor is said to be in the "not quiescent" state) because a lot of
MicroEMACS functions are not quite reentrant. This is reflected by a
change of the mouse cursor from a pointing finger to a color-inverting
arrow.

$SRES VARIABLE:

To allow Windows-aware macros, the $sres is set to "MSWIN" and cannot
be modified (trying to set it has no effect, but it returns no error).

NEW MICROEMACS COMMANDS:

tile-screens
cascade-screens
minimize-screen
maximize-screen

    These commands allow shuffling of screens (aka MDI windows) from
    EMACS macros.

rename-screen

    This one allows you to change the name of the current screen (that
    type of command is not of much use under the other versions of EMACS
    since screen names are rarely displayed).

clip-region
cut-region
insert-clip

    These supplement copy-region, kill-region and yank, but instead of
    addressing the kill buffer, they address the Windows clipboard.

bind-to-menu
macro-to-menu
unbind-menu

    These functions allow dynamic modification of the menus. An example
    of their use appears in the EMACS.RC sample start-up file.

help-engine

    This allows a macro to invoke the Windows Help engine. Look for
    an example in the supplied EMACS.RC.

LONG OPERATIONS:

When performing long operations (macros with loops, searches, file
IOs...), MicroEMACS checks for user input regularly (see the TimeSlice
profile value in EMACS.INI): during these periods, a few menu options
are still available, among which quitting (Exit in File menu or Close in
system menu). Note that if the user attempts to quit while a file is
being written out, a confirmation is required (the same happens if there
are changed buffers).

MicroEMACS cannot ignore typeahead while a lengthy operation is in
process. One particular side effect of this is that if you do a ^X^F
(find-file) followed by <name_of_file><RC> while a lengthy operation is
going on, MicroEMACS absorbs those keystrokes and has to refeed them
into the "Find file" dialog box when it eventually pops up. I have
implemented a mechanism for dealing with this, but it handles only
simple ASCII characters and just throws away any other keystroke (for
instance, arrow keys are not forwarded to the dialog box).

FONTS:

The Font item in the Screen menu brings up a dialog box that allows the
user to select a fixed font to be used. This font description can be
saved in WIN.INI so that subsequent invokations of MicroEMACS use it at
startup.

LOCAL AND GLOBAL MODES:

The Mode and Global mode items of the File menu bring up dialog boxes
that offer a user-friendly way of setting the CMODE, VIEW, EXACT, MAGIC,
etc... modes.

FILE DIALOG BOX:

Instead of using a message line interface with attempted completion of
file names, this program pops up a dialog box whenever a filename has to
be supplied by the user. This is an attempt at CUA compliance. It also
has the side effect of supplying the editor with fully qualified
pathnames. The handy filename completion feature has been implemented as
well, with the addition of auto-scrolling of the filename list.

Note that the above-mentionned features are the reasons why this program
does not boast a standard file dialog yet. I will probably have it
implemented for version 1.1.

HELP SYSTEM:

The first four items in the Help menu are intended to load the MEWIN.HLP
help file into the Windows help engine. Building this file has been a
major undertaking that, I must admit, I had underestimated (never done
any hypertext documents before). At this time, it is still incomplete
and a number of the MicroEMACS command descriptions are missing.

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

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. MicroEMACS 3.11 can onlybe incorporated into
        commercial software or resold with thepermission of the
        current author:

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

        Shareware distributors may not redistribute this pre-release
        version (1.0b) of MicroEMACS for Windows NT.

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