#  1. {Graphical User Interface}

   SPF/Pro differs from previous versions in a number of ways.  One of the
   more obvious is the  Graphical User Interface (GUI). The use of modern
   graphical user interface techniques enhances the SPF/Pro experience and
   contributes to increased user productivity.

   The basic display mechanism of the GUI is the Window. All functions of
   SPF/Pro are rendered in native mode windows of the operating system
   platform in use.

   The basic method of interaction with windows is the mouse. Keyboard
   equivalents are provided for all mouse operations.  See page     for
   further details on mouse operations.

   SPF/Pro is a Multiple Document Interface application.  In this
   architecture, you have a parent window and one or more child windows.  The
   child windows are displayed within the parent client space.

   Child windows within the parent client space may be maximized, normal, or
   minimized:

   *  In maximized state, the child window fully occupies the parent client
      space and the child title bar overlays the parent title bar.

      When using low resolution display monitors (e.g. VGA on notebook PC),
      this mode provides the greatest number of display lines and columns.

   *  In normal state, the child window may reside anywhere within the parent
      client space and be of any size equal or less than the parent.  In this
      case, the child window has its own title bar.

   *  In minimized state, the child window is reduced to an icon and
      positioned in the lower left corner of the parent client space.

   The default display mode for child windows is NORMAL.

   All windows are comprised of the following components:

   Window Frame

      The Window Frame is the outer border of the window.  The functional
      value of the frame is that it can be "grabbed" with the mouse and
      "stretched" or "shrunk" to alter the window size.  To resize the
      window:

      -  position the mouse cursor over any part of the window frame

      -  press and hold down the left mouse button

      -  move the mouse to achieve the desired size

      -  let the left mouse button up to finalize the new window size

      -  "pulling" or "pushing" on the left or right frame alters the width

      -  "pulling" or "pushing" on the top or bottom frame alters the depth

      -  "pulling" or "pushing" on any corner alters the width and depth
         simultaneously

   Task Control Button

      In the upper left corner of the window, there is a button which
      controls the SPF task. You can use this button to:

      -  Close the task and exit.

         Note: If you close from the main window, all SPF tasks are
         terminated.

      -  Restore, Move, Size, Minimize, and Maximize. These functions are
         accessible through alternate methods so we won't discuss them here.

   Title Bar

      At the top of the window is the Title Bar. It provides information
      about the task context.  For example, if you are in Edit, the title bar
      displays the Task ID (an integer number starting with one) and the name
      of the file being edited.

      In addition to providing information, the Title Bar is used to:

      -  Move the window:

         -- Position the mouse cursor over any portion of the Title Bar.

         -- Press and hold down the left mouse button while moving the mouse
            to move the window.

         -- Let the left mouse button up to finalize the new window position.

      -  Maximize the window

         -- double click on the title bar with the left mouse button.

   Min/Max Buttons

      On the upper right corner of the window:

      -  The MINIMIZE Button "shrinks" the window to the size of the SPF/Pro
         icon. You can use this button to keep SPF/Pro on the desktop for
         instant recall.  To recall SPF/Pro click on the "shrunken" icon.

      -  The MAXIMIZE Button increases the size of the window to occupy the
         full available space. Use this button when you want to display the
         maximum number of rows and columns of text possible.

         After maximizing, the MAXIMIZE button takes on a new form; this form
         is called NORMAL.  To return to normal window size from maximized
         size, click on the NORMAL (formerly MAX) button.

   Client Space

      The client space is where SPF panels are displayed. These panels
      contain text and graphical elements.

      -  Text fields defined in your panel definition are rendered as text.

      -  Input fields defined in your panel definition are rendered as
         concave three dimensional areas.

      -  Attention fields defined in your panel definition are rendered as
         three dimensional buttons. Text content of attention fields is
         rendered as the button legend.

   Scroll Bars

      To view data outside the viewable frame, scroll bars are provided:

      -  In tables and select lists, vertical scroll bars are provided.

      -  In Edit and Browse, both vertical and horizontal scroll bars are
         provided.

      -  In all other panel types, no scroll bars are provided.

      Note: Scroll bars may be enabled/disabled via Option 0.1.

   PFSHOW Bar

      PF keys are displayed at the bottom or top of the parent frame.  The
      number, display position, and starting key may be set via Option 0.1 or
      the PFSHOW primary command.

   Status Bar

      The status bar provides current information about the operating
      environment:

      -  Whether the system is busy.

      -  Whether you are in "macro recording" mode.

      -  The day of week, date, and time.

      -  The state of the SHIFT key.

      -  The state of the CAPS LOCK key.

      -  The state of the INSERT key.

      -  In tables, the current table row and column.

      -  In edit, the current file line and data column.

   Popup Menus

      Popup menus are available via right mouse button in various contexts
      during normal SPF/Pro operation. These menus provide a point and shoot
      activation scheme for frequently used commands.

      -  In file select lists, verbs that apply to the current selection

      -  In edit line command field, line commands that apply to the current
         selection

      -  In edit text area, primary commands that apply to the current
         selection

      -  In any other panel type, useful general commands

      Note:  You can add or modify popup menus on a per panel basis or
      reconfigure dynamically within a panel.

#  1.1 {Menu Bar}

   The menu bar provides native GUI operational mode.  You can perform many
   mainline SPF tasks directly off the menu without using SPF dialogs. The
   following menu commands are supported:

   FILE

      Perform file operations:

      New

         Open a new file in Edit.  The default name for new file is "*.*".
         Supply the desired name for your new file in the "File name" field
         of the dialog.  If you want a different directory, use the "Look in"
         navigator of the dialog to set the desired directory.

      Open for Edit

         Open an existing file in Edit.  The open file dialog is initialized
         with the name of the last file edited. If you want to edit a
         different file, supply the name in the "File name" field of the
         dialog.  If you want a different directory, use the "Look in"
         navigator of the dialog to set the desired directory.

      Open for Browse

         Open an existing file in Browse.  The open file dialog is
         initialized with the name of the last file Browsed or Edited.  If
         you want to edit a different file, supply the name in the "File
         name" field of the dialog.  If you want a different directory, use
         the "Look in" navigator of the dialog to set the desired directory.

      Save

         Saves the current edit file and continues in edit. Same as primary
         command SAVE.

      Save as

         Brings up the Windows common open dialog. Specify the new "File
         name" and press "SAVE". This creates the new file and a new edit
         session to edit it.

      End

         End the edit session and return to the previous panel.  If the file
         was modified, it is automatically saved.  Same as END primary
         command.

      End without Save

         Exit the edit session without saving the file. Same as CANCEL
         primary command.

      Print Setup

         This item invokes the Windows common printer setup dialog.  This
         dialog allows you to set a wide variety of printer properties. When
         you commit the settings via OK, the setup values are bound to the
         current SPF logical printer.

      Print Selection

         Prints the current selection. Same as SPRINT primary command.

      Print All

         Prints the entire file. Same as PRINT ALL primary command.

      MRU Edit List

         This is a list of the last 5 files Edited.  You can click on any one
         of them with the left mouse button to launch an Edit on the file.

      Exit

         Completely terminate SPF. Same as "=x" primary command.

   EDIT

      Perform edit operations:

      Undo

         Undo the last edit operation. Same as UNDO primary command.

      Redo

         Redo the last Undo operation. Same as REDO primary command.

      Cut

         Copy the current selection to the clipboard, then delete it from the
         edit file.  Same as SCUT primary command.

      Copy

         Copy the current selection to the clipboard. Same as SCOPY primary
         command.

      Paste

         Paste the current clipboard contents into the current edit file at
         the cursor. Same as SPASTE primary command.

      Delete

         Delete the current selection from the edit file. Same as SDELETE
         primary command.

      Find

         Find a string in the current edit file. Same as FIND primary
         command.

      Find next

         Repeat the last Find command. Same as RFIND primary command.

      Change

         Change one string to another in the current edit file. Same as
         CHANGE primary command.

      Change next

         Repeat the last change command. Same as RCHANGE primary command.

   WINDOW

      Organize windows and tasks:

      FSplit

         Start a new SPF task.

         -- In maximized state, the new task replaces the current task
            display.

         -- In normal state, the new task is created using the size of the
            current task and is displayed in cascaded stair-step fashion.

      Swap

         If more than one SPF task is active, swap to the next SPF task in
         the task ring.  If only one SPF task is active, process the command
         as an FSplit.

      Tile

         If more than one SPF task is active, arrange the SPF task windows
         side by side in a non-overlapped manner sharing the parent display
         space equally.

      Cascade

         If more than one SPF task is active, arrange the SPF task windows in
         an overlapped stair-step fashion in the parent display space.

      MRU Task List

         This is a list of all active SPF tasks.  You can click on any one of
         them with the left mouse button to activate it.

   HELP

      Access SPF/Pro online HELP:

      Help...

         Invoke the SPF Help dialog. This dialog lets you select help by
         topic and also allows dynamic searches.

      About

         Display information about SPF/Pro.

#  2. {Quickstart}

   While it is helpful, you do not need prior knowledge of IBM's mainframe
   based ISPF to use SPF/Pro. Reading this manual from front to back will
   give you an in depth understanding of all the facilities available to you
   but will also consume a lot of your valuable time.  A more effective
   approach for the uninitiated is to acquire a minimum working knowledge in
   a short time that will enable you to perform simple file editing tasks.
   This chapter will get you up and running in under one hour. As you use
   SPF/Pro in this minimal way you can explore the full range of functional
   capabilities described in the remainder of this manual at your leisure.

#  2.1 {Edit a New Empty File}

   You can now execute SPF/Pro to edit a file. For this exercise let's edit
   file TEST.TXT:

   *  Click on the SPF program group icon and/or the SPF program item icon to
      launch SPF/Pro.

      You are now in the Primary Option Panel.

   *  Type 2 in the "Option" field.

   *  Press [SPF-Enter] (the right [CTRL] key).

      You are now in the Edit Entry Panel.

   *  Use the mouse or the [TAB] key to position to the "System File
      Specification" field.

   *  Type TEST.TXT in the "System File Specification" field.

   *  Press [SPF-Enter].

   The top line of the client space displays the SPF Title Line. The Title
   Line is the first line of the body of each SPF Dialog. In the Edit Dialog,
   the name of the file you are editing is displayed on the left.  On the
   right are the starting and ending columns of the displayed portion of the
   file's records (usually 1 and 72). If you have records longer than 72
   characters, the characters from column 73 to the end of each record are
   not presently visible; we will talk about how to reveal them in another
   section.

   The second line is the Command Line. The first input field on the Command
   Line is the Primary Command Field where edit primary commands are entered.
   The second input field is the Scroll Field where scroll amounts are
   entered.  We will not modify the scroll field.

   The third and subsequent lines to the bottom of the client space are data
   lines.  The first six columns of each data line are the Line Command Field
   where edit line commands are entered.  The Line Command Field normally
   displays a six digit line number.  Column 7 is a boundary between the Line
   Command Field and the data area and is always blank.  Columns 8 through 79
   display columns 1 through 72 of each data record.

   The first and last data lines are not part of your file.  They are created
   by the editor to indicate that you are at the top or bottom of the file
   and are called the Top of Data and Bottom of Data lines respectively.

   You are currently editing new empty file TEST.TXT.  The cursor is setting
   in the Primary Command Field.  The top display line shows "TOP OF DATA".

   The bottom display line shows "BOTTOM OF DATA".  The intermediate display
   lines are empty.  Empty lines in SPF/Pro are called Null Lines and are
   indicated by six apostrophes in the Line Command Field.

   *  Press the [ENTER] key to get to the top line (TOP OF DATA).

   *  Press the [ENTER] key a second time to get to the first data line.

   *  Press the [TAB] key to get to the first data column (8).

   *  Type "This is a line of text."

   *  Press the [SPF-Enter] key to commit the text to the file.

      All the empty data lines were "closed up" when you pressed [SPF-Enter].

   *  Press [SHIFT][TAB] twice to position to the start of the display line
      (the Line Command Field of line 000001).

   *  Type "r99" in the Line Command Field.

   *  Press the [SPF-Enter] key to "replicate the current line 99 times".

      The file now contains 100 lines of "This is a line of text.".  We will
      use this sample file for the remaining exercises.

#  2.2 {Moving Around the Screen}

   The MOUSE can be used to position the cursor anywhere on the screen.
   Simply move the mouse pointer to the desired location and click the left
   mouse button one time. More advanced mouse capabilities and techniques are
   described elsewhere.

   You can also use the cursor keys to move left, right, up and down by one
   position. When you reach the edge of the display in any direction, the
   cursor leaves that edge and reappears at the opposite edge.

   The [ENTER] key moves you down one line and to the left edge of the screen
   in a single step.

   The [TAB] key moves you from screen column 1 (line command area) to screen
   column 8 (data area) in a single step.

#  2.3 {Executing Primary Commands}

   This section explains how to enter and execute primary commands which will
   be discussed in later sections.

   Move the mouse pointer on the Primary Command Field and click the left
   mouse button one time, or press the [HOME] key. Your are now in the
   Primary Command Field.

   *  Enter the primary command in the Primary Command Field.

   *  To execute:

      -  If you have an enhanced keyboard (101 keys), press the right [CTRL]
         key.  Hereafter this key is represented as [SPF-Enter].

      -  If you have a standard keyboard, press the ENTER key on the numeric
         keypad.  Hereafter this key is represented as [SPF-Enter].

      -  On any other keyboard type press [CTRL][ENTER].  Hereafter this key
         sequence is represented as [SPF-Enter].

#  2.4 {Executing Line Commands}

   This section explains how to enter and execute line commands which will be
   discussed in later sections.

   *  Use the mouse or the [ENTER] key and/or cursor keys to move the cursor
      to the Line Command Field of the line you want to operate on.

   *  Enter the line command in the Line Command Field.

   *  To execute press [SPF-Enter].

#  2.5 {Scrolling}

   To move up or down one full frame in the file use the [PG-UP] and [PG-DN]
   keys respectively.

   Function keys [F7] and [F8] are pre-programmed with the UP and DOWN
   primary commands respectively.

   To go to the top of the file in a single step enter and execute primary
   command:

   top

   To go to the bottom of the file in a single step enter and execute primary
   command:

   bot

   To reveal text not visible on the right enter and execute primary command:

   right

   To reveal text not visible on the left enter and execute primary command:

   left

   Function keys [F10] and [F11] are pre-programmed with the LEFT and RIGHT
   primary commands respectively.

#  2.6 {Summary 1}

   You now know how to:

   *  Edit a file.

   *  Travel around the screen using the mouse or cursor keys.

   *  Enter and execute primary and line commands.

   *  Scroll the file vertically using the [PG-UP] and [PG-DN] keys.

   *  Go to the top or bottom of the file in a single step using the "top"
      and "bot" primary commands.

   *  Go to the left or right edge of the data using the "left" and "right"
      primary commands.

#  2.7 {Overtyping Text in Existing Line}

   The default text entry mode is overtype. In overtype mode the cursor is
   shaped like a box. Simply move the cursor to the data portion of the
   record you want to change and type over the text you want replaced.

#  2.8 {Inserting Text in Existing Line}

   To insert text you must first put the editor into insert mode by pressing
   the [INS] key. In insert mode the cursor is a thin vertical line.  Now
   move the cursor to the data portion of the record you want to change and
   type the text you want inserted.

#  2.9 {Insert New Lines in Existing File}

   To insert a new line:

   *  Type "i" line command in the line above where you want a new line
      inserted.

   *  Press [SPF-Enter].

   *  A new line is inserted immediately below the "i" line.  The cursor is
      placed in the first data column.

   *  Type the desired data in the new line.

   If you would like more new lines immediately following the first:

   *  After entering text on the first new line and without any other
      intervening keystrokes, press [SPF-Enter].

   *  Another new line is inserted and the cursor is positioned at the first
      data column.

   *  Continue entering text. Repeat this process as required.

   After all data is entered, press [SPF-Enter] one more time to eliminate
   unused empty lines.

#  2.10 {Deleting Lines in Existing File}

   To delete a single line:

   *  Type "d" line command in the line you want deleted.

   *  Press [SPF-Enter].

   *  The line is deleted.

   To delete multiple lines:

   *  Type "dd" line command in the first line of the block of lines you want
      deleted.

   *  Type "dd" line command in the last line of the block of lines you want
      deleted.

   *  Press [SPF-Enter].

   *  The block of lines between the first "dd" and last "dd" inclusive is
      deleted.

#  2.11 {Summary 2}

   In the last information set you learned how to:

   *  Overtype existing lines.

   *  Insert text in existing lines.

   *  Insert new lines.

   *  Enter text in an empty file.

   *  Delete existing lines.

#  2.12 {Finding Text}

   If you don't want to manually search an entire file looking for a
   particular record, you can use the FIND primary command to get there in a
   single step.  For example,

   find line

   finds the first occurrence of the string "line" in upper, lower, or mixed
   case.

   If you want to find the next occurence of the same string press [F5].

#  2.13 {Changing Text}

   You can change the first occurrence of a string to another value with the
   CHANGE primary command. For example,

   change line bit

   changes the first occurrence of string "line" to "bit".

   To change the next occurence of the same string press [F6].

   change this bit all

   changes all occurrences of string "this" to "bit".

#  2.14 {Summary 3}

   In the last information set you learned how to:

   *  Find the first occurence of a string of text.

   *  Find the next occurence of the same string.

   *  Change the first occurrence of a string to another value.

   *  Change the next occurence of the same string.

   *  Change all occurrences of a string to another value.

#  2.15 {Copy Lines}

   To copy a single line:

   *  Type "c" line command in line to be copied.

   *  Type "a" line command in line preceding desired destination.

   *  Press [SPF-Enter]. Line with "c" is copied after line with "a".

   To copy multiple lines:

   *  Type "cc" line command in first line of block of lines to be copied.

   *  Type "cc" line command in last line of block of lines to be copied.

   *  Type "a" line command in line preceding desired destination.

   *  Press [SPF-Enter]. Block of lines between first line with "cc" and last
      line with "cc" inclusive is copied after line with "a".

#  2.16 {Move Lines}

   To move a single line:

   *  Type "m" line command in line to be moved.

   *  Type "a" line command in line preceding desired destination.

   *  Press [SPF-Enter]. Line with "m" is moved after line with "a".

   To move multiple lines:

   *  Type "mm" line command in first line of block of lines to be moved.

   *  Type "mm" line command in last line of block of lines to be moved.

   *  Type "a" line command in line preceding desired destination.

   *  Press [SPF-Enter]. Block of lines between first line with "mm" and last
      line with "mm" inclusive is moved after line with "a".

#  2.17 {Summary 4}

   In the last information set you learned how to:

   *  Copy a single line from one location in the file to any other location.

   *  Copy a block of lines from one location in the file to any other
      location.

   *  Move a single line from one location in the file to any other location.

   *  Move a block of lines from one location in the file to any other
      location.

#  2.18 {Saving Modified File}

   To save the file in its modified form, enter and execute primary command:

   save

   After the file is saved, editing can resume.

#  2.19 {Exit With Save}

   To save the file in its modified form and exit SPF/Pro, enter and execute
   primary command:

   =x

#  2.20 {Exit Without Save}

   To exit SPF/Pro without saving the file, enter and execute primary
   command:

   cancel

   At this point a panel is presented with a number of options; enter and
   execute primary command:

   =x

#  2.21 {Summary 5}

   In the last information set you learned how to:

   *  Save a modified file and continue editing.

   *  Exit a modified file saving all changes.

   *  Exit a modified file without saving changes.

#  2.22 {Epilogue}

   This chapter illustrates a minute portion of the functional capability of
   the Edit component of SPF/Pro.  After you become familiar with what you
   have learned here, examine the remainder of the book at your leisure.

   This chapter describes only the most orthodox methods. Frequently there
   are shortcuts to doing many of the operations discussed which you will
   learn over time.


#  3. {Introduction}

#  3.1 {Feature Summary}

   SPF/Pro is a complete integrated applications development environment for
   MVS legacy applications programs.  It is typically used for editing source
   code, invoking compilers, linkers, and debuggers, in a variety of
   programming languages, such as COBOL, FORTRAN, and C++. Of course SPF/Pro
   can be used with other programming languages and source files.

   SPF/Pro has many features designed to make managing and authoring source
   code easier, such as:

   *  Custom Dialogs interfacing to:

      -  Micro Focus

      -  XDB

   *  Fully graphical user interface

   *  PC based Partitioned Dataset support

   *  FIND/CHANGE in select lists

   *  FIND/CHANGE string highlighting

   *  MODEL support

   *  SUPERC file compare

   *  Undo/Redo

   *  Program source colorization

   *  Horizontal or Vertical screen SPLIT

   *  Multiple full screen SPLITs

   *  Multi-way select list file management

   *  Multiple-file search and replace

   *  Run Time Macro support via REXX

   *  Unlimited file size

   *  Programmable keyboard and keyboard macros

   *  Multiple character set and file format support

   *  Several tabbing modes, several line numbering modes

   *  Full integration with popular COBOL workbenches

   *  Extended, expanded, and virtual memory support

   *  CUT/PASTE via clipboard

#  3.2 {SPF/Pro Files}

   SPF/Pro uses several files during its processing:

   SPFPRO.EXE  (in SPFPRO)

      This is the main executable file for Windows-95, and Windows-NT.

   SPFPC50.GBL  (in SPFPRO\PROFILES)

      If not already present, this file is created at installation time.  It
      is updated whenever you change global profile variables. SPFPC50.GBL
      can load from:

      -  the default location

      -  the location specified in environment variable SPF5PATH

      -  the location specified in command option /G

         Note: If SPF/Pro can't find SPFPC50.GBL, it creates it with default
         parameters.

   *.PRF  (in SPFPRO\PROFILES)

      These files are not installation files.  They are created as you edit
      files, to record information about file formats.  Each .PRF file
      contains file format information which applies to all files with a
      particular type. For example, the file profile for program source file
      EDITCMD.CPP would be CPP.PRF.

      The *.PRF files are found and loaded in the same manner as SPFPC50.GBL.

   *.SPF  (in SPFPRO\REXX and SPFPRO\REXX\USER)

      These files are SPF/Pro edit macros which use ISREDIT macro commands.
      Edit macros included on the installation diskette are documented in
      README.MAC.  Edit macros you create must be located in in one of the
      following:

      -  SPFPRO\REXX

      -  SPFPRO\REXX\USER

      -  The directory specified in the MACRO SEARCH PATH field of the 0.8
         OPTIONS Menu. If multiple directories are specified, they must be
         separated by semicolons.

      -  The current directory.

      For more information on sample macros, see README.MAC in directory
      SPFPRO.

      Note:  Edit macros that have been precompiled, have the file type
      ".SP2" and reside in the same directories.

   *.ISP  (in SPFPRO\REXX and SPFPRO\REXX\USER)

      Dialog procedures are developed using ISPEXEC dialog services.  They
      follow the same rules for directory residence as the edit macro files.

      Note:  Dialog procedures that have been precompiled, have the file type
      ".IS2" and reside in the same directories.

   *.CLR  (in SPFPRO\PROFILES)

      These are program source colorization definition files.

   SPFCOLR.TBF  (in SPFPRO\PROFILES)

      When you create a named color setup using Option 0.4 it is stored in
      this file.

   SPFMRU.TBF  (in SPFPRO\PROFILES)

      When you edit files, the Most Recent Edits list is stored in this file
      and accessed via Panel 3.H.

   SPFUSER.TBF  (in SPFPRO\PROFILES)

      When you create a named user program using Option 4 it is stored in
      this file.

   SPFLIST.TBF  (in SPFPRO\PROFILES)

      When you save a select list via primary command SAVELIST, the name of
      the list is saved in this file.

   list-name.TBF  (in SPFPRO\PROFILES)

      When you save a select list via primary command SAVELIST, the list is
      saved in a file with the specified name. For example, if you "SAVELIST
      PROJECT1", the list is saved in file PROJECT1.TBF.

   *.TBF  (in SPFPRO\PROFILES)

      Tables created dynamicly with dialog services are kept in files of this
      type.

   *.KEY  (in SPFPRO\PROFILES)

      All named keyboard mappings created via 0.K are kept in files of this
      type.

   *.MAC  (in SPFPRO\PROFILES)

      When you create a named keyboard macro within a named keyboard via 0.M,
      the macro is saved in files of this type.

   *.PDS  (in SPFPRO\PAN)

      Panel definitions are normally stored in Partitioned Datasets.  Access
      to PDS files is through the special REXX API which we provide.

   *.PAN  (in SPFPRO\PAN and SPFPRO\PAN\USER)

      Panel definitions that are in development or frequently modified, are
      stored as individual PC files of this type.

   SPFPRO.MSG  (in SPFPRO\PAN)

      Base message definition file.

   SPFUSER.MSG  (in SPFPRO\PAN)

      User message definition file.

   README.DOC  (in SPFPRO)

      A text file on the distribution diskette which contains documentation
      developed after this document went to print.

   README.WIN  (in SPFPRO)

      Information specific to running SPF/Pro in the Windows environment.

   README.MAC  (in SPFPRO)

      Information specific to *.SPF macros supplied with SPF/Pro.


#  3.3 {Starting an SPF/Pro Session}

   Click on the SPF program group icon and/or the SPF program item.  This
   action loads SPF/Pro and puts you into the Primary Option Panel.

#  3.3.1 {Start-up Parameters}

   You can invoke SPF/Pro via "FILE" menu "RUN" or Command Window, with
   parameters which allow you to bypass the Primary Option Panel and go
   directly to a specific option:

   SPFPRO  [filename]
            [/Bfilename]
            [/E]
            [/Gglobal-profile-path]
            [/Iimacro-name]
            [/Kkeyboard-macro-name]
            [/L(line-number,col-number)]
            [/Pedit-profile-name]
            [/Rfile-name]
            [/Sdialog-function]
            [/T]
            [/n.n]

   The startup parameters are defined below:

   filename

      The name of a file to edit.  If wild-card characters are specified, a
      select list is presented for file selection.

      Note: filename may not be specified if "/B" or "n.n" is specified.

   /B

      The name of a file to browse.  If wild-card characters are specified, a
      select list is presented for file selection.

      Note: /B may not be specified if "filename" or "n.n" is specified.

   /E

      Exit directly to command prompt after edit.

   /G

      Specifies the path where the global profile will be found.  This
      overrides the value set in environment variable SPF5PATH.

   /I

      The name of an initial macro.  Can only be used with a specific
      filename.

   /K

      Specifies the keyboard macro name to execute on entry to SPF/Pro:
      /Kkeyboard-macro-name.

   /L

      Specifies line and column numbers in the following form:
      /L(line-number,col-number).

   /P

      The name of an edit profile.  Can only be used with a specific
      filename.

   /R

      The name of a compiler error message file.  This file is merged as
      NOTES into the edit file.  The compiler messages must be in what is
      generally known as "The Microsoft Format".  Among the compilers that
      support this format are the following:

         Micro Focus COBOL
         CA-Realia-II COBOL
         Borland C++
         Zortech C++
         Microsoft (all languages)

   /S

      The name of a dialog function to be used in place of the primary option
      panel.  The dialog function can take one of the following forms:

         /SPANEL(panel-id)[PARM(parameter-values)]
         /SCMD(REXX-procedure-name)[PARM(parameter-values)]
         /SCTC(internal-function-name)[PARM(parameter-values)]
         /SPGM(external-program-name)[PARM(parameter-values)]

      As an alternative to the /S startup command option you can set
      environment variable SPFSTART with a value identical to that which you
      would specify for /S and you would get the same result.  For example,
      issuing command

      SPFPRO  /SPANEL(MYPRIME)

      and setting

      SET SPFSTART=PANEL(MYPRIME)

      would have the same effect.  If /S is specified on the command line, it
      overrides the SPFSTART environment variable.

   /T

      Activates the profile trace for diagnostic purposes.

   /n[.n]

      The specific id of a panel you want to enter directly.

      Note: n.n may not be specified if "filename" or "/B" is specified.

      Note:  The older form  =n.n is still supported but its use is
      discouraged because if you use it in a command file (.BAT or .CMD) the
      equal sign is stripped off by the batch command processor yielding a
      syntax error.

   A few examples of the startup command follow:

   SPFPRO CONFIG.SYS [ENTER]

   SPFPRO C:\SRC\MAIN.C [ENTER]

   SPFPRO NEXNAME.COB /PDAT [ENTER]

   SPFPRO CKDATE.COB /ICOBINIT [ENTER]

   SPFPRO /BAUTOEXEC.BAT [ENTER]

   SPFPRO /3.4 [ENTER]

#  3.4 {Ending an SPF/Pro Session}

   When you have finished using SPF/Pro and are ready to end your session,
   you can:

   *  Press [F3] (END command) repeatedly, backing up through previous panels
      to the system prompt.

   *  Press [HOME], then type in the exit command, as follows:

      COMMAND ===> =X [SPF-Enter]

   *  Double click with the left mouse button on the close box for the SPF
      task you want to end.

   *  Select the FILE menu EXIT item with the mouse.

#  4. {Using the Mouse}

   This chapter describes how to use the mouse to:

   *  select a menu item

   *  select a PF key

   *  select a list entry

   *  operate on multiple list entries

   *  activate a popup menu

   *  scroll select list

   *  position the cursor

   *  select a group of lines

   *  select a stream of characters

   *  select a block (rectangular area)

   *  extend the selection

   *  perform [SPF-Enter] processing

   *  cancel selection

   *  delete the selection from the file

   *  cut the selection from the file to the clipboard

   *  copy the selection from the file to the clipboard

   *  paste the selection from the clipboard to the file

   *  create/replace an external file from the selection

   *  convert the selection to all uppercase letters

   *  convert the selection to all lowercase letters

   *  print the selection

   *  exclude the selection (applies to lines only)

   *  move the split separator

   *  sort file select list

   Using the mouse is most efficient when the primary commands that relate to
   the mouse are mapped to function keys or control keys. In the following
   discussion, we use function keys to describe how to do various operations
   in conjunction with the mouse. For our examples, the following mapping is
   used:

   [SHIFT][F1] = SCUT
   [SHIFT][F2] = SCOPY
   [SHIFT][F3] = SPASTE
   [SHIFT][F4] = SCREATE
   [SHIFT][F5] = SREPLACE
   [SHIFT][F6] = STOUPPER
   [SHIFT][F7] = STOLOWER
   [SHIFT][F8] = SXCLUDE
   [SHIFT][F9] = SDELETE

   See Keys Option 0.K for a description of how to map the keyboard.  You can
   map the mouse related primary commands in a manner which best suits your
   style.

#  4.1 {Select a Menu Item}

   Any time you are in an SPF/Pro menu, you can select a menu item by
   clicking on it with the left mouse button.

#  4.2 {Select a PF Key}

   Any time the PF keys are visible, you can select a PF key by clicking on
   it with the left mouse button.  Use the PFSHOW primary command to make PF
   keys visible.

#  4.3 {Select a List Entry}

   Any time you are in an SPF/Pro select list, you can invoke SELECT on a
   single entry by double-clicking on it with the left mouse button.

#  4.4 {Operate on Multiple List Entries}

   To operate on multiple list entries (e.g. a group of files):

   *  click on the line command field of the first entry in the block with
      the left mouse button

   *  enter the desired operation (e.g. S, E, etc.)

   *  press the shift key then click on the last entry in the block with the
      left mouse button

   *  press [SPF-Enter] to apply the line command you entered on the first
      entry to all the entries between and including first and last

#  4.5 {Activate Popup Menus}

   Popup menus are available in file select lists and edit to provide a
   convenient point and shoot activation scheme for frequently used commands.

   Click the right mouse button to activate the popup menu. Use the mouse to
   select the desired entry. Click the left or right mouse button to activate
   the command.

#  4.6 {Scroll Select List}

   Scroll the select list by clicking on the vertical scroll bar when
   present.

#  4.7 {Position the Cursor}

   You can position the character cursor anywhere on the screen by moving the
   mouse cursor to that position and clicking the left mouse button.

#  4.8 {Select a Group of Lines}

   A group of lines is one or more complete lines.  This is the most common
   form of selection when dealing with program source.  In EDIT or BROWSE to
   select a group of one or more lines:

   *  Use the mouse to position the cursor to the line command field of the
      first line in the block.

      Note: If line commands are turned off (see LCMD primary command),
      position to the first character in the line.

   *  Press down the left mouse button.

   *  With the left button still pressed and staying in the line command
      field, drag the mouse to the last line in the block. As you drag the
      mouse, the lines which become selected are highlighted.

      Note:  When you drag to the top or bottom edge of the display, EDIT (or
      BROWSE) automatically scrolls to extend the selection in the direction
      of travel.

   *  When you have reached the end of the selection, let the left mouse
      button up. The selection is now complete.

#  4.9 {Select a Stream of Characters}

   A stream is all the characters between the first character of the
   selection, in a continuous stream (including line ends), to the last
   character of the selection.  This is the most common form of selection
   when dealing with textual material.  In EDIT or BROWSE to select a stream
   of one or more characters:

   *  Use the mouse to position the cursor to the first character in the
      stream.

   *  Press down the left mouse button.

   *  With the left button still pressed, drag the mouse to the last
      character in the stream. As you drag the mouse, the characters which
      become selected are highlighted.

      Note:  When you drag to the top, bottom, left or right edge of the
      display, EDIT (or BROWSE) automatically scrolls to extend the selection
      in the direction of travel.

   *  When you have reached the end of the selection, let the left mouse
      button up. The selection is now complete.

      Note: Unlike word processors, SPF/Pro preserves line ends within stream
      selections.

#  4.10 {Select a Block}

   A block is a rectangular area.  This form of selection is used for special
   cases.  In EDIT or BROWSE to select a block:

   *  Holding the ALT key, click the left mouse button and drag to select the
      block.

   *  Use the mouse to position the cursor to the upper left corner of the
      block.

   *  Press down the right mouse button.

   *  With the right button still pressed, drag the mouse to the lower right
      corner of the block.  As you drag the mouse, the area which becomes
      selected is highlighted.

      Note:  You can also select from lower right to upper left.

   *  When you have reached the end of the selection, let the right mouse
      button up. The selection is now complete.

#  4.11 {Extend Selection}

   To extend the current selection without dragging, reposition the mouse,
   press the [SHIFT] key, then click the left mouse button. The selection is
   extended from the end of the current selection to the current mouse
   position.  This technique also works with a null selection.  (To extend a
   block selection, click on the right mouse button.)

#  4.12 {Cancel Selection}

   To cancel the selection, press any non-function key except [HOME] or click
   the left mouse button.

#  4.13 {Delete Selection}

   To delete the selection, press the [DEL] key or press the [SHIFT][F9] key
   (=SDELETE).  The deleted text is removed from the file but is not put into
   the clipboard.

#  4.14 {Cut Selection}

   To cut the selection, press the [SHIFT][F1] key, or [CTRL][X] (both are
   mapped to SCUT).  The selected text is copied into the clipboard; it is
   then removed from the file.

#  4.15 {Copy Selection}

   To copy the selection, press the [SHIFT][F2] key, or [CTRL][C] (both are
   mapped to SCOPY).  The selected text is copied into the clipboard; it is
   not removed from the file.

#  4.16 {Paste Selection}

   *  For line selections - place the cursor anywhere on the target line,

   *  For stream selections - place the cursor at the target character within
      the target line,

   *  For block selections - place the cursor at the upper left corner of the
      target area

   then press the [SHIFT][F3] key, or [CTRL][V] (both are mapped to SPASTE).

   After the paste operation, the cursor is positioned at the end of the
   pasted selection.  The contents of the clipboard are not altered.  To get
   multiple copies of the selection, repeat the paste operation.  This is
   essentially the same as the SPF/Pro replicate function.

#  4.17 {Create/Replace File}

   To create an external file from the selection press either [SHIFT][F4] key
   (=SCREATE) to create an original file or [SHIFT][F5] key (=SREPLACE) to
   replace an existing file.  A panel is presented in which you specify the
   name of the file that is being created.

#  4.18 {Convert to Uppercase}

   To convert the entire selection to all uppercase letters press the
   [SHIFT][F6] key (=STOUPPER).

#  4.19 {Convert to Lowercase}

   To convert the entire selection to all lowercase letters press the
   [SHIFT][F7] key (=STOLOWER).

#  4.20 {Print Selection}

   To print the selection, press the [SHIFT][F10] key (=SPRINT).  SPRINT
   prints only the selected characters.

#  4.21 {Exclude Selection}

   To exclude the selection, press the [SHIFT][F8] key (=SXCLUDE).  Exclude
   operates on whole lines regardless of the mode of selection.  If the
   selection is a stream or block, the exclude is applied to all characters
   of each line touched by the selection.

#  4.22 {Extend a Selection}

   As noted above, selections are normally extended by dragging the mouse
   while holding down the left mouse button. An alternative method of
   extending the selection is to:

   *  establish the origin of the selection by clicking the mouse at the
      desired start point.

   *  position the mouse to the desired end point of a selection (no drag
      required), then press [SHIFT] and click the left mouse button. The
      complete selection is now highlighted.

   *  You can append to an existing selection using this same technique.
      Position the mouse the the new desired end point. Press [SHIFT] and
      click the left mouse button. All text between the origin of the
      original selection and the new end point is now selected.

#  4.23 {Perform [SPF-Enter] Processing}

   At any time, double-clicking the left mouse button on a text entry panel
   (e.g. panel 2) produces the same effect as pressing [SPF-Enter].

#  4.24 {Move SPLIT Separator}

   If you have split the screen into multiple SPF/Pro sessions via SPLIT,
   SPLITV, or VSPLIT primary commands, you can move the split separator by:

   *  place the mouse cursor on the separator

   *  hold down the left mouse button

   *  drag the separator to the desired position

   When dragging the separator, SPF/Pro maintains a five line buffer zone
   from the top or bottom in the vertical direction, and a ten character
   buffer zone from the left or right in the horizontal direction.

#  4.25 {Sort File Select List}

   Above each column in file select lists is a labeled column sort button.
   To sort the file select list by that property (Name, Size, Date, etc.)
   click on the desired column sort button.

#  5. {Interacting With SPF/Pro}

   SPF/Pro functions are available to:

   *  Have full operation control of all elements of Micro Focus Workbench
      via custom SPF dialogs.

   *  Access XDB via extensive custom dialog.

   *  Browse or edit files.

   *  Manipulate files or directories.

   *  Set profile options.

   *  Launch foreground and background tasks.

   *  Issue operating system commands on PC.

   All SPF/Pro functions are performed via Graphical User Interface through
   SPF dialogs comprised of menus or panels.  One aspect of learning SPF/Pro
   is learning which menu or panel performs what functions and how to move
   among them.  This chapter explains how to:

   *  Use menus and panels.  Each panel tells you where you are and what you
      can do next.  The Menus and Panels section below identifies different
      panel types and how they are used.

   *  Use keyboard features.  In addition to typing in text, there are a
      number of keyboard features of interest.  These include 3270-type
      features, PF keys, and special purpose keys.

   *  Issue commands.  The Command section introduces different types of
      SPF/Pro commands, where to type them in, using commands together, and
      other general information.

#  5.1 {Menus and Panels}

   SPF/Pro menus and panels fall into basic categories:

   MENUS

      Menus display a list of available functions.  The functions are listed
      by number or letter.  You select one by either:

      -  positioning the mouse pointer on the desired entry, and clicking the
         left mouse button, or

      -  typing in the number or letter in the primary command field and
         pressing [SPF-Enter].

      When you select a menu item, SPF/Pro displays an entry panel or a lower
      level menu.

      Note:  Once you determine which panels are most frequently used, you
      can bypass the menus by using the "jump" feature.

   ENTRY PANELS

      Entry panels have fields for information which is needed to carry out a
      function.  Simply fill in the fields and press [SPF-Enter] to execute
      the function.  To position to fields either:

      -  position the mouse pointer on the desired field and click the left
         mouse button

      -  use cursor and/or tab keys to position to fields

   SELECT LISTS

      SPF/Pro displays a select list when you initiate a function that
      requires a filename but you only supply a path name or a partial
      filename (including wild-card characters).

      You would normally specify a partial filename intentionally to get a
      select list. For example, if you wanted to edit a group of related
      COBOL source files you would specify "*.COB" in the filename field of
      the EDIT ENTRY PANEL. This would bring up a select list of all the
      COBOL source files in the current (or project) directory.

      Once a list is displayed, you can select one or more files to edit,
      browse, or perform some other function. File selection can be done by
      either:

      -  positioning the mouse pointer on the desired list entry and double
         clicking the left mouse button, or

      -  cursor positioning to the desired entry, placing an "s" to the left
         of the entry, and pressing [SPF-Enter].

      -  Click the left mouse button once on the desired list entry.  Click
         the right mouse button to display a popup menu of verbs that can be
         applied to the selection.

      -  To select a block of entries, click once on the first entry of the
         block, position the mouse to the last entry in the block, press
         [SHIFT] and click the left mouse button.  You can now use the popup
         menu to apply a verb to all the entries in the block.

   FILE DISPLAY PANELS

      SPF/Pro brings up a file display panel when you request edit or browse
      and give a complete filename.  The file display panel includes fields
      for primary and line commands.

#  5.2 {General Features}

   This section describes features common to all panel types.  General
   features are discussed below.  Features unique to a single panel type are
   discussed in following sections.

#  5.2.1 {Display Topology}

   SPF/Pro panels are normally pre-defined to display in an 80 by 25 display
   space.  In Windows the display space is arbitrarily sized.

   If the available space is smaller than the panel definition calls for, the
   excess columns and/or lines are clipped (not displayed) although they are
   still part of the active panel.  In any case where a portion of the panel
   is not visible, you can MAXIMIZE the window to reveal the remainder of the
   panel.

   If the available space is larger than the panel definition calls for, the
   panel is displayed flush top left in the available space. Excess space is
   rendered in the protected-low attribute.

   The SCREEN primary command of previous versions, is no longer supported.

#  5.2.2 {Select Lists and File Displays}

   Select lists and file displays are often larger than the screen area.
   Select lists are arbitrarily long and can be scrolled vertically.  File
   displays are arbitrarily long and wide and can be scrolled both vertically
   and horizontally.

   Menus and panels have the following basic features:

   PANEL HEADING

      The top line of the display contains:

      -  On the left, the product name followed by an integer number which is
         the session id.

      -  In the center, the panel title.

      -  On the right, the product version number.

      EDIT and BROWSE display a file name in place of the panel name and
      column numbers in place of the product version number.

   SHORT MESSAGE AREA

      The short message area overlays the right edge of the top display line
      when necessary to display a message.  SPF/Pro uses this area to display
      information and diagnostic messages.

   COMMAND or OPTION FIELD

      The second display line on all menus and panels contains the primary
      command field labeled COMMAND or OPTION.  In either case you can enter
      general primary commands.  In the OPTION case you can select an item
      from the menu by number or letter.

      You can enter any of the general commands listed at the end of this
      chapter. On file display panels you can enter additional primary
      commands supported by EDIT or BROWSE.

   LONG MESSAGE AREA

      When SPF/Pro displays a short message, enter HELP (or [F1]) to display
      a more detailed message.  The long message overlays the third display
      line when necessary to display the message.

   STATUS LINE

      The bottom display line is the Status Line. It contains the following
      status indicators from left to right:

      -  INPUT INHIBITED, a special symbol indicates that the last input
         character was not accepted.  If the symbol has a small arrow on each
         side, you tried to type in a protected area such as a field name.
         If the arrow is only on the right side of the symbol, you tried to
         insert characters into a line or field that is full.

      -  SYSTEM BUSY, the text "X SYSTEM" indicates the system is busy.
         Keyboard input is queued until the last command completes.

      -  KEYBOARD MACRO RECORDING, the text "RECORDING" indicates that a
         keyboard macro is being recorded.

      -  DATE/TIME, an optional field displaying todays date and the current
         time.  Use Terminal Option 0.1 to set date and time options.

      -  SHIFT STATE INDICATOR is visible when the SHIFT key is down.

      -  CAPS LOCK INDICATOR is visible when the CAPS LOCK state is TRUE.

      -  INSERT INDICATOR is on when the INSERT state is TRUE.

#  5.2.3 {PFSHOW}

   An alternative mode of display is one in which some or all of the PF keys
   are displayed at the top or bottom of the screen along with their labels.
   This mode is invoked with the PFSHOW primary command.

   Key labels are either the first eight characters of the map value or an
   explicitly assigned label from the KEYS panel. See Option 0.3 or Option
   0.K for details on defining PF key mappings and labels.

   When the PF keys are visible they can be selected by positioning the mouse
   cursor to the desired key and clicking the left mouse button.

#  5.2.4 {Menus}

   Menus present you with a list of SPF/Pro functions.  For example, the
   Primary Option Panel. Some options on this menu, like 2, Edit lead
   directly to function panels.  Others, like 3, Utilities lead to a
   secondary menu, where other options are listed.

   In addition to common general features, a Selection Menu has an OPTION
   LIST which lists options by number or letter with a title and short
   functional description.  To select an Option:

   *  click on the Option button with the left mouse button

   *  type the number (or letter) of the Option in the OPTION field and press
      [SPF-Enter].

#  5.2.5 {Entry Panels}

   SPF/Pro displays an Entry Panel when a selected function needs information
   such as a filename to proceed.  Entry Panels have titled fields for all
   needed information.

   SPF/Pro often displays the fields with the last information you typed.
   This data is often preserved from session to session. For example, the
   file specification in the Edit Entry Panel is preserved across sessions.

   Entry panels for different purposes have different formats.  They all have
   the items listed below, in addition to general panel features.

   In addition to general features, an Entry Panel has the following
   features:

   INPUT FIELDS

      These are blank fields indicating needed information.  Input fields are
      rendered in 3D giving a visual queue to their function.  For example,
      in the Option 2, EDIT panel, the PROFILE field is an Entry Field.

      Some entry fields are scrollable. When you type past the end of the
      field, it scrolls instead of giving you input-inhibited.  For example,
      the primary command field is scrollable.

      The maximum amount of data that can be entered in a scrollable field is
      1024 characters.

   OUTPUT FIELDS

      Output fields derive their content from SPF variables that are
      specified in the panel definition. For example, the 0.1 Terminal Option
      contains a number of output fields indicating various aspects of the
      display technology.

   LABELS

      Input and output fields normally have labels and in some cases other
      explanatory information in the form of comments.  Labels clarify field
      content and may give additional information or instructions.

      Note:  On color monitors labels and fields may be displayed in
      different colors.

#  5.2.6 {File Specifications}

   Some input fields call for a PC file specification.  For convenience,
   SPF/Pro supports several forms of file specification which augment the
   conventional form DRIVE:\PATH\FILENAME. The following additional forms are
   supported:

   PATH;PATH

      You can specify multiple paths separated by semicolon or comma.  You
      can also include a file name if desired with each path element.  For
      example, to access all .COB and .CPY files in the \SRC\V1 directory:

      \SRC\V1\*.COB;\SRC\V1\*.CPY

      If all the files you want are in the current directory you can simply
      specify the file names:

      *.COB;*.CPY

   [PATH;PATH]filename

      In cases where you want to operate on a common set of files from single
      or multiple directories you can specify a path set enclosed in square
      brackets followed by a file name or names. For example,

      [\SRC\V1;\SRC\V2]*.COB;*.CPY

      In this example we are asking for all .COB and all .CPY files from the
      directories specified within the square brackets.

   %ENV-VAR%

      You can use this form of specification to refer to an environment
      variable. For example:

      %PATH%

      To request all .EXE files in all elements of the PATH environment
      variable:

      [%PATH%]*.EXE

      Or access all .CPY files in the COBCPY library set:

      [%COBCPY%]*.CPY

      Or access all .H files in the INCLUDE library set:

      [%INCLUDE%]*.H

#  5.2.7 {Select Lists}

   SPF/Pro displays a Select List when you request an operation on a file
   without specifying a file name or when you use wild card characters.  Wild
   card characters are asterisk (*) and question mark (?).  Normally you use
   wild card characters when you are not sure of the file name or want to
   work with a related group of files.

   When all the files in a list reside in the same directory, the common
   directory is shown on line three of the display.  The common path
   component of the file name is not repeated in the list.

   PANEL HEADING

      The top display line identifies the context for the select list.

   SCROLL FIELD

      On the right end of the second display line is the scroll field.  This
      field specifies how far the select list will be scrolled in response to
      UP, DOWN, LEFT, or RIGHT commands.

   CURRENT DIRECTORY

      The third display line identifies the active disk and subdirectory. If
      no disk or directory information is displayed with the file
      information, this is the location of all files in the list.

   FILE INFORMATION

      The fourth and subsequent display lines contain file information for
      all files that match your specification.  Individual files are listed
      by fields:

      -  When all files are in the same directory, the fields are:

            NAME
            EXTENSION
            SIZE
            DATE
            TIME
            ATTRIBUTES

      -  Attributes are indicated with single characters as follows:

         A - archive
         R - read-only
         S - system
         H - hidden

      -  When files are in different directories, the PATH field is appended
         to the basic entry.

   LINE COMMAND AREA

      Each file information line has a two character input field for entry of
      select list line commands.  You can enter single or double character
      line commands to do a variety of things to an individual file or group
      of files. For example, in the edit or browse select list, the S line
      command selects the file for editing or browsing.

   SCROLL BAR

      When select lists and other lists like 0.2 and 0.7 have more entries
      than can be displayed, a vertical scroll bar is displayed.

   Select lists are dynamic in nature. As the file name length increases the
   SIZE, DATE, and TIME fields are moved to the right to accommodate the
   longest name.

   In the case where the longest name is such that the SIZE, DATE, or TIME
   fields will not fit, the non-fitting field is clipped.

   At any time you can use the I (information) line command to bring up a
   panel containing a full elaboration of the file's name and other
   attributes.

#  5.2.8 {File Display Panels}

   SPF/Pro uses File Display Panels to display files for editing or browsing.
   The edit panel displays line numbers and supports a full range of editing
   commands.  The browse panel has no line numbers and supports a limited set
   of commands.  If the file is deeper or wider than the available display
   space, it can be scrolled UP, DOWN, LEFT, or RIGHT.

   In addition to general panel features, a file display panel has the
   following features:

   MODE INDICATOR

      On the left end of the top display line, a mode indicator BROWSE or
      EDIT is displayed to indicate which function you are in.

   PATH AND FILENAME

      Following the mode indicator, the fully qualified path name of the file
      being edited or browsed is displayed.

   COLUMNS

      At the right end of the top display line the start and end data column
      are displayed.  The COLUMNS display is updated whenever the screen is
      scrolled LEFT or RIGHT.  In the EDIT file display panel, columns 1
      through 6 display line sequence numbers, columns 8 and beyond display
      data commencing with data column one.  The COLUMNS display shows 1
      through N where N is the rightmost data column displayed.

      If some characters do not fit in the display area, you can scroll to
      reveal them with a "RIGHT" primary command.  The COLUMNS display is
      updated each time you scroll left or right.

      In browse mode, the current line number is displayed along with the
      column numbers.

   SCROLL FIELD

      At the right end of the second display line the scroll field specifies
      how far the file will be scrolled in response to UP, DOWN, LEFT, or
      RIGHT commands.

   LINE COMMAND AREA

      The first six character positions of each text line are available for
      entry of Edit Line Commands.  This area appears only on the edit panel.
      It has two purposes:

      1. It displays line sequence numbers (relative or absolute)

      2. You enter EDIT Line Commands here.

      By default line numbers are relative and incremented by 1.  Line
      numbers are updated whenever a line is inserted, deleted, or moved.
      See primary commands NUMBER, RENUM and UNNUM for details on other
      numbering methods.

      Line commands are one or more characters that allow you to mark one or
      more lines for insert, copy, move, or delete and many other line
      related operations.

   FILE TEXT AREA

      This is the data in your file displayed one record per line.  You can
      scroll UP, DOWN, LEFT, or RIGHT as desired to reveal other areas of the
      file. By default EDIT is in overtype mode so you can simply type
      anywhere in the text area to make desired changes.  The [DEL] key
      deletes characters, and the [INS] key toggles the insert state.

      BROWSE does not allow modifications to the file.

   ROW/COLUMN INDICATOR

      At the right end of the status line the file line number (R) and column
      number (C) for the current cursor position is displayed.  These
      indicators are only displayed when in EDIT or BROWSE.

#  5.2.9 {Scrolling}

   Scrolling is moving the viewport into a file or select list UP, DOWN, LEFT
   or RIGHT.

   There are four ways to issue a scroll command:

   1. Use the [PG-UP] or [PG-DN] key.

   2. Use one of the pre-assigned PF keys:

      [F7]  -  UP
      [F8]  -  DOWN
      [F10] -  LEFT
      [F11] -  RIGHT

   3. Type it in the command field and press [SPF-Enter].

   4. Click on the desired arrow or move the slider of a scroll bar.

#  5.2.10 {Scrolling Amount}

   The amount you move with any scroll command is determined by the scroll
   field.  You can change the scroll amount any time by typing over it.  The
   scroll amount may also be typed in directly with any scroll command.
   Valid scroll values are listed below:

   PAGE (P)

      Scroll by the full dimension of the display area.  Vertically by the
      depth in lines of the display area.  Horizontally by the width in
      columns of the display area.

   HALF (H)

      Scroll by one half the amount of PAGE.

   CSR (C)

      Scroll to move the cursor to the edge of the display area.

      -  For UP, data is moved to place the cursor at the bottom edge of the
         display area.

      -  For DOWN, data is moved to place the cursor at the top edge of the
         display area.

      -  For LEFT, data is moved to place the cursor at the right edge of the
         display area.

      -  For RIGHT, data is moved to place the cursor at the left edge of the
         display area.

   DATA (D)

      Scroll by the amount of PAGE minus one line in the vertical, or minus
      one column in the horizontal.

   MAX (M)

      Scroll the maximum amount in the direction indicated.  MAX is reset to
      the original amount after the scroll is completed.

   In the vertical direction MAX is used to get to the top or bottom of the
   file or select list.

   In the horizontal direction MAX is used to get to the leftmost or
   rightmost data column.

   nnnn

      Scroll by nnnn lines or columns in the direction indicated.

   To temporarily override the scroll amount:

   *  Type a command and an amount in the command field.  For example, UP 10.

   *  Easier yet, type an amount in the command field and issue the scroll
      command with a function key.  For example, type 10 in the command
      field, and press [F7] for UP.

   Note:  In addition to scrolling, you can use:

   *  LOCATE and SELECT commands to position in select lists

   *  FIND, LOCATE, SELECT and LABEL commands to position in files

#  5.3 {Moving Between Menus and Panels}

   When you first start using SPF/Pro you will move from panel to panel
   invoking functions in a serial fashion. This technique is fine but may not
   be the most efficient for all cases. After you learn which panels are most
   frequently useful to you, you can go to and from panels directly using the
   techniques discussed below:

   *  Use the jump feature to go directly to a panel by typing =n or =n.n in
      the command field followed by [SPF-Enter].  You can use this feature in
      a random manner from any panel.  For example, to go directly to the

      UTILITIES, FILE LIST panel type =3.4 in the command area and press
      [SPF-Enter].

      Note:  After using the jump feature, the END command returns to the
      Primary Option Panel.

   *  Use the RETURN command (normally [F4]) any time to return directly to
      Primary Option Panel regardless of your current position in the menu
      tree.

   *  There are also startup options that allow you enter directly into EDIT,
      BROWSE, or any panel.

#  5.4 {Split Screen}

   This feature allows you to launch multiple independent copies of SPF/Pro.
   You can launch multiple copies of SPF/Pro in one of three modes:

   *  HORIZONTAL SPLIT - one session above, one session below.  To do a
      horizontal split, position the cursor to the desired split point, then
      press [F2] or use the SPLIT primary command.  Limit: two sessions.

   *  VERTICAL SPLIT - one session on the left, one session on the right.  To
      do a vertical split, position the cursor to the desired split point,
      then use the VSPLIT primary command.  (We also support the mainframe
      SPLITV primary command which always splits in the middle regardless of
      the cursor position).  Limit: two sessions.

   *  FULL SCREEN SPLIT - multiple copies occupying the full display space,
      the active session is visible.  To do a full screen split, use the
      FSPLIT primary command.  Limit: specified in Terminal Option 0.1.

      If no split has been done, you can effect a full screen split by simply
      pressing [F9] (SWAP).

   We refer to all forms of multi-session operation as split screen.  Each
   session is a complete task that allows you to use all SPF/Pro features and
   functions.  The session ID, an integer from 1 to N, is displayed after the
   product name at the left edge of the title line.

   In discussions of split screen, the task where the cursor is located is
   called the active task. Any command you issue is applied to the active
   task.

   Some things you can do with multiple sessions are:

   *  Edit two files at once, which is useful when you use the editor's
      cut-and-paste feature.

   *  Edit a file in one task and execute a utility program or compiler in
      the second task.

   *  Use an SPF/Pro feature in one task and use the command processing panel
      to issue operating system commands from the second.

   After you split the screen, use the SWAP command (normally [F9]) to switch
   between the tasks.

   If you are in horizontal split mode, and one of the sessions is less than
   five lines deep, SWAP reallocates the screen so that the active task
   always has the greater number of display lines.

   If you are in vertical split mode, and one of the sessions is less than
   ten columns wide, SWAP reallocates the screen so that the active task
   always has the greater number of columns.

   After splitting in one mode you can switch to the other mode by simply
   issuing the opposite split command.

   To change from horizontal split mode to vertical issue the VSPLIT or
   SPLITV command.

   To change from vertical split mode to horizontal issue the SPLIT command.

   To end split screen mode, simply [F3] out, or =X out of either task. The
   remaining task will occupy the full screen.

#  5.5 {SPF/Pro Commands}

   In previous sections we discussed menus and panels. We will now cover
   SPF/Pro commands. This section of the manual introduces three types of
   commands, and explains some of the rules for using commands: where to type
   them, how to use more than one command, how to stack commands, etc.

#  5.5.1 {Types of Commands}

   SPF/Pro commands are classified by where you type them:

   *  Primary commands are typed in the field labeled COMMAND or OPTION.
      These commands affect the panel, the function, the file, or your entire
      session.

   *  Line commands are typed in the input field at the left end of lines in
      files or select lists. This input field is called the Line Command
      Field.  These commands affect a single file or group of files in select
      lists, or a single line or block of lines in edit.

   You can also execute operating system commands without leaving the SPF/Pro
   environment.

#  5.5.2 {Issuing Commands}

   General rules for using each type of command are summarized below:

   *  Primary commands.  To issue a primary command, use the mouse or [HOME]
      key to move the cursor to the COMMAND or OPTION field.  Type in the
      command.  If the command requires a parameter, or you use an optional
      parameter, type it after the command.  Press [SPF-Enter].

   *  Line commands.  To issue a line command, use the mouse or cursor keys
      to position the cursor to the Line Command Field of the desired line,
      type in the command; press [SPF-Enter].

   *  To operate on a block of lines or group of files, type the desired line
      command on the first line in the block; move to the end of the block
      (use [F8] or [PG-DN] if necessary); then type the same line command on
      the last line in the block; press [SPF-Enter].

   *  In Edit, ISREDIT macro commands are invoked in the same manner as
      primary commands.  You can also use the IMACRO feature to execute a
      specific macro once at the time the file is opened.

   *  Operating system commands.  These are standard operating system
      commands that you normally enter at the operating system command
      prompt.  To issue an operating system command, use the mouse or [HOME]
      key to move the cursor to the command or option line, type in DOS
      followed by the command.  If the command requires a parameter or you
      use an optional parameter, type it after the command.  Press
      [SPF-Enter].

   *  PF keys.  After you have used SPF/Pro for a while and know which
      commands you use regularly, you can assign them to PF keys.  Then they
      can be executed with a single keystroke.

#  5.5.3 {Command Stacking}

   To invoke multiple related commands, enter the commands separated by
   semicolon (;), then press [SPF-Enter].  SPF/Pro executes the commands in
   the order in which you typed them.

   If an error occurs, the command in error remains in the primary command
   field.

#  5.6 {Using Your Keyboard With SPF/Pro}

   There are a number of single-keystroke functions on your keyboard.  Some
   of these are standard PC functions, others are unique to SPF/Pro. All are
   listed in this section.  In all cases the key assignment may be changed
   using Option 0.K, Keyboard Mapping.

#  5.6.1 {General Keys}

   [SPF-Enter]

      This symbol is used throughout SPF/Pro documentation to identify the
      equivalent to the 3270 ENTER key.  This key activates all SPF/Pro
      functions.

      This key does not actually exist on any PC keyboard so we use the
      following keys to effect [SPF-Enter]:

      -  For 101 key enhanced keyboard use:

         -- Right [CTRL] key, or

         -- [ENTER] key on the numeric keypad, or

         -- Left [CTRL] + [ENTER] key

      -  For AT-style keyboard use:

         --  key on numeric keypad, or

         -- Left or Right [CTRL] + [ENTER] key

      To get SPF/PC v. 2.1 style ENTER processing you must select the "SPF/PC
      2.1" keyboard scheme in Keyboard Options 0.K.  The default setting for
      this keyboard differs from the standard 3270 approach in that the
      [ENTER] key does newline processing AND 3270-ENTER processing.

   [BACKSPACE]

      Use this key to move the cursor to the left.  The default backspace is
      non-destructive.  You can assign the destructive form of backspace with
      Option 0.K, Keyboard Mapping.

   [DEL]

      Use this key to delete characters at the cursor; characters to the
      right of the cursor are shifted left one position.

   Left-[CTRL]

      When pressed by itself, the left [CTRL] key performs a 3270 RESET.

   [CTRL][DEL]

      Use this combination of keys to erase characters from the current
      cursor position to the end of the field or line. See 0.1 for an
      alternative key configuration for this function.

   [INS]

      Use this key to toggle insert mode. If insert is on, characters to the
      right of the cursor are moved farther to the right as new characters
      are typed.  Otherwise new characters overlay current characters as they
      are typed.  If a line or field is full, attempting to insert new
      characters causes a beep and an input inhibited indicator in the status
      line.

   [NUMLOCK]

      Use this key to set the shift state of the numeric keypad.  The Num
      Lock indicator is displayed when numeric lock is on.

   [ESC]

      Use this key to restore entry fields to their original values.  This is
      equivalent to an UNDO of the text typed since the last [SPF-Enter].

#  5.6.2 {Traveling Keys}

   [ENTER]

      Use this key to move from line to line or field to field.  If there is
      more than one field on a single line, use the [TAB] key to position to
      the next field, described below.  If the cursor is in the last line or
      field, it wraps around to the top of the screen when you press the key.

   [HOME]

      Use this key to move the cursor to the command/option field.  The
      CURSOR command also performs this function.

   [END]

      Use this key to move the cursor to the end of the current field. When
      you press the key, the cursor moves to the blank space following the
      last character in the field. If the field is blank, the cursor is
      positioned at the beginning of the field.

   [PG-UP]

      Use this key to scroll up toward the top of the file or select list.
      The amount of the scroll is determined by the scroll field.  [F7] can
      also be used to scroll up.

   [PG-DN]

      Use this key to scroll down toward the bottom of the file or select
      list.  The amount of the scroll is determined by the scroll field.
      [F8] can also be used to scroll down.

   [CTRL][PG-UP]

      Use this key to scroll to the top of the file.

   [CTRL][PG-DN]

      Use this key to scroll to the bottom of the file.

   [ARROW-UP]

      Use this key to move the cursor up. If you set VERTICAL SCROLL W/CURSOR
      on Editor Options panel, the screen scrolls in the direction that the
      cursor is moving when the cursor reaches the edge of the screen.

   [ARROW-DOWN]

      Use this key to move the cursor down. If you set VERTICAL SCROLL
      W/CURSOR on Editor Options panel, the screen scrolls in the direction
      that the cursor is moving when the cursor reaches the edge of the
      screen.

   [ARROW-LEFT]

      Use this key to move the cursor left. If you set HORIZONTAL SCROLL
      W/CURSOR on Editor Options panel, the screen scrolls in the direction
      that the cursor is moving when the cursor reaches the edge of the
      screen.

   [ARROW-RIGHT]

      Use this key to move the cursor right. If you set HORIZONTAL SCROLL
      W/CURSOR on Editor Options panel, the screen scrolls in the direction
      that the cursor is moving when the cursor reaches the edge of the
      screen.

   [ALT][ARROW-LEFT]

      Use these keys to move the cursor two characters to the left.

   [ALT][ARROW-RIGHT]

      Use these keys to move the cursor two characters to the right.

   [CTRL][ARROW-LEFT]

      Use these keys to move the cursor one word to the left (word jump).

   [CTRL][ARROW-RIGHT]

      Use these keys to move the cursor one word to the right (word jump).

   [TAB]

      Use this key to move the cursor to the next tab position in edit or
      field in a panel.

   [SHIFT][TAB]

      This is the backtab key. It works in the opposite direction of the tab
      key, moving to the previous tab position or field.

#  5.6.3 {Selection Keys}

   [SHIFT]+arrow-key

      Use the shift key in conjunction with an arrow key in place of the
      mouse to do selections.

      Pressing [SHIFT][ARROW-UP] is equivalent to pressing the left mouse
      button and dragging the mouse up.

      Pressing [SHIFT][ARROW-DOWN] is equivalent to pressing the left mouse
      button and dragging the mouse down.

      Pressing [SHIFT][ARROW-LEFT] is equivalent to pressing the left mouse
      button and dragging the mouse left.

      Pressing [SHIFT][ARROW-RIGHT] is equivalent to pressing the left mouse
      button and dragging the mouse right.

#  5.6.4 {PF Keys (Enhanced Keyboard)}

   [F1]-[F12]

      Base PF keys PF1 through PF12.

   [SHIFT][F1]-[F12]

      The SHIFT form of the base PF keys are used to effect PF13 through
      PF24.

   [CTRL][F1]-[F12]

      The CTRL form of the base PF keys are used to effect PF25 through PF37.

   [ALT][F1]-[F12]

      The ALT form of the base PF keys are used to effect PF37 through PF48.

#  5.6.5 {PF Keys (AT Keyboard)}

   [F1]-[F10]

      Base PF keys PF1 through PF10.

   [SHIFT][F1]-[F10]

      The SHIFT form of the base PF keys are used to effect PF11 through
      PF20.

   [CTRL][F1]-[F10]

      The CTRL form of the base PF keys are used to effect PF21 through PF30.

   [ALT][F1]-[F10]

      The ALT form of the base PF keys are used to effect PF31 through PF40.

#  5.6.6 {PF Keys, General}

   The PF keys can be used to issue an SPF/Pro command in a single keystroke
   and without moving to the command field.  There is a default set of
   SPF/Pro commands assigned to your PF keys.  You can change the PF key
   mappings any time with the KEYS command.

   The default settings of the PF keys are listed below:

               3270 Style    SPF/PC 2.1

      PF1   -  HELP          HELP
      PF2   -  SPLIT         SPLIT
      PF3   -  END           END
      PF4   -  RETURN        SWAP
      PF5   -  RFIND         RFIND
      PF6   -  RCHANGE       RCHANGE
      PF7   -  UP            UP
      PF8   -  DOWN          DOWN
      PF9   -  SWAP          LEFT
      PF10  -  LEFT          RIGHT
      PF11  -  RIGHT         RETURN
      PF12  -  RETRIEVE      RETRIEVE
      PF13  -  SCUT          n/a
      PF14  -  SCOPY         n/a
      PF15  -  SPASTE        n/a
      PF16  -  SCREATE       n/a
      PF17  -  SREPLACE      n/a
      PF18  -  STOUPPER      n/a
      PF19  -  STOLOWER      n/a
      PF20  -  SXCLUDE       n/a
      PF21  -  SDELETE       n/a
      PF22  -  n/a           n/a
      PF23  -  n/a           n/a
      PF24  -  n/a           n/a

      PF25-PF36  Repeat PF1-PF12
      PF37-PF48  Repeat PF1-PF12

   To execute one of these commands simply press the appropriate PF key (or
   combination of [SHIFT], [ALT] or [CTRL] and PF key).

   To pass a parameter to a PF key simply type it in the command field, then
   press the PF key.  For example, if you type 4 in the command field and
   then press [F7], it is equivalent to executing the command "UP 4".


#  6. {Directories and Files}

   In addition to the familiar services offered by the mainframe based ISPF,
   SPF/Pro provides a rich set of enhancements to manipulate files.

   You can use SPF/Pro's powerful file management system, to work with
   operating system directories and files in ways not available on the
   mainframe.  File management functions are supported through panels, and
   select lists. There is no need to issue operating system commands.  Using
   select lists you can apply various operations to individual files or
   groups of files.

   Standard ISPF file list line commands:

   *  Select

   *  Browse

   *  Edit

   *  Print

   *  Rename

   *  Delete

   *  Move

   *  Copy

   *  Information (display properties)

   Additional SPF/Pro file list line commands:

   *  Go (execute program or batch file)

   *  Tree (create recursive sub-list)

   *  User (apply user command)

   *  Convert (one format to another)

   *  Exclude (prune list)

#  6.1 {Basic BROWSE/EDIT Operation}

   *  Select Browse or Edit from the Primary Option Panel.

   *  SPF/Pro displays an entry panel.

   *  In the PROJECT FILE or SYSTEM FILE SPECIFICATION field enter the fully
      qualified path name for the directory containing files that you would
      like to operate on. For example,

      C:\SOURCE\COBOL\*.COB

   *  SPF/Pro displays all files that match your specification in a select
      list. You can now apply operations to individual files.

   *  You can use the SORT command to order the list by name, extension,
      date, time, size, or attributes.

   *  You can use the LOCATE command to find specific entries.

   *  You can use [PG-UP], [PG-DN], [F7], [F8] to scroll the list.

   *  Select a file to BROWSE or EDIT by placing an "s" in the line command
      field of the individual file entry.

      To edit a new file, use the SELECT primary command (e.g. "s new-name").
      After EDIT, the new file's name is automatically added to the list.

   *  When you press [SPF-Enter] SPF/Pro invokes BROWSE or EDIT on the
      selected file.

   *  If you issue an S (Select) line command on a subdirectory entry,
      SPF/Pro presents a corresponding select list. You can continue to
      select subdirectories in this manner as desired all the way down the
      subdirectory tree.

   *  When you complete your operation:

      -  press [F3] to return to the select list, or

      -  press [F4] to return to the Primary Option Panel

#  6.2 {Basic UTILITIES Operation}

   The UTILITIES function (Primary Option 3) provides additional file
   manipulations beyond BROWSE and EDIT.

   *  Select Utilities (3) from the Primary Option Panel.

   *  Select File List (4).

   *  SPF/Pro displays an entry panel.

   *  You can now perform the same steps as you did for BROWSE and EDIT above
      to create a select list of files that you would like to manipulate.

   *  In the Utilities File List, you place line commands on individual file
      entries to perform specific operations.

   The Utilities File List duplicates the functions of BROWSE and EDIT.
   Operating from the Utilities File List provides a lot of convenience and
   we highly recommend it.

#  6.3 {Super Lists}

   If you really want to step up in power and flexibility, super lists
   provide the most comprehensive set of functions available through a single
   interface point.

   Super lists extend the Utilities concept in a variety of ways:

   *  You can create a super list by searching:

      -  recursively

      -  across drives

      -  for a specific text string

      -  for directories only

      -  for files only

      -  for directories + files

      in any combination!

   *  Once you have created a super list, you can:

      -  add entries via primary command INSERT.

      -  subtract entries via primary command EXCLUDE.

      -  preserve entries via primary command INCLUDE (inverse of EXCLUDE).

      -  create a subset list of files containing a specific text string via
         primary command FIND.

      -  change one string to another in all files in the list via primary
         command CHANGE.

      -  save the list under a symbolic name for later use via primary
         command SAVELIST (a micro-project).

   *  Super lists support the extended line command set.

   *  Super lists support block operations for all line commands.

   *  Super Lists maintain the focus after an operation.  In ISPF if you P
      (print) a file, after the print is complete, the list is scrolled to
      place the printed file entry at the top and the cursor is placed in the
      primary command field.  In Super Lists, the list is not scrolled and
      the cursor remains in place.

   *  To eliminate ISPF style audit trails in select lists go to Option 0.6,
      set CLEAR LISTS = Y.  Example: if you delete a file, instead of
      flagging the entry with "DELETED", the entry is simply deleted from the
      list.

   *  To enable full super list line command set in all select lists go to
      Option 0.6, set EXTENDED LINE COMMANDS = Y.

#  6.4 {Popup Menu}

   For convenience, a popup menu containing the most frequently used select
   list line commands is available with a click of the right mouse button.

   For a operation on a single entry in the list, simply move the mouse
   cursor to the desired entry, click the right mouse button, and select the
   desired operation.

   To operate on multiple entries, move the mouse cursor to the first entry,
   click the left mouse button once to highlight the entry, move to the last
   entry in the block, click the right mouse button to complete the selection
   and display the popup menu.  Select the desired operation with a single
   click of the left mouse button.

#  6.5 {Entry Panel}

   The Printer Characteristics panel is a typical example of most entry
   panels.  Browse, Edit, and Utility entry panels look slightly different,
   but all use the same file specification rules.

   As previously stated, you can use the file specification fields to select
   a single file, a group, or an entire directory.

   SPF/Pro entry panels have two places to type a file specification.  These
   two forms give you maximum flexibility in identifying the file you want to
   work with.

   The PROJECT FILE field allows you to type a file specification in a
   structured format.

   Unlike standard operating system file specifications, the PROJECT FILE
   begins in the root directory regardless of the operating system current
   directory.

   On any PATH field you can enter multiple path elements separated by a
   backslash.  You can also type path elements without an initial backslash.
   In all cases SPF/Pro insures that the path specification you enter begins
   with backslash and does not end with backslash.

   The project file fields can be displayed either vertically (the default)
   or horizontally depending on the setting of File List Options 0.6.  The
   two forms are displayed below:

   PROJECT FILE:
      DRIVE ===> c:
      PATH  ===> \a
      PATH  ===> \b
      PATH  ===> \c
      NAME  ===> *.cob

   PROJECT FILE:
      DRIVE ===> c:
      PATH  ===> \a   PATH  ===> \b   PATH  ===> \c
      NAME  ===> *.cob

      There is an implied backslash preceding the NAME field's contents; it
      is never displayed.

   The following example shows how you can move back and forth between the
   program source of two related versions with a difference of one keystroke
   (v1 vs. v2) in the file specifications:

   PROJECT FILE:                 PROJECT FILE:
      DRIVE ===> c:                 DRIVE ===> c:
      PATH  ===> \v1                PATH  ===> \v2
      PATH  ===> \src               PATH  ===> \src
      PATH  ===>                    PATH  ===>
      NAME  ===> *.cob              NAME  ===> *.cob

   You can also request different subdirectories in a similar way.  Changing
   the second PATH field from \src to \doc, for example, would give you
   access to the project documentation files.

   PROJECT FILE:                 PROJECT FILE:
      DRIVE ===> c:                 DRIVE ===> c:
      PATH  ===> \v1                PATH  ===> \v1
      PATH  ===> \src               PATH  ===> \doc
      PATH  ===>                    PATH  ===>
      NAME  ===> *.cob              NAME  ===> *.doc

   Within a subdirectory the file subset is also easily changed.  For
   example, in the NAME field, a "C" program's source is accessed with *.c;
   its data structures with *.h.

   PROJECT FILE:                 PROJECT FILE:
      DRIVE ===> c:                 DRIVE ===> c:
      PATH  ===> \v1                PATH  ===> \v1
      PATH  ===> \src               PATH  ===> \src
      PATH  ===>                    PATH  ===>
      NAME  ===> *.c                NAME  ===> *.h

   You can also specify two or more file types in the NAME field separated by
   semicolon or comma. For example:

   PROJECT FILE:
      DRIVE ===> c:
      PATH  ===> \v1
      PATH  ===> \src
      PATH  ===>
      NAME  ===> *.c;*.h

   See page 31 for details on other advanced forms of file specification.

   *  If you want to specify the file in operating system command line form,
      use the SYSTEM FILE SPECIFICATION field.  Unlike the PROJECT FILE, if
      you do not begin with an initial backslash, the file name is the
      concatenation of the current directory and your specified name.

      The SYSTEM FILE SPECIFICATION takes precedence over the PROJECT FILE.

   *  SPF/Pro displays the current drive and directory in the SYSTEM CUR DIR
      field.

   *  If you leave other fields blank, and press [SPF-Enter], SPF/Pro
      displays a select list for the current directory.

   *  You can create new files from an entry panel by typing the new file
      name in either of the two file specification fields.

   *  You can create a new file from the Select List for Edit by typing  s
      newname in the COMMAND field and pressing [SPF-Enter].


#  7. {Primary Options}

   SPF/Pro is accessed via a series of menus.  The menus are organized in a
   tree form.  The first menu in the tree is the Primary Option Panel.

   The Primary Option Panel is a Selection Menu. Selection Menus have
   multiple choices indicated by buttons on the left with numbered or
   lettered identifiers followed by descriptive text.  We call these choices
   Options. To activate an Option, either click on the desired button, or
   type the Option identifier into the OPTION field and press [SPF-Enter].

   Picking an Option presents a lower level panel which in turn may cause an
   operation on a file or create a list of files which may be operated upon.
   The Primary Options are described below:

   0 - SPF PARMS

      Allows you to set SPF/Pro start up parameters, program function key
      definitions, run time parameters, and file profiles.  It is a good idea
      to review these items before working extensively with SPF/Pro.

   1 - BROWSE

      Allows viewing of a file without modifying it.

   2 - EDIT

      Allows viewing and modification of a file.

   3 - UTILITIES

      Provides select lists and file functions such as rename, delete, move,
      copy, and print.

   4 - FOREGROUND

      Allows you to set up compilers, utilities or other programs as user
      applications and execute them synchronously from within SPF/Pro.
      Control returns to the current panel when user program execution is
      complete.

   5 - BACKGROUND

      Allows you to set up compilers, utilities or other programs as user
      applications and execute them asynchronously from within SPF/Pro.  The
      user program is launched as a peer of SPF; control returns immediately
      to the current panel.

   6 - COMMAND

      Allows execution of operating system commands and programs from within
      SPF/Pro.

   7 - DIALOG TEST

      Provides a test harness for Panel Definitions, REXX macros, and a
      display facility for variables.

   A - APPLICATIONS

      This option provides access to the Custom Dialogs for Micro Focus, and
      XDB.

   C - CHANGES

      Provides a summary of changes in the current release.

   T - TUTORIAL

      Displays information to assist you in using SPF/Pro.  You can also
      reach this information by pressing [F1] at any time.

   X - EXIT

      Exits SPF/Pro and returns to the operating system command prompt.

   In most cases, selecting an Option takes you to a secondary menu.  Each
   time you make a selection you move one level deeper in the menu tree until
   you reach the desired function.

   After you use a specific function, you may:

   *  return to the next higher level by entering the END command (normally
      [F3]).

   *  return directly to the Primary Option Panel by entering the RETURN
      command (normally [F4]).

   *  return directly to the operating system prompt by entering =x in the
      command field and press [SPF-Enter].

#  8. {Parameter Options (Option 0)}

   SPF/Pro is a very flexible system. You can alter many of its operating
   characteristics through Primary Option 0, SPF/Pro PARMS.  The parameters
   controlling SPF/Pro are logically divided into major functional areas:

   *  Display and keyboard (Option 0.1).

   *  Printer destination and formatting characteristics (Option 0.2).

   *  PF key definitions (Option 0.3).

   *  Display characteristics (Option 0.4).

   *  Editor options (Option 0.5).

   *  File List options (Option 0.6).

   *  File Profiles (0.7)

   *  Paths (0.8)

   *  Concurrent (Option 0.C)

   *  Environment (Option 0.E)

   *  Fonts (Option 0.F)

   *  Keyboard Mapping (Option 0.K)

   *  Keyboard Macros (Option 0.M)

   There are two basic ways to access the parameter panels:

   *  When you start SPF/Pro, the first screen it presents is the Primary
      Option Panel.  If you want to work with the SPF/Pro parameters, select
      option 0, SPF/Pro Parameter Options. SPF/Pro responds by displaying the
      SPF Parameter Options menu.

   *  At any time, you can use the "jump" feature to move directly to the
      parameter options.  Move to the command line, type equal (=) and the
      option number (e.g. =0.5), then press [SPF-Enter].

#  8.1 {Terminal Characteristics (Option 0.1)}

   Panel 0.1 displays basic characteristics of your keyboard and display and
   allows you to alter some of them. This information tells SPF/Pro how you
   want to handle the display and keyboard.

   SPF/Pro obtains much of the information it needs from the operating
   system. Some entry fields on the panel prompt you for additional
   information.  For example, you identify the character you want to use as a
   command delimiter when issuing a string of commands.

   Individual fields are explained below:

   USER ID

      This field allows you to set up the user ID that SPF/Pro displays on
      the Primary Option Panel.  This is an informational field, it has no
      effect on processing.

   COMMAND DELIMITER

      Type in the character that you want to use to separate stacked
      commands. This character separates commands in a command string.  The
      default is a semicolon (;), which should only be changed with due
      consideration.

   PERSISTENT INSERT

      If YES is specified, the insert state is not reset when [SPF-Enter] is
      pressed.

      If NO is specified, the insert state is reset when [SPF-Enter] is
      pressed.

   SCROLL BARS

      If YES is specified, scroll bars are displayed for tables, browse, and
      edit.

      If NO is specified, scroll bars are not displayed for tables, browse,
      and edit.

   MAX CONCURRENT TASKS

      Specifies the maximum number of SPF/Pro sessions that can be active at
      any given time. New sessions are created by SPLIT, FSPLIT, SPLITV, and
      VSPLIT primary commands.

   DISPLAY TIME/DATE

      Specifies whether time, date, or both are to be displayed on the status
      line at the bottom of the display.

   PFSHOW Enable

      Specifies whether PFSHOW display should be enabled.  Specify "Y" or
      "N".

   PFSHOW Display Mode

      Specifies which PF key set is to be displayed as the first line of the
      PFSHOW bar.

      -  Specify "N" for NORMAL (PF1  - PF12)

      -  Specify "S" for SHIFT (PF13 - PF24)

      -  Specify "C" for CTRL (PF25 - PF36)

      -  Specify "A" for ALT (PF37 - PF48)

   PFSHOW Lines

      Specifies the number of display lines in the PFSHOW bar. Each line
      displays twelve PF keys.

   Cursor Insert Size

      Specifies the size of the text cursor when SPF/Pro is in insert mode.
      The size is expressed as a percentage from 1% to 100% where 100% is the
      largest available size.  If 0 is specified, the SPF/Pro default is
      used.

   Cursor Overtype Size

      Specifies the size of the text cursor when &PRODUCT is in overtype
      mode.  The size is expressed as a percentage from 1% to 100% where 100%
      is the largest available size.  If 0 is specified, the SPF/Pro default
      is used.

   Cursor Orientation

      Specifies how the text cursor is to be oriented.  Specify "V" for
      vertical orientation.  or "H" for horizontal orientation.

      Note:  Using other than default values for the cursor is only
      recommended for notebook computers where cursor visibility may not be
      as good as a traditional monitor.

   Press [F3] to effect changes and return to the SPF Parameter Options menu.

#  8.2 {Printer Characteristics (Option 0.2)}

   Panel 0.2 allows you to create multiple printer configurations which can
   be used to perform different printing roles. Printer setups are
   symbolically named. DEFAULT, the default, typically performs no formatting
   functions and is routed to logical device PRN.

   The following line commands are supported. Enter the line command to the
   left of the list entry, then press [SPF-Enter].

   S - select existing printer setup
   E - edit existing printer setup
   C - copy existing printer setup

   You can also use one of the following primary commands to operate on the
   printer setup:

   S setup-name       (select existing setup)
   LPRINT setup-name  (select existing setup)
   E new-setup-name   (edit a new setup)

   When you END or [F3], the new definition is saved.

   Fields of the printer setup dialog are described below:

   PRINTER DESCRIPTION

      Optional.  A brief description of this printer's characteristics for
      your reference.  This description is presented to the right of the
      logical printer name in the printer setup select list.

   SETUP

      The SETUP button invokes the Common Printer Connection Dialog of the
      operating system. This dialog connects the SPF logical printer to a
      specific system printer.

   SELECT FONT

      The SELECT FONT button invokes the Common Font Selection Dialog of the
      operating system. This dialog sets the font which is to be used by this
      print setup.

      Note:  Page depth in lines is automatically adjusted to correspond to
      the font selection.  The smaller the font, the more lines will fit and
      vice versa.

   FORM FEED:

      Optional. Specifies whether and when form feeds should be produced.

      INITIAL

         Specifies whether an initial form feed is sent to the printer prior
         to page one. This is normally not needed.

      FINAL

         Specifies whether a final form feed is sent to the printer after the
         last page. This is normally not needed.

      INTER

         In the event that there is more than one page, you may specify that
         an intermediate form feed be generated between pages. When pages are

         printed to capacity (typically 66 lines), the intermediate form feed
         is not required as the page is advanced when the page depth plus one
         line prints. Some printers (HP LaserJet series) advance full pages
         and treat an intermediate form feed as an ADDITIONAL page eject. In
         this case you do not want to generate intermediate form feeds.

   MARGINS:

      Optional. Specifies page margins. If any margins are specified, the
      PAGE parameter must be specified.

      TOP

         Specifies the number of blank lines to print before the header or
         any body text is printed.

         Note:  SPF reserves a small amount of space at the top of the page
         to accomodate the fact that laser printers disallow print access to
         that area.  The result is that the topmost printed line with TOP=0
         prints slightly below the top edge of the physical sheet.

      BOTTOM

         Specifies the number of blank lines to print after the body text
         and/or footer is printed. Normally 3 lines = .5 inch.  If you
         request intermediate form feeds, there is no need to print the page
         to full capacity.

         Note:  SPF reserves a small amount of space at the bottom of the
         page to accomodate the fact that laser printers disallow print
         access to that area.  The result is that the bottommost printed line
         with BOTTOM=0 prints slightly above the bottom edge of the physical
         sheet.

      LEFT

         The number of columns to reserve on the left edge of the page before
         each line of text.  Normally 10 columns = 1.0 inch.

         The left margin is applied to header/footer and body text.

      RIGHT

         The number of columns to reserve on the right edge of the page after
         each header/footer line of text. Normally 10 columns = 1.0 inch.

         The right margin is only applied to header and footer text; not to
         body text. Body text lines are allowed to print over the right
         margin.

   HEADER:

      Optional. Specifies the elements to be included in the page header.

      PARTS

         This field lets you specify a variety of text elements that may be
         included in the page header.  The page header is printed below the
         top margin and above the body text.

         Header text elements are:

         -- NAME, if printing a file, the file name

         -- TIME, the current time

         -- DATE, the current date

         -- PAGE NUMBER, the physical page number

         Header text elements are specified as one or more characters.  For
         example, to get the file name in the header specify "n".  Up to four
         text elements (all possibilities) may be specified.  For example, to
         get name, data, time, and page number, specify "ndtp".

      ALIGN

         Specifies the text alignment for the header text.  The header text
         alignment choices are:

         -- LEFT, all parts of the header text are set flush left.

         -- CENTER, all parts of the header text are centered.

         -- RIGHT, all parts of the header text are set flush right.

         -- SPREAD, the space remaining on the header line is evenly
            distributed between the parts in such a way that they fill the
            space available between the left and right margins.

      SPACE

         The number of blank lines to print immediately below the page
         header.

   FOOTER:

      Optional. Specifies the elements to be included in the page footer.

      PARTS

         Same as the page header but the page footer is printed below the
         body text and footer space.

      ALIGN

         Same as the page header but the alignment is applied only to the
         footer text.

      SPACE

         The number of blank lines to print immediately above the page
         footer.


#  8.3 {PF Key Definitions (Option 0.3)}

   Panel 0.3 displays the current settings of the PF keys and allows you to
   change them.  You can also specify labels to be displayed when keys are
   displayed with PFSHOW.

   You change a PF key definition by typing over the current definition.
   Primary commands are typed as-is; line commands are prefixed with a colon
   (:); literal data strings are enclosed in single quotes.

   PFSHOW labels are typed into the LABPFnn fields at the bottom of the KEYS
   panel. If no labels are specified, the PFSHOW label is the first eight
   characters of the PF key value. For example, "F1=HELP"

   The sample panel above shows the initial settings for your keys, which
   give you one-keystroke access to some frequently used general commands.
   The initial settings are all primary commands; you can also use line and
   macro commands. 1

   The initial settings for keys beyond PF12 repeat PF1-PF12 settings.  You
   can modify these definitions as desired without affecting the definitions
   for PF1-PF12.

   Some of the ways in which changing key functions or adding new functions
   can make your editing faster and more efficient are listed below:

   *  Set up PF keys to execute frequently used commands in one keystroke.

   *  Rearrange keys (move functions from one key to another) to help you
      remember the functions or reach the keys more easily.

   *  Set a series of keys to perform related complex operations in different
      ways depending on results of a previous operation. An example of this
      is RFIND ([F5]), RCHANGE ([F6]).

   *  Create macro commands to perform arbitrarily complex operations and
      assign them to PF keys.

   PF keys are applied to the active panel.  Not all commands accessed via PF
   key may operate in all contexts.  For example, editor line commands only
   operate in the Edit File Display.

   Changes to PF key definitions are applied when you press [SPF-Enter].

   When a command is executed via PF key, the primary command field value, if
   present, is passed to the command as a parameter. For example, type 5 in
   the primary command field, then press [F7]. This is the equivalent of
   entering the primary command "up 5".

#  8.3.1 {3270 Style PF Key Definitions}

   The initial settings for PF keys [F1] to [F12] are briefly defined below.
   The initial assignments are primary commands; you can execute all of them
   from the primary command field.

   [F1] HELP, present context sensitive help panel or long message.

   [F2] SPLIT, split the screen, start another SPF/Pro session.

   [F3] END, end the current function, return to the previous panel.

   [F4] RETURN, end current function, return to the Primary Option Panel.

   1. The appearance of the panel depends on the keyboard.

   [F5] RFIND, repeat the last FIND primary command.

   [F6] RCHANGE, repeat the last CHANGE primary command.

   [F7] UP, scroll up by scroll field amount. Same as [PG-UP].

   [F8] DOWN, scroll down by scroll field amount. Same as [PG-DN].

   [F9] SWAP, swap to the other split-screen session.

   [F10] LEFT, scroll left by scroll field amount.

   [F11] RIGHT, scroll right by scroll field amount.

   [F12] RETRIEVE, retrieve and display the last primary command.

#  8.3.2 {Mouse Selection Operations}

   The shifted PF keys are set up to do operations on the current selection.
   This mapping is for your convenience. Feel free to re-assign these keys as
   you see fit for your own use.

   [SHIFT][F1] SCUT, Copy the current selection to the clipboard, then delete
   it from the file.

   [SHIFT][F2] SCOPY, Copy the current selection to the clipboard.

   [SHIFT][F3] SPASTE, Paste the contents of the clipboard at the current
   cursor position.  The pasted data is always inserted. The contents of the
   clipboard are unchanged.

   [SHIFT][F4] SCREATE, Create a new external file from the contents of the
   current selection.

   [SHIFT][F5] SREPLACE, Replace an existing external file with the contents
   of the selection.

   [SHIFT][F6] STOUPPER, Convert the alpha characters in the current
   selection to uppercase.

   [SHIFT][F7] STOLOWER, Convert the alpha characters in the current
   selection to lowercase.

   [SHIFT][F8] SXCLUDE, Exclude all lines touched by the current selection.

   [SHIFT][F9] SDELETE, Delete the current selection from the file.

   [SHIFT][F10] SPRINT, Print the current selection.

#  8.3.3 {Changing PF Key Definitions}

   You can use a PF key to execute an SPF/Pro general command, edit primary
   command, edit line command, or edit macro command.  As mentioned above,
   you set up a key to execute a command by typing the command on the PF Key
   Definitions panel.  The rules for typing in each type of command are
   covered below:

   *  To assign a general command, an edit primary command, or a macro
      command to a function key, simply type in the command name.

   *  To assign a line command to a function key, type in a colon (:)
      immediately followed by the line command name.

   *  To assign string type data to the key, enclose the string in single
      quotes.

   *  To reset the assignment to the default value, clear the field then
      press [SPF-Enter].

   Changes to PF key assignments are immediately reflected in the PFSHOW
   display if present.

   Press [F3] to return to the SPF Parameter Options menu.

#  8.4 {Color Definitions (Option 0.4)}

   Panel 0.4 allows you to create multiple color schemes which can be used
   for different purposes. Each color scheme is named. Only one is active at
   any given time.

   The following line commands are supported. Enter the line command to the
   left of the list entry, then press [SPF-Enter].

   C - copy an existing color scheme
   D - delete an existing color scheme
   E - edit an existing color scheme
   R - rename an existing color scheme
   S - select an existing color scheme

   Use the following primary command to create a new color scheme:

   S new-name

   When a new color scheme is created, it is initialized to the values of the
   active color scheme.

   Use these panels to set colors for all SPF/Pro menus and panels.

   SPF/Pro menus and panels are divided into multiple color zones. Each color
   zone has a FOREGROUND and BACKGROUND color. A color zone is determined by
   the context of the text in the zone, not by its location on the screen.
   All text and symbols with the same context are displayed in the same
   color. You can assign any color combination to any zone.

   The following points should be considered when setting colors:

   *  Assigning the same color to FOREGROUND and BACKGROUND makes text
      invisible (e.g. black on black); SPF/Pro does not allow this.

   *  On a monochrome monitor this feature can control the location of normal
      and highlighted text. On gray-scale monitors it can control the level
      of gray assigned to different types of text.

      The GOTHAM color scheme is specifically designed for use on monochrome
      displays.  It is comprised of varying levels of grey to achieve
      attractive results in the limited environment.

   The names and functions of color zones are defined below:

   PROTECTED NORMAL

      Specifies the colors for protected areas which are used to display
      characters that identify panel and display information.  The "normal,"
      or low-intensity protected areas are used for such items as the names
      of display and input fields, and system-generated values in display-
      only fields.

   PROTECTED HIGH

      Specifies the colors for the high-intensity protected areas which are
      used for items that define the panel format: the panel title, the
      command line, SPF/Pro messages, and the arrows that mark input and
      display fields.

   UNPROTECTED NORMAL

      Specifies the colors for unprotected areas which are used to display
      characters you type in, including characters you have already typed.

      The "normal," or low-intensity unprotected areas are used for your
      normal working area, such as text or code and line numbers on an edit
      panel.

   UNPROTECTED HIGH

      Specifies the colors for the high-intensity unprotected areas which are
      used where you interact directly with SPF/Pro, such as the filename
      fields on entry panels, the scroll at the top of edit, browse, and
      select lists, and the command line.

   SHORT/LONG MESSAGE

      Specifies the colors for the short message which is displayed in the
      upper right corner of any panel.  The long message is displayed on the
      third display line of the panel.

   SHORT/LONG MESSAGE WITH ALARM

      Specifies the colors for the short message which is displayed in the
      upper right corner of any panel.  The long message is displayed on the
      third display line of the panel.

   BROWSE TEXT

      Specifies the colors for the text area of the browse function.

   EDIT TEXT

      Specifies the colors for the text area of the edit function.

   TOP/BOTTOM OF DATA TEXT

      Specifies the colors for the Top of Data and Bottom of Data lines.

   NOTE LINES

      Specifies the colors for note lines.

   MSG LINES

      Specifies the colors for message lines.

   INSERT LINES

      Specifies the colors for insert lines.

   PROF LINES

      Specifies the colors for profile lines.

   LINE COMMANDS

      Specifies the colors for the line command field when any character is
      typed in.

   LINE LABELS

      Specifies the colors for line labels.

   LINE NUMBERS

      Specifies the colors for line numbers.

   LINE TYPE MARKERS

      Specifies the colors for line type indicators such as "MSG", "NOTE",
      etc.

   LINE ACTIVE INDICATOR

      Specifies the colors for the active line. The active line is
      established by FIND and LOCATE primary commands and by software
      tabbing.

   SELECTED TEXT

      Specifies the colors for text which is selected with the mouse in
      BROWSE or EDIT, and text which is highlighted by FIND or CHANGE.

   COLORIZATION WORD CLASS 1

      Specifies the colors for class 1 programming language elements defined
      in the active .CLR file.

   COLORIZATION WORD CLASS 2

      Specifies the colors for class 2 programming language elements defined
      in the active .CLR file.

   COLORIZATION WORD CLASS 3

      Specifies the colors for class 3 programming language elements defined
      in the active .CLR file.

   COLORIZATION WORD CLASS 4

      Specifies the colors for class 4 programming language elements defined
      in the active .CLR file.

   COLORIZATION SOURCE STRINGS

      Specifies the colors for literal strings in program source.

   COLORIZATION SOURCE COMMENTS

      Specifies the colors for comments in program source.

   COLORIZATION SPECIAL CHARACTERS

      Specifies the colors for individual special characters in program
      source.

   Press [F3] to return to the SPF Parameter Options menu.

#  8.5 {Editor Options (Option 0.5)}

   Panel 0.5 lets you specify a number of options that affect the general
   operating characteristics of SPF/Pro.  The fields on the panel are listed
   and explained below:

   SOUND ALARM

      Indicate whether you want the alarm (beep) to sound when SPF/Pro issues
      an error message:

      Y

         Specifies that SPF/Pro is to beep when it issues an error message.

      N

         Specifies that SPF/Pro is not to beep when it issues an error
         message.

   VERTICAL SCROLL WITH CURSOR

      Indicate whether you want your cursor to cause vertical scrolling:

      Y

         Specifies that SPF/Pro is to scroll up or down by one when the
         cursor reaches the top or bottom of the screen.  This is typical for
         PC systems.

      N

         Specifies that the cursor is to wrap to the opposite edge when it
         reaches the top or bottom of the screen.  This is typical of
         3270-type terminals.

   HORIZONTAL SCROLL WITH CURSOR

      Indicate whether you want your cursor to cause horizontal scrolling:

      Y

         Specifies that SPF/Pro is to scroll left or right by one when the
         cursor reaches the left or right edge of the screen.  This is
         typical for PC systems.

      N

         Specifies that the cursor is to wrap to the opposite edge when it
         reaches the left or right edge the screen.  This is typical of
         3270-type terminals.

   MAX RECORD LENGTH

      Specifies the nominal maximum record length for any records that may be
      handled.  Set this value to the longest record you expect to process.
      The smaller the default maximum is, the more efficiently SPF/Pro will
      run. All internal buffers used to handle records are allocated at the
      maximum record length.

      When loading data delimited records from normal DOS text files, EDIT
      examines the length of each variable length record.  If it is the
      longest record read, the maximum record length allowed is automatically
      increased up to the limit set here by MAX RECORD LENGTH.

   RECENT EDIT DEPTH

      Specifies the depth of the Recent Edits file list which is accessed via
      Utility function 3.H.  The minimum depth is 1; the maximum is 99; the
      default is 16.

   SYNTAX COLORIZATION

      Specifies whether program source should be colorized or not.  This is a
      global setting. In addition to enabling colorization here, it is also
      necessary to bind a language colorization file (.CLR) to a particular
      file type and set a color scheme which defines which colors apply to
      the different classes of language elements.

      Y

         Program source colorization is globally enabled.

      N

         Program source colorization is globally disabled.

   AUTOMATIC PROFILE CREATE

      Indicate whether you want SPF/Pro to create profiles automatically.

      Y

         Create profiles automatically.  If not already present, a profile is
         created when a profile variable is altered.

      N

         Do not create profiles automatically under any circumstance.

   VIRTUAL LOAD

      Specifies the method of file loading to be used.  Virtual loading loads
      a small portion of the file and then displays the first frame. This
      provides the effect of "instant" loading even on very large files.

      A

         Specifies that virtual loading is ALWAYS used.

      E

         Specifies that virtual loading is used with EDIT only.

      B

         Specifies that virtual loading is used with BROWSE only.

      N

         Specifies that virtual loading is NEVER used.

   FIND/CHANGE SEARCH TYPE

      Indicate whether you want case-sensitive or case-insensitive searches
      when you issue a FIND, CHANGE, or EXCLUDE primary command.

      Whichever you select, you can request the other type explicitly when
      you issue the command.

      C

         Specifies that text searching is to be case-sensitive.  Character
         search mode matches your string exactly as entered, including
         upper/lower case.

      T

         Specifies that text searching is to be case-insensitive.  Text
         search mode matches your string with any case character in any
         position.

   EDIT READ-ONLY FILES

      Specifies whether you want to be able to edit read-only files.  In this
      case edit loads the file and allows all functions of EDIT to operate in
      the normal manner but will not allow you to save the file.  This is
      handy when you want to examine a file which has the read-only attribute
      and you want to perform operations which are not available in BROWSE.

      Y

         Allow edit of read-only files.

      N

         Don't allow edit of read-only files.

   SCROLL NOTELINES

      Specify whether NOTE lines are to scroll with the adjacent text or be
      static while text scrolls past them.

      Y

         Specifies that NOTE lines are to scroll.

      N

         Specifies that NOTE lines are not to scroll.

   UNDO ENABLE

      Specifies whether UNDO support is to be active. When UNDO support is
      active more memory is used to record edit transactions that may later
      be undone. In a memory constrained system you may want to disable UNDO.

      Y

         Activate UNDO support.

      N

         Deactivate UNDO support.

   ABEND RECOVERY ENABLE

      Specifies whether abnormal termination recovery procedures should be
      activated. Abnormal termination recovery gives you an opportunity to
      save work in progress before SPF terminates.

      Y

         Activate ABEND recovery.

      N

         Deactivate ABEND recovery.

   Press [F3] to return to the SPF Parameter Options menu.

#  8.6 {File List Options (Option 0.6)}

   Panel 0.6 lets you specify a number of options that affect the general
   operating characteristics of SPF/Pro.  The fields on the panel are listed
   and explained below:

   CLEAR LISTS

      Indicate whether you want ISPF style audit trail of file actions in
      select lists or not:

      Y

         Clear standard ISPF file action indicators in select lists.  For
         example, a deleted file simply drops out of the list.

      N

         Present standard ISPF file action indicators in select lists.  For
         example, a deleted file is marked "< DELETED >".

   CONFIRM DELETE OF FILES

      Indicate whether you want a delete confirmation panel presented any
      time you delete a file from a select list:

      Y

         Present a delete confirmation panel before deleting a file.

      N

         Do not present a delete confirmation panel before deleting a file.

   EXTENDED LINE COMMANDS

      Indicate whether you want the extended line command set to be available
      in all select lists.

      Y

         Make all extended line commands available in all select lists.

      N

         Extended line commands are only available in 3.x select lists.

   DEFAULT DIRECTORY SEQUENCE

      Specifies the sort sequence for select lists:

      *

         Files are presented in the same order as they are maintained in the
         system directory. Same as operating system DIR command.

      N

         Sort files by NAME.  This option produces ISPF/PDF style select
         lists.

      E

         Sort files by EXT.

      S

         Sort files by SIZE.

      D

         Sort files by DATE (TIME field is also sorted).  The sort is in
         descending time order, most recent first.

      Note:  All sort sequences except "*" present subdirectories together at
      the top of the list.

      Note:  You can also sort the select list with the SORT primary command.

   SHOW HIDDEN/SYSTEM FILES

      Specifies whether files with the hidden or system attribute should be
      displayed in directory lists.

      Y

         Show all files regardless of attributes.

      N

         Show all files except files with hidden or system attribute.

   SORT DIRS TO TOP

      In select lists you can have both files and sub-directories.  This
      option specifies that all directory type entries be displayed together
      at the top of the list.

      Y

         Display all directories together at the top of the list.

      N

         Display directories in the order they naturally occur.

   LIST PATHS HORIZONTALLY

      Specifies how path fields are to be displayed in panels which contain a
      PROJECT FILE section.

      Y

         Array the three elements of the path field horizontally.

      N

         Array the three elements of the path field vertically.

   EXPAND VARS

      Specifies whether to expand Ampersand (&) and Percent (%) type
      variables in file name specifications.

      Y

         Expand the variables.

      N

         Do not expand the variables.

   Press [F3] to return to the SPF Parameter Options menu.

#  8.7 {File Profiles (Option 0.7)}

#  8.7.1 {Profile Select List}

   Panel 0.7 lets you access individual file profiles from a select list.
   Each file profile is stored in directory SPFPRO\PROFILES.  Profiles are
   named extension.PRF corresponding to the various file extensions that you
   work with.  Files without an extension use profile NULL.PRF.

   The following line commands are supported. Enter the line command to the
   left of the list entry, then press [SPF-Enter].

   C - copy an existing entry
   D - delete an existing entry
   R - rename an existing entry
   S - edit an existing entry

   To create a new entry, use the following primary command:

   S new-name

   SPF/Pro allows you to apply special treatment to different classes of
   files based on the file type (file extension). For example,

   *  .COB files might be comprised of fixed length records of 80 characters.
      On an IBM mainframe this would be DSORG=F, LRECL=80.

   *  .C files might be variable length records delimited by a special escape
      sequence like CR/LF per the operating system stream file convention.

   *  Other files downloaded from a mainframe might contain binary data which
      requires special input processing.

   SPF/Pro is distributed with a number of example profiles.  When you edit a
   file with a type not provided, a default profile is used. If you alter
   profile values while editing the file, the altered profile is saved under
   the name of the file type in question.

   For example, after editing FOO.ABC, the profile ABC.PRF is created to
   preserve your profile changes. Subsequent edits of file type .ABC use the
   saved profile.

   As you can see from the example, file profiles are assigned a unique name
   matching the file type (extension) in the form "extension.PRF".  File
   profiles are kept in SPFPRO\PROFILES (or the directory where you installed
   SPF/Pro).

   Automatic profile creation is controlled by Option 0.5, AUTOMATIC PROFILE
   CREATE.

   When a new profile is created, its initial values are copied from the
   profile "DEFAULT".

   Option 0.7 allows you to set up information that SPF/Pro uses to process
   files.  If all your files are in standard ASCII data delimited format you
   will have little need to work with this panel.

   If you work with files that have non-standard formats, you must set up
   profiles that supply SPF/Pro with the information it needs to read and
   write these files. The following file formats are supported:

   *  ASCII or EBCDIC character set

   *  variable or fixed length data delimited records

   *  data delimiters CR, LF, or CR/LF

   *  Micro Focus Header-variable and VRECGEN formats

   Before discussing individual fields on the profile panel and explaining
   how to set up profiles for different purposes, we will take a look at how
   SPF/Pro uses the information in file profiles.

#  8.7.2 {How SPF/Pro Uses File Profiles}

   A file profile is a description of a file format.  Whenever you ask
   SPF/Pro to open a file, it looks for profile "extension.PRF".  The
   information in the profile tells SPF/Pro how to separate individual
   records within the file, how to find the end of the file, and other
   information needed to prepare the file for display and write it back to
   disk.

   To illustrate the significance of file profile information, let's review
   the standard format for ASCII text files and see how SPF/Pro processes
   these files:

   *  ASCII files are data-delimited. They contain a continuous stream of
      ASCII characters (bytes), with carriage-return (CR, x'0D') and line-
      feed (LF, x'0A') characters marking the end of each record.  That is,
      the records are delimited by escape sequences, rather than by record
      length, and they contain a variable number of characters.  The end of
      the file is indicated in one of two ways: by the length recorded in the
      operating system directory, or by an end-of-file (EOF, x'1A') character
      in the last character of the file.

   *  When SPF/Pro opens a standard file, it knows from the profile that it
      is data-delimited.  It reads the stream of characters until it reaches
      a CR/LF sequence; that constitutes one logical record.  The data
      portion of each record is preserved in memory, while the CR/LF
      sequences are discarded.  Input records are processed until the EOF
      character is encountered or physical end of file.

      Note:  If you create a profile for a new extension, SPF/Pro uses the
      default values from DEFAULT.PRF.

   *  In the standard case, when you close a file (with SAVE or END) SPF/Pro
      writes a standard file back to disk.  For each record on the display,
      it writes out the data characters, removes trailing blanks, and
      terminates the record with the CR/LF sequence. After writing the last
      record it writes the EOF character and closes the file.

   When you work with files in other formats, you need to set up profiles
   that tell SPF/Pro how to process these files.  Following sections cover
   individual fields that make up a file profile.  After that, we present
   some examples of setting up non-standard profiles.

#  8.7.3 {Profile Definition Panel}

   Profile definitions are effected through multiple panels.  The first panel
   is common to all profiles.  The second panel takes one of four forms
   depending on the record format D, L, M, or V.  File profile fields are
   discussed below:

   PROFILE NAME

      The name of the profile.  This name must match an existing file
      extension if it is to be applied automatically when a file of that type
      is loaded.  Names that do not exactly match a particular file extension
      may be applied by filling in the PROFILE field of the EDIT ENTRY PANEL.

      For reference, FAT file systems limit file extensions to three
      characters; HPFS file systems have no restriction on length.

   RECORD FORMAT

      This field indicates the record format.

      D (Data-delimited)

         This is the standard file format. It is also the SPF/Pro default.
         The input file is read and parsed into logical records at CR/LF (or
         other specified) record terminator boundaries.

      L (Length-delimited)

         This option is for non-standard files that may have been transferred
         to your system with fixed-length records, or for files (such as
         .EXE) that are not divided into records at all.

      M (Micro Focus Header-variable)

         This option is for Micro Focus header-variable record format.

      V (Micro Focus VRECGEN)

         This option is for Micro Focus VRECGEN record format.

      If you indicate that the input format is length delimited, SPF/Pro uses
      the maximum record length amount to divide the file into records,
      rather than looking for record delimiter characters. In addition,
      SPF/Pro uses the file length in directory entry to find the end of the
      file, instead of looking for the EOF character.  If the file length is
      not an even multiple of the record length, the last record is padded
      with blank characters to the maximum record length.

      If you don't know the format of a particular file, use example profile
      L72; its properties are

      MAX REC LENGTH = 72
      RECORD FORMAT = L

      Load the file via Option 2 (Edit).  In this mode, literally every
      character in the file is displayed in successive 72 byte records. If
      the characters are not meaningful as ASCII, use HEX ON to display them
      in hexadecimal format.  If the file is of standard format, you will see
      the CR/LF characters on the screen as well as the EOF character at the
      end. Other file formats can be examined using this technique.

   MAXIMUM RECORD LENGTH

      The maximum record length in bytes.  The maximum allowable value is
      64000.

      -  For data-delimited files, if an input record is longer than the
         profile maximum, an error message is issued and the maximum length
         is automatically increased to the maximum actual length encountered.
         Under no circumstance can an individual record be longer than 64000
         bytes.

         Each output record is written to disk with a CR/LF terminator.
         Trailing blanks are clipped.  An EOF character is written after the
         last record.

      -  For length-delimited files, input blocks of data are read in and
         parsed into records exactly equal to the maximum record length

         without regard to the data content.  So for example, a file of 800
         bytes with a maximum record length of 80 would yield exactly 10
         records of 80 bytes.

         Output records of maximum length are written directly to disk "as
         is" without delimiters. No CR/LF or EOF characters are written.

   CHARACTER SET

      Specify the character set for this file type.  Each data character is
      represented by a single byte of data with a decimal value in the range
      of 0 to 255. The ASCII character set is used in most non-IBM large
      computer systems and virtually all small computer systems.  The EBCDIC
      character set is used in all IBM S/370 systems.

      A

         Files of this type contain ASCII data characters.

      E

         Files of this type contain EBCDIC data characters.

   SAVE ON COUNT

      Specifies whether a file being edited should be saved after [SPF-Enter]
      has been pressed a specific number of times.

      If 0 is specified, the file is not saved until an END or SAVE command
      is processed.

      If a non-zero value is specified, the edit file is saved when
      [SPF-Enter] has been pressed the specified number of times.

      The default is 0.

   BACKUP ON SAVE

      Indicate whether a backup copy (.BAK) of the file you are editing
      should be created when you SAVE it.

      Y

         Create .BAK file on SAVE (or END).

      N

         Do not create .BAK file on SAVE (or END).

   OVERWRITE ORIGINAL

      Specifies whether on SAVE or END, the file is to be directly
      overwritten in place or written to a temp file which is subsequently
      renamed.  The former choice uses less disk space, the latter choice is
      safer.

      Y

         Overwrite the file in place.  The amount of disk space needed to
         save the file in this manner is equal to its size.

      N

         Create a new temporary file; then delete the original file (unless
         backup is on), then rename the temp file to the original file name.

         The amount of disk space needed to save the file in this manner is
         double its size. This method is safer but does require more space.

   DATA SHIFT ON CHANGE

      Indicate whether the CHANGE command should follow the ISPF DATA SHIFT
      rules.

      Y

         CHANGE should follow the ISPF DATA SHIFT rules.

      N

         CHANGE should not follow the ISPF DATA SHIFT rules.

   LINE TERMINATOR

      This item only applies to data-delimited files.  On input SPF/Pro
      treats the line terminator sequence as end of record.  On output
      SPF/Pro writes the line terminator sequence at the end of each record.
      See Maximum Record Length and Record Format for a summary of SPF/Pro's
      processing of these delimiters. The options available for the line
      terminator are:

      CR

         On input, end records on CR (Carriage Return, x'0D').  On output,
         write CR at end of each record.

      LF

         On input, end records on LF (Line Feed, x'0A').  On output, write LF
         at end of each record.

      CRLF

         On input, end records on CR+LF.  On output, write CR+LF at end of
         each record.  This is standard PC DOS ASCII file format.  It is also
         the SPF/Pro default.

      SCRLF

         On input, end records on LF or CR+LF.  On output, write CR+LF at end
         of each record.  This form is provided to untangle corrupted files.
         It is not normal to mix record terminator forms in the same file.

      Note:  Using the CR form, you can import/export files to/from APPLE
      systems.  Using the LF form, you can import/export files to/from UNIX
      systems.

   FILE TERMINATOR

      This field indicates whether on input to interpret the EOF (End of
      File, x'1A') character as "end of file". Similarly, on output it
      indicates whether to write the EOF character at the end of the file.

      Y

         On input, end reading when EOF character is processed.  On output,
         write EOF character at end of file.

      N

         On input, ignore EOF character; read to physical end of file.  On
         output, do not write EOF character at end of file.

   INPUT TABS TO

      Specifies whether TAB characters should be expanded to blanks when a
      file is loaded. It also specifies where the TAB stops are.

      If 0 is specified, TAB characters are not expanded when a file is
      loaded.

      If a non-zero value is specified, TAB characters are converted to
      blanks every N characters.

      The default is 0.

   OUTPUT TABS AT

      Specifies whether TAB characters should be inserted in place of blanks
      when a file is written to disk. It also specifies where the TAB stops
      are.

      If 0 is specified, TAB characters are not inserted when a file is
      loaded.

      If a non-zero value is specified, blanks are converted to TABs every N
      characters.

      The default is 0.

   PAD RIGHT W/BLANKS

      This field specifies whether data-delimited records, which are normally
      stripped of trailing blanks, should be padded with blanks to the
      maximum record length.  One of the examples (Fixed-length Files From
      Other Systems) in the following section makes use of this option.

   NULL PROTECTED

      Specifies whether characters in the range of decimal 0 (x'00') to
      decimal 31 (x'1F') are protected by the null character (x'00').  (This
      is a unique data form used in the Micro Focus Workbench environment.)

      Y

         On input, if a null character is processed, ignore it and process
         the character that follows it as a data character regardless of its
         value.

      N

         Process characters "as is". All characters below decimal 32 are
         non-data characters and may have side effects.

   Press [F3] apply changes and return to the SPF Parameter Options panel.

#  8.7.4 {File Profile Examples}

   Using the proper profile, SPF/Pro can adapt automatically to any file
   format.  This section includes some examples of using profiles to work
   with non-standard file formats.

   Fixed-length Files from Mainframes

      Program source files downloaded from IBM mainframe computers are
      normally fixed-length 80 character records (no delimiters). To edit

      these files set up a profile with a name like F80 with the following
      properties: RECORD FORMAT = L, MAX RECORD LENGTH = 80 (or other
      appropriate value), CHARACTER SET = E.

   UNIX Files

      Program source files downloaded from UNIX systems are variable length
      data-delimited with the LF character.  To edit these files, set up a
      profile with a name like UNIX with the following properties: RECORD
      FORMAT = D, MAX RECORD LENGTH = 80 (or other appropriate value),
      CHARACTER SET = A, LINE TERMINATOR = LF.

   APPLE Files

      Program source Files downloaded from APPLE systems are variable length
      data-delimited with the CR character.  To edit these files, set up a
      profile with a name like APPLE with the following properties: RECORD
      FORMAT = V, MAX RECORD LENGTH = 80 (or other appropriate value),
      CHARACTER SET = A, LINE TERMINATOR = CR.

   .EXE Files

      Executable file (.EXE) and other binary file forms (data bases) are of
      undefined format. You can however scan them using an arbitrary record
      length. For the purpose of the example we will use the editors default
      viewing width of 72 so that no horizontal scrolling will be necessary.
      To edit these files, set up a profile with a name like EXE or BIN with
      the following properties: RECORD FORMAT = L, MAX RECORD LENGTH = 72 (or
      other appropriate value), CHARACTER SET = A (or E as appropriate).

      When editing binary files, regardless of record length, you must not
      delete or add any characters.  This would change the length of the
      affected line and corrupt the file.  You can overtype characters.  To
      replace a character string with a shorter one, pad the replacement
      string with blanks to maintain the original length.

   Note:  If you intend to keep a non-standard file in your system for an
   extended period (or permanently), use Option 3.G, File Convert, to convert
   the file to the standard ASCII form.  The conversion process is
   straightforward; you specify one profile to read the file (e.g. UNIX_C)
   and a different profile to write the file (e.g. STD_C). In this manner you
   can convert any file form to any other form by simply applying different
   profiles.

#  8.8 {Paths (Option 0.8)}

   Panel 0.8 lets you display and modify all paths which are of interest to
   SPF/Pro.  SPF/Pro paths may be specified with multiple directories
   separated by a semicolon.

   Distinct paths are provided to facilitate shared use on LANS so that you
   can subscribe to a common set of control files while at the same time
   maintaining your own local control files without interfering with others.
   The 0.8 panel supports the following fields:

   DEFAULT SEARCH PATH

      Displays the value set in the SPF5PATH environment variable.  If
      SPF5PATH is not present, it displays the same value as that shown in
      EXECUTABLE PATH.

   EXECUTABLE PATH

      Displays the path where the SPF/Pro executable was found.

   GENERAL PROFILE, TABLE, AND KEYBOARD SEARCH PATH

      This is the directory (or directories) in which all profile and table
      based options are found (and altered). When storing a new profile (or
      option), the data is always stored in the first directory in the path.

   MACRO AND COMMAND PROCEDURE SEARCH PATH

      This is the directory (or directories) where all ISREDIT macros and
      ISPEXEC procedures are stored.

   PANEL AND MESSAGE SEARCH PATH

      This is the directory (or directories) where all panel and message
      definition files are stored.

   The search for control files proceeds in the following directory order:

   *  applicable custom path, if not found, then

   *  applicable preset path, if not found, then

   *  default search path, if not found, then

   *  executable path, if not found, then

   *  current directory

#  8.9 {Concurrent (Option 0.C)}

   The Concurrent option displays information about the Concurrent SPF/Pro
   execution environment. This panel is used by your network administrator to
   manage access to the concurrent form of SPF/Pro. A detailed discussion of
   this panel and its use is contained in the Concurrent SPF/Pro
   Administrator Reference.

#  8.10 {Environment (Option 0.E)}

   The Environment option displays information about the platform the SPF/Pro
   is running on. This is most frequently helpful when there is a question
   about your hardware or software configuration.

#  8.11 {Font (Option 0.F)}

   The FONT option lets you set the display fonts for panels and the PFSHOW
   buttons. The panel font is always monospace as panels are rendered on a
   grid of common sized cells. The PFSHOW font is used for the button labels
   on the PFSHOW bar. This font can be monospace or proportional.

   The first panel presented when you select Option 0.F is the FONT SELECTION
   PANEL. You can choose either the PANEL FONT option or the PFSHOW FONT
   option.

   Either font selection displays a lower level FONT SELECTION PANEL which
   displays the current face, size, and a table of available faces.  When you
   select a face, the FONT STYLE SELECTION panel is displayed.  This panel
   lets you set the font size, and the attributes BOLD and ITALIC.

   In summary to set the panel font:

   *  Activate Option 0.F

   *  on the first panel, select the PANEL FONT Option

   *  on the next panel, select the desired font face

   *  on the third panel specify the font size

   *  also on the third panel, set the bold and/or italic attributes if
      desired

   *  exit all panels via [F3] or END primary command

   The same procedure (modifying the second step) is followed to set the
   PFSHOW font.

#  8.12 {Keyboard (Option 0.K)}

   Panel 0.K allows you to create multiple keyboard schemes which can be used
   for different purposes. Each keyboard scheme is named. Only one is active
   at any given time.

   The following line commands are supported. Enter the line command to the
   left of the list entry, then press [SPF-Enter].

   S - select keyboard scheme
   E - edit keyboard scheme
   D - delete keyboard scheme
   C - copy keyboard scheme
   R - rename keyboard scheme

   When a new keyboard scheme is created via "e newname" primary command, it
   is initialized to the values of the active keyboard scheme.

   When you edit a keyboard scheme you are presented with a menu of Keyboard
   Mapping Options. All non-data key variations are represented in the
   keyboard mapping choices. Data keys are not mappable.  You can pick one
   of:

   1. Function Keys - allows you to specify mappings for all variations of
      FUNCTION keys.

   2. ALT Keys - allows you to specify mappings for all variations of the ALT
      keys.

   3. CTRL Keys - allows you to specify mappings for all variations of the
      CTRL keys.

   4. SHIFT Keys - allows you to specify mappings for all variations of the
      SHIFT keys.

   5. Extended Keys - allows you to specify mappings for all variations of
      the Extended keys (i.e. numeric keypad and island keys)

   6. Mouse - allows you to specify mappings for all variations of mouse
      buttons.

   7. Custom Keys - allows you to specify mappings for variations of the keys
      of your own design.

#  8.12.1 {Keyboard Mapping Data}

   For each key in any given set of keys there is a key name and mapping
   data. Mapping data is typed to the right of the key name in the key entry
   and consists of one of the following mapping data types:

   *  DATA - any text string enclosed in single quotes.  Example:

      'the man in the moon'

      Hexadecimal data is entered in the form x'nn'.  Example:

      x'1B'

   *  PRIMARY or LINE COMMANDS - commands are entered "as is" with no special
      syntactic treatment just as they would be in the primary or line
      command field. Line commands are prefixed with a colon (:).  As with
      function keys, data entered in the primary command field is treated as
      a parameter when a mapped key is processed.  Example:

      LOCATE SPECIAL

   *  SPF ACTIONS - a single SPF action enclosed in square brackets.
      Example:

      [CURSOR-UP]

   SPF actions are described below:

   CURSOR-UP nnn

      Move the cursor up "nnn" positions.  If "nnn" is not specified, 1 is
      assumed.

   CURSOR-DOWN nnn

      Move the cursor down "nnn" positions.  If "nnn" is not specified, 1 is
      assumed.

   CURSOR-LEFT nnn

      Move the cursor left by "nnn" positions.  If "nnn" is not specified, 1
      is assumed.

   CURSOR-RIGHT nnn

      Move the cursor right by "nnn" positions.  If "nnn" is not specified, 1
      is assumed.

   WORD-LEFT

      Move the cursor one word to the left.

   WORD-RIGHT

      Move the cursor one word to the right.

   END-OF-DATA

      Move the cursor to the end of data in the current field (the blank
      after the last data character).

   TAB

      Move the cursor to the first position of the next field.

   BACKTAB

      Move the cursor to the first position of the current field. If already
      at the first position, move to the first position of the previous
      field.

   NEWLINE

      Move the cursor to the first position of the next field or line.

   CURSOR

      Move the cursor to the first position of the primary command field.

   CURSOR-MOUSE

      Move the cursor to where the mouse pointer is located.

   SCROLL-LEFT nnn

      Scroll left "nnn" positions.  If "nnn" is not specified, scroll the
      number of positions specified in the current scroll amount.

   SCROLL-LEFT-MAX

      Scroll left to character position one.

   SCROLL-RIGHT nnn

      Scroll right "nnn" positions.  If "nnn" is not specified, scroll the
      number of positions specified in the current scroll amount.

   SCROLL-RIGHT-MAX

      Scroll to the rightmost position of the file record length.

   SCROLL-UP nnn

      Scroll up "nnn" lines.  If "nnn" is not specified, scroll the number of
      positions specified in the current scroll amount.

   SCROLL-UP-MAX

      Scroll to the top of the file.

   SCROLL-DOWN nnn

      Scroll down "nnn" lines.  If "nnn" is not specified, scroll the number
      of positions specified in the current scroll amount.

   SCROLL-DOWN-MAX

      Scroll to the bottom of the file.

   ENTER-3270

      Perform 3270 style enter processing.

   ENTER-SPFPC

      Perform early style SPF/Pro ENTER processing.  This action is provided
      for compatibility with older versions of SPF/Pro.

   CURSOR-SELECT

      Select the item on which the cursor resides. In menus this is the
      equivalent of typing the menu item number in the primary command field
      and pressing [SPF-Enter]. In select lists this is the equivalent of
      entering the select line command and pressing [SPF-Enter].

   CURSOR-MOUSE-SELECT

      Move the cursor to where the mouse pointer is located.  Select the item
      on which the cursor resides. In menus this is the equivalent of typing
      the menu item number in the primary command field and pressing
      [SPF-Enter]. In select lists this is the equivalent of entering the
      select line command and pressing [SPF-Enter].

   MOUSE-STREAM-SELECT

      Holding the left mouse button down and dragging the mouse produces the
      "Button-1-Drag" mouse event. By default this mouse event is mapped to
      "MOUSE-STREAM-SELECT". In this context, if the mouse cursor is in the
      text area, the selection is extended character by character as the
      mouse is dragged.  If the mouse cursor is in the line command field,
      the selection is extended line by line as the mouse is dragged.

   EXTEND-STREAM-SELECT

      Once the mouse cursor has been set via single click on the left mouse
      button, you can reposition the mouse, press [SHIFT] and click the left
      mouse button again. This extends the selection from the original mouse
      cursor position to the the current mouse position in a single step (no
      mouse dragging necessary).

   MOUSE-BLOCK-SELECT

      Holding the right mouse button down and dragging the mouse produces the
      "Button-2-Drag" mouse event. By default this mouse event is mapped to
      "MOUSE-BLOCK-SELECT". In this context, the block selection is extended
      blockwise as the mouse is dragged.

   EXTEND-BLOCK-SELECT

      Once the mouse cursor has been set via single click on the left mouse
      button, you can reposition the mouse, press [SHIFT] and click the right
      mouse button. This extends the block selection from the original mouse
      cursor position the the current mouse position in a single step (no
      mouse dragging necessary).

   STREAM-SELECT-UP

   STREAM-SELECT-DOWN

   STREAM-SELECT-LEFT

   STREAM-SELECT-RIGHT

   STREAM-SELECT-PGUP

   STREAM-SELECT-PGDN

      These events are mapped to the [SHIFT] key combined with the desired
      arrow key or page scroll key.  In all of these cases, the stream
      selection is extended in the direction and amount of the key pressed.

   DEL-CHAR

      Delete the character at the current cursor position.  If there are
      characters to the right of the deleted character, shift them to the
      left one position.

   BACKSPACE

      Move the cursor left one position; delete the character at that
      position.  If there are characters to the right of the deleted
      character, shift them to the left one position.

   BACKSPACE-BLANK

      Move the cursor left one position; blank the character in that
      position.

   DEL-END-OF-DATA

      Delete characters from the current cursor position to the end of the
      field.

   CANCEL

      If searching a list of files for a text string, abort the search.

      If a keyboard macro is playing, abort the macro.

      If entering data in a panel or the text area of an edit session, clear
      all data entered since the last [SPF-Enter] was processed.

   RESET

      Reset the input-inhibited condition and insert mode.

   KEY-MACRO macro-name

      Execute the named keyboard macro.

   KEY-MACRO-RECORD

      This action toggles key macro recording.  If key macro recording is
      OFF, start key macro recording.  If key macro recording is ON, stop key
      macro recording.

#  8.12.2 {Mapping a Custom Key}

   Custom keys come in two forms:

   *  Combinations of CTRL, ALT, and SHIFT keys that are not already
      represented in the standard keyboard mapping tables.

   *  Non-standard keyboards may have keys which are unknown to SPF/Pro.
      These keys are mappable through the CUSTOM interface (see following
      instructions).

   Follow these steps to map a custom key:

   1. After selecting 0.K, edit the desired keyboard scheme.  Select Option 7
      (CUSTOM).

   2. You are presented with a panel which requests that you press the custom
      key you want mapped. Press it. For example, you might press CTRL+ALT+A
      to create a unique custom key sequence.

   3. The custom key pressed is echoed in the KEY NAME field of the panel.
      Press [SPF-Enter] to accept the name.

      Note:  Keys which are unknown to SPF/Pro are given system generated
      names in the form "CUSTOM-nnnn" which you can alter later.

   4. You are now presented with a panel which once again echoes the name.
      At this point you can alter the name to be more meaningful or leave it
      "as is".

   5. Specify the mapping value for the custom key (i.e. data, primary or
      line command, or SPF/Pro action).

   6. Press [SPF-Enter] to accept the name and value. Press [F3] to return to
      the custom key list. The custom key is now mapped and should appear in
      the list in alphabetical order.

#  8.13 {Keyboard Map Files}

   Keyboard map files are kept in files corresponding to the map name with
   file type .KEY appended. For example, the keyboard map file for key map
   CCODE would be in file SPFPRO\PROFILES\CCODE.KEY.

#  8.14 {Key Macros (Option 0.M)}

   Panel 0.M displays a list of active keyboard macros.  The main use of the
   list is to refresh your memory as to which keyboard macros exist.
   Keyboard macros are bound to keys with the "[KEY-MACRO ...]" SPF action.

   The following line commands are supported. Enter the line command to the
   left of the list entry, then press [SPF-Enter].

   C - copy existing keyboard macro
   D - delete an existing keyboard macro
   E - edit existing keyboard macro
   R - rename existing keyboard macro

   Keyboard macros may be used to perform complex operations that do not
   naturally fall into the other categories of keyboard mapping.

   To record a keyboard macro, press [ALT]+[M]. You are presented with a
   panel which has fields for Name and Description.

   After entering the name and description, press [F3]. That returns you to
   the current context. All subsequent keystrokes are recorded exactly as
   entered. While you are recording keystrokes, the status line displays
   "RECORDING".

   When you press ALT+M a second time, macro recording is ended. A panel is
   presented which has a field for the key sequence to activate the macro.
   The initial value is "NONE". At this point if you press [SPF-Enter] the
   panel is dismissed and no key assignment is made. The named macro is
   placed in the macro pool for future assignment.

   If you press any other key, the key legend is presented in the entry field
   for confirmation. At this point if you press [SPF-Enter] the macro is
   bound to the displayed key in the active keyboard scheme and the panel is
   dismissed. If you press any other key, it takes the place of the currently
   displayed key.

   At any time you can press [ESC] to reset the entry field to the "(no
   assignment)" value.  Your recorded keystrokes are played back when you
   press the key that is bound to the macro. See SPF action [KEY-MACRO ...]
   for a description of how to manually bind a keyboard macro to a key.

#  8.15 {Keyboard Macro Files}

   Keyboard macro files are kept in files corresponding to the macro name
   with file type .MAC appended. For example, the keyboard macro file for key
   map IF would be in file SPFPRO\PROFILES\IF.MAC

#  9. {Browse (Option 1)}

   The SPF/Pro browse option allows you to view but not modify files.  When
   you start SPF/Pro the Primary Option Panel is presented.  Select option 1,
   Browse Entry Panel.

   A new screen is presented to you called Browse Entry Panel.  Enter the
   file name of the file you want to browse.

   If the file name specified contains wild-card characters ("*" or "?"), a
   Select List is generated.

   You can select a file to browse from this list by placing an S to the left
   of the desired filename and pressing [SPF-Enter].  The system then brings
   up the file to be browsed.

   Browse mode differs from edit mode in two fundamental ways:

   *  You can not modify the file in any way.

   *  There are no line commands; all columns are used for display.


#  10. {Edit (Option 2)}

   SPF/Pro edit allows you to create, modify, or display files.  Normally,
   you edit standard text files. By using length-delimited record format, you
   can edit files of any format or content.

   Standard text files are simply collections of variable length records
   terminated by CR/LF sequences. The file is terminated by an EOF character.
   There are many variations on this theme all of which can be processed by
   SPF/Pro with appropriate profiles.

   Some examples of standard operating system text files are:

   *  Computer program source files (*.COB, *.C, et al)

   *  system procedure language source (*.BAT, *.CMD)

   *  dBASE procedure files (*.PRG, *.FRM)

   *  Listing files (*.LST)

   Some examples of non-standard files are:

   *  S/370 mainframe EBCDIC files

   *  Executable programs (*.EXE)

   *  DLL files (*.DLL)

   *  dBASE databases (*.DBF, *.NDX)

#  10.1 {Selecting a File to Edit}

   After you start SPF/Pro, the Primary Option Panel is displayed. Select
   Option 2, Edit.

   The Edit Entry Panel is presented.  Enter the name of the file you want to
   edit.

   If the file name contains wild-card characters ("*" or "?"), a select list
   is generated.

   You can select a file to edit from a select list by placing an S to the
   left of the desired filename and pressing [SPF-Enter].

#  10.2 {Edit Profile}

   Each time you edit a file, SPF/Pro activates an environment consisting of
   modes, options, and parameters, called the edit profile. SPF/Pro maintains
   edit profiles in disk files between sessions.

   For each file extension, there is a corresponding edit profile.  Each time
   an edit session is begun, the corresponding profile is loaded to create
   the edit environment.  SPF/Pro saves the profile whenever the environment
   is changed.  For example, if you change CAPS mode from OFF to ON while
   editing a file with extension .COB, subsequent edits of files with that
   extension will have CAPS mode ON.

   To avoid saving changes from a particular edit session, use the PROFILE
   LOCK command.

   A different profile may be used when editing a particular file by
   specifying the PROFILE NAME in the Edit Entry Panel.

   A new edit profile is created when:

   *  a profile for this file extension does not exist, and

   *  Option 0.5, field AUTOMATIC PROFILE CREATE = Y, and

   *  a profile variable is altered from the default setting.

   The following table lists edit profile fields.

      Change with Primary Commands

      AUTONUM   Renumbers data automatically
      AUTOLIST  Lists data automatically on exit
      AUTOSAVE  Saves data automatically on exit
      BNDS      Specifies right and left bounds for edit commands
      CAPS      Controls translation to uppercase
      COLORMAP  Colorizes program source
      COMPARE   SUPERC file compare
      HEX       Displays data in hexadecimal format
      IMACRO    Names an initial macro to execute
      XMACRO    Names an exit macro to execute
      NUMBER    Controls line number generation
      PROFILE   Allows locking the edit profile
      STATS     Controls generation of a level number
      TABS      Enables or disables tabbing

      Change with Line Commands

      BNDS      Specifies right and left bounds for edit commands
      MASK      Applies a preset mask to inserted lines
      TABS      Defines tab stops

      Change with Line Commands

      SCROLL    Scrolling amount on edit, browse, select list panels

   The following table lists profile fields set in panel 0.7

      PROFILE NAME     The name of the profile (corresponds to file EXT)
      RECORD FORMAT    Specifies whether the file is data-delimited or
                       length-delimited
      MAX RECORD LEN   Specifies the maximum record length
      CHARACTER SET    Specifies the character set for text files, either
                       ASCII or EBCDIC
      SAVE ON COUNT    Specifies that SAVE should be invoked after
                       [SPF-Enter] is pressed a specific number of
                       times
      BACKUP ON SAVE   Specifies whether .BAK file should be created
      OVERWRITE        Specifies whether SAVE overwrites in place or not
      DATA SHIFT TYPE  Specifies whether the CHANGE primary command
                       should use ISPF style data shift
      LINE TERMINATOR  For data-delimited files,
                       specifies the line terminator sequence
      FILE TERMINATOR  For data-delimited files,
                       specifies the file terminator sequence
      INPUT TABS       For data-delimited files,
                       specifies expansion of tabs to blanks
      OUTPUT TABS      For data-delimited files,
                       specifies insertion of tabs in place of blanks
      PAD RIGHT W/BLNK For data-delimited output files,
                       specifies that output records should be padded on
                       the right with blanks to maximum record length
      NULL PROTECTED   For data delimited files, specifies protection
                       method for non-data characters

   The contents of edit profiles are displayed in:

   *  Panel 0.7 - this panel allows you to select, display, and modify
      profiles for specific file types.

   *  Within EDIT - the PROFILE command displays variables that are not part
      of Panel 0.7.

   Profile Name

      The first profile display field is unnamed. It contains the profile
      name followed by the record format and maximum record length in
      parenthesis.

      Normally the profile name is derived from the extension of the file
      being edited.  For example, if you are editing PROG1.COB, the profile
      will be COB.PRF.  You can invoke edit with a different profile by
      putting the alternate profile name in the PROFILE field of the EDIT
      ENTRY PANEL.

   RECOVERY

      RECOVERY is not supported and is always shown as OFF.

   NUMBER

      OFF

         No numbers are generated or expected.  This is the system default.

      ON

         SPF/Pro verifies that all lines have valid numbers in ascending
         sequence. It renumbers all lines if any lines are either unnumbered
         or out of sequence, but does not otherwise alter existing sequence
         numbers.

      STD

         Specifies that sequence numbers are to be generated in columns 73 to
         80.

         If stats is on, sequence numbers are in columns 73 to 78; a level
         number is generated in columns 79 and 80. The level number is
         increased by one each time the file is modified.

      COBOL

         Specifies that sequence numbers are to be generated in columns 1 to
         6.

      DISPLAY

         Specifies that sequence numbers, normally obscured, are to be
         displayed.

         This variable can be changed with the NUMBER primary command.

   CAPS

      ON

         Specifies that all data entered is to be set in upper case.

      OFF

         Specifies that all data entered is to be set "as is".  This is the
         default.

   HEX

      ON

         Display the file being edited in hexadecimal format. Each data line
         is followed by two corresponding lines vertically depicting its
         hexadecimal value.  The data can be modified by changing the text
         line or the hex lines.

      OFF

         Text is displayed in the normal manner.  This is the default.

   SAVECOUNT

      Displays OFF or the number of times [SPF-Enter] must be pressed before
      an automatic SAVE is performed.

   TABS

      This field specifies whether and how tabs are to be processed.

      ON

         Specifies that tabs are to be processed.

         STD

            Specifies that the [TAB] key is to move the cursor to the next
            hardware tab stop as defined by asterisk (*) characters on the
            TABS line.

            Unlike ISPF/PDF, SPF/Pro does not simulate 3270 attribute bytes.
            The cursor is still positioned one character after the tab stop
            (*) but the character at the tab stop can be modified.

         ALL

            Same as STD.

         character

            When a logical tab character is specified, data entered with that
            character is positioned to the nearest tab stop when [SPF-Enter]
            is pressed.

      OFF

         Hardware and logical tabs are ignored.  This is the default.

   CHARSET

      This field identifies the character set that the file data is in.

      ASCII

         Used in most small and midsize computer systems.

      EBCDIC

         Used in IBM S/370 mainframes and compatible systems.

         This variable can be changed in panel 0.7.

   AUTOSAVE

      This field describes whether to automatically save the file on exit.

      ON

         Files are saved on exit.  This is the default.

      OFF

         Files are not saved on exit.

   AUTONUM

      This field describes whether lines are to be renumbered when the file
      is saved.

      ON

         Lines are renumbered on exit.

      OFF

         Line numbers are not changed on exit.  This is the default.

   AUTOLIST

      This field describes whether listing is made on exit.

      ON

         The file is printed on exit.

      OFF

         The file is not printed on exit.  This is the default.

   STATS

      Stats indicates whether level stamping is on or off.

      ON

         If standard line numbering is on, columns 79 and 80 receive a level
         number which is incremented each time the file is edited.

      OFF

         No level stamping is done.  This is the default.

   PROF

      This is identical to ISPF field PROFILE.  We did not have enough room
      on the profile line to fully spell the field name.  Specifies whether
      the profile is locked.

      LOCK

         Changed profile parameters are not saved on exit.

      UNLK

         Changed profile parameters are saved on exit.  This is the default.
         This is identical to ISPF state PROFILE UNLOCK.  We did not have
         enough room on the profile line to fully spell the state value.

   IMAC

      This is identical to ISPF field IMACRO.  We did not have enough room on
      the profile line to fully spell the field name.  Identifies the name of
      the initial macro.

      This variable can be changed in the EDIT ENTRY PANEL.

   XMAC

      Identifies the name of the exit macro.

      This variable can be changed in the EDIT ENTRY PANEL.

   PACK

      PACK is not supported and is always shown as OFF.

   COLORMAP

      Displays the name of the colormap file or OFF.

#  10.3 {Editing a File}

   If you haven't already done so, take a moment now to read the quickstart
   chapter. This brief chapter will give you a minimal working knowledge of
   SPF/Pro.  It explains how to enter primary and line commands and a subset
   of editing operations.

#  10.4 {Popup Menus}

   Two popup menus are provided for your convenience while editing files:

   *  To access the line command popup menu, position the mouse cursor
      anywhere in the line command field area, click the right mouse button.
      Select the desired line command by positioning the mouse cursor over it
      and and clicking the left mouse button.

   *  To access the primary command popup menu, position the mouse cursor
      anywhere in the text area, click the right mouse button.  Select the
      desired line command by positioning the mouse cursor over it and and
      clicking the left mouse button.

#  10.5 {Edit Termination}

   The edit session may be ended in one of following ways:

   *  Press [F3]. (normally the END primary command)

   *  Execute the END primary command. This command saves the file then
      returns to the parent panel.

   *  Execute the CANCEL primary command. This command returns to the parent
      panel without saving the file.

   *  Double-click on the task close box with the left mouse button.

   Note:  When the END command is processed and AUTOSAVE = OFF + NOPROMPT,
   the file is not saved. In this case END is equivalent to CANCEL.

   When the END command is processed and AUTOSAVE = OFF + PROMPT, a prompt
   message appears, giving you a chance to issue a SAVE or CANCEL primary
   command to terminate the edit session.

   You may save the data at any time by issuing the SAVE primary command.

#  11. {Utilities (Option 3)}

   You can perform a number of utility functions, including moving, copying,
   renaming, and deleting files, without leaving the SPF/Pro environment. You
   can use SPF/Pro utility features to manage files instead of operating
   system commands. If you are an experienced ISPF/PDF user, this gives you
   the opportunity to work with directories and files in a familiar way.

   If you prefer to use operating system commands, you can issue them from
   the command line, or the Primary Option 6 panel (COMMAND). If you have
   non-SPF/Pro utilities you prefer to use, you can use Primary Option 4
   (FOREGROUND) to execute them from inside SPF/Pro.

   The two basic ways to access the utility functions are listed below:

   *  When you start SPF/Pro it displays the Primary Option Panel.  If you
      want to work with the utility functions, select Option 3, SPF/Pro
      Utilities. SPF/Pro responds by displaying the Utility Selection Menu.

   *  At any time, you can use the "jump" feature to reach the utility
      panels.  Type =3.x, in the primary command field, where "x" is the
      number or letter of the utility panel you want to use.  Then press
      [SPF-Enter].

   SPF/Pro utilities are located on multiple entry panels. You can perform
   utility functions by selecting a utility entry panel and typing in the
   file(s) and utility function(s) you want. The functions available on each
   panel are summarized below.

   3 - MOVE/COPY

      This panel allows you to move or copy a file, group of files or an
      entire directory. You can move or copy from one directory to another or
      from one drive to another. You can also rename the files as part of the
      move or copy.

   4 - FILE LIST

      This panel presents a select list that allows you to browse, edit,
      print, rename, or delete files with line commands.  This is useful when
      you want to clean up or reorganize a directory.

      Note: Super Lists A - E provide significant extensions to the basic 3.4
      functional set.

   A - DIRECTORY SEARCH

      If you are interested exclusively in directories, use this panel to do
      a single or multilevel search for directories.  The result of the
      search is a select list of directories that meet the search criteria.

   B - FILE SEARCH

      If you are interested exclusively in files, use this panel to do a
      single or multilevel search for files.  The result of the search is a
      select list of files that meet the search criteria.

   C - TEXT SEARCH

      If you want to search for a specific text string in one or more files,
      use this panel to do a single or multilevel text search.  The result of
      the search is a select list of files that contain the specified text
      string.

   D - COMPLEX SEARCH

      Complex search is provided for the power user who is already familiar
      with the basic directory, file, and text search methods.  It combines
      the capabilities of 3.A, 3.B, and 3.C in a single panel.  The result of
      the search is a select list of files and/or directories that meet the
      complex search criteria.

   E - DRIVE SEARCH

      Drive search lets you take a drive-oriented approach to your search.
      It presents a select list from which you can select one or more drives
      to search. The cross drive search can be particularly useful when you
      are in a networked environment that gives you visibility to many
      logical drives. You can do a single or multilevel search for
      directories, files, or both.  The result of the search is a select list
      of files and/or directories that meet the drive search criteria.

   F - SAVED LISTS

      When you use the SAVELIST primary command to save a select list, the
      saved list is preserved under a symbolic name. This panel displays a
      select list of those names. When you select an entry, it displays the
      selected list.

   G - FILE CONVERSION

      File conversion lets you convert files from one format to another.  For
      example, you might download a batch of mainframe files and then using
      file conversion, convert them to standard ASCII format for permanent
      residence on your PC.

   H - MOST RECENT EDITS

      Each time you edit a file, it is placed in the Most Recent Edits file
      list. List depth is optioned. The list persists across SPF/Pro
      sessions.

   I - SUPERC

      Compare one or more files, one to the other, line by line or byte by
      byte.  Produce a change report in a variety of formats.  Send the
      change report to BROWSE, PRINT, or a file.

   J - Command Tables

      This option lets you add new primary commands to the system or modify
      the behavior of existing primary commands.

   K - Partitioned Dataset Access

      This option provides access to PC based Partitioned Datasets which are
      used to contain SPF/Pro control information such as panel definitions.

   From the Utility Selection Menu you can select a utility panel or press
   [F3] to return to the Primary Option Panel.  Individual utility panels are
   covered in the following sections.

#  11.1 {MOVE/COPY (Option 3.3)}

   Panel 3.3 allows you to to move or copy a files and/or directories.  You
   can move or copy from one directory to another on the same drive or
   different drives.

   You can use wild-card characters (* and ?) in the from fields, to fields,
   or both, to specify a group of files:

   *  Typically you copy FROM files intact to the TO directory. In this case
      you specify the FROM NAME field and LEAVE the TO name field blank.

   *  If you want to rename files as they are copied or moved, you specify
      the FROM NAME field with a particular extension and the TO NAME field
      with a different extension. For example:

      FROM FILE:
         NAME ===> *.CBL

      TO FILE:
         NAME ===> *.COB

      In this example as the *.CBL files are moved or copied, they are
      renamed to *.COB.

   Individual fields are explained below.

   OPTION

      Specify the desired action in the OPTION field:

      M

         Moves files from one directory to another.  All files and
         sub-directories within the FROM directory are moved.

      C

         Copies files from one directory to another.  All files and
         sub-directories within the FROM directory are copied.

   FROM FILE

      Use these fields to specify the file(s) you want to move or copy.  The
      SYSTEM FILE SPECIFICATION overrides this field.

   TO FILE

      Use these fields to specify the destination for files you are moving or
      copying.  The SYSTEM FILE SPECIFICATION overrides this field.

   SYSTEM CURRENT DIRECTORY

      This field displays the current directory.  This field applies to the
      SYSTEM FILE SPECIFICATION only.

   FILE SPECIFICATION FROM/TO

      If you prefer operating system command line syntax, use these fields
      instead of the FROM FILE / TO FILE fields.

   Press [F3] to return to the Utility Selection Menu menu.

#  11.2 {FILE LIST (Option 3.4)}

   Panel 3.4 allows you to browse, edit, print, rename, or delete a file or
   group of files.  Simply specify the file (or files) on the FILE LIST
   UTILITY panel and press [SPF-Enter]. SPF/Pro presents a select list where
   you can specify line commands to perform various functions.

   This panel is particularly useful when you want to reorganize a directory;
   you can scroll up and down the select list, using different line commands
   to work with different files.

   You can:

   *  Browse or edit to review individual files.

   *  Use the delete command to remove outdated files.

   *  Use the rename command to reorganize the directory.

   *  Use the SORT command to reorder the directory.

   Use wild-card characters (* and ?) in the file selection fields to specify
   a group of files:

   *  The sample panel above would result in SPF/Pro displaying a select list
      of all files in the c:\TEST directory.  You could then use select list
      line commands to work with this group of files.

   *  If you wanted to be more specific, you could specify *.COB in the NAME
      field.  SPF/Pro would then display a select list containing only files
      with the COB extension.

   Individual fields are explained below.

   OPTION

      This is a standard command field, where you can enter SPF/Pro general
      commands.  Line commands are only available in the select list.

   PROJECT FILE

      Use this group of fields to identify the file(s) you want to work with.
      The SYSTEM FILE SPECIFICATION overrides this field.

   SYSTEM CURRENT DIRECTORY

      This field displays the current directory.  The current directory
      applies to the SYSTEM FILE SPECIFICATION field only.

   SYSTEM FILE SPECIFICATION

      If you prefer operating system command line syntax, use this field
      instead of the PROJECT FILE fields.

   CONFIRM DELETE REQUEST

      Use this field to specify whether you want confirmation before a file
      is deleted.

      YES

         When you issue a delete command in the select list, SPF/Pro displays
         a panel requesting confirmation before the delete is actually done.

      NO

         Delete commands in the select list are processed without
         confirmation.

   Once in the FILE LIST select list, the following line commands are
   available:

   B - browse the file.
   E - edit the file.
   N - launch new SPF task to edit the file
   P - print the file.
   R - rename the file.
   D - delete the file.
   G - execute .EXE, .BAT, or .CMD file
   T - make directory tree list
   K - convert file

   Press [F3] to return to the FILE LIST UTILITY.

   Press [F3] again to return to the Utility Selection Menu.

#  11.3 {DIRECTORY SEARCH (Option 3.A)}

   Panel 3.A allows you to search for directory type files, at one or more
   levels, from a specific path origin.  The resulting select list contains
   all directories at all requested levels that meet the directory file
   specification criteria.

   Individual fields are explained below:

   SYSTEM CUR DIR

      Identifies the current directory. This field only applies when the path
      specification does not proceed from the root directory.  For example,
      if you specified "C:\FOO" the search for "FOO" would begin in the root
      directory of drive "C".  If you specified simply "FOO" the search for
      "FOO" would begin in the current directory.

   PATH

      Specifies the origin for the search.  Directories may have file
      extensions although this is not a common practice.

   SEARCH SUBDIRECTORIES

      This field lets you specify whether the search should be limited to the
      first level of the specified path or to all levels (via recursive
      search).  For example, you might have a directory structure like:

      SPF             (directory for SPF project)
       +- DOC         (sub-directory for documentation)
       |   +- TEXT    (sub-directory for text files)
       |   +- SCREENS (sub-directory for raw images)
       |   +- CHARTS  (sub-directory for annotated images)
       |
       +- SRC         (directory for program source files)
           +- EDIT    (sub-directory for edit source)
           +- DM      (sub-directory for DM source)
           +- TOOLS   (sub-directory for tools source)

      In the example directory structure, if you specified

      PATH ===> \SPF

      SEARCH SUBDIRECTORIES ===> N

      you would get a select list of the directories from the first level
      only:

      DOC    <dir>
      SRC    <dir>

      Alternatively, if you specified

      PATH ===> \SPF

      SEARCH SUBDIRECTORIES ===> Y

      you would get a select list of the directories from all first levels:

      CHARTS   <dir>
      DM       <dir>
      DOC      <dir>
      EDIT     <dir>
      SCREENS  <dir>
      SRC      <dir>
      TEXT     <dir>
      TOOLS    <dir>

   Press [F3] to return to the FILE LIST UTILITY.

   Press [F3] again to return to the Utility Selection Menu.

#  11.4 {FILE SEARCH (Option 3.B)}

   Panel 3.B allows you to search for files, at one or more levels, from a
   specific path origin.  The resulting select list contains all files at all
   levels that meet the file specification criteria.

   Individual fields are explained below:

   SYSTEM CUR DIR

      Identifies the current directory.  The current directory comes into
      play when the file specification does not start in the root directory.

      For example, if you specified simply "FOO" the search for "FOO" would
      begin in the current directory.

      If you specified "C:\FOO", the search for "FOO" would begin in the root
      directory of drive "C".

   PATH

      Specifies the origin for the search and optionally constrains
      conformant files to a particular file extension.  Normal files are
      typically classed by extension. For example, COBOL program source files
      might have the extension ".COB".

   SEARCH SUBDIRECTORIES

      This field lets you specify whether the search should be limited to the
      first level of the specified path or to all levels (via recursive
      search).

   Press [F3] to return to the FILE LIST UTILITY.

   Press [F3] again to return to the Utility Selection Menu.

#  11.5 {TEXT SEARCH (Option 3.C)}

   Panel 3.C allows you to search for files containing a specific text
   string, at one or more levels, from a specific path origin.  The resulting
   select list contains all files at all levels that contain the specified
   text string.

   Individual fields are explained below:

   SYSTEM CUR DIR

      Identifies the current directory. This field only applies when the path
      specification does not proceed from the root directory.

   PATH

      Specifies the origin for the search and optionally constrains
      conformant files to a particular file extension.

   SEARCH SUBDIRECTORIES

      This field lets you specify whether the search should be limited to the
      first level of the specified path or to all levels (via recursive
      search).

   TEXT

      Specifies the text string to look for.

   CASE SENSITIVE

      Specifies whether the TEXT string search should be for an exact match
      (CASE SENSITIVE = Y), or for a match on upper and lower case characters
      (CASE SENSITIVE = N).

   Press [F3] to return to the FILE LIST UTILITY.

   Press [F3] again to return to the Utility Selection Menu.

#  11.6 {COMPLEX SEARCH (Option 3.D)}

   Panel 3.D incorporates all the functions of panels 3.A, 3.B, and 3.C.
   With Complex Search you can:

   *  Search for directories, on one or more drives, at one or more levels,
      in one or more paths.

   *  Search for files, on one or more drives, at one or more levels, in one
      or more paths.

   *  Search for files and directories, on one or more drives, at one or more
      levels, in one or more paths.

   *  Search for one or more text strings, in files, on one or more drives,
      at one or more levels, in one or more paths.

   Individual fields are explained below:

   SYSTEM CUR DIR

      Identifies the current directory. This field only applies when the path
      specification does not proceed from the root directory.

   FILE TYPES TO DISPLAY

      Specifies the types of files that are to be displayed.  You can specify
      "D" for directories only, "F" for files only, or "B" for both files and
      directories.

   SEARCH SUBDIRECTORIES

      This field lets you specify whether the search should be limited to the
      first level of the specified path or to all levels (via recursive
      search).

   PATH

      Specifies the origin for the search and optionally constrains
      conformant files to a particular file extension.  You can specify up to
      four individual paths, all of which participate in the search. Paths
      may specify different drives.

   TEXT

      Specifies the text string to look for.  You can specify up to four
      independent text strings.  If ANY of the text strings is found, the
      file containing the text appears in the resulting select list.

   CASE SENSE

      Specifies whether the TEXT string search should be for an exact match
      (CASE SENSE = Y), or for a match on upper and lower case characters
      (CASE SENSE = N).

   Press [F3] to return to the FILE LIST UTILITY.

   Press [F3] again to return to the Utility Selection Menu.

#  11.7 {DRIVE SEARCH (Option 3.E)}

   Panel 3.E presents the search function from a disk drive viewpoint.  It
   displays a select list of drives attached to your system which contains
   useful information about each drive.  You can then select one or more
   drives via the "s" line command and perform a variety of functions:

   *  Search for directories, on one or more drives, at one or more levels,
      from the root directory.

   *  Search for files, on one or more drives, at one or more levels, from
      the root directory.

   *  Search for files and directories, on one or more drives, at one or more
      levels, from the root directory.

   Individual fields are explained below:

   FILE TYPES TO DISPLAY

      Specifies the types of files that are to be displayed.  You can specify
      "D" for directories only, "F" for files only, or "B" for both files and
      directories.

   SEARCH SUBDIRECTORIES

      This field lets you specify whether the search should be limited to the
      first level of the specified path or to all levels (via recursive
      search).

   Press [F3] to return to the FILE LIST UTILITY.

   Press [F3] again to return to the Utility Selection Menu.

#  11.8 {SAVED LISTS (Option 3.F)}

   Panel 3.F displays a select list of saved lists. In practical terms, a
   saved list is a select list that you have decided to save under a symbolic
   name.

   A typical application of saved lists is to keep track and act upon groups
   of related files. For example a programmer might be working on ten related
   source files out of a larger set. By creating and then saving a list of
   these files, he can repeatedly access them without regard to the larger
   file set. When the activity related to a particular list is complete, the
   list is deleted.  One simple way to think about saved lists is as "micro-
   projects".

   Use the SAVELIST primary command to save a list.

   Press [F3] to return to the FILE LIST UTILITY.

   Press [F3] again to return to the Utility Selection Menu.

#  11.9 {FILE CONVERSION (Option 3.G)}

   Panel 3.G lets you specify a source and destination file and their
   respective profiles. In this way you can convert any file to any supported
   format.  Individual fields are explained below:

   SOURCE

      The SOURCE specification has two fields: FILENAME and PROFILE.  Specify
      the name of the source file you want to convert and the profile to be
      used for input processing of the specified file.

   DESTINATION

      The DESTINATION specification has three fields: FILENAME, PROFILE, and
      MAX LRECL.  Specify the name for the converted output file and the
      profile to be used for output processing. If you simply want to change
      the record length, use the MAX LRECL field.

   The source file is read using the source profile and then written out to
   the destination file name using the destination profile.

   Press [F3] to return to the FILE LIST UTILITY.

   Press [F3] again to return to the Utility Selection Menu.

#  11.10 {MOST RECENT EDITS (Option 3.H)}

   Panel 3.H lets you reactivate a previous edit session.  Each time you edit
   a file, the file name and associated information is placed in the Most
   Recent Edits file list. This list is functionally equivalent to any of the
   3.x lists. You can use any of the super list line commands. List entries
   are in temporal order (order of creation).

   The depth of the list is controlled by the RECENT EDIT DEPTH field of
   panel 0.5.

   Note:  Files residing on removable drives (e.g. A:, B:, etc) are not
   included in the Most Recent Edits list.

   Press [F3] to return to the FILE LIST UTILITY.

   Press [F3] again to return to the Utility Selection Menu.

#  11.11 {SUPERC (Option 3.I)}

   Panel 3.I allows you to:

   *  compare one or more files in one or more directories

   *  compare files line by line or byte by byte

   *  create change reports in a variety of formats

   *  direct the change report to a variety of destinations

   Individual fields are explained below:

   NEW FILE

      NAME

         Required.  Specifies the more recent version of the file (or files)
         to be compared.  Specify one of:

         -- a fully qualified individual file name

         -- an ambiguous file name (contains * or ?)

      PROFILE

         Optional.  Specifies the profile name for reading the new file.  If
         not specified, the profile is determined by the file type.  If
         COMPARE TYPE = BYTE, the profile is ignored.

   OLD FILE

      NAME

         Required.  This is the original (or older version) of the file (or
         files) to be compared.  Specify one of:

         -- a fully qualified individual file name

         -- an ambiguous file name (contains * or ?)

      PROFILE

         Optional.  Specifies the profile name for reading the old file.  If
         not specified, the profile is determined by the file type.  If
         COMPARE TYPE = BYTE, the profile is ignored.

   Note:  The following scenarios occur when specifying new and old file
   names:

   *  NEW FILE is an individual file.  OLD FILE is a directory (or ambiguous
      file name).  In this case the "new" file is compared to the "old" file
      of the same name (if it exists) in the directory specified in OLD FILE.

   *  NEW FILE is a directory (or ambiguous file name).  OLD FILE is a
      directory (or ambiguous file name).  In this case all "new" files that
      fit the file pattern are compared to "old" files of the same name (if
      they exist) in the OLD FILE directory.

   *  NEW FILE is a directory (or ambiguous file name).  OLD FILE is an
      individual file.  In this case the "new" file (if it exists) with the
      same name as the "old" file is compared to the file specified in OLD
      FILE.

   COMPARE TYPE

      This field specifies the type of comparison to make.

      FILE

         This mode of compare is the fastest available.  It does not report
         specific differences; it simply reports if files differ (forces
         LISTING TYPE = OVSUM).

      LINE

         This mode of compare is the most intelligent comparison mode for
         program source.  It reports inserts and deletes on a line by line
         basis.

      BYTE

         This mode of compare is most useful in comparing binary or other
         non-record oriented files.  The files are compared byte by byte and
         the report provides differences in hexadecimal dump format with a
         summary.  When BYTE is specified, the PROFILE fields are ignored.

   LISTING TYPE

      This field specifies the form for the output listing of the report.

      OVSUM

         This form provides an overall summary of differences without a
         detail level report.

         Note:  When COMPARE TYPE = FILE is set, OVSUM is the only allowable
         choice.

      DELTA

         This form provides differences only in the detail level of the
         report followed by a summary.

      CHANGE

         This form provides the same data as the DELTA form with the addition
         of up to 10 matching lines before and after each differences
         section.

      LONG

         Lists the entire new file with all differences noted and a summary
         section.  This is the most detailed level of reporting available.

   OUTPUT

      This field specifies where the report is to be sent.

      BROWSE

         The report is placed in temporary file SUPERC.TMP and BROWSE is
         invoked on that file.  When you exit from BROWSE, the temporary file
         is deleted.

      PRINTER

         The report is sent to the current logical printer.  See Print Setup
         Option 0.2 for details on selecting and setting up logical printers.

      filename

         The report is placed in the specified file.

   PROCESS OPTIONS

      This field specifies a variety of special processing operations that
      may be applied to the compare.

      ANYC

         This option causes all characters to be treated as if they are
         uppercase for the purpose of the comparison. The actual file is not
         changed.  For example, with ANYC specified, "ABC" and "abc" would
         compare equal.  This option is only valid for COMPARE TYPE = LINE.

      COBOL

         This option causes characters in columns 1 through 6 to be ignored.
         In COBOL source files these columns are reserved for sequence
         numbers.  This option is only valid for COMPARE TYPE = LINE.

      STD

         This option causes the last eight characters of each fixed length
         record to be ignored.  In assembly language and some control type
         source files these columns are reserved for sequence numbers.  This
         option is only valid for COMPARE TYPE = LINE.

   COMPARE COLUMNS

      This field specifies the range of columns to which the comparison
      applies.

      START

         The first column to which the comparison applies.  Columns prior to
         the start column are ignored.

      END

         The last column to which the comparison applies.  Columns after the
         end column are ignored.

#  11.11.1 {Detail Report (Line Compare)}

   The detail report for COMPARE TYPE = LINE provides three classes of
   information regarding differences between files:

   *  Lines that are present in the old file but not present in the new file
      are displayed as "deletes" in the following form:

      D - ... text of line ...  00000 DELETED

      Where 00000 is the line sequence number in the old file.

   *  Lines that are present in the new file but not present in the old file
      are displayed as "inserts" in the following form:

      I - ... text of line ...  00000 INSERTED

      Where 000000 is the line sequence number in the new file.

   *  Lines that are present in both files are displayed when LISTING TYPE =
      CHANGE or LONG is specified.

#  11.11.2 {Detail Report (Byte Compare)}

   The byte compare detail report displays 32 hex bytes at a time (64 printed
   characters).  For each 32 byte segment, the report shows offset (OFFSET),
   matching bytes (M), inserted bytes (I), and deleted bytes (D), on three
   separate lines one above the other in the following format:

   OFFSET: 000080
   M - 6D5C6C6F   646D69 2E  7973 202F723A
   I -          31         58
   D -          34         65*

   In the example above, the asterisk (*) on the "D" line indicates that more
   than one character was deleted at that point.

   If all characters in the line match, only the M (match) line is printed.
   This case applies to LISTING TYPE = CHANGE and LONG.

#  11.11.3 {Summary Report (All Compares)}

   The summary report is always produced.  It is comprised of:

   *  date and time of comparison

   *  old and new file names on separate lines

   *  number of inserts, deletes, and matches

   *  separator line for multiple compares

   mm/dd/yy  hh:mm:ss         INSERT   DELETE   MATCH
   ... old name ...
   ... new name ...           000000   000000   000000
   ---------------------------------------------------
   ... old name ...
   ... new name ...           000000   000000   000000
   ---------------------------------------------------
   ... old name ...
   ... new name ...           000000   000000   000000
   ---------------------------------------------------

#  11.12 {Command Tables (Option 3.J)}

   This option lets you add new primary commands to the system or modify the
   behavior of existing primary commands.

#  11.13 {Partitioned Dataset Access (Option 3.K)}

   This option provides access to PC based Partitioned Datasets which are
   used to contain SPF/Pro control information such as panel definitions.

#  12. {Foreground (Option 4)}

   The SPF/Pro foreground feature allows you to set up external programs and
   utilities for execution while you are working with SPF/Pro.  Foreground
   tasks run synchronous to SPF/Pro.  Control is returned to the current
   panel when their execution is complete.  See page     for a method of
   running tasks asynchronous to SPF/Pro.

   The distinction between using FOREGROUND and executing operating system
   commands directly from the primary command field is that FOREGROUND has
   access to SPF/Pro variables which are automatically set when you edit,
   browse, select a file from a select list:

   *  &ZDSN, the fully qualified file name (path + name).  Example,
      \PROJECT1\SOURCE\ACCOUNTS.COB

   *  &ZDSNPATH, the path component of the fully qualified file name.
      Example, \PROJECT1\SOURCE

   *  &ZDSNNAME, the name component of the fully qualified file name.
      Example, ACCOUNTS.COB

   *  &ZDSBASE, The base component (file name) of the fully qualified file
      name.  Example, ACCOUNTS

   *  &ZDSNEXT, the extension component (file type) of the fully qualified
      file name.  Example, COB

   In addition, FOREGROUND eliminates the need to key in set patterns of
   parameters when you invoke commands.

   There are two foreground panels; the first panel is a select list of the
   applications you can execute.  The second panel is used when setting up a
   specific application.

   The following line commands are supported. Enter the line command to the
   left of the list entry, then press [SPF-Enter].

   B - execute an existing application in background
   C - copy an existing application
   D - delete an existing application
   E - edit an existing application
   F - execute an existing application in foreground
   R - rename an existing application
   S - execute an existing application

   To set up a new application, use the following primary command:

   S new-application-name

   To execute a specific user application directly, use the following primary
   command:

   USER application-name

#  12.1 {Setting Up a User Application}

   When you edit an application using the E line command, SPF/Pro displays
   the User Application Definition panel.  Use this panel to identify a user
   application program by drive, path, and program name. You can also set up
   a parameter that will be passed to the user application program when you
   execute it. The parameter can be a literal string, or a variable (such as
   the current filename symbol) that is resolved when the user application is
   executed.

   The information on this panel is passed to the operating system when you
   request execution of a user application.  Individual fields are explained
   below:

   USER APPLICATION NAME

      A symbolic name of your choice representing the function performed by
      the application. This is the name you type in the primary command field
      to execute the application.

   APPLICATION DESCRIPTION

      A short description of the function performed by the application.  This
      information augments the application name.

   PROGRAM

      Specify the fully qualified path name of the executable file (.EXE)
      which is to be activated by this application.

   PARMS

      Use this field to specify a parameter to be passed to the named
      program.

      You can specify literals or variables in this field. If you specify a
      variable, it will be resolved before it is passed to the operating
      system.

      The most commonly used variable is &ZDSN, the name of the last file
      Edited, Browsed, or identified with the U or UU line command in a
      select list.  This facilitates launching a compile directly out of the
      editor.

   WORKING DIRECTORY

      Some programs must execute within a directory which is different from
      the current directory.  In this case, use this field to specify the
      directory that should be used.

   After setting up the application, press [F3] to return to the Application
   Edit Selection Menu.

   After any foreground application executes, you will get the Press any key
   to continue. prompt. Press any key to dismiss the TTY screen and return to
   normal SPF/Pro operation.

   Note:  The only applications that may be executed via this option are:

   *  system commands or batch files

   *  commands serviced by COMMAND.COM (e.g. DIR)

#  13. {Background (Option 5)}

   The SPF/Pro background feature allows you to set up external programs and
   utilities for execution in parallel with SPF/Pro. This is essentially
   identical to FOREGROUND Option 4 except that applications launched via
   BACKGROUND run asynchronously to SPF/Pro under a separate process.

   See page 119 for details on setup and use.


#  14. {Command Processor (Option 6)}

   This option allows you to execute operating system commands from inside
   the SPF/Pro environment.  You can also do this from any primary command
   field. This function is primarily useful when you want to issue a series
   of operating system commands without intervening SPF/Pro operations.

   The are a number of ways to access the command processing panel:

   *  From the Primary Option Panel select Option 6, Command.

   *  From any panel use jump command =6 to go directly to Primary Option 6.

   *  From any panel use the DOS primary command without parameters.  This is
      equivalent to invoking Primary Option 6.  You can also use DOS command
      alias CMS, CP, TSO.

   There are three entry fields:

   ENTER SYSTEM COMMAND BELOW:
   ===>

   Type the command or program name and any parameters desired at the arrow
   following the field name, then press [SPF-Enter].

   FORCE KEY PRESS AFTER COMMAND EXECUTION ===> Y | N

   Specify "Y" (yes) if you want the command to run to completion and then be
   prompted before the command shell is terminated.

   Specify "N" (no) if you want the command to run to completion and
   automatically terminate the command shell.

   EXECUTE IN FOREGROUND ===> Y | N

   Specify "Y" (yes) if you want the command to suspend SPF/Pro execution
   during its execution.

   Specify "N" (no) if you want the command to run outside the process
   control of SPF/Pro. In this case, the command and SPF/Pro operate
   completely independently.

   The entry fields are followed by a table containing a command history.
   Use this table to retrieve any previously entered command to the command
   entry field.  Commands are retrieved by either the select (S) line command
   or by double-clicking the mouse on the desired comamnd.

   Command history is most recent first with automatic elimination of
   duplicates.

   The command history is maintained across SPF sessions so that you may use
   it repeatedly after fully terminating SPF/Pro.


#  15. {Dialog Test (Option 7)}

   The Dialog Test Option provides facilities for testing of modified or
   newly developed dialogs.


#  16. {Applications (Option A)}

   SPF/Pro provides custom dialogs to interface with a number of complex
   environments which are integral to the development and maintenance of
   business applications.

   MF

      This custom dialog of over 65 panels provides a comprehensive SPF style
      interface to all elements of the Micro Focus Workbench development
      tools allowing trouble free development of applications targeting the
      MVS host environment.

   XDB

      This custom dialog of over 25 panels provides a comprehensive SPF style
      interface to the XDB RDBMS DB2 emulator.  All the familiar panels found
      in DB2I are now at the workstation level.

   SAMPLES

      Sample dialog applications.


#  17. {Custom Dialog for Micro Focus}

   This custom dialog provides an SPF style interface to Micro Focus'
   workstation tools for COBOL application development.  It completely
   replaces all menus provided by Micro Focus with a more familiar SPF style
   presentation while executing in a functionally equivalent manner.

   Access is also provided to the ancilliary tools related to development of
   programs which use IMS, DB2 and CICS.

#  17.1 {Main Menu}

    SPF/Pro(1) ------------------ Custom Dialog for MF Main Menu -------------- 5.0
    OPTION===>

       0  Environment      - View the environment variables     USERID   - CTCUSER1
       1  BROWSE           - Browse source and data files       TIME     - 10:37
       2  EDIT             - Create or change source data       OPER SYS - Win95
       3  UTILITIES        - Invoke file utilities              Version  - V1
       4  FOREGROUND       - Checking, Compiling, Animating and Running
       5  BACKGROUND       - Checking, Compiling and Running in background
       6  COMMAND          - Execute operating system command
       7  DIRECTIVES       - Edit Checker Directive files
       A  About            - About Custom Dialog for MF (help has more information)
       C  CICS             - Invoke MCO and associated utilities
       D  DB2              - Invoke XDB and associated utilities
       I  IMSVS86          - Invoke IMSVS86 and associated utilities










   

   The Main Menu offers access to all the components of the custom dialog.
   These are:

   Environment

      List all environment variables.  All the system's environment variables
      are displayed in alphabetical order. Details are displayed on one
      screen, with extended lines being broken into readable components.

   BROWSE

      Browse source and data files (SPF/Pro Browse).  Source and simple data
      files can be browsed with the usual Browse utility.

   EDIT

      Edit source and data files (SPF/Pro Edit).  Source and simple data
      files can be edited with the usual Edit utility.

   UTILITIES

      Access common Workbench file utilities.  The Micro Focus utilities for
      file management are provided via this menu. The facilities available
      are listed below. A standard ISPF style interface is provided where
      possible otherwise the product's own interface is invoked.

   FOREGROUND

      The foreground options are similar to those on the mainframe providing
      familiar front end panels to drive the Micro Focus Checker, Animator
      and run time environments.

   BACKGROUND

      The background options are also similar to those on the mainframe
      providing familiar front end panels to drive the Micro Focus Checker
      and Compiler. The tasks initiated as background tasks post completion
      messages when finished.

   COMMAND

      SPF/Pro command line interface.  Execute operating system commands from
      the command line.

   DIRECTIVES

      Edit checker directives for selected COBOL dialect.  The checker
      directives files can be accessed and edited from this panel.  It lists
      all the available checker files.

   About

      Display information about Custom Dialog for Micro Focus.  Help
      information and technical support.

   CICS

      Load the Micro Focus CICS option panels if installed.

   DB2

      Load the DB2 emulator, either XDB or PC based DB2, if installed.

   IMS

      Load the Micro Focus IMS option panels if installed.

#  17.2 {Environment Variables Display List (Option 0)}

    SPF/Pro(1) ------ Custom Dialog for MF Environment Variables --- ROW 017 OF 096
    OPTION ===>

    The following list shows the current setting of the environment variables.
    The values may be scrolled up and down and left to right.

    Environment        Current          Startup Directory
    Variable           Setting          ===>E:\MASTER\SOURCE
    ------------------------------------------------------------------------------
    COBDEMO            E:\ADE\COBOL\DEMO
    COBDIR             E:\ADE\COBOL\LBR;E:\ADE\COBOL\EXEDLL;
     --->               E:\ADE\MCO\LBR;E:\ADE\IMS;e:\ade\ds\gui
    COBFSTATCONV       HOSTSTAT
    COBHNF             E:\ADE\COBOL\ON-LINE
    COMSPEC            D:\OPSYS\CMD.EXE
    CPE                E:\ADE\CP2
    DB2CHKPTR          O
    DB2INSTANCE        DB2
    DB2PATH            E:\SQLLIB
    DLSINI             D:\IBMLAN\NETPROG\NETGUI.INI
    DPATH              D:\ibmcom;D:\IBMLAN\NETPROG;D:\IBMLAN;D:\MUGLIB;

     --->               D:\OPSYS;D:\CMLIB;D:\OPSYS\SYSTEM;D:\OPSYS\INSTALL;D:\;
     --->               D:\OPSYS\BITMAP;D:\OPSYS\MDOS;D:\OPSYS\APPS;D:\MMOPSYS;
     --->               D:\MMOPSYS\INSTALL;C:\WINDOWS

   

   This panel allows you to browse the environment variable settings for the
   environment. It provides a list of all the environment variables, Micro
   Focus, XDB, as well as those set for Windows.

   The list is scrollable if it extends over more than one screen. For long
   environment variable values these are broken down over serveral lines -
   note the "--->" notation indicating continuation.

#  17.3 {Browse Source and Data Files (Option 1)}

    SPF/Pro(1) ------------------- BROWSE - ENTRY PANEL --------------------- V 5.0
    COMMAND ===>

    PROJECT FILE:
       DRIVE ===>E:
       PATH  ===>\master
       PATH  ===>\source
       PATH  ===>
       NAME  ===>*.cbl
                  (Blank or pattern for file selection list)

    SYSTEM CUR DIR: E:\MASTER\

    SYSTEM FILE SPECIFICATION:
    ===>e:\samples\*.cbl,*.cpy

    PROFILE  ===>           (Blank defaults to file extension)








   

   The source file name can be entered directly or a wild card specification
   can be used as in the example above. This results in the display of a
   selection list as seen below.

    SPF/Pro(1) ------------------- BROWSE SELECTION LIST ----------- ROW 134 OF 186
    COMMAND ===>                                                  SCROLL ===>CSR
    E:\SAMPLES
        NAME     EXT    SIZE      DATE     TIME   ATTRS COMMENTS
    ------------------------------------------------------------------------------
        PROGRAMA CBL      2190   5-01-91   2:23a  A...
        PROGRAMB CBL      2091   5-01-91   2:23a  A...
        PROGRAMC CBL      2091   5-01-91   2:23a  A...
        PRINTPRG CBL      2712   5-07-91  12:31p  A...
        PUBLISHR CPY       177   7-27-92  10:06p  A...
        READER01 CBL      3545   9-11-91  12:10p  A...
        READER02 CBL      1238   2-21-89   5:44p  A...
        REPORT01 CBL      2451   4-30-90  11:21a  A...
        REPORT02 CBL      2451   1-23-90   2:14p  A...
        REPORT03 CBL      2370   4-30-90  11:24a  A...
        REPORT04 CBL      2422   5-03-90  12:22p  A...
        ROOMPLAN CPY       178   3-29-90   4:34p  A...
        ROUTERX1 CBL       845   5-01-91   2:23a  A...

        RTS-INVO CBL     28497   4-08-91   5:23a  A...
        SALESLST CBL      4976   5-01-91   2:23a  A...
        SCREEN1  CPY      2896   4-30-90  10:07a  A...
        SCREEN2  CPY      3546   5-01-90  10:36a  A...
        SCREEN3  CPY      2407  10-09-91  11:21a  A...
        SCREEN4  CPY       375   1-25-91  11:32p  A...

   

   Source and data files can be browsed using the normal SPF/Pro Browse
   utility.

#  17.4 {Edit Source and Data Files (Option 2)}

    SPF/Pro(1) -------------------- EDIT - ENTRY PANEL ---------------------- V 5.0
    COMMAND ===>

    PROJECT FILE:
       DRIVE ===>E:
       PATH  ===>\master
       PATH  ===>\source
       PATH  ===>
       NAME  ===>*.cbl
                  (Blank or pattern for file selection list)

    SYSTEM CUR DIR: E:\MASTER

    SYSTEM FILE SPECIFICATION:
    ===>e:\samples\*.cbl,*.cpy

    PROFILE  ===>           (Blank defaults to file extension)

    MAX RECL ===>           (1..4096, new profile default = 80 )
    IMACRO   ===>
    XMACRO   ===>




   

   As with the Browse utility a file name can be entered directly or wild
   cards can be used to select a list of candidate files for editing.

   The Profile, Max Recl, IMACRO and XMACRO options allow the file to be
   viewed with alternative settings to the default for .CBL and .CPY files
   thus enabling data files, in EBCDIC for example, to be edited directly.
   See page 72 for details on profile specification.  IMACRO and XMACRO allow
   an edit macro to be applied to the file being edited, perhaps to expand
   all the COPY statements as note lines (try using the NOTECOPY macro).

   Source and data files can be edited using the normal SPF/Pro Browse
   utility.

#  17.5 {Utilities Menu (Option 3)}

   The file utilities provided by Micro Focus support development of
   mainframe programs which use non-database (IMS/DB2) files. This menu
   provides access to the most common features of the Workbench products.
   They are:

    SPF/Pro(1) ----------- Custom Dialog for MF File Utilities Options -------- 5.0
    OPTION===>


       0  HYHELP           - On line help panels
       1  MFXFER           - File transfer
       2  MDECONV          - Conversion utility for source with embedded hex
       3  DIFF             - File comparison utility
       4  MFWFL            - Workbench file loader
       5  HEXEDIT          - Hexadecimal editor
       6  DFED             - Data file editor
       7  PARMPASS         - Define runtime program Parameters
       8  MFEXTMAP         - Define DDnames for local files
       F  File-AID/PC VSAM - Invoke File-AID/PC IF INSTALLED
       P  ProxMVS          - Invoke ProxMVS IF INSTALLED

    +----------------------------------------------------------------------------+
    | File utilities are provided for supporting the development of a COBOL      |
    | program.                                                                   |
    +----------------------------------------------------------------------------+






   

   0 HYHELP

      On line help panels.  Micro Focus On-line Help gives ready access to
      detailed information about COBOL and the Workbench Products.

   MFXFER

      File transfer.  MFXFER is the intelligent file transfer mechanism
      provided by Micro Focus. The intelligence comes from the ability of the
      source file transfer mechanism to read the download/upload source for
      CALL and COPY (and INCLUDE) statements and then to append these to the
      download/upload list.

   MDECONV

      Conversion utility for source code with embedded hex.  Some downloaded
      programs contain embedded characters which are not printable (that is
      special EBCDIC codes often used as some kind of attribute in CICS and
      IMS/C programs). The conversion program MDECONV translates a source
      program in EBCDIC to ASCII but it will not alter literals containing
      any non-printable EBCDIC codes.

   DIFF

      File comparison utility.  DIFF is used to compare two source files; it
      highlights differences in content in terms of lines added, deleted and
      changed.

   MFWFL

      Workbench file loader.  MFWFL is similar to Access Methods Services on
      the mainframe and it enables the developer to convert data files from
      sequential formats to indexed and relative formats and vice versa as
      well as doing EBCDIC to ASCII conversion.

   HEXEDIT

      Hexadecimal editor.  HEXEDIT allows you to see the contents of the file
      in hexadecimal format. Internal file structure is ignored. Every byte
      of the file can be viewed in its raw form including all control
      information.

   DFED

      Data file editor.  DFED is used to edit indexed and relative files
      without the need to write a specific COBOL program for that limited
      purpose.

   PARMPASS

      Define runtime program parameters.  PARMPASS allows you to specify run
      time parameters in the absence of JCL.

   MFEXTMAP

      Define DDnames for local files.  MFEXTMAP allows you to specify DD name
      assignments in the absence of JCL.

   File-AID/PC

      Invoke FileAid-PC (if installed).  If Compuware's FileAid-PC is
      installed it can be accessed from this option.

   ProxMVS

      Invoke ProxMVS (if installed).  Proximity Software's JCL emulator
      PROXMVS can be invoked from this option if it is available.

#  17.5.1 {Online Help (HYHELP) (Option 3.0)}


    SPF/Pro(1) ------------ Custom Dialog for MF Online Help (HYHELP) --------- 5.0
    COMMAND ===>
                                 Online Help (HYHELP)

    Access to on line help provides information on all aspects of the Micro Focus
    product range. You can enter a topic which is any text string such as a COBOL
    reserved word. If no topic is entered you will be presented with the contents
    page. You may use the mouse to navigate around on line help.

        Enter optional topic ===>












    Press ENTER to continue END to exit with no action


   

   Micro Focus online help (HYHELP) is available from this menu.  It provides
   information about all aspects of the Micro Focus products from COBOL
   syntax and error messages to Checker Directives and guidance on the use of
   tools.

   Field on the panel:

   Optional topic

      Optional.  Any name, COBOL reserved word, Checker directive message
      number.  If omitted a menu is provided.

#  17.5.2 {Micro Focus File Transfer (Option 3.1)}

   The file transfer program, MFXFER, when invoked by the Utilities Option 1
   presents the Micro Focus panels for driving this program.

   MFXFER allows specification of host and workstation defaults for such
   things as PDS names containing source and copy code, target directories,
   source control commands etc.

   During the upload/download process MFXFER can be programmed to detect
   COPY, INC, INCLUDE and CALL statements and add these objects to the list
   to be transfered.

   Note:  Custom Dialog for MVS provides these same features from within the
   SPF/Pro, a seamless integration the MVS host mainframe.  Contact Command
   Technology Sales for more information. Custom Dialog for MVS also allows
   direct access to Panvalet and Librarian datasets.

#  17.5.3 {Source File Conversion (Option 3.2)}

    SPF/Pro(1) ---- Custom Dialog for MF Source File Conversion ---- ROW 001 OF 018
    COMMAND ===>
                           Source File Conversion (MDECONV)

    If the downloaded program or the program to be uploaded contains NTC's (or
    Non-Text Characters) then Source Converter will correctly deal with them.

    File name of source file ===>e:\ade\spfpc40\rexx.doc
    File name of target file ===>e:\ade\spfpc40\rexx.doc
    (if left blank the source file will be overwritten)

    Directives ===>
    Directives are listed below (the list can be scrolled)
    ------------------------------------------------------------------------------
    Directive  Description
    ASC        DEFAULT - Causes file to be converted from EBCDIC to ASCII
    BAD:A      Abort if file contains bad characters and stop
    BAD:F      Fail if file contains bad characters and go on to next one
    BAD:O      Turn checking for bad characters Off
    BAD:U      DEFAULT - Ask the user if file contains bad characters
    BAD:W      Warn the user if file contains bad characters and continue
    EBC        Causes the file to be converted from ASCII to EBCDIC
    ERR:A      Abort if the conversion errors and stop
    ERR:F      Fail if the conversion errors and go on to next one

   

   The MDECONV panel (Source File Conversion) allows you to specify the files
   for conversion and the directives to use to control the conversion. The
   directives are listed at the bottom of the screen and can be scrolled.

   Source File Conversion is required when the EBCDIC source file on the
   mainframe contains embedded hexadecimal characters for such things as
   screen attributes in CICS and IMS/DC programs. If these sources were
   converted to ASCII during the file transfer process the embedded hex
   values would be changed also.

   MDECONV converts EBCDIC to ASCII and vice versa.

   Note:  For VSC2 programmers, a new way of specifying hex constants is
   provided in COBOL (e.g. VALUE X'E231').

   Fields on the panel:

   Source file

      Required.  The name of the original source file. The usual extension is
      .CBL.  The field can have the full path specified as it is scrollable.

   Target file

      Optional.  The name of the converted source file. The usual extension
      is .CBL.  The field can have the full path specified as it is
      scrollable.  If this field is omitted, the input file is also used as
      the output file.

   Directives

      Optional.  Here is where the MDECONV directives are listed. Any number
      can be typed into this scrollable field. The values which can be typed
      are shown at the bottom of the screen in a scrolling list.

#  17.5.4 {Source File Comparison (Option 3.3)}

    SPF/Pro(1) ------- Custom Dialog for MF Source File Comparison - ROW 001 OF 053
    COMMAND ===>
                             Source File Comparison (DIFF)

    This utility will allow the user to compare two files (in ASCII) and to list
    the differences. A large number of directives are available for use.

    File name of 'old' file ===>e:\backup\source\stats001.cbl
    File name of 'new' file ===>e:\master\source\stats001.cbl

    Directives ===>list(e:\work\stats0001.dif)
    Alternatively create a file called DIFF.DIR which contains these directives.

    Directive  Description
    ------------------------------------------------------------------------------
    AHEAD(n)   DEFAULT(257) - ABBR AHD - Look ahead limit - 1 to Buffer size
    ASM        DEFAULT NOASM - Don't include spaces lines or * and ; lines
    BEEP       DEFAULT NOBEEP - Beep if Diff halts
    BELL       DEFAULT NOBELL - Beep if Diff halts
    BROWSE(n)  DEFAULT(10) - ABBR BRO - Display n records if look ahead reached
    BUFFER(n)  DEFAULT(512) - ABBR BUF - Specify buffer size
    COBCPY(pat DEFAULT($COBCPY) - Path of copy/include books
    COBOL      DEFAULT NOBCOBOL - ABBR CBL - Matches in col 7 to 72 and ignore * bl
    CONFIRM    DEFAULT NOCONFIRM - ABBR CNF - Writes directives used in report

   

   The DIFF panel (Source File Comparison) allows you to specify the files
   for comparison and the directives to use to control the comparison. The
   directives are listed at the bottom of the screen and can be scrolled.
   Alternatively use SUPERC on Option 3.I.

   Fields on the panel:

   Old file name

      Required.  The name of the original or 'old' source file. The usual
      extension is .CBL.  The field can have the full path specified as it is
      scrollable.

   New file name

      Required.  The name of the replacement or 'new' source file. The usual
      extension is .CBL. The field can have the full path specified as it is
      scrollable.

   Directives

      Optional.  This is where DIFF directives are listed. Any number can be
      typed into this scrollable field. The values which can be used are in
      the table shown.

#  17.5.5 {Workbench File Loader (Option 3.4)}

    SPF/Pro(1) ----------- Custom Dialog for MF Workbench File Loader --------- 5.0
    COMMAND ===>
                            Workbench File Loader (MFWFL)

    WFL is used to convert data files from one format to another. Formats include
    line sequential, record sequential(fixed or variable), indexed sequential (f/v)
    relative (f/v), VRECGEN, mainframe report and PC report formats. In addition a
    'mask' can be created to allow for COMP and PACKED DECIMAL fields and ASCII/
    EBCDIC conversion can take place.

    If you have a profile already set up enter it here ===>.PRO











    Press ENTER to continue END to exit with no action


   

   File formats on the workstation and mainframe are similar but must be
   converted via Workbench File Loader (or FileAid/PC from Compuware if it is
   available). The correspondence between file formats is as follows:

   Other file formats are supported including Mainframe and PC report
   formats, VRECGEN and BTRIEVE.

   Field on the panel:

   Name of Profile File

      Optional.  The profile name is the name of a pre-existing file which
      has been created by Workbench File Loader. If no profile exists, leave
      this field empty and the WFL entry panel will be displayed.

#  17.5.6 {Hexadecimal Editor (Option 3.5)}

    SPF/Pro(1) ----------------- Custom Dialog for MF Hexedit ----------------- 5.0
    COMMAND ===>

                             Hexadecimal Editor (HEXEDIT)

    The HEXEDIT utility gives the ability to see both source and data files in hex.
    The same facility is available through edit by using the primary command
    HEX ON. Also, for data files when using Data File Editor, vertical hex can be
    toggled on via ALT F2.

    Enter file name ===>











    Press ENTER to continue END to exit with no action


   

   The HEXEDIT utility gives the ability to see both source and data files in
   hex.  The same facility is available through edit by using the primary
   command HEX ON. Also, for data files when using Data File Editor, vertical
   hex can be toggled on via ALT F2. Hexadecimal editing of Indexed
   Sequential and Relative files is best achieved with FileAid/PC if
   available.

   Note: Records cannot be inserted or deleted with HEXEDIT. They can only be
   updated. Hex searching is provided as well as view modes of ASCII or
   EBCDIC.

   Field on the panel:

   Name of file

      Required.  The file name is the name of a pre-existing file which needs
      to be edited.

#  17.5.7 {Data File Editor (Option 3.6)}

    SPF/Pro(1) ------------- Custom Dialog for MF Data File Editor ------------ 5.0
    COMMAND ===>
                               Data File Editor (DFED)

    The Data File Editor utility allows data files, sequential, indexed or relative
    to be edited in situ. By using the Structure Selector record layouts (copy
    books) can be superimposed upon the data and this can be done selectively.


    Enter file name ===>LIBCODED.DAT

    EBCDIC or ASCII ===>E (E/A)
    Backup file     ===>N (Y/N) Backup files are called name.DBK (Index=name.IBK)
    Full edit mode  ===>Q (F/Q) FULL (all file types) or QUICK (indexed and rel.)









    Press ENTER to continue END to exit with no action


   

   This provides easy editing of EBCDIC (and ASCII) data files especially
   Indexed and Relative forms. Alternatively you replace this option with
   FileAid/PC.

   Fields on the panel:

   Name of file

      Required.  The name of a pre-existing or new file which needs to be
      edited.

   EBCDIC or ASCII

      Required. Specify one of: 'E' or 'A'.  The choice between E and A
      invokes DFED in EBCDIC or ASCII mode.

   Backup file

      Required. Specify one of: 'Y' or 'N'.  If backup is selected the
      original data file is copied (.DAT becomes .DBK and .IDX becomes .IBK).
      This can take some time on a large data file.

   Edit Mode

      Required. Specify one of: 'F' or 'Q'.  Quick edit mode is only for
      Indexed and Relative files. It is useful on large files because they
      are not loaded into memory. Full edit (all file types) edits in memory;
      being written to disk when a save is performed.

#  17.5.8 {Parameter Passer (PARMPASS) (Option 3.7)}

   In JCL the option exists to pass data to the COBOL program's Linkage
   Section by means of the PARM= statement. As JCL is not available (unless
   PROX/MVS is used) on the Workstation the Micro Focus Workbench enables
   this data to be added to a file called PARMPASS.DAT.

    SPF/Pro(1) EDIT E:\MASTER\DATA\PARMPASS.DAT ------------------- COLUMNS 001 072
    COMMAND ===>                                                  SCROLL ===>CSR
    ****** ********************************* TOP OF DATA **************************
    000001 ********?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    000002 PROGNAME?Description of Parameters
    000003 ********?is Y for EBCDIC and N for ASCII
    ****** ******************************** BOTTOM OF DATA ************************



















   

   Option 7 on the utility menu provides invokes the editor on this file.
   The internal format of this files is as follows:

   The the PARMPASS.DAT file does not exist, it is created for you with an
   example layout.

#  17.5.9 {External File Mapper (Option 3.8)}

   In JCL the mapping of files to DDNAMES is done with DD statements. As JCL
   does not exist on the workstation (unless PROX/MVS is used) an external
   file can be used to map DDNAMES to workstation names. This file is called
   MFEXTMAP.DAT. It can be located in the current directory or on the path
   specified by the MFEXTMAP environment variable.

    SPF/Pro(1) EDIT E:\SHELLS\MVSSHELL\MFEXTMAP.DAT --------------- COLUMNS 001 072
    COMMAND ===>                                                  SCROLL ===>CSR
    ****** ********************************* TOP OF DATA **************************
    000001 *Example layout for file external mapper file
    000002 *--------------------------------------------
    000003 *These DDNAMES are for program: XYZ123
    000004 *DDNAME   data set name
    000005 DDNAME01  MAINFILE.DAT
    000006 DDNAME01  X:\DATA\TRANFILE.DAT
    000007 DDNAME03  \PROJECT\TESTING\HISTORY.DAT
    000008 *--------------------------------------------
    ****** ******************************** BOTTOM OF DATA ************************














   

   Option 8 on the Utility Menu invokes the editor on this file.  The
   internal format of the file is as follows:

   If the MFEXTMAP.DAT file does not exist, it is created for you with an
   example layout and recommended standards.

   Note: If more than one program is being developed at the same time they
   share MFEXTMAP.DAT. If two or more programs have the same DDNAME, the
   lines for that program must be placed higher in the file to ensure they
   are detected first.

#  17.5.10 {Fileaid-PC/VS (Option 3.F)}

   Compuware's Fileaid-PC/VS can be invoked if it is installed.

   When invoked, Fileaid-PC appears in the VS (VSAM) mode and this can be
   toggled to IMS or DB2 (if installed) modes by use of F2=Change Environment
   command.

   Please note that Fileaid-PC is a self contained program an its panels are
   not modifiable nor are function key settings passed from SPF/Pro to
   Fileaid-PC.

#  17.5.11 {ProxMVS (Option 3.P)}

   Proximity Software's JCL emulator PROXMVS can be invoked from this option
   if it is available.

#  17.6 {Foreground Menu (Option 4)}

   Foreground gives access to the most common features of the Workbench
   products involved in Check, Compile, Animate and Run.

    SPF/Pro(1) ------------ Custom Dialog for MF Foreground Options ----------- 5.0
    OPTION===>
                            Foreground Processing Options

       1  CHECK                 - Check program (to .INT)
       2  COMPILE               - Compile program (to .GNT)

       3  ANIMATE Batch Non-IMS - Batch Programs (with QSAM/VSAM/DB2)
       4  ANIMATE IMS           - Batch(IMS/DB)/Online(IMS/DC) Programs (with DB2)
       5  ANIMATE CICS          - Online(CICS) Programs (with VSAM/IMS/DB2)


       6  RUN Batch Non-IMS     - Batch Programs (with QSAM/VSAM/DB2)
       7  RUN IMS               - Batch(IMS/DB)/Online(IMS/DC) Programs (with DB2)
       8  RUN CICS              - Online(CICS) Programs (with VSAM/IMS/DB2)

                           (Select option and press ENTER )
    +----------------+----------------------------------------------------+------+
    | Program Type:  | Animation or Run option:                           |Select|
    |         CICS   | Animation or Run via CICS (including CICS/IMS/DB2) | 5/8  |
    |         IMS/DB | Animation or Run via IMS (including IMS/DB/DB2)    | 4/7  |
    |         IMS/DC | Animation or Run via IMS (including IMS/DC/DB2)    | 4/7  |
    |         Other  | Animation or Run via 'Normal' (incl. Batch/DB2)    | 3/6  |
    +----------------+----------------------------------------------------+------+


   

   CHECK

      Check program (to .INT).  Programs of all kinds can be checked in this
      option. If required the CICS HLPI(IMS) or DB2(XDB) pre-processor can be
      invoked. If checker errors are detected control is passed to SPF/Pro
      Edit.

   COMPILE

      Compile program (to .GNT).  Programs can be compiled and thus have
      their code optimized.

      Note: .GNT programs cannot be animated.

   ANIMATE Batch

      Animate batch non-IMS.  Invoke the animator for all batch COBOL
      programs not using IMS or CICS.

   ANIMATE IMS

      Animate batch IMS/DB or online IMS/DC.  Invoke the animator for batch
      or online COBOL programs using IMS.

   ANIMATE CICS

      Animate online CICS.  Invoke the animator for online COBOL programs
      using CICS.

   RUN Batch

      Run batch COBOL programs not using IMS or CICS.

   RUN IMS

      Run batch or online COBOL programs using IMS.  Invoke 'native' IMS and
      start the application with a TRANCODE, /FOR, BMP, prog, psb or DLI,
      prog, psb option.

   RUN CICS

      Run online COBOL programs using CICS.  Invokes MCO (the CICS option).

#  17.6.1 {Foreground Check (Option 4.1)}

   The Check panel allows you to specify a COBOL source file to be syntax
   checked to produce .INT executables. After compilation, if any errors have

   been detected, the error messages are posted into the source file as
   =NOTE= lines allowing easy correction of syntax errors.

    SPF/Pro(1) ----------------- Custom Dialog for MF Checker ----------------- 5.0
    COMMAND ===>

    ENTER NAME OF PROGRAM TO BE CHECKED:
       DRIVE ===>E:
       PATH  ===>\master
       PATH  ===>\source
       PATH  ===>
       NAME  ===>*.cbl

    SYSTEM FILE SPECIFICATION:
    ===>

    DIRECTIVES:               PREPROCESS REQUIREMENTS:    OTHER DIRECTIVES:
    Language    ===>VSC23     EXEC SQL     ===>N (Y/N)    ________________________
    Error Pause ===>N (Y/N)   EXEC CICS    ===>N (Y/N)    ________________________
    CSI         ===>N (Y/N)   EXEC DLI     ===>N (Y/N)    ________________________
    Structure   ===>N (Y/N)   Subroutine   ===>N (Y/N)    ________________________
    Analyze     ===>N (Y/N)                               ________________________
    List to     ===>NONE    (NONE/CON/PRN:/FILE)

    Press ENTER to continue END to exit with no action



   

   The directives in use can be viewed and edited via Custom Dialog for MF
   Option 7.

   Fields on the panel:

   Name of program to be checked

      Required.  A file name of a COBOL Source (usually .CBL or .CPY).  Wild
      cards are permitted.  If specified, the 'system file spec' takes
      precedence.  If a 'wild card' is specified, SPF/Pro presents a select
      list of all files matching the search criteria.  Several programs can
      be checked by selecting each one with an 'S'. After checking the
      results are displayed alongside.  Further panel field descriptions can
      be found on the next panel.

   Directives:

      Language

         Required. Specify one of: OSVS, VSC21, VSC22, VSC23, VSC24, COB370,
         DOSVS, SAAL1, SAAL2, ANS85, MF, WB, NONE.  This specifies the
         language dialect. Details of current checker directives can be found
         via panel M.5.

                                                      continued ...


      Error Pause

         Required. Specify one of: 'Y' or 'N'.  Should a syntax error
         (information, warning, error or severe depending on the WARNING
         directive) be detected should the compilation stop? If the answer is
         Y, you have the option to continue or return to the source file to
         correct the errors.

      CSI

         Required. Specify one of: 'Y' or 'N'.  COBOL Source Information.
         CSI provides for online help information about a COBOL program. If
         this option is selected CSI becomes available in the Animator.

      Structure

         Required. Specify one of: 'Y' or 'N'.  This causes the program to be
         checked such that a hierarchical structure diagram can be presented
         during animation.

      Analyze

         Required. Specify one of: 'Y' or 'N'.  This causes the program to be
         checked such that the analyzer can be invoked during animation. The
         analyzer counts lines as they are executed.

      List to

         Required. Specify one of: CON, LPT1, LPT2, LPT3, PRN: and FILE.
         This option specifies where the listing is to be displayed. CON is
         the console (or screen), FILE is a file (name.LST), and the others
         are printers.

      Preprocess Requirements:

      EXEC SQL

         Required. Specify one of: 'Y' or 'N'.  If the program contains
         embedded SQL statements invoke the appropriate pre-processor.

      EXEC CICS

         Required. Specify one of: 'Y' or 'N'.  If the program contains EXEC
         CICS statements invoke the appropriate pre-processor.

      EXEC DLI

         Required. Specify one of: 'Y' or 'N'.  If the program contains
         embedded HLPI statements invoke the appropriate pre-processor.

      Subroutine

         Required. Specify one of: 'Y' or 'N'.  When a subroutine is compiled
         which contains embedded SQL it has to be compiled differently to a
         main-program. Main programs use the Logon and Logoff pre-processor
         directives to establish communication with the XDB Server.
         Subroutines must not do this.  If done, the linkage is lost.

         This option only takes effect if XDB Pre-process is also selected.

      Other Directives

         Optional. Five input fields are available.  Here any other checker
         directives can be added. For a full list of these directives choose
         Hyhelp =M.3.0.

   An example of selected list for compilations follows. Note how several
   programs can be selected together and the results of the compilations
   shown in the message column.

    SPF/Pro(1) ---------------- Custom Dialog Select List ---------- ROW 099 OF 145
    COMMAND ===>                                                  SCROLL ===>CSR
                                  Foreground Checker
             Type an S against each entry to action or E to Edit the file

       Name             Date      Time         Size Attr Message
    ------------------------------------------------------------------------------
        PROGRAMA CBL  1990/06/13  02:41          566  A-
        PROGRAMB CBL  1989/02/21  14:08          923  A-
        PROGRAMC CBL  1989/02/21  15:33         2955  A-
        PRINTPRG CBL  1991/09/11  12:23         4674  A-
        PUBLISHR CPY  1991/05/01  02:23         2190  A-  Check failed
        READER01 CBL  1991/05/01  02:23         2091  A-  Checked errors
        READER02 CBL  1991/05/01  02:23         2091  A-  Checked OK
        REPORT01 CBL  1991/05/07  12:31         2712  A-
        REPORT02 CBL  1991/09/11  12:10         3545  A-
        REPORT03 CBL  1989/02/21  17:44         1238  A-
        REPORT04 CBL  1990/04/30  11:21         2451  A-
        ROOMPLAN CPY  1990/01/23  14:14         2451  A-
        ROUTERX1 CBL  1990/04/30  11:24         2370  A-
        RTS-INVO CBL  1990/05/03  12:22         2422  A-
        SALESLST CBL  1991/05/01  02:23          845  A-
        SCREEN1  CPY  1991/04/08  05:23        28497  A-
        SCREEN2  CPY  1991/05/01  02:23         4976  A-

   

   The message Checker failed is issued if the checker is terminated before
   it completes the check process.  Checked errors means that syntax errors

   were detected and these can be seen as =NOTE= lines in the source be
   selecting the file again with an "E" (for Edit). If the message is Checked
   OK, there are no syntax errors and the program is ready to be tested.

#  17.6.2 {Foreground Compile (Option 4.2)}

   The Compile invokes COBOL to convert .INT programs to .GNT (optimized).

    SPF/Pro(1) ----------------- Custom Dialog for MF Compiler ---------------- 5.0
    COMMAND ===>

    ENTER NAME OF PROGRAM TO BE COMPILED:  TARGET PATH OF .GNT
       DRIVE ===>E:                           DRIVE ===>
       PATH  ===>\master                      PATH  ===>
       PATH  ===>\source                      PATH  ===>
       PATH  ===>                             PATH  ===>
       NAME  ===>*.cbl                     (note any .INT and .IDY will be deleted)

    SYSTEM FILE SPECIFICATION:
    ===>

    DIRECTIVES:
    ASM         ===>N (Y/N)
    List to     ===>NONE
    Bound       ===>Y (Y/N)





    Press ENTER to continue END to exit with no action


   

   Fields on the panel:

   Name of program to be compiled

      Required.  A file name of a checked program (.INT). Wild card
      specification is permitted.  If present the 'system file spec' is used
      in preference.

   Directives:

      ASM

         Required. Specify one of: 'Y' or 'N'.  This specifies whether an
         assembly listing is to be produced, or not.

      List to

         Required. Specify one of: CON, LPT1, LPT2, LPT3, PRN: and FILE.
         This option specifies where the listing is to be displayed. CON is
         the console (or screen), FILE is a file (name.LST), and the others
         are printers.

      Bound

         Required. Specify one of: 'Y' or 'N'.  Specifies whether subscript
         and index boundary checking should be done.

#  17.6.3 {Batch Animation (non-IMS) (Option 4.3)}

    SPF/Pro(1) ----------------- Custom Dialog for MF Animator ---------------- 5.0
    COMMAND ===>

    ENTER NAME OF PROGRAM TO BE ANIMATED (WITH PARMPASS):
       DRIVE ===>E:
       PATH  ===>\master
       PATH  ===>\source
       PATH  ===>
       NAME  ===>*.INT

    SYSTEM FILE SPECIFICATION:
    ===>

    DIRECTIVES:
    Structure   ===>N (Y/N)
    Analyze     ===>N (Y/N)
    Zoom        ===>N (Y/N)

    Others      ===>user-session(pm) end_________________________________________
                ===>_____________________________________________________________
                ===>_____________________________________________________________

    Press ENTER to continue END to exit with no action


   

   The animation panel allows you to select the name of a program (.INT) for
   animation. Wild cards can be used and the program selected from a list.

   Fields on the panel:

   Name of program to be animated

      Required.  A file name of clean checked program with a .INT extension.
      Wild cards may be used to obtain a selection list. The system 'file
      spec' is used if present.

   Directives:

      Structure

         Required. Specify one of: 'Y' or 'N'.  This causes the program
         structure diagram to be drawn when animation commences. If the
         program has not been checked with the structure option, no structure
         will be drawn.

      Analyze

         Required. Specify one of: 'Y' or 'N'.  This causes the analyzer to
         be turned on during animation. The analyzer counts lines as they are
         executed and can be used with CSI. If the program has not been
         checked with the analyze option, this will not occur.

      Zoom

         Required. Specify one of: 'Y' or 'N'.  This option invokes the
         animator in zoom mode. That is, program execution begins without the
         animate screen. The animator appears only if an exception condition
         occurs, a break point is encountered or you type [CTRL].

      Others

         Optional.  Entry space is available for free form entry of other
         Animator directives.

#  17.6.4 {Batch Animation IMS (Option 4.4)}

   To animate an IMS program the IMS Emulation environment must be loaded.
   Once the environment has loaded, the following screen is presented.


    CONNECTED TO MICRO FOCUS IMS OPTION  (Version=3.x.xx  ApplRgnID=0074)























   

   To invoke a program there are three possible methods.

   *  Enter the TRANCODE as defined in IMSCONFIG, see Option I.0

   *  Enter 'BMP,progname,psbname' for a BMP type program

   *  Enter 'DLI,progname,psbname' for a DLI type program

#  17.6.5 {Batch Run non-IMS (Option 4.6)}

   The run panel allows you to select the name of a program (.INT or .GNT)
   for execution. Wild cards can be used and the program selected from the
   list offered.

    SPF/Pro(1) ------------------- Custom Dialog for MF Run ------------------- 5.0
    COMMAND ===>

    ENTER NAME OF PROGRAM TO BE RUN (WITH PARMPASS):
       DRIVE ===>E:
       PATH  ===>\master
       PATH  ===>\source
       PATH  ===>
       NAME  ===>*.INT

    SYSTEM FILE SPECIFICATION:
    ===>











    Press ENTER to continue END to exit with no action


   

   Fields on the panel:

   Name of program to be run

      Required.  A file name of clean checked program with a .INT extension.
      Wild cards may be used to obtain a selection list. The system 'file
      spec' is used if present.

#  17.6.6 {Batch Run IMS (Option 4.7)}

   To run an IMS program, the IMS Emulation environment must be loaded.  Once
   the environment has loaded, the following screen is presented.


    CONNECTED TO MICRO FOCUS IMS OPTION  (Version=3.x.xx  ApplRgnID=0074)























   

   To invoke a program there are three possible methods.

   *  Enter the TRANCODE as defined in IMSCONFIG, see Option I.0

   *  Enter 'BMP,progname,psbname' for a BMP type program

   *  Enter 'DLI,progname,psbname' for a DLI type program

#  17.7 {Background Menu (Option 5)}

    SPF/Pro(1) ------------ Custom Dialog for MF Background Options ----------- 5.0
    OPTION===>
                            Background Processing Options

       1  CHECK                 - Check program (to .INT)
       2  COMPILE               - Compile program (to .GNT)

       Check and compile will execute in background, i.e. separate sessions
       will be started (START command) and will complete independently.






                           (Select option and press ENTER )









   

   Background gives access to the most common features of the Workbench
   products involved in Check and Compile. On completion of the selected
   task, the success or failure of the event is posted to the screen.

   CHECK

      Check program to produce .INT format.  Programs of all kinds can be
      checked in this option. If required the CICS HLPI(IMS) or DB2(XDB)
      pre-processor can be invoked. If checker errors are detected control is
      passed to the editor (SPF).

   COMPILE

      Compile program to produce .GNT format.  Programs can be compiled and
      thus thus have their code optimized.

      Note: .GNT programs cannot be animated.

#  17.7.1 {Background Check (Option 5.1)}

   The Check panel allows you to specify a COBOL source file to be syntax
   check to .INT executables. After compilation, the system displays the
   outcome of the check to the screen.

    SPF/Pro(1) ----------------- Custom Dialog for MF Checker ----------------- 5.0
    COMMAND ===>

    ENTER NAME OF PROGRAM TO BE CHECKED:
       DRIVE ===>E:
       PATH  ===>\master
       PATH  ===>\source
       PATH  ===>
       NAME  ===>*.CBL

    SYSTEM FILE SPECIFICATION:
    ===>


    DIRECTIVES:               PREPROCESS REQUIREMENTS:    OTHER DIRECTIVES:
    Language    ===>VSC23     EXEC SQL     ===>N (Y/N)    ________________________
    Error Pause ===>N (Y/N)   EXEC CICS    ===>N (Y/N)    ________________________
    CSI         ===>N (Y/N)   EXEC DLI     ===>N (Y/N)    ________________________
    Structure   ===>N (Y/N)   Subroutine   ===>N (Y/N)    ________________________
    Analyze     ===>N (Y/N)                               ________________________
    List to     ===>NONE    (NONE/CON/PRN:/FILE)

    Press ENTER to continue END to exit with no action



   

   The directives in use can be viewed and edited via Custom Dialog for MF
   Option 7.

   The fields on the Background Check Panel are identical to those on the
   Foreground Check Panel described on page 142.

#  17.7.2 {Background Compile (Option 5.2)}

    SPF/Pro(1) ----------------- Custom Dialog for MF Compiler ---------------- 5.0
    COMMAND ===>

    ENTER NAME OF PROGRAM TO BE COMPILED:  TARGET PATH OF .GNT
       DRIVE ===>E:                           DRIVE ===>
       PATH  ===>\master                      PATH  ===>
       PATH  ===>\source                      PATH  ===>
       PATH  ===>                             PATH  ===>
       NAME  ===>*.CBL                     (note any .INT and .IDY will be deleted)

    SYSTEM FILE SPECIFICATION:
    ===>

    DIRECTIVES:
    ASM         ===>N (Y/N)
    List to     ===>NONE
    Bound       ===>Y (Y/N)





    Press ENTER to continue END to exit with no action


   

   The Compile invokes COBOL to convert .INT programs to .GNT (optimized).

   The fields on the Background Compile Panel are identical to those on the
   Foreground Compile Panel described on page 146.

#  17.8 {Edit Checker Directives (Option 7)}

    SPF/Pro(1) ----------- Custom Dialog for MF Compiler Directives ----------- 5.0
    OPTION===>

       0  OSVS    - IBM OSVS COBOL Compiler (ANSI 74)
       1  VSC21   - IBM Version 2 COBOL Compiler release 1
       2  VSC22   - IBM Version 2 COBOL Compiler release 2
       3  VSC23   - IBM Version 2 COBOL Compiler release 3

       4  VSC24   - IBM Version 2 COBOL Compiler release 4
       5  COB370  - IBM COBOL 370 Compiler
       6  SAAL1   - IBM SAA Level 1
       7  SAAL2   - IBM SAA Level 2
       8  DOSVS   - IBM DOS/VS Compiler (ANSI 68)
       A  ANS85   - ANSI 85 COBOL Compiler
       C  COBOL   - Micro Focus COBOL.DIR default directive file
       M  MF      - ANSI 85 COBOL with Micro Focus extensions
       W  WB      - Default compiler directives file

    +----------------------------------------------------------------------------+
    | You can edit the compiler directive files for the particular dialect of    |
    | COBOL you are using. A backup copy of the directives file will be made.    |
    +----------------------------------------------------------------------------+




   

   This menu allows you to edit the mainframe style environment variable
   files supplied by Micro Focus. These files are found on the COBDIR
   environment variable path.

#  17.9 {IMS Menu (Option I)}

   The IMS Menus include access to the most common IMS Utilities:

    SPF/Pro(1) ----------------- Custom Dialog for MF IMS Menu ---------------- 5.0
    OPTION===>

       IMS Main Menu (access to IMSVS86 tools)

       0  IMSGEN           - IMS configuration and installation information
       1  DBDGEN           - DBDGEN and/or ZEROLOAD a database
       2  ZEROLOAD         - ZEROLOAD a database
       3  PSBGEN           - PSBGEN
       4  MFSGEN           - MFSGEN and /FOR emulation
       5  MFSPaint         - MFS Screen Painter (if installed)
       6  IMSPRINT         - Convert BTS.LST into user readable format
       7  Animate          - Invoke IMS Animation Environment
       8  Run              - Invoke IMS Run Environment
       F  File-AID/PC IMS  - Invoke File-AID/PC for IMS IF INSTALLED


                  (Select one option and press ENTER or END to exit)







   

   IMSGEN

      IMS Configuration and environment maintenance.

   DBDGEN

      Database Description Generation and Optional Zeroload.

   ZEROLOAD

      Initialize database area in preparation for receipt of data.

   PSBGEN

      Program Specification Block Generation.

   MFSGEN

      Message Format Services Generation and Optional /FOR test.

   MFSPaint

      Message Format Services Screen Painter (IMSVS86 Optional Product).

   IMSPRINT

      Convert BTS trace file to readable format and browse results.

   Animate

      Invoke Animator in 'native' IMS.

   Run

      Invoke Run in 'native' IMS.

#  17.9.1 {IMSGEN (Option I.0)}

   When the IMSGEN option is selected, the IMSGEN panel appears. This gives
   access to the following features:

   *  Define transaction codes

   *  Define logical terminal ids

      -  General configuration options

      -  Colorization options

      -  IMS Data Communications (IMSDC)

      -  IMS Database options (IMSDB) cache sizes, shared database options,
         catalog defaults etc.

   *  DBDGEN maintenance (view/delete) including BTS tracing options, 5x
      PSB/DBD information (view/delete) DB2 emulator used and IMSLIB

   *  PSBGEN maintenance (view/delete)

   *  MFSGEN information (view/delete)

   *  Reorganize DBDGEN library (The reorganize option REPRO's the file
      consolidating the space used by deleted entries and improving IMS
      performance)

   *  Reorganize PSBGEN library define USER ID, LTERM, PFKEY

   *  Reorganize MFSGEN library type, max SPA size etc.

   *  Catalog database definition

   Help for IMSGEN is included for completeness as IMSGEN does not contain
   any help. The IMSGEN panels are not modifiable as they are hard coded into
   IMSVS86.

#  17.9.2 {DBDGEN (Option I.1)}

   The DBDGEN panel allows you to select a file containing DBD macros (the
   usual naming convention is name.DBD) for generation.

    SPF/Pro(1) ------------------ Custom Dialog for MF DBDGEN ----------------- 5.0
    COMMAND ===>

    ENTER NAME OF DBD TO BE GENERATED:
       DRIVE ===>E:
       PATH  ===>\master
       PATH  ===>\source
       PATH  ===>
       NAME  ===>*.DBD

    SYSTEM FILE SPECIFICATION:
    ===>

    DIRECTIVES:
    COPY ext        ===>CPY        blank, CPY, ASM or NULL
    Listing         ===>N          (Y/N)
    Map             ===>N          (Y/N)
    Run type        ===>NORMAL     NORMAL, PHYSONLY or VIRTONLY
    DBDGen/Zeroload ===>G          G(en only), Z(eroload only) or B(oth)




    Press ENTER to continue END to exit with no action


   

   Fields on the panel:

   Name of DBD to be generated

      Required.  A file name of DBD macros. Wild card specification is
      permitted.  If present, the 'system file spec' is used in preference.

   Directives:

      Copy ext

         Optional. Specify one of: 'blank', 'CPY', 'ASM' or 'NULL'.  This
         specifies the extension used on any file names which contain DBD
         macros in copybooks. The 'CPY' option is the usual one.

      Listing

         Required.  Specify one of: 'Y' or 'N'.  Specifies whether a hard
         copy listing is to be produced or not. If specified, a the listing
         is placed in file "name.LST" which is printable.

      Map

         Required. Specify one of: 'Y' or 'N'.  Specifies whether a
         hierarchical map of the DBD is to be generated.  The map shows
         pictorially the database hierarchy. If 'Y' is specified, the map is
         placed in file "name.MAP" which can be browsed or printed later.

      Run Type

         Required. Specify one of: 'NORMAL', 'PHYSONLY' or 'VIRTONLY'.

         -- NORMAL - both the physical and logical elements of the DBD are
            processed and generated. If the physical base segments which are
            described as logical in this DBD have not themselves been
            generated yet, the DBDGEN will fail.

         -- PHYSONLY - allows all the DBDs to have just their physical
            components generated.

         -- VIRTONLY - allows for later generation of the logical segments.

      DBDGen/Zeroload

         Required. Specify one of: 'G', 'Z' or 'B'.  This selects the action
         to be taken.

         -- If just a DBDGEN is required, select 'G' generation only.

         -- If just a Zeroload (initialization of the database and
            destruction of data - if any) is required, select 'Z'.

         -- If both a DBDGEN and a Zeroload are required, choose 'B' for
            both.

#  17.9.3 {ZEROLOAD (Option I.2)}

   If an IMS database is about to be used for the first time or if it needs
   to be re-initialized a Zeroload is performed. This panel allows the name
   of the database to entered.

    SPF/Pro(1) ---------- Custom Dialog for MF Zero Load IMS Database --------- 5.0
    COMMAND ===>

                               Zeroload and IMS Database

    If you ZEROLOAD the database all data will be lost. You must DBD Gen the
    database first. You can DBDGEN and ZEROLOAD from the DBDGEN panel.

        Enter IMS Database   ===>













    Press ENTER to continue END to exit with no action


   

   Zeroload can also be achieved via the DBDGEN panel.

   Field on the panel:

   IMS Database

      Required.  The name of a DBDGENed database. A name.GNT should exist for
      the specified database.

#  17.9.4 {PSBGEN (Option I.3)}

   The PSBGEN panel allows you to select a file name containing PSB macros
   (the usual naming convention is name.PSB) for generation.

    SPF/Pro(1) ------------------ Custom Dialog for MF PSBGEN ----------------- 5.0
    COMMAND ===>

    ENTER NAME OF PSB TO BE GENERATED:
       DRIVE ===>E:
       PATH  ===>\master
       PATH  ===>\source
       PATH  ===>
       NAME  ===>*.PSB

    SYSTEM FILE SPECIFICATION:
    ===>

    DIRECTIVES:
    COPY ext    ===>CPY        blank, CPY, ASM or NULL
    Listing     ===>N          (Y/N)
    Verify      ===>Y          (Y/N) Y recommended






    Press ENTER to continue END to exit with no action


   

   Fields on the panel:

   Name of PSB to be generated

      Required.  A file name of PSB macros. Wild card specification is
      permitted.  If present, the 'system file spec' is used in preference.

   Directives:

      Copy ext

         Optional. Specify one of: 'blank', 'CPY', 'ASM' or 'NULL'.  This
         specifies the extension used on any file names which contain PSB
         macros in copybooks. The 'CPY' option is the usual one.

      Listing

         Required. Specify one of: 'Y' or 'N'.  Specifies whether a hard copy
         listing to be produced. If specified, the listing is placed in file
         "name.LST" which is printable.

      Verify

         Required. Specify one of: 'Y' or 'N'.  Specifies whether the PSB is
         to be validated against the DBD (effectively an ACBGEN).  It is
         recommended that this be done.

#  17.9.5 {MFSGEN (Option I.4)}

   The MFSGEN panel allows you to select a file name containing MFS macros
   (the usual naming convention is name.MFS) for generation.

    SPF/Pro(1) ------------------ Custom Dialog for MF MFSGEN ----------------- 5.0
    COMMAND ===>

    ENTER NAME OF MFS TO BE GENERATED:
       DRIVE ===>E:
       PATH  ===>\master
       PATH  ===>\source
       PATH  ===>
       NAME  ===>*.MFS

    SYSTEM FILE SPECIFICATION:
    ===>

    DIRECTIVES:
    COPY ext    ===>CPY        blank, CPY, ASM or NULL
    Listing     ===>N          (Y/N)
    /FOR        ===>Y          (Y/N)
    3270 Model  ===>MOD2       MOD2, MOD3, MOD4, MOD5 or MODEL(?)
    Stack       ===>OFF        AUTO, OFF or ON



    Press ENTER to continue END to exit with no action



   

   Fields on the panel:

   Name of MFS to be generated

      Required.  A file name of MFS macros. Wild card specification is
      permitted.  If present, the 'system file spec' is used in preference.

   Directives:

      Copy ext

         Optional. Specify one of: 'blank', 'CPY', 'ASM' or 'NULL'.  This
         specifies the extension used on any file names which contain MFS
         macros in copybooks. The 'CPY' option is the usual one.

      Listing

         Required. Specify one of: 'Y' or 'N'.  Specifies whether a hard copy
         listing to be produced. If specified, the listing is placed in file
         "name.LST" which is printable.

      /FOR

         Required. Specify one of: 'Y' or 'N'.  Specifies whether a /FOR
         message is to be issued after successful generation. If specified,
         the message is presented on the screen. The message can be modified
         for testing purposes.

      3270 Model

         Required. Specify one of: MOD2, MOD3, MOD4, MOD5, MODEL(?).  This
         indicates the target terminal type for the generation. Model2 is 80
         columns by 24 lines.

      Stack

         Required. Specify one of: 'AUTO', 'OFF' or 'ON'.

#  17.9.6 {MFSPaint (Option I.5)}

   This product allows you to Paint MFS screen layouts and then generate the
   MFS macros and copybooks for them.

   Since the SPF like dialog is hard coded, the panels cannot be modified.

   MFS Paint/MSG are optional products and do not not form part of the
   IMSVS86 product suite.

#  17.9.7 {IMSPrint (Option I.6)}

   If BTS (Batch Terminal emulator) tracing is switched on (see IMSGEN option
   3A) then a file called BTS.LST (by default) is created as programs are Run
   and Animated. This file is overwritten each time a program is run.

   Because the data is usually stored in EBCDIC, file BTS.LST is unreadable.
   IMSPRINT reads this file and converts it to ASCII with some additional
   formatting in case the file is to be printed. Once the conversion is
   complete, the file is Browsed.  Use the PRINT ALL primary command to print
   the file. The converted file is called IMSPRINT.LST.

   Note: If in IMSGEN, and the name is changed, this option will not work.

#  17.9.8 {ANIMATE (Option I.7)}

   Animate batch IMS/DB or online IMS/DC.  Invoke the animator for batch or
   online COBOL programs using IMS.

#  17.9.9 {RUN (Option I.8)}

   Run batch or online COBOL programs using IMS.  Invoke 'native' IMS and
   start the application with a TRANCODE, /FOR, BMP, prog, psb or DLI, prog,
   psb option.

#  17.9.10 {Fileaid-PC/IMS (Option I.F)}

   Compuware's Fileaid-PC/IMS can be invoked if it is installed.

   When invoked, Fileaid-PC appears in IMS mode. The mode can be toggled to
   VSAM or DB2 (if installed) by use of F2=Change Environment command.

   Fileaid-PC is a self contained program, not part of SPF/Pro.  Its panels
   are not modifiable nor are function key settings passed from SPF/Pro to
   Fileaid-PC.


#  18. {Custom Dialog for XDB}

   This custom dialog provides an ISPF/DB2I like interface to XDB Systems'
   XDB database and all of its features.

   Appropriate XDB programs are invoked in batch mode using all published
   interfaces. Options are captured in normal SPF/Pro dialogs and passed to
   XDB. Results are then presented to the user as panels or as messages
   depending on the context.

   The arrangement of options in Custom Dialog for XDB is designed to echo
   the organization of XDB itself. For example F1 on the XDB main menu is
   Create/Alter. Option 1 in Custom Dialog for XDB is also Create/Alter.

   The main menu of Custom Dialog for XDB gives access to all the main
   features of the tool. Here is a brief summary of the facilities. Further,
   more detailed, information can be obtained by selecting an option and
   selecting HELP from that panel.

    SPF/Pro(1) ----------------------- Custom Dialog for XDB ------------------ 4.0
    OPTION ===>

       Custom Dialog for XDB Main Menu

       0  XDB             - Access XDB Main Menu
       1  CREATE/ALTER    - Create/Alter Menu (location, table, or index)
       2  DATA ENTRY      - Invoke XDBEDIT (similar to DB/ProEdit)
       3  SPUFI           - SQL Processing Using File Input
       4  DCLGEN          - Invoke XDBDCLGE to gen. COBOL copybooks
       5  QMT             - Invoke XDBQMT (similar to QMF) - IF INSTALLED
       6  IMPORT          - Invoke XDBIMPOR to load data and SQL
       7  EXPORT          - Invoke XDBEXPOR to unload data and SQL
       8  Select Location - Alter current location
       9  XDB Profile     - Invoke XDBPROFI for profile and config information
      10  DATA DICTIONARY - Invoke XDBDATAD for data dictionary information
      11  Error messages  - XDB and DB2 error codes and messages
       F  File-AID/PC     - Invoke File-AID/PC for DB2 - IF INSTALLED

      Location    : SYSTEM
      Application : E:\XDBOPSYS\TUTORIAL\

      Select one option and press Enter or press END to exit.


   

   The XDB/DB2 options are listed below. The help topics are selected by
   number:

                                                        continued ...


#  18.1 {Access XDB Main Menu}

   If you require direct access to the XDB menu, this option simply invokes
   XDB in native mode. The user should have some familiarity with XDB in
   order to do this.

   By selecting this option XDB is loaded in 'native' mode. The familiar XDB
   main menu appears. The function key assignments are as XDB has defined
   them - this means that F3 is not END, instead ESC must be used to exit
   back to SPF/Pro. Menu options are:

                                             continued ...


#  18.2 {Create/Alter Menu}

   The Create/Alter menu lists three options. These are:

    SPF/Pro(1) ---------------- Custom Dialog for XDB Create/Alter ------------ 4.0
    OPTION ===>

       1  Location - Interactive Create/Alter Table
       2  Index    - Interactive Create/Alter Index
       3  Table    - Interactive Create/Alter Table

    A location must be created before objects are defined for development. Once
    it is created it must be pointed to via D.8.

    Tables and indexes will be created (by default) in the current location.








      Location    : SYSTEM
      Application : E:\XDBOPSYS\TUTORIAL\

      Select one option and press Enter or press END to exit.


   

   These three utilities work interactively to emulate the CREATE LOCATION,
   CREATE TABLE and CREATE TABLE statements.

   A LOCATION is similar in function to a DB2 subsystem. It has its own
   Catalog and can contain a number of databases, tables and indexes. It
   contains, by default, a number of databases, DSNDB04 (default database),
   DSNDB06 (system catalog), XDBACF (access control facility tables) and
   DSNDDF (local and remote locations).

   A new SQL statement is available which can be executed from SPUFI to
   define define a location. The syntax is:

    CREATE LOCATION name IN path
     [ SORT SEQUENCE EBCDIC | INSENSITIVE | SENSITIVE | USER ]
     [ FORWARD LOG name ]
     [ XDB SYSTEM TABLES ] ;

   Note:  EBCDIC sensitivity is set for the Location not for the User as
   previously. The XDB SYSTEM TABLES option allows for version 2.41 XDB
   tables.

   A TABLE is identical in XDB and DB2. It can be defined as usual with a
   CREATE TABLE statement in SPUFI as normal or Option D.1.2 allows
   interactive definition of the table.

   An INDEX is identical in XDB and DB2. It also can be defined as usual with
   a CREATE INDEX statement in SPUFI as normal or Option D.1.3 allows
   interactive definition of the table.

#  18.3 {XDB Data Entry}

   The data entry utility is designed to allow tables to be viewed and
   modified directly. Simple predicates can be specified to limit the number
   of rows which listed. Rows can be listed in single line (formatted screen
   layout) or multiple line mode.

   When this option is selected XDBEDIT is invoked directly. This means that
   function key assignments are those defined by XDB. F3 will not return
   control to SPF/Pro, however ESC will.

   Use of data entry is similar in function to the DB/ProEdit utility tool
   found in some mainframe environments.

#  18.4 {SPUFI - SQL Processing Using File Input}

   The SPUFI panel is comprised of three distinct phases:

   *  Edit SQL statements

   *  Execute SQL statements

   *  Browse results

   On the panel the fields are completed as follows:

    SPF/Pro(1) -------------------- Custom Dialog for XDB SPUFI --------------- 4.0
    COMMAND ===>

    ENTER NAME OF INPUT SQL DATASET:
       DRIVE ===> E:
       PATH  ===> \master
       PATH  ===> \source
       PATH  ===> \sql
       NAME  ===> *.sql

    OUTPUT FILE SPECIFICATION:
    ===> e:\work\results.out

    DIRECTIVES:

      Edit SQL        ===> Y (Y-yes, N-no)   Echo SQL commands ===> N (Y-yes, N-no)
      Execute SQL     ===> Y (Y-yes, N-no)
      Browse Results  ===> Y (Y-yes, N-no)


    Location    : SYSTEM
    Application : E:\XDBOPSYS\TUTORIAL\

    Press ENTER to continue END to exit with no action


   

   INPUT SQL DATASET

      The path and name of a file which contains SQL statements.  If the file
      does not exist, it is created. Usual file extension is .SQL. Blank
      offers a selection list.

   OUTPUT FILE SPEC

      The name of the results file. If it already exists, it is over-written,
      if it does not it is created.

   DIRECTIVES

      The directives control the behavior of the SPUFI emulator.

      EDIT SQL

         Cause edit to be invoked. Initially set to 'Y'.

      EXECUTE SQL

         Run XDBSQL in batch mode. Initially set to 'Y'.

      BROWSE RESULTS

         Browse the output file. Initially set to 'Y'.

   As each SQL statement is encountered it is separated and written to a
   temporary file called \XDB-n.SQL (where 'n' is the number of the SQL
   statement). Each of these files is passed, in turn, to XDBSQL in batch
   mode (/B). If the SQL statement is a SELECT, the output is sent to
   \XDB-n.RES. If SQL errors are found, they are be placed in \XDB-n.ERR.
   These files are found in the \TMP directory wherever XDB is installed.

   When all the SQL statements have been executed the files are combined into
   the designated output file. Additional 'break' lines are added to this
   file to improve the layout and to more closely reflect the mainframe look
   of SPUFI output files.

   SQL and DB2 errors are both reported. A full description of these errors
   is available via help panel D.11.

#  18.5 {DCLGEN}

   Data Control Language COBOL Copybook Generation (DCLGEN) creates a
   copybook for inclusion in COBOL programs which use embedded SQL. The
   copybooks contain a DECLARE TABLE and a record layout.  To use:

    EXEC SQL INCLUDE
        name
    END-EXEC

   where 'name' is the name of a file (extension .CPY usually) on the COBDIR
   path.

    SPF/Pro(1) --------------- Custom Dialog for XDB DCL Generation ----------- 4.0
    COMMAND ===>

    TABLE NAME               ===> CUSTOMER_ID_LIST

    FIELD PREFIX             ===>                    (if required)
    REAL OR NUMBERED PREFIX  ===> R                  (R-real, N-numbered)

    STRUCTURE NAME           ===> CUST-ID-LST        (default = 'DCL-table')

    COBOL COPYBOOK NAME      ===> E:\MASTER\COPY\CUST0001.CPY








    Location    : SYSTEM
    Application : E:\XDBOPSYS\TUTORIAL\

    Press ENTER to continue END to exit with no action


   

   The DCLGEN panel needs the following information:

   Table name

      The name of a table in the current location. If the table is in another
      location, the location should be changed via Option D.8.

   Field prefix

      A prefix for the column names.

   Real or numbered prefix

      Should the column names be used (real) or sequential numbers.

   Structure name

      The 01 level name to be used. Defaults to DCL-table name.

   COBOL copybook name

      The name of the copy book (usually name.CPY). This file is placed in
      the \XDB\DB2WB\COBCPY directory.

   Example of DCLGEN options:

   Assuming a sample table created as follows:

      CREATE TABLE SAMPLE(FIELD1 CHAR(10), FIELD2 SMALLINT, ...);

   The generated copy books are in one of the following formats:

                                            continued ...


#  18.6 {QMT - Query Management Tool}

   The Query Management Tool is an XDB utility (similar to QMF from IBM)
   which allows interactive definition of queries and report layouts for
   regularly used table interrogations.

   Access from the menu launches QMT directly. Function key assignments are
   not carried over into QMT. To return to SPF/Pro, press [ESC].

   It provides 5 main functions, Query (to run SQL queries and create simple
   report layouts), Form (to customize report layouts), Report (display a
   report), Chart (convert reports into graphs and charts) and Procedure
   (create programs to automatically run reports and forms).  Additional
   miscellaneous utilities are also provided. Import and export utilities
   allow transfer of QMT queries to and from QMF.

   QMT is an optional product which can be installed alongside XDB. It
   provides a QMF like facility which can be used to automate the selection
   of data in to reporting and interactive applications.

   QMT can import and export the underlying data used by QMF on the
   mainframe.

   If QMT is not installed, an error is reported.

#  18.7 {IMPORT}

   The Import panel of this custom dialog provides a simple interface to the
   XDBIMPOR utility which takes a file in DSNTIAUL format and uses it to
   populate a table either by replacing or appending the rows.

    SPF/Pro(1) ------------------- Custom Dialog for XDB Import --------------- 4.0
    COMMAND ===>

    ENTER NAME OF DSNTIAUL UNLOADED DATAFILE:
       DRIVE ===> E:
       PATH  ===> \master
       PATH  ===> \download
       PATH  ===>
       NAME  ===> *.dnl

    SYSTEM FILE SPECIFICATION:

    ===>

    DIRECTIVES:

      TABLE NAME     ===> CUSTOMER_ID_LIST
                             (name in format: [location.][authid.]table )
      REPLACE/APPEND ===> R  (R-replace, A-append) Replace rows or append to table
      NULLS/BLANKS   ===> N  (N-nulls, B-blanks) Treat empty flds as null or blanks

    Location    : SYSTEM
    Application : E:\XDBOPSYS\TUTORIAL\

    Press ENTER to continue END to exit with no action

   

   DSNTIAUL files can be produced on the mainframe from DB2 tables and down
   loaded or produced from XDB tables using the export utility (Option D.7).

   Panel fields:

   Unloaded datafile

      The path and name of the file containing the unloaded data

   System file

      Alternate path and name of the unloaded data file

   Directives:

      Table name

         The name of a table in the current location

      Replace/Append

         Specify whether rows are to replace those already there or be
         appended

      Nulls/Blanks

         Specify whether empty fields are to be treated as NULL or blanks

#  18.8 {EXPORT}

   The Export panel of this custom dialog provides a simple interface to the
   XDBEXPOR utility which produces a file in DSNTIAUL format. Additionally
   export can generate the SQL DDL statements to CREATE the
   table/index/synonyms.

    SPF/Pro(1) ------------------- Custom Dialog for XDB Export --------------- 4.0
    COMMAND ===>

    Export DSNTIAUL data ===> Y (Y/N)   |  Export SQL DDL source ===> Y (Y/N)
    ENTER TARGET DSNTIAUL FILE:         |  ENTER TARGET SQL DDL FILE:
       DRIVE ===> E:                    |     DRIVE ===> F:
       PATH  ===> \master               |     PATH  ===> \MASTER
       PATH  ===> \upload               |     PATH  ===> \SOURCE
       PATH  ===>                       |     PATH  ===> \SQL
       NAME  ===> *.upl                 |     NAME  ===> CUST0001.DDL
                                        |
    SYSTEM FILE SPECIFICATION:          |  SYSTEM FILE SPECIFICATION:
    ===>                                |  ===>
                                        |

    DIRECTIVES:                         | DIRECTIVES:
    Table name        ===> CUSTOMER_ID_ | Table name        ===> user.master
    (format:[location.][authid.]table)  | (format:[location.][authid.]table)
    Replace or Append ===> R (R/A)      | Replace or Append ===> R (R/A)
    ------------------------------------+ SQL Statements to generate (Y/N):
    Locn: SYSTEM                        | CREATE TABLE ===> Y INSERT  ===> N
    Appl: E:\XDBOPSYS\TUTORIAL\         | CREATE INDEX ===> Y COMMENT ===> Y

    Press ENTER to continue END to exit with no action


   

#  18.8.1 {DSNTIAUL Export Options:}

   Export DSNTIAUL data

      Specify "Y" to invoke this option.

   Target DSNTIAUL file

      Path and file name for exported data

   System file

      Alternate path and file name for exported data

   Directives:

      Table name

         The name of a table in the current location. If the table is not in
         the current location, use the location name to prefix the table
         name. If two tables exist for different users, include the Authid as
         well.

      Replace or Append

         Replace data in unloaded file or add to the end

#  18.8.2 {SQL DDL Export Options:}

   Export SQL DDL source

      Specify "Y" to invoke this option.

   Target SQL DDL file

      Path and file name for exported SQL DDL

   System file

      Alternate path and file name for SQL DDL

   Directives:

      Table name

         The name of a table in the current location. If the table is not in
         the current location, use the location name to prefix the table
         name. If two tables exist for different users, include the Authid as
         well.

      Replace or Append

         Replace SQL statements in the file or add to the end

      SQL Statements to Gen

         Select with 'Y' the options required for generation.  Options are
         CREATE TABLE, CREATE INDEX and COMMENT. If required, the INSERT DML
         statements can be produced for table loading via SPUFI.

#  18.9 {Select Location}

   When using XDB it is necessary to specify a Location and an Application
   Path which tell the RDBMS where the database files are to be found and
   where to find/place generated objects such as unloaded data and SQL DDL.

    SPF/Pro(1) -------------------- Custom Dialog for XDB Path ---------------- 4.0
    OPTION===>

       Select the required location and application path :

       Location         ===> SYSTEM

       Application Path ===> E:\XDBOPSYS\TUTORIAL\

       Enter the desired location and application path. These values will be used
       to update CONFIG.XDB.

       The location is the name of a valid location as defined in the catalog.
       The application path is the name of a valid directory for use by XDB.







    Press ENTER to continue END to exit with no action



   

   By invoking this option the program XDBPATH is executed. This in turn
   updates the CONFIG.XDB file containing this information.  Consequently,
   when XDB is started, the location and application path set here apply to
   XDB also.

   The Location is similar to a DB2 location (or DB2 sub-system) in that it
   has its own catalog and is usually associated with a separate development
   area, as with Development, Testing and Live sub-systems on the mainframe.

   The Application Path is the name of a directory which XDB uses as the
   default location for finding SQL and data files.

#  18.10 {Profile and Configuration Options}

   By selecting this option the XDB program XDBPROFI is invoked. This program
   gives access to a number of configuration options. These are listed below:

   Install Colors

      Colorization option

   Locations and Paths

      Change the default location, application path, temporary file path and
      XDB directory.

   Text Editor

      Define an alternate text editor

   Printer

      Specify the correct printer driver to use

   Sort Sequence

      Define the default sort sequence for the data

   Escape Character

      Define the character to use in front the "?" character to have it
      accepted as text.

   Abort Character

      Define the key to be used to exit XDB modules

   Prompt for Exit Conf.

      Define when exit prompts should appear in XDB modules

   Compatibility

      Select which dialect of SQL to support. Choices are XDB, DB2, ANSI, SAA
      and SQL/DS

   Date Picture

      Choices are USA (MM/DD/YYYY), European (DD.MM.YYYY), ISO (YYYY-MM-DD),
      Japanese Industrial Standard Christian Era (YYYY-MM-DD) and User
      Defined local standard.

   Edit Months

      Edit the month names from the default names in English

   Weekday Format

      Choose between 2, 3 or 4 characters for weekdays.

   Time Picture

      Choices are USA (HH:MM AM/PM), European (HH.MM.SS 24h), ISO (HH.MM.SS
      24h) and Japanese Industrial Standard Christian Era (HH.MM.SS 24h), or
      User Defined local standard.

   Money Picture

      Modify the default picture. This allows modification of the suppression
      options. Adding a national language character after the picture allows
      local currency presentation.

   Decimal Picture

      Modify the default picture of -zzzzzzzz,zzz.99.

   Floating Point Places

      Define the number of decimal places for Float columns

   Time Zone

      Specify number of hours variable from GMT.

   Change Password

      Define Users, Authids and Passwords

   Backward Logging

      Toggles backward logging on/off to allow/disallow the use of ROLLBACK
      within XDB.

   Isolation Level

      Choose between EXCLUSIVE USE (lock entire database), REPEATABLE READ
      (Read locks retained to COMMIT point), CURSOR STABILITY (Read locks
      maintained until next row read), LOCK CURRENT (lock only current row),
      DIRTY READ (No locking - read-only) or SNAPSHOT READ (access works on a
      database snapshot).

   Autocommit

      Toggles autocommit on/off. Autocommit causes all SQL statements to
      commit when they have successfully executed.

   XDB Server Name

      Select the name of the XDB server.

   Communication Protocol

      Choose the comms protocol. Choose between NETBIOS, Named Pipes, TCP/IP
      or Windows Local.

   Primary Authid

      Primary authorization identifier, usually your name.

   User defined options

      The user can add additional menu options to the XDB main menu via this
      option. These additional options can be third party or locally
      developed applications such as report writers and specialized editors.

#  18.11 {Data dictionary}

   This provides you with an interactive method of displaying the current
   situation in the catalog on a table by table or location wide basis.

#  18.12 {Error messages}

   The majority of XDB error messages and SQLCODES can be viewed with this
   option. This allows you to look up error codes online when they occur.

    SPF/Pro(1) ----- Custom Dialog for XDB DB2 Error Messages ---- ROW 0001 OF 1496
    OPTION ===>

    Location    : SYSTEM

    Application : E:\TUTORIAL\

      Scroll the list to locate the error.

       Error   Message
    ------------------------------------------------------------------------------
       +100    ROW NOT FOUND FOR FETCH, UPDATE OR DELETE, OR THE RESULT OF A QUERY
       +162    TABLESPACE [name] HAS BEEN PLACED IN CHECK PENDING
       +218    THE SQL STATEMENT REFERENCING A REMOTE OBJECT CANNOT BE EXPLAINED.
       +304    A VALUE WITH DATA TYPE [name] CANNOT BE ASSIGNED TO A HOST VARIABLE
       +402    LOCATION [name] IS UNKNOWN
       +403    THE LOCAL OBJECT REFERENCED BY THE CREATE ALIAS STATEMENT DOES NOT E
       +558    THE WITH GRANT OPTION IS IGNORED BECAUSE GRANT IS TO PUBLIC
       +560    THE WITH GRANT OPTION IS IGNORED FOR UPDATE (COLUMN-LIST)
       +561    THE ALTER AND INDEX PRIVILEGES CANNOT BE GRANTED TO PUBLIC AT ALL LO
       +625    THE DEFINITION OF TABLE [name] HAS BEEN CHANGED TO INCOMPLETE
       +802    EXCEPTION ERROR [name] HAS OCCURRED DURING [name] OPERATION ON [name]
       -007    STATEMENT CONTAINS THE ILLEGAL CHARACTER [name]
       -060    INVALID [name] SPECIFICATION: [name]
       -084    UNACCEPTABLE SQL STATEMENT

   

#  18.13 {Fileaid-PC/DB2}

   Compuware's Fileaid-PC/DB2 can be invoked if it is installed.

   When invoked Fileaid-PC appears in the DB2 mode, and this can be toggled
   to VS (VSAM) or DB2 (if installed) modes by use of F2=Change Environment
   command.

   Fileaid-PC is a self contained program, not part of SPF/Pro.  Its panels
   are not modifiable nor are function key settings passed from SPF/Pro to
   Fileaid-PC.


#  19. {Changes (Option C)}

   SPF/Pro includes a set of panels that list changes between the release you
   are running and the previous release.  If you have been regular user of
   the previous release you should check this information before using the
   new release extensively.  If you are not familiar with the previous
   release, the information on these panels is not significant.

   When you select the Changes Option, SPF/Pro displays a panel that
   functions like a table of contents. It lists the changes in the version
   you are running by number. You can select topics by number, or press [F3]
   or [SPF-Enter] to return to the main menu.

#  19.1 {Changes Main Panel}

   There are two basic ways to access the Changes panel:

   *  When you start SPF/Pro, the first screen it presents is the Primary
      Option Panel Menu.  Select option C - Changes, and SPF/Pro displays the
      Changes panel.

   *  At any time, you can use the jump feature to move directly to the
      changes panels.  Move your cursor to the command line, type =C and
      press [SPF-Enter].

   Changes are listed by topic.  Each topic identifies a general area of
   change between your release and the previous one. If you want to read a
   detailed explanation of a particular change, select it by number.  (Type
   the number on the command line and press [SPF-Enter].)

   Once you select a topic and display a text panel, two keys control the way
   you move through the remaining panels:

   [SPF-Enter]

      Moves you to the next panel.  After you have reviewed all of the text
      panels, you are returned to the Main Panel. At this point you can leave
      Changes, or take a second look at one of the topics.

   [F3] returns you to the Primary Option Menu from any CHANGES panel.


#  20. {Tutorial (Option T)}

   SPF/Pro includes on-line documentation in clear text.  Selecting Primary
   Option "T" invokes a dialog which lets you access the online documentation
   by topic or search for topics which contain a particular text string.

   Online documentation is provided in files with the .HLP extension residing
   in SPFPRO\HELP:

   You can also get into the online documentation directly by clicking on the
   HELP menu or from any panel by issuing the HELP primary command (or press
   [F1]).


#  21. {Find, Change, and Exclude}

   The FIND, CHANGE, and EXCLUDE commands are highly generalized and very
   powerful.  They allow you to search for, and operate upon, a specific
   character string or pattern throughout an entire file.  You can make
   changes stepwise or globally.

   Two other commands repeat the functions. RFIND repeats the last FIND using
   the same parameters. RCHANGE repeats the last CHANGE.

   FIND highlights any string that is found.  CHANGE highlights any string
   that is changed.

#  21.1 {Basic Search and Change Format}

   The basic format of FIND, CHANGE and EXCLUDE commands is:

   FIND     string-1            [search-limits]
   CHANGE   string-1  string-2  [search-limits]
   EXCLUDE  [string-1]          [search-limits]

   Find finds a string. Change changes a string.  Exclude excludes the line
   containing the string from view.

   The string-1 parameter always specifies the search character string. The
   string-2 parameter specifies the replacement character string. These
   strings are usually very simple to specify. In addition to simple strings,
   SPF/Pro provides some very powerful facilities to handle special
   situations.

   The string parameters may be followed by several parameters that tell
   SPF/Pro where the search should begin and how it should proceed.  These
   parameters specify:

   *  Search forward or backward from the current cursor location.

   *  Search all lines in the file.

   *  Search only a specific block of lines.

   *  Exclude or include "excluded" lines from the search.

   *  Restrict the search to certain columns.

#  21.2 {Find - Change Relationship}

   The relationship between Find and Change can be used to solve a common
   problem. Suppose that you want to change all of the characters "1.0" to
   "2.0" in your documentation because you just changed version numbers. But
   also assume that you don't know if all of the characters "1.0" in your
   file refer to a version number.

   By using the relationship between FIND and CHANGE you can find each
   instance of "1.0" and then decide whether to change it or leave it alone.

   First, scroll to the top of the file. Then, issue the following command:

   CHANGE 1.0 2.0

   Then press [F5] to find the next "1.0".  This is where the subtle but
   powerful interaction begins; the RFIND command applied by [F5] uses the
   parameters specified in the pending CHANGE primary command.  Now having
   found the first instance of "1.0", if you wish to change it, press [F6].

   If you don't want to change it, press [F5] again to continue to the next
   "1.0".

   Note:  This example assumes you have not redefined [F5] or [F6].

#  21.3 {Find - Exclude Relationship}

   The problem described in the previous sub-section can also be solved using
   the relationship between the FIND and EXCLUDE commands.

   The first relationship this solution uses is that the FIND command makes
   excluded lines containing the find string visible.

   The second relationship this solution uses is that one parameter of the
   change command limits the change to non-excluded lines.

   Now for the solution:

   First, use the EXCLUDE primary command to exclude all lines:

   EXCLUDE ALL

   Note:  You could also use the X or XX edit line commands to accomplish the
   same thing.

   Second, use the FIND primary command the make all "1.0" lines visible.

   FIND 1.0 ALL

   Third, use the X line command selectively to exclude lines containing
   "1.0" that you do not want to change.  Now, only lines containing "1.0"
   that you want to change are visible.

   Next, use the CHANGE primary command to change only non-excluded lines
   containing "1.0" to "2.0".

   CHANGE 1.0 2.0 ALL NX

   Finally, use the RESET primary command to make all lines visible.

   RESET EXCLUDE

   To review:

   *  All these commands are entered in the primary command field or by
      function key.

   *  To exclude all lines (make them invisible): EXCLUDE ALL

   *  To find all lines with a particular string (make them visible): FIND
      string ALL

   *  To find an instance of a particular string: FIND string

   *  To find the next instance of a particular string: RFIND ([F5])

   *  To alter an instance of a string to a new value: C string1 string2

   *  To step through the file considering each instance of a target string
      for possible change: RFIND ([F5]) then RCHANGE ([F6])

#  21.4 {Specifying Strings}

   FIND, CHANGE, and EXCLUDE commands include strings as parameters.

   The first string, string-1 is a search string.  The second string,
   string-2 is a replacement string.  SPF/Pro provides several flexible and
   powerful methods for specifying these strings.

#  21.4.1 {Simple Strings}

   If a search string is specified without quotes and does not contain
   blanks, commas, or asterisks, it is a simple string.  Simple strings are
   case insensitive. For example:

   FIND AB

   would find any combination of the letters A and B in upper or lower case:
   AB, ab, aB, or Ab.

#  21.4.2 {Delimited Strings}

   If a string contains blanks, commas, or asterisks, it must be enclosed in
   quotes to insure proper processing. When a string is enclosed in single or
   double quotes, it is a delimited string. For example:

   FIND 'all good men'

   If single or double quotes are part of the string, it must be enclosed in
   the opposite quote type.  For example:

   CHANGE  "they can't"  "they won't" all
   CHANGE  '"hello all"'  '"good-bye all"'

   If you wish to specify an empty string (null), enter two adjacent quotes.
   For instance, if you want to delete all occurrences of "FREE" from your
   file, issue the following command:

   CHANGE  FREE '' ALL

#  21.4.3 {Character Strings}

   Character strings are case sensitive. The comparison is made using exactly
   the string specified and no other. For example:

   FIND C'AB'

   finds AB; does not find ab, aB, or Ab.

#  21.4.4 {Hex Strings}

   If you want to find or change hexadecimal strings, you must specify the
   hex delimiter character X followed immediately by hexadecimal digit pairs
   in quotes. For example:

   FIND X'2C'



   You can search for generic characters such as "any number", or "any
   non-blank" using picture strings. A picture string is specified with the P

   prefix character followed by the picture string in quotes. For example,
   P"... picture string ...".  The picture string may contain any combination
   of picture characters and normal text characters.

   As an example let's say you want to find all references to error messages
   in a particular set of document source files and that the messages have
   the form "ERRnnn" where "nnn" is any three digit number.  To find and
   display exclusively all lines containing an error message:

   EXCLUDE ALL     (make all lines invisible)
   FIND P'ERR###'  (make "ERRnnn" lines visible)

   With the foregoing example in mind, the following picture strings may be
   specified in string-1:

   P'='

      Any character

   P'^'

      Any non-blank character

   P'.'

      Any non-ASCII character (decimal 0 - 31, 127 - 255)

   P'#'

      Any numeric character (0 - 9)

   P'-'

      Any non-numeric character

   P'@'

      Any alphabetic character

   P'<'

      Any lower case alphabetic character

   P'>'

      Any upper case alphabetic character

   P'$'

      Any special character (neither numeric nor alphabetic)

   In the CHANGE command when picture strings are used, string-2 must conform
   to the following rules:

   *  string-1 and string-2 must be same length

   *  string-2 picture chars are limited to:

   P'='

      The character in string-1 is to be unchanged.

   P'<'

      If the character in string-1 is alphabetic upper-case, change it to
      lower-case.

   P'>'

      If the character in string-1 is alphabetic lower-case, change it to
      upper-case.

   Picture strings may be any combination of picture characters and normal
   text characters.  The following command finds any string that:

   *  begins with a blank

   *  is followed by two numerics

   *  is followed by a blank character

   *  and ends with a non-numeric

   FIND P' ## -'

   The following command changes all characters in columns 56-60 to blanks.

   CHANGE p'=' ' ' 56 60 all

   The following command would change all characters to upper case.

   change all P'=' P'>'

#  21.4.6 {Asterisk (*) Strings}

   String-1 or string-2 can be specified as a single asterisk (*). In that
   case, the values from the corresponding string in the previous FIND,
   CHANGE, or EXCLUDE command are used.

#  21.5 {Limiting Search and Replace Functions}

#  21.5.1 {Range Search}

   The search for string-1 may be limited to a specific range of lines. To do
   this, include the line labels of the first and last line of the range of
   lines to be searched. Both labels must be used.  If a search is limited to
   a single labeled line, enter that label twice, as the first and last line
   of the range.

   Line labels are created using the "." line command.  The system provides
   some built-in labels for commonly used file positions:

   .ZF

      The first line of the file.

   .ZFIRST

      The first line of the file.

   .ZL

      The last line of the file.

   .ZLAST

      The last line of the file.

   .ZCSR

      The cursor line.

   For example, the following command finds all occurrences of the word "boy"
   between the lines labeled .A and .B.

   find boy .a .b all

   The following example changes the first occurrence of "this" to "that"
   between the first line of the file and the line on which the cursor is
   positioned.

   change this that .zf .zcsr

#  21.5.2 {Direction of Search}

   Additional operands are provided to control the starting point and the
   direction of a search:

   NEXT

      Start at the current cursor location and search forward to find the
      next string-1 match.

   ALL

      Start at the top of data line and search forward to find all matches
      with string-1 until the bottom of data line is reached.

   FIRST

      Start at the top of data line and search forward to find the first
      string-1 match.

   LAST

      Start at the bottom of data line and search backward until a string-1
      match is made.

   PREV

      Start at the current cursor location and search backward until a
      string-1 match is made.

   If the direction of search is forward (NEXT, ALL or FIRST specified), then
   RFIND and RCHANGE ([F5] and [F6]) moves the cursor forward from one
   occurrence of string-1 to the next.

   If the direction of search is backward (LAST or PREV specified), then
   RFIND and RCHANGE ([F5] and [F6]) moves the cursor backward from one
   occurrence of string-1 to the previous.

   If either "TOP OF DATA REACHED" or "BOTTOM OF DATA REACHED" messages are
   displayed, RFIND and RCHANGE ([F5] and [F6]) may be used to "wrap around"
   the file to search through the unsearched portion.

   Note: If you want to search for a string that contains one of the
   FIND/CHANGE/EXCLUDE keywords like "next" or "all", the words must be
   enclosed within quotes:

   FIND "all the king's men"
   CHG "next time" "last time" ALL

#  21.5.3 {String Matching Parameters}

   Another set of parameters allow you to limit the matching of characters to
   words, prefixes of words, or suffixes of words.  They are only used after
   the string is found.

   To make this explanation simpler, let's first define word-character:

   A-Z, a-z, 0-9, #, $, and @

   A word then is any string of one or more characters that is preceded and
   followed by a non-word-character. For example,

   " word "

   is a word. So is

   "(word)"

   With these examples in mind the following "word" related parameters may be
   used to further constrain searches:

   CHARS

      The search is successful whenever the specified string is found
      regardless of what precedes or follows it.  This is the SPF/Pro
      default.

   PREFIX

      The search is successful only if the string is preceded by a
      non-word-character and is followed by a word-character.

   SUFFIX

      The search is successful only if the string is preceded by a word-
      character and is followed by a non-word-character

   WORD

      The search is successful only if the string is preceded and followed by
      a non-word-character.

   PREFIX, SUFFIX, and CHARS may be abbreviated "PRE", "SUF", and "CHAR",
   respectively.

   In the following examples, with string-1 set to "DO", underscored strings
   would be found; non-underscored strings would be ignored:

   CHARS

      DO DONT ADO ADOPT 'DO' +ADO (DONT) ADO-

   PREFIX

      DO DONT ADO ADOPT 'DO' +ADO (DONT) ADO-

   SUFFIX

      DO DONT ADO ADOPT 'DO' +ADO (DONT) ADO-

   WORD

      DO DONT ADO ADOPT 'DO' +ADO (DONT) ADO-

#  21.5.4 {Search Excluded Lines}

   In addition to labeled lines, a search may be limited to previously
   excluded or non-excluded lines. If this operand is not specified, all
   lines are searched.

   X

      Search excluded (invisible) lines only.

   NX

      Search non-excluded (visible) lines only.

   For example,

   change me my all x

   would change "me" to "my" on all excluded lines.

#  21.5.5 {Column Search}

   The search for string-1 may also be limited to specified columns. Two
   numeric operands may be specified. The first specifies the column in which
   the search is to begin; the second specifies the column in which the
   search is to end. The two numbers must be separated by at least one blank
   space.

   *  If neither column-1 nor column-2 are specified, the search is limited
      to the current BOUNDS setting.

   *  If only column-1 is specified, the search is limited to that column for
      the length of string-1.

   For example, the following command finds all occurrences of ABC anywhere
   between columns 1 and 30.

   FIND ABC 1 30 ALL

   The following command finds all occurrences of ABC beginning in column 5
   exclusively.

   FIND ABC 5 ALL

   The following command changes the next occurrence of ABC in columns 8 to
   10 to DEF.

   CHG ABC DEF 8 10

   An even more efficient way to specify the same request is

   C ABC DEF 8

#  21.6 {UNDO/REDO}

   You can optionally specify that EDIT maintain a journal of alterations
   made to your file during an edit session. At any time you can undo the
   last alteration by issuing the UNDO primary command. Repeating the UNDO
   command causes successive levels of alterations to be undone.

   Having undone a particular alteration, you may then redo it by invoking
   the REDO primary command. Repeating the REDO command causes successive
   levels of undo to be redone.

   After an UNDO has been performed, restoring a previous state, it is
   possible to REDO the operation which was just undone.  However, if any
   changes are made after the UNDO but before REDO, those changes are
   recorded, eliminating the ability to REDO the last UNDO. The following
   sequence demonstrates this point:

   UNDO ... no changes ... REDO      REDO OK.
   UNDO ... changes ... REDO         REDO not OK.


#  22. {Program Source Colorization}

   When using SPF/Pro to write and maintain programs it can be helpful to
   colorize reserved words in the source of the programming language being
   used. This helps in understanding the program providing for more efficient
   authoring.

   SPF/Pro supports a simple method of specifying program source colorization
   which can be applied to the reserved words of any programming language.
   Some languages that can be easily colorized with SPF/Pro are COBOL,
   FORTRAN, PL/1, ADA, "C", PASCAL, MODULA, and other similar languages.

   Languages that make extensive use of punctuation and other special
   characters are not well suited to the reserved word colorization technique
   used by SPF/Pro. An example of this type of language would be APL.

   There are three basic components to colorization:

   1. A control file specifying the reserved words by color class.

   2. A binding of color classes to actual colors via the 0.4 Display
      Characteristics panel.

   3. A binding of the control file to a particular file type via the
      COLORMAP profile command.

   The basic premise of this support is that there are language specific
   reserved words which when colorized provide meaning to the program author.
   Further it is assumed that there may be more than one class of reserved
   words which might take on different colors.

#  22.1 {Creating Colorization Control File}

   To specify language colorization, you must create a control file in the
   SPFPRO\PROFILES directory for each language you expect to colorize.

   Colorization control files are in the form:  name.CLR  -  where "name" is
   a name of the programming language. For example, you would create
   COBOL.CLR for the COBOL programming language and C.CLR for the "C"
   programming language.

   The control file consists of records. Each record tells SPF/Pro how to
   colorize a specific element of the language in question.  Following are
   detailed description of each record type and its respective syntax.

   Reserved Word Case

      Specify how the case of the reserved words should be processed.  The
      consideration is whether the compiler recognizes reserved words in
      upper case, lower case, or mixed case:

      CASE = ASIS    (must match file exactly)

          or

      CASE = IGNORE  (compare ignoring case)

   Reserved Word Classes

      Specify up to four classes of reserved words as follows:

      WORD_COLOR1 = "word1", "word2", ... , "wordn"
      WORD_COLOR2 = "word1", "word2", ... , "wordn"
         ...
      WORD_COLOR4 = "word1", "word2", ... , "wordn"

      You can specify multiple words on the same line as shown above or you
      can specify them one word per line:

      WORD_COLOR1 = "word1",
                    "word2",
                      ...
                    "wordn"

      How you decide which reserved words go together in a class is up to
      you.  For simplicity you could put all the reserved words in a single
      class which uses a single color.

      Literal values specified in colorization control records must be
      enclosed in single or double quotes.

   Source Comments

      Specify how source comments should be processed.  For comments that
      begin in any column, that may span multiple lines, and may end in any
      column, specify a begin and end comment sequence as follows:

      BLOCK_COMMENT = "/*", "*/"    ("C" example)

      Only one BLOCK_COMMENT record is allowed.

      For comments that begin in any column, and run from that column to the
      end of the line, specify only a begin sequence as follows:

      LINE_COMMENT = "/*"    (COBOL example)
      LINE_COMMENT = "//"    (C and C++ example)

      For comments that begin in a specific column, and run from that column
      to the end of the line, specify a begin sequence and column number as
      follows:

      LINE_COMMENT = "*", "7"    (COBOL example)

      You can have as many LINE_COMMENT records as you wish designating
      different comment schemes supported by your particular compiler.

   Quoted Strings

      Specify how quoted strings should be processed:

      STRING_DELIMITERS = '"', "'"

      Most programming languages recognize strings and other literals by way
      of either a single quote or double quote delimiter. There are
      exceptions and they can be added as required. For example, DBASE
      recognizes square brackets as string delimiters ([]).

      Note that in the example above, we used the single quote to enclose the
      double quote character, and vice versa.

   Reserved Word Parsing

      Specify how reserved words should be parsed.  A reserved word is
      considered started by the left edge of the line, a blank, or any
      non-alpha or non-numeric character.  A reserved word is considered
      ended by the right edge of the line, a blank, or any non-alpha or
      non-numeric character.

      Under some circumstances you may not want a non-alpha character to
      cause a word break. For example, if the underscore character is
      commonly used in variable names, you do not want the text next to that
      character to be a reserved word candidate. You can specify characters
      which should not cause a word break as follows:

      NO_BREAK_CHAR = "_"

      You can specify as many no-break characters as desired within the
      quoted string.

   Special Characters

      Specify any individual characters that have particular meaning in the
      language being colorized. You can specify as many individual characters
      as desired in a single quoted string. The following example is from the
      "C" language colorization file:

      SPECIAL_CHARS = "(){};."

#  22.2 {Attaching Specific Colors to a Control File}

   The control file itself has no specific color assignments.  These are done
   separately so that you can re-assign colors without altering the control
   file.

   In parameter option panel 0.4 specify the colors corresponding to the
   control records in your "name.CLR" file.

#  22.3 {Activating Colorization}

   After creating a colorization control file and assigning colors via panel
   0.4, you must bind the colorization control file to a specific file type
   by setting the COLORMAP profile variable to the colorization file name
   (not including the extension).

   Get into EDIT on a program source file of the type you want to colorize.
   While in EDIT, invoke the COLORMAP primary command to bind the color map
   to the file type:

   COLORMAP  name    ("name" part of "name.CLR")

   To discontinue colorization:

   COLORMAP  NONE

   Below is a small portion of the "C" colorization control file supplied
   with SPF/Pro. If you want to see the complete version of any of the
   program colorization control files, look in SPF/Pro directory in files
   *.CLR.

   You can set colorization ON or OFF globally on Option Panel 0.5.

   From colorization control file C.CLR:

   CASE = ASIS

   WORD_COLOR1 = "#define",
                 "#if",
                 "#else",
                 "#endif"

   WORD_COLOR2 = "if",
                 "else",
                 "for",
                 "while",
                 "switch"

   WORD_COLOR3 = "char",
                 "int",
                 "short",
                 "long"

   BLOCK_COMMENT = "/*", "*/"

   LINE_COMMENT = "//"

   SPECIAL_CHARS = "(){};."


#  23. {General Primary Commands}

   SPF/Pro includes a number of commands that can be issued from any menu or
   panel. Commands in this group are known as general commands.

   All commands in this group are primary commands.  You issue primary
   commands in the command field or through PF keys.  (Notice that many
   general commands are included in the default set of PF key assignments.)

   The table below summarizes the general commands.  Following the table,
   there is detailed information about each of the general commands.

      Command     Function

      =           Jump directly to specified panel
      BROWSE      Browse a file
      COLOR       Display the current color settings (also COLOUR)
      CRETRIEV    go to primary cmd field, then retrieve last cmd
      CURSOR      Move cursor to the primary command field
      DOS         Execute external command (also CMS, CP, TSO)
      EDIT        Edit a file
      END         Return to the previous panel
      EOF         Clear entry field (assign to PF key)
      FF          Write Form-feed to active printer
      FONT        Change font (same as 0.F)
      FSPLIT      Create another full screen task
      HELP        Invoke HELP feature
      KEYBOARD    Change keyboard map (same as 0.K)
      KEYS        Display the PF key definitions
      LPRINT      Change the logical printer assignment
      PANELID     Display the panel ID
      PFSHOW      Toggle the display of the PF keys
      PRINT       Print the contents of the current screen
      REDIT       Bring up the Most Recent Edits list for inline use
      RETRIEVE    Redisplay a previous primary command
      RETURN      Return directly to the Primary Option Panel
      SPLIT       Split the screen horizontally at the cursor
      SPLITV      Split the screen vertically at the midpoint
      SWAP        Swap control to the other task
      USER        Execute user application (same as Option 4)
      VSPLIT      Split the screen vertically at the cursor

#  23.1 {= (Jump)}

   Purpose

   Use this command to move directly to any SPF/Pro panel.  Issue this
   command from any SPF/Pro panel.

   Format

   =x[.x]

   Remarks

   After you become familiar with SPF/Pro features and panels, you will find
   it faster to bypass the menu system and use this short-hand way of
   identifying the panel you want to work with.  The parameters for this
   command are simply the primary and secondary (if it applies) option
   numbers for the panel you want to move to.

   When you jump to a panel the current context is reset to the target panel.
   Thus when you exit via [F3], you are positioned to the Primary Option
   panel.

   Note:  If you are in a custom dialog, JUMP treats the panel which
   originated of the custom dialog as the base for the jump destination.

   Example

   =0

   This command would move you to Panel 0, the Parameter Options panel.

   =0.2

   This command would move you to Panel 0.2, the Printer Characteristics
   panel.

#  23.2 {BROWSE}

   Purpose

   Use this command to browse a file.

   Format

   BROWSE  file-spec

   Remarks

   The BROWSE primary command can be used anywhere.  When BROWSE is invoked,
   the current context is preserved.  When you exit BROWSE, you return to
   where you were when you invoked BROWSE.

   Note:  If you invoke BROWSE via "=1" jump, the current context is not
   preserved. On exit you are returned to the Primary Option Menu.

   Example

   BROWSE  SAMPLE.COB

#  23.3 {COLOR}

   Purpose

   Use this command to display and change the current color settings.

   Format

   COLOR
   COLORS
   COLOUR

   Remarks

   This command displays the COLOR DEFINITIONS, which allows you to review
   and change the colors assigned to various display elements.

   The COLOR primary command can be used anywhere.  When COLOR is invoked,
   the current context is preserved.  When you exit COLOR, you return to
   where you were when you invoked COLOR.

   Note:  If you invoke COLOR via "=0.4" jump, the current context is not
   preserved. On exit you are returned to the Primary Option Menu.

#  23.4 {CRETRIEV}

   Purpose

   Use this command to position to the primary command field and then
   redisplay previous commands.

   Format

   CRETRIEV  [ BACK ]

   Remarks

   The first execution of CRETRIEV, places the cursor in the primary command
   field; no further action is taken.  The second execution of CRETRIEV with
   no intervening primary commands, retrieves the last primary command
   executed.

   You can optionally specify BACK to alter the direction of retrieval.

   Note:  You can also use the RETRIEVE primary command which positions to
   the primary command field and retrieves the last command in a single step.

#  23.5 {CURSOR}

   Purpose

   Same as [HOME] key.  Use this command to move to the command field.

   Format

   CURSOR

   Remarks

   This command is only practical when issued with a PF key; it is not
   initially assigned to a PF key.

   The [HOME] key performs this function without [SPF-Enter] processing.

#  23.6 {DOS}

   Purpose

   Use this command to execute an operating system command or program.

   Format

   DOS [operating-system-command | program-name]
   CMS
   CP
   TSO

   Remarks

   When you issue the command, SPF/Pro turns control over to operating
   system, for execution of the command or program you specified.  Varied
   forms are provided for convenience; they all send the command to operating
   system.

   SPF/Pro dialog variables (Z...) in command parameters are automatically
   expanded.

   If no system command is specified, the entry panel for Primary Option 6
   (COMMAND) is displayed.

   Example

   To display the current directory:

   DOS DIR

   To change the current directory:

   DOS CD directory-name

   To invoke Lotus 1-2-3:

   DOS 123

   To compile the last source file edited:

   DOS COBOL &ZDSN

#  23.7 {EDIT}

   Purpose

   Use this command to edit a file.

   Format

   EDIT  file-spec
         [file-spec2]
         [file-spec...]

   Remarks

   The EDIT primary command can be used anywhere.  When EDIT is invoked, the
   current context is preserved.  When you exit EDIT, you return to where you
   were when you invoked EDIT.

   You can specify multiple file specifications. This creates a select list
   of all matching files.

   Note:  If you invoke EDIT via "=2" jump, the current context is not
   preserved. On exit you are returned to the Primary Option Menu.

   Example

   EDIT  SAMPLE.COB

   EDIT  *.COB

   EDIT  *.COB *.CPY

   EDIT  (with no parms brings up Panel 2)

#  23.8 {END}

   Purpose

   Same as [F3] key.  Use this command to end the current function and return
   to the preceding panel.

   Format

   END

   Remarks

   If exiting the Primary Option Panel, SPF/Pro is terminated.

   If exiting the Primary Option Panel, when two or more split sessions are
   present, the active session terminates and the adjacent peer session
   becomes active.

   If exiting edit and AUTOSAVE is on, the modified file is saved.

#  23.9 {EOF}

   Purpose

   This command may be assigned to a PF key to clear an entry field.

   Format

   EOF

   Remarks

   Has same effect as CTRL-DEL erase-end-of-field.

#  23.10 {FF}

   Purpose

   Send a Form Feed command to the current logical printer.

   Format

   FF

   Remarks

   None.

#  23.11 {FONT}

   Purpose

   Change display fonts.

   Format

   FONT

   Remarks

   This command behaves identically to Option 0.F except that when you exit
   the dialog via the END command (normally [F3]), you return to the panel
   you were in when you issued the FONT command.

#  23.12 {FSPLIT}

   Purpose

   Use this command to start another full screen SPF/Pro session.

   Format

   FSPLIT

   Remarks

   Issuing FSPLIT saves the current session, starts another session, and
   swaps it into view.  The maximum number of sessions that may be started is
   set in Terminal Option 0.1.

   To swap among full screen sessions, enter the SWAP command (normally
   [F9]).

   Once a full screen session is established, it can then be split either
   horizontally or vertically (see SPLIT, SPLITV, and VSPLIT).

#  23.13 {HELP}

   Purpose

   Same as [F1] key. Use this command to display online help.

   Format

   HELP

   Remarks

   This command works one of the following ways:

   *  After an error has caused display of a short message, requesting HELP
      displays the corresponding long message which provides additional
      information.

   *  After the long message has been displayed, requesting HELP again
      displays Context Sensitive HELP for the feature you are using.

   *  If no error has occured, requesting HELP displays Context Sensitive
      HELP for the feature you are using.

   *  Specifying Primary Option Tutorial displays the online help starting at
      the Table of Contents.

#  23.14 {KEYBOARD}

   Purpose

   Change or edit the keyboard map.

   Format

   KEYBOARD
   KEYB

   Remarks

   This command behaves identically to Option 0.K except that when you exit
   the dialog via the END command (normally [F3]), you return to the panel
   you were in when you issued the KEYBOARD command.

#  23.15 {KEYS}

   Purpose

   Use this command to display and change the current PF key settings.

   Format

   KEYS

   Remarks

   This command displays PF Key Definitions, which allows you to review and
   change the commands and PFSHOW labels assigned to your PF keys.

   The KEYS primary command can be used anywhere.  When KEYS is invoked, the
   current context is preserved.  When you exit KEYS, you return to where you
   were when you invoked KEYS.

   PF key mappings and PFSHOW labels may also be set via Keyboard Option 0.K.

   Note:  If you invoke KEYS via "=0.3" jump, the current context is not
   preserved. On exit you are returned to the Primary Option Menu.

#  23.16 {LPRINT}

   Purpose

   Use this command to change the assignment of the logical printer.

   Format

   LPRINT  [logical-printer-name]

   Remarks

   This command changes the logical printer assignment.  If no logical
   printer name is specified, the 0.2 list is presented.

   The LPRINT primary command can be used anywhere.  When LPRINT is invoked,
   the current context is preserved.  When you exit LPRINT, you return to
   where you were when you invoked LPRINT.

   Note:  If you invoke LPRINT via "=0.2" jump, the current context is not
   preserved. On exit you are returned to the Primary Option Menu.

   Example

   LPRINT  format1

#  23.17 {PANELID}

   Purpose

   Use this command to toggle the display of the panel ID.

   Format

   PANELID  [ ON | OFF ]

   Remarks

   This command turns panel ID display ON or OFF. If no parameter is
   specified, it toggles the present panel ID display state.  When PANELID is
   ON, the panel ID is displayed in the upper left corner of all SPF/Pro
   panels.

#  23.18 {PFSHOW}

   Purpose

   Use this command to set the display mode of the PF keys, the display
   position, or the number of display lines.

   Format

   PFSHOW  [ ON | OFF ]  [ TOP | BOT ]  [ nn ]

   Remarks

   Specifies whether the PF keys are to be displayed or not, where they are
   to be displayed, and how many lines of keys are to be displayed (12 keys
   per line).  If no parameter is specified, the ON/OFF state of the PF keys
   is toggled.

   If TOP or BOT is specified, it is remembered so that subsequent toggling
   of the PFSHOW state keeps the proper display position.  If neither is
   specified, BOT is assumed.

   If a number is specified, it is remembered so that subsequent toggling of
   the PFSHOW state keeps the proper number of display lines.

   When the PF keys are visible, you can activate them by placing the mouse
   cursor on a particular key and double-clicking the left mouse button.

#  23.19 {PRINT}

   Purpose

   Use this command to print the current screen, or part or all of the
   current file.

   Format

   PRINT [ALL ]
   PRI   [PART]

   Remarks

   The printout is sent to the file or device specified in panel 0.2, Printer
   Characteristics.

   If no parameter is specified, the full screen is printed.

   For EDIT or BROWSE, if ALL is specified, the entire file contents are
   printed.

   For EDIT, if PART is specified, the block of lines identified by CC is
   printed.

#  23.20 {REDIT}

   Purpose

   Use this command to bring up the Most Recent Edits list for inline use.

   Format

   REDIT

   Remarks

   If you want to preserve the current context and do a quick edit of a file
   on the Most Recent Edits list, use this command.

#  23.21 {RETRIEVE}

   Purpose

   Same as [F12] key.  Use this command to redisplay previous commands.

   Format

   RETRIEVE  [ BACK ]

   Remarks

   You can press the PF key assigned to this command repeatedly to redisplay
   up to 10 of the previous commands you have issued.

   You can optionally specify BACK to alter the direction of retrieval.

#  23.22 {RETURN}

   Purpose

   Same as [F4] key.  Use this command to return directly to the Primary
   Option Panel.

   Format

   RETURN

   Remarks

   Issuing this command is the same as issuing multiple END commands to reach
   the Primary Option Panel.  If you are in edit, and AUTOSAVE is on, the
   file is saved as if END had been issued.

   If you are in a recursive EDIT or BROWSE, this command returns you to the
   original EDIT or BROWSE session respectively.

   Note:  If you are in a custom dialog, RETURN only goes back to the panel
   which originated of the custom dialog.

#  23.23 {SPLIT}

   Purpose

   Same as [F2] key.  Use this command to split the screen horizontally into
   two complete SPF/Pro sessions.  The split point is determined by the
   cursor position.

   Format

   SPLIT

   Remarks

   Issuing SPLIT does one of three things:

   1. If only one session has been started, SPF/Pro saves the current
      session, splits the screen horizontally at the current cursor position,
      starts a second session, and makes it the active session.

   2. If a second session has been started, SPF/Pro splits the screen
      horizontally at the current cursor position, and swaps to the other
      session.

   3. If the current session is split vertically, it is switched to a
      horizontal split.

   Note:  To swap between horizontally split sessions, enter the SWAP command
   (normally [F9]).

   SPLIT only affects the current full screen session.

#  23.24 {SPLITV}

   Purpose

   Use this command to split the screen vertically at the midpoint into two
   complete SPF/Pro sessions.

   Format

   SPLITV

   Remarks

   If only one session has been started, SPF/Pro saves the current session,
   splits the screen vertically at the midpoint, starts a second session, and
   makes it the active session.

   If a second session has been started, SPF/Pro splits the screen vertically
   at the midpoint, and swaps to the other session.

   To swap between vertically split sessions, enter the SWAP command
   (normally [F9]).

   SPLITV only affects the current full screen session.

#  23.25 {SWAP}

   Purpose

   Same as [F9] key.  Use this command to move among split screen sessions.

   Format

   SWAP

   Remarks

   Sessions are activated according to the rules listed below:

   *  If only one session is active, SWAP is treated as an FSPLIT.

   *  If you are in FSPLIT mode, SPF/Pro activates the next session in the
      ring and swaps it into view.

   *  If you are in SPLIT mode,

      -  If the second task occupies less than five lines of the screen,
         SPF/Pro swaps the positions and line counts of the sessions.

      -  If the second task occupies more than five lines of the screen,
         SPF/Pro activates the second task and moves the cursor to it,
         without changing the split point.

   *  If you are in VSPLIT mode,

      -  If the second task occupies less than ten columns of the screen,
         SPF/Pro swaps the positions and column counts of the sessions.

      -  If the second task occupies more than ten columns of the screen,
         SPF/Pro activates the second task and moves the cursor to it,
         without changing the split point.

   *  If you are in SPLITV mode, the split is at the midpoint, SPF/Pro
      activates the second task and moves the cursor to it, without changing
      the split point.

#  23.26 {USER}

   Purpose

   Use this command to execute a user application.

   Format

   USER  [user-application-name]

   Remarks

   This command executes a user application.  If no user-application-name is
   specified, Primary Option 4, Foreground list is presented.

   The USER primary command can be used anywhere.  When USER is invoked, the
   current context is preserved.  When you exit USER, you return to where you
   were when you invoked USER.

   If no application name is specified, the entry panel for Primary Option 4
   (FOREGROUND) is displayed.

   Note:  If you invoke USER via "=4" jump, the current context is not
   preserved. On exit you are returned to the Primary Option Menu.

   Example

   To invoke the Micro Focus compiler for the current edit file:

   USER MFCOMP

#  23.27 {VSPLIT}

   Purpose

   Use this command to split the screen vertically into two complete SPF/Pro
   sessions.  The split point is determined by the cursor position.

   Format

   VSPLIT

   Remarks

   If only one session has been started, SPF/Pro saves the current session,
   splits the screen vertically at the current cursor position, starts a
   second session, and makes it the active session.

   If a second session has already been started via VSPLIT (or SPLITV),
   SPF/Pro swaps to the other session.

   To swap between vertically split sessions, enter the SWAP command
   (normally [F9]).

   VSPLIT only affects the current full screen session.

#  24. {File Select List Primary Commands}

   This section covers basic ways of using file select lists.

   When you type a file specification that includes wild-card characters (*
   or ?) on an entry panel, SPF/Pro creates a file select list matching your
   specification.

   The current directory is displayed above all file select lists.  When all
   files in the list reside in the same directory, the path information is
   not included in the individual list entries.  When multiple paths are
   present, they are displayed to the right of the ATTRIBUTES field in each
   entry.

   Note:  SPF/Pro file select lists differ somewhat from the ISPF/PDF file or
   member list.  This is due to differences in the respective file systems.
   For more information on PC file systems, including directories and
   subdirectories, see the respective operating system User's Reference.

   The remainder of this chapter details the select list primary commands,
   which are summarized in the table at the end of this section.

      File Select List Primary Commands

      BOT        Position to bottom of list
      CHANGE     Change one string to another in one or more files
      CONFIRM    Display delete-confirmation screen
      DOWN       Scroll view of list down
      ERRORFILE  Set active error file name
      EXCLUDE    Exclude files specified, include all others
      FIND       Find a string in one or more files
      IMACRO     Set active IMACRO
      INCLUDE    Include files specified, exclude all others
      INSERT     Add files specified to the list
      LOCATE     Locate a specific list entry
      LRECL      Set active max record length
      MD         Make subdirectory in current select list
      PROFILE    Set active file profile
      REFRESH    Refresh list based on original file specification
      SAVELIST   Save select list under a symbolic name
      SEARCH     alias for FIND
      SELECT     Select a file or directory
      SORT       Sort the list
      TOP        Position to top of list
      UP         Scroll view of list up
      XMACRO     Set active XMACRO

#  24.1 {BOT}

   Purpose

   This is a primary command.  Use this command to position to the bottom of
   the select list.  This command also operates on file displays.

   Format

   BOTTOM
   BOT

   Remarks

   None.

#  24.2 {CHANGE}

   Purpose

   This is a primary command.  Use this command to change occurences of a
   character string in all files in a file select list.

   Format

   CHANGE str1 str2 [NEXT ][CHARS ][col1[col2]]
   CHG              [ALL  ][PREFIX]
   C                [FIRST][SUFFIX]
                    [LAST ][WORD  ]
                    [PREV ]

   Remarks

   When CHANGE is used in file select lists, it creates a sublist of all
   files containing the target string (str1).

   *  If ALL is specified, the files are automatically altered and the number
      of changes per file is displayed in the select list MESSAGE field.
      Only the files which contained the target string appear in the list.

   *  If ALL is not specified, CHANGE automatically jumps into edit on the
      first file in the list and changes the first occurence of the string.
      At this point you can press F5 (RFIND) and F6 (RCHANGE) to repeat the
      specified change on a per file basis as desired.  Press F3 (END) to
      exit the changed file, and automatically jump into the next file in the
      CHANGE list.

   See page     for a detailed description of all parameters and examples of
   use.

   Note: RANGE, X, and NX parameters are not supported in select lists.

#  24.3 {CONFIRM}

   Purpose

   This is a primary command.  Use this command to change the current setting
   for delete confirmation.

   Format

   CONFIRM [ON ]
           [OFF]

   Remarks

   When delete confirmation is ON, SPF/Pro asks you to confirm delete
   requests made in select lists via the delete line command.

   You can also set delete confirmation on the File List Utility entry panel.
   See the DELETE command for more information.

   Example

   CONFIRM OFF

#  24.4 {DOWN}

   Purpose

   This is a primary command.  Use this command to move toward the bottom of
   the file select list.  Same as [F8] key.  This command also applies to
   file displays.

   Format

   DOWN [PAGE]
        [HALF]
        [CSR ]
        [DATA]
        [MAX ]
        [nnnn]

   Remarks

   There are three ways to specify how much SPF/Pro moves when you issue the
   command:

   1. Issue the command without a scroll amount.  In this case the SCROLL
      field determines the amount scrolled.  The SCROLL field is in the upper
      right corner of the screen.

   2. Issue the command with a scroll amount.  Type the command and the
      amount, or type the amount and press the appropriate PF key.

   3. Change the SCROLL field and execute step 1.

   Note:  Scroll amounts can be abbreviated. For example, P for PAGE, M for
   MAX, etc.

   Example

   [F8]

   Move down by amount specified in SCROLL field.

   DOWN 8

   Move down eight lines.

   Type 8 in command field, then press [F8]

   Also, move down eight lines.

#  24.5 {ERRORFILE}

   Purpose

   This is a primary command.  Use this command to set the name of the active
   error file.  This command also applies to file displays.

   Format

   ERRORFILE  file-name

   Remarks

   If you can direct your compiler to assign a specific name to its error
   message file and append error messages as each file compiles, then you can
   have SPF/Pro automatically incorporate the error messages for a specific
   file into that file when you edit it from the select list.

   Example

   The following example directs that error messages in errorfile MSVC.LOG be
   incorporated into any file which is edited from this select list.

   ERRORFILE MSVC.LOG

#  24.6 {EXCLUDE}

   Purpose

   This is a primary command.  Use this command to exclude a specific group
   of files from the current select list.

   Format

   EXCLUDE  file-spec
   EXC      [ file-spec2 ]
   EX       [ file-spec... ]

   Remarks

   Standard operating system wild card characters are accepted.

   Individual files or blocks of files can be excluded using the x or xx line
   commands respectively.

   You can specify multiple file specifications. This creates a select list
   of all matching files.

   Example

   EXCLUDE TEST1.BAK

   EXCLUDE *.BAK

   EXCLUDE *.BAK *.TMP

#  24.7 {FIND}

   Purpose

   This is a primary command.  Use this command to search all files in the
   list for a string, word or characters, creating a sublist of files that
   contain the target string.

   Format

   FIND str1 [NEXT ][CHARS ][col1[col2]]
   F         [ALL  ][PREFIX]
             [FIRST][SUFFIX]
             [LAST ][WORD  ]
             [PREV ]

   Remarks

   After the list is created, FIND automatically jumps into the first file in
   the list and positions to the target string.  Press F3 (END) to exit the
   current file, and automatically jump into edit on the next file in the
   list.

   See page     for a detailed description of all parameters and examples of
   use.

   Note: RANGE, X, and NX parameters are not supported in select lists.

#  24.8 {IMACRO}

   Purpose

   This is a primary command.  Use this command to set the IMACRO profile
   variable.  This command also applies to file displays.

   Format

   IMACRO  macro-name

   Remarks

   The IMACRO specified is executed before each edited file.

#  24.9 {INCLUDE}

   Purpose

   This is a primary command.  Use this command to include a specific group
   of files from the current select list and exclude all others.

   Format

   INCLUDE  file-spec
   INC      [ file-spec2 ]
            [ file-spec... ]

   Remarks

   This is the inverse of EXCLUDE.  Standard operating system wild card
   characters are accepted.

   You can specify multiple file specifications. This creates a select list
   of all matching files.

   Example

   INCLUDE TEST1.COB

   INCLUDE *.COB

   INCLUDE *.COB *.CPY

#  24.10 {INSERT}

   Purpose

   This is a primary command.  Use this command to add a specific group of
   files to the current select list.

   Format

   INSERT  file-spec

   Remarks

   New files are inserted in proper sort sequence.  Standard operating system
   wild card characters are accepted.

   Example

   INSERT *.OBJ

#  24.11 {LOCATE}

   Purpose

   This is a primary command.  Use this command to locate a specific file in
   a select list.  This command also applies to file displays.

   Format

   LOCATE [FNAME]  [full name (name + extension)]
   LOC    [NAME]   [name (no extension)]
   L      [EXT]    [extension (no name)]
          [SIZE]   [file size (bytes)]
          [DATE]   [modification date (mm-dd-yy)]
          [TIME]   [modification time (hh:mm[a|p])]

   Remarks

   If found, the list is scrolled to position the requested entry at the top.

   If a keyword is specified, the search is made as directed.

   If a keyword is not specified, the search is made based on the last sort
   order of the select list.  For example, if the last sort was by date, the
   search parameter is assumed to be a date.

      If you have not sorted the select list, the last sort order is the
      default specified in the Editor Options panel.

   A number of keywords from mainframe environments are accepted as synonyms
   for SPF/Pro keywords:

   BYTES = SIZE
   TRACKS = SIZE
   CREATED = DATE
   REFERRED = DATE
   DIRECTORY = FNAME
   ORIGINAL = FNAME
   BASE = NAME
   FNAME = NAME

   Note:  For the purposes of the LOCATE command, Option 0.2 (Printer Setup),
   0.7 (Profiles), and 4 (Foreground) are considered to be in NAME sequence.

   Example

   LOCATE PRIMOPT1

   The example command positions the select list to the PRIMOPT1 entry.  If
   an exact match is not found, it positions to the nearest entry.

#  24.12 {LRECL}

   Purpose

   This is a primary command.  Use this command to set the LRECL profile
   variable.  This command also applies to file displays.

   Format

   LRECL  number

   Remarks

   The maximum record length is used at load time to check incoming records,
   and used during edit to limit the length of modified or new records for
   any file edited from the select list.

#  24.13 {MD}

   Purpose

   This is a primary command.  Use this command to make a new subdirectory in
   the current select list.

   Format

   MD  directory-name

   Remarks

   The new subdirectory is created in the path displayed at the top of the
   select list.

   Example

   MD SUB2

#  24.14 {PROFILE}

   Purpose

   This is a primary command.  Use this command to set the PROFILE profile
   variable.  This command also applies to file displays.

   Format

   PROFILE  profile-name

   Remarks

   The active profile is used in conjunction with any file edited from the
   select list.

#  24.15 {REFRESH}

   Purpose

   This is a primary command.  Use this command to refresh the select list
   using the original file specification.

   Format

   REFRESH

   Remarks

   If you SPLIT and the operate on files in the same directory that an
   earlier SPF task is opened on, the file list may become obsolete. It is
   also possible to obsolete a file list by executing non-SPF functions in
   parallel with SPF.

#  24.16 {SAVELIST}

   Purpose

   This is a primary command.  Use this command to save the current select
   list under a symbolic name for later use.

   Format

   SAVELIST  [name]
   SAVE

   Remarks

   SAVELIST presents a panel which requests a LIST NAME (if not provided) and
   DESCRIPTION.  Saved lists are accessed via Option 3.F, GROUP LIST. When
   you invoke Group List, you get a select list of saved names. You then
   select the desired name and the associated list is presented.

   Example

   SAVELIST project1

#  24.17 {SEARCH}

   Purpose

   This is a primary command.  Use this command to search all files in the
   current select list for a specific string. A sublist is created containing
   only the files which contain the specified string.

   Format

   SEARCH  [text] [CAPS | ASIS]

   Remarks

   If text is not specified, a panel is presented allowing you to specify
   multiple strings in either CAPS or ASIS form.

   If text is specified, you can optionally specify whether the search is
   ASIS or CAPS form.  If the search form is not specified, CAPS is assumed.

   This feature is most typically used to find all source modules which
   access a particular variable name or all text files referring to a
   particular subject.

   After using a list created by SEARCH you can return to the original
   context via [F3].

   Note:  SEARCH is fast but is limited to simple searches for raw text.  If
   you need more context on your search criteria, use the FIND command with
   its more general and powerful capabilities.

   Example

   Here are some examples of use:

   SEARCH  ...exact-text...  ASIS

   SEARCH  'text with blanks'

   SEARCH  textnoblanks

   SEARCH

   Specifying SEARCH without parameters results in the search panel being
   presented. You can specify up to four ASIS and four CAPS text arguments.
   If a searched file contains ANY of the specified arguments, it is included
   in the resulting sublist.

#  24.18 {SELECT}

   Purpose

   This is a primary command.  Use this command to select a list entry.

   Format

   SELECT [entry-name]
   SEL
   S

   Remarks

   Select is used in a variety of contexts:

   *  In Option 1, BROWSE, selects file to browse.

   *  In Option 2, EDIT, selects file to edit or creates a new file when a
      non-existent filename is specified.

   *  In Option 0.2, Printer Setup, selects printer setup by name.

   *  In Option 0.4, Color Definitions, selects color scheme by name.

   *  In Option 0.7, File Profiles, selects file profile to edit by name.

   *  In Option 0.K, Keyboard Mapping, selects keyboard scheme by name.

   *  In Option 4, Foreground, selects user program by name.

   If you issue this command without specifying a file, the top entry in the
   list is selected.

   If you select a subdirectory, a select list for the subdirectory is
   presented.  You can return to the original select list by pressing [F3].

   Example

   SELECT PROGRAM.COB

   This command opens PROGRAM.COB for Edit or Browse, depending on the mode
   you are in.  If the file doesn't exist, and you are in edit mode, SPF/Pro
   opens a new file with the specified name.

#  24.19 {SORT}

   Purpose

   This is a primary command.  Use this command to sort a select list.

   Format

   SORT   [FNAME]
          [NAME]
          [EXT]
          [SIZE]
          [DATE]
          [TIME]

   Remarks

   Sorting can help you find a file, review the contents of a directory, or
   set up the select list for a LOCATE command.

   Sort keywords are as follows:

   FNAME

      Sort by full name (name + extension).

   NAME

      Sort by name (no extension).

   EXT

      Sort by extension (no name).

   SIZE

      Sort by file size (bytes).

   DATE

      Sort by modification date (mm-dd-yy).

   TIME

      Sort by modification time (hh:mm[a|p]).

   A number of keywords from mainframe environments are accepted as synonyms
   for SPF/Pro keywords:

   BYTES = SIZE
   TRACKS = SIZE
   CREATED = DATE
   REFERRED = DATE
   DIRECTORY = FNAME
   ORIGINAL = FNAME
   BASE = NAME
   FNAME = NAME

   Sorting the select list before issuing a LOCATE makes the locate more
   efficient.  For example, if you issue a LOCATE DATE command on an unsorted
   select list, SPF/Pro locates the first occurrence of the date, but other
   files with the same date will be elsewhere in the select list. If you sort

   the list by date before issuing the command, after SPF/Pro locates the
   first occurrence of the specified date; adjacent files with the same date
   are also displayed.

   Note:  Sort buttons are provided on file selection lists.

   Example

   SORT EXT

   The command above sorts the select list by extension.  Files are grouped
   by extension, and the extensions are sorted into alphabetical order.

   SORT NAME DATE

   The command above sorts the select list first by name, and then by date
   within name.

#  24.20 {TOP}

   Purpose

   This is a primary command.  Use this command to position to the top of the
   select list.  This command also operates on file displays.

   Format

   TOP

   Remarks

   None.

#  24.21 {UP}

   Purpose

   This is a primary command.  Use this command to move toward the top of a
   file display or select list.  Same as [F7] key.  This command also applies
   to file displays.

   Format

   UP [PAGE]
      [HALF]
      [CSR ]
      [DATA]
      [MAX ]
      [nnnn]

   Remarks

   There are three ways to specify how much SPF/Pro moves when you issue the
   command:

   1. Issue the command without a scroll amount.  In this case the SCROLL
      field determines the amount scrolled.  The SCROLL field is in the upper
      right corner of the screen.

   2. Issue the command with a scroll amount.  Type the command and the
      amount, or type the amount and press the appropriate PF key.

   3. Change the SCROLL field and execute step 1.

   Note:  Scroll amounts can be abbreviated. For example, P for PAGE, M for
   MAX, etc.

   Example

   [F7]

   Move up by amount specified in SCROLL field.

   UP 8

   Move up eight lines.

   Type 8 in command field, then press [F7]

   Also, move up eight lines.

#  24.22 {XMACRO}

   Purpose

   This is a primary command.  Use this command to set the XMACRO profile
   variable.  This command also applies to file displays.

   Format

   XMACRO  macro-name

   Remarks

   The macro name specified is executed after each edited file.


#  25. {Select List Line Commands}

      Select List Line Commands

      B  Browse a file
      C  Copy a file
      D  Delete a file
      E  Edit a file
      G  Execute program or batch file
      I  Display information about a file
      K  Convert file format
      M  Move a file
      N  New, select file with new SPF task
      P  Print a file
      R  Rename a file
      S  Select a file
      T  Create a recursive sublist
      U  Apply a user command to a file
      X  Exclude a file from the list

   IMPORTANT INFORMATION RELATING TO SELECT LIST LINE COMMANDS:

   1. The block form of all select list line commands are supported.  For
      example, D = delete entry (or file), DD = delete block, etc.

   2. Block line commands may not overlap with other block line commands or
      individual line commands.

   3. Block line commands do not apply to directories (i.e. directories are
      ignored if they occur within a block.)

   4. Iteration counts are not supported on select list line commands.

#  25.1 {B (Browse)}

   Purpose

   This is a line command.  Use this command to open a file for Browse.

   Format

   B

   Remarks

   Type a B next to the file you want to Browse.  This command is accepted in
   3.x select lists.

   If 0.6, EXTENDED LINE COMMANDS = Y, this command is accepted in all select
   lists.

   If you select a subdirectory, SPF/Pro displays a select list for the
   subdirectory.  You can return to the original select list by pressing
   [F3].

   Example

   __ NAME  EXT   SIZE    DATE     TIME   ATTRS

   __ MM23  DOC   2222  01-25-91  10:56a  A...
   __ MM23  SRC   2345  12-01-90  09:55a  A...
   B_ MM26  SRC   5123  10-25-90  01:23p  A...

      This command opens file MM26.SRC for Browse.

#  25.2 {C (Copy)}

   Purpose

   This is a line command.  Use this command to copy a file.

   Format

   C

   Remarks

   Type a C next to the file you want to copy.  COPY presents a panel
   requesting information on the target file.  This command is accepted in
   3.x select lists.

   If 0.6, EXTENDED LINE COMMANDS = Y, this command is accepted in all select
   lists.

   If you copy a subdirectory, SPF/Pro copies all files and subdirectories in
   the selected subdirectory.

   Note:  If the target file already exists, you have to specify the
   OVERRIGHT FILE option in the COPY dialog.

   Example

   __ NAME EXT  SIZE    DATE     TIME   ATTRS

   __ MM23 DOC  2222  01-25-91  10:56a  A...
   __ MM23 SRC  2345  12-01-90  09:55a  A...
   C_ MM26 SRC  5123  10-25-90  01:23p  A...

      This command copies file MM26.SRC.

#  25.3 {D (Delete)}

   Purpose

   This is a line command.  Use this command to delete a file.

   Format

   D

   Remarks

   Type a D next to the file you want to delete.  If 0.6 field CONFIRM DELETE
   OF FILES = Y, DELETE presents a panel requesting confirmation of the
   delete operation.  This command is accepted in 3.x select lists.

   If 0.6, EXTENDED LINE COMMANDS = Y, this command is accepted in all select
   lists.

   If you delete a subdirectory, all files and subdirectories within that
   subdirectory are deleted.

   Example

   __ NAME EXT  SIZE    DATE     TIME   ATTRS

   __ MM23 DOC  2222  01-25-91  10:56a  A...
   __ MM23 SRC  2345  12-01-90  09:55a  A...
   D_ MM26 SRC  5123  10-25-90  01:23p  A...

      This command deletes file MM26.SRC.

#  25.4 {E (Edit)}

   Purpose

   This is a line command.  Use this command to edit a file.

   Format

   E

   Remarks

   Type an E next to the file you want to edit.  This command is accepted in
   3.x select lists.

   If 0.6, EXTENDED LINE COMMANDS = Y, this command is accepted in all select
   lists.

   If you select a subdirectory, SPF/Pro displays a select list for the
   subdirectory.  You can return to the original select list by pressing
   [F3].

   Note:  In 3.x you can use primary command EDIT to create a new file, by
   selecting a new but valid filename.

   Example

   __ NAME EXT  SIZE    DATE     TIME   ATTRS

   __ MM23 DOC  2222  01-25-91  10:56a  A...
   __ MM23 SRC  2345  12-01-90  09:55a  A...
   E_ MM26 SRC  5123  10-25-90  01:23p  A...

      This command opens file MM26.SRC for Edit.

#  25.5 {G (Go)}

   Purpose

   This is a line command.  Use this command to execute a program or batch
   file.

   Format

   G

   Remarks

   Type a G next to the program (.EXE) or batch file (.BAT, .CMD) that you
   want to execute.  The contents of the primary command field are passed as
   parameters to the program or batch file being executed.  This command is
   accepted in 3.x select lists.

   If 0.6, EXTENDED LINE COMMANDS = Y, this command is accepted in all select
   lists.

   Example

   __ NAME EXT  SIZE    DATE     TIME   ATTRS

   __ MYAPP EXE 2222  01-25-91  10:56a  A...
   __ FOO BAT   2345  12-01-90  09:55a  A...
   G_ NEWS BAT  5123  10-25-90  01:23p  A...

      This command executes batch file NEWS.BAT.

#  25.6 {I (Information)}

   Purpose

   This is a line command.  Use this command to display attribute information
   about a file.

   Format

   I

   Remarks

   Type an I next to the file for which you want information displayed.  This
   command is accepted in 3.x select lists.

   If 0.6, EXTENDED LINE COMMANDS = Y, this command is accepted in all select
   lists.

   Example

   __ NAME EXT  SIZE    DATE     TIME   ATTRS

   __ MM23 DOC  2222  01-25-91  10:56a  A...
   __ MM23 SRC  2345  12-01-90  09:55a  A...
   I_ MM26 SRC  5123  10-25-90  01:23p  A...

      This command displays information for file MM26.SRC.

#  25.7 {K (Convert)}

   Purpose

   This is a line command.  Use this command to convert a file from one file
   format to another.

   Format

   K

   Remarks

   The file format change is effected by using different input and output
   file profiles.

   Type a K next to the file you want to convert.  Convert presents a panel
   with INPUT and OUTPUT file sections:

   *  The INPUT section is primed with the file which you identified for
      conversion. You can also specify the input file profile name.

   *  The OUTPUT section allows you to specify the output file name, the
      output file profile name, and the maximum output record length.

   This command is accepted in 3.x select lists.

   If 0.6, EXTENDED LINE COMMANDS = Y, this command is accepted in all select
   lists.

   Example

   __ NAME EXT  SIZE    DATE     TIME   ATTRS

   __ MM23 DOC  2222  01-25-91  10:56a  A...
   __ MM23 SRC  2345  12-01-90  09:55a  A...
   K_ MM26 SRC  5123  10-25-90  01:23p  A...

      This command converts file MM26.SRC.

#  25.8 {M (Move)}

   Purpose

   This is a line command.  Use this command to move a file.

   Format

   M

   Remarks

   Type an M next to the file you want to move.  MOVE presents a panel
   requesting information on the target file.  This command is accepted in
   3.x select lists.

   If 0.6, EXTENDED LINE COMMANDS = Y, this command is accepted in all select
   lists.

   If you move a subdirectory, SPF/Pro moves all files and subdirectories in
   the selected subdirectory.

   Note:  If the target file already exists, you have to specify the
   OVERRIGHT FILE option in the MOVE dialog.

   Example

   __ NAME EXT  SIZE    DATE     TIME   ATTRS

   __ MM23 DOC  2222  01-25-91  10:56a  A...
   __ MM23 SRC  2345  12-01-90  09:55a  A...
   M_ MM26 SRC  5123  10-25-90  01:23p  A...

      This command moves file MM26.SRC.

#  25.9 {N (New)}

   Purpose

   This is a line command.  Use this command to select a file entry and
   launch a new SPF task to process the selection.

   Format

   N

   Remarks

   Normally when you select a file, the select operation invokes either EDIT
   or BROWSE on the file and stacks the select list for later use.  With NEW,
   a new SPF task is launched to directly EDIT or BROWSE the selected file.
   In this mode, the select list remains active and can be used to launch
   other file EDITS in parallel.

   Example

   __ NAME EXT  SIZE    DATE     TIME   ATTRS

   __ MM23 DOC  2222  01-25-91  10:56a  A...
   __ MM23 SRC  2345  12-01-90  09:55a  A...
   N_ MM26 SRC  5123  10-25-90  01:23p  A...

   This command launches a new SPF task to directly Edit or Browse file
   MM26.SRC leaving the select list active.

#  25.10 {P (Print)}

   Purpose

   This is a line command.  Use this command to print a file or directory.

   Format

   P

   Remarks

   Type a P next to the file or directory you want to print.  If you "p" a
   file, the contents of the file are printed.  If you "p" a directory, a
   listing of the file names in that directory is printed.  This command is
   accepted in 3.x select lists.

   If 0.6, EXTENDED LINE COMMANDS = Y, this command is accepted in all select
   lists.

   It is possible to set up a variety of output destinations and formats
   using option 0.2.

   Example

   __ NAME EXT  SIZE    DATE     TIME   ATTRS

   __ MM23 DOC  2222  01-25-91  10:56a  A...
   __ MM23 SRC  2345  12-01-90  09:55a  A...
   P_ MM26 SRC  5123  10-25-90  01:23p  A...

      This command prints file MM26.SRC.

#  25.11 {R (Rename)}

   Purpose

   This is a line command.  Use this command to rename a file.

   Format

   R

   Remarks

   Type an R next to a file you want to rename.  RENAME presents a panel
   requesting information on the target file.  This command is accepted in
   3.x select lists.

   If 0.6, EXTENDED LINE COMMANDS = Y, this command is accepted in all select
   lists.

   Example

   __ NAME EXT  SIZE    DATE     TIME   ATTRS

   __ MM23 DOC  2222  01-25-91  10:56a  A...
   __ MM23 SRC  2345  12-01-90  09:55a  A...
   R_ MM26 SRC  5123  10-25-90  01:23p  A...

      This command renames file MM26.SRC.

#  25.12 {S (Select)}

   Purpose

   This is a line command.  Use this command to select a a list entry for
   action.

   Format

   S

   Remarks

   Type an S next to the entry you want selected.  There are a variety of
   contexts in which select is operative.

   *  In Option 0.x, many of the parameter options are presented as lists in
      which you select a specific parameter entry to operate on.

   *  In Option 1, BROWSE, select applies the browse function to the file.

   *  In Option 2, EDIT, select applies the edit function to the file.

   *  In Option 3.x, many of the utility options present a file list from
      which you select a file to operate on.

   *  In Option 4, FOREGROUND, you pick a user application to run from a
      list.

   If you select a subdirectory, SPF/Pro displays a select list for the
   subdirectory. You can return to the original select list by pressing [F3].

   Note:  In edit mode, you can use primary command SELECT to create a new
   file, by selecting a new but valid filename.

   Example

   __ NAME EXT  SIZE    DATE     TIME   ATTRS

   __ MM23 DOC  2222  01-25-91  10:56a  A...
   __ MM23 SRC  2345  12-01-90  09:55a  A...
   S_ MM26 SRC  5123  10-25-90  01:23p  A...

   This command selects file MM26.SRC for Edit or Browse, depending on the
   mode you are in.

#  25.13 {T (Tree)}

   Purpose

   This is a line command.  Use this command to create a list of directories
   below the selected directory.

   Format

   T

   Remarks

   Type a T next to the subdirectory you want to have recursively searched
   for lower level directories. All lower level directories are listed in a
   single flat sublist.  This command is accepted in 3.x select lists.

   If 0.6, EXTENDED LINE COMMANDS = Y, this command is accepted in all select
   lists.

   You can not put a T on a normal file.

   Example

   __ NAME EXT  SIZE    DATE     TIME   ATTRS

   T_ SOURCE     10-25-90  01:23p
   __ MM23 DOC  2222  01-25-91  10:56a  A...
   __ MM23 SRC  2345  12-01-90  09:55a  A...
   __ MM26 SRC  5123  10-25-90  01:23p  A...

      This command creates a flat sublist of all directories below
      subdirectory SOURCE.

#  25.14 {U (User)}

   Purpose

   This is a line command.  Use this command to apply a user command to a
   file.  User commands are set up in FOREGROUND, Option 4.

   Format

   U

   Remarks

   Type a U next to the file you want to apply the user command to.  USER
   presents a panel allowing you to select the desired user command.  Global
   variable &ZDSN is automatically set to the file name of the selected file
   prior to invocation of the user command.  This command is accepted in 3.x
   select lists.

   If 0.6, EXTENDED LINE COMMANDS = Y, this command is accepted in all select
   lists.

   Example

   __ NAME EXT  SIZE    DATE     TIME   ATTRS

   __ MM23 DOC  2222  01-25-91  10:56a  A...
   __ MM23 SRC  2345  12-01-90  09:55a  A...
   U_ MM26 SRC  5123  10-25-90  01:23p  A...

      This command applies a user command to file MM26.SRC.

#  25.15 {X (Exclude)}

   Purpose

   This is a line command.  Use this command to exclude a file from the
   select list.

   Format

   X

   Remarks

   Type an X next to the file you want to exclude.  This command is accepted
   in 3.x select lists.

   If 0.6, EXTENDED LINE COMMANDS = Y, this command is accepted in all select
   lists.

   Unlike edit, the RESET command does not bring excluded lines back into
   view.  If you want the entry back, just redisplay the file select list.

   Example

   __ NAME EXT  SIZE    DATE     TIME   ATTRS

   __ MM23 DOC  2222  01-25-91  10:56a  A...
   __ MM23 SRC  2345  12-01-90  09:55a  A...
   X_ MM26 SRC  5123  10-25-90  01:23p  A...

      This command excludes file MM26.SRC from the select list.

#  26. {Browse Primary Commands}

   The BROWSE function has no line commands.

   The following table summarizes the browse primary commands detailed in the
   remainder of this chapter.

      Command                  Function

      BOT       Position to bottom of file
      COLORMAP  Set active color map
      COLUMNS   Displays a line that identifies column positions
      DISPLAY   Sets non-displayable char for EBCDIC file display
      DOWN      Scroll view of file down
      FIND      Searches for a string, word, or character
      HEX       Displays text in HEX mode
      LEFT      Scroll view of file left
      LOCATE    Positions the file at a line number
      RESET     Resets columns display and excluded lines
      RFIND     Repeat last FIND command
      RIGHT     Scroll view of file right
      SCOPY     Copy selection to cut buffer
      SCREATE   Create a new file from current selection
      SPRINT    Print the current selection
      SREPLACE  Replace a file with current selection
      SXCLUDE   Exclude lines touched by current selection
      TOP       Position to top of file
      UP        Scroll view of file up

#  26.1 {BOT}

   Purpose

   Use this command to position to the bottom of the file.

   Format

   BOTTOM
   BOT

   Remarks

   None.

#  26.2 {COLORMAP}

   Purpose

   Use this command to set the active colormap for the current file type.

   Format

   COLORMAP  file-extension

   Remarks

   The colormap file is an ASCII file which contains control records which
   tell SPF/Pro how to colorize a particular file type.

   Example

   COLORMAP COBOL

   The example sets binds the COB colormap to the current file type.

   Colormaps supplied with SPF/Pro include:

   ASM
   COBOL
   C
   CPP
   PAN
   PASCAL
   PL1

#  26.3 {COLUMNS}

   Purpose

   The COLUMNS command displays a line which identifies the current column
   positions.

   Format

   COLUMNS
   COLS
   COL

   Remarks

   To remove the COLUMNS line, use the RESET command.

#  26.4 {DISPLAY}

   Purpose

   Sets the character to display in place of non-displayable EBCDIC
   characters. This command is only available in BROWSE mode.

   Format

   DISPLAY  char
   DISPL    NONE
   DISP
   DIS

   Remarks

   By default, non-displayable EBCDIC characters (ie: bytes within packed
   fields) are displayed as blanks. The DISPLAY command allows you to select
   the character to display for each non-displayable character. Also HEX ON
   displays the hex value of each character.

   Example

   DISPLAY '.'

   Specifies that the period (.) character should be displayed in place of
   any non-displayable character.

   DISPLAY NONE

   Specifies that the IBM-PC Graphics Characters should be displayed at their
   respective code points. This choice shows a unique graphic character for
   each non-displayable EBCDIC character.

   DISPLAY ' '

   Returns to the original state of displaying a blank character in place of
   any non-displayable character.

#  26.5 {DOWN}

   Purpose

   Use this command to scroll the view of the file down.

   Format

   DOWN  [ PAGE ]
         [ HALF ]
         [ CSR  ]
         [ DATA ]
         [ MAX  ]
         [ nnn  ]

   Remarks

   See page 226 for a detailed description of the parameters and examples.

#  26.6 {FIND}

   Purpose

   This command searches a file for a specific string or word.

   Format

   FIND str1 [NEXT ] [CHARS ] [col1[col2]]
   F         [ALL  ] [PREFIX]
             [FIRST] [SUFFIX]
             [LAST ] [WORD  ]
             [PREV ]

   Remarks

   FIND command parameters are free form and may be entered in any order. The
   only exception is that col2 must follow col1.

   Usually, the FIND command is issued with only the str1 parameter. In that
   case, SPF/Pro searches for the next instance of str1 starting at the
   current cursor location.  If the line is not currently displayed on the
   screen, SPF/Pro scrolls the file so that it is.

   In order to find the next string with the same value, press [F5] (RFIND).

   Although the rest of the optional parameters of FIND are not used as
   frequently, together they provide a very powerful search capability.

   The FIND command in browse is almost exactly the same as the FIND command
   in edit. The only differences are:

   *  The "X" and "NX" parameters are not valid in browse.

   *  The browse version does not have a range parameter.

   *  If col1 and col2 are not specified, the browse version searches the
      entire data width. This contrasts with the edit version which defaults
      to the columns defined by the BOUNDS command.

   Because of the similarities, the parameters for the FIND command are fully
   documented as part of the edit chapter. So, if you want to do any of the
   following:

   *  specify character strings containing blanks or quotes

   *  do case sensitive/insensitive searches

   *  search for hexadecimal strings

   *  find a line containing a string that you specified in a previous FIND

   *  match string dependent on location within a word

   *  change the direction of searching

   *  restrict searching to specific columns

   Example

   FIND ABC

   A search begins at the cursor position for "ABC".

   FIND ABC 1 20

   The search is confined to columns 1 - 20.

   FIND 'ABC D' FIRST

   Search for the first occurrence of "ABC D".

   Note:  Quotes (' or ") must surround the string when it contains embedded
   blanks.

   FIND ABC LAST

   Search for the last occurrence of ABC.

   FIND ABC ALL

   Find all occurrences of ABC and position the cursor at the first
   occurrence.

#  26.7 {HEX}

   Purpose

   This command enables or disables file display in HEX mode.

   Format

   HEX  [ON ]
        [OFF]

   Remarks

   When HEX display mode is ON, three lines of data are displayed for each
   line in your file. The first line contains the original data in ASCII
   format.  The next two lines display the same data in vertical hexadecimal
   format.  A separator line is generated between line groups as a visual
   queue.

#  26.8 {LEFT}

   Purpose

   This is a primary command.  Use this command to move toward the left edge
   of the displayed text.  Same as [F10] key.

   Format

   LEFT [PAGE]
        [HALF]
        [CSR ]
        [DATA]
        [MAX ]
        [nnnn]

   Remarks

   There are three ways to specify how much SPF/Pro moves when you issue the
   command:

   1. Issue the command without a scroll amount.  In this case the SCROLL
      field determines the amount scrolled.  The SCROLL field is in the upper
      right corner of the screen.

   2. Issue the command with a scroll amount.  Type the command and the
      amount, or type the amount and press the appropriate PF key.

   3. Change the SCROLL field and execute step 1.

   Note:  Scroll amounts can be abbreviated. For example, P for PAGE, M for
   MAX, etc.

   Example

   [F10]

   Move left by amount specified in SCROLL field.

   LEFT 8

   Move left eight columns.

   Type 8 in command field, then press [F10]

   Also, move left eight columns.

#  26.9 {LOCATE}

   Purpose

   This command scrolls the screen to a specific line number.

   Format

   LOCATE line-number
   LOC
   L

   Remarks

   Locate scrolls the file to a specific line number.

   Example

   LOC 472

   Line 472 is displayed at the top of screen.

   Different line numbering modes may result in the line number field being
   different than the requested line. For example, if you are numbering by
   10, the displayed line number for ordinal line number 472 would be 004720
   not 000472.

#  26.10 {RESET}

   Purpose

   This command resets the columns display and excluded lines.

   Format

   RESET
   RES

   Remarks

   None.

#  26.11 {RFIND}

   Purpose

   Same as [F5] key.  Use this command to repeat the last FIND command.

   Format

   RFIND

   Remarks

   This command functions in BROWSE, EDIT, and file select lists.

#  26.12 {RIGHT}

   Purpose

   This is a primary command.  Use this command to move toward the right edge
   of the displayed text.  Same as [F11] key.

   Format

   RIGHT [PAGE]
         [HALF]
         [CSR ]
         [DATA]
         [MAX ]
         [nnnn]

   Remarks

   There are three ways to specify how much SPF/Pro moves when you issue the
   command:

   1. Issue the command without a scroll amount.  In this case the SCROLL
      field determines the amount scrolled.  The SCROLL field is in the upper
      right corner of the screen.

   2. Issue the command with a scroll amount.  Type the command and the
      amount, or type the amount and press the appropriate PF key.

   3. Change the SCROLL field and execute step 1.

   Note:  Scroll amounts can be abbreviated. For example, P for PAGE, M for
   MAX, etc.

   Example

   [F11]

   Move right by amount specified in SCROLL field.

   RIGHT 8

   Move right eight columns.

   Type 8 in command field, then press [F11]

   Also, move right eight columns.

#  26.13 {SCOPY}

   Purpose

   Use this command to copy the current selection to the clipboard.

   Format

   SCOPY

   Remarks

   Selections are made with the mouse.  The selection is not deleted from the
   file.

#  26.14 {SCREATE}

   Purpose

   Use this command to create an original external file with the contents of
   the selection.

   Format

   SCREATE  [ file-name ]

   Remarks

   Selections are made with the mouse.  The selection is not deleted from the
   file.  If you don't specify a file name, a dialog panel is presented which
   enables you to enter the target file name.

   If the file already exists, SCREATE will not overwrite it.  To overwrite
   the file with the selection use SREPLACE.

#  26.15 {SPRINT}

   Purpose

   Use this command to print the current selection.

   Format

   SPRINT

   Remarks

   For all selection types, only selected characters are printed.

#  26.16 {SREPLACE}

   Purpose

   Use this command to create or replace an external file with the contents
   of the selection.

   Format

   SREPLACE  [ file-name ]

   Remarks

   Selections are made with the mouse.  The selection is not deleted from the
   file.  If you don't specify a file name, a dialog panel is presented which
   enables you to enter the target file name.

   If the file already exists, SREPLACE will overwrite it.  To avoid
   overwriting the file with the selection, use SCREATE.

#  26.17 {SXCLUDE}

   Purpose

   Use this command to exclude all the lines which are touched by the
   selection.

   Format

   SXCLUDE

   Remarks

   Selections are made with the mouse.

#  26.18 {TOP}

   Purpose

   Use this command to position to the top of the file.

   Format

   TOP

   Remarks

   None.

#  26.19 {UP}

   Purpose

   Use this command to scroll the view of the file up.

   Format

   UP  [ PAGE ]
       [ HALF ]
       [ CSR  ]
       [ DATA ]
       [ MAX  ]
       [ nnn  ]

   Remarks

   See page 244 for a detailed description of the parameters and examples.


#  27. {Edit Primary Commands}

   The commands listed in this chapter are edit primary commands. In general
   they operate over the entire range of the file, rather than upon a single
   line or group of lines. Edit primary commands are entered in the primary
   command field rather than in the line command area of individual lines.

#  27.1 {Edit Primary Command Summary}

   The following table summarizes the edit primary commands detailed in the
   remainder of this chapter.

      Command     Function

      &          Keep command displayed after it is executed
      :          Treat primary command as line command
      AUTOLIST   Create a source listing after END or [F3]
      AUTONUM    Renumber STD, COBOL, or BASIC upon save
      AUTOSAVE   Turn autosave on/off
      BOT        Position to bottom of file
      BOUNDS     Set/reset current bounds
      BUILTIN    Not supported
      CANCEL     Cancel or disregard edit changes
      CAPS       Turn upper case conversion on or off
      CHANGE     Change a string of data
      CHARSET    Set the character set to EBCDIC or ASCII
      COLORMAP   Bind program colorization file to file type
      COMPARE    SUPERC compare current file to external file
      COPY       Copy a file into the current file
      COUNTSAVE  Set number of ENTERs before SAVE (also SAVECOUNT)
      CREATE     Create a new file
      CUT        Cut lines marked with CC or MM to cut buffer
      DATA       Insert data at the current cursor position
      DEFINE     Enable/disable specific macros by name
      DELETE     Delete a group of lines
      DOWN       Scroll view of file down
      END        End edit session; return to prior menu
      ERRORFILE  Insert compiler errors as message lines
      EXCLUDE    Exclude lines from viewing
      FIND       Find a string of data
      FLIP       Invert sense of excluded lines
      HEX        Turn HEX display on or off
      IMACRO     Set initial macro name in the edit profile
      LCOMMAND   Turn line command field ON or OFF
      LEFT       Scroll view of file left
      LEVEL      Set/reset modification level
      LOCATE     Locate a given line
      LRECL      Set logical record length
      MODEL      Access program source templates
      MOVE       Move a file into the current file
      NOTE       Not supported
      NULLS      Not supported
      NUMBER     Turn numbering mode on or off
      PACK       Not supported
      PASTE      Insert lines from cut buffer
      PROFILE    Display current profile information
      RCHANGE    Repeat last CHANGE command
      RECOVERY   Set UNDO support ON or OFF
      REDO       Redo the last alteration which was undone
      RENUM      Renumber the current file
      REPLACE    Replace a file on disk
      RESET      Reset all pending line commands
      RFIND      Repeat last FIND command
      RIGHT      Scroll view of file right
      RMACRO     Not supported
      SAVE       Save a file on disk
      SAVECOUNT  Set number of ENTERs before SAVE (also COUNTSAVE)
      SCOPY      Copy the selection to the clipboard
      SCREATE    Create a new file from the selection
      SCUT       Copy selection to clipboard, then delete it
      SDELETE    Delete the selection
      SORT       Sorts records or columns
      SPASTE     Paste contents clipboard at cursor position
      SPRINT     Print the current selection
      SREPLACE   Replace an existing file with the selection
      STATS      Turn stats on or off
      STOLOWER   Convert selection to all lower case chars
      STOUPPER   Convert selection to all upper case chars

      SXCLUDE    Exclude all lines touched by the selection
      TABS       Turn tabs on or off
      TOP        Position to top of file
      UNDO       Undo the last alteration
      UNNUM      Reset numbers to blanks
      UP         Scroll view of file up
      XMACRO     Sets exit macro name in the edit profile
      VERSION    Not supported

#  27.1 {& (Keep Command)}

   Purpose

   Keep edit primary command in primary command field after execution.

   Format

   &edit-primary-command

   Remarks

   To keep any edit primary command in the primary command field after
   execution is complete, prepend the ampersand (&) character to the command.

#  27.2 {: (Line Command)}

   Purpose

   Treat the command entered in the primary command field as a line command.
   Apply it to the current line.

   Format

   :primary-command

   Remarks

   To apply a line command to the current line without actually typing on
   that line, type colon followed by the line command in the primary command
   field (or in PF key map).

   Example

   If you want to delete a single line using a PF key, you would assign
   that PF key the value:

   :d

#  27.3 {AUTOLIST}

   Purpose

   Turns automatic listing generation on or off.  Creates a source listing
   after changes have been made and saved.

   Format

   AUTOLIST [ON ]
            [OFF]

   Remarks

   If AUTOLIST is on when the edit session ends, a listing of the file is
   generated.

   If AUTOLIST is off when the edit session ends, a listing of the file is
   not generated.

#  27.4 {AUTONUM}

   Purpose

   Turns automatic renumbering on or off.

   Format

   AUTONUM  [ON ]
   AUTO     [OFF]

   Remarks

   If AUTONUM is on and NUMBER is on, lines are renumbered when the file is
   saved.

   If AUTONUM is off or NUMBER is off, lines are not renumbered when the file
   is saved.

#  27.5 {AUTOSAVE}

   Purpose

   Determines whether the file is automatically saved when the edit session
   ends.

   Format

   AUTOSAVE  [ON ]
             [OFF [PROMPT ]]
             [OFF [NOPROMPT]]

   Remarks

   If AUTOSAVE is on, the file is saved when the edit session ends via the
   END primary command.

   If AUTOSAVE is off, and PROMPT is in effect, and the file was modified, a
   prompt is displayed at END.  You may enter either SAVE or CANCEL at this
   time. SAVE saves the file, then exits. CANCEL exits without saving the
   file.

   If AUTOSAVE is off and NOPROMPT is in effect, the file is not saved at
   END. In this case END behaves exactly the same as CANCEL.

#  27.6 {BOT}

   Purpose

   Use this command to position to the bottom of the file.

   Format

   BOTTOM
   BOT

   Remarks

   None.

#  27.7 {BOUNDS}

   Purpose

   Sets the left and right column boundaries and saves them in the Edit
   Profile.

   Format

   BOUNDS [left-column  right-column]
   BNDS
   BND

   Remarks

   Left-column identifies the left column boundary and right-column
   identifies the right column boundary. The same column cannot be specified
   for both boundaries. Either column may be specified as an asterisk (*);
   the existing column boundary is used.

   If the BOUNDS command is entered without operands, the boundaries are set
   to their default columns. If numbering is set to COBOL, the default left
   bound is column 7. In all other cases, the default left bound is column 1.
   If numbering is set to STD, the default right bound is 72. In all other
   cases, the default right bound is equal to the maximum record length.

   Column boundaries are used to limit the scope of:

   1. Left and right line shift commands.

   2. Left and right line scroll commands.

   3. FIND, CHANGE, and EXCLUDE commands.

   4. SORT command.

   5. TE, TS, and TF line commands.

   6. O, OO line command.

   BOUNDS allows scrolling to the bounds extents. A left scroll stops at the
   left bound, a right scroll stops at the right bound.  An additional scroll
   request causes scrolling beyond the bounds.

   Bounds may also be changed by displaying the boundary definition line with
   the BNDS line command.

   The bounds are automatically adjusted to exclude the sequence-number
   fields whenever NUMBER is turned on.

   Example

   To reset bounds to defaults:

   BOUNDS

   To set the left boundary to 1 and the right boundary to 72:

   BOUNDS 1 72

#  27.8 {CANCEL}

   Purpose

   Cancels editing of current file.

   Format

   CANCEL
   CAN

   Remarks

   Any changes made during an edit session are cancelled.

   Note:  If the SAVE command was used before CANCEL, edit changes made up to
   the SAVE are not cancelled.

#  27.9 {CAPS}

   Purpose

   Controls the CAPS mode.

   Format

   CAPS [ON ]
        [OFF]

   Remarks

   If on is specified, data entered is set to upper case.

   If off is specified, data entered is left "as is".

#  27.10 {CHANGE}

   Purpose

   Searches the file for a character string then replaces it with another
   character string.  Strings which are changed are highlighted.

   Format

   CHANGE str1 str2 [range][NEXT ][CHARS ][X ][col1[col2]]
   CHG                     [ALL  ][PREFIX][NX]
   C                       [FIRST][SUFFIX]
                           [LAST ][WORD  ]
                           [PREV ]

   Remarks

   Generally CHANGE is entered with only the two required parameters: str1
   and str2. In this case, SPF/Pro searches for the next instance of str1
   starting at the current cursor location. When str1 is found it is replaced
   with str2.  SPF/Pro searches for str1 within the current BOUNDS (see page
   294 for more on this).

   You can press [F6] to repeat the change on the next occurrence of str1.

   The most common parameter used is ALL which replaces all occurrences of
   str1 rather than just the next one.

   The remaining optional parameters are not used as frequently. Together
   they provide a very flexible and powerful extension to the basic search
   and replace capability.

   CHANGE has common parameters with FIND and EXCLUDE; these parameters are
   fully documented once at the beginning of this chapter. So, if you want
   to:

   *  specify character strings containing blanks or quotes

   *  do case sensitive/insensitive searches

   *  find and replace hexadecimal strings

   *  find or replace a string that you just specified in a previous FIND,
      CHANGE, EXCLUDE command

   *  match strings dependent on its location within a word

   *  change the direction of searching

   *  restrict searching to a range of lines

   *  affect searching by whether lines are currently "excluded" or not

   *  cause searching in columns other than that currently specified in the
      BOUNDS command

   CHANGE parameters are free form and may be entered in any order. The only
   exceptions are:

   1. If entered, col2 must follow col1.

   2. Str2 must follow str1.

   Str1 and str2 are required; all other parameters are optional.

   If CHANGE strings are not the same length, SPF/Pro automatically shifts
   characters on the right of the string.  In doing this, it tries to meet
   the following objectives:

   *  It will not shift any characters to the right of the current right
      bound.

   *  It will not shift any non-blank characters between the right of the
      string and the right bound.

   If str1 is longer than str2, SPF/Pro shifts characters on the right of
   str2 to the left until it finds a blank or reaches the right bound.
   There, it inserts the number of blanks equal to the shift amount.

   If str1 is shorter than str2, SPF/Pro shifts characters on the right of
   str2 to the right to make room for str2.  While doing so, it attempts to
   avoid shifting non-blank characters.  It does this by replacing adjacent
   blank characters with a single blank.  If there are insufficient blanks
   between the end of the string and the right bound, an error flag is placed
   in the line command area:

   ==ERR>

   When a CHANGE is successfully made, a change flag is placed in the line
   command area:

   ==CHG>

   To remove change and error flags use the RESET primary command.

   Example

   To change string "this" to string "that":

   change this that

   To change string "something" to a null string (""):

   CHANGE something ''

   To change string "ABC" to string "XYZ" in columns 1 through 20 inclusive:

   CHANGE ABC XYZ 1 20

   To change the first occurrence of string "ABC" to "DEF" commencing the
   search at the start of the file:

   CHANGE abc def first

   To change all occurrences of string "ABC" to "XYZ":

   CHANGE ABC XYZ ALL

   To change string "ABC" to "XYZ" only in excluded lines:

   CHANGE ABC XYZ X

   To change string "ABC" to "XYZ" only in non-excluded lines:

   CHANGE ABC XYZ NX

   To change all blanks to hyphens in columns 1 to 5, between lines labeled
   .B and .E, but only in excluded lines:

   CHG ALL ' ' '-' 1 5 .B .E X

#  27.11 {CHARSET}

   Purpose

   Sets the character set to either EBCDIC or ASCII.

   Format

   CHARSET  [ EBCDIC | ASCII ]

   Remarks

   The character set determines how character code points are interpreted.
   If you download a file from the mainframe without conversion, its
   characters are EBCDIC. It can be edited without conversion by setting the
   character set to EBCDIC. DOS files are natively in ASCII. This value can
   also be set in the file profile via panel 0.7.

#  27.12 {COLORMAP}

   Purpose

   Binds a program colorization control file to a particular file type.

   Format

   COLORMAP  name | NONE

   Remarks

   To activate program colorization for the current file type, specify the
   name of the program colorization file (no extension).  To de-activate
   program colorization for the current file type, specify NONE.

   You can enable or disable program source colorization globally via Option
   Panel 0.5.

#  27.13 {COMPARE}

   Purpose

   Use this command to compare the file being edited to an external file.
   After compare is complete, the differences are integrated into the current
   file as "==INS>" and "==DEL>" lines.

   Format

   COMPARE  [ file-name ]

   Remarks

   If "file-name" is not specified, an entry panel is presented which allows
   you to specify an individual file or generate a select list from which you
   can select an individual file.

   See SUPERC Utility (3.I) for details on other fields in the SUPERC entry
   panel.

#  27.14 {COPY}

   Purpose

   Copies a file from disk into the file being edited.

   Format

   COPY [filename] [BEFORE label] [range]
                   [AFTER  label]

   Remarks

   If filename is specified, the file is copied from the same drive and
   subdirectory as the current file.

   If filename is not specified, a file-specification menu is presented.  On
   this menu, you can specify any drive and subdirectory.

   If the file-specification menu is presented, the file to be copied is
   specified in either SPF/Pro FILE DEFINITION or FILE NAME.

   A Select List menu is presented if you specify wild-card characters ("*"
   or "?"). In the select list you can select a file to copy by placing an S
   to the left of the file name or press [F3] to cancel the request.

   There are two ways to specify where the copied text is to be inserted.
   First, a edit line command can be used to mark the appropriate line with A
   (after) or B (before). Second, an option can be given as part of the COPY
   command to place the records AFTER or BEFORE a line that has been
   previously labeled.

   If a range of line numbers is not specified, the entire file is copied.

   Note:  CUT and PASTE primary commands can also be used to move or copy
   lines between files. See page     and page     for details.

   Example

   To copy DEMO.DOC from the same drive/subdirectory as the current file to a
   point in the file indicated by the A or B line command:

   COPY DEMO.DOC

   To display a select list of all DEMO document candidates that could be
   copied:

   COPY DEMO*.DOC

   To copy a file specified on a subsequent menu to a point after the line
   labeled ".A":

   COPY AFTER .A

#  27.15 {COUNTSAVE}

   Purpose

   Use this command to cause files being edited to be automatically saved
   based on the number of times that [SPF-Enter] has been pressed.

   Format

   COUNTSAVE  nnn

   Remarks

   If 0 is specified, files being edited are not automatically saved.

   If 1 or greater is specified, files being edited are automatically saved
   every "nnn" presses of [SPF-Enter].

   Same as SAVECOUNT.

#  27.16 {CREATE}

   Purpose

   Creates a new file using all or part of the file being edited.

   Format

   CREATE [filename] [range]
   CRE

   Remarks

   If filename is specified, the file is created in the same drive and
   subdirectory as the current file.

   If filename is not specified, a file-specification menu is presented. On
   this menu, you can specify any drive and subdirectory.

   If the menu is presented, the file to be created is specified in either
   SPF/Pro FILE DEFINITION or FILE NAME.

      Note: Using wild-card characters ("*" and "?") in the file
      specification is not valid.

   There are two ways to specify which lines are to go to the new file:

   *  Mark text to be copied/moved with the COPY (C, Cn, CC) or MOVE (M, Mn,
      MM) line commands.  Using COPY line commands does not affect the
      current file.  Using MOVE line commands deletes the marked lines from
      the current file after the new file is created.

      Note:  See COPY and MOVE line commands on page    , page    , page    ,
      and page    , for additional information.

   *  Specify a range of lines as part of the CREATE command. The range is
      specified with beginning and ending labels.  The source line range
      parameter is not supported as it is on COPY.

   If the file already exists, CREATE will not overlay it.  See page     for
   details on how to create a new file which replaces an existing file.

   Example

   To create DEMO.DOC in the same drive/subdirectory as the current file
   using records identified by CC line commands:

   CREATE DEMO.DOC

   To create a file specified on a subsequent menu using lines beginning at
   line labeled ".B" and ending at line labeled ".E":

   CREATE .B .E

#  27.17 {CUT}

   Purpose

   Use this command to copy or move a block of lines to the clipboard.

   Format

   CUT  [ APPEND ]

   Remarks

   First mark the block of lines to be cut with either CC or MM line
   commands. After the lines have been cut, they can be pasted another edit
   file.

   If APPEND is specified, the cut lines are appended to the current contents
   of the clipboard, otherwise the cut lines replace the current contents of
   the clipboard.

   Note:  If you have selected text with the mouse, use SCUT, SCOPY, and
   SPASTE.

   Example

   To cut the block of lines marked with CC or MM:

   CUT

#  27.18 {DATA}

   Purpose

   Use this command to insert data at the current cursor position.

   Format

   DATA string

   Remarks

   Normally the DATA command and its associated text is assigned to a
   function key. The data is inserted (or overtyped) at the current cursor
   position just as if you had typed it in through the keyboard. This is
   particularly convenient when you want to repeatedly insert some text
   throughout a document or program source.

   Example

   Use KEYS to assign the paragraph markup tag to [F1].  Then press [F1]
   whenever you want to insert the paragraph markup in a document.

   PF1 ===> DATA 

An easier method is to simply define the value of a PF key as a quoted string: PF1 ===> "

" # 27.19 {DEFINE} Purpose Use this command to enable, disable, or alias specific macros or primary commands. Format DEFINE name [MACRO CMD ] | [CMD MACRO ] DEF [ALIAS name2 ] [NOP ] [RESET ] [DISABLED ] Remarks The command is primarily used to manage the selective invocation of macros and primary commands. name Specifies the name that is used to invoke the macro or primary command. MACRO CMD Specifies that the name parameter identifies a macro. This is the default and thus need not be specified. Note: SPF/Pro does not support the direct invocation of programs and thus the ISPF MACRO PGM parameter is not supported. ALIAS When name and ALIAS name2 are both specified, name is an alias of name2. NOP Specifies that name is a NOP (no operation). Any aliases are also set to NOP. RESET Specifies that name be reset, that is, restored to its default state. For example if name were previously NOPed, it would be returned to operational status. DISABLED Specifies that name be disabled. Disablement is identical to NOP except that the state can not be reversed with the RESET option. You must exit to the Primary Option Menu to restore the disabled macro to operational status. Command tables are also accessible via Option Panel 3.J. Example To define that QQ is an alias for the CANCEL primary command: DEFINE QQ ALIAS CANCEL To restore the CANCEL primary command to its original status: DEFINE CANCEL RESET To define that the MOVE primary command is to have no operation (NOP): DEFINE MOVE NOP To define that the MOVE primary command is to have no operation (NOP): DEFINE MOVE NOP To define that the COPY primary command is to be disabled (like NOP): DEFINE COPY DISABLED # 27.20 {DELETE} Purpose Removes one or more lines from the file being edited. Format DELETE ALL [ X | NX ] [ range ] DEL Remarks You can delete one of the following: * All excluded lines (DELETE ALL X). * All non-excluded lines (DELETE ALL NX). * Lines within a range (DELETE ALL .B .E) * Excluded lines within a range (DELETE ALL X .B .E) * Non-excluded lines within a range (DELETE ALL NX .B .E) Note: If you have selected text with the mouse, use SDELETE. Example To delete all lines that contain a non-ASCII character: RESET X (make all lines visible) EXCLUDE ALL P'.' (exclude lines with non-ASCII) DELETE ALL X (delete all excluded lines) To delete all lines between lines labeled ".B" and ".E": DELETE ALL .B .E # 27.21 {DOWN} Purpose Same as [F8] key. Use this command to move toward the bottom of the file. Format DOWN [PAGE] [HALF] [CSR ] [DATA] [MAX ] [nnnn] Remarks There are three ways to specify how much SPF/Pro moves when you issue the command: 1. Issue the command without a scroll amount. In this case the SCROLL field determines the amount scrolled. The SCROLL field is in the upper right corner of the screen. 2. Issue the command with a scroll amount. Type the command and the amount, or type the amount and press the appropriate PF key. 3. Change the SCROLL field and execute step 1. Note: Scroll amounts can be abbreviated. For example, P for PAGE, M for MAX, etc. Example [F8] Move down by amount specified in SCROLL field. DOWN 8 Move down eight lines. Type 8 in command field, then press [F8] Also, move down eight lines. # 27.22 {END} Purpose Terminates the edit session and returns you to the prior menu. Format END Remarks Normally you would use END to exit and save any changes you have made to the edited file. Saving is conditioned by the AUTOSAVE profile variable which is manipulated by the AUTOSAVE primary command. If you do not want to save changes made in this edit session, use the CANCEL primary command in place of END. The default key mapping places the END command on [F3]. If you are in Edit and SAVE has been disabled due to a system error, END will not exit the Editor. Use CANCEL instead. Example To end the current edit session and save changes: END # 27.23 {ERRORFILE} Purpose This command merges the content of a compiler error message file with the file being edited. Format ERRORFILE [filename] ERROR EF Remarks Error messages are merged as NOTEs into the file being edited at the line position where the error occurred. You can also use the /R command line option to merge compiler error messages with the associated source file. The following message formats are supported: Micro Focus COBOL Realia COBOL Borland C++ Zortech C++ Microsoft (all languages) Example The following examples merge error message file ERROR.OUT with the active edit file: ERRORFILE ERROR.OUT ERRORFILE C:\COBOL\DEMOS\ERROR.OUT # 27.24 {EXCLUDE} Purpose Allows you to exclude selected lines from view. Format EXCLUDE str1 [range][NEXT ][CHARS ][col1[col2]] EXC [ALL ][PREFIX] EX [FIRST][SUFFIX] X [LAST ][WORD ] [PREV ] Remarks Excludes one or more lines containing str1. String edge characteristics may also be specified. The number of lines excluded is controlled by the search direction and scope. The search for str1 can be limited to a range of lines. Parameters may be entered in any order. One exception is that col1 must precede col2. The lines containing a match on str1 are excluded from view just as if an X line command was entered on those lines. Of all of the possible combinations of parameters, the following two are most frequently: * "EXCLUDE str1 ALL" excludes all lines that match str1. It is often followed with a CHANGE ... NX command to change non-excluded lines only. Or the inverse, a CHANGE ... X command to change excluded lines only. * EXCLUDE ALL excludes all lines from view. This is usually followed by a FIND command which makes only a subset of lines visible. After the subset lines are visually verified, a CHANGE ... NX is used to change them. Although the rest of the optional parameters are not used as frequently, together they provide a very powerful search capability. EXCLUDE has common parameters with CHANGE and FIND; these parameters are fully documented once at the beginning of this chapter. So, if you want to: * specify character strings containing blanks or quotes * do case sensitive/insensitive searches * search for hexadecimal strings * exclude a line containing string that you just specified in a previous FIND, CHANGE, EXCLUDE command * match strings dependent on its location within a word * change the direction of searching * restrict searching to a range of lines * affect searching by whether lines are currently "excluded" or not * cause searching in columns other than that currently specified in the BOUNDS command Once lines are excluded, they can be returned to view (not excluded) in one of 4 ways: 1. The RESET command makes all excluded lines visible. 2. The FIND command makes excluded lines containing the find string visible. 3. The S (Show) line command makes lines visible based on their indentation level. (See page .) 4. The FIRST and LAST line commands make one or more excluded lines (at beginning or end of a block of excluded lines) visible. Note: If you have selected text with the mouse, use SXCLUDE. Example This example excludes all ELSE strings in columns 1 to 4 between lines labeled .E and .S: EXC ALL ELSE 1 4 .E .S # 27.25 {FIND} Purpose Searches a file for a string, word or characters. Strings which are found are highlighted. Format FIND str1 [range][NEXT ][CHARS ][X ][col1[col2]] F [ALL ][PREFIX][NX] [FIRST][SUFFIX] [LAST ][WORD ] [PREV ] Remarks FIND command parameters are free form and may be entered in any order. The only exception is that col2 (if entered) must follow col1. The str1 parm is required; all others are optional. Usually, the FIND command is issued with only the str1 parameter. In that case, SPF/Pro searches for the next instance of str1 starting at the current cursor location. SPF/Pro only searches for str1 within the current BOUNDS specification. (See page 294) If the line is not currently displayed on the screen, SPF/Pro scrolls the file so that it is displayed. If the line is currently excluded, it is made visible. Although the rest of the optional parameters are not used as frequently, together they provide a very powerful search capability. FIND has common parameters with CHANGE and EXCLUDE; these parameters are fully documented once at the beginning of this chapter. So, if you want to: * specify character strings containing blanks or quotes * do case sensitive/insensitive searches * search for hexadecimal strings * find a line containing string that you just specified in a previous FIND, CHANGE, EXCLUDE command * match a string dependent on its location within a word * change the direction of searching * restrict searching to a range of lines * affect searching by whether lines are currently "excluded" or not * cause searching in columns other than that currently specified in the BOUNDS command * search for a string in one or more files in a select list Example Find the next occurrence of string "ABC" starting at the current cursor position: FIND ABC Find the next occurrence of string "ABC" between columns 1 and 20: FIND ABC 1 20 Find next occurrence of string "one of a kind": FIND 'one of a kind' Find the last occurrence of string "ABC": FIND ABC LAST Find all occurrences of string "ABC": FIND ABC ALL Find the next occurrence of string "ABC" in excluded lines: FIND ABC X Find the next occurrence of string "ABC" in non-excluded lines: FIND ABC NX Find the first occurrence of string "ABC" from the start of the file: FIND ABC FIRST Find the next occurrence of word "pages" between the lines labeled .start and .end: FIND pages word .start .end Note: This search starts at the current cursor position and scans forward. This search is also delimited by the range, .start to .end. You must be conscious of both of these facts, as well as the current cursor location, in order to predict precisely how this command works. Confusion results when the cursor resides between the two labels. In that case, searching does not start at the first label. Instead, it starts at the current cursor location. This example finds the first hyphen (-) in columns 1 to 5 between lines labeled .E and .S, but only in those lines that are excluded. FIND FIRST '-' 1 5 .E .S X # 27.26 {FLIP} Purpose Invert the sense of excluded lines. Format FLIP Remarks Makes excluded lines non-excluded, and non-excluded lines excluded. This is useful when you want to exclude all lines which contain a particular string. Example To exclude all lines containing string EMPLOYEE-NUMBER: EXCLUDE ALL FIND EMPLOYEE-NUMBER ALL FLIP # 27.27 {HEX} Purpose Enables or disables hexadecimal display mode. Format HEX [ON ] [OFF] Remarks In HEX mode, three lines of data are displayed for each line in the file. The first shows data in standard ASCII form. The next two lines show the same data in vertical hexadecimal representation. Either the data lines or the hex lines may be altered. Simply overtype the change you wish on either ASCII character line or the hexadecimal lines. If a conflict exists, the hex lines are used. WARNING: using Hex 1A (decimal 26) as a data character in a file can cause inadvertent file truncation as this is the DOS EOF Character. If you enter this character and save the file, the file is saved "as is"; however, if you then edit the file AND your file profile honors the DOS EOF character, the file is truncated at the point where the first Hex 1A is encountered. To use the Hex 1A character, in 0.7 (File Profile) set the FILE TERMINATOR option to NO. # 27.28 {IMACRO} Purpose Saves the name of an initial macro in the current edit profile. Format IMACRO [name] [NONE] Remarks You can specify either: name The name of the initial macro to be executed when editing a file that matches this file's type. The IMACRO is executed before any data is displayed. Specify NONE to reset the IMACRO value. Example To set STARTUP as the initial macro: IMACRO STARTUP To reset the edit profile to no initial macro: IMACRO NONE # 27.29 {LCOMMAND} Purpose Specifies whether the line command field is present or not. Format LCOMMAND [ ON | OFF ] LCMD Remarks If on is specified, the line command field is present. If off is specified, the line command field is not present. In this case it is necessary to map specific line command actions to PF keys (or other control keys) to be able to execute those line commands. See the KEYS primary command or Keyboard Option 0.K for a description of how to map PF keys and other key sequences to specific line commands. # 27.30 {LEFT} Purpose Same as [F10] key. Use this command to move toward the left edge of the displayed text. Format LEFT [PAGE] [HALF] [CSR ] [DATA] [MAX ] [nnnn] Remarks There are three ways to specify how much SPF/Pro moves when you issue the command: 1. Issue the command without a scroll amount. In this case the SCROLL field determines the amount scrolled. The SCROLL field is in the upper right corner of the screen. 2. Issue the command with a scroll amount. Type the command and the amount, or type the amount and press the appropriate PF key. 3. Change the SCROLL field and execute step 1. Note: Scroll amounts can be abbreviated. For example, P for PAGE, M for MAX, etc. Example [F10] Move left by amount specified in SCROLL field. LEFT 8 Move left eight columns. Type 8 in command field, then press [F10] Also, move left eight columns. # 27.31 {LEVEL} Purpose Assigns a modification level to the current file. Format LEVEL number LEV Remarks If STATS mode is on, and STD number mode is on, the modification level is stored in positions 79 and 80 for any lines that are modified during the edit session. In addition, the modification level is replaced for any record that already has a modification level number that is greater than the number specified. Normally, the level number is one greater than the largest number found in these columns before editing starts. This command allows you to choose a different number. If LEVEL number 0 is specified, all lines are reset to LEVEL 0 when the file is saved. # 27.32 {LOCATE} Purpose Used to position the file to a specific line number or a specific type of generic line. Format LOCATE line-number | label LOC L LOCATE [NEXT ] [LABEL ] [range] LOC [PREV ] [COMMAND ] L [FIRST] [ERROR ] [LAST ] [CHANGE ] [SPECIAL ] [EXCLUDED] Remarks The first format scrolls the file so that the line with the specified line number or label is at the top of the display. If the command contains any parameters other than line number or label, SPF/Pro assumes that it is the second format. The operands NEXT, PREV, FIRST and LAST are used to control the direction of search: NEXT start at the cursor line and search forward (this is the default) PREV start at the cursor line and search backward FIRST start at the front of the file and search forward LAST start at the end of the file and search backward The next optional parameter specifies a particular line type to be located: LABEL (or LAB) search for a line with a label COMMAND (or COM) search for a line with a pending line command ERROR (or ERR) search for a line with an error flag ( ==ERR>) CHANGE (or CHG) search for a line with a change flag (==CHG>) SPECIAL (or SPE) search for a line marked with =PROF>, =MASK>, =TABS>, =BNDS>, ==MSG>, or =NOTE=) EXCLUDED (or X) search for an excluded line In addition, the second form of this command can include a range specification to restrict the locate to a range of lines. Example Put line 472 at top of screen: LOC 472 Scroll to the next line that has a label: LOC LABEL Locate the first line of the file: L .ZFIRST Locate the next special line: LOCATE SPE Locate the first error line (==ERR>): L ERR FIRST Locate the next line with a label: LOC NEXT LABEL Locate the next excluded line between labels .START and .END: L X .START .END Locate the first excluded line between labels .E and .S: L FIRST .E .S X # 27.33 {LRECL} Purpose Used to set the logical record length profile variable. Format LRECL nnn [ TRUNC ] Remarks Sets the maximum logical record length for records in a particular file type. You can also set this value with the profile options panel 0.7. If you have a corrupted file, and want to truncate records which exceed the desired LRECL, specify TRUNC along with the LRECL value. The TRUNC parameter only applies to the current file in EDIT. # 27.34 {MODEL} Purpose Use this command to incorporate program source templates for a particular programming language into the file you are editing. Format MODEL [source-template-name] Remarks The typical use for the MODEL command is to directly incorporate a template for a particular construct of a programming language into your program source. This can be accomplished in a variety of ways: * If you know the name of the template you simply enter the MODEL primary command with the template name as the only parameter. You must also place an "A" or "B" line command at the insert point. For example, MODEL IF * If you are not sure of the template name, enter the MODEL primary command with no parameters to bring up a list of available templates. Select the desired template from the list and it will be inserted. * The MODEL primary command determines which templates to present based on the file extension. For example, if you are editing PROG1.COB, the MODEL command will present the templates for the COBOL language; if you are editing PROG1.C, the MODEL command will present the templates for the "C" language. * If you are editing a file type which is not known to MODEL, for example, PROG1.XYZ, it will present a list of all known types from which you can select the desired language. From that point onward, the selected template group will be associated with type ".XYZ". In all cases, once a source template is selected, it is inserted after the "A" or before the "B" insert point. Included with many templates are NOTE line annotations which explain the usage for the selected template. NOTE lines are dismissed with the RESET primary command. # 27.35 {MOVE} Purpose Moves a file from disk into the current file. Format MOVE [filename] [BEFORE label] [AFTER label] Remarks Works the same as the COPY primary command (see page 303) but it removes the file after it has been copied into the current file. The source line range parameter is not supported as it is on COPY. # 27.36 {NUMBER} Purpose Sets NUMBER mode on or off and specifies the numbering method. Format NUMBER [ON ] [STD] [COBOL] [DISPLAY] NUM [OFF] Remarks COBOL and DISPLAY may be abbreviated COB and DIS, respectively. If no number type is specified, STD is assumed. When number mode is turned on, the NUMBER command verifies that all lines have valid numbers in ascending sequence. If any lines are either unnumbered or out of sequence, it renumbers all lines. Otherwise, it does not alter existing sequence numbers. If STD is specified (or defaulted), sequence numbers are generated in columns 73 to 80. This option is invalid for files with records longer than 80 characters. If COBOL is specified, sequence numbers are generated in columns 1 to 6. If DISPLAY is specified, COBOL sequence numbers are shown on the screen. This has the same effect as pressing [F9] immediately after entering edit mode. If STATS is on, and number is STD, sequence numbers are placed in columns 73 to 78, and a level number is placed in columns 79 and 80. The level number is incremented by one each time the file is edited. When a line is inserted or changed, the level number is placed in columns 79 and 80. See page 323 for other ways to set the level number. Note: For file types .COB, .CBL, and .CPY, when loading the file, each record is examined to determine whether it contains sequence numbers in either the COBOL or STANDARD number columns. If all lines have valid numbers in ascending sequence, edit assumes the data is numbered and turns number mode on. Otherwise, edit turns number mode off. If the initial setting of the number mode differs from the previous setting in the profile, a message is displayed indicating that edit has changed the mode. Example Turn on STD numbering: NUMBER Turn on COBOL numbering and cause sequence numbers to be visible: NUMBER COBOL DISPLAY Turn on STD numbering: NUMBER STD Turn on STD and COBOL numbering: NUMBER STD COBOL # 27.37 {PASTE} Purpose To retrieve the current contents of the cut buffer. Format PASTE Remarks For PASTE to function, you must mark the destination for the paste block with the "A" or "B" line command. The cut buffer contents are not altered by PASTE so you may do multiple PASTEs of the same cut buffer data. Note: If you have selected text with the mouse, use SCUT, SCOPY, SPASTE. Example To retrieve the block of lines in the cut buffer: PASTE # 27.38 {PROFILE} Purpose Displays the current edit profile. It can also be used to choose an edit profile for a different extension or lock the current profile. Format PROFILE name [number] PROF number PRO LOCK PR UNLOCK Remarks name Specifies the profile name that you would like to change to. If the specified name does not exist, a new profile is created using the parameters that are in effect when the ISREDIT PROFILE command is processed. number The number of profile lines to display. You can specify any number from 1 to 8. The default is 4, the maximum is 8. If you don't want to see the profile lines, enter RESET or PROFILE 0. LOCK Save and lock the profile. All current modes and options are saved and marked so that they can not be overwritten. Each time that an edit session is begun, the locked profile is re-called exactly as it was when it was locked. Changes made during a new edit session affect only the current edit session, and not subsequent sessions. UNLOCK Unlock the current edit profile so that it can be changed. The following information is displayed: NAME Current file extension RECORD FORMAT Length-delimited/Data-delimited RECORD LENGTH 1 - 64000 RECOVERY On/Off NUMBER On/Off/STD/COB/DISP CAPS On/Off HEX On/Off TABS On/Off/Std/All/Character CHARSET ASCII or EBCDIC AUTOSAVE On/Off/Prompt/Noprompt AUTONUM On/Off AUTOLIST On/Off STATS On/Off PROF Lock/Unlk IMAC IMACRO Name XMAC XMACRO Name PACK Not supported (always OFF) COLORMAP name or OFF # 27.39 {RCHANGE} Purpose Same as [F6] key. Use this command to repeat the last CHANGE command. Format RCHANGE Remarks This command only functions in File Select Lists, EDIT, and BROWSE. See page 297 for details. # 27.40 {RECOVERY} Purpose Specifies whether UNDO support is on or off. Format RECOVERY [ ON | OFF ] Remarks If on is specified, UNDO/REDO support is activated. If off is specified, UNDO/REDO support is de-activated. This command is identical to UNDO ON/OFF. # 27.41 {REDO} Purpose Specifies that one or more EDIT operations which were undone should be re-done. This is the opposite of UNDO. Format REDO [ nnn | ALL ] Remarks In the normal use of EDIT, you make numerous changes to a file. When undo processing is on, each change is recorded in a journal which may subsequently be used to undo a change. Having undone a change, you may want to redo it. This is when the REDO command comes into play. For each undo with no intervening changes, you can apply REDO. If no parameters are specified, only the last posted undo is redone. If a number is specified, redo is applied to the specified number of posted undos. In the event that the number of posted undos is smaller than the specified number, only the posted undos are redone. If ALL is specified, all posted undos are redone. # 27.42 {RENUM} Purpose Turns on NUMBER mode and re-sequences all lines starting with 100 incrementing by 100. If the number of lines in the file is so great as to use all available numbers when numbering by 100, the number increment is automatically reduced to 10. Format RENUM [ COBOL ] [ STD ] [ DISPLAY ] REN Remarks RENUM forces a re-sequence. It does not preserve existing sequence numbers. Parameters COBOL, STD, and DISPLAY are identical to the NUMBER command. If numbers are not visible, press [F9] or [F10] scroll keys. For more information, see NUMBER command on page 329. # 27.43 {REPLACE} Purpose Replaces an existing file using all or part of the file currently being edited. Format REPLACE [filename] [range] REPL REP Remarks The REPLACE primary command works identically to the CREATE primary command with the exception that if the file already exists, it is replaced. # 27.44 {RESET} Purpose Resets special lines, flagged lines, pending line commands, current selection, and FIND/CHANGE highlighting. The effect is that line command fields are cleared and line numbers are displayed. Format RESET [LABEL] [COMMAND] [ERROR] [CHANGE] RES ..... [SPECIAL] [EXCLUDED] [range] Remarks The following parameters allow limiting the effect of this command: LABEL (or LAB) clear labels COMMAND (or COM) clear pending line commands ERROR (or ERR) clear error flags (==ERR>) CHANGE (or CHG) clear change flags (==CHG>) SPECIAL (or SPE) delete "special" lines flagged with =PROF>, =MASK>, =TABS>, =BNDS>, ==MSG>, or =NOTE=) EXCLUDED (or X) make excluded lines visible If none of the above parameters is specified, all except labeled lines are reset. In addition, the RESET command can include a range specification to restrict the action to a range of lines. Example To clear ==CHG> flags and redisplay excluded lines between the start of the file and the current cursor location: RESET CHG X .ZFIRST .ZCSR # 27.45 {RFIND} Purpose Same as [F5] key. Use this command to repeat the last FIND command. Format RFIND Remarks Remarks This command only functions in File Select Lists, EDIT, and BROWSE. See page 316 for details. # 27.46 {RIGHT} Purpose Same as [F11] key. Use this command to move toward the right edge of the displayed text. Format RIGHT [PAGE] [HALF] [CSR ] [DATA] [MAX ] [nnnn] Remarks There are three ways to specify how much SPF/Pro moves when you issue the command: 1. Issue the command without a scroll amount. In this case the SCROLL field determines the amount scrolled. The SCROLL field is in the upper right corner of the screen. 2. Issue the command with a scroll amount. Type the command and the amount, or type the amount and press the appropriate PF key. 3. Change the SCROLL field and execute step 1. Note: Scroll amounts can be abbreviated. For example, P for PAGE, M for MAX, etc. Example [F11] Move right by amount specified in SCROLL field. RIGHT 8 Move right eight columns. Type 8 in command field, then press [F11] Also, move right eight columns. # 27.47 {SAVE} Purpose Saves the current file without terminating the edit session. Format SAVE SAV S Remarks To save the file under a different drive, directory, or name, see the CREATE command. The SAVE command replaces the disk based file with the memory based file. Lines are automatically renumbered if AUTONUM and NUMBER are on. If SAVE cannot rewrite the data because of an I/O error, or insufficient space, a message is displayed and an alarm is sounded. You can then attempt to save the data in another file by taking the following steps: 1. Enter primary command: CREATE .ZFIRST .ZLAST or REPLACE .ZFIRST .ZLAST 2. The Move/Copy Utility menu should be presented to you. Fill in a new data set name and press [SPF-Enter]. If the original disk is out of space, specify a different drive. Note: "Special" lines ( =PROF>, =MASK>, =TABS>, =BNDS>, ==MSG>, or =NOTE=) are not saved and do not have to be reset. # 27.48 {SAVECOUNT} Purpose Use this command to cause files being edited to be automatically saved based on the number of times that [SPF-Enter] has been pressed. Format SAVECOUNT nnn SAVEC Remarks If 0 is specified, files being edited are not automatically saved. If 1 or greater is specified, files being edited are automatically saved every "nnn" presses of [SPF-Enter]. Same as COUNTSAVE. # 27.49 {SCOPY} Purpose Use this command to copy the current selection to the clipboard. Format SCOPY Remarks Selections are made with the mouse. The selection is not deleted from the file. You can subsequently use SPASTE to paste the clipboard contents into the file. # 27.50 {SCREATE} Purpose Use this command to create an original external file with the contents of the selection. Format SCREATE [ file-name ] Remarks Selections are made with the mouse. The selection is not deleted from the file. If you don't specify a file name, a dialog panel is presented which enables you to enter the target file name. If the file already exists, SCREATE will not overwrite it. To overwrite the file with the selection use SREPLACE. # 27.51 {SCUT} Purpose Use this command to copy the current selection to the clipboard and then delete it from the file. Format SCUT Remarks Selections are made with the mouse. # 27.52 {SDELETE} Purpose Use this command to delete the current selection. Format SDELETE Remarks Selections are made with the mouse. The [DEL] key also deletes the current selection. # 27.53 {SORT} Purpose Performs two kinds of sorting: * sorts full records * sorts individual columns of data without affecting the remainder of the record Format SORT [range] [X ] [sort-field_1 ... sort-field_n] [NX] Remarks If you specify a range, only the lines within that range are sorted. To do this, label the first and last lines. Then use these labels in a range specification. Sort can also be limited to excluded (X) or non-excluded (NX) lines. Each of the sort fields has the following format: [A] [start-column[end-column]] [D] If "A" is specified (or defaulted), data is ordered in ascending sequence. If "D" is specified, data is ordered in descending sequence. In addition to "A" or "D", the columns to be sorted can be specified. If they are not specified, the default is the current BOUNDS. Start-column specifies the left-most position and end-column specifies the right-most position of the sort field. Start-column must precede end-column. In addition, neither specification can be outside the current BOUNDS. The above parameters indicate which columns SPF/Pro should compare when ordering data. These parameters are common to computer based sorting programs. There is an aspect of SORT which is unique to SPF/Pro. When the BOUNDS are set to less than the full record, only the data within the bounds is sorted. The effect is that the sorted data is re-ordered while the data to the left or right of the bounds is not. Thus the record content is changed from its original form. In the normal case, where the BOUNDS are at their default settings, SPF/Pro sorts the entire record. In this case, it works much like the SORT command in operating system. Warning: SORT is a very powerful command; its use requires care. It is easy to destroy a file by issuing SORT with the BOUNDS set incorrectly. Example Sort full records, columns 5 - 15 inclusive, in ascending order: BOUNDS SORT 5 15 Sort full records, columns 1 to right bound, from lines .A to .B inclusive in descending order: BOUNDS SORT D .A .B Sort full records, major field column 5 to right bound, in descending order, minor field columns 1 and 2 in ascending order: BOUNDS SORT D 5 A 1 2 Sort full records, non-excluded lines only, in ascending order: BOUNDS SORT A NX Sort partial record, columns 30 to 45, in ascending order: BOUNDS 30 45 SORT columns 1 - 29, and 46 to end of record are not re-ordered. Sort full records in ascending order: SORT Sort full records in descending order: SORT D Sort full records, column 5 to right bound, in ascending order: SORT 5 Sort full records, column 5 to right bound, in descending order: SORT 5 D # 27.54 {SPASTE} Purpose Use this command to paste the contents of the clipboard into the file at the current cursor position. Format SPASTE [ INSERT | OVERLAY ] [ LINE | STREAM | BLOCK ] Remarks If no parameters are specified, the contents of the clipboard are pasted into the file in the same mode as they were SCUT or SCOPYed. If the clipboard contents were not created by SPF/Pro they are pasted with "insert" and "stream" modes. The optional parameters are supplied to allow you to force the paste mode regardless of the SCUT or SCOPY mode that produced the clipboard contents. # 27.55 {SPRINT} Purpose Use this command to print the current selection. Format SPRINT Remarks For all selection types, only selected characters are printed. # 27.56 {SREPLACE} Purpose Use this command to create or replace an external file with the contents of the selection. Format SREPLACE [ file-name ] Remarks Selections are made with the mouse. The selection is not deleted from the file. If you don't specify a file name, a dialog panel is presented which enables you to enter the target file name. If the file already exists, SREPLACE will overwrite it. To avoid overwriting the file with the selection, use SCREATE. # 27.57 {STATS} Purpose The STATS command is used to request the generation of statistics (level stamping) when standard numbering is on. Format STATS [ON ] [OFF] Remarks When STATS is on and line numbering is standard (STD), columns 79 and 80 contain a level number. Each time SPF/Pro starts editing such a file, it finds the largest level number and adds one to it. Unless this number is overridden by a LEVEL command, it places this new number in the level number field of any record that is changed or inserted. By using this, you can tell which records have been updated and relatively when the update took place. # 27.58 {STOLOWER} Purpose Use this command to convert all the alpha characters in the selection to lowercase. Format STOLOWER Remarks Selections are made with the mouse. # 27.59 {STOUPPER} Purpose Use this command to convert all the alpha characters in the selection to uppercase. Format STOUPPER Remarks Selections are made with the mouse. # 27.60 {SXCLUDE} Purpose Use this command to exclude all the lines which are touched by the selection. Format SXCLUDE Remarks Selections are made with the mouse. # 27.61 {TABS} Purpose Enables or disables logical and hardware tabs. Defines the logical tab character. All tab stops are defined with the TABS line command. See page for details. Format TABS [ON ] [tab-character] TAB [OFF] [ STD | ALL ] Remarks Set tabs ON to enable logical and hardware tabs. Set tabs OFF to disable logical and hardware tabs. Software tabs are always ON and do not interact with the TABS primary command. The tab character is used for logical tabs only. For tabs ON, the operation of hardware tabs is determined by the STD and ALL keywords. If STD is specified, hardware tab columns which are occupied by text are ignored. That is when [TAB] is pressed, it skips over any hardware tab column which contains a non-blank character. If ALL is specified, when [TAB] is pressed, it stops at all hardware tab positions regardless of the contents of the line. If neither STD or ALL is specified, STD is assumed. # 27.62 {TOP} Purpose Use this command to position to the top of the file. Format TOP Remarks None. # 27.63 {UNDO} Purpose Use this command to undo alterations made to a file during EDIT. Format UNDO [ ON | OFF ] [ nnn | ALL ] [ CLEAR ] Remarks In the normal use of EDIT, you make numerous changes to a file. When undo processing is on, each change is recorded in a journal which may subsequently be used to undo a change. If no parameters are specified, the last recorded alteration is undone. If a number is specified, the last "nnn" recorded alterations are undone. If ALL is specified, all recorded alterations are undone. If ON is specified, UNDO support is activated. If OFF is specified, UNDO support is de-activated. When setting UNDO on or off, the state is kept in a file profile variable associated with the file type of the file being edited. For convenience, SPF/Pro also supports a global variable which can be used to override the file profile setting for all file types. You can set the global UNDO state in Options panel 0.5. If CLEAR is specified, the UNDO recording area is cleared and a new UNDO journal is started. After an UNDO you may want to redo the undone alteration. To redo undone alterations, see the REDO primary command. # 27.64 {UNNUM} Purpose Turns off NUMBER mode and clears sequence numbers. Format UNNUM UNN Remarks This command blanks out STANDARD and COBOL sequence numbers. To blank out sequence numbers when NUMBER mode is off, first enter the NUMBER command with the proper options. Then enter the UNNUM command. Note: This command is valid only when NUMBER mode is on. # 27.65 {UP} Purpose Same as [F7] key. Use this command to move toward the top of the file. Format UP [PAGE] [HALF] [CSR ] [DATA] [MAX ] [nnnn] Remarks There are three ways to specify how much SPF/Pro moves when you issue the command: 1. Issue the command without a scroll amount. In this case the SCROLL field determines the amount scrolled. The SCROLL field is in the upper right corner of the screen. 2. Issue the command with a scroll amount. Type the command and the amount, or type the amount and press the appropriate PF key. 3. Change the SCROLL field and execute step 1. Note: Scroll amounts can be abbreviated. For example, P for PAGE, M for MAX, etc. Example [F7] Move up by amount specified in SCROLL field. UP 8 Move up eight lines. Type 8 in command field, then press [F7] Also, move up eight lines. # 27.66 {XMACRO} Purpose Saves the name of an exit macro in the current edit profile. Format XMACRO [name] [NONE] Remarks You can specify either: name The name of the exit macro to be executed before exiting a file that matches this file's type. The XMACRO is executed just before the file is written to disk after a SAVE or END command. Specify NONE to reset the XMACRO value. Example To set ENDUP as the exit macro: XMACRO ENDUP To reset the edit profile to no exit macro: XMACRO NONE # 28. {Edit Line Commands} Line commands provide a more discrete method of dealing with the data in your file than do the primary commands. They allow a you to add, delete, repeat, overlay, move, or copy individual lines or blocks of lines. They can change indentation, exclude or include lines, and position data within columns. Line commands are entered in columns 1 through 6 of each display line. This field is called the sequence number field or the line command area, depending on your preference. Single character line commands, such as C, M, and D operate on individual lines. Double character line commands, such as CC, MM, and DD, operate on blocks of lines. A number may follow a line command to indicate the number of times that the command is to be applied to a line or block. For example, "D" deletes a single line; "D3" deletes three lines. Line commands are not applied (executed) until [SPF-Enter] is pressed. So for example you could repeat a line (with R), delete a different line (with D) and insert a new line (with I) all at once when [SPF-Enter] is pressed. New empty lines are indicated by a sequence number field of all single quotes (''''''). You can enter line commands over the single quotes. In text entry mode (see page ), after you have entered all the desired text and no line numbers exist, press [SPF-Enter]. Unused new lines at the end of the new text block are deleted and the remaining lines are assigned sequence numbers. You may then enter line commands as desired. The following rules apply to all edit line commands: * Several line commands may be entered at a given time as long as [SPF-Enter] has not been pressed. After [SPF-Enter] is pressed, line commands are validity checked; error messages are displayed if conflicts or ambiguities exist. Line commands are processed from top to bottom, so it is possible to have only one error message displayed when multiple errors exist. * Line commands may be entered at any position in the sequence number field. Generally, only one or two characters are needed. * Some line commands are not executed when [SPF-Enter] is pressed. For example, copy (C) and move (M) commands are not executed unless a corresponding destination is specified with the after (A) or before (B) line command. * Block commands like CC, MM, and DD won't execute until the beginning and end of the block have been marked. * The following commands may be entered on the top of data line: I[n] Insert "n" blank lines after this line. A Move or Copy line[s] after this line. TE Start text entry mode. * The following commands may be entered on the bottom of data line: B Move or copy line[s] before this line. * The [SPF-Enter] key activates all line commands. * If you have entered a line command which did not execute correctly, and you decide not to continue with it, you can either type blanks over it, or use the RESET primary command to reset all pending line commands. On the detailed command description pages which follow, operands listed within brackets [ ] are optional. Beneath the name of some commands is an abbreviated form which may be used instead of the full command name. # 28.1 {Line Command Summary} The following table summarizes the edit line commands which are detailed in the remainder of this chapter. Command Function < Data shift left. << Block data shift left. > Data shift right. >> Block data shift right. ( Column shift left. (( Block column shift left. ) Column shift right. )) Block column shift right. A After. B Before. BNDS Display/set bounds. C Copy. CC Block copy. COLS Display columns. D Delete. DD Block delete. F Display first excluded line(s). I Insert. L Display last excluded line(s). LC Set a line to lowercase. LCC Set a block of lines to lowercase. M Move. MM Move block. MASK Display/set mask. MD Make a NOTE or MSG line into a data line. MDD Make a block of NOTE or MSG lines into data lines. O Overlay. OO Overlay block. R Repeat. RR Repeat block. S Show structure excluded line(s). TABS Display/set tabs. TE Text entry. TF Text flow. TJ Text join. TS Text split. UC Set a line to uppercase. UCC Set a block of lines to uppercase. X Exclude. XX Exclude block. . Label assignment. # 28.1 {< (Data Shift Left)} Purpose Shifts a single line to the left without affecting program source labels or comments. A common format for computer program source is: * Labels start in column 1 * Op codes, operands, or reserved words start in any column greater than one and are separated by single blanks. * Comments follow op codes, operands, or reserved words and are separated from them by two or more blanks. The premise of data shift is that it shifts the op codes, operands, or reserved words without affecting the labels or comments. Format <[number] Remarks This command may be specified with or without a number. The number indicates how many columns to shift the data. The default shift is 2 columns. Shifting occurs within column boundaries (see Bounds line command on page for details). Non-blank characters are never deleted or truncated. If a shift is requested that would move data beyond the current bounds, the data is moved only to the current bounds, and an error flag is entered on the shift line. The error flag may be deleted by using the RESET primary command. 1. Scanning starts in the left boundary column. 2. The first blank character is found. 3. The next non-blank character is found. 4. The next double blank characters are found. 5. Data from step 3 to 4 are shifted left one column at a time as required to satisfy the shift request. Example =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000030 ZEROS: /* zero work fields */ <40031 IF WORK = 0 THEN /* only if 0 */ 000032 SALES = 0; /* zero sales */ 000033 CUSTOMER = ''; /* blank customer */ 000034 END; /* end if */ Results =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000030 ZEROS: /* zero work fields */ 000031 IF WORK = 0 THEN /* only if 0 */ 000032 SALES = 0; /* zero sales */ 000033 CUSTOMER = ''; /* blank customer */ 000034 END; /* end if */ Example =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000030 ZEROS: /* zero work fields */ <80031 IF WORK = 0 THEN /* only if 0 */ 000032 SALES = 0; /* zero sales */ 000033 CUSTOMER = ''; /* blank customer */ 000034 END; /* end if */ Results =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000030 ZEROS: /* zero work fields */ ==ERR> IF WORK = 0 THEN /* only if 0 */ 000032 SALES = 0; /* zero sales */ 000033 CUSTOMER = ''; /* blank customer */ 000034 END; /* end if */ # 28.2 {<< (Block Data Shift Left)} Purpose Shifts a block of lines to the left without affecting program source labels or comments. Format <<[number] Remarks This command functions identically to the DATA SHIFT LEFT line command except it operates on a block of lines rather than a single line. It is necessary to mark both the beginning and end of the block with "<<". Example =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000030 ZEROS: /* zero work fields */ <<4031 IF WORK = 0 THEN /* only if 0 */ 000032 SALES = 0; /* zero sales */ <<0033 CUSTOMER = ''; /* blank customer */ 000034 END; /* end if */ Results =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000030 ZEROS: /* zero work fields */ 000031 IF WORK = 0 THEN /* only if 0 */ 000032 SALES = 0; /* zero sales */ 000033 CUSTOMER = ''; /* blank customer */ 000034 END; /* end if */ Example =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000030 ZEROS: /* zero work fields */ <<4031 IF WORK = 0 THEN /* only if 0 */ 000032 SALES = 0; /* zero sales */ <<0033 CUSTOMER = ''; /* blank customer */ 000034 END; /* end if */ Results =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000030 ZEROS: /* zero work fields */ ==ERR> IF WORK = 0 THEN /* only if 0 */ 000032 SALES = 0; /* zero sales */ 000033 CUSTOMER = ''; /* blank customer */ 000034 END; /* end if */ # 28.3 {> (Data Shift Right)} Purpose Shifts a single line to the right without affecting program source labels or comments. A common format for computer program source is: * Labels start in column 1 * Op codes, operands, or reserved words start in any column greater than one and are separated by single blanks. * Comments follow op codes, operands, or reserved words and are separated from them by two or more blanks. The premise of data shift is that it shifts the op codes, operands, or reserved words without affecting the labels or comments. Format >[number] Remarks The command may be specified with or without a number. The number may be specified on either or both lines, but the largest value is always used if a conflict exists. The default shift is two columns. Shifting occurs within column boundaries (see Bounds line command on page for details). Non-blank characters are never deleted or truncated. If a shift is requested that would move data beyond the current bounds, the data is moved only to the current bounds, and an error flag is entered on the shift line. The error flag may be deleted by using the RESET primary command. How data shift right works: 1. Scanning starts in the left boundary column. 2. The first blank character is found. 3. The next non-blank character is found. 4. The next double blank characters are found. 5. Data from step 3 to 4 is shifted right one column. One of the two blank characters found in step 4 is deleted. The above steps are logically repeated as many times as are required to satisfy the shift request. Example =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000030 ZEROS: /* zero work fields */ 000031 IF WORK = 0 THEN /* only if 0 */ >40032 SALES = 0; /* zero sales */ 000033 CUSTOMER = ''; /* blank customer */ 000034 END; /* end if */ Results =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000030 ZEROS: /* zero work fields */ 000031 IF WORK = 0 THEN /* only if 0 */ 000032 SALES = 0; /* zero sales */ 000033 CUSTOMER = ''; /* blank customer */ 000034 END; /* end if */ Example =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > >60029 /* Reset all work fields */ 000030 ZEROS: /* zero work fields */ 000031 IF WORK = 0 THEN /* only if 0 */ 000032 SALES = 0; /* zero sales */ 000033 CUSTOMER = ''; /* blank customer */ 000034 END; /* end if */ Results =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000029 /* Reset all work fields */ 000030 ZEROS: /* zero work fields */ 000031 IF WORK = 0 THEN /* only if 0 */ 000032 SALES = 0; /* zero sales */ 000033 CUSTOMER = ''; /* blank customer */ 000034 END; /* end if */ # 28.4 {>> (Block Data Shift Right)} Purpose Shifts a block of lines to the right without affecting program source labels or comments. Format >>[number] Remarks This command functions identically to the DATA SHIFT RIGHT line command except it operates on a block of lines rather than a single line. It is necessary to mark both the beginning and end of the block with ">>". Example =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000030 ZEROS: /* zero work fields */ 000031 IF WORK = 0 THEN /* only if 0 */ >>4032 SALES = 0; /* zero sales */ 000033 CUSTOMER = ''; /* blank customer */ >>0034 END; /* end if */ Results =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000030 ZEROS: /* zero work fields */ 000031 IF WORK = 0 THEN /* only if 0 */ 000032 SALES = 0; /* zero sales */ 000033 CUSTOMER = ''; /* blank customer */ 000034 END; /* end if */ Example =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > >>6027 /* Reset all work fields */ 000028 /* Reset all work fields */ >>0029 /* Reset all work fields */ 000030 ZEROS: /* zero work fields */ 000031 IF WORK = 0 THEN /* only if 0 */ 000032 SALES = 0; /* zero sales */ 000033 CUSTOMER = ''; /* blank customer */ 000034 END; /* end if */ Results =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000027 /* Reset all work fields */ 000028 /* Reset all work fields */ ==ERR> /* Reset all work fields */ 000030 ZEROS: /* zero work fields */ 000031 IF WORK = 0 THEN /* only if 0 */ 000032 SALES = 0; /* zero sales */ 000033 CUSTOMER = ''; /* blank customer */ 000034 END; /* end if */ # 28.5 {( (Column Shift Left)} Purpose Shifts the current line to the left without regard to the size or content of the data. Format ([number] Remarks This command may be specified with or without a number. The default shift is 2 columns. Shifting occurs within column boundaries. See the Bounds line command, on page for details. Warning: This command shifts only within BOUNDS which may result in loss of data. Example =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > (50001 Old King Cole was a merry old soul 000002 and a merry old soul was he. He called 000003 for his cap and he called for his bowl 000004 and he called for his fiddlers three. Results =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000001 Old King Cole was a merry old soul 000002 and a merry old soul was he. He called 000003 for his cap and he called for his bowl 000004 and he called for his fiddlers three. Example =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > (70001 Old King Cole was a merry old soul 000002 and a merry old soul was he. He called 000003 for his cap and he called for his bowl 000004 and he called for his fiddlers three. Results =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000001 g Cole was a merry old soul 000002 and a merry old soul was he. He called 000003 for his cap and he called for his bowl 000004 and he called for his fiddlers three. # 28.6 {(( (Block Column Shift Left)} Purpose Shifts a block of lines to the left without regard to the size or content of the data. Format (([number] Remarks This command functions identically to the COLUMN SHIFT LEFT line command except it operates on a block of lines rather than a single line. It is necessary to mark both the beginning and end of the block with "((". Example =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > ((4001 Old King Cole was a merry old soul 000002 and a merry old soul was he. He called 000003 for his cap and he called for his bowl ((0004 and he called for his fiddlers three. Results =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000001 Old King Cole was a merry old soul 000002 and a merry old soul was he. He called 000003 for his cap and he called for his bowl 000004 and he called for his fiddlers three. Example =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > ((1101 Price Number Cost 000002 000003 $25 3 $ 75 000004 35 2 70 ((0005 50 4 100 Results =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000001 Price Cost 000002 000003 $25 $ 75 000004 35 70 000005 50 100 Example =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > ((9001 Price Number Cost 000002 000003 $25 3 $ 75 000004 35 2 70 ((0005 50 4 100 Results =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000001 Number Cost 000002 000003 3 $ 75 000004 2 70 000005 4 100 # 28.7 {) (Column Shift Right)} Purpose Shifts the current line to the right without regard to the size or content of the data. Format )[number] Remarks The command may be specified with or without a number. The default shift is 2 columns. Shifting occurs within column boundaries. See the Bounds line command, on page for details. Warning: This command shifts only within BOUNDS which may result in loss of data. Example =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > )40001 Old King Cole was a merry old soul 000002 and a merry old soul was he. He called 000003 for his cap and he called for his bowl 000004 and he called for his fiddlers three. Results =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000001 Old King Cole was a merry old soul 000002 and a merry old soul was he. He called 000003 for his cap and he called for his bowl 000004 and he called for his fiddlers three. Example =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > )16001 Old King Cole was a merry old soul 000002 and a merry old soul was he. He called 000003 for his cap and he called for his bowl 000004 and he called for his fiddlers three. Results =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000001 Old King Cole was a merry old 000002 and a merry old soul was he. He called 000003 for his cap and he called for his bowl 000004 and he called for his fiddlers three. # 28.8 {)) (Block Column Shift Right)} Purpose Shifts a block of lines to the right without regard to the size or content of the data. Format ))[number] Remarks This command functions identically to the COLUMN SHIFT RIGHT line command except it operates on a block of lines rather than a single line. It is necessary to mark both the beginning and end of the block with "))". Example =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > ))4001 Old King Cole was a merry old soul 000002 and a merry old soul was he. He called 000003 for his cap and he called for his bowl ))0004 and he called for his fiddlers three. Results =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000001 Old King Cole was a merry old soul 000002 and a merry old soul was he. He called 000003 for his cap and he called for his bowl 000004 and he called for his fiddlers three. Example =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > ))2001 Price Number Cost 000002 000003 $25 3 $ 75 000004 35 2 70 ))0005 50 4 100 Results =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000001 Price Number Cost 000002 000003 $25 3 $ 75 000004 35 2 70 000005 50 4 100 Example =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > ))8001 Price Number Cost 000002 000003 $25 3 $ 75 000004 35 2 70 ))0005 50 4 100 Results =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000001 Price Number 000002 000003 $25 3 000004 35 2 000005 50 4 # 28.9 {A (After)} Purpose Acts as a pointer to designate the line after which moved or copied text is to be placed. Format A Remarks A is used in conjunction with MOVE/COPY/PASTE primary and line commands to indicate the destination of the data. Note: This command is not valid on the bottom of data line, but it is valid on the top of data line. Example A00021 IF X-T-CT < TABLE-SIZ 000022 SET TEMP-INDEX TO X-T-CT C00023 SET X-T-CT UP BY 1 000024 ELSE 000025 PERFORM NNNN-DT-TO-VS-01 000026 MOVE 1 TO DSUB 000027 MOVE DATFLD-BC (DSUB) TO WCCOL 000028 END-IF. Results 000021 IF X-T-CT < TABLE-SIZ 000022 SET X-T-CT UP BY 1 000023 SET TEMP-INDEX TO X-T-CT 000024 SET X-T-CT UP BY 1 000025 ELSE 000026 PERFORM NNNN-DT-TO-VS-01 000027 MOVE 1 TO DSUB 000028 MOVE DATFLD-BC (DSUB) TO WCCOL 000029 END-IF. In the above example line 23 is copied after line 21. Note that line 21 was not changed. # 28.10 {B (Before)} Purpose Acts as a pointer to designate the line before which moved or copied text is to be placed. Format B Remarks B is used in conjunction with MOVE/COPY/PASTE primary and line commands to indicate the destination of the data. Note: This command is not valid on the top of data line, but it is valid on the bottom of data line. Example 000020 * This is a part of a dBASE III program 000021 CLEAR 000022 @ 4,15 SAY 'List By:' 000023 @ ROW()+3,20 SAY ' 1 - People names' B00024 @ ROW()+2,20 SAY ' 2 - Organization names' M00025 @ ROW()+2,20 SAY ' 3 - Serial number' 000026 @ ROW()+2,20 SAY ' Q - Return to previous menu' 000027 @ ROW()+3,15 SAY 'Press your selection ' ; 000028 GET action PICTURE '!' 000029 READ Results 000020 * This is a part of a dBASE III program 000021 CLEAR 000022 @ 4,15 SAY 'List By:' 000023 @ ROW()+3,20 SAY ' 1 - People names' 000024 @ ROW()+2,20 SAY ' 3 - Serial number' 000025 @ ROW()+2,20 SAY ' 2 - Organization names' 000026 @ ROW()+2,20 SAY ' Q - Return to previous menu' 000027 @ ROW()+3,15 SAY 'Press your selection ' ; 000028 GET action PICTURE '!' 000029 READ # 28.11 {BNDS (Bounds)} Purpose Displays current column bounds. You can change the bounds by typing over the "<" and ">" characters on the "=BNDS>" line. Format BNDS BND Remarks The left column bound is set at the "<" character. The right column bound is set at the ">" character. Moving either of these two characters changes the bounds. Bounds are used to limit the scope of: 1. Left-shift and right-shift line commands. 2. FIND, CHANGE, and EXCLUDE commands when explicit columns are not specified. 3. TS (text split), and TF (text flow) line commands. 4. The Overlay line command. 5. Left and right scrolling. When scrolling, a left scroll stops at the left bound, and a right scroll stops at the right bound. A subsequent left or right scroll goes beyond the bounds if they are not at the end of the line. Use the RESET primary command, or the D line command to remove the =BNDS> line from the display. Example =COLS> ----+----1----+----2----+----3----+----4----+-- BNDS01 Price Number Cost 000002 000003 $25 3 $ 75 000004 35 2 70 000005 50 4 100 Results =COLS> ----+----1----+----2----+----3----+----4----+-- =BNDS> < > 000001 Price Number Cost 000002 000003 $25 3 $ 75 000004 35 2 70 000005 50 4 100 In the above example, a bounds line is displayed before line 1. The less than (<) or greater than (>) characters may be moved to redefine the bounds. You can also change the bounds with the BOUNDS primary command. For additional information, see page 294. # 28.12 {C (Copy)} Purpose Copies one or more lines to another location within the current file. It is also used with CREATE/REPLACE/CUT primary commands to copy lines between files. Format C[number] Remarks This command leaves the original line in place, and makes a duplicate at the new location. Type B or A on the line where the copied line is to be placed and a C on the line to be copied. A number may follow the C to indicate that more than one line is to be copied. This has the same effect as the Block Copy command. To see how lines may be copied between files, see the page 306 and page 331. Example A00021 IF X-T-CT < TABLE-SIZ 000022 SET TEMP-INDEX TO X-T-CT C00023 SET X-T-CT UP BY 1 000024 ELSE 000025 PERFORM NNNN-DT-TO-VS-01 000026 MOVE 1 TO DSUB 000027 MOVE DATFLD-BC (DSUB) TO WCCOL 000028 END-IF. Results 000021 IF X-T-CT < TABLE-SIZ 000022 SET X-T-CT UP BY 1 000023 SET TEMP-INDEX TO X-T-CT 000024 SET X-T-CT UP BY 1 000025 ELSE 000026 PERFORM NNNN-DT-TO-VS-01 000027 MOVE 1 TO DSUB 000028 MOVE DATFLD-BC (DSUB) TO WCCOL 000029 END-IF. Example 000021 IF X-T-CT < TABLE-SIZ 000022 SET TEMP-INDEX TO X-T-CT 000023 SET X-T-CT UP BY 1 B00024 ELSE C30025 PERFORM NNNN-DT-TO-VS-01 000026 MOVE 1 TO DSUB 000027 MOVE DATFLD-BC (DSUB) TO WCCOL 000028 END-IF. Results 000021 IF X-T-CT < TABLE-SIZ 000022 SET TEMP-INDEX TO X-T-CT 000023 SET X-T-CT UP BY 1 000024 PERFORM NNNN-DT-TO-VS-01 000025 MOVE 1 TO DSUB 000026 MOVE DATFLD-BC (DSUB) TO WCCOL 000027 ELSE 000028 PERFORM NNNN-DT-TO-VS-01 000029 MOVE 1 TO DSUB 000030 MOVE DATFLD-BC (DSUB) TO WCCOL 000031 END-IF. # 28.13 {CC (Block Copy)} Purpose Copies a block of lines to another position within the current file. It is also used with CREATE/REPLACE/CUT primary commands to copy lines between files. Format CC Remarks This command functions identically to the COPY line command except it operates on a block of lines rather than a single line. It is necessary to mark both the beginning and end of the block with "CC". Example 000021 IF X-T-CT < TABLE-SIZ 000022 SET TEMP-INDEX TO X-T-CT 000023 SET X-T-CT UP BY 1 B00024 ELSE CC0025 PERFORM NNNN-DT-TO-VS-01 000026 MOVE 1 TO DSUB CC0027 MOVE DATFLD-BC (DSUB) TO WCCOL 000028 END-IF. Results 000021 IF X-T-CT < TABLE-SIZ 000022 SET TEMP-INDEX TO X-T-CT 000023 SET X-T-CT UP BY 1 000024 PERFORM NNNN-DT-TO-VS-01 000025 MOVE 1 TO DSUB 000026 MOVE DATFLD-BC (DSUB) TO WCCOL 000027 ELSE 000028 PERFORM NNNN-DT-TO-VS-01 000029 MOVE 1 TO DSUB 000030 MOVE DATFLD-BC (DSUB) TO WCCOL 000031 END-IF. # 28.14 {COLS (Columns)} Purpose Displays a line with column numbers. Format COLS COL Remarks Use the RESET primary command, or D line command to to remove the =COLS> line from the display. The columns display line is not part of the data and is not saved at END. Example COLS01 Old King Cole was a merry old soul 000002 and a merry old soul was he. He called 000003 for his cap and he called for his bowl 000004 and he called for his fiddlers three. Results =COLS> ----+----1----+----2----+----3----+----4----+-- 000001 Old King Cole was a merry old soul 000002 and a merry old soul was he. He called 000003 for his cap and he called for his bowl 000004 and he called for his fiddlers three. # 28.15 {D (Delete)} Purpose Deletes one or more lines from the file. Format D[number] Remarks D alone deletes a single line. An optional number following the delete command specifies the number of consecutive lines to delete. For example, "D3" deletes three lines. Example 000021 IF X-T-CT < TABLE-SIZ 000022 SET TEMP-INDEX TO X-T-CT 000023 SET X-T-CT UP BY 1 000024 ELSE D00025 PERFORM NNNN-DT-TO-VS-01 000026 MOVE 1 TO DSUB 000027 MOVE DATFLD-BC (DSUB) TO WCCOL 000028 END-IF. Results 000021 IF X-T-CT < TABLE-SIZ 000022 SET TEMP-INDEX TO X-T-CT 000023 SET X-T-CT UP BY 1 000024 ELSE 000025 MOVE 1 TO DSUB 000026 MOVE DATFLD-BC (DSUB) TO WCCOL 000027 END-IF. Example 000021 IF X-T-CT < TABLE-SIZ 000022 SET TEMP-INDEX TO X-T-CT 000023 SET X-T-CT UP BY 1 000024 ELSE D20025 PERFORM NNNN-DT-TO-VS-01 000026 MOVE 1 TO DSUB 000027 MOVE DATFLD-BC (DSUB) TO WCCOL 000028 END-IF. Results 000021 IF X-T-CT < TABLE-SIZ 000022 SET TEMP-INDEX TO X-T-CT 000023 SET X-T-CT UP BY 1 000024 ELSE 000025 MOVE DATFLD-BC (DSUB) TO WCCOL 000026 END-IF. # 28.16 {DD (Block Delete)} Purpose Deletes a block of lines from the file. Format DD Remarks This command functions identically to the DELETE line command except it operates on a block of lines rather than a single line. It is necessary to mark both the beginning and end of the block with "DD". Example 000021 IF X-T-CT < TABLE-SIZ 000022 SET TEMP-INDEX TO X-T-CT DD0023 SET X-T-CT UP BY 1 000024 ELSE 000025 PERFORM NNNN-DT-TO-VS-01 000026 MOVE 1 TO DSUB DD0027 MOVE DATFLD-BC (DSUB) TO WCCOL 000028 END-IF. Results 000021 IF X-T-CT < TABLE-SIZ 000022 SET TEMP-INDEX TO X-T-CT 000023 END-IF. # 28.17 {F (First)} Purpose Displays the first excluded line, or the first N excluded lines of an excluded block. Format F[number] Remarks This command may be specified with or without a number. If no number is specified, the first line of the excluded block is displayed. Warning: This command may be validly entered only on the excluded display line. If it is entered on any other line, an error message is generated. Example 000021 IF X-T-CT < TABLE-SIZ 000022 SET TEMP-INDEX TO X-T-CT 000023 SET X-T-CT UP BY 1 000024 ELSE F - - - - - - - - 0003 LINE(S) NOT DISPLAYED 000028 END-IF. Results 000021 IF X-T-CT < TABLE-SIZ 000022 SET TEMP-INDEX TO X-T-CT 000023 SET X-T-CT UP BY 1 000024 ELSE 000025 PERFORM NNNN-DT-TO-VS-01 - - - - - - - 0002 LINE(S) NOT DISPLAYED 000028 END-IF. Example 000021 IF X-T-CT < TABLE-SIZ 000022 SET TEMP-INDEX TO X-T-CT 000023 SET X-T-CT UP BY 1 000024 ELSE F3 - - - - - - - - 0003 LINE(S) NOT DISPLAYED 000028 END-IF. Results 000021 IF X-T-CT < TABLE-SIZ 000022 SET TEMP-INDEX TO X-T-CT 000023 SET X-T-CT UP BY 1 000024 ELSE 000025 PERFORM NNNN-DT-TO-VS-01 000026 MOVE 1 TO DSUB 000027 MOVE DATFLD-BC (DSUB) TO WCCOL 000028 END-IF. # 28.18 {I (Insert)} Purpose Inserts one or more temporary blank lines into the file. Format I[number] Remarks If I is entered without a number, one line is inserted. If I is entered with a number, the number of lines specified are inserted. If characters or spaces are entered on the inserted line, and if the cursor is still in the data portion of the last (or only) inserted line when [SPF-Enter] is pressed, another new line is automatically inserted following that line. This allows multiple lines to be entered in a "continuous insert" mode. If you want to retain inserted blank lines you must type at least one character (or blank) on them. If no characters (or blank) are entered on an inserted line, it is deleted when [SPF-Enter] is pressed. Use this technique to terminate "continuous insert". Example 000010 * This is a dBASE III program 000011 DO CASE I00012 CASE action = 'Q' 000013 RETURN 000014 CASE action = '1' 000015 CLEAR 000016 DO ndxname Results 000010 * This is a dBASE III program 000011 DO CASE 000012 CASE action = 'Q' '''''' 000014 RETURN 000015 CASE action = '1' 000016 CLEAR 000017 DO ndxname Example 000010 /* This is a C program */ I30011 main() { 000012 int sum,x,x; 000013 x = 20; 000014 y = 30; 000015 sum = x + y; 000016 printf("The sum of %d and %d = %d", 000017 x, y, sum); 000018 } Results 000010 /* This is a C program */ 000011 main() { '''''' '''''' '''''' 000015 int sum,x,x; 000016 x = 20; 000017 y = 30; 000018 sum = x + y; 000019 printf("The sum of %d and %d = %d", 000020 x, y, sum); 000021 } # 28.19 {L (Last)} Purpose Displays the last excluded line, or the last N excluded lines of an excluded block. Format L[number] Remarks This command may be specified with or without a number. If no number is specified, the last line of the excluded block is displayed. Warning: This command may be validly entered only on the excluded line indicator. If it is entered on any other line, an error message is displayed. Example 000021 IF X-T-CT < TABLE-SIZ 000022 SET TEMP-INDEX TO X-T-CT 000023 SET X-T-CT UP BY 1 000024 ELSE L - - - - - - - - - 00003 LINE(S) NOT DISPLAYED 000028 END-IF. Results 000021 IF X-T-CT < TABLE-SIZ 000022 SET TEMP-INDEX TO X-T-CT 000023 SET X-T-CT UP BY 1 000024 ELSE - - - - - - - - - - 00002 LINE(S) NOT DISPLAYED 000027 MOVE DATFLD-BC (DSUB) TO WCCOL 000028 END-IF. Example 000021 IF X-T-CT < TABLE-SIZ 000022 SET TEMP-INDEX TO X-T-CT 000023 SET X-T-CT UP BY 1 000024 ELSE L3- - - - - - - - - 00003 LINE(S) NOT DISPLAYED 000028 END-IF. Results 000021 IF X-T-CT < TABLE-SIZ 000022 SET TEMP-INDEX TO X-T-CT 000023 SET X-T-CT UP BY 1 000024 ELSE 000025 PERFORM NNNN-DT-TO-VS-01 000026 MOVE 1 TO DSUB 000027 MOVE DATFLD-BC (DSUB) TO WCCOL 000028 END-IF. # 28.20 {LC (Lower Case)} Purpose Converts alphabetic characters on a line or group of lines to lowercase letters. Format LC[number] Remarks This command may be specified with or without a number. An optional number following the command specifies the number of consecutive lines to be converted to lowercase letters. Example 000001 OLD KING COLE WAS A MERRY OLD SOUL LC0002 AND A MERRY OLD SOUL WAS HE. HE CALLED 000003 FOR HIS CAP AND HE CALLED FOR HIS BOWL 000004 AND HE CALLED FOR HIS FIDDLERS THREE. Results 000001 OLD KING COLE WAS A MERRY OLD SOUL 000002 and a merry old soul was he. he called 000003 FOR HIS CAP AND HE CALLED FOR HIS BOWL 000004 AND HE CALLED FOR HIS FIDDLERS THREE. Example 000001 OLD KING COLE WAS A MERRY OLD SOUL LC2002 AND A MERRY OLD SOUL WAS HE. HE CALLED 000003 FOR HIS CAP AND HE CALLED FOR HIS BOWL 000004 AND HE CALLED FOR HIS FIDDLERS THREE. Results 000001 OLD KING COLE WAS A MERRY OLD SOUL 000002 and a merry old soul was he. he called 000003 for his cap and he called for his bowl 000004 AND HE CALLED FOR HIS FIDDLERS THREE. # 28.21 {LCC (Block Lower Case)} Purpose Converts alphabetic characters within a block of lines to lowercase letters. Format LCC Remarks This command functions identically to the LOWER CASE line command except it operates on a block of lines rather than a single line. It is necessary to mark both the beginning and end of the block with "LCC". Example LCC001 OLD KING COLE WAS A MERRY OLD SOUL 000002 AND A MERRY OLD SOUL WAS HE. HE CALLED 000003 FOR HIS CAP AND HE CALLED FOR HIS BOWL LCC004 AND HE CALLED FOR HIS FIDDLERS THREE. Results 000001 old king cole was a merry old soul 000002 and a merry old soul was he. he called 000003 for his cap and he called for his bowl 000004 and he called for his fiddlers three. # 28.22 {M (Move)} Purpose Moves one or more lines to another location within the same file. It is also used with CREATE/REPLACE/CUT primary commands to move lines between files. Format M[number] Remarks This command deletes the original lines and moves them to a new location. Type B or A on a line to indicate where the moved line is to be placed. Type an M on the line to be moved. The line marked with M is moved and placed before (B) or after (A) the designated line. A number may follow the M to indicate that more than one line is to be moved. This has the same effect as the Block Move command. To see how lines may be copied between files see the page 306 and page 331. Example 000020 * This is a part of a dBASE III program 000021 CLEAR 000022 @ 4,15 SAY 'List By:' 000023 @ ROW()+3,20 SAY ' 1 - People names' B00024 @ ROW()+2,20 SAY ' 2 - Organization names' M00025 @ ROW()+2,20 SAY ' 3 - Serial numbers' 000026 @ ROW()+2,20 SAY ' Q - Return to previous menu' 000027 @ ROW()+3,15 SAY 'Press your selection ' ; 000028 GET action PICTURE '!' Results 000020 * This is a part of a dBASE III program 000021 CLEAR 000022 @ 4,15 SAY 'List By:' 000023 @ ROW()+3,20 SAY ' 1 - People names' 000024 @ ROW()+2,20 SAY ' 3 - Serial numbers' 000025 @ ROW()+2,20 SAY ' 2 - Organization names' 000026 @ ROW()+2,20 SAY ' Q - Return to previous menu' 000027 @ ROW()+3,15 SAY 'Press your selection ' ; 000028 GET action PICTURE '!' Example 000020 * This is a part of a dBASE III program 000021 CLEAR 000022 @ 4,15 SAY 'List By:' M30023 @ ROW()+3,20 SAY ' 1 - People names' 000024 @ ROW()+2,20 SAY ' 2 - Organization names' 000025 @ ROW()+2,20 SAY ' 3 - Serial numbers' A00026 @ ROW()+2,20 SAY ' Q - Return to previous menu' 000027 @ ROW()+3,15 SAY 'Press your selection ' ; 000028 GET action PICTURE '!' Results 000020 * This is a part of a dBASE III program 000021 CLEAR 000022 @ 4,15 SAY 'List By:' 000023 @ ROW()+2,20 SAY ' Q - Return to previous menu' 000024 @ ROW()+3,20 SAY ' 1 - People names' 000025 @ ROW()+2,20 SAY ' 3 - Serial numbers' 000026 @ ROW()+2,20 SAY ' 2 - Organization names' 000027 @ ROW()+3,15 SAY 'Press your selection ' ; 000028 GET action PICTURE '!' # 28.23 {MM (Block Move)} Purpose Moves a block of lines to another position within the same file. It is also used with CREATE/REPLACE/CUT primary commands to move lines between files. Format MM Remarks This command functions identically to the MOVE line command except it operates on a block of lines rather than a single line. It is necessary to mark both the beginning and end of the block with "MM". Example 000020 * This is a part of a dBASE III program 000021 CLEAR 000022 @ 4,15 SAY 'List By:' MM0023 @ ROW()+3,20 SAY ' 1 - People names' 000024 @ ROW()+2,20 SAY ' 2 - Organization names' MM0025 @ ROW()+2,20 SAY ' 3 - Serial numbers' A00026 @ ROW()+2,20 SAY ' Q - Return to previous menu' 000027 @ ROW()+3,15 SAY 'Press your selection ' ; 000028 GET action PICTURE '!' Results 000020 * This is a part of a dBASE III program 000021 CLEAR 000022 @ 4,15 SAY 'List By:' 000023 @ ROW()+2,20 SAY ' Q - Return to previous menu' 000024 @ ROW()+3,20 SAY ' 1 - People names' 000025 @ ROW()+2,20 SAY ' 3 - Serial numbers' 000026 @ ROW()+2,20 SAY ' 2 - Organization names' 000027 @ ROW()+3,15 SAY 'Press your selection ' ; 000028 GET action PICTURE '!' # 28.24 {MASK (Mask Line)} Purpose Allows a user to define a mask to be used in building a new line. The mask is applied to lines inserted with the Insert (I) line command. Format MASK Remarks A typical use of Mask would be to pre-load comment delimiters in all new lines. This would eliminate extra keying. Until data is entered on a new line, it is considered empty, even though it contains the mask data. If you wish to retain an empty mask line, you must enter at least one blank or space on it. A mask remains in effect (even if it is not displayed) until it is changed. It is used the next time an edit session is begun. Note: Only one Mask may be defined. It is used for all file extensions. Example MASK30 ZEROS: 000031 IF WORK = 0 THEN /* Only if 0 */ 000032 SALES = 0; /* zero sales */ 000033 CUSTOMER = ''; /* blank customer */ 000034 END; /* end if */ Results =MASK> /* */ 000030 ZEROS: 000031 IF WORK = 0 THEN /* only if 0 */ 000032 SALES = 0; /* zero sales */ 000033 CUSTOMER = ''; /* blank customer */ 000034 END; /* end if */ The mask setting was entered previously. Now, you can change the mask by typing directly on the =MASK> line. Example =MASK> /* */ I00030 ZEROS: 000031 IF WORK = 0 THEN /* only if 0 */ 000032 SALES = 0; /* zero sales */ 000033 CUSTOMER = ''; /* blank customer */ 000034 END; /* end if */ Results =MASK> /* */ 000030 ZEROS: '''''' /* */ 000032 IF WORK = 0 THEN /* only if 0 */ 000033 SALES = 0; /* zero sales */ 000034 CUSTOMER = ''; /* blank customer */ 000035 END; /* end if */ The above example shows a new line pre-loaded with comment delimiters. Example =MASK> /* */ I30030 ZEROS: 000031 IF WORK = 0 THEN /* only if 0 */ 000032 SALES = 0; /* zero sales */ 000033 CUSTOMER = ''; /* blank customer */ 000034 END; /* end if */ Results =MASK> /* */ 000030 ZEROS: '''''' /* */ '''''' /* */ '''''' /* */ 000034 IF WORK = 0 THEN /* only if 0 */ 000035 SALES = 0; /* zero sales */ 000036 CUSTOMER = ''; /* blank customer */ 000037 END; /* end if */ # 28.25 {MD (Make Data)} Purpose Converts a NOTE or MSG line to a data line. Format MD[number] Remarks This command may be specified with or without a number. An optional number following the command specifies the number of consecutive lines to be converted to data. Example 000001 OLD KING COLE WAS A MERRY OLD SOUL MDOTE= Note line to be data. 000002 FOR HIS CAP AND HE CALLED FOR HIS BOWL 000003 AND HE CALLED FOR HIS FIDDLERS THREE. Results 000001 OLD KING COLE WAS A MERRY OLD SOUL 000002 Note line to be data. 000003 FOR HIS CAP AND HE CALLED FOR HIS BOWL 000004 AND HE CALLED FOR HIS FIDDLERS THREE. # 28.26 {MDD (Block Make Data)} Purpose Converts a block of NOTE or MSG lines to data lines. Format MDD Remarks This command functions identically to the MAKE DATA line command except it operates on a block of lines rather than a single line. It is necessary to mark both the beginning and end of the block with MDD. Example 000001 OLD KING COLE WAS A MERRY OLD SOUL MDDTE= Note lines to be data. =NOTE= Notes line to be data. MDDTE= Note lines to be data. 000002 FOR HIS CAP AND HE CALLED FOR HIS BOWL 000003 AND HE CALLED FOR HIS FIDDLERS THREE. Results 000001 OLD KING COLE WAS A MERRY OLD SOUL 000002 Notes line to be data. 000003 Notes line to be data. 000004 Notes line to be data. 000005 FOR HIS CAP AND HE CALLED FOR HIS BOWL 000006 AND HE CALLED FOR HIS FIDDLERS THREE. # 28.27 {O (Overlay)} Purpose Overlays data in one or more lines with the data from one or more lines. Format O[number] Remarks The line(s) specified by C, Cn, CC (copy), or M, Mn, MM (move), overlay the line(s) containing the O (overlay) command. Only one line is overlaid unless a number is specified. Only those characters that are within the current BOUNDS participate in the overlay operation. See the BOUNDS line command, on page 381 for details. The number of source and receiving lines need not be the same. If there are more receiving lines, the sources lines are repeated until the receiving lines are used up. If there are more source lines, the extra source lines are ignored. Any blank characters in the receiving lines are overlaid with corresponding characters from the source lines. A move request is changed to a copy if characters cannot be overlaid or if there are more source lines than receiving lines. An error message is generated. Example M00029 /* */ 000030 ZEROS: O30031 IF WORK = 0 THEN 000032 SALES = 0; 000033 CUSTOMER = ''; 000034 END; Results 000029 ZEROS: 000030 IF WORK = 0 THEN /* */ 000031 SALES = 0; /* */ 000032 CUSTOMER = ''; /* */ 000033 END; Example O50030 ZEROS: 000031 IF WORK = 0 THEN 000032 SALES = 0; 000033 CUSTOMER = ''; 000034 END; M50035 /* zero work fields */ 000036 000037 /* zero sales */ 000038 /* blank customer */ 000039 /* end if */ Results 000030 ZEROS: /* zero work fields */ 000031 IF WORK = 0 THEN 000032 SALES = 0; /* zero sales */ 000033 CUSTOMER = ''; /* blank customer */ 000034 END; /* end if */ Example M20030 /* Name */ 000031 /* Address */ O40032 John Doe 000033 123 Palm Street 000034 John Smith 000035 456 First Street Results 000030 John Doe /* Name */ 000031 123 Palm Street /* Address */ 000032 John Smith /* Name */ 000033 456 First Street /* Address */ # 28.28 {OO (Block Overlay)} Purpose Overlays data in one or more lines with the data from one or more lines. Format OO Remarks This command functions identically to the OVERLAY line command except it operates on a block of lines rather than a single line. It is necessary to mark both the beginning and end of the block with "OO". Example M00029 /* */ 000030 ZEROS: OO0031 IF WORK = 0 THEN 000032 SALES = 0; OO0033 CUSTOMER = ''; 000034 END; Results 000029 /* */ 000030 ZEROS: 000034 IF WORK = 0 THEN /* */ 000035 SALES = 0; /* */ 000036 CUSTOMER = ''; /* */ 000037 END; Example OO0001 Quantity Price 000002 1 - 20 $1,000 000003 21 - 50 900 000004 51 - 99 750 OO0005 over 100 500 000006 MM0007 Discount 000008 0% 000009 10% 000010 25% MM0011 50% Results 000001 Quantity Price Discount 000002 1 - 20 $1,000 0% 000003 21 - 50 900 10% 000004 51 - 99 750 25% 000005 over 100 500 50% 000006 # 28.29 {R (Repeat)} Purpose Duplicates a line in place as many times as specified. Format R[number] Remarks If no number is specified, the line is duplicated once. If a number is specified, the line is duplicated as many times as specified by number. Example R00001 100 REM THIS IS A BASIC PROGRAM 000002 110 FOR X = 1 TO 100 000003 120 PRINT "THE NUMBER IS " 000004 130 PRINT X 000005 140 Y = 1 000006 150 NEXT X Results 000001 100 REM THIS IS A BASIC PROGRAM 000002 100 REM THIS IS A BASIC PROGRAM 000003 110 FOR X = 1 TO 100 000004 120 PRINT "THE NUMBER IS " 000005 130 PRINT X 000006 140 Y = 1 000007 150 NEXT X Example R50001 100 REM THIS IS A BASIC PROGRAM 000002 110 FOR X = 1 TO 100 000003 120 PRINT "THE NUMBER IS " 000004 130 PRINT X 000005 140 Y = 1 000006 150 NEXT X Results 000001 100 REM THIS IS A BASIC PROGRAM 000002 100 REM THIS IS A BASIC PROGRAM 000003 100 REM THIS IS A BASIC PROGRAM 000004 100 REM THIS IS A BASIC PROGRAM 000005 100 REM THIS IS A BASIC PROGRAM 000006 100 REM THIS IS A BASIC PROGRAM 000007 110 FOR X = 1 TO 100 000008 120 PRINT "THE NUMBER IS " 000009 130 PRINT X 000010 140 Y = 1 000011 150 NEXT X # 28.30 {RR (Block Repeat)} Purpose Duplicates a block of lines in place as many times as specified. Format RR[number] Remarks This command functions identically to the REPEAT line command except it operates on a block of lines rather than a single line. It is necessary to mark both the beginning and end of the block with "RR". Example 000001 100 REM RR0002 110 FOR X = 1 TO 100 000003 120 PRINT "THE NUMBER IS " 000004 130 PRINT X RR0005 140 NEXT X Results 000001 100 REM 000002 110 FOR X = 1 TO 100 000003 120 PRINT "THE NUMBER IS " 000004 130 PRINT X 000005 140 NEXT X 000006 110 FOR X = 1 TO 100 000007 120 PRINT "THE NUMBER IS " 000008 130 PRINT X 000009 140 NEXT X Example 000001 100 REM RR2002 110 FOR X = 1 TO 100 000003 120 PRINT X RR0004 130 NEXT X Results 000001 100 REM 000002 110 FOR X = 1 TO 100 000003 120 PRINT X 000004 130 NEXT X 000005 110 FOR X = 1 TO 100 000006 120 PRINT X 000007 130 NEXT X 000008 110 FOR X = 1 TO 100 000009 120 PRINT X 000010 130 NEXT X # 28.31 {S (Show)} Purpose Displays excluded line(s) based on the indentation hierarchy of those lines. Format S[number] Remarks This command may be specified with or without a number. The line or lines with the least amount of indentation are displayed first, followed by lines at the next level of indentation and so forth. Warning: This command may be validly entered only on the excluded display line. If it is entered on any other line, an error message is generated. Example 000088 DO CASE S6- - - - - - - - - 00030 LINE(S) NOT DISPLAYED 000110 ENDCASE Results 000088 DO CASE - - - - - - - - - - 00001 LINE(S) NOT DISPLAYED 000090 CASE action = 'X' - - - - - - - - - - 00003 LINE(S) NOT DISPLAYED 000094 CASE action = 'Q' - - - - - - - - - - 00003 LINE(S) NOT DISPLAYED 000099 CASE action = '1' - - - - - - - - - - 00002 LINE(S) NOT DISPLAYED 000102 CASE action = '2' - - - - - - - - - - 00002 LINE(S) NOT DISPLAYED 000105 CASE action = '3' - - - - - - - - - - 00002 LINE(S) NOT DISPLAYED 000108 OTHERWISE - - - - - - - - - - 00001 LINE(S) NOT DISPLAYED 000110 ENDCASE # 28.32 {TABS (Tab Line)} Purpose Displays or modifies the current tab settings. Format TABS TAB Remarks There are three types of tabs in SPF/Pro: hardware Hardware tab stops are defined with the asterisk (*) character on the TABS line. Each time the [TAB] key is pressed, the cursor is advanced to one position to the right of the next hardware tab stop. If the cursor is in the line command field, it is positioned to column 1. This function only works when tabs are set ON with the TABS primary command. See page 357 for details. logical When data is entered with an initial logical tab character, it is positioned to one character to the right of the next hardware tab stop. This function only works when tabs are set ON and a logical tab character has been defined with the TABS primary command. See page 357 for details. software Software tab stops are defined with the underscore(_) or hyphen (-) character. Each time [SPF-Enter] is pressed, the cursor is advanced to the next software tab stop. Software tabs are always ON independent of the TABS primary command. Example In the following example the TABS line command is entered on line 000031. The clear tabs line is displayed immediately above it. The hardware tab character asterisk (*) is entered in columns 9, 19, and 29. =COLS> ----+----1----+----2----+----3----+----4--- =TABS> * * * 000031 /* EXAMPLE SHOWS HARDWARE TAB DEFINITION */ The primary command "TABS ON" is entered. At this point hardware tabs are both defined and ON. With this hardware tab definition and starting with the cursor in the line command field, the cursor is positioned to columns 1, 10, 20, and 30 as the [TAB] is repeatedly depressed. You can enter data at any point after positioning the cursor with [TAB]. Example The next example shows how logical tabs would be used to position data in place of using [TAB] to do the positioning. Enter primary command "TABS ON \" to turn tabs ON and define the logical tab character as backslash (\). With the same hardware tab definition from the above example, enter the "I" line command on line 000031. When the empty null line is presented key in "\aaa \bbb \ccc" starting at column 1. Press [SPF-Enter]. The editor positions the three data strings one position to the right of the respective hardware tab stops. =COLS> ----+----1----+----2----+----3----+----4 =TABS> * * * 000031 /* EXAMPLE SHOWS USE OF LOGICAL TABS */ '''''' \aaa \bbb \ccc Results =COLS> ----+----1----+----2----+----3----+----4 =TABS> * * * 000031 /* EXAMPLE SHOWS USE OF LOGICAL TABS */ 000032 aaa bbb ccc Example The next example shows how to define software tabs and use the [SPF-Enter] key for positioning. The software tab character hyphen (-) is entered in columns 10, 20, and 30. With this software tab definition and starting with the cursor in the line command field, the cursor is positioned to columns 10, 20, and 30 as the [SPF-Enter] key is repeatedly depressed. You can enter data at any point after positioning the cursor with the [SPF-Enter] key. =COLS> ----+----1----+----2----+----3----+----4--- =TABS> - - - 000031 /* EXAMPLE SHOWS SOFTWARE TAB DEFINITION */ # 28.33 {TE (Text Enter)} Purpose Opens space for text entry. This mode is generally used for entering text for publishing applications. Format TE Remarks When text entry mode is begun, line numbers disappear. You may type without worry about reaching line end. The cursor skips from the end of one line to the starting position of the next line automatically. You can type continuously. When the text reaches the right edge of the data area it is folded to the next line. To exit text entry, press [SPF-Enter]. Note: At the end of a page, a new page is automatically displayed and word wrap occurs. Note: Tabs are still functional during text entry. # 28.34 {TF (Text Flow)} Purpose Flows the current paragraph of text to fit within defined BOUNDS. Format TF[number] Remarks This command works in conjunction with the BNDS command, see page 381 for details. It is used to restructure paragraphs after deletions, text splits, insertions etc. The text flow begins on the line that the command is entered and flows text until an end of paragraph condition is reached. The end of paragraph is determined by a blank line, a change in indentation, or the special characters period (.), colon (:), ampersand (&), less than (<), or form feed (CTRL L) at the beginning of a line. Text flow restructures a paragraph by removing trailing blanks. It does not remove leading or embedded blanks. For this reason, it is important to delete words within a line by using [DEL] rather than by typing over words with blanks. Because of this, the first line indent in a paragraph is preserved with Text Flow. If number is specified, it is used as a temporary right bound. Paragraph text is flowed to the extent of this new temporary bound. Note: If the temporary right bound is outside of the current bounds, it is ignored and the current bounds are used. Note: If a word is too large to fit within the current bounds, an error message is presented. # 28.35 {TJ (Text Join)} Purpose Joins the current and following line. This command is, in effect, the reverse of the Text Split command. Format TJ Remarks The text join command operates within the current bounds. Data in the next line (being appended) that is outside the current bounds is deleted. Example TJ0402 The text in the following line 000403 is appended 000404 to the text in the current line. Results 000402 The text in the following line is appended 000403 to the text in the current line. # 28.36 {TS (Text Split)} Purpose Splits a line of text at the cursor location. Format TS[number] Remarks Position the cursor where the line is to be split and press [SPF-Enter]. If a number is not specified, only one blank line appears between the split line segments. If number is specified, that number of blank lines is inserted between the split line segments. The text split command operates within the current bounds and leaves data outside the bounds unchanged. If the cursor is outside the bounds, the request is ignored. Example 000402 If a number parameter is specified, TS0403 new lines will be inserted between the split 000404 text segments. Results 000402 If a number parameter is specified, 000403 new '''''' 000405 lines will be inserted between the split 000406 text segments. # 28.37 {UC (Upper Case)} Purpose Converts alphabetic characters on a line or group of lines to uppercase letters. Format UC[number] Remarks This command may be specified with or without a number. An optional number after the command specifies the number of consecutive lines to be converted to uppercase letters. Example UC0022 If a number is specified, that 000023 number of consecutive lines is converted 000024 to uppercase letters. In this way the 000025 number parameter functions in the 000026 same way as does the Block Upper Case 000027 command. Results 000022 IF A NUMBER IS SPECIFIED, THAT NUMBER 000023 of consecutive lines is converted 000024 to uppercase letters. In this way the 000025 number parameter functions in the 000026 same way as does the Block Upper Case 000027 command. Example UC3022 If a number is specified, that number 000023 of consecutive lines is converted 000024 to uppercase letters. In this way the 000025 number parameter functions in the 000026 same way as does the Block Upper Case 000027 command. Results 000022 IF A NUMBER IS SPECIFIED, THAT NUMBER 000023 OF CONSECUTIVE LINES IS CONVERTED 000024 TO UPPERCASE LETTERS. IN THIS WAY THE 000025 number parameter functions in the 000026 same way as does the Block Upper Case 000027 command. # 28.38 {UCC (Block Upper Case)} Purpose Converts alphabetic characters within a block of lines to uppercase letters. Format UCC Remarks This command functions identically to the UC line command except it operates on a block of lines rather than a single line. It is necessary to mark both the beginning and end of the block with "UCC". Example UCC001 This is the start of the letter. 000002 I think that I would like to change these UCC003 Lines to all uppercase characters. Results 000001 THIS IS THE START OF THE LETTER. 000002 I THINK THAT I WOULD LIKE TO CHANGE THESE 000003 LINES TO ALL UPPER CASE CHARACTERS. # 28.39 {X (Exclude)} Purpose Excludes one or more lines from view. Format X[number] Remarks This command may be specified with or without a number. An optional number after the command specifies the number of consecutive lines to be excluded from view. This command is helpful when trying to view two groups of lines which are far apart in a file. The lines in between can be excluded from the display but are not deleted from the file. The exclude command is often used in conjunction with the FIND and CHANGE primary commands to limit the scope of a search. See FIND, CHANGE, and EXCLUDE primary commands for global operations. Note: Use the RESET primary command redisplay all excluded lines. Example 000010 /* This is a C program */ 000011 main() { X00012 int sum,x,y; 000013 x = 20; 000014 y = 30; 000015 printf("The sum of %d and %d = %d", 000016 x,y,(x+y)); 000017 } Results 000010 /* This is a C program */ 000011 main() { - - - - - - - - - - 00001 LINE(S) NOT DISPLAYED 000013 x = 20; 000014 y = 30; 000015 printf("The sum of %d and %d = %d", 000016 x,y,(x+y)); 000017 } Example 000010 /* This is a C program */ 000011 main() { X600012 int sum,x,y; 000013 x = 20; 000014 y = 30; 000015 sum = x + y; 000016 printf("The sum of %d and %d = %d", 000017 x, y, sum); 000018 } Results 000010 /* This is a C program */ 000011 main() { - - - - - - - - - - 00006 LINE(S) NOT DISPLAYED 000018 } 28.40 {XX (Block Exclude)} Purpose Excludes a block of lines from viewing. Format XX Remarks This command functions identically to the EXCLUDE line command except it operates on a block of lines rather than a single line. It is necessary to mark both the beginning and end of the block with "XX". Example 000010 /* This is a C program */ 000011 main() { XX0012 int sum,x,y; 000013 x = 20; 000014 y = 30; 000015 sum = x + y; 000016 printf("The sum of %d and %d = %d", XX0017 x, y, sum); 000018 } Results 000010 /* This is a C program */ 000011 main() { - - - - - - - - - - 00006 LINE(S) NOT DISPLAYED 000018 } # 28.41 {. (DOT, Label Assign)} Purpose Assigns a label to a line. Normally labels are assigned to lines so that later they may be used as range parameters. Format .label Remarks Labels may be assigned to any non-excluded line. A label is typed in the line command area. It begins with a period (.), and is followed by one to five alphabetic characters. You may not begin a label with the letter "Z". Labels beginning with the letter "Z" are reserved by the system. The following system labels are available at all times: .ZF The first line of the file. .ZFIRST The first line of the file .ZL The last line of the file. .ZLAST The last line of the file. .ZCSR The cursor line. Labels are not part of the data and are not stored by the system at END. Therefore, it is not necessary to RESET or clear them. # 29. {Dialog Development Introduction} SPF/Pro is designed to support the development of Edit Macros and SPF Dialogs which are consumed at the department, division, or company wide level. In the normal course of events, the individual SPF/Pro end user is not inclined to develop sophisticated Edit Macros or SPF Dialogs on a broad basis. The predominant scenario is that of one or more interested and able developers providing macros and dialogs to their constituency of end users. SPF/Pro provides all the functions, features, and run time support needed by end users to exploit locally developed extensions to the base environment. Source is provided for all SPF/Pro panels including the Custom Dialogs for Micro Focus and XDB. Most ISPF panels developed under MVS will run without alteration on SPF/Pro. Modifications to these panels to adapt or extend are easily accomplished. In SPF/Pro we interpret the meaning of many of the MVS ISPF panel definition components within a GUI paradigm automatically. This enables the developer's applications to be rendered in a modern style and with modern behavior without alteration. # 29.1 {Major New Features} * New Display Services - ADDPOP Support - Source for 390 SPF/Pro panels - On screen 'popup' command windows - Extended Selection in Tables - Dialog Test (Panels) * Program Authoring Enhancements - REXX PDS Access API - Configurable Command Tables - DM Function PGM(...) and BACKPGM(...) Support - Improved and extended ISREDIT Support - Improved and extended ISPEXEC Support - Dialog Test (Programs) - Record Level Print Interface - Extended Table Services to include Directory Services This manual is divided into three main sections. In the first section we discuss how to develop an application in SPF/Pro and lead you through the development of a sample REXX procedure using the ISPEXEC interface and in the development of an EDIT MACRO using the ISREDIT interface. Along the way we introduce the tools, such as dialog test and the TTY interface which have been designed to aid the development process. This section also discusses in detail the role of the directory structures to ensure that user developed applications do not collide with SPF/Pro supplied ones. The dialog development tools such as PDS Support, Dialog Test, Command Tables, and the TTY interface are described in detail in the second part. The third section is a reference for the REXX programming language, ISREDIT, and ISPEXEC commands which SPF/Pro supports. This section is also complete reference to the panels and commands designed to aid application development. # 29.2 {Assumptions} In this manual we assume that you are familiar with the normal processes of application development from design and implementation to testing and debugging. We also assume you have a basic knowledge of REXX. We explain any uses of REXX which are specific to Command Techn