Welcome to EM version 1.36! EM - MS-DOS generic editor Version 1.36 (April, 1988) R E F E R E N C E M A N U A L SemWare 730 Elk Cove Court Kennesaw, GA 30144 (404) 428-6416 Copyright (c) 1988 SemWare All Rights Reserved This version of the documentation, software and copyright supersedes all previous versions of EM. April 1988. EM software copyright (C) 1985, 1986, 1987, 1988 by SemWare. All rights reserved. This document copyright (C) 1988 SemWare. All rights reserved. Specifications subject to change without notice. Most of the hardware names in this manual are trademarks or trade names of specific manufactures. LICENSE EM is copyright (C) 1987 by SemWare. This version of EM is NOT public domain or free software, but is being distributed as "shareware". EM is copyright (C) 1985, 1986, 1987, 1988 by SemWare. Non-registered users of this software are granted a limited license to make an evaluation copy for trial use on a private, non-commercial basis, for the express purpose of determining whether EM is suitable for their needs. At the end of this trial period, you should either register your copy or discontinue using EM. What does all this really mean? If you regularly use this program - i.e., once a month or more - then you should pay for your copy. That way I'll be able to provide you support, updates and stay in business. A EM registration entitles you to use the program on any and all computers available to you, with the following restriction: If other people have access to this program or may use it, then you should purchase a site license. See the following section for information about site licensing or quantity discounts. All users are granted a limited license to copy EM only for the trial use of others and subject to the above limitations. This license does NOT include distribution or copying of this software package: 1. In connection with any other product or service. 2. For general use within a company or institution. 3. For any consideration or 'disk fee'. 4. Distribution in modified form, i.e., the file containing this license information MUST be included, along with the full EM documentation. Operators of electronic bulletin board systems (Sysops) are encouraged to post EM for down loading by their users, as long as the above conditions are met. If you are the distributor of a public domain or user-supported software library, then you may be eligible to distribute copies of EM. You must meet all of the above conditions and acquire written permission from SemWare before doing so, however. Please call or write for details. DISCLAIMER Use of this program acknowledges this disclaimer of warranty: "This program is supplied as-is. SemWare disclaims all warranties, expressed or implied, including, without limitation, the warranties of merchantability and of fitness of this program for any purpose. SemWare assumes no liability for damages direct or consequential, which may result from the use of this program." TRADEMARK MS-DOS is a registered trademark of Microsoft Corporation. PC-DOS is a registered trademark of IBM Corporation. SideKick and TURBO PASCAL are registered trademarks of Borland International. WordStar is a registered trademark of MicroPro International Corporation. Compaq is a registered trademark of Compaq Inc. Tandy 1000 is a registered trademark of Tandy Corporation. Tabel of Contents ACKNOWLEDGMENTS . . . . . . . . . . . . . . . . . . . . . . 1 PREFACE . . . . . . . . . . . . . . . . . . . . . . . . . . 2 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . 3 FEATURES . . . . . . . . . . . . . . . . . . . . . . . . . 4 THE PROGRAM DISK . . . . . . . . . . . . . . . . . . . . . 5 GENERAL - Getting started and getting out . . . . . . . . . 6 THE STATUS LINE . . . . . . . . . . . . . . . . . . . . . . 7 EDITING MULTIPLE FILES . . . . . . . . . . . . . . . . . . 8 WINDOWS . . . . . . . . . . . . . . . . . . . . . . . . . . 9 TAB SETTINGS . . . . . . . . . . . . . . . . . . . . . . . 10 COMMAND REFERENCE . . . . . . . . . . . . . . . . . . . . . 11 APPENDICES . . . . . . . . . . . . . . . . . . . . . . . . 27 CUSTOMIZING . . . . . . . . . . . . . . . . . . . . . . 27 GLOSSARY OF SPECIAL TERMS . . . . . . . . . . . . . . . 29 COMMAND REFERENCE GUIDE . . . . . . . . . . . . . . . . 31 Alphabetical listing of Commands . . . . . . . . . 31 Commands Listed by Function . . . . . . . . . . . . 34 COMMON QUESTIONS . . . . . . . . . . . . . . . . . . . 38 TECHNICAL SPECIFICATIONS . . . . . . . . . . . . . . . 39 PRODUCT SUPPORT . . . . . . . . . . . . . . . . . . . . 40 PROBLEMS . . . . . . . . . . . . . . . . . . . . . 40 UPDATES . . . . . . . . . . . . . . . . . . . . . . 40 OBTAINING THE SOURCE CODE . . . . . . . . . . . . . 40 CONTACTING THE AUTHOR . . . . . . . . . . . . . . . 40 CORPORATE USERS . . . . . . . . . . . . . . . . . . 40 DEALERS, VALUE ADDED RE-SELLERS, AND CONSULTANTS . 41 ACKNOWLEDGEMENTS EM 1.36 Many months of work went into the development of EM. And we had LOTS of help. Special thanks go to: My wife, for her many valuable suggestions, for "proofing" this manual, and for putting up with all the long hours (and a many all nighters) that I have spent working on EM. Anthony M. Marcy, who developed the INLINER program, an assembler which translates 8088 assembly language directly into Turbo Pascal INLINE code. Karl Brendel, for his constant support and excellent testing. Karl is also the author of an excellent add on product for QMODEM called QFONEDIT. John Newlin, for his encouragement and support. John is also the author of SCOUT. If you're looking for a powerful file or DOS manager that's memory resident, then look no further. SCOUT is probably what you're looking for. Stuart Warren, for his insight, encouragement, and many valuable programming suggestions. Steve Watkins, for all the many hours he spent testing and the many "hard to find" bugs and quirks that he uncovered. All the folks at TurboPower software. We're especially grateful for TdebugPlus. Using Turbo Pascal without the tools provided by the TurboPower folks is just plain wasteful! PREFACE EM 1.36 While we try to answer all the mail, electronic and otherwise, that we get, it sometimes takes us a while to get around to it. Especially stuff from non-registered users. Please be patient, and remember that we do NOT guarantee to provide support of any kind to non-registered users. INTRODUCTION EM 1.36 This manual describes the use and operation of EM, a full-screen text editor for the IBM PC and compatible computers. The manual includes installation instructions, overview of EM's major features, and reference for all of EM's commands. EM is a text editor as opposed to a word processor. EM can be used to write short documents or letters, (this manual was written with EM and then formatted with a formatting program) but most of its features are geared to creating or maintaining program source code. FEATURES And SYSTEM REQUIREMENTS EM 1.36 Features of EM: - Uses only documented MS-DOS functions - Uses the ANSI.SYS driver for screen output - SMALL (only 39k) - Uses all available memory. You can edit files as large as memory allows with EM. - True multi-file editing - number of files edited is limited only by memory. - The screen may be split to view two files at the same time. - 99 scratch buffers for cut and paste/templates operations. - Exit temporarily to DOS from within the editor. - Configurable - if you don't like the way we've configured EM, you can easily change it. This includes the meaning of ALL special keys on the keyboard (Ctrl, the function keys, Alt, Home, PgUp, Etc.) SYSTEM REQUIREMENTS EM will run on the IBM PC, PC/XT, PC/AT, PC/Jr, and compatible computers including the Compaq, NCR, Tandy 1000, and WYSE PC's. EM will also run on NOT so compatible computers, including WANG PC's, and even a Burrough mini-computer running a MS-DOS emulation program. EM is ideal as a "remote" full screen editor and is compatible with CTTY. Minimum requirements are: 128 KB of memory (although EM will use up to 640 KB if it is available). PC-DOS or MS-DOS 2.0 or greater. One diskette drive. Either a color or a monochrome monitor with 80 column display. The ANSI.SYS (or equivalent) device driver must be installed. The only file required for operating EM is the editor program itself, EM.COM - we encourage you to rename it to what ever you like. We rename our copy to E.COM. THE PROGRAM DISK EM 1.36 These are the files that come on the EM program diskette: EM.COM - The EM editor. EMCONFG.COM - This is the configuration program for EM. EMKEY.DEF - This is the default keyboard definition file for EM. WSKEY.DEF - This is a keyboard definition file to make EM behave similar to the TURBO PASCAL editor or WordStar. MYKEY.DEF - This is an undefined keyboard definition file that you can set up anyway you like. EM.DOC - This manual in ASCII text format. EM.HLP - A brief help file that can be loaded into the editor. NOTE: When we refer to the EM program in this manual, we actually mean the EM.COM file on the distribution diskette. You are free to rename EM.COM to whatever seems right to you. Again, let us emphasize that the ONLY file required for running EM is the editor program itself, EM.COM. GENERAL - Getting started and getting out EM 1.36 We have tried to make using EM very simple and straight forward. - Getting Started There are two ways to start EM. From the DOS prompt type: EM filespec where filespec is the name of the file you want to edit in the standard format, i.e., d:filename.ext. Using this format, EM will 'read' filespec into memory if it exists, or create it if it does not, and allow you to start editing this file. or: EM If you just type EM, EM will prompt you for the file you wish to edit. Pressing return without entering a filespec will exit EM. - Getting Out There are several commands that will get you out of EM. The easiest to remember is the GExit (Global Exit) command, which defaults to the Alt-X key sequence (think of X as eXit). If the current file has NOT been changed, then the editor is quit without further notice. If, however, the current file has been changed, then the editor will ask you if you want to "save changes". You can press the "Enter" key or "y" to save the file and quit, or press "n" to quit without saving, or press "ESC" to abort the command. If you are editing more than one file, then this process is continued for each file edited, until you press "ESC" or there are no more files to edit. THE STATUS LINE EM 1.36 The status line is used by EM to tell you the current status of the file you are editing, and also used when EM needs information from you. The items displayed on the status line, from left to right, are: The files drive, then name, i.e. A:JUNK.TXT Note that the complete path is not displayed, only the file's drive and filename. The line number of the CursorLine: L 492 The column that the cursor resides in: C 48 The mode of operation, Ins for Insert mode or nothing for Overwrite mode. The approximate amount of memory available in K: M 86 Note that this is the amount of free memory available to EM's internal memory manager. WW if WordWrap mode is on. Box if boxmode is on. EDITING MULTIPLE FILES EM 1.36 This editor is a true multi-file editor. By true we mean that multiple files can be kept in memory at the same time. Switching back and forth between files can be done at the touch of a key and is instantaneous. A simple explanation of how the editor handles multiple files will help you in using the multiple file commands. Edited files are kept in a 'ring' in memory. When a new file is edited, that file is inserted in the ring immediately after the currently edited file, and it becomes the new current file. The other file becomes the previous file. When a file is 'Quit', then that file is deleted from the ring and the previous file in the ring becomes the new current file. If there is only one file being edited, then the previous, next and current files are all the same file. Switching between files is accomplished with the NextFile and PrevFile commands. Note that EM will NOT load two copies of the same file. If you issue the EditFile command for a file already loaded into the ring, then that file will be made the new current file. WINDOWS EM 1.36 This version of EM supports simple split screen editing. Commands are available to: a) Split the current screen into two windows. This can be accomplished by using the SplitScreen command. b) Change back and forth between windows. Use the NextWindow and the PrevWindow commands. c) Make the current window the ONLY window on the screen. Use the OneWindow command. To copy text between windows, you can: a) Mark the text to be copied/moved. b) Store the text in a scratch buffer. c) Change to the other window. d) Load the text from the appropriate scratch buffer. TAB SETTINGS EM 1.36 There are several commands/toggles that effect the way that EM handles tabs. COMMAND DEFAULT KEY SetTabWidth Ctrl-KT TabsOut Ctrl-QO ToggleAutoIndent Ctrl-QI ToggleTabsExpand Ctrl-QT Essentially, EM can work in either of two tabbing modes, depending on the ToggleAutoIndent command. If AutoIndent is toggled "on", then tabs are set to the beginning of each word on the line BEFORE the CursorLine. If AutoIndent is "off", then tabs are set at multiples of the TabWidth, set by the SetTabWidth command. What about tabs already found in input files? If tabsExpand is "on" (set by the ToggleTabsExpand command) then EM will expand tabs when displayed according to the current TabWidth setting. Note that the actual tab characters remain in the buffer and are NOT changed unless the line is edited and/or the file is written to disk. If tabsExpand is "off", then EM displays lines, ignoring any tabs found. How do you get tabs in files written to disk by EM? If TabsOut is "on" (set by the TabsOut command) then lines that are edited are compressed according to the current TabWidth settings. If TabsOut is "off", then when EM writes a file to disk, then tabs are expanded according to the current TabWidth settings. In summary, then: If you want "smart tabbing" (similar to SideKick or the Turbo Pascal editor) then set AutoIndent "on". If you want a more conventional tabbing, then set AutoIndent "off". If you want EM to expand tabs on-screen, then set TabsExpand "on". If you want physical tabs (rather than the appropriate number of spaces) in output files, then set TabsOut to "on". Note that all of these "states" can be initially set by the configuration program. COMMAND REFERENCE EM 1.36 Abort not pre-installed The current file is immediately abandoned, without warning, regardless of whether changes have been made. Use with caution. AddLine F2 A blank line is added after the CursorLine and becomes the new CursorLine. The cursor does NOT move horizontally. Align Alt-A Aligns the text of CursorLine with the text of the line immediately before the CursorLine. The cursor is not moved. If the CursorLine is line one, or the line immediately before is blank, or the CursorLine is blank, then this command does nothing. AppendScrBuff Ctrl-BA This command will append the currently marked block to the end of the named scratch buffer, i.e., the current contents of the named scratch buffer are NOT lost, the block is added to the end of it. BackSpace BackSpace Deletes the character to the left of the cursor. If the cursor is in column one, then the CursorLine is merged with previous line. BottomOffile Ctrl-PgDn Positions the cursor on the first character of the last line of the file, which is made the new last line of the screen. BottomOfScreen Ctrl-End Moves the cursor to the next to last line of the screen. That line becomes the new CursorLine. COMMAND REFERENCE EM 1.36 BxToggle Shift-F1 Toggles "box mode" on and off. When box mode is on, the word "box" appears on the status line. In box mode, the cursor KeyPad keys input the extended ASCII graphic characters in addition to moving the cursor. Home upper left corner up arrow vertical line, generally the left side of a box PgUp upper right corner right arrow horizontal line, generally the top line of a box PgDn lower right corner down arrow vertical line, generally the right side of a box End lower left corner left arrow horizontal line, generally the bottom line of a box Box mode works best in overwrite mode. BxTypeToggle Shift-F2 Toggles the style of boxes available. Currently, the available styles are: 0 single line box 1 double line box 2 single side, double top 3 double side, single top 4 graphic block CopyBlock Alt-C The CopyBlock command will copy a marked block to the position after the CursorLine. The original block is left unchanged. If there is not a marked block, then this command has no affect. CursorDown Down Arrow Moves the cursor to the line below. If the cursor is on the next to last line of the screen, then the screen scrolls up one line. COMMAND REFERENCE EM 1.36 CursorLeft Left Arrow Moves the cursor one character to the left. When the cursor reaches the left edge of the screen, it stops, unless the text has been scrolled right, in which case the text scrolls left. CursorRight Fight Arrow Moves the cursor one character to the right. When the cursor reaches the right end of the screen, the text starts scrolling horizontally until the cursor reaches the maximum line length, in which case the scrolling stops. CursorUp Up Arrow Moves the cursor to the line above. If the cursor is on the top line of the screen, then the screen scrolls down one line. DeleteChar Del key Deletes the character the cursor is currently at the cursor. Text to the right of the cursor shifts left one position. DeleteLeftWord Ctrl-BackSpace Deletes the word to the left of the cursor. If the cursor is in column one, then the CursorLine is merged with previous line. DeleteLine Ctrl-Y Deletes the CursorLine, making the line after the CursorLine become the new CursorLine. DeleteRightWord Ctrl-T Deletes the word to the right of the cursor. If this command is issued when the cursor is at the physical end of a line, then the next line is joined to the CursorLine. COMMAND REFERENCE EM 1.36 DeleteToEOL F6 and Ctrl-QY Deletes from the cursor position to the End of the line, including the character at the cursor. DupLine F4 The CursorLine is duplicated, with the duplicated line becoming the new CursorLine. EditFile Ctrl-KE The EditFile command is used to edit multiple files in one session. This command prompts the user for a file to edit. Pressing return without entering a file specification will abort the command. If a valid file specification is entered, then that file will be read into memory and become the current file. The previous file that was being edited is not changed and is still available in memory - see the commands NextFile and PrevFile for information on how to switch between files. Note that the EditFile command will not load two copies of the same file into memory. EndOfLine End key The cursor moves to the position immediately following the last non blank character on the line containing the cursor. If the line is blank, then the cursor moves to column one. Escape ESC key This command allows you 'escape' from any EM prompts. Any prompt or explicit "press certain key" prompt can be exited by pressing the key the ESCAPE command is assigned to. COMMAND REFERENCE EM 1.36 Exit Ctrl-KD The Exit command can be used to quit the current file, returning control to the opening screen if the ring of files is empty, or making the previous file in the ring the new current file if the ring is not empty. If the file has been changed, the user is given the option of saving it before quitting, or of aborting the command. If the file has not been changed, then the file is purged from memory. FileidChange Ctrl-KF The FileidChange command allows the user to change the fileid of the current file. FileToMain not pre-installed The FileToMain command will write the current file to disk, and if there are no more files left in the ring, return control to the opening screen. If there are more files in the ring, then the previous one becomes the new current file. See the FileToSystem command. FileToSystem Ctrl-KX The FileToSystem command will write the current file to disk, and if there are no more files left in the ring, return control to the operating system. If there are more files in the ring, then the previous one becomes the new current file. See the FileToMain command. Find Ctrl-QF The find command allows the user to find a simple string within the current file. The user is prompted for a search string and then for options wanted. Pressing just the return key in response to the search string will abort the command. Options available are: Forward search, Backward search, Respect case of search string, Ignore case of search string. The options in affect are shown in uppercase, while the options not in affect are shown in lowercase. [F,b, I,r] - to select an option just enter the appropriate letter. To search Backward and Respect the case of the search string, the user would enter: BR (NOTE that the default options never have to be entered as they default if not selected.) COMMAND REFERENCE EM 1.36 FirstOfLine Home key The cursor moves to column one of the line containing the cursor. GetPrev Ctrl-- Duplicates the character above the cursor at the cursor position. GExit Alt-X Global Exit command. This command will issue the Exit command for every file currently being edited. Responding ESCAPE to a "save prompt" will abort the command. GFile Alt-F10 Global File command. This command will issue the FileToSystem command for every "changed" or "modified" file in the ring. Files that have not been changed are quit without being written to disk. GroupDelete Alt-G The GroupDelete command will delete a marked block. If there is not a marked block, then this command has no affect. HalfPgDn --- Scrolls the screen toward the end of the file one half page. HalfPgUp --- Scrolls the screen toward the top of the file one half page. COMMAND REFERENCE EM 1.36 JumpToLine Ctrl-J The jump command allows the user to 'jump' to the indicated line number. The user is queried for the line number to jump to. The requested line becomes the new CursorLine. The command can be aborted by pressing the return key without entering a line number. KillFile Ctrl-KZ This command will erase the current file from disk. The user is given the chance to abort the command before the file is erased. LoadScrBuff Ctrl-BL This command will insert the contents of the named buffer after the CursorLine. The scratch buffer is left unchanged. The user is prompted for the name of the buffer to load from. MakeTopOfScreen F5 Scrolls the screen so that the CursorLine becomes the new top of screen line. MarkLine Alt-L Use the MarkLine to mark a line for use by other block commands. The area 'marked' by the MarkLine command is shown in reverse video. To mark a group of lines, first mark the starting line, then move the cursor to where the ending line is, then mark it. This will mark the entire area including the starting and ending lines. MoveBlock Alt-M The MoveBlock command will move a marked block to the position after the CursorLine. The original block is deleted. This command is equivalent to issuing a CopyBlock command, then remarking the original block and then issuing a GroupDelete command. If there is not a marked block, then this command has no affect. COMMAND REFERENCE EM 1.36 NewLine --- Is the equivalent of the following two commands: CursorDown, FirstOfLine. NextFile Ctrl-KN The NextFile command will make the next file in the ring become the new current file, with the previous current file becoming the previous file in the ring. See the PrevFile command. NextWindow Ctrl-ON This command makes the next window on the screen the new current window. It is one of the commands available to change windows. If there is only one window when this command is executed, then the command is ignored. OneWindow Ctrl-O1 This command makes the current window the only window on the screen. If there is only one window when this command is executed, then the command is ignored. PgDn PgDn Scrolls the screen toward the end of the file one page minus one. PgUp PgUp Scrolls the screen toward the top of the file one page minus one. PQuitToMain F3 The PQuitToMain command will purge the current file from memory and, if the ring of files is empty, return to the opening screen. If the ring of files is not empty, then the previous file in the ring will become the new current file. If the file has been changed, the user is given the choice of continuing or aborting the command. COMMAND REFERENCE EM 1.36 PQuitToSystem Ctrl-KQ The PQuitToSystem command will purge the current file from memory and, if the ring of files is empty, return to the control to the operating system. If the ring of files is not empty, then the previous file in the ring will become the new current file. If the file has been changed, the user is given the choice of continuing or aborting the command. PrevFile Ctrl-KP The PrevFile command will make the previous file in the ring become the new current file, with the previous current file becoming the next file in the ring. See the NextFile command. PrevWindow Ctrl-OP This command makes the previous window on the screen the new current window. It is one of the commands available to change windows. If there is only one window when this command is executed, then the command is ignored. PrintAll Ctrl-PA Sends the entire file to the LST device, i.e., the printer. PrintBlock Ctrl-PB Sends the currently marked block to the LST device, i.e., the printer. PrintEject Ctrl-PE Sends a form feed character (ASCII 12) to the LST device. COMMAND REFERENCE EM 1.36 ReadFile Ctrl-KR The ReadFile command can be used to insert an external disk file into the current file being edited. The external file is inserted into the current file after the CursorLine, and the inserted file becomes 'marked', as if it had been marked with the MarkLine command. The user is prompted for the name of the file to insert. Replace Ctrl-QA The replace command allows the user to globally find and replace simple strings within the current file. The user is prompted for a search string, a replace string, and then for any search options. Pressing just the return key in response to the search string will abort the command. Options available are: Forward search, Backward search, Respect case of search string, Ignore case of search string, Global replace, Selective replace. The options in affect are shown in uppercase, while the options not in affect are shown in lowercase. [F,b, R,i, G,s] - to select an option just enter the appropriate letter. To search and replace Forward, ignoring the case of the search string, the user would enter: FI (NOTE that the default options never have to be entered as they default if not selected.) Note that if the selective search option is chosen, then the user must use the RepLastFindOrRep command (below) to keep finding/replacing. RepLastFindOrRep Ctrl-L This command will re-execute the last Find or Replace command issued. The user is NOT prompted for any information, as the information used in the last find or replace is used. Return Enter or Return key The return command behaves differently depending on whether the editor is in Insert or OverWrite mode. In OverWrite mode, the return command behaves as if you executed the following command: NewLine. In Insert mode, the return command behaves as if you executed the following commands: SplitLine, NewLine, Align. COMMAND REFERENCE EM 1.36 SaveFile Ctrl-KS The SaveFile command will write to disk the current file being edited, replacing the previous file on disk, if it already exists. The file remains in memory, ready for additional editing. ScrollDown Ctrl-Z Scrolls down toward the end of the file, one line at a time (the entire screen scrolls up). The cursor remains on the same text line until it reaches the top of the screen. ScrollLeft Alt-F5 Scroll the screen left. The amount of the scroll (in columns) can be configured via the configuration program. Defaults to 10 columns. ScrollRight Alt-F6 Scroll the screen right. The amount of the scroll (in columns) can be configured via the configuration program. Defaults to 10 columns. ScrollUp Ctrl-W Scrolls up toward the beginning of the file, one line at a time (the entire screen scrolls down). The cursor remains on the same text line until it reaches the next to last line on the screen. SeparatorLineDown Ctrl- When in split screen mode, moves the separator line down. SeparatorLineUp Ctrl-U When in split screen mode, moves the separator line up. COMMAND REFERENCE EM 1.36 SetPrintLeftMargin Ctrl-PM Sets the number of spaces printed at the beginning of each line. Default is 0. SetPrintPageSize Ctrl-PP Sets the numbers of lines sent to the printer before a formfeed is sent. A value of 0 will allow continuous printing. Default is 55. SetRMargin Ctrl-OR Sets the right margin for word wrap. SetTabWidth Ctrl-KT You will be prompted to enter a new tab width between 1 and 12. This command's default value can also be set by the configuration program. Shell F9 This command allows you to exit the editor temporarily, and to invoke a second copy of the command processor. As long as there is enough extra memory available, then you can execute essentially any commands that you would normally execute from the DOS command level. Once you are finished, then you can return to the editor by entering the return command, 'exit'. Your editing session will be exactly as you left it. Caution: You should NOT load (execute for the first time) any commands from the 'shell' that remain resident (the DOS print command, or any of the keyboard macro programs, resident note pad programs, appointment calendars, etc). It is perfectly legal to invoke these from the 'shell' if they have been loaded prior to invoking the editor. If you DO load resident programs from the 'shell', then due to DOS's scheme of memory management then your amount of available memory will be drastically reduced until you 'reboot' your system. Also, please remember that the editor cannot 'check' programs you execute to make sure that they behave properly. This is probably NOT the place to test programs, and definitely not the place to run programs that alter memory that they did NOT allocate from DOS. Thus all DOS non-resident utility commands and commercial programs should work perfectly fine from the 'shell' COMMAND REFERENCE EM 1.36 ShiftLeft Shift-F7 This command allows you to shift the CursorLine or the marked block to the left one position. If the CursorLine resides in a marked block when the command is executed, then the entire block is shifted. If the CursorLine is NOT in a marked block, then only the CursorLine is shifted. This command is very handy for changing indentation levels in highly structured code, i.e., removing or adding an if statement to a block of code. ShiftRight Shift-F8 This command allows you to shift the CursorLine or the marked block to the right one position. If the CursorLine resides in a marked block when the command is executed, then the entire block is shifted. If the CursorLine is NOT in a marked block, then only the CursorLine is shifted. This command is very handy for changing indentation levels in highly structured code, i.e., removing or adding an if statement to a block of code. SplitLine Ctrl-N The CursorLine is split at the cursor position. All text following and including the cursor position is placed on a new line, immediately following the CursorLine. The cursor does not move. SplitScreen Ctrl-OS This command will split the screen into two separate windows, and display the next file in the in memory ring in the second window, also making it the current window. Please NOTE that this command requires that their be at least two files loaded into memory when it is executed. If there is only one file in memory when this command is executed, then the command is ignored. COMMAND REFERENCE EM 1.36 StoreScrBuff Ctrl-BS This command will store the marked block to a named buffer. The user is prompted for the buffer name to store to. If the buffer does not exist it is created. If the buffer exists, then its current contents are lost. TabLeft Shift-Tab The TabLeft command behaves differently depending on whether the editor is in Insert or OverWrite mode. In OverWrite mode, the cursor is moved to the previous tab position as defined above. The characters over which the cursor moves are not affected. In Insert mode, the cursor is moved to the previous tab position as defined above. The text of the line is shifted left the number of characters that the cursor is moved. TabRight Tab The TabRight command behaves differently depending on whether the editor is in Insert or OverWrite mode. In OverWrite mode, the cursor is moved to the next tab position as defined above. The characters over which the cursor moves are not affected. In Insert mode, the cursor is moved to the next tab position as defined above. The text to the right of and including the cursor, is shifted the number of characters the cursor is moved. TabsOut Ctrl-QO This command turns TabsOut on and off. If TabsOut is on, then tabs are actually inserted in any lines that are updated by editing. Note that if TabsOut is off, then as the file is written to disk, tabs are expanded using the current TabWidth. COMMAND REFERENCE EM 1.36 ToggleAutoIndent Ctrl-QI This command toggles between AutoIndent mode and normal tab mode. In AutoIndent mode, tabs are set to the beginning of each word on the line above the CursorLine. ToggleIns Ins key This command toggles between Insert and OverWrite modes. ToggleTabsExpand Ctrl-QT This command toggles between Dynamic tab expansion or no tab expansion. ToggleWordWrap Ctrl-OW This command toggles word wrap on and off. When on, the text is wrapped if the cursor goes past the word wrap column. TopOfFile Ctrl-PgUp Positions the cursor on the first character of the first line of the file, which is made the new top of screen line. TopOfScreen Ctrl-Home Moves the cursor to the top of the screen. That line becomes the new CursorLine. Tur Alt-T Issues the GFile command, prompts the user for a filename (assumes a filename extension of .pas) and then passes that filename to the Turbo Pascal (tm) compiler for compilation. COMMAND REFERENCE EM 1.36 UnDoCursorLine Ctrl-QL This command will let you 'undo' changes made to the CursorLine as long as the cursor does not move to a new CursorLine. UnMarkBlock Alt-U Use this command to 'unmark' a marked block. If there is not a marked block, then this command has no affect. WordLeft Ctrl-Left Arrow Moves the cursor to the end of the word to the left of the cursor. If there is not a word to the left of the cursor, then the cursor will move to column one. If this command is executed when the cursor is in column one, then the cursor moves to the EndOfLine on the previous line. WordRight Ctrl-Right Arrow Moves the cursor to the beginning of the word to the right of the cursor. If there is not a word to the right of the cursor, then the cursor will move to the EndOfLine. If this command is executed when the cursor is already at the EndOfLine, then the cursor moves to column one on the following line. WriteBlock Ctrl-KW Writes the currently marked block to a disk file. Your are prompted for the name of the file to write. ZapScrBuff Ctrl-KZ This command will 'zap' (delete) the named scratch buffer. The user is prompted for the buffer name. CUSTOMIZING EM 1.36 EM can be customized in many areas, using the supplied configuration program, EMCONFG. The areas that can be customized are: - command bindings to keys - printer options - tab settings - other areas, including: - memory to reserve - snow checking - initial insert/overwrite setting - initial word wrap setting - initial right margin - optional .bak file creation - what characters to write at end of file - number of columns to scroll for ScrollRight and left commands - CMODE on or off The only area we will explain here is the "command bindings to keys", as the other areas are (hopefully) explained in the configuration program. To bind commands to keys, you use a "keydef" (keyboard definition) file. Three such files are supplied with EM. emkey.def - the default keyboard bindings wskey.def - a WordStar like keyboard binding mykey.def - a blank definition file for you to use CUSTOMIZING EM 1.36 A keydef file is formatted like this: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ * ³ ³ * lines beginning with '*' and blank lines are ignored, and can be ³ ³ * used as comments. ³ ³ * ³ ³ * The key goes on the left, followed by either: ³ ³ * 1) nothing, if a command is NOT bound to this key ³ ³ * 2) one or more spaces and then a valid EM command name ³ ³ * ³ ³ key command ³ ³ key command ³ ³ key command ³ ³ key ³ ³ key command ³ ³ key ³ ³ * ³ ³ * TwoKey command are a little more complex. They are defined by: ³ ³ * 1) defining a key's command as TwoKey ³ ³ * 2) the number of TwoKey's that follow ³ ³ * 3) the secondary key commands, in the same format as regular ³ ³ * commands. ³ ³ * NOTE that only ^a..^z can be defined as the initial key of a TwoKey³ ³ * command, and only 0..9, a..z can be defined as the secondary key. ³ ³ * ³ ³ * For a simple example, let's define ^KR as ReadFile, ^KS as SaveFile³ ³ * and ^KD as Exit. ³ ³ * ³ ³ ^k TwoKey ³ ³ 3 ³ ³ d Exit ³ ³ r ReadFile ³ ³ s SaveFile ³ ³ ³ ³ * ³ ³ * That's all there is to it! ³ ³ * ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ There are a few rules: 1) The ORDER and number of keys MUST remain as delivered in the .DEF files. 2) Whenever you "run" a keydef file through EMCONFG, all the old definitions are wiped out. GLOSSARY OF SPECIAL TERMS EM 1.36 Terms used: ^ When used in reference to the keyboard, means the Ctrl key. For example, ^X means the Ctrl X key. To execute a command labeled ^X, you would first press the Ctrl key, then, without releasing it press the X key. (the CASE of the character is ignored in Ctrl key commands, so that ^X and ^x are both interpreted as ^X. Sometimes a command is referred to as: KD. This means that this particular command requires you to first press the Ctrl key, then without releasing it press the K key then the D key. Note that the Ctrl key can optionally be released before pressing the second key. is interpreted as the Return key. If this occurs in a text string, then it means to press the Return Key. Alt- When used in reference to the keyboard, means the Alt key. For example, Alt-L means the Alt L key. key. To execute a command labeled Alt-L, you would first press the Alt key, then, without releasing it press the L key. (the CASE of the character is ignored in Alt key commands, so that Alt-L and Alt-l are both interpreted as Alt-L. Current File Refers to the file currently being edited. The editor allows multiple files in memory at the same time, and there are commands to switch back and forth between them. Current Window The window that the cursor currently resides in. In This version of the editor, there may be two separate 'windows' on the screen, viewing two separate files. CursorLine The line of the current file being edited where the cursor resides. GLOSSARY OF SPECIAL TERMS EM 1.36 EndOfLine The position immediately following the last non blank character on a line. If the line is blank, then EndOfLine is column one. F1,F2..F10 Refers to the ten function keys. FirstOfLine Column one. Insert One of the available editing modes of the editor. When in Insert mode, existing text to the right of the cursor moves to the right when you enter new text. Modes Settings that generally affect the editors method of operations and particularly affect many editor commands. The two currently supported modes are: Insert and OverWrite. OverWrite is the default. The mode can be toggled (changed) by pressing the Ins key or ^V. OverWrite One of the available editing modes of the editor. When in OverWrite mode, all characters typed 'overlay' any information or text already appearing in the file. OverWrite mode is very similar to typing on a conventional typewriter. TopOfScreen The top line of the screen in the current window, not including the STATUS line, if it is displayed. Word A sequence of one or more characters composed of: 0..9, A..Z, a..z and _. Anything else is considered a delimiter. COMMAND REFERENCE GUIDE EM 1.36 Alphabetical listing of commands: ( --- denotes NOT pre-installed ) Abort --- AddLine F2 Align Alt-A AppendScrBuff Ctrl-BA BackSpace BackSpace BottomOffile Ctrl-PgDn BottomOfScreen Ctrl-End BxToggle Shift-F1 BxTypeToggle Shift-F2 CopyBlock Alt-C CursorDown Down Arrow CursorLeft Left Arrow CursorRight Right Arrow CursorUp Up Arrow DeleteChar Del key DeleteLeftWord Ctrl-BackSpace DeleteLine Ctrl-Y DeleteRightWord Ctrl-T DeleteToEOL F6 DupLine F4 EditFile Ctrl-KE EndOfLine End key Escape ESC key Exit Ctrl-KD FileidChange Ctrl-KF FileToMain --- FileToSystem Ctrl-KX Find Ctrl-QF FirstOfLine Home key GetPrev Ctrl-- GExit Alt-X GFile Alt-F10 GroupDelete Alt-G HalfPgDn --- HalfPgUp --- JumpToLine Ctrl-J KillFile Ctrl-KZ LoadScrBuff Ctrl-BL MakeTopOfScreen F5 MarkLine Alt-L MoveBlock Alt-M COMMAND REFERENCE GUIDE EM 1.36 NewLine --- NextFile Ctrl-KN NextWindow Ctrl-ON OneWindow Ctrl-O1 PgDn PgDn PgUp PgUp PQuitToMain F3 PQuitToSystem Ctrl-KQ PrevFile Ctrl-KP PrevWindow Ctrl-OP PrintAll Ctrl-PA PrintBlock Ctrl-PB PrintEject Ctrl-PE ReadFile Ctrl-KR Replace Ctrl-QA RepLastFindOrRep Ctrl-L Return Enter or Return key SaveFile Ctrl-KS ScrollDown Ctrl-Z ScrollLeft ALT-F5 ScrollRight ALT-F6 ScrollUp Ctrl-W SeparatorLineDown Ctrl- SeparatorLineUp Ctrl-U SetPrintLeftMargin Ctrl-PM SetPrintPageSize Ctrl-PP SetRMargin Ctrl-OR SetTabWidth Ctrl-KT Shell F9 ShiftLeft Shift-F7 ShiftRight Shift-F8 SplitLine Ctrl-N SplitScreen Ctrl-OS StoreScrBuff Ctrl-BS TabLeft Shift-Tab TabRight Tab TabsOut Ctrl-QO ToggleAutoIndent Ctrl-QI ToggleIns Ins key ToggleTabsExpand Ctrl-QT ToggleWordWrap Ctrl-OW TopOfFile Ctrl-PgUp TopOfScreen Ctrl-Home Tur ALT-T UnDoCursorLine Ctrl-QL COMMAND REFERENCE GUIDE EM 1.36 UnMarkBlock ALT-U WordLeft Ctrl-Left Arrow WordRight Ctrl-Right Arrow WriteBlock Ctrl-KW ZapScrBuff Ctrl-KZ COMMAND REFERENCE GUIDE EM 1.36 Commands listed by function: ( --- denotes NOT pre-installed ) ---- Cursor movement commands ----------------- COMMAND KEYSTROKE BottomOfScreen Ctrl-End CursorDown Down Arrow CursorLeft Left Arrow CursorRight Right Arrow CursorUp Up Arrow EndOfLine End key FirstOfLine Home key NewLine --- Return Enter or Return key TopOfScreen Ctrl-Home WordLeft Ctrl-Left Arrow WordRight Ctrl-Right Arrow ---- Scroll (move screen) commands ------------ COMMAND KEYSTROKE BottomOffile Ctrl-PgDn HalfPgDn --- HalfPgUp --- JumpToLine Ctrl-J MakeTopOfScreen F5 PgDn PgDn PgUp PgUp ScrollDown Ctrl-Z ScrollLeft Alt-F5 ScrollRight Alt-F6 ScrollUp Ctrl-W TopOfFile Ctrl-PgUp COMMAND REFERENCE GUIDE EM 1.36 ---- Delete and Insert commands --------------- COMMAND KEYSTROKE AddLine F2 BackSpace BackSpace DeleteChar Del key DeleteLeftWord Ctrl-BackSpace DeleteLine Ctrl-Y DeleteRightWord Ctrl-T DeleteToEOL F6 DupLine F4 GetPrev Ctrl-- SplitLine Ctrl-N TabLeft Shift-Tab TabRight Tab ---- Find and Replace commands ---------------- COMMAND KEYSTROKE Find Ctrl-QF Replace Ctrl-QA RepLastFindOrRep Ctrl-L ---- File commands ---------------------------- COMMAND KEYSTROKE Abort --- EditFile Ctrl-KE Exit Ctrl-KD FileidChange Ctrl-KF FileToMain --- FileToSystem Ctrl-KX GExit Alt-X GFile Alt-F10 KillFile Ctrl-KZ NextFile Ctrl-KN PQuitToMain F3 PQuitToSystem Ctrl-KQ PrevFile Ctrl-KP ReadFile Ctrl-KR SaveFile Ctrl-KS COMMAND REFERENCE GUIDE EM 1.36 ---- Block commands --------------------------- COMMAND KEYSTROKE CopyBlock Alt-C GroupDelete Alt-G MarkLine Alt-L MoveBlock Alt-M ShiftLeft Shift-F7 ShiftRight Shift-F8 UnMarkBlock Alt-U WriteBlock Ctrl-KW ---- Printing commands ------------------------ COMMAND KEYSTROKE PrintAll Ctrl-PA PrintBlock Ctrl-PB PrintEject Ctrl-PE SetPrintLeftMargin Ctrl-PM SetPrintPageSize Ctrl-PP ---- Scratch Buffer commands ------------------ COMMAND KEYSTROKE AppendScrBuff Ctrl-BA LoadScrBuff Ctrl-BL StoreScrBuff Ctrl-BS ZapScrBuff Ctrl-BZ ---- Windowing commands ----------------------- COMMAND KEYSTROKE NextWindow Ctrl-ON OneWindow Ctrl-O1 PrevWindow Ctrl-OP SeparatorLineDown Ctrl- SeparatorLineUp Ctrl-U SplitScreen Ctrl-OS COMMAND REFERENCE GUIDE EM 1.36 ---- Miscellaneous commands ------------------- COMMAND KEYSTROKE Align Alt-A BxToggle Shift-F1 BxTypeToggle Shift-F2 Escape ESC key SetRMargin Ctrl-OR SetTabWidth Ctrl-KT Shell F9 TabsOut Ctrl-QO ToggleAutoIndent Ctrl-QI ToggleIns Ins key ToggleTabsExpand Ctrl-QT ToggleWordWrap Ctrl-OW Tur Alt-T UnDoCursorLine Ctrl-QL COMMON QUESTIONS EM 1.36 1. "Will it help if I buy more RAM memory for my PC?". ANSWER: Yes. EM uses ALL available memory up to a maximum of 640K. The size of and number of files that you can edit with EM is directly determined by the amount of available memory present. 2. "In what language was EM written?". ANSWER: It was originally written entirely in TURBO PASCAL. This version contains about 4000 lines of TURBO PASCAL and 1200 lines of Assembler. 3. "Can I obtain the source code for the program?". ANSWER: Yes. See the first part of the manual for details. 4. "What is your update policy?". ANSWER: We will try to notify all registered users of new updates. Current update pricing is $12 for the most current version. 5. "How do I get files with tabs to display with the tabs expanded?" ANSWER: Use the ToggleTabsExpand command. (Ctrl-QT) 6. "How do I join two lines together?" ANSWER: To join the line following the CursorLine with the CursorLine, press the EndOfLine key, then press the DeleteRightWord key. 7. "How can I enter the IBM extended graphic characters, or other special characters such as a formfeed?". ANSWER: Use the Alt-Numeric KeyPad. For example, to enter a formfeed character (ASCII 12), you would: Hold down the Alt key, and press the 1 and then the 2 key on the numeric KeyPad, then release the Alt key. 8. "How do I mark more than one line?". ANSWER: The MarkLine command can be used to mark a block of lines. Simply mark the first line in the block you want marked, move to the last line in the block, mark it, and then all the lines in between will also be marked. TECHNICAL SPECIFICATIONS EM 1.36 -Source language: Turbo Pascal 73%, Assembler 27%. -IBM PC specifics: none. All input/output is done through MS-DOS documented function calls. Note that the ANSI.SYS (or equivalent) device driver is required. EM works ONLY with TRUE ASCII text files. ASCII text files are produced by most editors (for example, the SideKick editor). An ASCII text file will end each line in a Carriage Return and Line Feed characters (hex 0D and 0A, respectively). The end of the file is optionally marked by a hex 1A. Maximum line length - 255 characters INCLUDING the CR and LF characters. Minimum RAM memory required................................128K Maximum RAM used...........................................640K Maximum file size - Limited to available memory. Maximum number of files edited in 'multi-file' mode - 32767 or available memory - which ever comes first. Minimum Disk Drives required...............................1 Minimum Disk Space required................................39K FileSpecs can include PATH specifications, for a maximum of 64 characters. PRODUCT SUPPORT EM 1.36 PROBLEMS If you have problems with EM, please read this manual first to make sure that you do understand everything. We have tried to provide a problem-free product, but sometimes we make mistakes. If, after reviewing the manual, you still think you have found a problem, then please take the time to either write or call and explain your problem to us. We will try to respond as soon as possible. In order to help us expedite matters, please include the following information: 1. Version of DOS used 2. Machine type, memory, monitors, etc. 3. Any resident programs loaded at the time of the problem 4. Version of EM you are using If you do not provide us with a complete, detailed description of what happened, then there is probably little we can do to help. Note that we do NOT guarantee any kind of support for non-registered users. UPDATES We are continually striving to make EM a better program. Plus, we try to implement as many as possible suggestions that we receive from users. We hope to have all suggestions implemented one day! If you wish to be registered for notices of updates in EM, you will be required to become a registered user. When updates are available, we will notify you, and make them available for a nominal fee ($12.00 as of this writing). OBTAINING THE SOURCE CODE The source code for EM is available for personal, non-commercial use only. Please see the ordering section for details. CONTACTING THE AUTHOR The preferred way to contact the author is by mail. Alternatively, if you must, the author can be reached by phone. Please be considerate. Our time is limited. PRODUCT SUPPORT EM 1.36 CORPORATE USERS We think EM is a terrific bargain at it's current low price. Corporate users are expected to register each copy of EM that they are using. Please use the included invoice and also include the name of the person to contact with notices of updates. DEALERS, VALUE ADDED RE-SELLERS, AND CONSULTANTS EM is an ideal editor for consultants (easily fits on your diskette, only requires one file) and is an excellent editor to be distributed with your software/hardware packages. If you would like to use EM and include it with your packages, please write us for details. You cannot give this software to your customer without some sort of license from us. This requirement is for your protection since this software is protected by copyright, and the author is therefore the only party that can receive any consideration or payment for this software.