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.