                    Zedit (tm) Version 2.0

         Copyright (C) 1990-1993 Executive Systems, Inc.

                 All Rights Reserved Worldwide

                     by Jeffrey C Johnson

    This file contains the following sections:

    Installing the Zedit Text Editor
    Starting Zedit
    Command Line Options
    Gang Edit Mode
    Starting Zedit from XTreeGold or XTreeNet
    The Zedit Screen
    Using a Mouse
    File Menu Commands
    Block Menu Commands
    Edit Menu Commands
    Goodies Menu Commands
    Options Menu Commands
    Print Menu Commands
    Search Menu Commands
    Tab Menu Commands
    Window Menu Commands
    Control Key Commands
    CTRL+K Commands
    CTRL+KJ "Mark" Command
    CTRL+O Commands
    CTRL+Q Commands
    Additional Keystroke Commands
    How Backup Files are Generated
    End of Line and End of File Characters
    Inserting Control Codes and Graphics into a File
    The Color Editor
    Zedit Files
    DOS 5, Z.EXE, ZX.EXE and Memory Usage
    EMS and Running Other Programs from within Zedit

-----------------------------------------------------------------
    Installing the Zedit Text Editor
-----------------------------------------------------------------

    Zedit is automatically installed in your XTGOLD or XTNET
    directory when you install XTreeGold or XTreeNet. To change
    the directory in which Zedit is installed: 

    o   Copy all Zedit files to any directory. 

    o   Make sure that Z.EXE (or ZX.EXE) is accessible via a
        batch file or the PATH= DOS environment variable.  

    See the section, "Zedit Files" for more information.

-----------------------------------------------------------------
     Starting Zedit
-----------------------------------------------------------------

    Zedit can be started from the DOS command line.

    The syntax for starting Zedit is: 

        Z [options] [filename(s)] 

    Command line options and filename syntax are described in the
    next section. 

-----------------------------------------------------------------
    Command Line Options
-----------------------------------------------------------------

    The command line options are: 

/m  Forces monochrome attributes to be used for menus, the status
    line and dialog boxes, and a single 'monochrome' palette for
    the file windows. Configured color information is ignored
    when /w is specified.  
 
/p  Prints one file and exits to the DOS prompt.

/w  Same as the /m switch except a separate set of colors is used
    for the file windows.

    TIP: Use /w (and the associated color settings) when using
    Zedit in a DOS window running under Windows. This lets you
    customize one color set and use it for all open files and is
    convenient when the installed Windows Video Grabber Device
    Driver uses non-standard colors in a DOS box. You'll know if
    you need to use this switch if Zedit text becomes unreadable. 

OPENING MULTIPLE WINDOWS

    These additional command line options control how multiple
    windows are opened when you start Zedit and load multiple
    files. 

/c  Opens cascading windows.

/h  Splits windows horizontally.

/o  Opens windows in an ordered stack.

/t  Opens tiled windows.

/v  Splits windows vertically.

LOADING FILES FROM THE COMMAND LINE

Syntax: Z [filename] [[filename] ... [filename]] 

    Loads files specified on the command line.

Syntax: Z +

    Loads the files from the previous editing session. The
    current list of open files is automatically saved in the
    config directory as "ZLIST.HST" when you exit. 

Syntax: Z +filename 

    Opens each file listed in the specified text file in a window
    when the editing session begins. This option assumes
    "filename" contains a list of files to load into multiple
    windows. You can use XTreeGold to generate this list or
    create it manually. You can also copy or rename the ZLIST.HST
    file that is written when you exit the editor.  

    Files loaded in this mode must all fit in memory at one time.  

Syntax: Z -filename 

    Opens each file listed in the specified text file in Gang
    Edit mode when the editing session begins. This option
    assumes "filename" contains a list of files for Gang Edit
    mode. You can use XTreeGold to generate this list or create
    it manually. You can also copy or rename the ZLIST.HST file
    that is written when you exit the editor.  

    The maximum number of files that can be included in a Gang
    Edit are determined by the sum of the memory needed to
    handle the file-list file and the largest file in the list. 

    Lines beginning with ';' ' ' '/' are ignored in the file-list
    file.  

ASSIGNING TAB SETTINGS TO FILE EXTENSIONS

    The ZTABS.INI file specifies how tabs are automatically set
    when a file is loaded into the editor. ZTABS.INI can be
    edited with Zedit, and contains instructions on setting the
    default tabs. 

-----------------------------------------------------------------
    Gang Edit Mode
-----------------------------------------------------------------

    When the command line syntax takes the form of "Z -filename"
    Zedit reads "filename" into memory, parses it, and then uses
    the parsed file as a list of files to edit. This feature lets
    you edit hundreds of files at one time (Zedit needs enough
    RAM to hold the file-list file and the largest file in the
    list).  

    Files are brought into the "Gang Edit window" (which is
    initially window 1) one at a time for editing. Two actions
    cause the editor to automatically advance to the next file:

    o   Pressing CTRL+KN, CTRL+KG

    o   Searching for text with the Search, Multiple files option
        checked. When a new file is brought into memory, the file
        in the active Gang Edit window is automatically saved if
        it has been modified.  

    When a Gang Edit is active, it can be toggled on and off with
    the Options_Gang on/off selection (the second status line
    changes to reflect the change). When the Gang Edit is turned
    off, the Search_Multiple files selection only searches
    through the open windows.  

    Pressing CTRL+KI keeps the current Gang Edit file in RAM, and
    opens the next Gang Edit file in the next available window.  

    In a Zedit file-list file all lines must contain a valid DOS
    filename, path\filename, or d:\path\filename. Lines that meet
    any of the following criteria are ignored: 

    o   blank lines
    o   lines that start with spaces or tabs
    o   lines that start with a semicolon ";"
    o   lines that start with a slash "/"

-------------------------------------------------------------
    Starting Zedit from XTreeGold or XTreeNet
-------------------------------------------------------------

    To use Zedit instead of 1Word, you'll need to run the
    configuration program and specify it as the default text
    editor.  

    In the XTree configuration program, choose Modify
    Configuration Items. Then change the "Editor program" to
    C:\XTGOLD\Z.EXE.  

    Once you've changed this, you can use the Edit command to run
    Zedit automatically.  

    If you frequently run out of memory when running Zedit from
    XTree, set the memory configuration option for the editor to
    use "ALL MEMORY". 

    You can then use the Edit file command to use Zedit from
    XTreeGold or XTreeNet.  

-----------------------------------------------------------------
    The Zedit Screen
-----------------------------------------------------------------

    In the Zedit screen, two on-screen status lines maintain
    statistics and current editing information. The first line
    under the menu bar shows the current cursor position, by
    line, column and byte. The toggle options checked on the
    Search menu are shown in upper case; those not checked are
    shown in lower case. Once the current file has been edited,
    "Modified" is displayed on this line. The second status line
    shows the Gang Edit status if it is in effect, and the stop
    watch time if a ms stop watch has been turned on. 

    When window frames are selected, the window number and file
    name are shown in the top of the window, on the window frame. 

    When a file has been modified, the upper left corner of its
    window frame is displayed as a tiny square character instead
    of a box corner.  

    NOTE:

    The maximum number of open file windows is 80. 

-----------------------------------------------------------------
    Using a Mouse
-----------------------------------------------------------------

    Ι[1]ΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝ» <-- window frame
    Ί                     Ί
    Ί window text         Ί
    Ί                     Ί
    ΘΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΌ

WINDOW FRAMES

    BOTH BUTTONS

        Clicking either button over the maximize/minimize arrow
        at the upper right corner of a window toggles the window
        between its maximum size and the size you have manually
        set. Note that a copy of the min/max control for the
        active window is located in the upper right corner of the
        screen for convenience. 

        Clicking either button over the window id number in its
        upper left corner closes that window. If the file in the
        window has been modified, you are prompted before the
        modified file is discarded.  

    LEFT BUTTON 

        Dragging any of the four corners resizes the window. The
        position of the text cursor is adjusted to keep the text
        at the cursor position visible within the window.  

        Dragging anywhere else on the window frame moves the
        window. 

    RIGHT BUTTON 

        The right button drags and sizes the window without
        activating the window. Use it to bring a window into view
        or hide it under another window.  

WINDOW TEXT

    BOTH BUTTONS

        Clicking either button over the text of an inactive
        window activates that window (brings it to the top). 

    LEFT BUTTON 

        Clicking the LEFT button over text in the active window
        moves the cursor (insertion point) to the mouse location.  

        Double-clicking the LEFT button over text in the active
        window marks the expression at the cursor location (same
        as CTRL+KJ).  

        Double-clicking the LEFT button over text in the active
        window while holding down the CTRL key (1) marks the
        expression at the cursor location (2) moves the cursor to
        the end of the block (3) searches for the next occurrence
        of the marked expression, and (4) unmarks the block.
        (same as CTRL+KJ, CTRL+QK, CTRL+QJ, CTRL+KH).  

        Dragging the LEFT button over text in the active window
        marks the text as the cursor moves. If the mouse is
        dragged above or below the window the text scrolls up or
        down.  

    RIGHT BUTTON 

        Clicking the RIGHT button over text in the active window
        scrolls the text up (when clicking in the upper half of
        the window) and down (when clicking in the lower half of
        the window). If you click in the left four columns of the
        window the text scrolls one page at a time.  

        Holding down the RIGHT button initiates a continuous
        scroll. 

        Dragging the RIGHT button causes a scroll every time the
        mouse cursor moves.  

-----------------------------------------------------------------
    File Menu Commands
-----------------------------------------------------------------

Open file and window...

    Opens a file in a new window. 

Read file into window...

    Inserts the file into the current window. 

Save 

    Saves the current file, whether or not it has been modified. 

Save As...

    Saves the file with a new file name which you specify. 

Save changed, eDit another...

    Saves the current file and opens another one in the same
    window. 

Save changes, eXit to DOS

    Saves all modified files and exits Zedit. Unlike File_Exit
    to DOS, this command automatically saves all modified files
    without prompting.  

Save modified Files

    Saves all modified files; you are prompted at each file. 

Abandon file, edit another...

    Abandons the current file and opens another in the current
    window. 

Abandon file, close window...

    Abandons the current file and closes the current window. If
    the current window is the only open window, it also exits
    Zedit.  

Abandon all, exit to DOS...

    Abandons all modified files and exits to DOS. Zedit asks for
    confirmation. 

About Zedit...

    Displays the program version number and copyright notice. 

DOS Commands...

    Executes a DOS command. If you have 600K free EMS, Zedit will
    use it to save the RAM it uses while the DOS command is
    executing. Otherwise a disk file is used.  

Exit to DOS... 

    Ends the Zedit session. If you press ESC at the "Save file
    as" prompt, the file is NOT saved, and Zedit does NOT exit to
    DOS; you are returned to Zedit and the canceled file becomes
    the active window.  

-----------------------------------------------------------------
    Block Menu Commands 
-----------------------------------------------------------------

Copy block

    Copies the marked block to the current cursor location. 

Delete block

    Deletes the marked block. 

Move block

    Moves the marked block to the current cursor location. 

Read block from file 

    Reads a file into the current window at the current cursor
    position. 

Write block to file 

    Writes the marked block to another file. 

Indent block 

    Indents the block; intended for structured programming
    languages. 

Outdent block 

    Removes block indenting. 

Mark by moving cursor 

    Lets you start and stop marking text as you move the cursor
    around. 

Mark block start 

    Marks the beginning of a text block. 

Mark block end 

    Marks the end of a text block.  

Mark line 

    Marks the line at the cursor position. 

Mark word - expression 

    Marks a block of text. See the section "CTRL+KJ Mark Command."  

Unmark 

    Removes the block markers from the text. 

-----------------------------------------------------------------
    Edit Menu Commands
-----------------------------------------------------------------

Append

    Appends the marked text to the scrap file. 

Copy

    Copies the marked text to the scrap file. 

Cut

    Cuts the marked text to the scrap file. 

Paste

    Pastes the scrap file into the file at the current cursor
    position. 

-----------------------------------------------------------------
    Goodies Menu Commands
-----------------------------------------------------------------

Goto line number... 

    Moves the cursor to any line number in the current file. 

Jump to bookmark

    Moves the cursor to bookmark 1 through 4. 

Place a bookmark... 

    Sets a bookmark from 1 to 4. 

Font & ASCII table... 

    Displays the PC8 character set. See the section "Inserting
    Control Codes and Graphics into a File."  

Insert DOS screen

    Inserts the DOS screen into the current file at the cursor
    position. Duplicate blank lines and the prompt at the bottom
    of the screen are not inserted into the file.  

Alternate macro set 

    Uses the alternate macro set stored in the file ZMAC2.CFG. 

Display active macros

    Displays the macros in the directory specified by the ZDIR=
    environment variable. 

Original macro hot keys 

    Sets the macro keys back to the defaults:

        record    ALT - 
        playback  ALT + 
        assign    ALT 0 

    Note that the macro functions are programmed into the Zedit
    macro files as F7, F8 and ALT+F7. This command frees the
    function keys. 

Redefine macro hot keys

    Attaches the record, play and assign functions to any ALT
    keys. 

NOTES:

    To delete a key assignment, assign an empty recording. Zedit
    asks if you want to delete the assignment.  

    If you delete the macros for ALT_F ALT_B ALT_G ALT_O ALT_S
    ALT_T ALT_W you will have to reference the pull-down menus as
    "CTRL+P" followed by the 1st letter of the menu bar item; for
    example, to open the File menu, you'll have to press CTRL+PF. 

1 fixup 'c' comments 

    Right-justifies one line 'c' comments to the window border.  

2 strip trailing spaces 

    Removes trailing white space from the current line. 

3 leading tabs to spaces 

    Expands leading tabs to spaces on the current line. 

4 leading spaces to tabs 

    Replaces leading tabs with spaces on the current line. 

5 expand tabs to spaces

    Expands all tabs to spaces on the current line.  

7 sort file

    Reorders each line in the file, in correct alphanumeric order. 

8 delete duplicate lines

    Removes duplicate lines from the current file. 

    NOTE:

    The tab manipulation functions will not cause any visible
    changes in the file display unless the tab size is set to 1.
    To see where the tabs are in the text, setting a tab size of
    1 will display the character for ASCII code 9.  

-----------------------------------------------------------------
    Options Menu Commands
-----------------------------------------------------------------

25 line display

    Changes the display mode to 25 lines. 

40 line display

    Changes the display mode to 40 lines. 

Edit colors...

    Lets you edit the screen colors. See the section "The Color
    Editor."  

Gang edit on/off

    When a gang edit is in progress, selecting this option turns
    the gang edit mode on and off. The gang edit status (on/off
    or active window number) is displayed on the second status
    line.  

Save configuration

    Writes out the following information, which is automatically
    restored the next time you run Zedit: 

    o   all colors 
    o   all of the options on the Print menu including the
        "before" and "after" strings 
    o   Window_Framed max 
    o   macro key assignments for Record/Play/Assign 
    o   all of the Search options 
    o   the Options_25/40 line display selection 

-----------------------------------------------------------------
    Print Menu Commands
-----------------------------------------------------------------

File 

    Prints the contents of the file in the current window. 

Window contents 

    Prints only the visible portion of the text in the current
    window. Use the mouse to frame the text as you want it
    printed.  

Clip long lines 

    When printing a file, this option causes extra characters
    past the right margin to not be printed. 

Headers 

    Prints the path and file name, current date and time, and a
    page number at the top of each page.  

Indented 

    When printing, text is indented 10 spaces from the left
    margin.  

Line numbers 

    Prints line numbers in the left margin.  

1 Lines...

    Lets you specify the number of lines per page. For laser
    printers, this should be one less than the maximum printable
    lines per page.  

2 Columns...

    Lets you specify the number of columns across the page. For
    printers that wrap the lines, this should be one less than
    the maximum printable columns per page.  

3 Str before... 

    This string, if defined and the first character is not
    chr(255), is sent to the printer BEFORE each Print_File and
    Print_Window operation begins.  

4 Str after...

    This string, if defined and the first character is not
    chr(255), is sent to the printer AFTER each Print_File and
    Print_Window operation ends.  

-----------------------------------------------------------------
    Search Menu Commands
-----------------------------------------------------------------

Repeat Last search 

    Performs the search indicated in the Search dialog box. 

Replace...

    Searches and replaces a string of characters. Use this
    command to replace one string of characters with another.
    Type in the text to be replaced and press ENTER. Then type in
    the new text. The cursor moves to the first occurrence and
    prompts you to confirm the replacement. Press Y to replace
    the text at the cursor. 

Search... 

    Searches for a string of characters. Type in the text you
    want to find and press ENTER. 

Defaults 

    Resets the search options to the program defaults.  

Ask for replace 

    When selected, Zedit asks you before replacing text. 

Case sensitive 

    When selected, found text must exactly match the search
    string. Otherwise, uppercase and lowercase letters are
    treated as identical.  

Fuzzy

    When selected, white space is compacted and an asterisk "*"
    will match any characters. For example, "*" will find all
    strings between two quotation marks. 

Global replace 

    When selected, search and replace operations will
    automatically continue until the cursor returns to the
    original starting position (or ESC is pressed).  

Hilite found text

    When selected, found text becomes the active marked text
    block. This is especially useful when the Fuzzy search is
    active. 

Multiple files 

    When selected, and more than one file is loaded into windows,
    or a Gang Edit is in progress, the search will span multiple
    files. When a multiple search fails, the search stops at the
    original starting file and cursor position. For gang edits,
    the search stops at the beginning of the original starting
    file.  

Whole words 

    When selected, the character(s) to the immediate left and
    right of the found text must be one of the following for the
    search to find a match: 

    o   'A' through 'Z' or 'a' through 'z'
    o   '0' through '9'
    o   '_' (the underbar character)
    o   beginning of line
    o   end of line

    The search options are saved when the Goodies, Save
    configuration option is selected. 

-----------------------------------------------------------------
    Tab Menu Commands
-----------------------------------------------------------------

1..8 columns 

    Sets the tab size to the number you select. 

Hard 

    Sets hard tab mode (every 8 columns). When you press the TAB
    key, you place the TAB ASCII character into the file. The TAB
    key moves the cursor to the next position which is a multiple
    of eight from the left side of the screen. Subsequently, the
    cursor jumps when you move it over that spot. If you delete
    the Tab, text jumps to the left to fill the gap. Hard tabs
    conserve space on your disk. 

Soft 

    Sets soft tab mode. Soft tabs place spaces in the file,
    rather than characters, so the cursor will not jump when you
    move it over a tab stop. Tab stops are determined by the
    spaces in the line of text directly above the current line.
    When you are indenting a series of lines, press TAB to move
    the cursor directly to the column where the text begins on
    the above line. Soft tabs are useful for programming in
    high-level languages. 

    NOTE:

    Changes are only applied to the file in the current window.

-----------------------------------------------------------------
     Window Menu Commands
-----------------------------------------------------------------

Framed max 

    Maximizes the active window and toggles framed and unframed
    mode. 

Maximize

    Toggles the size of the active window between maximized and
    its previous size. 

Maxumall

    Maximizes all windows. 

Next 

    Makes the next window in sequence active. 

Prev 

    Makes the previous window in sequence active. 

Swap top 

    Toggles between the last two active windows. 

All same size 

    All windows are resized to the size of the active window. 

Cascade 

    Windows are arranged on top of each other so all title bars
    and left borders are visible. 

Horizontal 

    The two most recently active windows are displayed in
    horizontally split windows. 

Ordered stack 

    Windows are arranged so only the title bars are visible, and
    they are in alphabetic order. 

Stack 

    Windows are arranged so only the title bars and the active
    window are visible. 

Vertical 

    The two most recently active windows are displayed in
    vertically split windows. 

Tile 

    Windows are resized and arranged so all are visible. 

Drag & size 

    Lets you use the ARROW keys to resize, and CTRL+ARROW keys to
    move the current window. 

-----------------------------------------------------------------
    Control Key Commands
-----------------------------------------------------------------

Zedit control commands are executed by holding down the CTRL key 
and pressing a letter key. When a command requires two keys the 
second letter key can be pressed with or without holding down 
the CTRL key. For example, pressing CTRL+K followed by CTRL+X is 
equivalent to pressing CTRL+K followed by X.

CTRL+A 

    Positions the cursor at the beginning of the previous word in
    the file.  

CTRL+B

    Formats the paragraph.  

    Starting with the cursor line, the current paragraph is 
    reformatted based on the left and right margins.  

    The right margin is defined as the right edge of the window
    containing the cursor.  

    The left margin is dynamic and is based on the cursor
    position at the time CTRL+B is pressed.

    The first time CTRL+B is pressed during an editing session,
    you are asked to confirm that word wrap should be activated.
    This prevents you from accidentally pressing CTRL+B and,
    subsequently destroying a block of source code.  

    The word wrap reformat function is intended for documenting
    source code and very simple word processing tasks. 

    CTRL+B treats the following character sequences in the left
    margins as white space: 

    o   <cr>"// " 
    o   <cr>"; " 
    o   <cr>"* "
    o   <cr>"** "

    This allows you to format multiple line asm and c comments
    that are encased in a block comment header. For example, you
    can type this... 

        /*
        **
        **  This is a block comment that was originally typed on
        **  a single line. Pressing CTRL+B has reformatted the
        **  comment into a multiple line comment.  
        **
        */

    ...and reformat the paragraph by pressing CTRL+B.

CTRL+C

    Scrolls the page down. 

CTRL+D

    Moves the cursor one position to the right. 

CTRL+E

    Moves the cursor one position up. 

CTRL+F

    Moves the cursor one word (or text string) to the right. 

CTRL+G

    Deletes the character under the cursor. 

CTRL+H

    Deletes the character to the left of the cursor. 

CTRL+I

    Inserts a tab into the file at the cursor location. 

CTRL+J

    Inserts a <CR> at the cursor location. 

CTRL+K

    Initiates Wordstar-style file and block commands. See the
    section "CTRL+K Commands."  

CTRL+L

    Repeats the previous search command. 

CTRL+M

    Produces the same result as pressing ENTER. 

CTRL+N

    Produces the same result as pressing ENTER and then the LEFT
    ARROW key. 

CTRL+O

    Initiates Wordstar-style options commands. See the section
    "CTRL+O Commands."  

CTRL+P

    Opens the menu specified by the next keystroke. Press ENTER 
    to open the previous menu. 

CTRL+Q

    Initiates Wordstar-style "quick" menu commands. See the
    section, "CTRL+Q Commands."  

CTRL+R

    Moves the cursor one page up. 

CTRL+S

    Moves the cursor one position to the left. 

CTRL+T

    Deletes the characters from the cursor position up to, but
    not including the first character of the next word to the
    right of the cursor. 

CTRL+W

    Scrolls the window up. 

CTRL+X

    Moves the cursor down one line. 

CTRL+Y

    Deletes the line the cursor is in. 

CTRL+Z

    Scrolls the window down. 

-----------------------------------------------------------------
     CTRL+K Commands
-----------------------------------------------------------------

CTRL+KA

    Saves the current file; you are prompted for a file name. 

CTRL+KB

    Marks the beginning of a block of text.  

CTRL+KC

    Copies the marked block. 

CTRL+KD

    Saves the current file and opens another file in the same
    window. 

CTRL+KE

    Exits Zedit and prompts you to save each modified file. When
    prompted, press ENTER to save the file or ESC to NOT save the
    file and NOT exit Zedit. 

CTRL+KF

    Saves all modified files without prompting. 

CTRL+KG

    Loads the previous file in the Gang file list. If the current
    file has been modified, it is automatically saved.  

CTRL+KH

    Removes the block markers from the text.  

CTRL+KI

    Keeps the current Gang Edit file in RAM, and opens the next
    Gang Edit file in another window.  

CTRL+KJ

    Marks a block of text. See the following section "CTRL+KJ
    Mark Command."  

CTRL+KK

    Marks the end of a text block.  

CTRL+KL

    Marks the line at the cursor position. 

CTRL+KM

    Lets you start and stop marking text as you move the cursor
    around. 

CTRL+KN

    Loads the next file in the Gang Edit file list.  

CTRL+KO

    Opens another window and file for editing. 

CTRL+KP

    Abandons the current file and closes the current window. If
    the current window is the only open window, the Zedit session
    ends. 

CTRL+KQ

    Abandons the current file and opens another in the current
    window.

CTRL+KR

    Reads a file into the current window at the cursor position.  

CTRL+KS

    Saves the current file, whether or not it has been modified. 

CTRL+KT

    Indents the block; intended for structured programming
    languages. 

CTRL+KU

    Removes the block indenting; intended for structured
    programming languages. 

CTRL+KV

    Moves the marked block to the cursor position. 

CTRL+KW

    Writes the marked block to another file. 

    WRITE: Replaces the specified file with the currently marked
    block.  

    APPEND: Adds the currently marked block to the end of the
    specified file. End the "Write block" dialog by pressing
    CTRL+ENTER to append the block instead of overwriting the
    file.  

    For both operations, if the specified file was already loaded
    into the editor, the in-RAM copy is updated as is the file on
    disk.  

CTRL+KX

    Saves all modified files and ends the Zedit session. Unlike
    the File_Exit to DOS command (pre-assigned to ALT+X), CTRL+KX
    automatically saves all modified files without prompting.  

CTRL+KY

    Delete the marked block. 

CTRL+KZ

    Abandons all modified files and exits. Zedit prompts you for
    confirmation before exiting to DOS.  

CTRL+K 1

    Sets bookmark 1.

CTRL+K 2

    Sets bookmark 2.

CTRL+K 3

    Sets bookmark 3.

CTRL+K 4

    Sets bookmark 4.

-----------------------------------------------------------------
    CTRL+KJ Mark Command
-----------------------------------------------------------------

    The CTRL+KJ CTRL sequence provides an all purpose block
    marking command which can speed up source code editing by a
    factor of two by eliminating redundant typing and typos. 

    The best way to explain how it works is by example. Assuming
    that the <RECORD MACRO> and <PLAYBACK MACRO> functions are
    assigned to F7 and F8 respectively, record the following
    keystrokes: 

        KEYSTROKE       DESCRIPTION

        F7              Start recording
        RIGHT_ARROW     Move the cursor right
        CTRL+K          CTRL+K prefix
        J               Mark expression
        ESC or F7       Stop recording

    Now, place the cursor at the beginning of the examples that
    follow (in the on-line ZEDIT.TXT file) and press F8 <PLAYBACK
    MACRO> to move the cursor through and mark the text:
    
    #if A 
    { 
        #if B 
        { 
            /* {[( /* */ { } ( ) [ ] " '?' " #if #endif )]} */

            if ((XTree.Gold[version] == 3) || (! XTree_Easy[hho]))
            {
                if (XTree_Prune( "NORTON", "PRUNE" ) == OKAY)
                {
                    XTree_Dialog( "Wise choice!" );
                }
                else
                {
                    XTree_Dialog( "Is Todd in the room?" );
                }
                something=boolean?yes:no;
            }
        }
        #endif
    }
    #endif

    ?FOO    PROC    NEAR    ;
            JZ      @F      ;
            CALL    ?BAR    ;
            @@:             ;
    ?FOO    ENDP            ;

    /*
    ** Be aware that there is a conflict between C and ASSEMBLER
    ** involving the question mark. When the cursor is over 
    ** "FOO" or "BAR" the "?" does not get marked as part of the
    ** word. When you need to search for an asm symbol with a
    ** question mark, mark the symbol by hand, and then press 
    ** CTRL+Q CTRL+J. 
    ** The editor checks for the following chars (in a lookup    
    ** table) when deciding if a character is part of a "whole"
    ** word: 
    ** "A..Z" "a..z" "0..9" "_" "@" "#"
    **
    */

-----------------------------------------------------------------
    CTRL+O Commands
-----------------------------------------------------------------

CTRL+OA

    Toggles search and replace prompt mode. When ON, Zedit
    prompts you before replacing found text.  

CTRL+OB

    Useful for 'c' programmers, it constructs a file containing
    the function declarations in the current file.  

CTRL+OC

    Toggles case sensitivity during a search. When ON, found text
    must exactly match the search string.  

CTRL+OD

    Executes a DOS command. If you have 600K free EMS, Zedit will
    use it to save the RAM it uses while the DOS command is
    executing. Otherwise a disk file is used.  

    NOTE:

    The contents of the DOS screen can be viewed at any time the
    editor is idle by holding both the CTRL and ALT keys at the
    same time.  

CTRL+OF

    Toggles a fuzzy search. When ON, the search logic is
    identical to the XTreeGold CTRL+Search command. 

CTRL+OG

    Toggles global search and replace. When ON, Zedit will
    automatically repeat the search and replace command until you
    press ESC or the starting cursor position is reached.  

CTRL+OI

    Inserts the DOS screen into the current file at the cursor
    position. Duplicate blank lines and the prompt at the bottom
    of the screen are not inserted into the file.  

CTRL+OM

    Toggles search additional windows or files mode. When ON,
    Zedit continues a search in the next open window (for Gang
    Edits, the search continues in the next file in the list).  

CTRL+ON

    Saves a pointer to the current filename in an internal buffer.
    That saved name can then be pasted into any open file with
    the CTRL+OP command. 

CTRL+OP

    Pastes the name set by CTRL+ON into the current file at the
    cursor position. 

CTRL+OT

    Inserts the current date and time into file at the cursor
    position.  

CTRL+OW

    Toggles search exclude alphanumeric characters mode. When ON,
    the start and end of the found text cannot be one of the
    following characters: A..Z, _, 0..9.  

CTRL+O 1

    Displays the current file. Intended for use in macros when
    you want to watch the progress of a long series of keystrokes
    while the macro is playing back.  

-----------------------------------------------------------------
    CTRL+Q Commands
-----------------------------------------------------------------

CTRL+QA

    Searches and replaces a string of characters. Use this
    command to replace one string of characters with another.
    Type in the text to be replaced and press ENTER. Then type in
    the new text. The cursor moves to the first occurrence and
    prompts you to confirm the replacement. Press Y to replace
    the text at the cursor. 

CTRL+QB

    Moves the cursor to the start of the marked block. If
    necessary, the window containing the block is activated.  

CTRL+QC

    Moves the cursor to the end of the current file. 

CTRL+QD

    Moves the cursor to the end of the current line. 

CTRL+QF

    Searches for a string of characters. Type in the text you
    want to find and press ENTER. The cursor moves to the first
    occurrence. Press CTRL+L to move the cursor to subsequent
    occurrences. 

CTRL+QG

    Moves the cursor to any line number in the current file. 

CTRL+QI

    Sets a bookmark from 1 to 4. 

CTRL+QJ

    Searches for the next occurrence of the text defined by the
    currently marked block. The block must be all on one line,
    and no longer than 50 characters. If a block is not marked,
    CTRL+KJ (mark expression) is performed for you to
    automatically search for the expression at the cursor
    position.  

    A typical use of the function is CTRL+KJ, CTRL+QJ: Mark the
    expression at the cursor and then search for the next
    occurrence.  

CTRL+QK

    Moves the cursor to the end of the marked block. If
    necessary, the window containing the block is activated.  

CTRL+QL

    Converts the character under the cursor to lower case. 

CTRL+QM

    Converts the current line to upper case, then moves the
    cursor down one line. 

CTRL+QN

    Converts the current line to lower case, then moves the
    cursor down one line. 

CTRL+QO

    Toggles the cursor position between the set of bookmarks most
    recently used. If necessary, the window containing the
    bookmark is activated.  

CTRL+QP

    Moves the cursor to the Q bookmark (Quickmark). If necessary,
    the window containing the bookmark is activated. 

CTRL+QQ

    Sets the Q bookmark (Quickmark). You can jump to this
    position at any time by pressing CTRL+QP. 

CTRL+QR

    Moves the cursor to the beginning of the current file. 

CTRL+QS

    Moves the cursor to the beginning of the current line. 

CTRL+QU

    Converts the character under the cursor to upper case. 

CTRL+QY

    Deletes the right portion of the current line, from the
    cursor to the end. 

CTRL+Q 1

    Moves the cursor to bookmark 1. See CTRL+K1.

CTRL+Q 2

    Moves the cursor to bookmark 2. See CTRL+K2.

CTRL+Q 3

    Moves the cursor to bookmark 3. See CTRL+K3.

CTRL+Q 4

    Moves the cursor to bookmark 4. See CTRL+K4.

-----------------------------------------------------------------
    Additional Keystroke Commands
-----------------------------------------------------------------

ESC

    Stops macro recording, when the editor is idle and you can
    enter text into the file. 

ALT_#

    ALT_1 through ALT_8 (across the top of the keyboard) moves
    windows 1..8 to the front.  

UP ARROW

    Moves the cursor up one line. 

DOWN ARROW

    Moves the cursor down one line. 

LEFT ARROW

    Moves the cursor left one character. 

RIGHT ARROW

    Moves the cursor right one character. 

HOME

    Moves the cursor to the beginning of the line. 

END

    Moves the cursor to the end of the line. 

PGUP

    Moves the cursor to the previous screen. 

PGDN

    Moves the cursor to the next screen. 

CTRL+HOME

    Moves the cursor to the beginning of the file. 

CTRL+END

    Moves the cursor to the end of the file. 

CTRL+LEFT ARROW

    Moves the cursor to the previous word.  

CTRL+RIGHT ARROW

    Moves the cursor to the next word.  

INS

    Toggles Insert/Overstrike mode. 

DEL

    Deletes the character under the cursor. 

SHIFT+ARROWS/HOME/END/PGUP/PGDN

    Performs word-processor style text marking. Text is marked as
    you move the cursor while holding down the SHIFT key. 

SHIFT+DEL

    Cuts the marked text to the scrap file. 

SHIFT+INS

    Pastes the scrap file into the current file at the cursor
    position. 

SHIFT++ (the plus key on the number pad)

    Copies the marked text to the scrap file. 

SHIFT+- (the minus key on the number pad)

    Appends the marked text to the scrap file. 

    NOTE:

    The scrap file, ZSCRAP.TXT, is not treated in any special way
    by the program other than automatically supplying the file
    open/write/close code a filename. When the file is saved (via
    a copy/append/cut operation) it gets the same double-backup
    treatment as files you are editing. This allows you to
    recover scrap text from either the PRIMARY or SECONDARY
    backup file when desired. 

    Also, the file is not cached in RAM. This allows you to share
    data between multiple instances of the program running under 
    a multitasker. And, the performance of the SHIFT+DEL "cut to 
    scrap" function is greatly enhanced when you have a disk cache 
    installed that is caching disk writes.  

    CAUTION: 

    The SHIFT+DEL "cut to scrap" will cut a block to the scrap
    file when marked blocks are not visible on the screen.  

CTRL+SHIFT+A through CTRL+SHIFT+Z

    Inserts that ASCII character code into the file.  

-----------------------------------------------------------------
    How Backup Files are Generated
-----------------------------------------------------------------

    Zedit uses a double-backup system when files are saved. The
    first time a file is saved, a PRIMARY backup file is
    generated with the file's extension backfilled with a tilde
    (~) character. Subsequent saves generate a SECONDARY backup
    file with the file's extension backfilled with an underbar
    (_) character.  

    The SECONDARY backup always contains the version of the file
    immediately before it was last saved. The PRIMARY backup
    always contains the original file. When you know that
    modified files are in a state you want to keep, delete the
    PRIMARY backup files using XTreeGold or XTreeNet.  

    This double-backup can save countless hours under various
    editing conditions, especially after mass editing sessions
    which last for more than a day, or when multiple files are
    saved multiple times. The method also keeps unique backups
    when files in the same directory have the same name but
    different extensions (for example, FOO.C and FOO.H).  

    ORIGINAL    PRIMARY     SECONDARY
    FILENAME    BACKUP      BACKUP

    FOO         FOO.~~~     FOO.___
    FOO.A       FOO.A~~     FOO.A__
    FOO.C       FOO.C~~     FOO.C__
    FOO.1       FOO.1~~     FOO.1__
    FOO.AB      FOO.AB~     FOO.AB_
    FOO.CD      FOO.CD~     FOO.CD_
    FOO.12      FOO.12~     FOO.12_
    FOO.ABC     FOO.AB~     FOO.AB_
    FOO.DEF     FOO.DE~     FOO.DE_
    FOO.123     FOO.12~     FOO.12_

    FOO.AB1     FOO.AB~     FOO.AB_
    FOO.AB2     FOO.AB~     FOO.AB_

    The example FOO.AB1 and FOO.AB2 shows where the backfill
    method falls short. Both files will have the same backup
    names. This, however, is a rare occurrence with text filenames. 

-----------------------------------------------------------------
    End of Line and End of File Characters
-----------------------------------------------------------------

    Zedit reads files with any known combination of line
    termination characters as follows: 

    <cr>           one line
    <lf>           one line
    <cr><lf>       one line
    NULL           one line
    <cr><cr>       two lines
    <cr><cr><lf>   two lines
    <lf><lf>       two lines
    <cr><lf><lf>   two lines

    When the last byte of a file is an <eof> character, that
    character is discarded. <eof> characters found in the middle
    of the file are kept.  

-----------------------------------------------------------------
    Inserting Control Codes and Graphics into a File
-----------------------------------------------------------------

    Zedit allows all of the PC8 character set to be visibly
    inserted into a file with four exceptions: 

    CHR( 0 )  null values are ignored

    CHR( 9 )  tabs are treated as tab stops

    CHR( 10 ) line feed (CTRL+J or CTRL+ENTER) ends a line

    CHR( 13 ) carriage return (CTRL+M or ENTER) ends a line

    Any other 8 bit value can be inserted into a file by holding
    down the ALT key while typing the decimal value for the value
    on the numeric keypad. (This is a standard feature of the PC
    BIOS). 

    Also, the character codes between chr(1) and chr(31) can be
    entered by pressing CTRL+SHIFT+'A..Z' (and a few other keys).  

    EXAMPLES:

    To enter the paragraph symbol (): 

    1. Hold down the ALT key
    2. On the numeric key pad type "20"
    3. Release the ALT key
         -or-
    1. Hold down both the CTRL and ALT keys
    2. Press the T key (CTRL+SHIFT+T)

    To enter the check mark symbol (ϋ): 

    1. Hold down the ALT key
    2. On the numeric key pad type "251"
    3. Release the ALT key

TIP: 

    The Zedit Goodies_Font command displays the complete
    PC8 character set for reference. 

NOTES:

    If your keyboard has more that one ALT, CTRL or SHIFT key,
    only one of each needs to be pressed. 

    Be aware that entering "non-ASCII" characters into files can
    cause problems in other programs; the characters may have
    special meanings to other programs and produce unpredictable
    results.  

    The same caution applies to printers. In almost all cases,
    entering an ESC code (chr(27)) into a file at random will
    stop the printer (and therefore the resulting printing of the
    file). You can, however, use the ESC code (followed by other
    printer-specific codes) to initialize the printer and change
    fonts. 

-----------------------------------------------------------------
    The Color Editor
-----------------------------------------------------------------

    The default Zedit colors are set for a VGA monitor. If you
    are using an EGA or CGA monitor, the colors will need
    resetting. When Zedit initializes with a black and white VGA
    monitor installed, it re-programs the gray colors and makes
    the bright magenta a bright gray (allowing you to use three
    shades of gray (plus white) instead of two).  

    Zedit has 15 file window color sets; 13 for color and one
    each for monochrome and paper-white displays. The monochrome
    set (/m command line switch) is indicated as "Color set: 14"
    in the color editor display and the paper white set (/w
    command line switch) is "Color set: 15."  

    When colors are in use, color sets are pre-assigned to the
    file windows. To see all of the color sets, open up 13
    (small) files and select Window_Tile. To change a color set,
    activate a window and select Goodies_Colors. To save
    modified colors, select Options_Save configuration.  

    If you want all of the windows to have the same colors, use
    the Copy and Paste keyboard functions to assign the colors to
    all 13 sets.  

MOUSE TECHNIQUES

LEFT BUTTON 

    Select a color to edit from the "picture" of the program
    screen.  

    -or- 

    Click the left color stripe to choose the character color for
    the selected picture element. 

    -or- 

    Click the right color stripe to choose the background color
    for the selected picture element.  

RIGHT BUTTON 

    Click anywhere to accept the changes. 

    The color editor only works with the mouse, with a few
    exceptions, as shown in this list. 

KEYS

C

    Copies the current color set to a temp buffer. 

P

    Pastes the copied colors. 

UP ARROW

    Changes the current character color (-). 

DOWN ARROW

    Changes the current character color (+).  

LEFT ARROW

    Changes the current background color (-). 

RIGHT ARROW

    Changes the current background color (+). 

Number pad - (Minus key)

    Cycles backwards through the editable colors. 

Number pad + (Plus key)

    Cycles forward through the editable colors 

PGUP

    Cycles backwards through the editable colors. 

PGDN

    Cycles forward through the editable colors. 

SPACE

    Cycles forward through the editable colors. 

ENTER

    Accepts any changes. 

ESC

    Cancels any changes to the current color set. 

HOME

    Accepts any changes, moves to the previous window color set. 

END

    Accepts any changes, moves to the next window color set.  

NOTES:

    The /M command line switch must be used to edit color set 14
    (the monochrome colors) if you do not have a monochrome
    monitor. 

    The /W command line switch must be used to edit color set 15
    (the paper white colors).

    And, be aware that these two color sets share the same colors
    for the pull-down menus, dialog boxes, dialog buttons, and
    screen background. These are set up to work correctly on a
    monochrome adapter and should not be changed if you will be
    using the same configuration on multiple video systems.  

-----------------------------------------------------------------
    Zedit Files
-----------------------------------------------------------------

    The following files are Zedit config and macro files. The HST
    and ZMAC files automatically change as you use the program.  

        ZEXEC.HST   DOS shell command input history
        ZFILE.HST   file open input history
        ZMISC.HST   search and miscellaneous input history
        ZLIST.HST   list of most recently edited files
        ZMAC1.CFG   primary macro set
        ZMAC2.CFG   alternate macro set w/PC characters
        ZTABS.INI   default tab definitions

    Also note that ZX.EXE is a non-overlaid version of the
    editor, but is otherwise identical. It is included in case
    the overlay manager's use of memory or method of opening
    files conflicts with your system.  

    However, Z.EXE is the preferred executable, since it makes
    better use of memory resources and leaves more memory for
    editing files.  

NOTES:

    If Z.CFG, the macro files, and the history files have been
    copied to a directory other than the directory that Z.EXE was
    copied to, you must set the DOS environment variable ZDIR= to
    point to the directory containing those files.  

    Zedit searches directories for Z.CFG, Zxxxx.HST and the macro
    files in the following order: 

    o   ZDIR= environment variable. 

    o   The same directory that Z.EXE was executed from. 

    o   The same directory that Z.EXE was executed from with
        "\CFG" added to that path.  

    Therefore, if you have a directory called C:\BIN in your
    path, and you do not want to create or modify any batch files
    to install Zedit, then Z.EXE (and/or ZX.EXE) can be copied to
    C:\BIN and the config files and macro files can be copied to
    either C:\BIN or C:\BIN\CFG.  

-----------------------------------------------------------------
    DOS 5, Z.EXE, ZX.EXE and Memory Usage
-----------------------------------------------------------------

    The amount of memory available for editing files is displayed
    in the upper right corner of the screen next to the date.  

    Use the CTRL+END command and look at the "Byte nnn" field on
    the status line to see the size of the current file.  

Z.EXE

    When DOS upper memory UMB support is available, the Z.EXE
    code cache, history buffers, and screen buffers get placed in
    upper memory allowing the maximum available memory for
    editing files and executing programs from within Zedit.  

ZX.EXE

    ZX doesn't have a code cache and runs about 10% faster than Z.  

    ZX should be used in place of Z under the following
    conditions: 

    o   Z.EXE is slow on your machine.

    o   Z.EXE causes problems with a TSR or networking software.

-----------------------------------------------------------------
     EMS and Running Other Programs from within Zedit
-----------------------------------------------------------------

FREEING UP RAM TO EXEC OTHER PROGRAMS

    When you invoke the File_COMMAND.COM function (CTRL+OD shell
    out to DOS), Zedit needs to free up RAM by storing the
    buffers containing the files you are editing in either EMS or
    a disk file. The required storage space is dependent upon the
    size of the files and can be anywhere from 50K to 600K bytes.

WITH EMS

    If your system has enough available EMS to hold the file
    buffers, then Zedit will perform exec functions as fast as 
    COMMAND.COM can be re-invoked. See your DOS reference manual
    for instructions on setting up an EMS emulator. 

WITHOUT EMS

    If your system does NOT have enough EMS to hold the file
    buffers, then Zedit will store the file buffers in a
    temporary file in the same directory that holds your config
    and macro files.  

    If you want to place the temp file on a RAM disk, then set
    ZTEMP= in your environment space. Be aware, however, that
    the RAM disk may need up to 600K bytes of free space.  

INVOKING COMMAND.COM

    If you simply want to get to the DOS prompt, enter a blank
    line at the "Enter DOS command" prompt.  

THE DOS SCREEN

    Zedit takes a snap shot of the DOS screen when it starts up
    and keeps it updated every time you execute a DOS command
    from within the editor.  

    The contents of the DOS screen can be viewed at any time the
    editor is idle (and not in a dialog or sub program such as
    the color editor) by holding down both the CTRL and ALT keys
    simultaneously or clicking and holding on the status bar.  

