Category : Miscellaneous Language Source Code
Archive   : E!518.ZIP
Filename : E!.DOC

 
Output of file : E!.DOC contained in archive : E!518.ZIP







ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ " E! " ³
ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵
³Multifile Text Editor³
ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵
³ User's Guide ³
³ ³
³ Version 5.0 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

(c) Copyright Patrick Philippot - 1988,1989,1990














































E! - page 1







ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³TABLE OF CONTENTS³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

A. INTRODUCTION ..................................... page 3
B. INSTALLATION ..................................... page 4
notes about DOS 3.3 ............................. page 5
C. GETTING STARTED .................................. page 6
using lists of files............................. page 7
global file search .............................. page 7
non text files .................................. page 8
automatic positionning .......................... page 8
EMS.............................................. page 9
Dos screen....................................... page 9
D. THE "E!" SCREEN .................................. page 10
status .......................................... page 10
text ............................................ page 10
command ......................................... page 10
help ............................................ page 11
file names ...................................... page 11
E. MAIN FUNCTION KEYS ............................... page 11
key oriented help ............................... page 12
F. MOVING THE CURSOR ................................ page 14
G. EDITING FUNCTIONS ................................ page 16
undo ............................................ page 21
H. BLOCK MANIPULATION ............................... page 22
marking / unmarking blocks ...................... page 22
deleting a block ................................ page 23
copying a block.................................. page 23
moving a block .................................. page 23
overlaying a block .............................. page 23
adjusting a block ............................... page 23
special functions ............................... page 24
I. TEXT FORMATTING .................................. page 25
J. DRAWING .......................................... page 26
K. COMMANDS ......................................... page 27
about E! commands ............................... page 27
commands reference .............................. page 29
search / replace commands ....................... page 39
L. MACROS ........................................... page 43
M. PROFILES ......................................... page 47
typematic ....................................... page 48
N. PROGRAMMING SUPPORT .............................. page 53
O. E! and DESQview .................................. page 55

APPENDIX 1 ....................................... page 58
APPENDIX 2 ....................................... page 59
APPENDIX 3 ....................................... page 63










E! - page 2





ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ " E! " ³
ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵
³Multifile Text Editor³
ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͵
³ User's Guide ³
³ ³
³ Version 5.0 ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ


(c) Copyright Patrick Philippot - 1988,1989,1990



A. INTRODUCTION
_______________

E! is a powerful full-screen text editor. Its implementation
has been driven by three keywords : quick, simple and efficient. It
will allow you to edit as many files as your system memory can hold
simultaneously. Although E! is not a word processor it offers some
functions you will rarely find in a text editor. Its very versatile
interface with DOS makes it a valuable tool for programmers but it
will be used by non programmers as "everyday" text editor.

E! is not a word processor. It edits and saves ASCII files and
does not include any control character in the text flow except if
you insert them yourself. It does not support any printer but you
have the opportunity to add printer control characters in your text
very easily.

E! is a professional level tool. It is a highly configurable
text editor and you will tailor it to exactly suit your needs using
PROFILES and MACROS.

E! supports EGA 43 lines mode, VGA 50 lines mode and a special
35 lines mode which is more readable than the previous ones. The IBM
101T enhanced keyboard is also fully supported.

The number of E! built-in functions is VERY high. These
functions can be grouped together to build macros. E! macros are
saved in macro files and you can use them at any time during
editing. You can also assign a macro to any key.

E! configuration can be changed AT ANY TIME by loading a new
PROFILE. So you can have PROFILES adapted for programming support,
PROFILES adapted to program documentation editing, etc...

When loading a file E! automatically expands tabs if this is
specified in the main PROFILE. The same option automatically
compresses blanks to tabs when saving the edited file. This allows
E! internals to work only with blanks. This is very important for
the block manipulation functions which are among the most powerful
features of E!.

E! offers programming support. You can compile any source file
from within the editor without leaving it. Compiling errors are
retrieved from the compiler and E! will then point directly to the

E! - page 3




error in the source text. Compiler error messages are displayed
just like in an integrated environment. E! supports ANY compiler
issuing standard error messages. Borland and Microsoft compilers
(trademarks) have been successfully tested from within E!.

And now, E! version 4.0/5.0 has two new and important
features. First, full windowing is now supported. You may edit up
to 6 files simultaneously on the same screen in separate windows.
And E! has now a very convenient Application Programming Interface
(API) allowing you to write new functions and utilities using your
usual language (C, Pascal, etc...).



B. INSTALLATION
_______________


At least the following files are provided on the E! diskettes :

E!.EXE the editing program
E!.HLP the help file
E!KEY.HLP the key oriented help file
E!.PRO the sample PROFILE
E!.MSG the messages file
INTERNAL.LST Dos internal command list


E!FNT35.EGA special 35 lines mode 8x10 font
E!FNT352.EGA another 35 lines font
E!FNT251.EGA two 25 lines mode EGA replacement fonts
E!FNT252.EGA
E!FNT251.VGA two 25 lines mode VGA replacement fonts
E!FNT252.VGA
E!FONT.EXE the font loader
E!FONT.DOC the E!FONT documentation
EDITFONT.EXE the font editor
EDITFONT.DOC the EDITFONT documentation
MACGEN.EXE the macros editor / generator
MACGEN.DOC the MACGEN documentation
E!.DOC E! documentation (non formated)
API.DOC the API documentation
API.PAS an interface example for TP 4.0/5.0
EXAMPLE.PAS a simple example of an API program
EXAMPLE.C " " "
H!.EXE the help utility
H!.DOC the H! documentation
P!.EXE the pick file utility
P!.DOC the P! documentation
Z!.EXE the second pick file utility
Z!.DOC the Z! documentation
KBDTEST.EXE Keyboard testing utility

Please backup these files as soon as possible.

The minimum configuration needed to install E! is :

- IBM PC or PS/2 or compatible with 256 K memory.
- hard disk (diskettes only not recommended)


E! - page 4




- DOS 2.xx or above
- color or monochrome display with MDA, CGA, EGA, PGA,
MCGA, VGA or Hercules adapter.
- 83 or 101 keys keyboard.

To install E! please follow the instructions given in the
READ.IT file. Since these instructions may change from one version
to another they were put apart in that file. E! files are normally
distributed as self-extracting files. You can choose to run the
INSTALL.BAT command file included on the first diskette or to unpack
these files yourself after copying them in the directory of your
choice. INSTALL performs no particular operation.


Then edit your autoexec.bat and add the following line:

SET E!=C:\E! (or the name you choosed)

You can extend your environment string if needed using the
following DOS command in your CONFIG.SYS :

SHELL=C:\COMMAND.COM /P /E:nnn

This will set the environment string length to nnn.

This way, E! will easily find the help file, the main PROFILE
and all utility files (such as the font files). All temporary files
generated by E! will be written in that directory. Macros will be
retrieved from and saved to that directory also.

If there is no E! environment variable in your environment
string, E! will use the current directory as a default. Even if you
use E! on a two diskette drives system, we recommend you set the E!
variable to the right drive.

If you are working with a hard disk, don't forget to add the
directory where you put your E! files to your PATH command.

So far, you are done with the installation of the E! editor.

NOTES about DOS 3.3 :

The keyboard driver of DOS 3.3 has some bugs. It does not
recognize some keystrokes from the enhanced keyboard and some "old"
keystrokes like Alt - or Alt =. This is at least true for some
european drivers like KEYB FR or KEYB GR. If you have any problem
with the keyboard under DOS 3.3, use the KEYBxx.COM program from
DOS 3.2 or 3.1 instead of KEYB.COM.

If you still have problems with functions assigned to
"unreachable" keystrokes on your keyboard, try reassign these
functions to another key. See below.

Please see also the "TYPEMATIC" section of the PROFILEs section.

If you have a RAM disk it is highly recommended that your
autoexec.bat copy E!.EXE, E! help and message files and macro files
to this RAM disk.



E! - page 5




C. GETTING STARTED
__________________


There are two ways to put E! at work :

1. Enter E! without any parameter at the DOS prompt.

2. Enter E! followed by one or more file specification. DOS
"wildcards" (* and ?) are allowed.


E! [specfich1] [specfich2]...[specfichn] [/l]

example :

E! C:\*.BAT C:\EDIT\*.*

will load any .BAT file from the root directory and all files
from the C:\EDIT directory if there is enough memory space to hold
all these files.

You can use the "/l" or "/L" parameter anywhere on the command
line to tell E! to load all the files edited in the last E! session
in that directory. This option will only work if your active
profile contains the following line:

LOG YES

examples :

e! /l
e! *.pas /l
e! *.pas /l *.doc

are valid E! command lines.

/l is the only command line parameter accepted by E!. Any other
parameter should be a file specification. All other options are
definable within the PROFILEs. Please see also "AUTOMATIC
POSITIONNING".

During an E! session a file is never empty and contains at
least a CRLF sequence. So its size will be at least 2 bytes.

If you have to use the same path several times within file
specifications on the E! command line, you may now use the "+"
repeat sign instead :

E! c:\myprogs\sources\*.c c:\myprogs\sources\*.h

should be replaced with

E! c:\myprogs\sources\*.c +*.h

Each time the "+" sign is found at the beginning of a file
specification, the path given in the previous specification will be
used. So you may use the "+" sign each time you need it on the
command line:


E! - page 6




E! c:\myprogs\src\*.pas +*.inc c:\texts\*.txt +*.doc

is the same as

E! c:\myprogs\src\*.pas c:\myprogs\src\*.inc c:\texts\*.txt /
c:\texts\*.doc

USING LISTS OF FILES
********************

E! can also manipulate lists of files. Any file specification
beginning with "@" entered at the DOS prompt as a E! parameter or
on the E! command line along with the "Edit" command will be
considered as a list of file to be edited. Each line of this list
may contain only one file specification. This file specification
may contain DOS wildcards.

If you want to save the current edited filenames in a list
enter SLIST (slis) on the E! command line. If you specify a
filename it will be used as the list name and any existing file
with the same name will be erased. If you don't specify a filename,
the list will be saved in the file "FILE.LST" in the current
directory.


GLOBAL FILE SEARCH
******************

Except if you specify a path for the file(s) you want to edit
E! will always search in the current directory only. If you want E!
to search in other directories you will have to use the E!PATH
environment variable. If you want E! to search automatically in the
C:\ASM\SOURCES directory you have to add the following line to your
AUTOEXEC.BAT file :

SET E!PATH=C:\ASM\SOURCES;

Use the same syntax as for the DOS PATH command.

If you are using the DOS APPEND command, all paths specified
within the APPEND= environment substring are also searched.

The number of paths supported by E!PATH in the environment is
not limited. However, the total length of the E!PATH and APPEND
variables is limited to 255 characters.

You should notice that it is preferable to use the E!PATH
variable than any other command or utility. Actually, E! returns
always a full pathname for each file it does edit. If you let E!
find a file thru any utility like DOSSEARCH or DATAPATH etc...,
the file will be automatically saved in the current directory and
not in the directory where it was found. This is because the DOS
FindFirst and FindNext functions do not return a full path but only
the file name.

Please be aware that the GET command does not use the
capabilities described above.

If you called E! without any parameter, E! will edit a file
named E!TEMP.E!. If it already exists, it will be loaded.

E! - page 7






NON TEXT FILES
**************

If you specified a non text file E! will try to load it. Most of
the time it will recognize that this file is not an editable text
and will issue a warning message. This message will also be issued
if the text file does not use full CRLF sequences to terminate a
line but only a CR. This does not matter and the file will be
normally editable. The missing Line Feed will be added when writing
the file to disk (except if you told E! not to do so thru the EOL
command in your PROFILE).

If you want E! not to load particular files, you only have to
use the LOCK option in your PROFILE. Please see the LOCK section in
the E! COMMANDS section.

If you have loaded a non text file PLEASE DO NOT SAVE IT ! or it
will likely be truncated or damaged.


AUTOMATIC POSITIONNING
**********************

Each time you leave an E! session, current file names, cursor
position and editing context are saved in a LOG file. If you reload
one of the last edited files E! will restore all these variables
and set the cursor at the last active position for this file. Here
is the description of the editing context elements which are
restored for each file :

- cursor position for each window
- text position within window
- wordwrap and justification flags or draw mode flag if it was
active
- bookmark position


Draw style is global for E! and is not restored.

These functions are available only if the LOG option is set to
YES. If not or if the E!.LOG file has been deleted, E! will
position the cursor at the beginning of text. However, if there is
any inconsistency between the active window size and the recorded
cursor position, partial or total adjustments will be made.

A correction to the cursor position can be made if you leave the
file in 35, 43 or 50 lines display mode.

The LOG YES/NO command can be inserted in your PROFILE or
entered on the E! command line. Please see the PROFILE section.

You can assign the E!.LOG file to a unique directory instead
of having a LOG file created in each directory. Enter the following
command in your main PROFILE to specify this unique directory :

LOGDIR path

If you leave E! when one of the extended video modes is active

E! - page 8




(35, 43 or 50 lines), this mode will be automatically reactivated
at the next session, provided the corresponding E!.LOG file is
available.


EMS
***

This new version of E! uses OVERLAYS and EMS to make more
space available for your programs and compilers. This does not lead
to performance changes if you have :

- EMS installed
- a disk cache
- a virtual disk from which you run E!
- a good hard disk

Diskettes-only configurations are not recommended for this
version of E!.

If you do not run a DOS 3.X version or above, you will have to
put E! in a directory defined in the PATH environment variable.
Otherwise E! will not find its overlays.

E! takes advantage of the EMS driver if it is installed but you may
not gain so much memory space if you install the EMS driver for E!
only. EMS drivers usually take a lot of memory space and E! cannot
use it to store your files. It only uses it to store its own data
and to speed overlays switching. The best results regarding memory
consumption and performance (globally) are achieved using a disk
cache and a virtual disk.


DOS screen
**********

E! restores the DOS screen attributes when exiting if your display
adapter supports more than one video page. Attributes are never
restored with a monochrome adapter. Should you need the video page
number three (the fourth page) for other purposes (such as a
graphic program run from E!) or if your display adapter does not
support several video pages (you get garbage on the screen when
exiting E!), so you'll have to use the following statement in your
autoexec.bat:

SET E!PAGE3=NO (any other value is equivalent to YES)

This way, E! will not use it and will only restore the DOS
data without display attributes. The default is YES.

It was not possible to process this command in a PROFILE
because the screen data is always initialized BEFORE the PROFILE is
read.








E! - page 9




D. THE "E!" SCREEN
__________________


COLORS

E! will configure itself automatically as it is loaded. It
will detect the display adapter type which is active and set all
relative options accordingly. In some cases E! will set all display
attributes to black and white. This will occur on PS/2s where
monochrome displays don't necessarily imply video mode 7. If you
want color attributes in such a case please set them directly in
your main PROFILE. See the PROFILE section.

*******

STATUS

The first line on the E! screen is the STATUS line. It contains
following informations :

. The Text Beginning / Text End indicator or E! version number.

. The "file modified" indicator ( ³M³ ).

. The current row number.

. The current column number.

. The total number of lines in the current text.

. A clock (Edit mode) or the file name (Command mode).

Informations on this line are continuously updated. If memory
becomes "short" the message "MEMORY !!!" will appear on the status
line (less than 2048 bytes available). If there is less than 1024
bytes available the message will blink. In this case please save
and release one or more files to free memory space.


TEXT

The next 22, 32, 40 or 47 lines (according to the current
settings of E!) are devoted to the text being edited. This area can
be split into two windows. All editing functions are reviewed
later.

When the first line displayed is the very first line of the text,
the [Top of Text] indicator is displayed. When the last line
displayed is the very last line of the edited file the [End of
Text] indicator is displayed on the STATUS line.


COMMAND

The last but one line on the screen is the E! COMMAND LINE. On
this line you will enter and edit E! commands. These commands will be
described later. While in EDIT mode this line displays :

. The current file name.

E! - page 10





. The insert toggle status (Ovrw or Ins).

. The bookmark signal (!).

. The WORDWRAP (W) , JUSTIFICATION (J), CASE
and DRAW mode toggles status.

. The block mark status (Marked,Unmarked or External).

Marked : the current text is marked.
Unmarked : no text is marked.
External : a text is marked but it is not the current text.

. The current text size.

While in COMMAND mode, the line is empty, allowing the user to
enter, retrieve or edit commands. The ESCAPE key toggles between
EDIT mode and COMMAND mode. Commands can be retrieved using the up
and down arrow keys.


HELP

The last line in its normal state shows a help text
remembering the use of the function keys. If you depress the ALT,
SHIFT or CONTROL keys, this text will change according to the key
being depressed. (See DELAY command).

Error messages are displayed on the help line when necessary.

Functions requesting input from the user generally display their
prompt on the help line.

FILENAMES

Within E! filenames are always "normalized". E! always uses a
full qualified name for every file. This is a security for your
files since this function makes it impossible to load twice the
same file.

All informations displayed on the E! screen are related to the
file displayed in the active window.


E. MAIN FUNCTION KEYS
______________________


We will now present the "basic" configuration of E!. In EDIT mode
all keys and functions can be reassigned (except ESCAPE). Maybe
you'll have to modify the help files or the messages file. This
files were intentionnaly made editable to make this job easier.
Though, in COMMAND mode editing keys are not redefinable. So we
recommend you do not reassign these keys.

i.e. : HOME will always put the cursor at the beginning of the
command line in COMMAND mode even if you assigned a new function to
the home key in EDIT mode.


E! - page 11




REMEMBER : Use the ESCAPE key to toggle between EDIT mode and
COMMAND mode.

Now, let's have a look at the 10 main functions keys.


ÚÄÄ¿ ÚÄÄÄÄÄÄ¿
³F1³ ³Alt F1³
ÀÄÄÙ ÀÄÄÄÄÄÄÙ

F1 will load the E! HELP file, E!.HLP. This is a "normal" text
file which you may want to edit each time you assign a function to
a key. Using the PgDn and PgUp keys will take you from section to
section. If you want to access a section directly, enter the line
number specified in the table of contents on the command line.

We recommend that you protect this file after modifying it
using the DOS command ATTRIB :

attrib +r e!.hlp

To make new modifications enter :

attrib -r e!.hlp

Editing read-only files is allowed with E!. It's just
impossible to save them.

KEY ORIENTED HELP
*****************

Let's assume you have forgotten what function is assigned to a
specific key. Just hit Alt F1. E! will issue a message asking you
to hit the key about which you want information. Hit this key and a
short message will be displayed explaining what this key actually
does.

This message is valid even if you have assigned a non default
function, a macro, a command or a profile to that key.

ÚÄÄ¿
³F2³
ÀÄÄÙ

F2 causes the current text to be written to disk. If the file
already exists a warning message is issued. Hit Y or N in response
to the prompt. If the active PROFILE contains the WARNING NO
command (or if it has not modified a previous WARNING NO command),
no warning message is issued and the file is saved without
prompting the user.

The WARNING NO command may be entered on the E! command line.

ÚÄÄ¿
³F3³
ÀÄÄÙ

F3 tells E! you want to quit the current text. If this text has
been modified E! prompts you to know if you want to "discard" all
modifications you made. Hit Y or N in response to the prompt.

E! - page 12





ÚÄÄ¿
³F4³
ÀÄÄÙ

F4 is the same as F2 + F3. The only difference is that the
text is never "compressed" when you save it with F2. It will be
compressed if you save it with F4 only if your active PROFILE
contains the AUTOCOMP YES command, if you entered this command on
the E! command line or if you explicitly compressed the text with the
COMPRESS command before you saved it. Please see COMPRESS and
AUTOCOMP commands.

ÚÄÄ¿ ÚÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄ¿
³F5³ ³Alt F5³ ³Alt F6³ ³Alt F7³ ³Shift F7³
ÀÄÄÙ ÀÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÙ

The F5 key causes E! to prompt you for a window orientation
(Hit H for horizontal or V for vertical). Then E! creates a window
at the cursor position. The current text is loaded in the new
window. Up to 6 windows are allowed.

You may use the F10 / Alt F10 keys in each window created.

Use the Alt F5 key to toggle between windows.

Removing a window is quite simple : hit Alt F6 and indicate the
window border to remove using a direction key. Be aware that only
borders used by 2 windows only may be removed.

If you have selected the "delete window" function with Alt F6,
you can extend the current window size if you maintain one of the
two SHIFT keys depressed while you are choosing a window border
with the cursor keys.

Each time you hit a direction key, the window size is
increased of one row or one column in the specified direction. The
function terminates when you release the SHIFT key or when you hit
a wrong direction key.

This function cannot be recorded in a macro.

Windows may be zoomed and unzoomed using Alt F7. The "clear
windows" command is triggered with Shift F7. When zoomed, no other
window function may be accessed.

Updating a window will also update the alternate window if they
share a common portion of text.

ÚÄÄ¿
³F6³
ÀÄÄÙ

This key activates, initializes or terminates the DRAW mode.
DRAW mode is fully explained later in this documentation. E!
automatically toggles to COMMAND mode and prompts you for a DRAW
mode. An help message is displayed allowing you to choose one of 8
DRAW modes. An empty entry activates the last active DRAW mode or the
mode #1 if you never used the DRAW mode in this session.


E! - page 13




If you were already in DRAW mode it is deactivated.

While in DRAW mode, WORDWRAP and JUSTIFICATION are automatically
deactivated. They will be restored in their previous state when you
will exit the DRAW mode.

ÚÄÄ¿
³F7³
ÀÄÄÙ

F7 activates the COMMAND mode and initializes the NAME command.
So you can rename the current text. The original file will remain
unchanged. If you gave the name of an existing file, E! will prompt
you before saving only if the WARNING option is active. See above.

ÚÄÄ¿
³F8³
ÀÄÄÙ

F8 activates the COMMAND mode and initializes the EDIT command.
E! waits for one or more file specifications. Like on the DOS
command line, wildcards are allowed. Please see GETTING STARTED.

ÚÄÄ¿
³F9³
ÀÄÄÙ

F9 will restore the current line in its previous state, that
is, the state it was in when you moved the cursor to that line. Be
aware that certain functions validate the current line even if you
do not leave it. In this case F9 will take the new line into
account.

F9 will also add the current line into the UNDO buffer before
restoring the previous state of the line. So you can copy the line
anywhere in the text using ALT 8 (read from UNDO buffer) without
having to unmark an existing block or group of lines.

ÚÄÄÄ¿ ÚÄÄÄÄÄÄÄ¿
³F10³ ³Alt F10³
ÀÄÄÄÙ ÀÄÄÄÄÄÄÄÙ

If you are editing several files simultaneously, you can move
thru the file buffers using F10 (forward) and ALT F10 (backward).
If you want to access a text directly you can:

1/ Enter an EDIT filename command. E! knows that the file is
already in memory and will not reload it.

2/ Use the ALT1..3 keys to mark a text and access it directly
using the same keys.


F. MOVING THE CURSOR
____________________

Moving the cursor with E! is done in a very classical way.
That is you will not be surprised using general purpose keys such
as arrow keys, PgDn, PgUp, Home and so on... Although this is
absolutely possible, we don't recommend that you reassigned such

E! - page 14




"classical" keys.


Direction keys....Move one character up, down, left or
right. Pressing the down arrow will add a
new and empty line to the text if the
EXTENSION option of the active profile
has been set to YES (default).

SHIFT+arrow.......If your keyboard does not accept the
TYPEMATIC commands you can accelerate the
cursor horizontal displacement by keeping
one of the SHIFT keys depressed when you
use the left or right arrow key. This may
not work on certain "compatibles" like
the COMPAQ machines. In this case you
will have to set the CURSOR option to NO
in your main profile. This will avoid
problems.

Tab...............Move the cursor to the next TAB pos. (See
Autotab). All text at the right of the
cursor position is moved along with the
cursor (only if the INSERT toggle is on).

Shift Tab.........Move the cursor to the previous TAB
position.

Backspace.........Delete left character. Please see
Autoback. If the cursor is at the
beginning of a line, the current line is
joined to the previous line.

PgDn,PgUp.........Scroll one window up or down.

Home..............Move the cursor to the beginning of line.
If the cursor is already at that position
it is moved to the beginning of the
previous line.

End...............Move the cursor to the end of line. If
the cursor is already at that position it
will be moved to the end of the next
line.

Ctrl Home.........Move the cursor to the first line of
text. If the cursor is already on the
first line it will be moved to the
beginning of the line.

Ctrl End..........Does the same but towards the end of the
current text.

Ctrl PgUp,PgDn....Move the cursor to the top or bottom of
the active window.

Ctrl Left,Right...Move the cursor to the next, previous
word. E! really searches a word, so all
punctuation signs will be ignored.


E! - page 15




Shft F1,F2,F3,F4..Scroll the current window right, left,
up or down. gauche, le haut ou le bas.
You can also scroll larger amounts of
text, left or right using ALT F3 or ALT
F4. The amount of columns to be scrolled
is specified using the SCROLL command in
the active PROFILE or on the E! command
line. E! defaults to 40 columns.

Shft F5...........Center the current line in the active
window.

Shft F6...........Move the current line to the top of
active window.

Alt I.............Remove all TAB positions.

Alt K.............Drop a bookmark at current cursor
position. Using ALT K again will move the
cursor to the bookmark and remove it.
Should you want to use the bookmark more
than once, so please hit ALT K twice
each time you move the cursor to the
bookmark. There is one bookmark per
active text.

Alt P.............Move the cursor to the next paragraph.
Paragraphs are separated with blank
lines.

Alt T,R...........CreaTe or Remove a TAB position. Use TAB
or SHIFT TAB to access TAB positions.

Alt Y,E...........Move the cursor to the beginning or to
the end of the marked block.



G. EDITING FUNCTIONS
____________________

E! has a lot of editing features. Generally editing functions
will be called using a keystroke involving the Control key. The next
section explains how E! implements block manipulation functions.
These functions are generally called with a keystroke involving the
Alt key.


Ctrl A............Move the current line first non blank
character to cursor position.

Ctrl B............Convert the first letter of the current
word to uppercase. If the current word
contains one of the following characters :

- (minus) , _ (underscore) , . (dot)

each letter following this character will
also be converted to uppercase. All other
characters in the current word are

E! - page 16




converted to lowercase if necessary. This
will be useful if you are using Pascal
conventions to name your program variables.

Ctrl C............Clear the current line.

Ctrl D............Repeat character. This function will be
used to enter a great number of identical
characters. First enter the character to be
repeated and then enter the 3 digits
constituing the repeat count. Note : 3
digits are mandatory. When calling this
function E! displays a help message showing
you how to enter this information.

Ctrl E............Delete end of line from cursor.

Ctrl F............Toggle the WORDWRAP mode.

Ctrl G............Toggle the 35, 43 or 50 lines mode if an
EGA or VGA adapter is installed and if the
EGA-VGA command is set to YES in your
active profile (which is the default). To
access the 35 lines mode you have to set
the 35LINES command to YES in your active
profile.

Adapter EGA VGA

EGA-VGA YES
35LINES NO........ 43 50

EGA-VGA YES
35LINES YES....... 35 35

To set the 35 lines mode E! needs a file
named E!FNT35.EGA. This file contains the
font for the 35 lines mode. This file must
be present either in the current directory
or in the E! directory (directory defined
with SET E!=....). Please notice that
loading a non 25 lines mode also modifies
the BIOS hardcopy routine so it will print
exactly the number of lines you are
actually using on your screen. There is an
alternate 35 lines font which is named
E!FNT352.EGA. If you want to use it instead
of the default font please rename this file
to E!FNT35.EGA.

The EGA suffix does not mean that you
cannot use these fonts with a VGA display
adapter. You can.

Ctrl J............Toggle the right JUSTIFICATION mode.

Ctrl L............If the current word is a valid file name it
will be immediatly edited. This function
combined with the LIST command will be very
convenient to search and edit files in your

E! - page 17




directories.

example : in a C source file you have the
following line:

#include "c:\msc\include\myprog.h"

Move the cursor anywhere between the 2
quote characters and hit Ctrl L. MYPROG.H
will be edited.

Ctrl N............Insert the file name at the cursor
position. This works also on the E! command
line.

Ctrl P............Execute active macro (see MACROS).

Ctrl Q............Restore previous macro (see MACROS).

Ctrl R............Record macro (see MACROS).

Ctrl S............Repeat last search (see SEARCH commands).

Ctrl T............Insert date and time at cursor position.

Ctrl U............Cancel macro recording (see macros).

Ctrl V............Reset search variables (see SEARCH
commands).

Ctrl W............Delete current word.

Ctrl X............If the current line is a valid DOS
command it will be eXecuted. As with Ctrl
L, it will be very convenient to use this
function combined with the LIST command.

For example, if you are editing a batch
file you will conveniently debug it or
execute it partially using Ctrl X against
each line you want to be eXecuted. If you
want to delete a file in a directory, use
the LIST command to display that
directory, insert "DEL" before the file
name and use Ctrl X, etc...

Ctrl Z............If the current line is a valid directory
name, this directory will be LISTed. Any
sequence at the beginning of the line
will do no harm (that is, if you obtained
the directory name from a LIST command Ctrl
Z will work anyway).

Enter.............Insert a new line and move the cursor under
the first non blank character of the
previous line. If the WORDWRAP mode has
been activated the cursor is moved to the
left margin. If the previous line is a
blank line, cursor is moved to the
paragraph margin.

E! - page 18





If the SPLIT profile command is set to YES
ENTER will cause the current line to be
splitted at the cursor position if the
Insert Toggle is on. This a more classical
way of handling the Enter key.

The AUTOINDENT feature, triggered when
you insert a new line, puts the cursor at
the first column containing a non blank
character in the first NON BLANK line
preceding the current one. This will also
make indenting easier. This is true only
when the WRAP mode is off.

To insert a new line before the first
line put the cursor in column 1, row 1
and hit Alt S (split line) or hit ENTER
if you inserted SPLIT YES in your active
profile and if the INSERT toggle is ON.

BSpace............Delete left character. See AUTOBACK. If the
cursor is at the beginning of line the
current line is joined to the previous
line.

Ctrl Bsp..........Delete the current line. This line will
be saved in the UNDO buffer. You can
restore it later using Alt 8 : it will be
restored at cursor position.

Del...............Delete current character.

Insert............Toggle insert mode.

Ctrl F1...........Convert the current word to UPPERCASE. Ctrl
F2 will convert to lowercase.

Ctrl F3...........Convert the current block to UPPERCASE.
Ctrl F4 will convert to lowercase.

Ctrl F6...........Reformat current paragraph (see
FORMATTING).

Ctrl F7...........Reformat current marked group of LINES.

Alt J.............Join next line to current line.

Alt S.............Split current line at cursor position. The
beginning of the new line is aligned on the
the beginning of the current line. The new
line becomes the current line.

Alt V.............Remove all trailing blanks for all text
lines. Trailing blanks are sometimes
generated using the COPY BLOCK function.
The SPACES YES option in your active
profile will tell E! to automatically
remove all trailing blanks before saving a
file.

E! - page 19





Alt X.............Toggle access to "control characters
editing". Since many E! functions are
driven thru control characters it is
normally not possible to insert them in the
edited text. Alt X disables control
characters interpretation and print them
"as is" in the text. Doing so makes all
functions triggered with Control characters
unavailable until you hit Alt X again.

Alt =.............Insert blanks without moving the cursor.
NOTE: see remarks on DOS 3.3 at the
beginning of this documentation and in the
DEFINE command section.

Alt 0.............Search the current word beginning at
cursor position. You can search next
occurences using Ctrl S or Alt 0.

Alt 1,2,3.........You can "mark" the current text using one
of these keys. Using the same key again
will bring you back directly to the
"marked" text from another text.

Alt 4.............Remove all text marks. If you release a
"marked" text from memory the
corresponding mark becomes available to
other texts.

Alt 5.............Refresh the current text. That is, all
modifications you made since you loaded
or saved the text are discarded and the
text is reloaded from disk file. This
works exactly the same as releasing the
text from memory without saving it and
issuing a new EDIT command but it saves
time. Please see RECENT keyword in PROFILE.

Alt 6.............Search a "MATCHING BRACE". Assuming you
are editing the following expression :

3 * (x / (y + z * ( a + b + c)) + 45 )
^
If you want to find the parenthesis
corresponding to the second left
parenthesis, move the cursor to the
second left parenthesis and hit Alt 6.
The cursor will be moved to the
corresponding right parenthesis.

3 * (x / (y + z * ( a + b + c)) + 45 )
^

If there is no matching brace in the
current text, the cursor is not moved.
Alt 6 works with braces pairs showed in
the next paragraph. Alt 6 works with
right or left braces.


E! - page 20




Alt 7.............Insert a "PAIRED BRACE".

1. E! looks for one of the following
sequence on the current line between the
beginning of line and the current cursor
position :

/* , (* , { , < , [ , (, BEGIN, REPEAT

If such a sequence is found the
corresponding right brace is inserted.

2.If not, E! looks for one of the following
sequence between the current cursor
position and the end of line :

*/ , *) , } , > , ] , ), END, UNTIL

If such a sequence is found the
corresponding left brace is inserted. If
several "brace sequences" are found,
priority order is as shown above.

Alt 8.............See UNDO.

Alt 9.............Insert the last line saved to the DOS
screen buffer just after the current
line. The DOS screen buffer contains the
last 25 lines from the last DOS session
executed from E! or, if no DOS session
has been executed, the screen that was
active when E! was called from the DOS
command line. Trailing blank lines on the
screen are not saved in the DOS screen
buffer. So you can insert in your text
the results of any program if it does not
clear the screen on exit. DOS lines can be
restored only once.


UNDO FUNCTION - (ALT 8)
***********************


When you delete lines with Ctrl Bsp or Alt D (marked group of
lines - with Alt L) these lines are not lost but saved into the
UNDO buffer. The UNDO buffer size defaults to 512 lines but you can
modify it with the "UNDO n" option in your main profile where n is
the number of lines. This command can be issued in the main profile
only (E!.LOG). That is, each new UNDO command will be ignored. n
may range from 64 to 16380 lines. If EMS is used, the maximum is
lowered to 8192 lines.

The UNDO buffer works on a LIFO basis, that is, the last
deleted line will be restored first. So, a call to the UNDO
function (Alt 8) will restore the last deleted line and so on until
the UNDO buffer is empty. Each line is restored on top of the
current line and becomes the active line. So the text will be
inserted in its original state. There will be no UNDO buffer
overflow; if there is no room enough to store the last deleted line,

E! - page 21




the older line in the buffer will be lost. A line can be restored
only once from the UNDO buffer.

Note : when the buffer is full, the time used to save a line
will be proportional to the buffer size. So, it is not recommended to
use too large UNDO buffer sizes.


H. BLOCK MANIPULATION
_____________________

Block functions are one of the most valuable features of E!. All
block functions are available to work from a text to another, that
is, it is possible to move or copy a block or group of lines from one
text to another text. Consequently, only one active block is allowed
at one time. A call to a block function is effective even if the
block marked is not in the current text. So be careful, if you marked
a block in another text, it will be deleted if you hit Alt D even if
this text is not the current text. Before issuing a block command
please have a look at the block mark status on the command line. It
will indicate wether an internal or external block is marked.

For each block function to work, a rectangular block or group
of lines has to be marked first. Then you can apply every block
function to this block or group of lines. From now, we will generally
use the term "block" for everything that is marked.


MARKING A BLOCK - Alt B, Alt L and Alt Z
________________________________________

There are 4 ways to mark a block. First, you can mark a
RECTANGULAR block. To do so, you have to move the cursor to the
upper left corner of the block and hit Alt B. This will be already
a block containing only one character. To extend the block mark,
move the cursor to the lower right corner of the block and hit Alt
B again. Actually, the relative position of the cursor when you hit
Alt B the second time is not so important and you can choose a
"lower right" corner which is in fact "before" the "upper left"
corner. That is, you have just to hit Alt B twice to define a
RECTANGULAR block and E! will understand what you want to do,
whatever the cursor position.

You can also mark a GROUP of LINES using Alt L. Again, you
have to hit Alt L twice. All lines between the two marked lines
will be marked and highlighted. You may naturally mark only one
line, using Alt L only once.

The third way of marking is the SENTENCE marking (Alt Z). You
will use it in a similar way as you will use Alt L but the first
and last line of the group will accept to be partially marked
depending on the cursor position (column) when you hit Alt Z. This
way of marking is less frequently used than both BLOCK and LINES
marking but it can be useful to extract a sentence from a paragraph
when you are editing texts (but not programs).

Finally, Alt W marks the current word as a block.

Anyway, the marked area will appear highlighted (the block
attribute can be specified in your profile like any other color). The

E! - page 22




block mark status indicator on the command line will show "MARKED"
or "EXTERNAL" if you switch to another text.

From now, you can apply any of the function described below to
the marked area. This marked area can be modified at any time and
will remain active until you UNMARK it.


UNMARKING A BLOCK - Alt U
_________________________

Alt U will unmark any marked area even if it is not in the
current text.


DELETING A BLOCK - Alt D
________________________

Alt D deletes the marked area. If the area was marked with Alt
L, all marked lines are saved in the UNDO buffer. If the area was
marked with Alt B the corresponding lines are not deleted even if
they are empty after block deletion. Don't use any marking to delete
only one line. Use Ctrl Bsp instead. Remember, the marked block will
be deleted even if it is an "external" block.


COPYING A BLOCK - Alt C
_______________________

Alt C copies the marked block at the cursor position. That is,
if the marked area is a GROUP of LINES, these lines are inserted
between the current line and the next line. If the marked area is a
RECTANGULAR block, this block is inserted at cursor position,
shifting all text to the right.

In COMMAND mode, the current block is copied at cursor position
only if there is enough room on the command line and if the block
height is 1.


MOVING A BLOCK - Alt M
______________________

This command works like the COPY command but the marked area is
deleted after being copied.


OVERLAYING A BLOCK - Alt O
__________________________

This command works like the COPY command but the block is not
inserted but overlayed at the cursor position and any existing text
is overwritten. It works only with the RECTANGULAR blocks. With
marked LINES it works exactly like COPY.


ADJUSTING A BLOCK - Alt A
_________________________

This function works only with RECTANGULAR blocks. It functions

E! - page 23




like a MOVE but the block can overlay itself, so small adjustments of
the block position can be made very easily.


SPECIAL FUNCTIONS
_________________


FILLING A BLOCK - Alt F
_______________________

Alt F prompts you for a character. Hit this character and the
marked block will be filled with it.


SORTING LINES - Alt G
_____________________

If the marked area is a GROUP of LINES the sort criterion will
be the entire line. With a RECTANGULAR block, the sort criterion
will be the marked part of the line. E! will prompt you for the
sort direction (ascending or descending). If there is no room
enough on the E! stack to complete the sort it will be cancelled
but you may retry because the data has been partially sorted and
the next sort may need less stack space.


DRAWING A BOX - Alt H
_____________________

Alt H will draw a box around a RECTANGULAR block. The box is
drawn WITHIN the highlighted area. So please reserve space around the
text when marking the block. See also DRAWING mode.


ADDING BLOCK CONTENT - Alt N
____________________________

Alt N evaluates all lines of the RECTANGULAR block and add
them together (if they represent numerical values). The result is
then inserted at cursor position. The cursor may be in another text
than the marked text. If the block data cannot be evaluated the
error coordinates are displayed on the help line.


CENTERING TEXT IN A BLOCK - Ctrl F5
___________________________________

Ctrl F5 will center the marked text in the marked area.


SHIFTING LINES - Alt -
_______________________

This function is a convenient way to shift a group of lines to
the right. You'll have to mark a RECTANGULAR area. The left block
coordinate will be considered to be the start position for shifting,
the amount of columns to shift will be the block width and all
lines included in the block will be shifted. This is a little hard
to explain but fortunately very easy to do. Just try it!

E! - page 24







NOTE : see remarks about DOS 3.3 in the DEFINE command
paragraph and at the beginning of this documentation.



I. FORMATTING
_____________

Although E! is not a word processing software, it offers you
some powerful formatting functions. Two formatting modes are
available : WORDWRAP and JUSTIFICATION. JUSTIFICATION works almost
the same as WORDWRAP but it also makes a right justification of the
text being edited.

This can be obtained two ways :

- reformatting an existing paragraph.
or
- formatting the text automatically as you type it.

To activate these modes you have first to hit Ctrl F
(WORDWRAP). If you want to enable the JUSTIFICATION mode you have
also to hit Ctrl J. If you disable the WORDWRAP mode, you also
disable the JUSTIFICATION mode. Ctrl F and Ctrl J are toggle keys.

NOTE :

WORDWRAP YES and JUSTIFY YES are ignored in the main profile
(E!.LOG). This is because the main profile is read before any text
is loaded : E! maintains a WORDWRAP flag and a JUSTIFICATION flag
for each file. So, by reading the main profile E! does not know to
which file this flags should apply.

The JUSTIFICATION mode can only be active if the WORDWRAP mode
is active. So if you have JUSTIFY YES in a profile and if there is
no WORDWRAP YES command or if the WORDWRAP mode is not already
active, JUSTIFICATION mode will be without any effect.

Then you have to specify margins. There are three values you
can specify : the left margin, the right margin, the paragraph begin
margin. Defaults are respectively 10, 70 and 15. To change margins
values use the MARGINS command or load a profile containing a
MARGINS command.

To format a paragraph (remember : a paragraph is any contiguous
text between blank lines) move the cursor to any position within the
paragraph and hit Ctrl F6.

For new paragraphs, simply enter your text and don't worry :
E! will format it as you type. Each time you'll reach the right
margin E! will justify (if required) the current line, insert a
new line, move the cursor to the left margin of the new line so
quick that you can continue entering text without any problem.
Though, if you make a modification in the paragraph you will have to
reformat with Ctrl F6.

To format several paragraphs at a time mark them with Alt L and

E! - page 25




hit Ctrl F7. Formatting will begin with the first paragraph
containing a marked line and continue until the last paragraph
containing a marked line has been formated.

If you toggle to DRAW mode, WORDWRAP and JUSTIFICATION are
automatically disabled and restored when you leave the DRAW mode.



J. DRAWING
__________


With E! you can make complex drawings with semi-graphics
characters very easily. Hit F6 or enter DRAW on the command line
and specify a draw style (or mode) between 1 and 8 :

ÚÄÄÄÄÄ¿ ÉÍÍÍÍÍ» ÕÍÍÍÍ͸ ÖÄÄÄÄÄ·
1 ÃÄÄÄÄÄ´ 2 ÌÍÍÍÍ͹ 3 ÆÍÍÍÍ͵ 4 ÇÄÄÄÄĶ
ÀÄÄÄÄÄÙ ÈÍÍÍÍͼ ÔÍÍÍÍ; ÓÄÄÄÄĽ


ÛÛÛÛÛÛÛ +++++++ +-----+ +-----+
5 Û Û 6 + + 7 ! ! 8 | |
ÛÛÛÛÛÛÛ +++++++ +-----+ +-----+


When the draw mode is active you "draw" by simply moving the 4
direction keys. E! manages automatically line crossings so you just
have to indicate in which direction you want to draw. E! will do
the job for you. To suspend drawing hit the SCROLLOCK key.

When SCROLLOCK is active, you can enter text and access many E!
functions. Though we recommend you don't stay in DRAW mode if it is
not necessary.

When you enter the DRAW mode, the first character E! will draw
depends on the last direction key which was used. A simple character
is considered as a right direction key (right arrow).

When you cross an existing line you can :

a. continue in the same direction, E! will draw a full cross

b. change the drawing direction, E! will link the two lines
properly.

If you make a mistake, just redraw over the existing line. The
mistake will be corrected.

Draw mode 9 actually draws nothing but blanks. This allows you
to "rub" an existing box or line.

Just spend a few minutes to try the DRAW mode : it's fun and
easy.






E! - page 26




K. COMMANDS
___________


E! commands are entered on the E! command line. You access the
E! command line with the ESCAPE key which is a toggle key and will
return you to the EDIT mode.

1.About E! commands
___________________

While in COMMAND mode you can use the whole command line to
enter commands. All commands may be upper or lowercase. You may also
use shortcuts to enter commands. You have to enter just as many
characters as E! needs to recognize the command (the "minimum"
command is specified for each command).

ex : Def for DEFINE
Asc for ASCII
Autot for Autotab
AutoC for Autocomp etc...

All entered commands are stored in a circular list. So you can
retrieve old commands, reenter them or edit them. If you reenter a
command without modifying it, it is not saved again. Old commands
are retrieved with the UP and DOWN keys. There is no limit to the
number of commands E! can store.

While editing the command line, you can benefit from the
"normal" line editing functions (Home, End, Ctrl End, Ctrl
Right, Ctrl Left, etc...). All keystrokes not related to command
line editing are available and redirected to the text. So you can
continue marking and deleting text, move blocks etc... A VIRTUAL
cursor is always available, showing you what is the active cursor
position in the text.

(Please see ALT C in the BLOCKS MANIPULATION section).

DOS COMMANDS

Last but not least, any command entered on the command line and
not recognized by E! is redirected to DOS and executed. So you can
run any internal or external DOS command or any program directly from
the E! command line. If there is any problem executing this command
E! will issue an appropriate message.

You can force command redirection to DOS prefixing your command
with "*".

ex : *LIST

will not call the E! "LIST" command but will directly execute
the LIST program if available.

You can also execute a "blind" DOS command prefixing the
command name with "@". Doing so the E! screen will not be cleared
and the DOS command will be executed "in the background". All
program STANDARD outputs will be redirected in order to keep the E!
screen intact. These ouputs are LOST. If you run a program making
BIOS calls or direct video access, the E! screen will be naturally

E! - page 27




overwritten.

Example:

@cd\ will switch to the root directory without showing any DOS
prompt and without modifying the E! screen. This will save time.

but issuing

@dir

would be a real time loss because any output would go lost.

@dir > list.lst

should be more interesting.

WARNING : If you load a TSR program (resident program) from E!
this will generate big problems. Generally E! will see that and
issue a warning message asking you to save the edited texts. No
program making DOS accesses will accept that you load a TSR program
during the shell.

Before processing DOS commands E! will try to recover as much
memory as possible for your program to run. While doing this
E! issues a message : "Compressing memory...". During idle times
(that is when you don't hit the keyboard) E! continually reorganizes
memory to have your text laying as low as possible in memory. This
will also contribute to free some space for your programs.

You may request swapping when running a DOS command from the
E! command line. To do so, you'll have to use the '#' prefix. Here
are some examples of valid commands:

#DOS swap to disk or EMS and go to DOS prompt

#xcopy *.pas b: swap to disk or EMS and run xcopy

#@xcopy *.pas b: swap to disk or EMS,run xcopy in "blind" mode

As you see from the above examples '#' does not replace '@'.
You may always use it to run a command in blind mode.

Naturally, swapping takes time but your command or program
will now execute with more memory space available.

Beginning with version 5.0, the swapping process has been
greatly enhanced, thanks to the help of Kim Kokonnen, President of
TurboPower Software, Scotts Valley, USA. Now E! swaps its own code
and data to EMS or disk and not only the heap contents. So, only
2600 bytes of memory remain occupied by E! during a compilation
process or a "swapped" DOS shell.

If there is no room enough on the drive specified in your
active profile (SWAP x:) no shell to DOS will be made and E! will
display an error message. So, the drive specified for swapping
should have at least 600 kbytes free permanently.

If you are using a replacement program for COMMAND.COM, your
command interpreter may accept additional internal commands. E!

E! - page 28




will take them into account if they are stored in a text file named
INTERNAL.LST located in the directory defined with E!= in your
environment string. A sample file containing the standard DOS
internal commands is available on your diskette. Just append the
internal commands processed by your replacement command interpreter
to this file. Please use only a single command per line. If
INTERNAL.LST does not exist, E! will default to the standard DOS
internal commands.

MEMORY COMPRESSION

Systematically compressing memory before calling DOS may lead
to a time loss since enough memory space may be available above the
E! heap at call time. E! has no way to evaluate the space needed by
the program you want to run but it lets you now determine under
which amount of available PARAGRAPHS a memory compression will be
run. Merely enter

COMPRESSION n

in your PROFILE where n is a number of PARAGRAPHS (16 bytes).
In case of compilation or if you don't specify any value for
COMPRESSION, a compression will be made each time you call DOS
unless E! sees there is no way to spare more memory.

SEARCH OF EXECUTABLE FILES

E! 5.x does not load systematically a copy of COMMAND.COM when
you run a DOS command. It only does so when running a DOS internal
command or a BATCH file. This is detected automatically. Moreover,
if you enter an unknown command name on the E! command line, E!
does not even make a DOS shell. This new feature saves time and
memory space.



2. E! COMMANDS REFERENCE
_________________________

E! commands are listed below in alphabetical order. Generally
commands requiring parameters may be entered without parameters. In
this case E! will show you the active parameters for this function.
This is not true for the DELAY and SCROLL functions which are not
used very frequently.

ex : MARGins entered without any parameters will display the
active margins. So you may edit them and enter the new values.


ALARM hh:mm

This command allows you to set an internal alarm which will be
triggered at the specified time. The format of the command is

ALARM hh:mm

If you enter ALARM without any value for the time, E! will
show either the current ALARM setting or the current time.



E! - page 29




AUTOBACK [yes/no] (default YES) - ( autob )

If AUTOBACK has been set to YES, pressing the BACKSPACE key
will delete the left character and move the right part of the line
to left. This is the way BACKSPACE normally works. Setting
BACKSPACE to NO will cause the left character to be deleted but the
line remains unchanged, that is, the deleted character is replaced
with a BLANK. No part of the line will be moved.

AUTOCOMP [yes/no] (default NO) - ( autoc )

E! always consider the TAB character as a normal character and
will display it as a graphic chararacter. TAB keystrokes are
actually emulated. If the text being loaded contains TAB characters
you may want these TAB's to be expanded. In the same way, you may
want to save some disk space and convert all blank sequences to
TABs when it is possible. This is done using AUTOCOMP, EXPAND and
COMPRESS. If AUTOCOMP is set to YES, files will be automatically
expanded when they are loaded and compressed when they are written
to disk using F4. E! uses a tabulation increment of 8 which is the
value used by DOS and all ascii editors. So you will have no
problems loading files edited with other programs.

E! will not compress the blanks if you save the file with F2,
SAVE or during automatic saving. Only F4 causes the blanks to be
compressed. Naturally, if you already compressed the text with
COMPRESS, compression is maintained.

Strings between quotes (' or ") will never be compressed. So
you will never have problems compressing source files containing
strings to be displayed.

Compression will save about 15-20% of the file size on disk
but there will be a small time overhead when the file is loaded or
saved. Compression will be optimal if text indentation is made with
the default increment (8).

See COMPRESS and EXPAND.

E!.MSG, E!KEY.HLP and E!.HLP must not be compressed.

Be aware that certain DOS commands don't know how to deal with
tab characters. Hence, it is not recommended to compress batch files,
autoexec.bat or config.sys.

AUTOTAB [yes/no] (default NO) - ( autot )

AUTOTAB YES will cause the TAB key to move the cursor under the
first character of the next word on the previous line. Previous tab
positions are ignored until AUTOTAB is set to NO.

APPEND [filename]/[devname] - ( app )

The marked BLOCK or GROUP of lines is appended to the file
or to the DOS device specified (generally the printer).

ASCII char - ( asc )

This command will display the ascii code of the character passed
as parameter. If no parameter is passed, the current character is

E! - page 30




taken as parameter if there is a valid character at the current
cursor position.

AUTOLIMIT n (default 500) - ( autol )

n is the elapsed time in seconds triggering an autosave. This
is a global value for all files being edited. Entering 0 will
deactivate the AUTOSAVE process. A non zero value for AUTOLIMIT
will not activate the AUTOSAVE process if it is set to NO.

AUTOSAVE [yes/no] (default NO) ( autosa )

AUTOSAVE YES will activate the AUTOSAVE mode. If your file has
been modified and the elapsed time since the last saving on disk or
since file loading is greater than AUTOLIMIT, the file is
automatically saved without compression. The time counter for the
current file is reset to 0 each time

- you load a new file

- you skip to another file

- you skip to another window

- you save the current file

- you change the AUTOLIMIT value

If the file is not modified within the AUTOLIMIT time slice,
it will be saved immediatly after the first modification occuring
after the AUTOLIMIT time has been reached.


The AUTOSAVE process saves the edited files in temporary files
and not in the original files. These files are named $$$E!$$$.xxx
where xxx yields 0 to 255. The only exception to this rule occurs
when you make a call to DOS (programs, commands, compilers). In
this case the original files will be updated to make sure you are
running your programs (compilers) against the right version of your
text.

This means that you have to explicitly SAVE your files when
you leave E! even if an AUTOSAVE process just occured. If any
problem happens when you are editing your files (such as a power
failure), you will find your data in the $$$E!$$$ files. These
files are deleted when you exit from E! normally.

Moreover, if you insert the "RECENT YES" statement in your
active profile, the "refresh" function (Alt 5) will not reload the
original file but the version active when the last autosave process
was triggered.

If AUTOSAVE is active, every call to a DOS command or a call
to the E! "COMPILE" command will also cause every modified text ( M
on the status line) to be saved before the command is executed.
This is very useful if you are not convinced that the program you
want to execute is a safe program or if you want to be sure to
compile the last version of the source file your are editing.

See also the RECENT command.


E! - page 31




AUTOSCROLL [yes/no] (default NO) - (autosc)

When you are entering new text you will often find you editing
on the last physical line of the active window. Since you cannot
see the text under the active line you may feel uncomfortable. If
AUTOSCROLL is set to YES, as soon as you reach the middle of the
active window when you insert new lines, E! will automatically
scroll one line up when you insert a new line. So you will stay
editing on the middle of the active window. If you begin inserting
past the "middle" line you will stay on the line where you began
inserting.

BAK [yes/no] (default NO) - ( bak )

Setting BAK to YES will cause E! to generate .BAK copy of your
existing file each time you save a new version. This is a good
security but will consume much disk space. Automatic saving does not
generate a .BAK file.

CANCEL [all]|[filename] - ( can )

The specified file or all files submitted to the DOS PRINT
spooler are deleted from the PRINT queue. Cancel without parameter
deletes the current file from the PRINT queue. See SUBMIT.

CHAR n - ( char )

Display the character the ascii code of which is n (decimal).

CODE [yes/no] (default NO) - ( code )

If CODE is set to YES the error code value is displayed along
with error messages. This may be convenient if the error messages
file has been lost or not found. So you can refer to the
documentation.

COMPARE (compa)

This command allows you to easily compare two text files. First
make sure you have at least 2 windows open. The first text must be
displayed in the current window and the second text in the next
window. Comparison will begin at the current line for each text. If a
difference is found each file is displayed with the cursor set at the
position where the difference was found.

COMPRESS / EXPAND - ( compr / expan )

Even if AUTOCOMP is set to NO, you may want to compress blanks
to tabs in your text. Use COMPRESS to do that. Tabs will appear as
normal control characters. EXPAND will expand tabs to blanks using
the DOS conventions. The file size indicator on the command line
will be updated so you can see what is the benefit of an eventual
compression.

E! will not compress a string containing quotes. That is, the
part between quotes will not be compressed. To avoid expansion
problems, a line of text containing tabs will not be compressed.

DEFINE code - ( def )
code string ou [code " string "] ou [code 'string ']

E! - page 32




code @macroname
code $profilename
code &commandname
code functioncode

The DEFINE command is one of the most important feature of E!.
This is the way to redefine the keyboard and to assign any kind of
command, keystroke, string, profile, function or macro to a key.

You will have generally two parameters to enter along with the
DEFINE command. The first parameter is always the keycode of the key
you want to reassign. These keycodes are found in APPENDIX 2 and in
the HELP file (partially for the latter).

1. The most simple command is the string assignment. Simply
enter the string you want to assign to the key as the second
parameter to the DEFINE command. The string may be entered without
quotes but in this case leading and trailing blanks will be ignored.
You may use simple or double quotes.

ex : Def 380 'E! is great'

will assign the specified string to Alt 5.

2. Assigning a macro (see MACROS) to a key is also quite simple.

ex : Def 380 @macname.mac

will assign the macro saved in the MACNAME.MAC file to the Alt
5 key. Each time you will press Alt 5 this macro will be loaded and
executed. The active macro is temporarily saved and restored when
the called macro is terminated. The .MAC extension is a default. So
you don't need to specify it.

3. To assign a profile to a key juste change the "@" character
to a "$".

ex : Def 380 $proname

will assign the profile PRONAME.PRO to the Alt 5 key. When you
will press Alt 5, PRONAME.PRO will be loaded and E! will be
reconfigured using this new profile. This will be very useful if
you have to switch between a program and text file. Using judicious
profiles will help you to quickly change the editing context.

4. Using the same method you will assign any command (including
DOS commands) to a key :

ex : Def 378 &edit myfile.e!

will cause MYFILE.E! to be edited each time you press Alt 3.

5. DEFINE also allows you to dynamically redefine the entire
keyboard if you want :

Define keycode functioncode

ex : Def 389 3



E! - page 33




will assign the "Align Text" function (normally assigned to
Ctrl A) to the F11 key if you have an enhanced keyboard. Ctrl A
will always trigger the same function but it is now available for
another job. Function codes are described in APPENDIX 2.

E! has a more easier way to reassign keystrokes. Just enter
DEFINE (def) without any parameter on the command line. E! will
prompt you to hit :

1. the target key for the reassignment

2. the default key triggering the function you want to reassign.

Example:

Enter "def" on the command line.

Hit F11 (this key is normally not affected).
(E! will display 389 on the command line)

Hit Ctrl A ("align text" function)
(E! will display 1 on the command line)

Hit Enter.

That's all. You will not have to remember keycodes and functions
codes. This definition may be edited before you hit ENTER. So you can
change the second code to any string.

NOTE : You may have problems with DOS 3.3. Certain keystrokes
are no more recognized with some keyboard drivers (FR and GR). If
this is the case and if you don't need the CODE PAGE switching, you
may use a keyboard driver from a previous DOS. This works very fine.

6. Using DEFINE with only the first parameter will assign the
default function to the specified key.

ex : Def 378

will cause Alt 3 to trigger the default function which is the
text marking.

Normally you will use DEFINE mainly in your PROFILES. You may
also use the following tip : use the same key in two different
profiles to toggle between them. You may have a main profile
designed for programming containing a DEFINE command to assign the
EDITING PROFILE loading to a key. This EDITING profile may also
contain a command assigning the MAIN PROFILE loading to the same
key. So this key will toggle between the two profiles.


WARNING !!!

If you want to assign a character string beginning with '&', '@'
or '$' to a key, you will get a problem because E! will try to
interpret those characters. To avoid this you may want to use the '\'
prefix which deactivates first character interpretation.

Define code '\$ssssss'


E! - page 34




will assign "$ssssss" to the key and will not try to find the
"ssssss" profile.

To insert a '\' as a first character in the assigned string,
just double it as in the C language.

Define code '\\ssssss'.

DELAY n (default 850 - PC AT value)

DELAY specifies how long you have to press on a SHIFT key (Alt,
Ctrl, Shift) to display the secondary help lines corresponding to
that shift key. 0 will deactivate the secondary help lines. The upper
limit for DELAY is 32767. Use it only if you are VERY patient.

DENUMBER (denum)

If you used the NUMBER command, DENUMber will delete line
numbering at the beginning of each line. WARNING : if this numbering
has been altered, E! may delete some valid characters. See NUMBER.

DOS

This command simply opens a DOS session. Enter EXIT to return
to E!. This is not the more simple way to run DOS commands since
you may enter these commands directly on the E! command line. DOS
is here for your convenience if you really need to "escape" to DOS.

See also AUTOSAVE.

DRAW [1]|.......|[9] or empty entry (default 1) - ( draw )

See DRAW section.

EDIT [filespec1] [filespec2]...[filespecn] - ( ed )

See GETTING STARTED.

NOTE - you have to be aware of two things :

- Before loading a file E! controls if there is enough memory
available to edit it. If not, the file is simply not loaded and an
error message is issued.

- Even if the first control (which cannot be very accurate) is
ok, a control is made for each line loaded. This is a security for
your files.

EGA-VGA [yes/no] (default YES)

This command allows a 35/43/50 lines display mode when you hit
Ctrl G. Normally you need not to use this command since E!
automatically detects if you can benefit from these modes.
Unfortunately, some multi-standard display adapters do not behave
very well and you may run into difficulties. So this command is
available to "manually" control these display modes.

EMSG

Edit the E!.MSG file. So you can freely modify the error

E! - page 35




messages and help lines if you made some reassignments. The error
message lines order MUST not be changed for messages consistency.

GET filename - ( get )

GET will load the specified file at the cursor position.

LIST [path] - ( list )

LIST is a very convenient command if you use it combined with
Ctrl L (edit current word as a file), Ctrl Z (list current word as
a directory), Ctrl X (execute current line as a DOS command). LIST
without any parameter will display the current directory in a new
edit buffer. You may also specify a path and a file specification
if needed.

You may want to use Alt G to sort the displayed list. Each LIST
file is named LIST.nnn. nnn begins with 000 and is incremented along
your E! session. These files are erased as soon as they are created
and displayed but you may save them if you want.

Note 1 : In a LIST "." and ".." always point to the current
directory and the current directory parent directory. Not the
directory being displayed.

Note 2 : LIST.xxx will be also listed if you are listing the
E! directory (that is the directory you specified with SET E!=....).

LOG [yes/no] - (log) (default YES)

If LOG is set to YES, a LOG file will be written each time E!
exits. This allows E! to reload the previous a session and to
position the cursor at the last editing position in the edited
files.

LOCK xxx

If you ask E! to load a non text file, it will generally be
aware of that and will issue a warning message. Though it is more
convenient not to load such files. As a default E! will refuse to
load any file with a .COM, .EXE, .BIN, .OBJ extension. You may add up
to 21 extensions to this list using the LOCK command. This will be
normally specified in your PROFILE but you can use this command on
the command line for temporary needs.

Ex : Lock cpi

will preclude E! to load any .CPI file (in this case code page
files of DOS 3.3).

If you used LOCK judiciously, you will be able to edit all files
in a directory that are text files entering E! *.*.

MACRO [macname] - ( mac )

Load and execute the specified macro. (See MACROS).

MARGINS [left right paragraph] - ( marg )

MARGINS without parameter displays the active margins. You may

E! - page 36




edit them and reenter the new command or directly enter the new
margins values. Margins are not used by E! if the WORDWRAP mode is
not activated. The paragraph margin value may be smaller than the
left margin.

MEMORY - ( mem )

Before displaying the amount of memory available for editing
and for running an external DOS program E! makes a full compression
of the remaining memory space.

NAME filename - ( nam )

This is a simple command to rename the current text.

NMACRO macname - ( nmac )

This command works almost the same as MACRO but the specified
macro is only loaded and not executed. It becomes the active macro
and you can run it with Ctrl P. The previous active macro is saved
and can be restored with Ctrl Q.

NUMBER

NUMBER uses no parameters. It simply adds a line numbering to
the text. That is, the line number is REALLY inserted in your text
and not only displayed. This will be useful to BASIC programmers or
if you want a listing with line numbers. See also DENUMber and
RENUMber.

PAUSE [yes/no] (default YES)

If PAUSE is set to YES, E! will wait for a keystroke before
returning from DOS. If not, there is no wait and E! will return
immediatly after executing the command.

PRINT /code1/code2/code3/... - ( prin )

This is the way to print the current text. The printer will
first be initialized with the specified code1....coden ascii codes
(decimal).

ex : PRINT /27/69 (ESC E)

will print the current file with a near-letter-quality on
an IBM compatible printer.

This way of printing is not bufferized. To make a bufferized
print use the SUBMIT command. Naturally, if you have a print
spooler installed, the print will be bufferized. Hit ESCAPE at any
time to cancel the print.

PROFILE proname - ( pro )

This is the command used to reconfigure E! using a specific
profile (generally different from the main profile). See PROFILES.

PROfile entered without any parameter will edit the main
PROFILE.


E! - page 37




PUT filename - ( put )

This command will cause the marked BLOCK or GROUP of lines to be
written in the specified file wich may be a DOS system file (PRN,
LPT1, etc...). Any existing file is overwritten. If WARNING is
active, E! will issue a warning message.

QUIT - ( quit )

Same as F3.

QQUIT

QQUIT will cause the program to terminate immediatly after a
last warning message. No file will be saved, initial video mode, if
changed, is not restored and no LOG file is created or updated. It is
not recommended to assign this command to a key.


RENUMBER

If the line numbering created with NUMBER has been altered,
RENUM will regenerate it (e.g. you moved some lines).

RESETLOG (reset)

This command RESETLOG will avoid to reload recently discarded
files if you call E! with /L on the next session.

Example : if you have been editing 3 files F1, F2 and F3
during a session, E! /L will reload the 3 files. If you entered
RESETlog on the E! command line after F1 and F2 have been discarded
and before releasing F3 from memory, E! /L will only reload F3 the
next time you'll call it with /L.

SAVE [filename] - ( save )

SAVE without any filename is the same as F2. If you add a
filename to the command, the current file will be saved with the
name you specified.

SCROLL n - ( scrol )

n is the amount of columns you want to be scrolled when using
Alt F3 or Alt F4.

SDEF filename

This command allows you to save in "filename" all current key
assignments. This file may be later included in any PROFILE to
reload these assignments easily. The definition file is generated
in the current directory unless you specified a path. Its name will
default to E!.DEF if you gave no filename as argument to the SDEF
command.

SELECTION - ( sel )

This command allows you to enter any character at the current
cursor position (assuming this character is not defined on your
keyboard). This will be useful to enter characters from the extended

E! - page 38




ascii set. Enter SELection on the E! command line. Use the direction
keys (with or without Ctrl) to select a character. The screen is
permanently updated with the current selection so you can see the
result of your selection before the character is really inserted in
your text. Confirm with ENTER or cancel with ESCAPE.

SLIST [listname] (slis)

This command saves the names of all the files beeing edited in
the specified file for later use with the "@" load prefix. See using
lists of files. If no name is provided, the default name (FILE.LST)
is used. Previously existing list is overwritten.

SMACRO macname - ( smac )

This command saves the active macro (defined with Ctrl R) in a
file named macname. The .MAC extension is the default, so you need
not to specify an extension. The macro is saved in the path defined
with SET E!=... . See MACROS.

SNOW [yes/no] (default is automatic detection) - ( snow )

Setting SNOW to YES will force E! to synchronize with the
display adapter to update the screen. This is generally not needed
unless you have a CGA adapter. Usually E! will detect if SNOW YES is
needed. If your adapter is not compatible you may want to control
this manually.

SUBMIT - ( subm )

This command assumes you have installed the DOS PRINT spooler.
If not, an error message is issued. SUBMIT entered without parameter
will enter the current text in the PRINT queue. Since PRINT works on
a file, the current text is automatically saved before being
submitted to PRINT. You will then return to E! and the text will be
printed as a background task.

PLEASE DO NOT install PRINT from E!. PRINT is a resident
program and will cause E! to crash if you enter the *PRINT command
from the E! command line or from a DOS session initiated from E!.

To cancel a PRINT use the CANCEL command.

STRIP - (strip)

STRIP causes the eighth bit of all characters of the text
being edited to be set to 0. This is very useful if you loaded a
text edited with WORDSTAR (trademark). The text will be immediatly
made readable. Naturally all characters belonging to extended IBM
ascii character set will also be stripped (so be careful if you are
DRAWING).

TABS n n...

This command allows you to visualize and/or change the tab
stop settings. Entering TABS without any parameter will cause E! to
display the current tab stops values. You may then edit them or hit
Escape if you change your mind.

You can also enter the new values directly. Old values will be

E! - page 39




lost. If you are entering values that are spaced regularly (i.e. 1
9 17 25 etc...), just enter the 2 first values of the serie. E!
will generate automatically the other values. E! takes the two last
values entered on the command line into account to generate the
remaining tab stops.

Examples:

Tabs 1 9 (generates 1 9 17 25 33 41 etc...)
Tabs 1 5 15 20 25 30 40 (generates 1 5 15 20 25 30 40 50 60 70)

This process works also for the TABS statement in a PROFILE.

UNDO n

This command specifies the size of the E! UNDO buffer. It may
vary from 64 to 16380 lines. Both sizes are not recommended. The
default is 512 lines. This command is actually not a real command
and you cannot enter it on the command line. You may only use it
ONCE in the MAIN profile (E!.PRO). Any new UNDO command in a
profile will be ignored.

WARNING [yes/no] (default yes) - ( warn )

A warning message is issued when you overwrite an existing file
only if WARNING is set to YES which is the default value.

[+/-] n

Moves the cursor to line n. If you use "+" or "-" the cursor
will be moved n lines forwards or backwards.



SEARCH / REPLACE COMMANDS

[!]|[=]/string1/[string2/][*][c][-][b][d]

SEARCH ONLY :

/string1/ : Searches the string "string1".
If ! (optional) is used, the string delimiter
may be different from "/".
!%string1% (convenient to search a string imbedding a "/")

options : c --> makes the search case sensitive.
- --> initiates a backwards search.
b --> limits the search area to the marked BLOCK
or GROUP of LINES. Global search if no
marked area exists.
d --> deactivates default options specified in
the active PROFILE. See PROFILES. This
option may be combined with the others.
w --> triggers a "whole word only" search.
In this case E! will do the same search
as the "current word search" function.
/the/w will find (the) or ;the but not
"theatre".



E! - page 40




Ctrl S : repeat search.

Alt 0 : search the current word in the remaining part
of the text. The word may be delimited with
blanks or any quote or punctuation sign
(including programmation symbols).


SEARCH AND REPLACE :

=/string1/string2/[options]

The "=" sign is mandatory. String1 is the
search string and string2 is the replacement
string. If you use the "*" option, replacements
are made without any confirmation prompt. If
not, you will be prompted to replace or not
(Y/N), Continue(C - same as *) or to
terminate the search. See below.

You may use b,c,d and - options.

Here is the detailed answers you can make to the E! SEARCH and
REPLACE prompt:

- YES (Y) : the string will be replaced and E! will search the
next occurence of string1.

- NO (N) : the found string will be skipped (not replaced) and
E! will search the next one.

- CONTINUE (C) : the string will be replaced and all other
occurences will be replaced without any prompt as if you entered
the * option.

- QUIT (Q) : the string is not replaced and the search is
terminated.

Using Ctrl S always initializes a simple search without
replacement.

If the b option (block limited search) is not used, the search
will always begin at the current cursor position when you enter the
search command. On the contrary, using Ctrl S to repeat the
process will begin the search at the last "found" position even if
you moved the cursor in the mean time. If you really want to repeat
the search from the CURRENT position, you will have to reinitiate the
search variables hitting Ctrl V. Search variables are always
initialized when :

- you switch to another text

- you load a new file

So the search will not necessarily begin at the first line of
text. To ensure the search will be global, use the b option (block
limited search) without marking any area or move the cursor to the
text begin and hit Ctrl V.

The E! search process is circular. That is, when it finds the

E! - page 41




last ocurrence of a string in the text, E! will display a
search end message (Search Terminated) if you hit Ctrl S. If you
hit Ctrl S again, E! will found the first search string occurence
again. This will not necessarily be the first occurence of the
string in the whole text but the first occurence of the string from
the start point of the search when it was initialized.

You may define default search options in your profiles. The E!
default search options are :

- not case sensitive

- forwards

- not limited to a block

- prompts when replacing

Only insert the following line in your profile:

SEARCH options

the options string being made up of any option character (b,
c, *, -).

example:

SEARCH *c

Remember to use "d" to deactivate the default search options
from the command line.


REGULAR EXPRESSIONS SEARCH

Regular expressions are now built-in. To activate a regular
expression search just add the "r" option in the search options
string. This option automatically deactivates the backwards search
flag.

Search String Syntax:

r --> regular expressions search toggle

? match any character
< or % match beginning of line
> or $ match end of line
* match 0 or more of previous char/expression
(short match)
+ match 1 or more of previous char/expression
(short match)
@ match 0 or more of previous char/expression
(long match)
# match 1 or more of previous char/expression
(long match)
[..] match any character within the class
(range defined with dash ex:[a-zA-Z])
[^..] match any character except those included
in the class (ex:[^0-9])
\c literal value of c (ex: \$ or \\ or \*)

E! - page 42




_ (underscore) specifies where the cursor
will be positioned within the found string
{..} expressions grouping to allow reference in
the replacement string with \0..\9

Replacement string syntax:

If you specified sub-expressions in the search string using
curly braces, you can refer to these sub-expressions in the
replacement string using \0 to \9. Example:

=/myfiles.{???}/hisfiles.\0/r

will replace all file specifications matching "myfiles" as
filename (with any extension) with "hisfiles" without changing the
file extension. Grouped expressions cannot be nested.

MORE ON REGULAR SEARCH EXPRESSIONS IN REGULAR.DOC.



L. MACROS
_________

You will often find you typing identical keystrokes sequences
again and again. E! allows you to record these keystrokes
(temporarily or permanently) and to replay them each time they are
needed. These keystroke sequences are called macros. You will show
E! what you want to do only once and E! will repeat the job on
request.

TEMPORARY RECORDING

To record a sequence you just need to hit Ctrl R (ecord) before
the sequence begins. Use any command or function you have to use and
hit Ctrl R again when your sequence is completed. E! will issue a
message as the recording begins and ends. If you hit Ctrl U while
recording, it is canceled.

To replay the sequence, hit Ctrl P(lay).

You have just defined the active macro. This macro can now be
saved in a file. If you record a new macro, the previous one will be
saved in a buffer. Ctrl Q makes the saved macro active again.

A macro may contain 253 keystrokes.

RECORDING PERMANENTLY

If you defined a macro of general interest and if you think you
will reuse it later, it will be useful to save it in a file for later
use. SMACRO macname will do the job. The .MAC extension is a default,
so you need not give an extension. The macro will be stored in the
directory you defined with SET E!=.... or in the current directory if
you defined no E! directory. You may specify a path for the macro
name.

To replay the macro, just enter MACro macname (no extension if
you choose the default) on the E! command line. The current macro, if
any, will be saved and macname will be executed. Then the active

E! - page 43




macro will be restored. Playing a macro with the macro command does
not make it the active macro.

The NMACro command will only load the specified macro and make
it the active macro. To replay it, just enter Ctrl P. Use Ctrl Q to
restore the previous one.

As stated above, the DEFINE command allows you to assign a macro
to a key either on the E! command line or in you profile(s). See
DEFINE.

When you record the macro, one of the recorded keystrokes may be
a key to which another macro was assigned. This means nested macros
are allowed. There is no limit to the depth level of nested macros.
Well, it is not highly recommended to nest too many macros but you
can do it. Each nested macro uses 514 bytes of memory. There is no
simple way to control if a macro is calling itself. Doing so will
likely cause E! to crash!

To fully control the execution of the macro E! will stop its
execution each time a "non neutral" message is issued during
execution. For example, if your macro is trying to move a block
and no marked block is here, E! will stop macro execution. Non
neutral messages are listed in APPENDIX 1.

If you recorded a complex macro you may want to continue macro
execution. This will happen if you inserted a "CONTINUE MARK" in
your macro using Alt Q. If a macro is stopped after a non neutral
message, E! will look the macro for a "CONTINUE MARK". If one is
found, macro execution will resume after the mark.

If your macro executes E! functions requesting a user entry,
the entry you made while recording the macro is also "replayed".
These functions are Ctrl D (repeat character), Alt G (block sort),
Alt H (draw box), Alt F (fill block).

E! also records the mode change, that is, you may toggle between
EDIT mode and COMMAND mode while recording a macro. All commands
issued on the E! command line are recorded.

Here is a very simple example of SEARCH and REPLACE macro.
Assuming you are programming in Pascal and you want to convert some
Pascal keywords to uppercase in your text automatically. The
following will be the typical way of achieving this goal :

Ctrl R (begin macro recording)
Ctrl Home (move to text begin)
Ctrl Home
Escape (command mode)
=/begin/BEGIN/*
ENTER
Alt Q (continue mark)
Ctrl Home
Ctrl Home
=/end/END/*
ENTER
etc...
Ctrl R (end macro)

Another example: you want to delete all lines containg

E! - page 44




"string1":

Ctrl Home (preparing the macro)
Ctrl Home
Esc
/C1/
ENTER
Ctrl BackSpace

Ctrl R (begin macro recording)
Ctrl S
Ctrl BackSpace
Ctrl R (end macro)

Hit Ctrl P until you get a "Search terminated" message.

Please notice the following :

1. E! records the active mode (EDIT or COMMAND) when you begin
recording. It will be automatically restored as you replay the macro
EVEN IF IT IS A NESTED MACRO. So don't care about being in the right
mode when you hit Ctrl P.

2. On the contrary the active mode when the macro terminates is
the mode that was active when you terminated recording.

3. E! commands executed thru a macro are not recorded in the
circular command list. It will save some precious memory. So please
does not use the up and down direction keys when you record a macro
you plan to save to disk : the editing context will likely have
changed and your macro will not execute safely because you will
not recall the right commands.

The AUTO macro

If a macro named "AUTO.MAC" is present in the current
directory or in the directory defined with the E! environment
variable, this macro will be executed automatically against the
first edited file each time E! is loaded.

Moreover a macro can be executed by simply calling its name on
the E! command line (assumed the macro file is stored in the
directory defined with E!= in the environment string). The MACro
command will be used if there is any conflict with a E! or DOS
command or if the macro is not located in the E! directory.


KEYBOARD EXTENSION

E! has many functions. So many keys are already tied to one of
these functions. Many users complained they had no more keystrokes
available to assign macros, commands, strings etc... particularly
if they do not have an enhanced keyboard.

E! allows you to "prefix" any keystroke. That is, you can
generate new keystrokes prefixing any existing keystroke with a key
of your choice. You can define up to 3 prefixes. This way, you can
generate up to 3 "new" keyboards. You may assign any string,
command, macro, profile or function to these new keystrokes.


E! - page 45




To define a prefix just insert the following command in your
PROFILE:

PREFIXn code

n is the prefix number (1, 2 or 3) and no blanks may appear
between n and the word PREFIX.

code is the code of the key you want to become a prefix. See
E!.DOC and H! to obtain the list of valid keycodes.

Any keystroke or keystroke combination may be used after a
prefix key has been hit. Basic E! keycodes may range from 1 to 422.
Keystrokes generated with PREFIX1, 2 and 3 may range respectively
from 423 to 845, from 846 to 1268 and from 1269 to 1691.

Example:

Keycode of Ctrl B is 2. The PREFIX1 + Ctrl B combination will
yield 425 ( 2 + 423), PREFIX2 + Ctrl B will yield 848 ( 2 + 846)
and PREFIX 3 + Ctrl B will yield 1271 (2 + 1269). This is valid
whatever key you choose for PREFIX1, 2 or 3. However the keycode
generated is tied to the PREFIX number (1, 2 or 3). A key defined
as PREFIX1 may only generate code values between 423 and 845 and so
on...

Only PREFIX1 is defined by default. It is the Ctrl K key (code
11). Both PREFIX2 and PREFIX3 are not defined.

Example:

Ctrl K Ctrl V will send to E! a keycode value of 445 (22+423).

Ctrl K v will send to E! a keycode value of 541 (118+423).

Ctrl K V will send to E! a keycode value of 509 (86+423).


Assigning a function, a string, a command, a macro or a
profile to a prefixed key is exactly the same process as assigning
a function etc... to a "normal" key. Use the DEFINE command in your
PROFILE or use it on the E! command line. Using the DEFINE command
without any argument on the command line will allow you to make an
automatic assignment.

This new function extends widely E! keyboard capabilities and
allows you to emulate any editor keyboard (i.e. Wordstar).


SYNTAX EXPANSION
****************

E! allows macros to be triggered by any character string, as
you type it. For example, you can setup E! to automatically build
an IF THEN ELSE structure when you type "IF" followed by a blank.

To create such an automatic syntax expansion you have to:

1/ Build and save the macro you want to execute


E! - page 46




2/ Insert the following statement in your active PROFILE

EXPANSION fileext str macro_name

ex:

EXPANSION pas if ifpas.mac (.mac extension not mandatory)

3/ (Re)load the PROFILE

Each time you will be editing a file with a "fileext"
extension and you will be entering the "str" characters string
followed by a blank, the macro will be run automatically.

"str" must be a WORD (not imbedded in another string) or being
preceded by a delimiter (; , : etc). The remaining line after "str"
must be empty or contain only blanks characters.

Some sample macros are provided with E!. You can use them by
loading the PAS.PRO or C.PRO profiles.

EXPANSION used without any parameter will cause E! to free all
memory used by active expansions. Any expansion uses exactly 28
bytes in memory.

If you want an expansion macro to be triggered with ANY file
use the "*" character as an extension :

EXPANSION * mystr mymacro

Expansion macros are bound to a string AND an extension. So
you can define several macros for the same string provided you are
working on files with different extensions.

If you define several expansion macros for the same string and
the same extension, only the first macro encountered when loading
PROFILES will be taken into account.



M. PROFILES
___________

PROFILES are a very convenient way to configure or reconfigure
E! dynamically. E! is always configured with the main PROFILE
(E!.PRO) when it is loaded. You will reconfigure it while editing
with any .PRO file.

The main profile is searched first in the current directory and
then in E! directory (SET E!=...). You may want to design different
"main profiles" depending on the directory you are working in. If no
E!.PRO file is found, default options are maintained.

Generally PROFILE commands are similar or even identical to E!
commands but it will not be always the case. The "dummy" profile
delivered with E! shows you all possible commands in a E! profile.
To activate them you will have to remove the double asterisk at the
beginning of the line (** - all text after the double asterisk is
ignored). These commands are also listed below. All text after the
first asterisks pair (**) is ignored by E! UNLESS there are quotes

E! - page 47




(' or ") in the line before the asterisks pair. So, you shouldn't
use comments on a DEFINE line assigning a string delimited by
quotes to a key.

Shortcuts are not allowed in a profile. But the profile commands
interpreter is not case sensitive.

WARNING : when you load a new profile "over" the active
profile, only the profile commands used in the new profile are
rerun. That is, all other options are not reset to their default
values.


TYPEMATIC
*********

On computers using a recent AT BIOS (after 11/15/85), on PC
XT 286 and PS/2 you can specify typematic parameters:

1. the key repeat rate : from 2 to 30 characters/sec. This
controls how quickly a key will be repeated if it is held
down long enough.

2. the delay repeat value, one from the following :

250, 500, 750 or 1000 ms.

This controls how long a key must be held down before it
repeats.

To control the typematic parameters insert the following line in
your profile :

Typematic n1(key repeat value) n2(delay repeat value)

ex:

Typematic 30 750

If the values specified are out of range, nothing will be
changed. Default BIOS settings are n1 = 10 and n2 = 500. Using
typematic on a computer without extended keyboard bios will do no
harm. E! resets defaults before exiting.

Non integer values are allowed but are of low interest.

This function does not disable the "emulated cursor
acceleration" function (SHIFT + arrows). Remember the accelerated
cursor function does not work on non strictly compatible machines.


PROFILE's STATEMENTS
********************


"See above" means the command has the same effect than
on the E! command line.

Please enter one command per line.


E! - page 48





35LINES Yes/No default : No

Replaces the 43 or 50 lines mode with a more readable
35 lines mode. See above.

ADDONLAST Yes/No default : yes

ADDONLAST YES allows E! to insert a new line when you
hit the down arrow whith the cursor laying on the last
line of the current text.

AUTOBACK Yes/No default : Yes

See above.

AUTOCOMP Yes/No default : no

See above.

AUTOFORMAT Yes/No default : no

See above.

AUTOSAVE Yes/No default : no

See above.

AUTOTAB Yes/No default : no

See above.

AUTOLIMIT n default : 500

See above.

BAK Yes/No default : no

See above.

COLOR DEFINITIONS = SCREEN_AREA background foreground

C_HELP b f ** Help line
C_BLOCK b f ** Marked blocks
C_BORDER b ** Border (CGA/EGA/VGA only)
** be careful with multi-standards
** adapters
C_COMMAND b f ** Command line
C_CURSOR b f ** Virtual cursor
C_MESSAGES b f ** Messages
C_STATUS1 b f ** Status line (fixed part)
C_STATUS2 b f ** Status line (variables)
C_TEXT b f ** Text
C_NONACT b f ** Non active windows text


0 black 4 red 8 gray 12 light red
1 blue 5 magenta 9 light blue 13 light magenta
2 green 6 brown 10 light green 14 yellow
3 cyan 7 light grey 11 light cyan 15 white

E! - page 49





CURSOR Yes/No default : yes

CURSOR NO disables the "accelerated cursor emulation on
non strictly compatible computers.

CURSOR SHAPE DEFINITION = SCREENTYPE topline bottomline

CURSORMONO tl bl ** Cursor shape in overwrite mode
CURSORCOL tl bl
CURSORMONOINS tl bl ** Cursor shape in insert mode
CURSORCOLINS tl bl

This command controls the cursor shape. Use it if you
don't like the default values or if you have a problem
with your display adapter. Some EGA / VGA adapters have
a VERY bad cursor emulation.

tl is the top scan line and bl is the bottom scan
line. The following diagram shows you how tl and bl
work. Allowed ranges for tl and bl are 0-7 for color
adapters and 0-13 for monochrome adapters.


ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿ top of character matrix (line 0)
³ ³
³ ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄ´ tl
³±±±±±±±±±±±±³
³±±±±±±±±±±±±³ visible part of cursor
³±±±±±±±±±±±±³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ bl - bottom of character matrix (ligne 7 ou 13)


CODE Yes/No default : no

See above.

COMPILE extension compiler command line
($$ = filename without extension)

Compiler definitions will be inserted with this
command. See "Programming support" below.

DEFINE code @macname ** Assigns a macro to key
code $proname ** Assigns a profile to a key
code &commname ** Assigns a command to a key
code chaŒne ** Assigns a string to a key
code "chaŒne" ** Use quotes if you want to imbed
code 'chaŒne' ** leading or trailing blanks
code fnccode ** Assigns a function to a key.
code ** Restore the default function

DEFINE without parameter has no effect in a profile

DELAY n default : 850

See above.

EGA-VGA Yes/No default : Yes

E! - page 50





Don't use this option unless there is a problem with
your display adapter. See above.


EOL [CRLF|LFCR|LF|CR] default : CRLF

Specify the End of Line termination sequence. This is
normally a CRLF sequence but some programs use other
conventions. PLEASE DON'T USE THIS COMMAND UNLESS YOU
REALLY NEED IT. SAVING A FILE WITH AN EOL SETTING
DIFFERENT FROM CRLF OR CR WILL MAKE IT NON LOADABLE WITH
E!.

EOF Yes/No default : no

The EOF yes/no directive tells E! whether it must add
a Ctrl Z at the end of the file when saving it to
disk.

IBM101T Yes/No default : no

E! does not recognize the IBM enhanced keyboard (or
equivalent) unless you tell him to do so. Setting
IBM101T to YES with non enhanced keyboard will cause
the program to crash! (machine hang on loading).

INSERT Yes/No default : no

This defines the Insert key state when E! is loaded.

PRTINIT /n1/n2/n3...

This will set the default values for printer
initialization when you use the PRINT command. These
values are not sent to the printer if you specify new
values on the E! command lines. See above.

JUSTIFY Yes/No default : no

Set the JUSTIFICATION mode toggle. This will have no
effect in the main profile. See above.

LOCK xxx default : COM EXE BIN OBJ

See above.

LOG Yes/No default : no

See above.

MARGINS left right paragraph default : 10 70 15

See above.

NOBLINK Yes/No

Inserting this statement into a PROFILE will cause the
blink bit of your CGA, EGA, MCGA or VGA display
adapter to be disabled thus enabling you to choose

E! - page 51




from 16 colors for the background instead of 8.
Default is no.

PASTE Yes/No default : yes

Some resident help systems allow you to paste
information from a window to your text editor. E!
supports this feature. However this assumes that the
keyboard is not cleared between successive executions
of functions. If you are working on a slow machine you
may find you scrolling more pages than you wanted or
inserting too much new lines in your text. If you
don't use such help systems we recommend that you set
the PASTE option to no. This way E! will clear the
keyboard each time it is executing slower functions.

PAUSE Yes/No default : yes

See above.

PRINTER Lptn

You may tell E! on which printer print jobs must be
sent. Insert the following statement in your profile:

PRINTER Lptn

where n can be either 1 or 2 or 3... with or without a
trailing colon.

RECENT Yes/No default : no

See Autosave

SCROLL n default : 40

See above.

SELFINSERT Yes/No default yes

The SELFINSERT YES profile statement triggers an
automatic right bracket, curly brace or parenthesis
insertion when the corresponding left bracket, curly
brace or parenthesis has been entered. This is the
default mode. This function works only if the insert
mode is active and if the cursor position allows to do
that without causing any problem.

SNOW Yes/No default : yes

See above.

SOUND Yes/No default : Yes

Allows E! to beep all non neutral error messages.

SPACES Yes/No default : no

SPACES YES will cause E! to remove all trailing blanks
automatically when saving a file. Trailing blanks are

E! - page 52




also removed for the current line when you activate
the cursor_to_eol function, except when WORDWRAP is
on.

SPLIT Yes/No default : no

This command changes the behaviour of the Enter key.
If it is toggled to YES, ENTER will split the current
line at the cursor position if the Insert toggle is
ON. So you will no more use the Alt S key. So you may
conveniently choose between the classical way or the
E! way for line insertion and splitting.

TABS n1 n2 n3 ...

Define new tab positions and remove all previously
registered positions.

TYPEMATIC speed delay

See above.

UNDO n default : 512

See Commands.

WARNING Yes/No default : yes

See above.



N. PROGRAMMING SUPPORT
______________________

To be a complete programming tool, E! has to offer some services
in the program compilation area. Well, it is the case. E! allows you
to compile a program source file and to retrieve errors within the
source file like any integrated compiler environment. This will work
with any compiler issuing standard error messages. If several errors
are detected, E! will build an internal list of errors and allow you
to move from an error to the other in your source file.

Let's examine the whole process of compiling a file under E!:


1/ For any compiler you plan to use insert the following line in
your active profile:

COMPILE ext compiler command line

example:

COMPILE asm masm $$.asm;

($$ replaces the current filename without any extension)


2/ Load this profile to activate the command (if it is not
already active).

E! - page 53





3/ Edit your source file and enter COMPILE without any parameter
on the E! command line.

THAT'S ALL.

E! will search an internal table if there is any compiler
defined for the current file extension. For example, if you are
editing a file named myprog.asm, E! will search this table for an
"asm" entry.

If one is found, E! will replace the $$ sequence in your
compiler command line with the name of the current file WITHOUT any
extension. Before calling DOS and the compiler, E! will redirect
all DOS output to one file named "filename.ERR" (to be more
precise, E! redirects stderr and stdout). When the compiler
returns to DOS, E! will analyze the .ERR files and will find out if
there are errors to be searched in the source file. It will then
display the first error in the list highlighting the corresponding
line in your text and displaying the corresponding compiler error
message on the E! help line.

Normally, the .ERR file generated during a compilation from
within E! is deleted after reading. If, for some reasons, you want
to keep it on your disk, enter the following command in your active
PROFILE:

ERR no

You can move between errors (if there are more than one) using
Alt F8 (move forward) and Alt F9 (move backward). The compiler error
message will be automatically updated and the corresponding line from
the source file will be highlighted. The error list remains valid
until you run another compilation.

If E! is not able to build an error list (non standard
compiler or successful compilation) it will immediatly edit the
generated .ERR file. So you can see the result yourself.

An error list is maintained for each file.

This process will also work with the MAKE utility. Actually,
this will work with any program you wish even if it is not a
compiler.

The profile command for a MAKE process will be very simple:

Compile C MAKE $$

will be generally sufficient.

Although this is a powerful function, E! will never replace a
dedicated programming environment but it may be convenient to use
the E! programming support to verify if a source file is free of
syntax errors or to quickly compile short programs without loading
the whole machinery of a more sophisticated environment.

E! recognizes following error message formats :

error filename row: message

E! - page 54




warning filename row: message
filename row column: message
filename (row,column): message
filename (row): message
filename : row : message
"filename", row column: message
"filename", xxx xxx xxx row : message
line row: message

These formats are used with most compilers.

To modify compile options you will have to edit the active
profile and reload it. See PROFILE's.

E! has been successfully tested with following compilers
(trademarks):

Microsoft C 5.1
Turbo C 1.5 / 2.0
Turbo Pascal 4.0 / 5.0 / 5.5
Microsoft Assembler 5.0 / 5.1
Turbo Assembler 1.0 / 2.0
Zortech C++ 1.0x
JPI Modula 2 1.x
Clipper (dBase compiler) "Summer 87"

With version 5.0, the compiling process has been greatly
enhanced. With previous versions of E! it was sometimes difficult
to compile a source file specially when you were editing big files
or a great number of files.

Now, when you call the COMPILE command E! swaps out its code
and data to disk or EMS and reloads them after compiling. So you
have much more memory available to run your compiler.

If you don't have EMS or if it's not available in sufficient
amounts, the swap disk defaults to the current disk but you may
change this including a SWAP command in your active profile.

SWAP d: (d = a, b, c etc...)

Obviously, the maximum performance will be reached with a
RAMDISK as swapdisk.

SWAPPING DOES NOT MEAN SAVING THE FILES !

To avoid problems caused by an eventual "change directory"
command, this file is always created in the root directory of the
swap drive.


O. E! and DESQview (tm)
__________________

E! version 5.0 design has been modified to support the
DESQview multitasking environment. E! can run under DESQview in a
small window and is perfectly DESQview "aware". All DESQview
functions like TRANSFER and SCRIPTS are supported.

Likewise, programs written specifically for the E! API have a

E! - page 55




very simple way to recover the address of the screen buffer
allocated to E! by DESQview. So they can be called from E! and run
without any problem in the same window. This is the case for all
the API utilities delivered with E!.

DOS calls, either in "blind mode" or direct, compilations and
all other E! functions are fully supported and run exactly as if E!
were run from the DOS command line.

Only two functions are inhibited when E! runs under DESQview:
video modes with a line number greater than 25 and the DOS screen
"capture/restore" feature which are both useless under DESQview.
You can achieve the same results using the video options of
DESQview and the transfer function. Although the initial DOS screen
will not be restored, the DOS screen generated by making DOS shells
from E! will still be captured when returning to E! and retrieved
into your text using Alt 9.

If you use the "Rearrange option" of the DESQview main menu to
set the video mode to 30 or 50 lines, you may want to increase the
number of lines displayed by E!. To do so use the following
command:

SCREEN n (where n is the total number of lines displayed
including the status, command and help lines).

either on the E! command line or in your PROFILE. As stated
above, Ctrl G will have no effect when running under DESQview. Do
not forget to specify the same number of lines in the "Change a
Program" panel of DESQview.


The memory available to edit your files depends on the memory
size of the DESQview window. Though, you may run several copies of
E! simultaneously. All this is closely related to your hardware
configuration but you will certainly feel more comfortable with a
386 machine.

The E!-PIF.DVP file allows you to install E! as a DESQview
application. Please follow the instructions corresponding to your
version of DESQview.


PROTECTION LEVEL:
*****************

On 386 machines the "Change a program" panel allows you to set
a protection level which make DESQview more(3) or less (0)
sensitive to direct access made by the program to system memory.

In E! there are only 2 functions making such a direct access
to the BIOS data area. Both functions access and modify the
keyboard status byte when you use the INSERT statement in a profile
or when you make a DOS shell. Because many programs modify the
keyboard status when running and do not restore it, E! saves the
keyboard status flag before calling DOS and restores (rewrites) it
on return.

This is generally considered as harmless and will not prevent
you to run E! with protection level 0.

E! - page 56





ALL other E! functions use ONLY DOS or BIOS calls.

MULTIPLE INSTANCES OF E! UNDER DESQview
***************************************

Although E! is perfectly compatible with DESQview, it was not
specifically written to run in a multitasking environment. When
running several copies of E! under DESQview you be aware of the
following:

1/ If you are editing two copies of the same file, only the
last file saved will be kept on your disk. The other one will be
lost.

2/ You should deactivate the AUTOSAVE mechanism. Temporary
filenames generated by the different copies of E! will conflict and
the same temporary file will be used to "autosave" 2 different
texts. **** FIXED - See READ.IT ****

Generally, running multiple copies of E! under a multitasking
environment is useless unless you are editing a lot of files or files
which need different PROFILES.


E! API
******

The E! API documentation has a new section explaining how E!
API programs can be written to run in the same window as E! without
cluttering the DESQview screen. Existing programs may be modified
adding a few lines of very simple code.

The DESQview API being compatible with TOPVIEW (tm) all the
above should also apply to the TOPVIEW environment although this
has not been tested yet.

























E! - page 57




APPENDIX 1 : ERROR MESSAGES
___________________________

"Neutral" error messages don't stop execution of the current
macro. These messages are actually not error messages but only
indicators of function completion. See MACROS.

01 Not enough memory or too many lines
02 Not text file(s) (likely)
03 Input / Output error...
04 No alternate window
05 Can't create a window here
06 Block already marked
07 No marked block
08 Source and destination conflict
09 Block too big
10 Control characters printed * neutral message *
11 Control characters interpreted * neutral message *
12 Function cancelled
13 Bookmark dropped * neutral message *
14 Bookmark removed * neutral message *
15 Recording macro - ^R to end
16 Macro recorded - ^P to replay
17 Macro cancelled
18 Error during justification
19 Non existing or locked file
20 Error - Margins unchanged
21 Not a valid line
22 String not found
23 Syntax error
24 Please type one character and 3 digits
25 Code error - key not assigned
26 Character code error
27 Printer not ready
28 Unknown draw mode
29 Stack overflow. Sort cancelled
30 No active macro
31 Error - Scroll unchanged
32 DOS PRINT program not installed
33 Spooler error
34 New file * neutral message *
35 Textmark dropped * neutral message *
36 Textmark(s) removed * neutral message *
37 File too big
38 New macro loaded
39 Undo buffer is empty
40 Error list is empty
41 No matching brace
42 No marked text
43 Maximum number of windows is reached
44 More than 2 windows use this border
45 Error during execution
46 This DOS command does not exist
47 Empty or unknown directory







E! - page 58




APPENDIX 2 : KEY CODES AND FUNCTIONS CODES
__________________________________________

(h = top of keyboard - b = numeric pad)

CtrlA : 001 Move text of current line to cursor
CtrlB : 002 Upcase current word in Pascal style (i.e. get_it becomes Get_It)
CtrlC : 003 Clear current line
CtrlD : 004 Repeat specified character
CtrlE : 005 Delete end of line from cursor
CtrlF : 006 Toggle wordwrap mode
CtrlG : 007 Toggle 35/43/50 lines mode
CtrlH : 008 Delete left character
CtrlI : 009 Move cursor to next tab position
CtrlJ : 010 Toggle justify mode
CtrlK : 011
CtrlL : 012 If current word is a file name, file is edited
CtrlM : 013 Insert a new line
CtrlN : 014 Insert file name at cursor
CtrlO : 015
CtrlP : 016 Play active macro
CtrlQ : 017 Restore previous macro
CtrlR : 018 Begin / End macro record
CtrlS : 019 Repeat last search
CtrlT : 020 Insert system date and time at cursor
CtrlU : 021 Cancel macro record
CtrlV : 022 Initialize search variables
CtrlW : 023 Delete current word
CtrlX : 024 If current line is a DOS command, it is executed
CtrlZ : 026 If current line is a valid DOS directory, it is edited

CtrlF1: 350 Upcase current word
CtrlF2: 351 Lowcase current word
CtrlF3: 352 Upcase current block
CtrlF4: 353 Lowcase current block
CtrlF5: 354 Center text in block
CtrlF6: 355 Reformat current paragraph
CtrlF7: 356 Reformat current block
CtrlF8: 357

CtrlF9: 358
CtrlF0: 359

Ctrl 6: 030
Ctrl -: 031
^ Bsp : 127 Delete current line

AltA : 286 Adjust block position
AltB : 304 Mark block
AltC : 302 Copy block at cursor position
AltD : 288 Delete block
AltE : 274 Move cursor to end of block
AltF : 289 Fill block with specified character
AltG : 290 Sort marked block (the entire lines are moved - key is block delim
AltH : 291 Draw a box around block
AltI : 279 Remove all tab positions
AltJ : 292 Join current line and next line
AltK : 293 Drop bookmark / Return to bookmark
AltL : 294 Mark a line or a group of lines
AltM : 306 Move block to cursor
AltN : 305 Add values within block and display result at cursor

E! - page 59




AltO : 280 Overlay block at cursor position
AltP : 281 Move cursor to next paragraph
AltQ : 272 Insert "continue-mark" or "input pause" in macro being recorded
AltR : 275 Remove a tab position
AltS : 287 Split line at cursor position
AltT : 276 Create a tab position
AltU : 278 Unmark block
AltV : 303 Remove trailing blanks
AltW : 273 Mark current word
AltX : 301 Allow entry of control characters
AltY : 277 Move cursor to beginning of block
AltZ : 300 Mark a sentence

Alt1 : 376 Drop first textmark
Alt2 : 377 Drop second textmark
Alt3 : 378 Drop third textmark
Alt4 : 379 Remove all textmarks
Alt5 : 380 Refresh current file from disk
Alt6 : 381 Search paired braces
Alt7 : 382 Insert paired braces
Alt8 : 383 Restore last removed lines
Alt9 : 384 Insert lines automatically captured under DOS
Alt0 : 385 Search current word
Alt)- : 386 Insert blank columns before block
Alt= : 387 Insert blanks without moving cursor

F1 : 315 Load help file
F2 : 316 Save current file
F3 : 317 Leave current file without saving
F4 : 318 Save and leave current file
F5 : 319 Create / Remove a window
F6 : 320 Toggle draw mode
F7 : 321 Rename current file
F8 : 322 Edit new file(s)
F9 : 323 Restore (undo) current line
F0 : 324 Go to next file

ShftF1: 340 Scroll left one character at a time
ShftF2: 341 Scroll right one character at a time
ShftF3: 342 Scroll down one line at a time
ShftF4: 343 Scroll up one line at a time
ShftF5: 344 Center current line in window
ShftF6: 345 Raise current line to top of window
ShftF7: 346
ShftF8: 347
ShftF9: 348
ShftF0: 349

Alt F1: 360 Display information about specified key
Alt F2: 361
Alt F3: 362 Scroll left (number of columns specified with SCROLL command)
Alt F4: 363 Scroll right (number of columns specified with SCROLL command)
Alt F5: 364 Change active window
Alt F6: 365 Remove a window
Alt F7: 366 Return to full screen mode
Alt F8: 367 Next compilation error
Alt F9: 368 Previous compilation error
Alt F0: 369 Go to previous file

Bsp : 008 Delete left character

E! - page 60




Enter : 013 Insert a new line
Esc : 027 Toggle between CommandMode and EditMode
Tab : 009 Move cursor to next tab position
Sh Tab: 271 Move cursor to previous tab position
Home : 327 Move to beginning of current or previous line
Up : 328 Move to previous line
PgUp : 329 Scroll one screen up
Left : 331 Move cursor left
Right : 333 Move cursor right
End : 335 Move to end of current or next line
Down : 336 Move to next line
PgDn : 337 Scroll one screen down
Insert: 338 Toggle insert mode
Del : 339 Delete character at cursor
^ Left: 371 Go to previous word
^Right: 372 Go to next word
^ End : 373 Move cursor to end of text
^ PgDn: 374 Move cursor to end of screen
^ Home: 375 Move cursor to beginning of text
^ PgUp: 388 Move cursor to top of screen









































E! - page 61




IBM ENHANCED KEYBOARD ONLY (no function assigned)
_________________________________________________

k : keypad
fr : french keyboard
t : true key - not keypad

Alt Esc :257 F11 :389 Ctrl Tab :404
Alt Bsp :270 F12 :390 Alt Hom :407
Alt ^ :282 ShF11 :391 Alt Up :408
Alt $(fr):283 ShF12 :392 Alt PgU :409
Alt —(fr):296 CtrlF11 :393 Alt Lef :411
Alt ý(fr):297 CtrlF12 :394 Alt Rig :413
Alt *(fr):299 Alt F11 :395 Alt End :415
Alt * (k):311 Alt F12 :396 Alt Dn :416
Alt ;(fr):307 Ctrl Up :397 Alt Ins :418
Alt :(fr):308 Ctrl- (k):398 Alt Del :419
Alt !(fr):309 Ctrl5 (k):399 Alt / :420
Alt - (k):330 Ctrl+ (k):400 Alt Tab :421
5( (k):332 Ctrl Dn :401 Alt Ent :422
Alt + (k):334 Ctrl Ins :402
Alt - (t):386 Ctrl Del :403







































E! - page 62




APPENDIX 3 :KEYCODES NOT USED BY E!
___________________________________


Ctrl O Ctrl F8 Shift F7 Ctrl 2
Ctrl Y Ctrl F9 Shift F8 Ctrl 6
Ctrl F10 Shift F9
Shift F10



and all keystrokes from the enhanced keyboard.

If you find some E! functions not useful, you may use their
corresponding keystrokes to implement some specific command or macro,
etc...













































E! - page 63



  3 Responses to “Category : Miscellaneous Language Source Code
Archive   : E!518.ZIP
Filename : E!.DOC

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/