MicroEMACS 3.11c for MS-Windows, update 1.1 by Pierre Perret
=========================================== October 12, 1992
Copy the files from the executable distribution package (MEW11.ZIP for
Windows 3.1 or/and MEWN11.ZIP for Windows NT on i386) into the
directory where you want the program to reside. If you want to use the
MicroEMACS help file, copy it (MEWIN.HLP, from MEWH11.ZIP) in that same
Unlike previous version of MicroEMACS for Windows, update 1.1 can
operate entirely without any specific profile entry in the WIN.INI file.
On the other hand, if you want to deviate from the installation
recommended above, you may have to edit the WIN.INI file. For more
information on this, consult the "Profiles" topic (within the "Start-up"
chapter) in the MEWIN.HLP help file and copy/paste the relevant parts
from the EMACS.INI file.
After installation is complete, the EMACS.INI, PACKAGES.LST and README
files are no longer needed and can be deleted.
If you install both the Windows 3.x and Windows NT packages in the same
directory, note that the files that bear the same name in both packages
are exact duplicates.
This program can run under Windows 3.0 (retail version), 3.1 (retail or
debugging versions) or Windows NT. Because it contains references to
system DLL entries that are not present under Windows 3.0, it cannot run
under the debugging version of Windows 3.0. Further more, under Windows
3.0, there needs to be a Dynamic Link Library named SHELL.DLL lying
around for the loading of the program to complete.
The macro files EMACS.RC and MDI.CMD are setup for Super VGA displays
that can accomodate a text width of at least 100 character. If your
display is VGA-size (or a laptop screen), you can replace 80 by 75 in
the line (in MDI.CMD):
set %scrwidth 80
Also, delete or comment-out the line (in EMACS.RC):
and add the lines:
in your WIN.INI file.
The EMACS.RC, CUA.CMD, MDI.CMD and DEV.CMD macro files are made a part
of this package as example of how macros can be used to customize
MicroEMACS. A simple way to add your own macros is to put them in a file
called CUSTOM.CMD (this file, if it exists, is invoked by EMACS.RC).
As mentionned above, a help file (packaged in MEWH11.ZIP) is available
for this version of MicroEMACS for Windows.
The sources for this port are publicly available. They are packaged in a
file named MEWS11.ZIP. Also available but possibly less widely
distributed are the help file's RTF-format sources (in MEWR11.ZIP).
Other (non MS-Windows) versions of MicroEMACS normally comes with
documentation and a bunch of scripts (aka macros or "command files").
They are not supplied in this distribution package, but are available
separately. The files for release 3.11 are the ones you may want 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)
This program was originally born as a port of MicroEMACS to Windows 3.0
which was released as MEWIN 1.0 in April 1992, also with the full C
source, but without a help file.
Since then, a few intermediate updates (mainly 1.0b and 1.0e) have
been made public (without sources).
HOW TO REPORT PROBLEMS OR SUBMIT SUGGESTIONS
The prefered way to reach me to discuss about this program is through
CompuServe, in the WINADV 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
If you do not use CompuServe or BIX, but have Internet access, you can
exchange Internet mail with me by sending it to [email protected]
Other channels include:
(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.11c
editor should be reported to Dan Lawrence on the Programmer's Room BBS.
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...
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
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.
Contrary to CUA standards, selections are not highlited (this will
be implemented in a future version of the base MicroEMACS editor).
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 (called CUA-compliant).
The CUA.CMD 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)
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
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
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
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
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 VARIABLES:
These two boolean variables control the presence of scrollbars
(horizontal and vertical)
NEW MICROEMACS COMMANDS:
These commands allow shuffling of screens (aka MDI windows) from
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).
These supplement copy-region, kill-region and yank, but instead of
addressing the kill buffer, they address the Windows clipboard.
These functions allow dynamic modification of the menus. An example
of their use appears in the EMACS.RC sample start-up file.
This allows a macro to invoke the Windows Help engine. Look for
an example in the supplied EMACS.RC.
DRAG AND DROP SUPPORT:
The key sequence MS! is produced when files are dragged and dropped onto
MicroEMACS. It initially not associated to any command and should be
bound to a macro that handles the drag and drop action. In order for the
macro to acquire the files that were dropped, an invisible buffer named
"Dropped files" is filled with the following data:
first line: name of the screen on which the drop occured (or empty
line if the drop was not done on any screen)
other lines: pathnames, one per line, of the dropped files
In addition, the $xpos and $ypos variables are set to the coordinates
where the drop occured (or 255 if the drop was not done on any screen).
The MDI.CMD file contains a macro that handles file dropping.
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 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).
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
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,
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. A handy filename completion feature has been implemented as
well, with the addition of auto-scrolling of the filename list: if you
type only the beginning of a file name, up to a point were there is no
ambiguity, hitting the spacebar orders MicroEMACS to complete the
filename for you and OK the dialog.
The first four items in the Help menu load the MEWIN.HLP help file into
the Windows help engine. The information in that help file is fairly
exhaustive and, in particular, covers the MicroEMACS macro language in
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 only be incorporated into
commercial software or resold with the permission of the
Daniel M. Lawrence
617 New York St
Lafayette, IN 47901
Shareware distributors are hereby authorised to redistribute
version (1.1) of MicroEMACS for Windows.