                Documentation for EPM update and macro support.
                ===============================================
 
What is EPM?
------------
 
The EPM editor is actually a simple application built on top of a very
powerful editor toolkit.  EPM is programmable at a number of levels.
The simplest way to configure EPM is from the Options menu; a number
of features are pre-configured with support for multiple ways of doing
things and to allow the specific method to be chosen dynamically and saved.
(E.g., advanced marking mode or the simple CUA-style; Enter keys can be
configured any one of 6 ways (in line mode), etc.)  (Note:  by default,
EPM 6 has a different menu layout than 5.51, and has no Options menu.
Most of the things configurable via the Options menu in 5.51 have been
moved into the Settings dialog in 6.0x.)  The next level is writing
Rexx macros.  This lets you do some fairly powerful things, but to
take complete advantage of the editor, you have to go to a lower level.
E macros are compiled into .ex files, which are interpreted at run time.
You can control the macros at two levels.  One is by creating a MYCNF.E
and setting flags in it which controls which of the various features
we've already written are included in the .ex files; the second is to
actually write your own macros.  The configuration flags are described in
the User's Guide - enter the command VIEW EPMUSERS to see the User's
Guide, or VIEW EPMUSERS SUMMARY to see a summary of the configuration
constants.  You can also select these on EPM 6's Help menu.  The macro
language is defined and described in the EPM Macro Programmer's Technical
Reference - enter VIEW EPMTECH to see it.  Also, looking through the
existing macros is a good way to become familiar with the language -
particularly if you have any Rexx experience.  (Starting with EPM 6,
macros can be written in C as well.  See EPMCSAMP.ZIP.)
 
EPM can also be controlled via DDE (Dynamic Data Exchange); this is how
we interact with the Workframe/2 product.  Finally, users can use the
E Toolkit to embed one or more E-MLE's (Enhanced Multi-line Edit Controls)
within their own application.  See the package ETKBBS for sample E Toolkit
programs.
 
 
Historical note.
----------------
 
The EPMBBS package was first released when EPM 5.50 was the OS/2 Enhanced
Editor.  Besides providing documentation and macro support to users, it
enabled OS/2 2.0 users to upgrade to EPM version 5.51.  Later versions of
OS/2 shipped with 5.51, so there seems to no longer be a need to include
EPM 5.51 in this package.  A previous version of this package also
included EPMWRP.ZIP, which was EPM 5.51 linked specially for OS/2 Warp;
it gave better performance on Warp, but would not run on earlier versions
of OS/2.  Since that ships with Warp, there's no point in including it
here.  (If you want it and don't have it, do a selective install from
your Warp distribution.)  The only 5.51-specific piece of code included
here is the 5.51 macro compiler, for those who have not yet upgraded (or
for those using OS/2 1.3; EPM 6 requires OS/2 2.x).
 
We consider EPM 5.x to be "dead"; EPM 6 is very much superior.  If you
start EPM, press F1, select "EPM Features", and page down to the bottom
half of the help text, you'll get a partial list of the new features in
EPM 6.
 
 
What is included here?
----------------------
 
This package consists of a number of sets of files.  You have the option
of replacing your current Enhanced Editor (EPM 5.5x) with EPM 6, or
adding EPM 6 to your system so that you can use either version.  If you
elect to replace the current EPM, then you can unpack EPMAPP.ZIP into
your \os2\apps directory, and you can erase the ETKE55?.DLL and
ETKR55?.DLL from your \os2\apps\dll directory.  If you would rather keep
both versions, then you can unpack EPMAPP.ZIP into a new directory and
either run EPM 6 from there, or ensure that your PATH includes that
directory before \os2\apps when running EPM 6.  Your EPMPATH should
have \os2\apps *before* the EPM 6 directory, since EPM 6 will skip over
5.51's *.ex files while attempting to find a usable .ex file, while 5.51
stops with the first *.ex file found.
 
The contents of the files in this package are as follows.  You do not need
to download or unpack all of them.
 
EPMAPP.ZIP - Unpack into \os2\apps, or as described above
   EPM.EXE     - The 6.x version of the editor
   ETPM.EXE    - The 6.x version of the macro compiler
   PMMORE.EXE  - Useful for debugging Rexx macros; entering RXSHELL from
                 EPM will start PMMORE and redirect STDOUT to this window.
                 SAY and TRACE output will be displayed there.
   *.EX        - the 6.x version of the compiled macros
   ACTIONS.LST - A list of toolbar "actions" files.
   EPMHELP.QHL - the updated "quick help" file
   EPMTECH.NDX - An index file for getting macro programmer help.
   *.BMP       - Extra bitmaps for the toolbar.
   EPMKWDS.*   - Keyword highlighting definitions for various programming
               - and markup languages.
   *.BAR       - Sample toolbars that can be loaded.
   EPM603.ICO  - A much nicer icon than the one Boca provided.
   README.EPM  - Read me]  News, change history, etc.
 
EPMBK.ZIP - Unpack into a directory in your BOOKSHELF setting
   EPMUSERS.INF - The EPM User's Guide
   EPMTECH.INF  - The EPM Macro Programmer's Technical Reference
 
EPMDLL.ZIP - Unpack into \os2\apps\dll or a directory in your LIBPATH
   ETK*6xx.DLL - The E Toolkit DLLs.
   ETKUCMS.DLL - User Configurable Menu (toolbar) support.
 
EPMMAC.ZIP - Unpack into an E_MACROS directory and add to your EPMPATH.
           - This contains the macros used to build the standard .ex files.
 
EPMMAC2.ZIP - Unpack into an E_MACROS or EXTRAMAC directory and add to your
            - EPMPATH.  This contains the EPM 6-only macros (mostly for
            - Toolbar actions support).
 
EPMHLP.ZIP - Help for EPM, UCMENUS, and some toolbar actions files.
           - Unpack into \os2\help
 
EPMSMP.ZIP - Unpack into a sampmacs directory and add to your EPMPATH.
   *.e - Sample E macro code; includes both useful programs and building
         blocks that you can use in writing your own code.
 
EBOOKE.ZIP - Unpack into an EBOOKIE directory.
   EBookie is an EPM add-on that makes it much easier to create tagged
   source files.  Support is included for Bookmaster, Starter Set GML, and
   IPF files (used to create OS/2 Help and View files).
 
LAMPDQ.ZIP - Unpack; contains a file to be uploaded to the host.
   LAMPDQ lets you enter commands in EPM that will be executed on your
   (logged on) VM host session and see the results in EPM.  Requires
   Communications Manager.
 
EPMREX.ZIP - Unpack into a directory in your path.
   epmrexx.doc - documentation for writing EPM Rexx macros.
   *.erx - contains some sample EPM / Rexx macros.
 
EPMASI.ZIP - Unpack into a myassist directory and add to your EPMPATH.
   An alternative approach to syntax-assisted editing; makes it easy to
   add your own expansions.  Includes sample files for OS/2 and PM APIs,
   C, and Bookmaster.
 
EPMATR.ZIP - Unpack into an epmattr directory and add to your EPMPATH.
   Sample code for doing things with EPM's attribute support.
 
EPMSPCH.ZIP - Speech support (for IBM Personal Dictation System).
 
EPMCSAMP.ZIP - Sample code for writing EPM macros in C.  Unpack so as to
               preserve the directory structure (the default using UNZIP;
               specify the -d option if using PKUNZIP2).
 
EPMDDE.ZIP - Sample code for controlling EPM via DDE.
 
EPMBMPS.ZIP - Copies of the built-in BMPs, for those who want to modify
              them for whatever purpose.
 
ETPM551.ZIP - The 5.51 version of ETPM.EXE.
 
The minimum you need in order to get EPM 6 is EPMAPP and EPMDLL; add
EPMHELP for the new help file.  If you want to recompile the macros,
you'll need E_MACROS, and probably EPMBOOK for the documentation.  If you
want to write your own macros, or if you just want to try some of the
samples, get a copy of SAMPMACS.  EBOOKIE, EPMSPCH and LAMPDQ are only
for those who require their somewhat specialized functions.
 
There are READ.ME files included in EPMMAC, EPMSMP, EBOOKE, EPMSPCH,
and LAMPDQ.  The one in EPMMAC includes answers to a number of common
questions.
 
What about support?
-------------------
 
All the sample code is provided "as-is", with no warranty of any kind.
It was written by a number of different people, and some of the code is
more polished than other pieces.
 
The EPM authors monitor the E-EDITOR CFORUM on the IBM OS/2 BBS's, and
the Internet news groups comp.os.os2.misc, comp.os.os2.apps,
comp.os.os2.programmer.tools, and comp.os.os2.programmer.misc (please
use the appropriate group).  We will try to answer questions asked in
either place.
 
(signed)
The OS/2 Applications and Tools Group
IBM Thomas J. Watson Research Center
 
   Updates (to EPMBBS package; see README.EPM in EPMAPP.ZIP for changes to EPM)
   =======
1992/09/23  EPMBBS.TXT - Mention the 4 included READ.ME files
            EPMMAC.ZIP - Don't allow SAVEAS if a file is locked.
            EPMBK.ZIP  - Added description of all configuration constants.
            LAMPDQ.ZIP - Updated old syntax.
 
1992/10/16  EPMAPP.ZIP, EPMDLL.ZIP - Various fixes, including:
 - Top of file markers were invisible in DBCS countries if DB code page
   was in use.
 - Problems with long lists of files from the file dialog.
 - Dropping filespecs containing spaces on the EPM icon.
 
            EPMMAC.ZIP - Fixes and enhancements, including:
 - DRAG_ALWAYS_MARKS constant
 - BACKUP_PATH supports '=' to back up to same directory as source file
 - Error checking for BACKUP_PATH if HOST_SUPPORT = 'EMUL'
 
            EPMBK.ZIP  - Various updates.
            EPMSMP.ZIP - DOSCALLS and EA updated; new SAVEALL.E.
            LAMPDQ.ZIP - Use HOSTCOPYDRIVE instead of Hostdrive.
 
1993/03/29  EPMDLL.ZIP, EPMAPP.ZIP, EPMBK.ZIP, EPMHLP.ZIP, EPMMAC.ZIP
            - Various updates.  Biggest change is new print support.
              Also a number of new configuration constants.
            EPMSMP.ZIP - New EPMPRT.E to add a Printer Codes menu, and
              additions to DOSCALLS.E.
            EPMASI.ZIP, EPMATR.ZIP
            - New additions to package; see descriptions above.
 
1993/07/19  EPMDLL.ZIP, EPMAPP.ZIP, EPMBK.ZIP, EPMHLP.ZIP, EPMMAC.ZIP
            - Various updates.  Includes fix for trap when pasting tabs,
              and for "Raw ASCII Dump" print of marked area printing
              entire file.
 
1993/08/05  EPMDLL.ZIP, EPMAPP.ZIP, EPMMAC.ZIP
            - Ensure we get a pure pallette, so circles aren't fuzzy.
            - Added a workaround for when OS/2 2.1 leaves the EPM.INI file
              read-only.
            - Various other small fixes.
 
1993/10/19  Various updates.
 
1994/04/04  Various updates.
 
1994/11/10  Various updates, including DBCS fixes.  Added EPMWRP.ZIP.
 
1995/03/03  Mostly macro enhancements for EPM 6.  Added EPMSPCH.ZIP.
 
1995/11/10  Dropped 5.51, added EPM 6.03a.
 
1996/05/21  EPM 6.03b.  Updated files:
     epmapp.zip   EPM 6.03b.
     epmbk.zip    Updated documentation.
     epmdll.zip   EPM 6.03b.
     epmmac.zip   EPM 6.03b.
     epmmac2.zip  EPM 6.03b.
     epmhlp.zip   Updated help file.
     epmsmp.zip   A few new samples.
     epmrex.zip   Added EPMREXX.DOC (documentation on writing EPM Rexx macros)
     epmbmps.zip  Added BMPs for LoadGroup & SaveGroup.
 
1996/05/31  Updated files:
     epmapp.zip   Updated MAKEACTN.EX, SAMPACTN.EX, EPMKWDS.PL;
                  added EPMKWDS.ADA.
     epmmac.zip   Updated LOAD.E.
     epmmac2.zip  Updated MAKEACTN.E, SAMPACTN.E.
