.. ***************************** Module Header ******************************* .. .. Module Name: neusreng.txt .. .. source file for the user guide INF file of the .. Requires HyperText/2 package to compile .. .. Copyright (c) netlabs.org EPM Distribution Project 2002 .. .. $Id$ .. .. =========================================================================== .. .. This file is part of the netlabs.org EPM Distribution package and is free .. software. You can redistribute it and/or modify it under the terms of the .. GNU General Public License as published by the Free Software .. Foundation, in version 2 as it comes in the "COPYING" file of the .. netlabs.org EPM Distribution. This library is distributed in the hope that it .. will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty .. of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU .. General Public License for more details. .. .. *************************************************************************** .include titleeng.inc .ti [=USRTITLE] .hi 234 .. ############################################################################# .1 [=USRTITLE] .. ############################################################################# .an IDPNL_MAIN .at font='20.Tms Rmn' fc=darkgray italic bold .bitmap nllogo.bmp center .ce present the .at font='24.Tms Rmn' fc=red bold italic .ce [=DOCTITLE] .at [=TOPICS] .su 1 .. ============================================================================= .2 Overview .. ============================================================================= .an IDPNL_WHAT . [=TOPICS] .su V30 .. ----------------------------------------------------------------------------- .3 The [=DOCTITLE] .. ----------------------------------------------------------------------------- .an IDPNL_WHAT_NED . The [=TITLE] bases on the [.IDPNL_WHAT_EPM EPM V6.03b] package (EPMBBS distribution) and the update to that being available on internet FTP servers. For this distribution, the following files have been taken from the .sl compact - [http://www.leo.org Link-Everything-Online (http://www.leo.org)] .elist server: .ul compact - *epm603b.zip* for the main 6.03b package (31-MAY-1996) and - *epm603bupd.zip* for the 6.03b update (8-JUL-1996) .elist These packages already include the following: .ul compact - Speech Support for the *VoiceType* feature in *OS/2 Warp 4* or *eComStation* - the sources for the REXX part of *EPM* - the macro compiler (not being shipped with *OS/2 Warp 4* or *eComStation*) - programming samples for - programming macros in REXX and C - interacting with *EPM* via DDE - using the E Toolkit in order to implement one or more MLE's (Enhanced Multi-line Edit Controls) in own applications In addition to that the [=TITLE] adds an [.IDPNL_INSTADDITIONS extended installation and configuration scheme] and [.IDPNL_USEADDITIONS various edit features] out of contributed macros and add-on programs. .. ----------------------------------------------------------------------------- .3 What is EPM? .. ----------------------------------------------------------------------------- .an IDPNL_WHAT_EPM . The base for the [=TITLE] is the [.IDPNL_EPMBBS EPMBBS distribution]. The following is an adapted excerpt from the file EPMBBS.TXT of this package: 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.) 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, see section *Summary *for a summary of the configuration constants. You can also select these on *EPM*'s Help menu. The macro language is defined and described in the *EPM* Macro Programmer's Technical Reference. Also, looking through the existing macros is a good way to become familiar with the language - particularly if you have any Rexx experience. Install the programming samples to see samples for the following .ul compact - starting with *EPM* 6, macros can be written in C as well, - *EPM* can also be controlled via DDE (Dynamic Data Exchange); this is how *EPM* interacts with the Workframe/2 product. - 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. 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 compared to *EPM* 5 .. ----------------------------------------------------------------------------- .3 The [=DOCTITLE] project .. ----------------------------------------------------------------------------- . The sources for to build the [=TITLE] are freely available under the [.IDPNL_LEGAL_GPL GNU General Public License] within a *CVS* archive on the *netlabs.org Open Source Archive* server. To access them you either can .pl compact tsize=3 - use plain *CVS* = set .ul compact - set USER=*guest* . or your personal netlabs.org userid - set CVSROOT=:pserver:#guest#@www.netlabs.org:/netlabs.cvs/nepmd . or with your personal netlabs.org userid instead of *guest* - use *readonly* as password or use your personal netlabs.org password .el - use *CVS* in conjunction with the *netlabs.org Open Source Archive Client* (NOSAC) = the latter package will help you a lot if you are not familliar with *CVS*. Follow the instructions for easy access to a *netlabs.org Open Source Archive* and watch out for an archive called *NEPMD* See the following URL for more information on the *netlabs.org Open Source Archive Client* and *CVS*: .ul compact - [http://nosa.netlabs.org Netlabs Open Source Archive (http://nosa.netlabs.org)] Everybody is invited to join the project team or pass suggestions and/or contributions to it. .. ============================================================================= .2 Prerequisites .. ============================================================================= .an IDPNL_PREREQUISITES . The following prerequisites apply to the current version of [=TITLE]: .ul - The [=TITLE] runs under *OS/2 WARP* Version 4 or later or *eComStation*. It also runs under *OS/2 WARP* Version 3 under the prerequisite that the [.IDPNL_EPMBBS the EPMBBS distribution] is already installed - The [http://www.xworkplace.org WarpIn for OS/2] sofware installer has to be installed on your system in order to install the [=TITLE] (when you read this, you likely have *WarpIn* installed ;-) .. ============================================================================= .2 Copyright & Co. .. ============================================================================= .an IDPNL_LEGAL . [=TOPICS] .su V30 .. ----------------------------------------------------------------------------- .3 Copyright .. ----------------------------------------------------------------------------- .an IDPNL_LEGAL_COPYRIGHT . The [=TITLE] . was assembled by [.IDPNL_CREDITS_TEAM the distribution project team], [=YEAR]. The *EPM* was developed by the IBM T. J. Watson Research Center. . All rights reserved. Visit also the homepages of .ul compact - [http://trac.netlabs.org/nepmd The netlabs.org EPM Distribution] - [http://www.netlabs.org netlabs.org] .. ----------------------------------------------------------------------------- .3 freeware license .. ----------------------------------------------------------------------------- .an IDPNL_LEGAL_LICENSE . This software package is freeware. It can be used wherever you use *OS/2 WARP* Version 3 or later or *eComStation*. (For usage under OS/" Warp 3 see section [.IDPNL_PREREQUISITES] !) You are allowed to freely use and distribute the [=TITLE] as long as .ul compact - [=TITLE] or its components are not sold as a part of another program package; - no fee is charged for the program other than for cost of media; - the complete package is distributed unmodified. Furthermore, the restrictions of the [.IDPNL_LEGAL_GPL GNU General Public License] apply. .. ----------------------------------------------------------------------------- .3 Disclaimer .. ----------------------------------------------------------------------------- .an IDPNL_LEGAL_DISCLAIMER . .at fc=red Since this program is free, it is supplied with no warranty, either expressed or implied. We disclaim all warranties for any damages, including, but not limited to, incidental or consequential damage caused directly or indirectly by this software. All software is supplied AS IS. You may use the [=TITLE] package only at your own risk. The [=TITLE] must not be used in states that do not allow the above limitation of liability. .at .. ----------------------------------------------------------------------------- .3 The authors .. ----------------------------------------------------------------------------- .an IDPNL_LEGAL_AUTHOR . The [=TITLE] is compiled by [.IDPNL_CREDITS_TEAM the distribution project team] and bases on the *EPM* developed by the IBM T. J. Watson Research Center. See the [.IDPNL_CREDITS credits section] for more contributors to *EPM* and the [=TITLE]. .. ============================================================================= .2 Using the [=DOCTITLE] .. ============================================================================= .an IDPNL_USAGE . [=TOPICS] .su V30 1 .. ----------------------------------------------------------------------------- .3 The NEPMD folder .. ----------------------------------------------------------------------------- .an IDPNL_USAGE_WPSFOLDER . The folder of the [=TITLE] includes the following icons (taken that all components have been installed): .su H50 .. ............................................................................. .4 EPM v6.03b .. ............................................................................. .an IDPNL_USAGE_WPSFOLDER_EXECUTE . This icon starts the *EPM*. It is identical in function to the icon *Enhanced Editor* that exists in the *Utilities* folder of your *OS/2* or *eComStation* desktop. .. ............................................................................. .4 EPM Technical Reference .. ............................................................................. .an IDPNL_USAGE_WPSFOLDER_VIEW_EPMTECH . This icon starts the *EPM* Technical Reference. This book is intended to aid in the development of extensions for *EPM* using the *E Language*. .. ............................................................................. .4 EPM Users Guide .. ............................................................................. .an IDPNL_USAGE_WPSFOLDER_VIEW_EPMUSERS . This icon starts the *EPM* Users Guide. This book is intended to aid users with the configuration and usage of *EPM*. .. ............................................................................. .4 netlabs.org EPM Distribution User Guide .. ............................................................................. .an IDPNL_USAGE_WPSFOLDER_VIEW_NEUSR . This icon starts the *User Guide* of the [=TITLE], this is the INF file that you are just reading. .. ............................................................................. .4 netlabs.org EPM Distribution Programming Guide .. ............................................................................. .an IDPNL_USAGE_WPSFOLDER_VIEW_NEPRG . This icon starts the *Programming Guide* of the [=TITLE]. [=NOTE] .ul compact - You need to install the *Recompilation package* of the [=TITLE] in order to have this icon within the the NEPMD folder .. ............................................................................. .4 Recompile EPM .. ............................................................................. .an IDPNL_USAGE_WPSFOLDER_RECOMP . This icon starts the [.IDPNL_INSTADDITIONS_RECOMP recompilation GUI utility RECOMP] provided by the [=TITLE] to allow you quick and easy recompilation. [=NOTE] .ul compact - You need to install the *Recompilation package* of the [=TITLE] in order to have this icon within the the NEPMD folder .. ............................................................................. .4 EPM Programming Samples .. ............................................................................. .an IDPNL_USAGE_WPSFOLDER_SAMPLES_FOLDER . This folder contains the following icons to aid in the development of *EPM* extensions: .ul compact - Programmers Guide to the *E Toolkit* - *EPM* C macro Readme - *EPM* REXX macro Readme [=NOTE] .ul compact - You need to install the *Programming samples* of the [=TITLE] in order to have this icon within the the NEPMD folder .. ............................................................................. .4 myepm .. ............................................................................. .an IDPNL_USAGE_WPSFOLDER_MYEPMSHADOW . This shadow object represents the *[.IDPNL_INSTADDITIONS_DIRTREE_USER myepm]* directory below the installation directory of the [=TITLE], where the user stores the files for extending the [.IDPNL_CONFIG configuration of EPM]. .. ............................................................................. .4 Start EPM Speech Support .. ............................................................................. .an IDPNL_USAGE_WPSFOLDER_SPEECH . This icon starts the background process enabling support for usage of *VoiceType* to contol *EPM* windows. [=NOTE] .ul compact - This icon will only work propperly if *VoiceType for OS/2* is installed on your system ! - You need to install the *Speech Support* of the [=TITLE] in order to have this icon within the the NEPMD folder .. ----------------------------------------------------------------------------- .3 autolink EPM extensions .. ----------------------------------------------------------------------------- .an IDPNL_USAGE_CONFIGURE_AUTOLINK . *EPM* extension modules (**.ex) that need to be linked on startup of the editor can be placed into the directory .sl compact - *[.IDPNL_INSTADDITIONS_DIRTREE_USER myepm]\autolink* .el in order to link them automatically. .. ----------------------------------------------------------------------------- .3 recompile EPM .. ----------------------------------------------------------------------------- .an IDPNL_USAGE_CONFIGURE_MYCNF . For future versions of the [=TITLE] it is planned to replace all configuration constants with dynamic values, being stored within the [.IDPNL_INSTADDITIONS_REGISTRY] and making them configurable by a GUI. This will hopefully make all recompilations of *EPM* obsolete. Until then it will remain to be a standard configuration technique to modify the file *mycnf.e* and recompile *EPM*. For more details see the section .ul compact - [.IDPNL_CONFIG] .. ----------------------------------------------------------------------------- .3 REXX profile .. ----------------------------------------------------------------------------- .an IDPNL_USAGE_CONFIGURE_REXXPRF . A widely used technique to avoid [.IDPNL_USAGE_CONFIGURE_MYCNF recompilation of EPM] is to set some variables of *EPM* within the file *profile.erx*. This is a plain REXX script using the *EPM* REXX interface to allow to set configuration constants. [=NOTE] .ul compact - for usage with the [=TITLE] the file *profile.erx* is to be placed in the directory *myepm\bin .. ----------------------------------------------------------------------------- .3 add definitions for syntax highlighting .. ----------------------------------------------------------------------------- .an IDPNL_USAGE_CONFIGURE_HILITEDEF . Within [=TITLE] keyword definitions for syntax highlighting are attached to *EPM* modes. You can easily extend the definitions for syntax highlighting on a per-mode basis or create a completely new EPM mode for a new filetype, if required. See the following section for more details: .ul compact - [.IDPNL_MODE] .. ----------------------------------------------------------------------------- .3 create/extend an EPM mode .. ----------------------------------------------------------------------------- .an IDPNL_USAGE_CONFIGURE_CREATEMODE . You can easily create a new *EPM* mode for the [=TITLE] in order to specify how to treat a new type of files, or extend a given mode to modify the treatment of a filetype. All this is however restricted to the attributes currently attached to an *EPM* mode, such as syntax highlighting. Creating a new *EPM* mode or extending an existing one is done only by adding self-creaed textfiles to the *myepm\mode* directory tree. See the following section for more details: .ul compact - [.IDPNL_MODE] .. ============================================================================= .2 The EPM mode .. ============================================================================= .an IDPNL_MODE . [=TOPICS] .su V30 1 .. ----------------------------------------------------------------------------- .3 EPM mode determination .. ----------------------------------------------------------------------------- .an IDPNL_MODE_OVERVIEW . The [=TITLE] Team has introduced the advanced mode mechanism to replace the former filetype determination by searching the filename extension in hardcoded lists. . ..The OS/2 filetype attribute is also used in some special cases, where the ..type name is not language specific. .. For future releases support for XWorkplace's extended associations is planned. The *EPM* mode defines the following attributes: .ul compact - the filename extensions and/or basenames of the files to be associated with that mode - syntax highlighting definitions The *EPM* mode for a file is determined at load of the file in the following order .ul compact - if the mode has been previously set by the new *mode* command manually, this mode is used .. - if some of the recognized OS/2 filetype attributes are set for the loaded file, .. the mode is set according to a table. . - if the file name and/or extension matches the basename or extension for any of the configured modes, then the mode is set. . - Some extensions are handled in a special case: .. .pl break=none bold tsize=4 - ***.CMD* .. .ul compact - the mode *REXX* is set for REXX scripts - the mode is recognized for EXTPROC scripts, if the name of the external command processor matches any of the configured *EPM* modes - otherwise the mode is set to *CMD* .. .el - ***.INI* - The mode *INI* is set for text ini files only, as *EPM* does not make sense to edit OS/2 binary INI files. .. .el - If none of the above apply, the mode is set to TEXT. .. ----------------------------------------------------------------------------- .3 mode command .. ----------------------------------------------------------------------------- .an IDPNL_MODE_CMD . The mode can be changed manually with the MODE command in order to override the default mode determined by *EPM*. For that execute the command: .fo off mode [[#new__mode#]] .fo on The optional #new__mode# parameter string is not case-sensitive. If no parameter is specified, then a dialog is displayed which allows a choice of setting a new mode or resetting to the default mode. A newly selected mode will be saved as the extended file attribute EPM.MODE or deletes this attribute, if the mode is to be reset to default. [=NOTE] .ul compact - This change is made immediately and not only when the file is saved - Modes other than the default are saved as extended attributes. Do the file must not be stored on readonly storage media (e.g. CD-ROM) The current mode for a file is displayed on the statusline. To determine if a mode is the default mode for that file, execute the *mode* command. At the top of the dialog it will read .sl compact. - Selected mode: or .sl compact - Default mode: "Selected mode" indicates that the mode is not the default. A non-default mode can be removed by executing the command *mode 0* or by executing the command *mode* and then selecting "Reset" in the mode dialog. This will return the mode to the default for that file. After the mode is determined or reset, all mode attributes attached to a given mode are activated. These include: .ul compact - extended keyword highlighting - mode-specific keyset - mode-specific margin, tab and indent settings - mode-specific syntax assist .. ----------------------------------------------------------------------------- .3 predefined EPM modes .. ----------------------------------------------------------------------------- .an IDPNL_MODE_PREDEFINED . The [=TITLE] comes with a set of mode definitions that can be found in the following subdirectories within the installation path: .sl compact - *[.IDPNL_INSTADDITIONS_DIRTREE_NEPMD netlabs]\mode* In this directory you find also the file [.IDPNL_FORMAT_GLOBALINI], which defines global default settings being used by all modes. Below this directory, you find directories per mode, e.g. for the mode *C* the following directories exist: .sl compact - *[.IDPNL_INSTADDITIONS_DIRTREE_NEPMD netlabs]\mode\c* The following files define the default settings per mode, these files are provided by the [=TITLE] and *should not be modified*. .ul compact - [.IDPNL_FORMAT_DEFAULTINI] - [.IDPNL_FORMAT_NETLABSHIL] [=NOTE] .ul compact - To customize a mode to suit your needs: - Do not modify or create files under the *[.IDPNL_INSTADDITIONS_DIRTREE_NEPMD netlabs]* directory. - Follow the directions in [.IDPNL_MODE_EXTEND]. - To add a new mode: - Do not create files or directories under the *[.IDPNL_INSTADDITIONS_DIRTREE_NEPMD netlabs]* directory. - Follow the directions in [.IDPNL_MODE_NEW]. .. ----------------------------------------------------------------------------- .3 extend predefined EPM modes .. ----------------------------------------------------------------------------- .an IDPNL_MODE_EXTEND . *EPM* modes supplied with the [=TITLE] can easily be extended by the user. In order to do so, .ol - Create the directory *[.IDPNL_INSTADDITIONS_DIRTREE_USER myepm]\mode\*, where ** is the name of the *EPM* mode. - If required, create the file [.IDPNL_FORMAT_CUSTOMINI] to extend the mode definition. This will extend settings defined in [.IDPNL_FORMAT_DEFAULTINI]. - If required, create files [.IDPNL_FORMAT_MYEPMHIL] to add new keyword definitions for the *EPM* mode, but take care that you use a filename (with the filename extension .hil) that does not yet exist within the directory *[.IDPNL_INSTADDITIONS_DIRTREE_NEPMD netlabs]\mode\*. .. ----------------------------------------------------------------------------- .3 create new user-defined modes .. ----------------------------------------------------------------------------- .an IDPNL_MODE_NEW . if you intend to create an own *EPM* mode, .ol - Create the directory *[.IDPNL_INSTADDITIONS_DIRTREE_USER myepm]\mode\*, where ** is the name of the *EPM* mode - Create the *[.IDPNL_INSTADDITIONS_DIRTREE_USER myepm]\mode\\default.ini* file to define the basic settings for your mode - Create one or more *[.IDPNL_INSTADDITIONS_DIRTREE_USER myepm]\mode\\**.hil* files to add keyword definitions for the new *EPM* mode. .. ============================================================================= .2 How can I ...? .. ============================================================================= .an IDPNL_HOW . [=TOPICS] .su V30 .ul compact .. ----------------------------------------------------------------------------- .3 How can I add definitions for syntax highlighting? .. ----------------------------------------------------------------------------- .an IDPNL_HOW_HILITEDEF . .mi IDPNL_USAGE_CONFIGURE_HILITEDEF .. ----------------------------------------------------------------------------- .3 How can I create/extend an EPM mode .. ----------------------------------------------------------------------------- .an IDPNL_HOW_CREATEMODE . .mi IDPNL_USAGE_CONFIGURE_CREATEMODE .. ----------------------------------------------------------------------------- .3 How can I recompile the EPM? .. ----------------------------------------------------------------------------- .an IDPNL_HOW_RECOMPILE . Within the [=TITLE] folder execute the icon *Recompile EPM*. This will start the [.IDPNL_INSTADDITIONS_RECOMP recompile GUI utility] allowing you to quickly recompile the *EPM*. .. ----------------------------------------------------------------------------- .3 How can I set fonts and colors easily? .. ----------------------------------------------------------------------------- .an IDPNL_HOW_SETFONTS . Open your font and color palette objects and drop a font or a color on one of *EPM*'s control areas. . . We recommned the following fonts and colors: .pl bold - Edit window = font: 12.System VIO (16x8) or larger or System Monospaced . color: black on white (default) or black on light gray - Statusline = font: 10.Helv . color: red on white (default) - Messageline = font: 10.System Proportional Non-ISO . color: black on light gray .el . When you're done, save your settings: *Options -> Save options*. .. ----------------------------------------------------------------------------- .3 How can I print keyword highlighted files with colors? .. ----------------------------------------------------------------------------- .an IDPNL_HOW_PRINTHILITED . In order to print out a given file in colour (using keyword highlighting), there may be a problem, if *System VIO* is used as the font withinthe edit window. As a result, a whole page will be printed out per line of the text and the PC loudspeaker will beep once for every line. In order to workaround that problem, perform the following steps: .ol compact - Mark all text (*Ctrl+/* or *Ctrl+A*) - activate the style dialog (*CTRL+Y*) - select a scalable *Courier* font (not the bitmap version) - print the file As an alternative, you can vhange the default font temporarily with the font palette or the settings dialog. .. ----------------------------------------------------------------------------- .3 How can I load/save files from/to drive H:? .. ----------------------------------------------------------------------------- .an IDPNL_HOW_DRIVEH . If you have problems with files on drive H:, you have probably switched on *host support*. This feature by default uses drive H: to map the files accessed from the host and leaves to unpredictable results when laoding files from drive H: (e.g. file cannot be saved). With the [=TITLE] host support is switched off by default. Reset following constant in your *myepm\mycnf.e* file: .sl compact bold - HOST__SUPPORT = '' If you need host support (you probably don't if you have never heard of it), you may set i.e.: .sl compact bold - HOST__SUPPORT = 'STD' - HOSTDRIVE = 'X:' .. ----------------------------------------------------------------------------- .3 How can I change the standard help viewer for the keyword help mechanism? .. ----------------------------------------------------------------------------- .an IDPNL_HOW_SETVIEW . If you want to use *newview.exe* instead of *view.exe*, the author recommends to replace *?:\os2\view.exe* with *newview.exe*. This is not a good idea due to several reasons: .ul compact - *OS/2* or *eComStation* fixpaks may replace this file again - *view.exe* starts asynchronously, while *newview.exe* does not In order to set *newview.exe* as the defualt help viewer for the *EPM* keyword help, set the following configuration constant .sl compact bold - *NEPMD__KEYWORD__HELP__COMMAND* = 'start newview' .. ============================================================================= .2 Limitations .. ============================================================================= .an IDPNL_LIMITATIONS . The following limitations apply to the current version of [=TITLE]: .ul - For users of the operating systems *OS/2 Warp 4* or *eComStation*, the [=TITLE] always requires the files of the *EPM* / *Enhanced Editor* that are installed in directories ?:\OS2\APPS and ?:\OS2\APPS\DLL. If they are not installed, use the installation program of your operating system to install them and reapply the current fixpack. - Using the (quite buggy) Workplace Shell Class *Epm* is not yet supported, but probably working. - users of *OS/2 Warp 3* currently cannot use this package, as this version of *OS/2* comes with the outdated *EPM* v5.51. As a workaround, before installing [=TITLE], you can - _manually remove_ the old *EPM* v5.51 files from your system (backup recommended) and - install the packages .ul compact - [.IDPNL_EPMBBS_COMP_EPMAPP] - [.IDPNL_EPMBBS_COMP_EPMDLL] - [.IDPNL_EPMBBS_COMP_EPMHLP] .el . of the [.IDPNL_EPMBBS EPM BBS distribution] according to its readme file in a directory of your choice. .el . In a forthcoming version [=TITLE] will address that problem and offer to replace an *EPM* v5.51 with the base *EPM* application of the *EPM BBS distribution* for *OS/2 Warp 3* users. . - The processing of *profile.erx* can not be switched off in this version. The checkbox in *EPM's* standard settings notebook has no effect anymore. This workaround was necessary because of timing problems during file loading in combination with special settings in EPM.INI. . . If you don't want to use your *profile.erx*, you have to rename it or copy it somewhere outside PATH and EPMPATH. . .. ============================================================================= .2 Revision history .. ============================================================================= .an IDPNL_REVISIONS . [=TOPICS] .su V30 .. ----------------------------------------------------------------------------- .3 Version 1.00 .. ----------------------------------------------------------------------------- .an IDPNL_REVISION_HISTORY_101 . First public release .. ============================================================================= .2 Trademarks .. ============================================================================= .an IDPNL_TRADEMARKS . The following trademarks are used in this online help file: .ul compact - OS/2 is a trademark of IBM Corporation - eComStation is a trademark of Serenity Systems International .. ============================================================================= .2 Credits .. ============================================================================= .an IDPNL_CREDITS . [=TOPICS] .su V30 .. ----------------------------------------------------------------------------- .3 General credits .. ----------------------------------------------------------------------------- .an IDPNL_CREDITS_GENERAL . Credits go to: .ul - the team of the IBM T. J. Watson Research Center for the magnificent editor *EPM* - all contibutors to the *EPM v6.03b* package release available in the internet - Ulrich Mller, Germany, for development of the sofware installer . [http://www.xworkplace.org WarpIn for OS/2] .. ----------------------------------------------------------------------------- .3 The [=DOCTITLE] project team and contributors .. ----------------------------------------------------------------------------- .an IDPNL_CREDITS_TEAM . The following persons (in alphabetic order) assembled and contributed extensions for the current release of the [=TITLE]: .pl tsize=1 - *Christian Langanke* = .ul compact - distribution concept - setup of the *netlabs.org Open Source Archive* for the [.IDPNL_WHAT_NED] - this online INF file - *WarpIn* installation packaging - National Language Support concept - [.IDPNL_INSTADDITIONS_RECOMP recompilation GUI utility RECOMP] - [.IDPNL_INSTADDITIONS_DYNCFG] - [.IDPNL_INSTADDITIONS_DYNCFG_LOADER] - many functions of an external dynamic link library *NEPMDLIB*, containing many of the [.IDPNL_EFUNC E Language functions] of the [=TITLE] ..- extended syntax highlighting support .. - *Andreas Schnellbacher* = .ul compact - distribution concept - shipped .e sourcefiles - major [.IDPNL_INSTADDITIONS_NEWMACROS rework] compared to the versions of the *EPMBBS* package - National Language Support concept ..- additional macros (e.g. for TeX) .. .. ============================================================================= .2 Appendix: The EPMBBS distribution .. ============================================================================= .an IDPNL_EPMBBS . [=TOPICS] .su V30 1 .. ----------------------------------------------------------------------------- .3 Component overview .. ----------------------------------------------------------------------------- .an IDPNL_EPM_BBS_COMP . The original EPM BBS distribution is available [.IDPNL_EPM_BBS_SOURCE in different forms] (either together in a ZIP archive file or file by file in a directory). The packages are the following, where at least the first two are required to run *EPM*: .su H50 [=NOTE] .ul compact - The package *etpm551.zip* only contains the *EPM* macro compiler for v5.x. Therefore it is not enlisted here and its contents is not included in the [=TITLE]. .. ............................................................................. .4 epmapp.zip - base application package .. ............................................................................. .an IDPNL_EPMBBS_COMP_EPMAPP . This package contains the application core files. [=NOTE] .ul compact - Together with the [.IDPNL_EPMBBS_COMP_EPMDLL epmdll] package this is the absolute minimum to run *EPM*. - While all files reside in one directory within this package, within the installation provided by [=TITLE] these files are distributed over several directories below the [.IDPNL_INSTADDITIONS_DIRTREE subdirectory bin] .. ............................................................................. .4 epmdll.zip - base application dll package .. ............................................................................. .an IDPNL_EPMBBS_COMP_EPMDLL . This package contains the dynamic link libraries of the *E Toolkit* used by *EPM* (and useable by other applications making use of the *E Toolkit*). [=NOTE] .ul compact - Together with the [.IDPNL_EPMBBS_COMP_EPMAPP epmapp] package this is the absolute minimum to run *EPM*. - While all files reside in one directory within this package and are intended to be installed in the same directory as the [.IDPNL_EPMBBS_COMP_EPMAPP epmapp] package, within the installation provided by [=TITLE] these files are placed in the [.IDPNL_INSTADDITIONS_DIRTREE subdirectory bin\dll] .. ............................................................................. .4 epmhlp.zip - base application help package .. ............................................................................. .an IDPNL_EPMBBS_COMP_EPMHLP . This package contains the help files used by diverse macros coming with the standard *EPM*. [=NOTE] .ul compact - While all files reside in one directory within this package and are intended to be installed in the same directory as the [.IDPNL_EPMBBS_COMP_EPMAPP epmapp] package, within the installation provided by [=TITLE] these files are placed in the [.IDPNL_INSTADDITIONS_DIRTREE subdirectory help] .. ............................................................................. .4 epmbk.zip - Guide and Reference package .. ............................................................................. .an IDPNL_EPMBBS_COMP_EPMBK . This package contains the online help files .pl compact .. - [inf:EPMUSERS.INF] - *EPM Users Guide* - *EPM Users Guide* = containing detailed information about using *EPM* .. - [inf:EPMTECH.INF] - *EPM Technical Reference* - *EPM Technical Reference* = containing detailed information about how to configure *EPM* and how to recompile the REXX configuration part (EPM.EX) [=NOTE] .ul compact - Within the installation provided by [=TITLE] these files are placed in the [.IDPNL_INSTADDITIONS_DIRTREE subdirectory book] .. ............................................................................. .4 epmspch.zip - speech support package .. ............................................................................. .an IDPNL_EPMBBS_COMP_EPMSPCH . This package contains the programs and files for Speech Support with the *VoiceType* package coming with *OS/2 Warp 4* and higher or *eComstation*. [=NOTE] .ul compact - While all files reside in one directory within this package, within the installation provided by [=TITLE] these files are distributed into and over several directories below the [.IDPNL_INSTADDITIONS_DIRTREE subdirectories dll and bin] .. ............................................................................. .4 epmbmps.zip - bitmap source package .. ............................................................................. .an IDPNL_EPMBBS_COMP_EPMBMPS . This package contains the bitmaps with the *VoiceType* package coming with *OS/2 Warp 4* and higher or *eComStation*. [=NOTE] .ul compact - Within the installation provided by [=TITLE] these files are placed in the [.IDPNL_INSTADDITIONS_DIRTREE subdirectory bin\bmp] .. ............................................................................. .4 epmmac.zip - macro source package .. ............................................................................. .an IDPNL_EPMBBS_COMP_EPMMAC . This package contains the sources required for compiling the the REXX configuration part of *EPM* (EPM.EX). [=NOTE] .ul compact - Within the installation provided by [=TITLE] these files are placed in the [.IDPNL_INSTADDITIONS_DIRTREE subdirectory bin\macros] .. ............................................................................. .4 epmmac2.zip - additional macro source package .. ............................................................................. .an IDPNL_EPMBBS_COMP_EPMMAC2 . This package contains sources for some additional sources. [=NOTE] .ul compact - Within the installation provided by [=TITLE] these files are placed in the [.IDPNL_INSTADDITIONS_DIRTREE subdirectory bin\macros] .. ............................................................................. .4 epmsmp.zip - macro sample source package .. ............................................................................. .an IDPNL_EPMBBS_COMP_EPMSMP . This package contains sample sources for macros. [=NOTE] .ul compact - Within the installation provided by [=TITLE] these files are placed in the [.IDPNL_INSTADDITIONS_DIRTREE subdirectory bin\macros\samples] .. ............................................................................. .4 epmatr.zip - Attribute support marco source package .. ............................................................................. .an IDPNL_EPMBBS_COMP_EPMATR . This package contains the source for an outdated attribute support for *EPM*. [=NOTE] .ul compact - Within the installation provided by [=TITLE] these files are placed in the [.IDPNL_INSTADDITIONS_DIRTREE subdirectory bin\macros\attr] - This package is not integrated in the [=TITLE] extensions. In order to use it you have to integrate it into your *EPM* configuration and recompile your *EPM* configuration. .. ............................................................................. .4 ebooke.zip - Bookmaster tag support marco source package .. ............................................................................. .an IDPNL_EPMBBS_COMP_EBOOKE . This package contains the source for tag support macro for *EPM*. It contains tag support for .ul compact - BookMaster version 2 and 3 - GML Starter-Set release 3.2 - FOILS5 version 5.3 - APAFOIL release 2.1 - IPF of OS/2 version 1.2 and above. [=NOTE] .ul compact - Within the installation provided by [=TITLE] these files are placed in the [.IDPNL_INSTADDITIONS_DIRTREE subdirectory bin\macros\ebooke] - This package is not integrated in the [=TITLE] extensions. In order to use it you have to integrate it into your *EPM* configuration and recompile your *EPM* configuration. .. ............................................................................. .4 epmasi.zip - Syntax assistant macro source package .. ............................................................................. .an IDPNL_EPMBBS_COMP_EPMASI . This package contains the source for the Syntax Assistant macro for *EPM*, which is freely configurable. [=NOTE] .ul compact - Within the installation provided by [=TITLE] these files are placed in the [.IDPNL_INSTADDITIONS_DIRTREE subdirectory bin\macros\myassist] - This package is not integrated in the [=TITLE] extensions. In order to use it you have to integrate it into your *EPM* configuration and recompile your *EPM* configuration. .. ............................................................................. .4 lampdq.zip - VM host remote command executor macro source package .. ............................................................................. .an IDPNL_EPMBBS_COMP_LAMPDQ . This package contains the source for a macro allowing you to execute remote commands on VM hosts. [=NOTE] .ul compact - Within the installation provided by [=TITLE] these files are placed in the [.IDPNL_INSTADDITIONS_DIRTREE subdirectory bin\macros\lampdq] - This package is not integrated in the [=TITLE] extensions. In order to use it you have to integrate it into your *EPM* configuration and recompile your *EPM* configuration. .. ............................................................................. .4 epmcsamp.zip - C sample source package - E Toolkit .. ............................................................................. .an IDPNL_EPMBBS_COMP_EPMCSAMP . This package contains C sample code for to write *EPM* macros in the C programming language. Moreover this sample uses the E Toolkit, which allow the usage of *EPM* functionality within other applications. For the latter only the *runtime of the E Toolkit* is required, this is already included in plain *OS/2 Warp 4* or *eComStation*. Users of *OS/2 Warp 3* need to install the version of the [.IDPNL_EPMBBS_COMP_EPMDLL runtime of the E Toolkit] coming with the [.IDPNL_EPMBBS EPMBBS distribution]. [=NOTE] .ul compact - Within the installation provided by [=TITLE] these files are placed in the [.IDPNL_INSTADDITIONS_DIRTREE subdirectory samples\c] .. ............................................................................. .4 epmdde.zip - C sample source package - DDE interface .. ............................................................................. .an IDPNL_EPMBBS_COMP_EPMDDE . This package contains C sample code for to interact with *EPM* via DDE. This interface is e.g. used by the *Workframe/2* package. [=NOTE] .ul compact - Within the installation provided by [=TITLE] these files are placed in the [.IDPNL_INSTADDITIONS_DIRTREE subdirectory samples\dde] .. ............................................................................. .4 epmrex.zip - REXX sample source package - external REXX support .. ............................................................................. .an IDPNL_EPMBBS_COMP_EPMREXX . This package contains dample REXX code in order to demo the external REXX support of *EPM*. In opposite to the internal *REXX* support, which better is called *E Language* support (only *REXX*-alike syntax), true *REXX* scripts can be invoked by a call to the *REXX interpreter* of *OS/2 Warp* or *eComStation*, started in a special *REXX* environment with the name *erx* (that is, external *REXX* macros for *EPM* are expected to have a filename extension of *.erx* instead of *.cmd* !). While the real *REXX* scripts have the advantage of that they don't require compilation from macro sources (**.e) to REXX binaries (**.EX), they don't have direct access to the running *EPM* instance, but instead need to call the *REXX* functions interface implemented in the *E Toolkit runtime* DLLs of the *erx* environment. Moreover, smaller *REXX* scripts may start little slower than internal compiled *E Language* scripts, but very much depending on the task accomplished, they possibly execute much faster, as true *REXX* is more flexible for most purposes. [=NOTE] .ul compact - Within the installation provided by [=TITLE] these files are placed in the [.IDPNL_INSTADDITIONS_DIRTREE subdirectory samples\rexx] .. ----------------------------------------------------------------------------- .3 Where to obtain .. ----------------------------------------------------------------------------- .an IDPNL_EPM_BBS_SOURCE . The following so-called EPMBBS distribution, uploaded by Larry Margolis, is available on FTP servers in the Internet like: .ul compact - [http://www.leo.org Link-Everything-Online (http://www.leo.org)] . - in file epm603.zip (rename it to epm603b.zip) and - [http://hobbes.nmsu.edu The Hobbes File Archive (http://hobbes.nmsu.edu)] . - file by file in the directory /pub/os2/apps/editors/epm or - in file epm603b.zip and - [ftp://service.boulder.ibm.com IBM (ftp://service.boulder.ibm.com)] . - file by file in the directory /ps/products/os2/fixes/v3.0warp/english-us/epmbbs/ The last EPMBBS distribution (as an update to the more complete version by Larry Margolis) is available on FTP servers in the Internet like: .ul compact - [http://www.leo.org Link-Everything-Online (http://www.leo.org)] . - in file epm603b.zip (rename it to epm603bupd.zip) or - [http://hobbes.nmsu.edu The Hobbes File Archive (http://hobbes.nmsu.edu)] . - in file epm603bupd.zip .. ============================================================================= .2 Appendix: The [=DOCTITLE] Installation .. ============================================================================= .an IDPNL_INSTADDITIONS . [=TOPICS] .su V30 1 .. ----------------------------------------------------------------------------- .3 Dynamic EPM configuration .. ----------------------------------------------------------------------------- .an IDPNL_INSTADDITIONS_DYNCFG . The [=TITLE] provides you with a dynamic configuration for *EPM*, which makes any changes to your *CONFIG.SYS* obsolete. [=TOPICS] .su 1 H40 .. ............................................................................. .4 Benefits of the dynamic configuration .. ............................................................................. .an IDPNL_INSTADDITIONS_DYNCFG_BENEFITS . We thought a lot about this approach of a dynamic configuration and how to implement it best. We decided to copy one binary file, namely the [.IDPNL_INSTADDITIONS_DYNCFG_LOADER], to your system directory (directory *\os2* on your boot drive) to accomplish this. Considering, that it normally would be a bad behaviour to clutter the system directory with non-system files, like this is well known from the windowze platforms, we nevertheless think that in this case the benefit outweighs this drawback by far: .ul compact - this way the *CONFIG.SYS* of your system remains untouched and - you can start right away with working without a reboot and - the [=TITLE] extensions can very easily be deactivated and deinstalled - if we would apply all required changes to CONFIG.SYS, this would be a big change, extending for example alone the *PATH*, *HELP* and *BOOKSHELF* statement with several entries, affecting the whole system. With our approach, these extensions to the environment are only applied to the sessions where this is required, namely for the *EPM* and othe GUI utilities of the [=TITLE]. .. ............................................................................. .4 EPM loader executable .. ............................................................................. .an IDPNL_INSTADDITIONS_DYNCFG_LOADER .in EPM loader executable .in epmenv.cmd . For having no *CONFIG.SYS* changes, a special *EPM loader executable* is copyied to your *?:\OS2* directory (where ?: represents your boot drive). It's name is also *epm.exe* and it gets loaded instead of the *EPM* installed on your system, as the real *epm.exe* is installed in ?:\OS2\APPS and this directory by default comes after the *?:\OS2* in the PATH statement. This approach makes the complete dynamic configuration absolutely transparent to the system. When EPM.EXE is either loaded from command line or by double-clicking the *Enhanced Editor* icon within the *Workplace Shell*, this loader is launched instead of the true *EPM* and does the following: .ul compact - a special [.IDPNL_INSTADDITIONS_DYNCFG_ENVFILES environment settings file] is loaded. It holds the complete changes required for the standard environment that are required to run all of the [.IDPNL_INSTADDITIONS], this is in particular the case for the support of the [.IDPNL_INSTADDITIONS_DIRTREE]. - the true *EPM* executable is searched along the path (of course skipping the *EPM loader executable* itself during the search) and launched with the extended environment and the parameters supplied to the loader executable before. .. ............................................................................. .4 Extended environment .. ............................................................................. .an IDPNL_INSTADDITIONS_DYNCFG_EXTENV . All GUI utilities of the [=TITLE], and especially the [.IDPNL_INSTADDITIONS_DYNCFG_LOADER] load the extended environment defined by the [.IDPNL_INSTADDITIONS_DYNCFG_ENVFILES] coming with the [=TITLE]. The extended environment supports in particular the [.IDPNL_INSTADDITIONS_DIRTREE] of the [=TITLE] and further functionality by [.IDPNL_INSTADDITIONS_DYNCFG_NEWVARS] (being only available within the extended environment, of course). [=NOTE] .ul compact - The modified environment is - available only within the loaded *EPM* instance, so for example in a shell window of *EPM* or OS/2/eComStaion windows or fullscreens launched from within the loaded *EPM* instance - also loaded by GUI utilities of the [=TITLE], like the [.IDPNL_INSTADDITIONS_RECOMP recompilation utility RECOMP], so that all source files of the [=TITLE] can be found during recompilation. - in order to have the extended environment also available for other processes you can execute *epmenv.cmd* (being part of the [=TITLE]) within an OS/2 or eCS window or fullscreen. You may want to copy this script file *netlabs\bin\epmenv.cmd* of the installation path of the [=TITLE] to a directory along your *PATH*, so that it can easily be called from any of your programs. .at hi The installation routine of the [=TITLE] will not do so for you ! .at .. ............................................................................. .4 Environment files .. ............................................................................. .an IDPNL_INSTADDITIONS_DYNCFG_ENVFILES . Environment files define extensions to the environment, have the filename extension *.env* and concerning their contents they resemble somewhat to batch files: .ul compact - comment lines start with a colon in the first column - empty lines are ignored - the lines defining environment variables look like [inf:cmdref.inf SET] statements, just ommitting the *SET* keyword. This allows also to include the value of previously defined environment variables into the value of a new definition. The following lines would be valid: .sl compact - VAR1=my new variable - PATH=D:\MYDIR\BIN;%PATH% - BOOKSHELF=%BOOKSHELF%;D:\MYDIR\BOOK; .el - [=NOTE] the pseudo environment variables *BEGINLIBPATH* and *ENDLIBPATH* are not (yet) supported ! There are two kinds of environment files, wich are loaded one after the other in the following order: .pl compact tsize=3 - base or main environment files = The [=TITLE] comes with one main [.IDPNL_INSTADDITIONS_DYNCFG_ENVFILES_EPMENV] named *netlabs\bin\epm.env* below its installation directory [=NOTE] .ul compact - this file should NOT be modified. - if this file is missing, the extensions of the [=TITLE] will not work properly .el . (see also [.IDPNL_INSTADDITIONS_DIRTREE_NEPMD]). . - user environment files = these files do not exist by default and may be created by the user, defining modifications to the environment being defined by the main environment files. These files are never overwritten when reinstalling the [=TITLE] or deleted when the [=TITLE] is deinstalled. . (see also [.IDPNL_INSTADDITIONS_DIRTREE_USER]). .. ............................................................................. .5 epm.env .. ............................................................................. .an IDPNL_INSTADDITIONS_DYNCFG_ENVFILES_EPMENV . The [=TITLE] comes with the following [.IDPNL_INSTADDITIONS_DYNCFG_ENVFILES main environment file], defining all required extensions for the environment to make all additions work properly. Note that you should not modify this file, but create your own personal environment file in the directory *myepm\bin* with the same name, which is loaded after this main file. .fo off .textinclude ..\netlabs\bin\epm.env .fo on .. ............................................................................. .4 Search order for environment files .. ............................................................................. .an IDPNL_INSTADDITIONS_DYNCFG_SEARCHORDER .in __todo: link to recomp . Two [.IDPNL_INSTADDITIONS_DYNCFG_ENVFILES] are loaded when the environment has to be extended for launch of *EPM* or a GUI utility of the [=TITLE]. In some of the below cases the name of the executable is taken as the name of a searched environment file (still with extension *.env*), this would always be *epm* when the *EPM* is launched, and for example *recomp*, if the recompilation utility *recomp.exe* is called. The two files are loaded in the following order, where .ul compact - all relative path specifications refer to the installation directory of the [=TITLE] - only the first main and the first user environment file found according to the following scheme is loaded .pl compact tsize=3 bold underline - the main environment file = this environment file is .ul - first searched within the directory and the name of the calling executable .at fc=darkgray .  *\.env* .at - or within the *netlabs\bin* directory, being a file with the name .ul - of the executable and extension *.env* (if existing) .at fc=darkgray .  *netlabs\bin\.env* .at - or otherwise *epm.env* (if existing) .at fc=darkgray .  *netlabs\bin\epm.env* .at .el - the "user" environment file = this environment file is .ul - first searched within the current directory and the name of the calling executable .at fc=darkgray .  *\.env* .at - or within the *myepm\bin* directory, being a file with the name - of the executable and extension *.env* (if existing) .at fc=darkgray .  *netlabs\myepm\.env* .at - or otherwise *epm.env* (if existing) .at fc=darkgray .  *netlabs\myepm\epm.env* .at .el .. ............................................................................. .4 New NEPMD environment variables .. ............................................................................. .an IDPNL_INSTADDITIONS_DYNCFG_NEWVARS . The following environment variables are defined only in the [.IDPNL_INSTADDITIONS_DYNCFG_EXTENV] ot the [=TITLE]: _*environment variables defined by the environment file loader code:*_ .pl tsize=3 bold - NEPMD__ROOTDIR = installation directory of the [=TITLE] - NEPMD__LANGUAGE = three letter ISO language identifier for selected language . (currently only *eng* for english) - NEPMD__LOADEREXECUTABLE = full pathname of the [.IDPNL_INSTADDITIONS_DYNCFG_LOADER] - NEPMD__EPMEXECUTABLE = full pathname of the original *EPM* executable - NEPMD__MAINENVFILE = containing the pathname of the main environment file loaded, if any - NEPMD__ADDENVFILE = containing the pathname of the additional environment file loaded, if any. _*environment variables defined in netlabs\bin\epm.env:*_ .pl tsize=3 bold - NEPMD__NAME = contains the project name (not necessary - HELPNDXSHELF = bookshelf path for help index files (**.ndx) - EPMBINPATH = path for all executable binaries (**.exe) - EPMEXPATH = path for *EPM* executable files (**.ex) - EPMBARPATH = path for *EPM* toolbar files (**.bar) - EPMBMPPATH = path for *EPM* bitmap files (**.bmp) - EPMMODEPATH = path for mode related files, used e.g. for *EPM* syntax highlighting - EPMMACROPATH = path for E language source files, especially used for recopilation of *EPM* (**.e). .. ----------------------------------------------------------------------------- .3 Extended directory structure .. ----------------------------------------------------------------------------- .an IDPNL_INSTADDITIONS_DIRTREE . To allow clear disctinct between files provided by the [=TITLE] and user files, all files are separated in dedicated directories: .su H50 [=NOTE] .ul compact - The user should never modify any files within the directories provided for the *EPMBBS package* and the [=TITLE], but always make changes only to the directory structure for [.IDPNL_USAGE_CONFIGURE personal files]. This includes: - adding new files - copying files from the *EPMBBS package* and the [=TITLE] directories in order to make modifications to them. It is highly recommended not to modify the original files! .. ............................................................................. .4 Directory structure for the EPMBBS files .. ............................................................................. .an IDPNL_INSTADDITIONS_DIRTREE_EPMBBS . Files of the [.IDPNL_EPMBBS EPMBBS distribution] reside in the following directories: .fo off epmbbs bin **.exe **.ico of: [.IDPNL_EPMBBS_COMP_EPMAPP epmapp] [.IDPNL_EPMBBS_COMP_EPMSPCH epmspch] bar **.bar of: [.IDPNL_EPMBBS_COMP_EPMAPP epmapp] bmp **.bmp of: [.IDPNL_EPMBBS_COMP_EPMAPP epmapp] [.IDPNL_EPMBBS_COMP_EPMSPCH epmspch] [.IDPNL_EPMBBS_COMP_EPMBMPS epmbmps] ex **.ex of: [.IDPNL_EPMBBS_COMP_EPMAPP epmapp] [.IDPNL_EPMBBS_COMP_EPMSPCH epmspch] keywords epmkwds.** of: [.IDPNL_EPMBBS_COMP_EPMAPP epmapp] macros **.e of: [.IDPNL_EPMBBS_COMP_EPMMAC epmmac] [.IDPNL_EPMBBS_COMP_EPMMAC2 epmmac2] [.IDPNL_EPMBBS_COMP_EPMSPCH epmspch] attr **.e of: [.IDPNL_EPMBBS_COMP_EPMATR epmatr] ebooke ** of: [.IDPNL_EPMBBS_COMP_EBOOKE ebooke] lampdq ** of: [.IDPNL_EPMBBS_COMP_LAMPDQ lampdq] myassist ** of: [.IDPNL_EPMBBS_COMP_EPMASI epmasi] samples **.e of: [.IDPNL_EPMBBS_COMP_EPMSMP epmsmp] ndx **.ndx of: [.IDPNL_EPMBBS_COMP_EPMAPP epmapp] book **.inf of: [.IDPNL_EPMBBS_COMP_EPMBK epmbk] dll **.dll of: [.IDPNL_EPMBBS_COMP_EPMDLL epmdll] help **.hlp of: [.IDPNL_EPMBBS_COMP_EPMHLP epmhlp] samples c ** of: [.IDPNL_EPMBBS_COMP_EPMCSAMP epmcsamp] include **.h of: [.IDPNL_EPMBBS_COMP_EPMCSAMP epmcsamp] src ** of: [.IDPNL_EPMBBS_COMP_EPMCSAMP epmcsamp] dde ** of: [.IDPNL_EPMBBS_COMP_EPMDDE epmdde] rexx ** of: [.IDPNL_EPMBBS_COMP_EPMREXX epmrex] .fo on .. ............................................................................. .4 Directory structure for extensions of the netlabs.org EPM Distribution .. ............................................................................. .an IDPNL_INSTADDITIONS_DIRTREE_NEPMD . Files of the [=TITLE] reside in the following directories: .fo off [=DISTDIR] bin **.exe program files book **.inf this helpfile bmp **.bmp bitmaps ex **.ex macro compiled binaries mode ** files defining EPM modes macros **.e macros .fo on .. ............................................................................. .4 Directory structure for personal extensions .. ............................................................................. .an IDPNL_INSTADDITIONS_DIRTREE_USER . Files for [.IDPNL_USAGE_CONFIGURE personal configuration extensions] are to be placed into the following directory tree: .fo off [=USERDIR] autolink **.ex user binaries for automatic load on *EPM* start bar **.bar user toolbar files bin **.bin user .env files bmp **.bmp user bitmaps ex **.ex user binaries for dynamic load mode ** files defining EPM modes macros **.e user macros ndx **.ndx user help index files .fo on .. ----------------------------------------------------------------------------- .3 Extended recompilation support .. ----------------------------------------------------------------------------- .an IDPNL_INSTADDITIONS_RECOMP .in RECOMP . Althouth one of the major goals of [=TITLE] is to make any recompilations of *EPM* obsolete, it comes with a utility to greatly support and ease the recompilation. Usually, when recompiling *EPM* manually, you would call its macro compiler after having setup the *EPMPATH* variable according the original and your additional macro source files, and that several times until possible errors are solved. After that you would close all open *EPM* windows and open a new one in order to check if all works as expected. The *RECOMP* utility coming with [=TITLE], automates a lot of these steps to your convenience. It works as follows: .ul compact - saves file lists of currently open *EPM* windows (optional) - switches to unsaved files and aborts to let you save or discard them (optional) - compiles *EPM* - in case of success: - closes all open *EPM* windows - reloads all previously open *EPM* windows using the saved filelists, restoring window and cursor positions (optional) - in case of a compile error: ..- loads the errant file, places the cursor to the error location and displays the error message .. of the *EPM* macro compiler - loads the compile log (optional) Using the reload function makes the work much easier especially when developing macros for *EPM*. .. ----------------------------------------------------------------------------- .3 Extended configuration repository .. ----------------------------------------------------------------------------- .an IDPNL_INSTADDITIONS_REGISTRY . The [=TITLE] provides an extended configuration repository, which overcomes the limitation of *OS/2* or *eComStation* initialization files, these support only a two-dimensional namespace. Instead, very similar to a registry, the configuration repository supports a hierarchical namespace. See the *NEPMD Programming Reference* for more technical details when using it in your own macro source code. .. ----------------------------------------------------------------------------- .3 Autolink feature for EPM extensions .. ----------------------------------------------------------------------------- .an IDPNL_INSTADDITIONS_AUTOLINK . *EPM* extension modules (**.ex) that need to be linked on startup of the editor can be placed into the directory .sl compact - *[.IDPNL_INSTADDITIONS_DIRTREE_USER myepm]\autolink* .el in order to link them automatically. This relieves the end user form either adding the module to a link list within the [.IDPNL_USAGE_CONFIGURE_REXXPRF] or to [.IDPNL_USAGE_CONFIGURE_MYCNF] just for to link an *EPM* extension at startup. .. ----------------------------------------------------------------------------- .3 Readme text files matrix .. ----------------------------------------------------------------------------- .an IDPNL_INSTADDITIONS_README . The following files of the original [.IDPNL_WHAT_EPM EPM package] have not been included in the distribution, but have been either .ul compact - integrated into this online help in a modified version (in whole or in part) or - renamed .pl bold compact tsize=5 - epm603b.zip - EPMBBS.TXT = section [.IDPNL_WHAT_EPM] - epm603b.zip - README.TXT = deleted - epm603b.zip - epmapp.zip - README.EPM = deleted (some parts are yet to be integrated here) - epm603b.zip - epmspch.zip - README.TXT = section [.IDPNL_SPCHREF] The following files of the original [.IDPNL_WHAT_EPM EPM package] is shipped with with the distribution, but nevertheless included here .pl bold compact tsize=5 - epm603b.zip - epmapp.zip - EMHHELP.QHL = section [.IDPNL_QREF] .. ============================================================================= .2 Appendix: The [=DOCTITLE] Editor Additions .. ============================================================================= .an IDPNL_USEADDITIONS . [=TOPICS] .su V30 1 .. ----------------------------------------------------------------------------- .3 EPM window enhancements .. ----------------------------------------------------------------------------- .an IDPNL_USEADDITIONS_NEWFRAME . The *EPM* frame window and the following controls controls related to it have been extended: .su H50 .. ............................................................................. .4 Extended statusline .. ............................................................................. .an IDPNL_USEADDITIONS_NEWFRAME_STATUSLINE . The statusline is extended by showing .ul compact - the hex/ASCII value of the charactor under the cursor - the current margin settings - the tabs setting - the [.IDPNL_MODE] The tag *Modified* was removed, as replacement the colors of the statusline and the contents of the titlebar reflect the save status of a given file. Future releases of the [=TITLE] will allow the free configuration of the information included in the statusline. .. ............................................................................. .4 Extended titletext .. ............................................................................. .an IDPNL_USEADDITIONS_NEWFRAME_TITLETEXT . The text in the titlebar is extended by showing .ul compact - the full filename and *(date - time)* if the file was not modified - the full filename and *(Modified)* if the file was modified - the filename only if the file is a temporary file starting with a '.' - the file was altered by another application meanwhile - the loaded file is checked for background modification - every time when a file is slected within an edit ring - when the user clicks into the edit window while *EPM* was not active (did not have input focus) .. ............................................................................. .4 Message log .. ............................................................................. .an IDPNL_USEADDITIONS_NEWFRAME_MESSAGELOG . Many unimportant messages are not anylonger written to the message log, so the message log gets easier to read. Nevertheless all messages are still being displayed in the messageline. The message log can be displayed by a double-click onto the message line or by the command *messagebox*. .. ............................................................................. .4 Menu .. ............................................................................. .an IDPNL_USEADDITIONS_NEWFRAME_MENU . [=NOTE] .ul compact - The [=TITLE] implements changes only to the standard menu *STD*. If you configure to use the *OVSH* or *FEVSH* menus, then none of the extensions of the [=TITLE] are available - many hint texts normally being displayed in the message line per menu item are not yet included The following additions are included: .ul compact - File menu - Revert . (Reload file from disk after throwing away all changes, ask if modified) - Open folder . (Open the WPS folder where the current file is located.) - Default view - Icon view - Icon flowed view - Tree view - Details view - Edit menu - (No changes, the stack commands are just activated) - Search menu - Global find next . (Search next occurance in all files of the edit ring) - Global change next . (Change next occurance in all files of the edit ring) - Toggle direction (Changes search direction) - Command menu - Recompile EPM.E... . (Opens RECOMPILE.EXE for recompiling the EPM macros) - Help menu - NEPMD runtime information . (Lists some internal settings and pathes usefull for a bug report) - View NEPMD Users Guide - View NEPMD Users Guide - Current word - View NEPMD Programming Guide - View NEPMD Programming Guide - Current word .. ............................................................................. .4 Key accelerators .. ............................................................................. .an IDPNL_USEADDITIONS_NEWFRAME_KEYS . The following additional key kombinations are implemented in the [=TITLE]: .pl compact tsize=20 break=none bold - Ctrl+A = select all text . (same as Ctrl+/) - Ctrl+V = Global find next - Ctrl+- = toggle search direction - ALT+Sh+Up = move line at cursor up . (useful after duplicating a line with Ctrl+K) - ALT+Sh+Down = Move line at cursor down . (useful after duplicating a line with Ctrl+K) - ALT+Sh+Left = Move char at cursor left (to correct spelling errors) - ALT+Sh+Right = Move char at cursor right . (to correct spelling errors) - Ctrl+F1 = extended toggle case . (lower -> mixed -> upper -> lower) - Home = toggle cursor position . (first word -> col 1 -> first word) - Enter = Keep indent in stream mode (also works with tab chars) - Alt+1 = works with output from GNU grep - Ctrl+PgUp = Undo: scroll to last changes . (hint: keep Ctrl pressed!) - Ctrl+PgDown = Undo: scroll to next changes . (hint: keep Ctrl pressed!) - Ctrl+8 = passist (find matching identifier, added for german keyboards) - ScrollLock = scrolling is changed to vertically scroll the text under the cursor. Horizontal scroll is not activated. . (Usable for reading texts) .. ............................................................................. .4 Mouse handling .. ............................................................................. .an IDPNL_USEADDITIONS_NEWFRAME_MOUSE . The following mouse handlers are implemented in the [=TITLE]: .pl tsize=35 break=none - *mouse action* = *executed* - MB2 click on messageline = executes *tagscan* command . Shows a listbox with tags (function names) for the current file. On doubleclick on an item the cursor jumps to that tag in the file. - MB2 click on statusline = open up the standard *EPM* settings dialog - MB1 doubleclick on URL = open system default web browser with URL . (available for all loaded files !) .. ............................................................................. .4 Workaround for mark bug .. ............................................................................. .an IDPNL_USEADDITIONS_NEWFRAME_MARKBUG . The E Toolkit causes a bug occurring when you want to mark a highlighted word or block, especially when the mark ends at at the end of a line. There it was nearly impossible to get the last character of the line marked with the mouse and extended marking activated. As a workaround, everytime when the mouse marking begins, the highlighting is switched temporarily off. The disadvantage of this is, that the last cursor position after marking will get lost, if the window is scrolled by the mark operation. In order to avoid a jump back to the begin of the marked area, the end of the marked text is centered vertically after the mark operation. .. ----------------------------------------------------------------------------- .3 Bracket matching/passist .. ----------------------------------------------------------------------------- .an IDPNL_INSTADDITIONS_NEWMATCH . While typing one of the closing bracket characters .fo off ) } ]] .fo on . the matching char is searched and highlighted if found. [=NOTE] .ul compact - this mechanism still uses the defs from *balance.e*, not the passist function. - The *passist* procedure (moving the cursor to the matching identifier) is extended to work with TeX conditions and environments, based on code from Petr Mikulik. Extensions for other modes will follow. - Petr's PMCSTeX package shows also how to extend the reflow and tagscan definitions for the TeX mode. That will be integrated in further versions. - You can use the keys *Strg+[[*, *Strg+]]* and *Strg+8* (new) to execute the very useful *passist* procedure. .. ----------------------------------------------------------------------------- .3 New filetype determination .. ----------------------------------------------------------------------------- .an IDPNL_INSTADDITIONS_EPMMODE . The [=TITLE] comes with a new scheme to identify file types for a given filename, where the filename extensions and/or basenames of files are attributes of the new *EPM* mode. In order to extend the list of filename extensions and/or basenames to be a supported by a given mode, the user can extend and/or modify the mode definitions. See the following section for details: .ul compact - [.IDPNL_MODE] .. ----------------------------------------------------------------------------- .3 Extended keyword hilighting .. ----------------------------------------------------------------------------- .an IDPNL_INSTADDITIONS_EPMKWDS . The [=TITLE] comes with a completely new scheme to specify keywords to be highlighted for a given file type. This bases on the new *EPM* mode scheme and the way that a given mode can be defined and/or extended. See the following section for details: .ul compact - [.IDPNL_MODE] .. ============================================================================= .2 Appendix: [=DOCTITLE] Configuration file formats .. ============================================================================= .an IDPNL_FORMAT . [=TOPICS] .su V30 1 .. ----------------------------------------------------------------------------- .3 netlabs\mode\global.ini .. ----------------------------------------------------------------------------- .an IDPNL_FORMAT_GLOBALINI . The file *netlabs\mode\global.ini* defines some symbols used for all modes. The following settings are defined here: .su H50 .at fc=red It is recommended to _*NOT*_ .at .ul compact - modify the file *netlabs\mode\global.ini* - create the file *myepm\mode\global.ini* (would hide this file !) Instead create [.IDPNL_FORMAT_CUSTOMINI] to extend and modify definitions on a per-mode basis ! .. ............................................................................. .4 Color names .. ............................................................................. .an IDPNL_FORMAT_GLOBALINI_COLORNAMES . In the section *[[COLORS]]* names for all 16 supported colors are defined and the vcalue internally used by *EPM* is associated to it. Additionally, the two symbols specify to use the default color of *EPM*, mostly used for defining a transparent background: .fo off [[COLORS]] TRANSPARENT = -1 DEFAULT = -1 BLACK = 0 BLUE = 1 GREEN = 2 CYAN = 3 RED = 4 MAGENTA = 5 BROWN = 6 PALEGREY = 7 DARKGREY = 8 LIGHTBLUE = 9 LIGHTGREEN = 10 LIGHTCYAN = 11 LIGHTRED = 12 LIGHTMAGENTA = 13 YELLOW = 14 WHITE = 15 .fo on .. ............................................................................. .4 Keyword type symbols .. ............................................................................. .an IDPNL_FORMAT_GLOBALINI_KEYWORDSYMBOLS . In the section *[[SYMBOLS]]* standard keyword types are defined that are being used in most *EPM* modes. Default background and foreground colors are assigned to these symbols: .fo off [[SYMBOLS]] COMMENT = DEFAULT BLUE LITERAL = DEFAULT GREEN SPECIAL = DEFAULT RED OPERATOR = DEFAULT BLACK DIRECTIVE = DEFAULT MAGENTA FUNCTION = DEFAULT MAGENTA KEYWORD = DEFAULT MAGENTA OPTION = DEFAULT MAGENTA MACRO = DEFAULT RED SYMBOL = DEFAULT MAGENTA GLOBALVAR = DEFAULT RED BREAKCHAR = DEFAULT DEFAULT ENDCHAR = DEFAULT DEFAULT .fo on .. ----------------------------------------------------------------------------- .3 netlabs\mode\\default.ini .. ----------------------------------------------------------------------------- .an IDPNL_FORMAT_DEFAULTINI . The file *netlabs\mode\\default.ini* defines settings used for a given mode, where ** is the name of the *EPM* mode. The following settings are defined here: .su H50 .at fc=red If you intend to extend the definitions for an existing mode, it is recommended to _*NOT*_ .at .ul compact - modify the file *netlabs\mode\\default.ini* - create the file *myepm\mode\\default.ini* (would hide the above file !) .el In this case create the file [.IDPNL_FORMAT_CUSTOMINI] instead. .. ............................................................................. .4 Mode settings .. ............................................................................. .an IDPNL_FORMAT_DEFAULTINI_GLOBAL . In the section *[[GLOBAL]]* the following settings can be defined: .pl tsize=3 bold - CHARSET = (mandantory) defines the characters being allowed in keywords - CASESENSITIVE = (mandantory) defines wether keywords should be treated case sensitive or not. Note that in opposite to the original keword highlighting scheme of *EPM* you cannot mix case-sensitive and case-insensitive keywords. - DEFEXTENSIONS = (optional) defines a list of filename extensions (without the period) for that the mode should be used. Make sure that the same filename extension is not used within several mode definitions, as the first one wins. - DEFNAMES = (optional) defines a list of basenames (that is a filename without extension and without the period) for that the mode should be used. Make sure that the same basename is not used within several mode definitions, as the first one wins. [=NOTE] .ul compact - either *DEFEXTENSIONS* or *DEFNAMES* must be specified, otherwise a given mode definition will never be used ! - in order to support syntax highlighting for an external command processor, specifiy the executable name of the processor without filename extension within the *DEFEXTENSIONS* setting (e.g. *OBJGEN* for objgen.cmd) _*Example for the mode MAKE*_: .fo off [GLOBAL] CHARSET=abcdefghijklmnopqrstuvwxyz!.ABCDEFGHIJKLMNOPQRSTUVWXYZ CASESENSITIVE=0 DEFEXTENSIONS=MAK IN DEFNAMES=makefile GNUmakefile .fo on .. ............................................................................. .4 Keyword type symbols .. ............................................................................. .an IDPNL_FORMAT_DEFAULTINI_SYMBOLS . In the section *[[SYMBOLS]]* standard keyword types can be overriddden or new ones can be defined. _*Example for the mode CONFIGSYS*_ (adding new mode specific symbols): .fo off [[SYMBOLS]] DRIVER = DEFAULT BROWN EXECUTE = DEFAULT CYAN ENVVARS = DEFAULT GREEN DOSKEYWORDS = DEFAULT MAGENTA OS2KEYWORDS = DEFAULT RED .fo on .. ----------------------------------------------------------------------------- .3 myepm\mode\\custom.ini .. ----------------------------------------------------------------------------- .an IDPNL_FORMAT_CUSTOMINI . The file *myepm\mode\\custom.ini* defines user-defined extensions to a given mode, where ** is the name of the *EPM* mode. The following settings may be defined here: .su H50 .at fc=red If you intend to create a completely new mode definition, you need to create the file *myepm\mode\\default.ini* instead. .at .. ............................................................................. .4 Mode setting extensions .. ............................................................................. .an IDPNL_FORMAT_CUSTOMINI_GLOBAL . In the section *[[GLOBAL]]* the following settings can be defined: .pl tsize=3 bold - CHARSET = overrides the definition of the characters being allowed in keywords - CASESENSITIVE = ovverrides wether keywords should be treated case sensitive or not. - ADD__DEFEXTENSIONS = defines additions to the list of filename extensions (without the period) for that the mode should be used. Make sure that the same filename extension is not used within several mode definitions, as the first one wins. - ADD__DEFNAMES = defines additions to the list of basenames (that is a filename without extension and without the period) for that the mode should be used. Make sure that the same basename is not used within several mode definitions, as the first one wins. .. ............................................................................. .4 Keyword type symbols .. ............................................................................. .an IDPNL_FORMAT_CUSTOMINI_KEYWORDSYMBOLS . In the section *[[SYMBOLS]]* standard keyword types can be overriddden or new ones can be defined. _*Example:*_ .fo off [[SYMBOLS]] NEWSYMBOL = DEFAULT GREEN .fo on .. ----------------------------------------------------------------------------- .3 netlabs\mode\\**.hil .. ----------------------------------------------------------------------------- .an IDPNL_FORMAT_NETLABSHIL . The files *netlabs\mode\\**.hil* provide NEPMD definitions for keywords to be highlighted. All files with the filename extension *.hil* in this mode directory are used for the syntax highlighting, given that in the *myepm\mode\* directory no file with the same name exists, hiding the same file in the *netlabs\mode\* directory. See also the .su H50 .. ............................................................................. .4 Format of hil files .. ............................................................................. .an IDPNL_FORMAT_NETLABSHIL_DETAILS . The format of the highlighting files of the [=TITLE] resembles somewhat to those of textmode initialisation files, although it is not compatible in all aspects. The following rules apply: .ul compact - comment character is the semicolon *;* but only if it is placed in the first column of a line - all sections must have the name of valid keyword type symbols, being defined in the section *[[SYMBOLS]]* within the files - [.IDPNL_FORMAT_GLOBALINI] and/or - [.IDPNL_FORMAT_DEFAULTINI] and/or - [.IDPNL_FORMAT_CUSTOMINI] .el where the last definition wins ! The color is then determined by the keyword type symbol. Within any section keywords are not defined by *name=value* definitions (like in text ini files), but by one the following sequences: .pl tsize=3 bold - keyword = simple keyword definition - start__string end__string [[escape__character]] [[start__position]] = definition to define a string of variable length, being delimited by th given start and end string. Optionally .ul compact - an escape character can be specified, which allows to use the end character within the string withount ending the hilite - this makes sense only if the end string is only a single character long. - a start position, which defines the column at which the string to be hilghlited must start at. Thi si smostly be used for comments which need to start at the very first column. .el . [=NOTE] .ul compact - *end__string* and *escape__character* may have the value *NONE:* to allow definition of *start__position* without using an end string and/or an escape character. - *end__string* may have the value ** to automatically hilite until the end of a line. Unfortunately this does not work when ####TODO The following keyword type symbols are treated specially: .pl compact bold tsize=3 - COMMENT LITERAL = the entries in the sections for these type are always treated as a delited string - SPECIAL OPERATOR = the entries of this section are always treated as SPECIAL characters . (refer to the NEPMD Programming Guide - EPM Syntax highlighting support) - BREAKCHAR ENDCHAR = the entries in the sections for these types should be one character long only and are always treated as break characters and end characters . (refer to the NEPMD Programming Guide - EPM Syntax highlighting support) [=NOTE] .ul compact - you may append any defined keyword type symbol name to any definition in order to override the color for one entry .. ----------------------------------------------------------------------------- .3 myepm\mode\\**.hil .. ----------------------------------------------------------------------------- .an IDPNL_FORMAT_MYEPMHIL . The file *myepm\mode\\**.hil* contain user-defined keywords to be highlighted. All files with the filename extension *.hil* in a mode directory are used for the syntax highlighting, Note that a file in the *myepm\mode\* directory hides a file with the same name in the *netlabs\mode\* directory See also the .su H50 .. ............................................................................. .4 format of hil files .. ............................................................................. .an IDPNL_FORMAT_MYEPMHIL_DETAILS . .mi IDPNL_FORMAT_NETLABSHIL_DETAILS .. ============================================================================= .2 Appendix: Standard EPM configuration .. ============================================================================= .an IDPNL_CONFIG . [=TOPICS] .su V30 1 .. ----------------------------------------------------------------------------- .3 Using the mycnf.e scheme .. ----------------------------------------------------------------------------- .an IDPNL_CONFIG_MYCNF . For future versions of the [=TITLE] it is planned to replace all configuration constants with dynamic values, being stored within the [.IDPNL_INSTADDITIONS_REGISTRY] and making them configurable by a GUI. This will hopefully make all recompilations of *EPM* obsolete. This has not yet been achieved, only a few of the EPMBBS constants have been replaced until now, so many of the constants are still used. In order to anyway get a more usable *EPM* now without creating an own mycnf.e configuration file, some of them have been [.IDPNL_CONFIG_CONSTANTS reworked]. If any of the configuration constants have to be overridden, perform the following steps: .ul compact - create the file *myepm\macros\mycnf.e* and include any of the desired [.IDPNL_CONFIG_CONSTANTS configuration constants]. - modify it to your needs - don't forget to insert the keyword .at hilite const .at before the first configuration constant - launch the [.IDPNL_INSTADDITIONS_RECOMP recompilation utility RECOMP] from [.IDPNL_USAGE_WPSFOLDER] - recompile *EPM* .. ----------------------------------------------------------------------------- .3 Reworked configuration constants .. ----------------------------------------------------------------------------- .an IDPNL_CONFIG_CONSTANTS . In INIT.E all standard configuration constants are defined that are being used during compilation of *EPM*. Many of the available features are disabled by default though within the [.IDPNL_EPMBBS EPMBBS distribution], so the [=TITLE] has modified a lot of the configuration values in order to activate most of the features. This makes it mostly obsolete to create the file *myepm\macros\mycnf.e*, which would be the alternative to override these constants: The [=TITLE] has modified the following constants .fo off Constant Old default Changed default value value ------------------------ ----------- --------------- REFLOW__LIKE__PE 0 1 SMARTFILE 0 1 SMARTSAVE 0 1 WANT__SEARCH__PATH 0 1 WANT__ALL 0 1 WANT__EPM__SHELL 0 1 WANT__LONGNAMES 0 1 WANT__STACK__CMDS 0 'SWITCH' MY__STACK__CMDS (undefined) 1 WANT__CUA__MARKING 0 'SWITCH' MY__CUA__MARKING__SWITCH (undefined) 0 WANT__DM__BUFFER 0 1 WANT__STREAM__MODE 0 'SWITCH' MY__STREAM__MODE (undefined) 1 WANT__STREAM__INDENTED 0 1 ENHANCED__ENTER__KEYS 0 1 SUPPORT__BOOK__ICON 1 0 WANT__BRACKET__MATCHING 0 1 WANT__KEYWORD__HELP 0 1 WANT__PROFILE 0 'SWITCH' MY__REXX__PROFILE (undefined) 1 TOGGLE__ESCAPE 0 1 WANT__TAGS 0 1 SUPPORT__USERS__GUIDE 0 1 SUPPORT__TECHREF 0 1 SUPPORT__USER__EXITS 0 1 LOCATE__CIRCLE__STYLE 1 5 LOCATE__CIRCLE__COLOR1 16777220 16777231 LOCATE__CIRCLE__COLOR1 16777218 16777216 RESPECT__SCROLL__LOCK 0 1 REXX__SYNTAX__ASSIST 0 1 HOST__SUPPORT 'STD' '' .fo on The MY__** constants are used to initialize the corresponding constants, when they are set to 'SWITCH'. Then global variables are used to switch the behaviour on-the-fly. .. ----------------------------------------------------------------------------- .3 replaced configuration constants .. ----------------------------------------------------------------------------- .an IDPNL_CONFIG_REPLACED . Obsolete constants for versions prior to 6.03b are removed (commented out in init.e). Currently some constants are replaced by dynamic values stored in the [.IDPNL_INSTADDITIONS_REGISTRY], and some new values control features being additionally implemented by the [=TITLE]. Until there exists a GUI to configure these keys, some commands are used to change the behaviour, which will work on-the-fly, without recompiling EPM.E! .pl tsize=3 - *DragAlwaysMarks 0|1* (default: 1) = When set to 1, every mouse drag will start a new mark, even if a mark already exists. This avoids the message 'Text is already marked...' . (Replaces constant DRAG__ALWAYS__MARKS) - *MouseStyle 1|2* (default: 1) = defines the mark behaviour of mouse button 1 and 3: .ul compact - *1* MouseButton 1: block mark, MouseButton 3: char mark - *2* MouseButton 3: block mark, MouseButton 1: char mark .el . (Replaces constant MOUSE__STYLE) - *MouseMarkWorkaround 0|1* (default: 1) = enables the workaround for the mark bug - *HomeRespectIndent 0|1* (default:1) = enables the Home key to respect the indent of the current line .. ============================================================================= .2 Appendix: EPM Quick Reference .. ============================================================================= .an IDPNL_QREF . [=TOPICS] .su V30 .. ----------------------------------------------------------------------------- .3 Function Key Definitions .. ----------------------------------------------------------------------------- .an IDPNL_QREF_FNKEYS . [=NOTE] Keys marked with (**) are defined by Presentation Manager through *EPM*. .pl break=none bold compact - Key = *Description* - F1 = Help (**) - F2 = Save & continue - F3 = Quit without save - F4 = Save and quit - F5 = Open Dialog - F6 = Show draw options - F7 = Change filename - F8 = Edit new file - F9 = Undo current line - F10 = Activate Menu (**) - F11 = Previous file - F12 = Next file . - a-F1 = insert box characters - a-F2 = -- not used -- - a-F3 = -- not used -- - a-F4 = Close window (**) - a-F5 = Restore Window (**) - a-F6 = -- not used -- - a-F7 = Move window (**) - a-F8 = Size window (**) - a-F9 = Minimize window (**) - a-F10 = Maximize window (**) - a-F11 = -- not used -- - a-F12 = -- not used -- . - s-F1 = Scroll left - s-F2 = Scroll right - s-F3 = Scroll up - s-F4 = Scroll down - s-F5 = Center line vertically - s-F6 = -- not used -- - s-F7 = -- not used -- - s-F8 = -- not used -- - s-F9 = -- not used -- - s-F10 = -- not used -- - s-F11 = -- not used -- - s-F12 = -- not used -- . - c-F1 = Uppercase word - c-F2 = Lowercase word - c-F3 = Uppercase selection - c-F4 = Lowercase selection - c-F5 = Cursor to beginning of word - c-F6 = Cursor to end of word - c-F7 = Shift selection to the right - c-F8 = Shift selection to the right - c-F9 = -- not used -- - c-F10 = -- not used -- - c-F11 = -- not used -- - c-F12 = -- not used -- .. ----------------------------------------------------------------------------- .3 Alt-key Function Summary .. ----------------------------------------------------------------------------- .an IDPNL_QREF_ALTKEYS .pl break=none bold compact - Key = *Description* - a-A = Adjust selected area, blank old - a-B = Select Block - a-C = Copy Selected area to cursor - a-D = Delete Selected area - a-E = cursor to End of Selected area - a-F = Fill Selected Area Dialog - a-G = -- not used -- - a-H = -- not used -- - a-I = -- not used -- - a-J = Join (with following line) - a-K = -- not used -- - a-L = Select Line - a-M = Move selected area - a-N = keyin file Name at cursor - a-O = Overlay selected area at cursor - a-P = reformat following Paragraph - a-Q = -- not used -- - a-R = Reflow selected area - a-S = Split line at cursor - a-T = cenTer Text in selected block, or within margins - a-U = Unmark selected text - a-V = -- not used -- - a-W = mark Word - a-X = -- not used -- - a-Y = cursor to beginning of mark - a-Z = Select text, character mode - a-1 = Edit file named on current line - a-2 = -- not used -- - a-3 = -- not used -- - a-4 = -- not used -- - a-5 = -- not used -- - a-6 = -- not used -- - a-7 = -- not used -- - a-8 = -- not used -- - a-9 = -- not used -- - a-0 = Same as a-= - a-- = highlight cursor - a-= = Execute the current line or the selected set of lines as commands - a-/ = move to next bookmark - a-\ = move to previous bookmark .. ----------------------------------------------------------------------------- .3 Ctrl-key Function Summary .. ----------------------------------------------------------------------------- .an IDPNL_QREF_CTRLKEYS .pl break=none bold compact - Key = *Description* - c-A = -- not used -- - c-B = Bookmark list - c-C = Change next - c-D = Delete word - c-E = Erase to end of line - c-F = repeat previous Find command - c-G = list files in rinG - c-H = -- not used -- - c-I = command dIalog - c-J = -- not used -- - c-K = duplicate line - c-L = copy current Line to command line - c-M = Set Bookmark dialog - c-N = Next file in ring - c-O = Open Dialog - c-P = Previous file in ring - c-Q = Swap to/from .ALL file - c-R = Record Keys/ End Record - c-S = bring up Search dialog - c-T = Play Keys Back into editor - c-U = Activate Undo dialog - c-V = -- not used -- - c-W = -- not used -- - c-X = force syntaX expansion - c-Y = activate Style dialog - c-Z = -- not used -- - c-2 = Enter NULL character - c-3 = -- not used -- - c-4 = -- not used -- - c-5 = -- not used -- - c-6 = Enter '' character - c-7 = -- not used -- - c-8 = -- not used -- - c-9 = Enter '{' character (left brace) - c-0 = Enter '}' character (right brace) - c-Enter = like enter, no new line (can be reconfigured via Options/Settings) - c-Backspace = Delete line - c-Tab = Enter a tab character - c-[[ = Move to matching bracket - [[]], {}, (), <> - c-]] = Move to matching bracket - [[]], {}, (), <> .. ----------------------------------------------------------------------------- .3 Edit and Termination Commands .. ----------------------------------------------------------------------------- .an IDPNL_QREF_CMD_EDITTERM . _*How To Edit Additional Files during an EDIT session:*_ .pl bold compact - OPEN [[d:]][[\path\]]filename.ext = will load the file into a separate window - EDIT,ED, E [[d:]][[\path\]]filename.ext = will load the file into the ring of the current window, if it's not already present in the window. _*How to exit the Enhanced Editor*_ .pl bold compact - FILE, F command (F4) = saves and then removes the file from memory. - QUIT,Q command (F3) = removes the file from memory without saving. If QUIT is entered after any data has been altered, the "Quitting file" dialog will be presented. Select Discard to quit, Cancel to continue. - CLOSE = quit all files in window and close window. .. ----------------------------------------------------------------------------- .3 Command Summary .. ----------------------------------------------------------------------------- .an IDPNL_QREF_CMD_SUMMARY .pl bold - Command = Syntax - [[L]] /pattern/[[c|e]][[m|a]][[-|+]] = locate string - C /old/new/[[ c | e ]][[ m | a ]][[ - | + ]] = change string - NAME, N [[filespec]] = renames for next save - PRINT = print the file - SAVE, S [filespec] [/T] = save file - PUT filespec = saves selected area - APPEND [[filespec]] = appends selected " " - GET filespec = load file - FILL chr = fills selected area - BOX [1|2|C|P|A|E|R] = draw boxes - KEY ## = chr-repeat horizontally - LOOPKEY ## = chr-repeat vertically - LIST, FINDFILE filespec = search file in directory - MATCHTAB [ON | OFF] = set tab matchin on/off - EXPAND [ON | OFF] = set expand tab on/off - MArgins left right new-pgrp = set margins - TABS ## or t1 t2...t32 = set tabs - AUTOSAVE ## = sets ## of change before autosave - QTIME,QT = shows current time - QDATE,QD = shows current date - DRAW [1][2][3][4][5][6][B][/any char.] = draw with grahic characters - MATH expression = evaluate mathematical expression .sl compact - Operators -,+,**,/,% - Numbers decimal, hex (leading x), - or octal (leading o) - Example: math 10+xff-o77 .el - MATHX = same as math, result shown in hex - MATHO = same as math, result shown in octal - ASC [[char]] = gives Ascii value of char, .sl compact - e.g. ASC X = 88. - If no argument specified, uses current text char. .el - CHR ## = shows character corresponding to Ascii ## - ADD = adds marked column of numbers - SORT = sorts selected area or all - ######## = goto line ######## - +[[##]] = down ## lines (or EOF) - -[[##]] = up ## lines (or TOF) - XCOM = [[internal command]] - [[DOS]] [[command]] = Any OS/2 command can be simply typed on the command line. Output must be redirected or it will be lost. - OS2 [[command]] = Opens an OS/2 command window and executes [[command]] in it. - PROFILE [[ON | OFF]] = If set ON, a PROFILE.ERX is searched for along the *EPMPATH* and *PATH* whenever a new edit window is opened. If found, it will be called and given the *EPM* command line arguments. See the section on Rexx for details on writing a profile. The setting will be saved by Options / Save Options. .. ----------------------------------------------------------------------------- .3 Cursor Movement and Mouse Actions .. ----------------------------------------------------------------------------- .an IDPNL_QREF_CMD_CMM_ACTIONS _*Cursor movements*_ .pl compact bold - Up/dn/left/right = Moves cursor one position up/down/left/right. - Home/End = Moves cursor to column 1/end of the current line. - Page up/down = Displays text above/below current page. - Ctrl-Home/End = Moves cursor to top/bottom line of file. - Tab/Shift-tab = Moves cursor to next/previous tab stop. - Ctrl-PgUp/PgDn = Moves cursor to top/bottom of screen. - Ctrl-left/right = Moves cursor to beginning of word left/right of cursor. _*Mouse actions*_ .pl compact bold - Button 1 click = Move cursor to mouse. - Button 1 click & drag = Block select as you drag. - Button 2 click & drag = Line select as you drag. If inside a selected area, moves selected text; w/ Ctrl, does copy - Button 1 + Ctrl key & drag = Character selection as you drag. - Button 1 double click = Unmark - Button 2 double click = Move cursor to mouse and select the word. .. ----------------------------------------------------------------------------- .3 Copying, Moving, and Deleting text .. ----------------------------------------------------------------------------- .an IDPNL_QREF_CMD_CMD_TEXT .ol compact - Press a Text-Select key (see list below) once at the beginning of the text and again at the end of the text to be copied, moved, or deleted. - To copy or move, move the cursor to the desired destination. - Press an Operator key (see list below). - This is for Advanced Mark Mode; in the base mode, marking works as in all other PM applications. Options / Preferences to switch mark modes. _*Text-Select Keys*_ (a = Alt Key) .pl compact bold tsize=10 break=none - a-L = line selection for one line or paragraph - a-Z = character selection for sentences, phrases and characters - a-B = block mark rectangles a-U : unmarks any area - a-W = word select (uses block mark) - a-C = copy selection to cursor - a-M = move selection to cursor - a-D = delete selection - a-O = overlay selection - a-A = adjust selection (a-O with blank fill of source) .. ----------------------------------------------------------------------------- .3 Drag and Drop .. ----------------------------------------------------------------------------- .an IDPNL_QREF_CMD_DRAG_AND_DROP . The Enhanced Editor can drag text as either an: .ul compact - Entire file - Selected area of text. (line, block, character) . (Text can be dragged from *EPM* by directly manipulating the selected area.) The Enhanced Editor can accept drops of text on any of three landing strips: .ul compact - Titlebar - Text . *EPM* will create a new file containing either a file or partial text selection. - Code . If code in the form of an *EPM* macro **.EX or *EPM* REXX macro **.ERX is dropped on the titlebar, *EPM* will implicitly link and run the macro. - Client Window (text entry area) - Text . *EPM* will import the dropped text into the current file. - Code . If code in the form of an *EPM* macro **.EX or *EPM* REXX macro **.ERX is dropped on the titlebar, *EPM* will link the macro. - *EPM* icon (when *EPM* is started with the /i option) - Text . *EPM* /G will open up a new window containing the dropped text object. .. ----------------------------------------------------------------------------- .3 Writing Macros in REXX .. ----------------------------------------------------------------------------- .an IDPNL_QREF_REXX . _*Starting an Enhanced Editor REXX macro*_ . To Start an Enhanced Editor REXX macro use the RX command at the Enhanced Editor's command line. For example, .sl compact - RX EPMTEXT .el would run the EPMTEXT.ERX macro. A REXX macro PROFILE.ERX can be run automatically when a new edit window is opened, by entering on the Enhanced Editor's command line: .sl compact - PROFILE ON .el and then selecting Options / Save Options. _*Extracting Specific Information*_ . Internal *EPM* variables are extractable into REXX using the extract command. For example, "extract /getline" would set the REXX variable "getline.0" to 1 (the number of variables returned) and "getline.1" to the contents of the current line. The fields that are extractable are: . "autosave", "col", "cursorx", "cursory", "dragcolor", "dragstyle", "filename", "fontheight", "fontwidth", "last", "line", "markcolor", "modify", "mousex", "mousey", "textcolor", "userstring", "windowheight", "windowwidth", "windowx", "windowy", "font", "getmarktype", "getmark", "getline" _*Using the EPM REXX functions*_ . Line-oriented functions The *EPM* functions that are available from REXX are a subset of the EPM programming language functions. _*Examples:*_ .fo off /** ** Name EPMTEST.ERX ** Function A Rexx Macro for EPM **/ parse arg args Call etkdeletetext /** delete current line in current file **/ Call etkdeletetext, 1 /** delete line 1 in current file **/ Call etkinserttext 'line' /** insert 'line' before curr line in curr file **/ Call etkinserttext 'line' /** insert 'line' before line 1 in current file **/ Call etkreplacetext 'line' /** replace current line in current file **/ Call etkreplacetext 'line', 1 /** replace line 1 in current file **/ .fo on _*Setting EPM field functions*_ .fo off /** ** Name SETFIELD ** Function A Rexx Macro for EPM to test the setting of fields **/ call etksetfilefield 'filename' , 'newname' call etksetfilefield 'userstring' , 'new string' call etksetfilefield 'autosave' , 1 call etksetfilefield 'xxxx' , 1 .fo on where 'xxxx' can be: . 'cursorx', 'cursory', 'dragcolor', 'dragstyle', 'eaarea', 'fontheight', 'fontwidth', 'last', 'lockhandle', 'line', 'markcolor', 'modify', 'mousex', 'mousey', 'textcolor', 'visible', 'windowheight', 'windowwidth', 'windowx', 'windowy', 'font' _*Key-oriented functions*_ .fo off /** ** Name KEYTEST ** Function A Rexx Macro for EPM to test the keys. **/ call etkprocesseditkey "ADJUST__BLOCK" call etkprocesseditkey "BACKTAB" ... call etkprocesseditkey "XXXX" .fo on where XXXX can be: . "BEGIN__LINE", "BOTTOM", "CENTER", "COPY__MARK", "DELETE__CHAR", "DELETE__LINE", "DELETE__MARK", "ERASE__END__LINE", "INSERT__TOGGLE", "JOIN", "MARK__BLOCK", "MARK__BLOCKG", "MARK__CHAR", "MARK__CHARG", "MARK__LINE", "MARK__LINEG", "MOVE__MARK", "NEXT__FILE", "OVERLAY__BLOCK", "PREVFILE", "REFLOW", "REFRESH", "REPEAT__FIND", "RUBOUT", "SHIFT__LEFT", "SHIFT__RIGHT", "SPLIT", "TAB__WORD", "TOP", "UNDO", "UNDOACTION", "UNMARK" _*Creating Menus*_ .fo off /** ** Name MYMENU ** Function A Rexx Macro for EPM to add new menus... **/ 'buildsubmenu default 1990 MyRexxMenu 0 0' 'buildmenuitem default 1990 1991 Directory 0 0 dir' 'buildmenuitem default 1990 1992 AddSelection 0 0 add' 'buildmenuitem default 1990 1993 TopofFile 0 0 top' 'buildmenuitem default 1990 1994 BottomofFile 0 0 bot' 'showmenu default' .fo on Additional information about programming the *EPM* editor is available in the samples of the [=TILE]. This package includes the latest version of *EPM*, the ETPM macro compiler, E macro source, *EPM* User's Guide, *EPM* Macro Programmer's Technical Reference, and various sample E and Rexx macros. .. ----------------------------------------------------------------------------- .3 IBM Workframe/2 for compiling programs .. ----------------------------------------------------------------------------- .an IDPNL_QREF_WFRAME . To configure IBM WorkFrame/2 (WorkFrame) to use the *EPM*... .ol - Click on 'Editor' from the 'Configure' pull-down menu. The 'Configure Editor' window will appear. - Change the editor name to EPM.EXE. This assumes that the *EPM* editor is in a path specified by the PATH environment variable. If the editor is not on the PATH, you must fully qualify the name. - In the 'Invocation string' field, type: .sl compact - /w %a %z .el The /w switch tells the *EPM* editor to enable its WorkFrame support. The substitution variables (%a %z) tell the WorkFrame to pass all selected files (not just the first file) to *EPM*. Replacement variables are specified in invocation parameters. The replacement variable is a symbol that consists of a percent sign (%) followed by a character. - Click on the 'Send compiler errors' checkbox. This causes the WorkFrame to communicate with the editor whenever compilation errors occur. - Click on OK to save the changes and close the window. The changes you made are in effect for the current session only. If you want the changes to be saved for future sessions, you must select the 'Save Profile' option from the 'Save Settings' entry on the 'File' pulldown. To make use of the WorkFrame support in *EPM*, do the following: .ol - In a monitor window that contains error messages that resulted from a compilation error, double-click on the message that you are interested in. This will cause the WorkFrame to call the compiler DLL associated with the project to parse the error and return the file name, the line number and possibly the column number of the error. The WorkFrame will then start an editor session with that file and via a Dynamic Data Exchange (DDE) interface it will communicate the information to *EPM*/EE. The editor will then scroll to the correct line number and possibly column number. - Using the 'Compiler' pulldown that will appear only when *EPM*/EE is invoked this way, you can move between errors using the 'Next Error' and 'Previous Error' items. - Select 'Describe Error' under the 'Compiler' pulldown in order to see the errors associated with the current position in the file. - On the Describe errors list, you can select the 'Details' pushbutton in order to start the help associated with the compiler and to display an explanation of the error as well as the action(s) needed to recover from the error. .. ----------------------------------------------------------------------------- .3 ASCII Reference Chart .. ----------------------------------------------------------------------------- .an IDPNL_QREF_ASCII_CHART .fo off To enter an ASCII character, hold Alt key & enter decimal value on num pad +-----+--------------------------------------------------------------------+ | DEC |  0 1 2 3 4 5 | 6 | 7 | 8 | 9 | 10| 11| 12| 13| 14| 15| |  |HEX | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | +-----+----+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 0__ |NUL|  |  |  |  |  |  |  |  | HT| LF| | | CR|  |  | | 16 | 1__ |  |  |  |  |  |  |  |  |  |  |EOF|  |  |  |  |  | | 32 | 2__ | | ! | " | ## | $ | % | & | ' | ( | ) | ** | + | , | - | . | / | | 48 | 3__ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? | | 64 | 4__ | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | | 80 | 5__ | P | Q | R | S | T | U | V | W | X | Y | Z | [[ | \ | ]] | ^ | __ | | 96 | 6__ | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | | 112 | 7__ | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ |  | | 128 | 8__ | | | | | | | | | | | | | | | | | | 144 | 9__ | | | | | | | | | | | | | | | | | | 160 | A__ | | | | | | | | | | | | | | | | | | 176 | B__ | | | | | | | | | | | | | | | | | | 192 | C__ | | | | | | | | | | | | | | | | | | 208 | D__ | | | | | | | | | | | | | | | | | | 224 | E__ | | | | | | | | | | | | | | | | | | 240 | F__ | | | | | | | | | | | | | | | |DEL| +-----+----+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ .fo on .. Note: With HTEXT 1.08 simply use .fo verbatim. (v1.08 fixes also the table above.) .. .fo verbatim .. To enter an ASCII character, hold Alt key & enter decimal value on num pad .. +-----+--------------------------------------------------------------------+ .. | DEC |  0 1 2 3 4 5 | 6 | 7 | 8 | 9 | 10| 11| 12| 13| 14| 15| .. |  |HEX | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | .. +-----+----+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ .. | 0 | 0_ |NUL|  |  |  |  |  |  |  |  | HT| LF| | | CR|  |  | .. | 16 | 1_ |  |  |  |  |  |  |  |  |  |  |EOF|  |  |  |  |  | .. | 32 | 2_ | | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / | .. | 48 | 3_ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? | .. | 64 | 4_ | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | .. | 80 | 5_ | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ | .. | 96 | 6_ | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | .. | 112 | 7_ | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ |  | .. | 128 | 8_ | | | | | | | | | | | | | | | | | .. | 144 | 9_ | | | | | | | | | | | | | | | | | .. | 160 | A_ | | | | | | | | | | | | | | | | | .. | 176 | B_ | | | | | | | | | | | | | | | | | .. | 192 | C_ | | | | | | | | | | | | | | | | | .. | 208 | D_ | | | | | | | | | | | | | | | | | .. | 224 | E_ | | | | | | | | | | | | | | | | | .. | 240 | F_ | | | | | | | | | | | | | | | |DEL| .. +-----+----+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ .. .fo on .. ============================================================================= .2 Appendix: EPM Speech Support Manager Quick Reference .. ============================================================================= .an IDPNL_SPCHREF . [=TOPICS] .su V30 .. ----------------------------------------------------------------------------- .3 Using EpmSpch .. ----------------------------------------------------------------------------- .an IDPNL_SPCHREF_USING . EPM Speech Support Manager allows you to have dictation in any application using *EPM* windows or the E-MLE. It works with the IBM Personal Dictation System, and uses the power of the E Toolkit rather than the IPDS Dictation window. The package can be started from the edit window or from an OS/2 command window. It runs in a separate process, and so can be used in different applications, even if you close the application that first started the speech connection. EpmSpch accepts the following options: .pl compact bold break=none tsize=20 - /MIN = Start minimized. - /CONNECT = Tries to start a session with the speech engine. If no user id, enrollment id or task name is specified, the user information dialog will pop up before starting the session. - /NOLOG = No logging information displayed in the EPMSPCH window. - /HWND= = The edit window specified is selected and receives the speech focus. - /USERID= = Speaker ID used for the session. - /ENROLLID= = Enrollment ID - /TASK= = Task name (usually STARTUS) [=NOTE] .ul compact - The userid, enroll ID, task name and log level are saved in the INI file so you don't need to set them every time. The window positions and presentation parameters are also saved. To start from an edit window, link the appropriate .ex file and execute the command SpStartDictationSupport. This will start EpmSpch minimized, autoconnected, and with the current edit window selected. .. ----------------------------------------------------------------------------- .3 Speech Focus .. ----------------------------------------------------------------------------- .an IDPNL_SPCHREF_FOCUS . Since you can have multiple applications using several edit windows on your screen, EpmSpch has to know which one is going to receive the recognized words and display them. This is called the speech focus. If EpmSpch is started from an edit window, that window automatically receives the speech focus. To give the focus to another window, you can use the Select option from the EpmSpch menu. The mouse pointer will change to a +, indicating that you can choose which window you want to select by clicking on it. Starting EpmSpch with the /HWND= option is another way to give the focus to an edit window. .. ----------------------------------------------------------------------------- .3 E Macro Commands .. ----------------------------------------------------------------------------- .an IDPNL_SPCHREF_MACCMDS . The following commands can be used by any edit window: .pl compact bold tsize=5 - SPStartDictationSupport = Starts the dictation support and gives the speech focus to the edit window. - SPMikeOn = Turns the mike on. - SPMikeOff = Turns the mike off. - SPCorrectWord = Corrects the word located at the cursor. .. ----------------------------------------------------------------------------- .3 How to configure your toolbar in EPM 6 .. ----------------------------------------------------------------------------- .an IDPNL_SPCHREF_BARCFG . Add the following items to your toolbar: .ul compact - _*Start and initialize EPM speech manager from EPM*_ . .sl compact - Action - Function: * ** * - Param: *mc /link epmspch/SPStartDictationSupport* - General - Bmp: *speech.bmp* .el - _*switch microphone on*_ . .sl compact - Action - Function: * ** * - Param: *SPMikeOn* - General - Bmp: *mikeon.bmp* .el - _*switch microphone off*_ . .sl compact - Action - Function: * ** * - Param: *SPMikeOff* - General - Bmp: *mikeoff.bmp* .el .. ----------------------------------------------------------------------------- .3 Correction Context Menu .. ----------------------------------------------------------------------------- .an IDPNL_SPCHREF_CCM . A double-click on a word with mouse button 1 will bring up the correction context menu and automatically replay the word. It allows you to replay the word (to recall what you said), perform some formatting commands, delete it, or replace it with one of the alternate words which the decode found. The maximum number of alternates has been set to 10; this can be changed by modifying the MAXNBOFALTERNATES constant in ETKSPCH.E and recompiling the macro with ETPM. If you double-click on a word that was not dictated, the pop-up menu will not appear. .. ----------------------------------------------------------------------------- .3 Logging Information .. ----------------------------------------------------------------------------- .an IDPNL_SPCHREF_LOG . EpmSpch has a logging facility. It can display messages in the EpmSpch status window. The log level can be set using the Logging menu item. (Multiple levels can be active at the same time.) The levels are: .pl compact bold - ERRORS = Display all error messages (from the speech engine or EpmSpch) - MESSAGES = Display all status messages (e.g., mike on or mike off) - E-MACROS = Displays all E-Macro commands before posting them to the edit window - WORDS = Displays all the words that are recognized by the engine .. ============================================================================= .2 Appendix: GNU General Public License .. ============================================================================= .an IDPNL_LEGAL_GPL . All sources and programs of the [=TITLE] that are .ul compact - not part of the [.IDPNL_EPMBBS EPMBBS distribution] and - provided with the distribution or within the *netlabs.org Open Source Archive* called *NEPMD* .el are provided under the *GNU General Public License*: .fo off .include COPYING .fo on