Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

PARAMETERS

QUALIFIERS

EXAMPLES

/CHARACTERISTIC

/FORM

/KEY

/EXECUTIVE_MODE

/GROUP

/JOB

/LOG

/NAME_ATTRIBUTES

/PROCESS

/SUPERVISOR_MODE

/SYSTEM

/TABLE

/TRANSLATION_ATTRIBUTES

/USER_MODE

PARAMETERS

Example

PARAMETERS

QUALIFIERS

Example

/DESCRIPTION

/LENGTH

/MARGIN

/PAGE_SETUP

/SETUP

/SHEET_FEED

/STOCK

/TRUNCATE

/WIDTH

/WRAP

PARAMETERS

QUALIFIERS

EXAMPLES

/ECHO

/ERASE

/IF_STATE

/LOCK_STATE

/LOG

/SET_STATE

/TERMINATE

HELP DEFINE — VMS 5.4

   Associates equivalence names with a logical name. If you specify
   an existing logical name, the new equivalence names replace the
   existing equivalence name. The DEFINE command performs different
   functions when used with certain qualifiers as follows:

   o  Define a characteristic name for the system queues (see
      /CHARACTERISTIC).

   o  Define a form name and number and the characteristics of the
      physical paper stock for printer and terminal queues (see
      /FORM).

   o  Associate an equivalence string and a set of attributes with a
      key on the terminal keyboard (see /KEY).

   Format

     DEFINE  logical-name equivalence-name[,...]

Additional information available:

PARAMETERSQUALIFIERSEXAMPLES

/CHARACTERISTIC/FORM/KEY

PARAMETERS

logical-name
   Specifies the logical name string, which is a character string
   containing from 1 to 255 characters. If the logical name is to be
   entered into the process or system directory logical name tables
   (LNM$PROCESS_DIRECTORY, LNM$SYSTEM_DIRECTORY), then the name can
   only have from 1 to 31 alphanumeric characters (including the
   dollar sign ($)  and underscore [ _ ]).

   If you specify a colon (:)  at the end of a logical name, the
   DEFINE command saves the colon as part of the logical name. (This
   is in contrast to the ASSIGN command, which removes the colon
   before placing the name in a logical name table.) By default, the
   logical name is placed in the process logical name table.

   If the string contains any characters other than uppercase
   alphanumerics, the dollar sign, or the underscore character,
   enclose the string in quotation marks (" ").  Use two consecutive
   quotation marks ("")  to denote an actual quotation mark. Note
   that if you enclose a name in quotation marks, the case of
   alphabetic characters is preserved.

equivalence-name[,...]
   Specifies a character string containing from 1 to 255 characters.
   If the string contains any characters other than uppercase
   alphanumerics, the dollar sign, or the underscore character,
   enclose the string in quotation marks. Use two consecutive
   quotation marks to denote an actual quotation mark. Specifying
   more than one equivalence name for a logical name creates a search
   list.

   When you specify an equivalence name that will be used as a file
   specification, you must include the punctuation marks (colons,
   brackets, periods) that would be required if the equivalence name
   were used directly as a file specification. Therefore, if you
   specify a device name as an equivalence name, you must terminate
   the equivalence name with a colon.

   The DEFINE command allows you to assign the same logical name to
   more than one equivalence name. For example, you can use the same
   logical name to access different directories on different disks,
   or to access different files in different directories. When you
   specify more than one equivalence name for a logical name, you
   create a search list. See the VMS DCL Concepts Manual for more
   information on search lists.

QUALIFIERS

Additional information available:

/EXECUTIVE_MODE/GROUP/JOB/LOG/NAME_ATTRIBUTES
/PROCESS/SUPERVISOR_MODE/SYSTEM/TABLE/TRANSLATION_ATTRIBUTES
/USER_MODE

/EXECUTIVE_MODE

   Requires SYSNAM (system logical name) privilege to create an
   executive-mode logical name.

   Creates an executive-mode logical name in the specified table.

   If you specify the /EXECUTIVE_MODE qualifier and you do not have
   SYSNAM privilege, the DEFINE command ignores the qualifier and
   creates a supervisor-mode logical name. The mode of the logical
   name must be the same or less privileged than the mode of the
   table in which you are placing the name.

/GROUP

   Requires GRPNAM (group logical name) or SYSPRV (system privilege)
   privilege to place a name in the group logical name table.

   Places the logical name in the group logical name table. Other
   users who have the same group number in their user identification
   codes (UICs) can access the logical name. The /GROUP qualifier is
   synonymous with the /TABLE=LNM$GROUP qualifier.

/JOB

   Places the logical name in the jobwide logical name table. All
   processes in the same job tree as the process that created the
   logical name can access the logical name. The /JOB qualifier is
   synonymous with the /TABLE=LNM$JOB qualifier.

/LOG

      /LOG (default)
      /NOLOG

   Displays a message when a new logical name supersedes an existing
   name.

/NAME_ATTRIBUTES

      /NAME_ATTRIBUTES[=(keyword[,...])]

   Specifies attributes for a logical name. By default, no attributes
   are set. Possible keywords are as follows:

   CONFINE     The logical name is not copied into a spawned
               subprocess. This qualifier is relevant only for
               logical names in a private table.

               The logical name inherits the CONFINE attribute from
               the logical name table where it is entered; if the
               logical name table is "confined," then all names in
               the table are "confined."

   NO_ALIAS    A logical name cannot be duplicated in the specified
               table in a less privileged access mode; any previously
               created identical names in an outer (less privileged)
               access mode within the specified table are deleted.

   If you specify only one keyword, you can omit the parentheses.
   Only the attributes you specify are set.

/PROCESS

      /PROCESS (default)

   Places the logical name in the process logical name table. The
   /PROCESS qualifier is synonymous with the /TABLE=LNM$PROCESS
   qualifier.

/SUPERVISOR_MODE

      /SUPERVISOR_MODE (default)

   Creates a supervisor-mode logical name in the specified table. The
   mode of the logical name must be the same as or less privileged
   than the mode of the table in which you are placing the name.

/SYSTEM

   Requires SYSNAM (system logical name) or SYSPRV (system privilege)
   privilege to place a name in the system logical name table.

   Places the logical name in the system logical name table. All
   system users can access the logical name. The /SYSTEM qualifier is
   synonymous with the /TABLE=LNM$SYSTEM qualifier.

/TABLE

      /TABLE=name

   Requires write (W) access to the table to specify the name of a
   shareable logical name table.

   Specifies the name of the logical name table in which the logical
   name is to be entered. You can use the /TABLE qualifier to specify
   a user-defined logical name table (created with the CREATE/NAME_
   TABLE command); to specify the process, job, group, or system
   logical name tables; or to specify the process or system logical
   name directory tables.

   If you specify the table name using a logical name that has more
   than one translation, the logical name is placed in the first
   table found. For example, if you specify DEFINE/TABLE=LNM$FILE_DEV
   and LNM$FILE_DEV is equated to LNM$PROCESS, LNM$JOB, LNM$GROUP,
   and LNM$SYSTEM, then the logical name is placed in LNM$PROCESS.

   The default is the /TABLE=LNM$PROCESS qualifier.

/TRANSLATION_ATTRIBUTES

      /TRANSLATION_ATTRIBUTES[=(keyword[,...])]

   Equivalence-name qualifier.

   Specifies one or more attributes that modify an equivalence string
   of the logical name. Possible keywords are as follows:

   CONCEALED   Indicates that the equivalence string is the name of
               a concealed device. When a concealed device name is
               defined, the system displays the logical name, rather
               than the equivalence string, in messages that refer to
               the device.

   TERMINAL    Logical name translation should terminate with
               the current equivalence string; indicates that
               the equivalence string should not be translated
               iteratively.

   If you specify only one keyword, you can omit the parentheses.
   Only the attributes you specify are set.

   Note that different equivalence strings of a logical name can have
   different translation attributes.

/USER_MODE

   Creates a user-mode logical name in the specified table.

   User-mode logical names created within the process logical
   name tables are used for the execution of a single image; for
   example, you can create a user-mode logical name to allow an image
   executing in a command procedure to redefine SYS$INPUT. User-mode
   entries are deleted from the process logical name table when any
   image executing in the process exits (that is, after a DCL command
   or user program that executes an image completes execution).

EXAMPLES

   1.  $ DEFINE/USER_MODE TM1 $DISK1:[ACCOUNTS.MEMOS]WATER.TXT

     In this example, the DEFINE command defines TM1 as equivalent
     to a file specification. After the next image runs, the logical
     name TM1 is automatically deassigned.

   2.  $ DEFINE MEMO $DISK1:[ACCOUNTS.MEMO]

     In this example, the DEFINE command defines the logical
     name MEMO as equivalent to the partial file specification
     $DISK1:[ACCOUNTS.MEMO].


   3.  $ DEFINE PROCESS_NAME  LIBRA
       $ RUN WAKE

     In this example, the DEFINE command places the logical name
     PROCESS_NAME in the process logical name table with an
     equivalence name of LIBRA. The logical name is created in
     supervisor mode. The program WAKE translates the logical name
     PROCESS_NAME to perform some special action on the process
     named LIBRA.

   4.  $ DEFINE TEMP:  XXX1:
          .
          .
          .
       $ DEASSIGN TEMP::

     In this example, the DEFINE command creates an equivalence
     name for the logical name TEMP: and places the name in the
     process logical name table. The colon is retained as part of
     the logical name. The DEASSIGN command deletes the logical
     name. Note that two colons are required on the logical name
     in the DEASSIGN command. One colon is deleted by the DEASSIGN
     command. The other colon is kept as part of the logical name.


   5.  $ DEFINE PORTLAND PRTLND::YYY0:[DECNET.DEMO.COM]

     In this example, the DEFINE command places the logical name
     PORTLAND in the process logical name table with an equivalence
     name of PRTLND::YYY0:[DECNET.DEMO.COM]. Subsequent references
     to the logical name PORTLAND result in the correspondence
     between the logical name PORTLAND and the node, disk, and
     subdirectory specified.

   6.  $ DEFINE LOCAL "BOSTON""JOHN_SMITH JKS""::"

     In this example, the DEFINE command places the logical name
     LOCAL in the process logical name table with a remote node
     equivalence name of BOSTON"JOHN_SMITH JKS"::. To satisfy
     conventions for local DCL command string processing, you must
     use three sets of quotation marks. The quotation marks ensure
     that access control information is enclosed in one set of
     quotation marks in the equivalence name.


   7.  $ DEFINE MYDISK XXX0:[MYDIR], YYY0:[TESTDIR]

     In this example, the DEFINE command places the logical name
     MYDISK in the process logical name table with two equivalence
     names: XXX0:[MYDIR] and YYY0:[TESTDIR].


   8.  $  CREATE/NAME_TABLE TABLE1

       $  DEFINE/TABLE=LNM$PROCESS_DIRECTORY LNM$FILE_DEV -
       _$ TABLE1,LNM$PROCESS,LNM$JOB,LNM$GROUP,LNM$SYSTEM
       $  DEFINE/TABLE=TABLE1 -
       _$ /TRANSLATION_ATTRIBUTES=CONCEALED   WORK_DISK DBA1:

     In this example, the CREATE/NAME_TABLE command creates the
     process private logical name table TABLE1.

     The first DEFINE command ensures that TABLE1 is searched first
     in any logical name translation of a device or file
     specification (because TABLE1 is the first item in the
     equivalence string for the logical name LNM$FILE_DEV, which
     determines the default search sequence of logical name tables
     whenever a device or file specification is translated).

     The second DEFINE command assigns the logical name WORK_DISK
     to the physical device DBA1 and places the name in TABLE1.
     The logical name has the concealed attribute. Therefore, the
     logical name WORK_DISK is displayed in system messages.

   9.  $ CREATE/NAME_TABLE SPECIAL
       $ DEFINE/TABLE=LNM$PROCESS_DIRECTORY LNM$FILE_DEV -
       _$ SPECIAL,LNM$PROCESS,LNM$JOB,LNM$GROUP,LNM$SYSTEM
       $ DEFINE/TABLE=LNM$PROCESS_DIRECTORY TAB SPECIAL
       $ DEFINE/TABLE=TAB REPORT [CHELSEA]STORES
       $ SHOW LOGICAL/TABLE=SPECIAL REPORT
         "REPORT" = "[CHELSEA]STORES" (SPECIAL)

     In this example, the CREATE/NAME_TABLE command is used to
     create a new logical name table called SPECIAL. This table
     is defined in the process directory, LNM$PROCESS_DIRECTORY.

     The first DEFINE command ensures that SPECIAL is searched
     first in any logical name translation of a device or file
     specification (because SPECIAL is the first item in the
     equivalence string for the logical name LNM$FILE_DEV, which
     determines the default search sequence of logical name tables
     whenever a device or file specification is translated). The
     logical name LNM$FILE_DEV is placed in the process directory,
     LNM$PROCESS_DIRECTORY.

     With the next DEFINE command, a new logical name, TAB, is
     defined. TAB translates to the string SPECIAL, which identifies
     a logical name table. You must define TAB in the process
     directory because it translates iteratively to a logical name
     table.

     Next, the logical name REPORT is placed into the logical name
     table TAB. Because TAB translates to the table SPECIAL, the
     name REPORT is entered into SPECIAL table. The SHOW LOGICAL
     command verifies that the name REPORT has been entered into the
     table SPECIAL.

     Note that you can redefine TAB so it translates to a different
     table. Therefore, if you run different programs that use the
     name TAB as a table name, you can change the actual tables
     where the names are entered or referenced.

/CHARACTERISTIC

   Assigns a numeric value to a queue characteristic. The
   /CHARACTERISTIC qualifier is required. If a value has been
   assigned to the characteristic, the DEFINE/CHARACTERISTIC command
   alters the assignment of the existing characteristic.

   Requires OPER (operator) privilege.

   Format

     DEFINE/CHARACTERISTIC  characteristic-name
                            characteristic-number

Additional information available:

PARAMETERS

Example

PARAMETERS

characteristic-name
   Assigns a name to the characteristic being defined. The
   characteristic name can be the name of an existing characteristic
   or a string of 1 to 31 characters that defines a new
   characteristic. The character string can include any uppercase
   and lowercase letters, digits, the dollar sign ($),  and the
   underscore (_),  and must include at least one alphabetic
   character.

characteristic-number
   Assigns a number in the range 0 to 127 to the characteristic being
   defined.

Example

   $ DEFINE/CHARACTERISTIC REDINK 3

     The DEFINE/CHARACTERISTIC command in this example defines
     the characteristic REDINK with the number 3. When a user
     enters the command PRINT/CHARACTERISTICS=REDINK (or PRINT
     /CHARACTERISTICS=3), the job is printed only if the printer
     queue has been established with the REDINK or 3 characteristic.

/FORM

   Assigns a numeric value and attributes to a print form name. The
   /FORM qualifier is required. If a value has been assigned already
   to the form name, the DEFINE/FORM command alters the definition of
   the existing form.

   Requires OPER (operator) privilege.

   Format

     DEFINE/FORM  form-name form-number

Additional information available:

PARAMETERSQUALIFIERS

Example

PARAMETERS

form-name
   Assigns a name to the form being defined. The form name can be the
   name of an existing form type or a string of 1 to 31 characters
   that defines a new form type. The character string can include
   any uppercase and lowercase letters, digits, the dollar sign ($),
   and the underscore (_),  and must include at least one alphabetic
   character.

form-number
   Assigns a number in the range 0 to 2,147,483,647 to the form being
   defined. The DEFAULT form, which is defined automatically when the
   system is bootstrapped, is assigned number zero.

QUALIFIERS

Additional information available:

/DESCRIPTION/LENGTH/MARGIN/PAGE_SETUP/SETUP
/SHEET_FEED/STOCK/TRUNCATE/WIDTH/WRAP

/DESCRIPTION

      /DESCRIPTION=string

   A string of up to 255 characters used to provide operator
   information about the form. The default string is the specified
   form name.

   The string can be used to define the form type more specifically.
   For example, if you have form names such as LETTER1, LETTER2, and
   LETTER3, the /DESCRIPTION qualifier could be used to let the users
   and operators know that LETTER1 refers to the standard corporate
   letterhead paper (8.5 inches x 11 inches), LETTER2 refers to the
   smaller corporate letterhead paper (6 inches x 9 inches), and
   LETTER3 refers to the president's personalized letterhead paper.

   Enclose strings containing lowercase letters, blanks, or other
   nonalphanumeric characters (including spaces) in quotation marks
   (" ").

/LENGTH

      /LENGTH=n

   Specifies the physical length of a form page in lines. The default
   page length is 66 lines, which assumes a standard page length of
   11 inches with 6 lines of print per inch. The parameter n must be
   a positive integer greater than zero and not more than 255.

   The print symbiont sets the page length of the device equal to the
   form length. This enables the driver to compute the number of line
   feeds for devices lacking mechanical form feed.

/MARGIN

      /MARGIN=(option[,...])

   Specifies one or more of the four margin options: BOTTOM, LEFT,
   RIGHT, and TOP.

   BOTTOM=n  Specifies the number of blank lines between the end
             of the print image area and the end of the physical
             page; the value of n must be between 0 and the value
             of the /LENGTH qualifier. The default value is 6, which
             generally means a 1-inch bottom margin.

   LEFT=n    Specifies the number of blank columns between the
             leftmost printing position and the print image area;
             the value of n must be between 0 and the value of the
             /WIDTH qualifier. The default is 0, which means that the
             print image area starts as far to the left of the paper
             as the printer can go.

   RIGHT=n   Specifies the number of blank columns between the /WIDTH
             qualifier and the image area; the value of n must be
             between 0 and the value of the /WIDTH qualifier. When
             determining the value of the RIGHT option, start at the
             /WIDTH value and count to the left. The default value is
             0, which means that the print image extends as far to
             the right as the /WIDTH value.

   TOP=n     Specifies the number of blank lines between the top
             of the physical page and the top of the print image;
             the value of n must be between 0 and the value of
             the /LENGTH qualifier. The default value is 0, which
             generally means that there is no top margin.

/PAGE_SETUP

      /PAGE_SETUP=(module[,...])
      /NOPAGE_SETUP (default)

   Specifies one or more modules that set up the device at the start
   of each page. The modules are located in the device control
   library. While the form is mounted, the system extracts the
   specified module and copies it to the printer before each page
   is printed.

/SETUP

      /SETUP=(module[,...])

   Specifies one or more modules that set up the device at the start
   of each file. The modules are located in the device control
   library. While the form is mounted, the system extracts the
   specified module and copies it to the printer before each file
   is printed.

/SHEET_FEED

      /SHEET_FEED
      /NOSHEET_FEED (default)

   Specifies that print jobs pause at the end of every physical page
   so that a new sheet of paper can be inserted.

/STOCK

      /STOCK=string

   Specifies the type of paper stock to be associated with the form.
   The string parameter can be a string of 1 to 31 characters,
   including the dollar sign, underscore, and all alphanumeric
   characters. If you specify the /STOCK qualifier you must specify
   the name of the stock to be associated with the form. If you do
   not specify the /STOCK qualifier, the name of the stock will be
   the same as the name of the form.

   You can create any string that you want. However, when you are
   creating forms with the same stock, be sure that the /STOCK string
   is identical in all the DEFINE/FORM commands that refer to the
   same type of paper.

   If you are defining a number of forms to provide different
   formatting options, specify the same stock type for each form. If
   you specify the same stock type for each form, jobs that request
   any of these forms will print on the same queue.

/TRUNCATE

      /TRUNCATE (default)
      /NOTRUNCATE

   Discards any characters that exceed the current line length
   (specified by the /WIDTH and /MARGIN=RIGHT qualifiers). The
   /TRUNCATE qualifier is incompatible with the /WRAP qualifier.
   If you specify both the /NOTRUNCATE and /NOWRAP qualifiers, the
   printer prints as many characters on a line as possible. This
   combination of qualifiers is useful for some types of graphics
   output.

/WIDTH

      /WIDTH=n

   Specifies the physical width of the paper in terms of columns or
   character positions. The parameter n must be an integer from 0 to
   65,535; the default value is 132.

   Any lines exceeding this value wrap if the /WRAP qualifier is in
   effect or are truncated if the /TRUNCATE qualifier is in effect.
   (If both the /NOTRUNCATE and /NOWRAP qualifiers are in effect,
   lines print as far as possible.)

   The /MARGIN=RIGHT qualifier overrides the /WIDTH qualifier when
   determining when to wrap lines of text.

/WRAP

      /WRAP
      /NOWRAP (default)

   Causes lines that exceed the current line length (specified by the
   /WIDTH and /MARGIN=RIGHT qualifiers) to wrap onto the next line.
   The /WRAP qualifier is incompatible with the /TRUNCATE qualifier.
   If you specify both the /NOWRAP and /NOTRUNCATE qualifiers, the
   printer prints as many characters on a line as possible. This
   combination of qualifiers is useful for some types of graphics
   output.

Example

   $ DEFINE/FORM /MARGIN=(TOP=6,LEFT=10) CENTER 3

     The DEFINE/FORM command in this example defines the form CENTER
     to have a top margin of 6 and a left margin of 10. The defaults
     remain in effect for both bottom margin (6) and right margin
     (0). The form is assigned the number 3.

/KEY

   Associates an equivalence string and a set of attributes with a
   key on the terminal keyboard. The /KEY qualifier is required.

   Format

     DEFINE/KEY  key-name equivalence-string

Additional information available:

PARAMETERSQUALIFIERSEXAMPLES

PARAMETERS

key-name
   Specifies the name of the key that you are defining. All definable
   keys on VT52 terminals are located on the numeric keypad. On
   VT100-series terminals, you can define the left and right arrow
   keys as well as all the keys on the numeric keypad. On terminals
   with LK201 keyboards, the following three types of keys can be
   defined:

   o  Keys on the numeric keypad

   o  Keys on the editing keypad (except the up and down arrow keys)

   o  Keys on the function key row across the top of the keyboard
      (Note that you cannot define function keys F1 to F5.)

   The following table lists the key names in column one. The
   remaining three columns indicate the key designations on the
   keyboards of the three different types of terminals that allow
   key definitions.

   Key Name          LK201           VT100-Series  VT52

   PF1               PF1             PF1           [blue]

   PF2               PF2             PF2           [red]

   PF3               PF3             PF3           [gray]

   PF4               PF4             PF4           - -

   KP0, KP1, ...,    0, 1, ..., 9    0, 1, ..., 9  0, 1, ..., 9
   KP9

   Period            .               .             .

   Comma             ,               ,             n/a

   Minus             -               -             n/a

   Enter             Enter           ENTER         ENTER

   Left              < -             < -           < -

   Right             - >             - >           - >

   Find (E1)         Find            -             -

   Insert Here (E2)  Insert Here     -             -

   Remove (E3)       Remove          -             -

   Select (E4)       Select          -             -

   Prev Screen (E5)  Prev Screen     -             -

   Next Screen (E6)  Next Screen     -             -

   Help              Help            -             -

   Do                Do              -             -

   F6, F7, ..., F20  F6, F7, ...,    -             -
                     F20

   Some definable keys are enabled for definition all the time.
   Others, including KP0 to KP9, Period, Comma, and Minus, must be
   enabled for definition purposes. You must enter either the SET
   TERMINAL/APPLICATION or the SET TERMINAL/NONUMERIC command before
   using these keys.

   On LK201 keyboards, you cannot define the up and down arrow keys
   or function keys F1 to F5. The left and right arrow keys and the
   F6 to F14 keys are reserved for command line editing. You must
   enter the SET TERMINAL/NOLINE_EDITING command before defining
   these keys. You can also press Ctrl/V to enable keys F7 to F14.
   Note that Ctrl/V will not enable the F6 key.

equivalence-string
   Specifies the character string to be processed when you press
   the key. Enclose the string in quotation marks (" ")  to preserve
   spaces and lowercase characters.

QUALIFIERS

Additional information available:

/ECHO/ERASE/IF_STATE/LOCK_STATE/LOG/SET_STATE
/TERMINATE

/ECHO

      /ECHO (default)
      /NOECHO

   Displays the equivalence string on your screen after the key
   has been pressed. You cannot use the /NOECHO qualifier with the
   /NOTERMINATE qualifier.

/ERASE

      /ERASE
      /NOERASE (default)

   Determines whether the current line is erased before the key
   translation is inserted.

/IF_STATE

      /IF_STATE=(state-name,...)
      /NOIF_STATE

   Specifies a list of one or more states, one of which must be in
   effect for the key definition to work. The /NOIF_STATE qualifier
   has the same meaning as /IF_STATE=current_state. The state name is
   an alphanumeric string. States are established with the /SET_STATE
   qualifier or the SET KEY command. If you specify only one state
   name, you can omit the parentheses. By including several state
   names, you can define a key to have the same function in all the
   specified states.

/LOCK_STATE

      /LOCK_STATE
      /NOLOCK_STATE (default)

   Specifies that the state set by the /SET_STATE qualifier remain
   in effect until explicitly changed. (By default, the /SET_STATE
   qualifier is in effect only for the next definable key you press
   or the next read-terminating character that you type.) Can only be
   specified with the /SET_STATE qualifier.

/LOG

      /LOG (default)
      /NOLOG

   Displays a message indicating that the key definition has been
   successfully created.

/SET_STATE

      /SET_STATE=state-name
      /NOSET_STATE (default)

   Causes the specified state name to be set when the key is pressed.
   (By default, the current locked state is reset when the key is
   pressed.) If you have not included this qualifier with a key
   definition, you can use the SET KEY command to change the current
   state. The state name can be any alphanumeric string; specify the
   state as a character string enclosed in quotation marks.

/TERMINATE

      /TERMINATE
      /NOTERMINATE (default)

   Specifies whether the current equivalence string is to be
   processed immediately when the key is pressed (equivalent to
   entering the string and pressing the Return key). By default,
   you can press other keys before the definition is processed. This
   allows you to create key definitions that insert text into command
   lines, after prompts, or into other text that you are entering.

EXAMPLES

   1.  $ DEFINE/KEY PF3 "SHOW TIME" /TERMINATE
       %DCL-I-DEFKEY, DEFAULT key PF3 has been defined
       $ SHOW TIME
         19-APR-1990 14:43:59

     In this example, the DEFINE/KEY command defines the PF3 key on
     the keypad to perform the SHOW TIME command. DEFAULT refers to
     the default state.

   2.  $ DEFINE/KEY PF1 "SHOW " /SET_STATE=GOLD/NOTERMINATE/ECHO
       %DCL-I-DEFKEY, DEFAULT key PF1 has been defined
       $ DEFINE/KEY PF1 " DEFAULT" /TERMINATE/IF_STATE=GOLD/ECHO
       %DCL-I-DEFKEY, GOLD key PF1 has been defined
       $ SHOW DEFAULT
       DISK1:[JOHN.TEST]

     In this example, the first DEFINE/KEY command defines the PF1
     key to be the string SHOW. The state is set to GOLD for the
     subsequent key. The /NOTERMINATE qualifier instructs the system
     not to process the string when the key is pressed. The second
     DEFINE/KEY command defines the use of the PF1 key when the
     keypad is in the GOLD state. When the keypad is in the GOLD
     state, pressing PF1 causes the current read to be terminated.

     If you press the PF1 key twice, the system displays and
     processes the SHOW DEFAULT command.

     The word DEFAULT in the second line of the example indicates
     that the PF1 key has been defined in the default state. Note
     the space before the word DEFAULT in the second DEFINE/KEY
     command. If the space is omitted, the system fails to recognize
     DEFAULT as the keyword for the SHOW command.


   3.  $ SET KEY/STATE=ONE
       %DCL-I-SETKEY, keypad state has been set to ONE
       $ DEFINE/KEY PF1 "ONE"
       %DCL-I-DEFKEY, ONE key PF1 has been defined
       $ DEFINE/KEY/IF_STATE=ONE PF1 "ONE"
       %DCL-I-DEFKEY, ONE key PF1 has been defined

     This example shows two ways to define the PF1 key to be "ONE"
     for state ONE.

     The second DEFINE/KEY command shows the preferred method for
     defining keys. This method eliminates the possibility of
     error by specifying the state in the same command as the key
     definition.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026