Media Robot Utility software (MRU) is a multiplatform utility for
    controlling robotic media loaders and libraries.  The MRU allows
    you to control operations at a very low level:  injecting and
    ejecting cartridges, loading and unloading cartridges, and showing
    status and attributes of robotic loaders and libraries.
                               CAUTION
    MRU provides no media management or cataloging capability.  Use
    MRU in a managed media environment with care.  Manipulating
    cartridges with MRU and without knowledge of the media management
    system could create inconsistency between the media management
    system's view and the physical status of the robot and cartridges.
1 – Privileges
    Privileges required to operate MRU software depend on the robot
    connection to the host.  This table outlines the privileges required
    for each of three different kinds of connections.
    Privilege   Direct Connect   HSJ Controller   DSSI
    Required    SCSI	        Connection	 Connection
    ---------   --------------   --------------   ----------
     SYSPRV	                      X
     PHY_IO	     X                X	              X
     DIAG	     X                X
     READALL		                              X
2 – Logical Names
                                   CAUTION
    Define logical names only within the context of a user process if you
    use any Compaq Storage Management Software product that includes the
    Media and Device Management Services (MDMS) software.
    If you use MDMS software and define any of these logicals so they are
    set for any MDMS process (i.e. any group or system logical table
    accessible by MDMS, you could cause failures in MDMS operations.
    $ DEFINE MRU_LOG file_name
       Creates a log file of MRU operations named file_name in the
       current default directory.  Deassign this logical if no log
       file is desired.
    $ DEFINE MRU_VERBOSE 1
       Provides more detailed information in response to some MRU
       commands. Deassign this logical to disable this feature.
       When enabled, this option captures reports SCSI Sense Data.
       You must refer to the media robot hardware documentation to
       interpret this data.
    $ DEFINE MRU_OLD_STATUS 1
       This causes MRU, Version 1.4-1 to exit using the Version 1.4
       exit status behavior; success or failure.
    $ DEFINE MRU_ROBOT robot_name
       Defines a default robot against which all commands are
       executed, unless a different robot is specified as a parameter
       to a command.  Deassign this logical if no default robot is
       needed.
    $ DEFINE MRU_WAIT n
       Defines the number of seconds delay you can tolerate
       waiting for a current robot operation to finish before
       taking action on a command you enter.  Deassign this
       logical if an indefinite wait is acceptable.
    $ DEFINE MRU_UNLOAD_DELAY n
       Defines the number of times that an unload operation is tried.
       An unload retry can take from one to approximately seven
       seconds to complete depending on the media robot.
       The default value is 180 attempts.  Define this logical if you
       want to change the number of unload attempts.
    $ DEFINE MRU_READY_DELAY n
       Defines the amount of time you will take to place a cartridge into
       a TL820 class ATL inport and close the inport door, after you issue
       the READY command.  If you fail to close the inport door within the
       specified time, MRU may report an error on the following command.
       The default value is 65 seconds.
    $ DEFINE MRU_CASE_SENSITIVE 1
       When defined to any value, this causes the volume tag comparisons
       used with the CARTRIDGE keyword to be made in a case senseitive
       manner.
    $ DEFINE MRU_OLD_STATUS 1
       When defined to any value, this causes the ROBOT command to revert
       to the exit status behavior present in V1.2; a single success status
       and a single failure status.
3 – Command Parameters
    When MRU executes commands, it examines the commands for the
    presence of parameters.  If you do not specify parameters to the
    keywords slot, drive, or port, MRU supplies defaults, usually
    assuming a value of 0.
    slot_number:    An integer value indicating a physical slot in
                    the media robot.
    drv_number:     An integer value indicating a physical drive in
                    the media robot.
    port_number:    An integer value indicating a physical port in
                    the media robot.
    robot_name:     The name for the media robot.
    cartridge_name: The name of the cartridge as identified by its
                    external label.
    In the MRU system, drive, slot, and port numbering begins with 0.
    The default value for DRIVE, PORT, and SLOT is 0.
4 – INJECT
    The INJECT command moves a cartridge from a port to a slot.
    Format
    INJECT [PORT port_number] SLOT slot_number [ROBOT robot_name]
4.1 – Parameters
    port_number - An integer value indicating the robot port.
    slot_number - An integer value indicating the robot slot.
    robot_name - The name for the media robot.
4.2 – Example
    The following MRU example injects a cartridge from the inport
    of a TL820 Automated Tape Library to slot 19:
    $ ROBOT INJECT PORT 0 SLOT 19 ROBOT $1$DUA0
5 – EJECT
    The EJECT command moves a cartridge from a slot to a port.
    The EJECT command also moves a cartridge from the PTM of a TL82n
    Automated Tape Library system.  The EJECT command used this way
    does not include a slot specification.
    Format (slot to port)
    EJECT SLOT slot_number [PORT port_number] [ROBOT robot_name]
    Format (PTM to port)
    EJECT [ROBOT robot_name] PORT [port_number]
5.1 – Parameters
    slot_number - An integer value indicating the robot slot.
    port_number - An integer value indicating the robot port.
    robot_name - The name for the media robot.
5.2 – Examples
    The following MRU example ejects a cartridge from slot 20 of
    a TL820 Automated Tape Library to the outport:
    $ ROBOT EJECT SLOT 20 PORT 1 ROBOT $1$DUA0
    The following example ejects a cartridge from the PTM of a TL820
    Automated Tape Library to the outport:
    $ ROBOT EJECT PORT 1 ROBOT $1$DUA0
6 – LOAD
    The LOAD command moves a cartridge from a slot into a drive.
    Format
     LOAD SLOT slot_num [DRIVE drv_num] [ROBOT robot_name]
6.1 – Parameters
    slot_num - An integer value indicating the robot slot.
    drv_num - An integer value indicating the physical drive
                   in the robot.
    robot_name - The name for the media robot.
6.2 – Example
    The following MRU example loads a cartridge from slot 1 to drive
    0 in the robot device GKA401:
    $ ROBOT LOAD SLOT 1 DRIVE 0 ROBOT GKA401
    LOADING SLOT 1 into DRIVE 0 using ROBOT GKA401
7 – UNLOAD
    The UNLOAD command moves a cartridge from a drive into a slot.
    Note:
       To unload a cartridge from a drive in a TL8xx Automated Tape Library,
       you must first dismount the media before issuing the DISMOUNT command
       with the /UNLOAD qualifier.
    Format
    UNLOAD [DRIVE drv_number] SLOT slot_number [ROBOT robot_name]
7.1 – Parameters
    drv_number - An integer value indicating the physical drive in the robot.
    slot_number - An integer value indicating the robot slot.
    robot_name - The name for the media robot.
7.2 – Examples
    1.  The following example unloads the cartridge from drive 0 and
        places the cartridge into slot 1 of robot device GKA401:
    $ ROBOT UNLOAD DRIVE 0 SLOT 1 ROBOT GKA401
    UNLOAD DRIVE 0 into SLOT 1 using ROBOT GKA401
    2.  The following example shows the commands to unload a cartridge
        from a drive in the TL820 library.
    $ DISMOUNT/UNLOAD $1$MUA22:
    $ ROBOT UNLOAD DRIVE 1 SLOT 15 ROBOT $1$DUA0
    UNLOAD DRIVE 1 into SLOT 15 using ROBOT $1$DUA0
8 – READY
    The READY command enables the inport door release button on the
    TL82n Automated Tape Library system.  The READY command allows
    you to place a cartridge into the inport prior to issuing the
    INJECT command.
    Format
    READY [port_number] [ROBOT robot_name]
8.1 – Parameters
       port_number - An integer value indicating the robot port.
       robot_name - The name for the media robot.
8.2 – Example
    The following MRU example enables the inport of a TL820 Automated
    Tape Library:
    $ ROBOT READY PORT 0 ROBOT $1$DUA0
9 – MOVE
    The MOVE command moves a cartridge from a source location to a destination.
    Allowable actions with the MOVE command are determined by the specific
    library or loader.
    Format
    MOVE {SLOT slot_number | DRIVE drv_number | PORT port_number}
         {SLOT slot_number | DRIVE drv_number | PORT port_number}
         [ROBOT robot_name]
9.1 – Parameters
    slot_number - An integer value indicating the robot slot.
    drv_number - An integer value indicating the physical drive in the robot.
    port_number - An integer value indicating the robot port.
    robot_name - The name for the media robot.
9.2 – Example
    The following MRU example moves a cartridge from a drive to the
    outport of a TL820 Automated Tape Library system:
    $ ROBOT MOVE DRIVE 1 PORT 1 $1$DUA0
10 – HOME
    The HOME command returns a cartridge from a specified location
    to its home (previous) location.
    NOTE:  The home position varies between different media robots.  To find
    out the home location on your media robot, consult your hardware
    documentation, or issue the command and observe the placement of the
    mechanism.
    Format
    HOME [ROBOT robot_name] {DRIVE drv_number | SLOT slot_number |
                             PORT port_number | TRANSPORT transport_number}
10.1 – Parameter
robot_name - The name for the media robot.
10.2 – Example
    The following MRU example places the mechanism to the home position
    in a tape library.
    $ ROBOT HOME ROBOT $1$DUA0
11 – POSITION
    The POSITION command positions the cartridge manipulation mechanism to
    the specified location.
    Format
    POSITION {SLOT slot_number | DRIVE drv_number | PORT port_number}
             [ROBOT robot_name]
11.1 – Parameter
    slot_number - An integer value indicating a physical slot in
                  the media robot.
    drv_number - An integer value indicating a physical drive in
                 the media robot.
    port_number - An integer value indicating a physical port in
                  the media robot.
    robot_name - The name for the media robot.
11.2 – Example
    The following MRU example places the mechanism slot 157 in
    a tape library.
    $ ROBOT POSITION SLOT 157 ROBOT $1$DUA1
12 – FIND_CARTRIDGE
    The FIND CARTRIDGE command locates a named cartridge in any media robot
    which includes a vision system.  If the named cartridge resides in the
    media robot, MRU software returns its location.
    NOTE:  This command uses the name on the external label affixed to the
    cartridge, it DOES NOT use the name of the recorded label on the medium.
    Format
    FIND CARTRIDGE {cartridge_name} [ROBOT robot_name]
12.1 – Parameter
    cartridge_name - The name of the external label on the cartridge.  The
    cartridge name parameter is case sensitive.
    robot_name - The name for the media robot.
12.2 – Example
    The following MRU example locates cartridge AQ1Z01 in a TL826 Automated
    Tape Library System.
    $ ROBOT FIND CARTRIDGE AQ1Z01 ROBOT $1$DUA0
    MRU V1.4-1 allows wildcard names for this command as in the
    following examples:
    $ ROBOT FIND CARTRIDGE {"?*"}
    This command shows all elements namely:
    - slots
    - drives
    - transports
    - ports
   that are full.
   $ ROBOT FIND CARTRIDGE {"*"}
   This command shows all slots, drives, transports and ports.
   Irrespective of whether they are full or empty this command
   shows all the elements available in the library.
13 – LOCK
    The LOCK command sends a SCSI Prevent Media Removal command
    to the media robot.  Consult your hardware documentation for
    a description of the results of this command for your
    particular media robot.
    Format
    LOCK [ROBOT robot_name]
13.1 – Parameter
robot_name - The name for the media robot.
13.2 – Example
    The following MRU example locks the door on a TLZ07 tape loader:
    $ ROBOT LOCK ROBOT GKA401
14 – UNLOCK
    The UNLOCK command sends a SCSI Allow Media Removal command to
    the media robot.  Consult your hardware documentation for a
    description of the results of this command for your particular
    media robot.
    Format
    UNLOCK [ROBOT robot_name]
14.1 – Parameter
robot_name - The name for the media robot.
14.2 – Example
    The following MRU example unlocks the door on a TLZ07 tape loader:
    $ ROBOT UNLOCK ROBOT GKA401
15 – RESERVE
    The RESERVE command sends a SCSI Reserve command to the media
    robot. This reserves the media robot for exclusive use on the
    host. This is useful in Fibre Channel environment where multiple
    hosts have access to same media robot. If a media robot is reserved
    on a host all other hosts will not be able to do any SCSI commands
    and they will get a message "SCSI Reservation Conflict".
    Format
    RESERVE [ROBOT robot_name]
15.1 – Parameter
robot_name - The name for the media robot.
15.2 – Example
    The following MRU example reserves the media robot($2$GGA1:)
    on the calling host for exclusive use in a Fibre Channel
    environment:
    $ ROBOT RESERVE ROBOT $2$GGA1:
16 – RELEASE
    The RELEASE command sends a SCSI Release command to the media
    robot. This releases the media robot from exclusive use on the
    host. This is used when a media robot is already Reserved and
    it is given from the same host which has reserved the media robot.
    Format
    RELEASE [ROBOT robot_name]
16.1 – Parameter
robot_name - The name for the media robot.
16.2 – Example
    The following MRU example releases the media robot from exclusive
    use. This is given from the same host which has Reserved the media
    robot:
    $ ROBOT RELEASE ROBOT $2$GGA1:
17 – INITIALIZE
    The INITIALIZE command inventories the robot and updates the MRU
    software's internal database of robot elements.  The time it takes
    to complete the operation depends on the size of the robot.  A
    small loader takes less time to inventory than does a multitower
    robot.
    Format
    INITIALIZE [ROBOT robot_name]
17.1 – Parameter
robot_name - The name for the media robot.
17.2 – Example
    The following MRU example inventories a TLZ07 tape loader:
    $ ROBOT INITIALIZE ROBOT GKA401
18 – SHOW
    The SHOW command displays information about a robot,and also
    displays specific information about slots, drives, ports, and the
    current version of MRU.
18.1 – ROBOT
    The SHOW ROBOT command displays information about the specified
    robot, including:
    o  Robot name
    o  Robot type
    o  Vendor model and firmware version
    o  maximum number of cartridge storage locations
    o  maximum number of drives
    o  maximum number of ports
    Format
    SHOW ROBOT [robot_name]
18.1.1 – Parameters
robot_name - The name for the media robot.
18.1.2 – Example
    The following example shows the status of a TZ media changer:
    $ ROBOT SHOW ROBOT
    Robot Name: GKA401 Type: SCSI
    Media Robot Identifier: DEC     TZ Media Changer9A28
    Slots:          5
    Drives:         1
    Inports:        0
    Outports:       0
    Transports:     1
18.2 – PORT
    The SHOW PORT command displays information about a port. The output
    includes the type of port and one of these possible states:
    o  Full or <barcode> -- The port contains a cartridge. The bar code
       value of the cartridge occupying the port appears if the media
       robot is capable of reading cartridge bar codes.
    o  Empty -- The port contains no cartridge and is available for
       use.
    o  Unavailable -- The port is unavailable for use.
    Format
    SHOW [ROBOT robot_name] PORT [[[port_number]|[port_number-port_number]],...]
18.2.1 – Parameters
    robot_name - The name for the media robot.
    port_number - An integer value indicating the robot port.
18.2.2 – Example
    The following example shows the ports of a TL820 Automated Tape
    Library system:
    $ ROBOT SHOW PORT ROBOT $1$DUA0
    PORT:		1		Empty   	OUTPORT
    PORT:		0		Empty   	INPORT
18.3 – SLOT
    The SHOW SLOT command shows the status of slots. One of these
    possible states is reported:
    o  Full or <barcode> -- The slot contains a cartridge. The bar code
       value of the cartridge occupying the slot appears if the media
       robot is capable of reading cartridge bar codes.
    o  Empty -- The slot contains no cartridge, and is available for
       use.
    o  Unavailable -- The slot is unavailable for use.
    Format
    SHOW [ROBOT robot_name] SLOT [[[slot_number]|[slot_number-slot_number]],...]
18.3.1 – Parameters
    robot_name - The name for the media robot.
    slot_number - An integer value indicating the robot slot.
18.3.2 – Examples
    1.  The following example shows the contents of separate slots:
    $ ROBOT SHOW SLOT 1,3
    SLOT:           1               Empty
    SLOT:           3               Full
    2.  The following example shows the contents of a range of slots:
    $ ROBOT SHOW SLOT 1-3
    SLOT:           1               Empty
    SLOT:           2               Full
    SLOT:           3               Full
18.4 – DRIVE
    The SHOW DRIVE command shows the status of drives. One of these
    possible states is reported:
    o  Full or <barcode> -- The drive contains a cartridge. The bar code
       value of the cartridge occupying the drive appears if the media
       robot is capable of reading cartridge bar codes.
    o  Empty -- The drive contains no cartridge, and is available for
       use.
    o  Unavailable -- The drive is unavailable for use.
    Format
    SHOW [ROBOT robot_name] DRIVE [[[drv_number]|[drv_number-drv_number]],...]
18.4.1 – Parameters
    robot_name - The name for the media robot.
    drv_number - An integer value indicating the physical drive in the robot.
18.4.2 – Example
    The following example shows the status of drive 0 in the default
    robot identified by the MRU_ROBOT logical:
    $ ROBOT SHOW DRIVE 0
    DRIVE:          0               Empty
18.5 – VERSION
    The SHOW VERSION command displays the software version of the
    Media Robot Utility software.
    Format
    SHOW VERSION
18.5.1 – Example
    The following example shows the version of the currently
    accessible MRU program:
    $ ROBOT SHOW VERSION
    StorageWorks Media Robot Utility V1.4-1
19 – HELP
    The HELP command displays information about the Media Robot
    Utility commands.
    Format
    HELP
19.1 – Example
    The following example shows the result of issuing the MRU HELP
    command:
    $ ROBOT HELP
    usage: robot command [ parameters ]
    Commands:    show, move, load, unload, eject, inject
                 lock, unlock, reserve, release, ready and
 		help
    Parameters:  robot device, slot #, drive #, port #
    Logicals:    MRU_LOG, MRU_VERBOSE, MRU_ROBOT, MRU_WAIT,
                 MRU_UNLOAD_DELAY, MRU_READY_DELAY
    EXAMPLE COMMANDS:
         Drives, slots and ports are numbered from 0.
         LOAD robot GKA1 drive 0 slot 3
         UNLOAD drive 0 slot 2 robot GKA1
         INJECT port 0 slot 4 robot $1$dua100
         EJECT robot $1$dua100 port 0 slot 4
         READY robot GKB5
         LOCK robot $1$dua100
         UNLOCK robot $1$dua100
         RESERVE robot $1$gga0
         RELEASE robot $1$gga0
         MOVE slot 5 drive 1 robot GKA1
    Other commands:
         SHOW robot, SHOW slot 4,
         SHOW robot $1$dua0 drive 2
         SHOW version
20 – Connectivity
Systems running under the OpenVMS operating system can connect to a media robot either directly, or through an SCSI or DSSI controller. If you connect through a controller with a DSSI interconnect, you need to be aware of some timing issues.
20.1 – Direct Connect SCSI Devices
  Use the following procedure to create a tape robot unit:
  1. For SCSI magazine loaders connected directly to an
  SCSI bus, enter the SYSGEN or SYSMAN command in the
  appropriate format:
  VAX system:
      $ MCR SYSGEN CONNECT GKannn:/DRIVER=GKDRIVER/NOADAPTER
  Alpha system:
      $ MCR SYSMAN IO CONNECT GKannn:/DRIVER=SYS$GKDRIVER/NOADAPTER
  Where:  GKannn: is the robot device name. The robot device
  name for a loader is always the same as the tape drive name
  incremented by one, and without any prefixes (allocation
  class or NODE$ prefix) to the GK string. For example, a
  tape drive name of $1$MKA200: could use a robot device
  name of GKA201:.
  2. Compaq recommends that you include the SYSGEN
  commands in your system startup command procedure.
20.2 – DLT and DAT Media Loaders
This information applies to TLZnx and TZ8nn classes of DLT and DAT loaders. DLT and DAT tape loaders treat their robotic devices and tape devices as logical units of the device target ID. The are four parts to the naming convention with this type of robotic loader: · The name begins with a prefix of MK for the tape device and GK for the robotic device. · The prefix is followed by a letter indicating the physical SCSI bus to which the device is connected to the host system. For devices connected to the first bus detected at boot time, the letter is A, for the second bus detected, B, and so on. · The next part is a number corresponding to the SCSI target ID. · The last part is a two-digit number corresponding to the SCSI target ID logical unit number. Because tape drives in a DLT or DAT loader are always at logical unit 0, the last two digits are 00. The last two digits for the robotic device are 01. MKA400 is the name of a tape device connected to the first SCSI bus seen at boot time, at target ID 4. GKA401 is the name of the robotic device, and the name of the robotic unit corresponding to the tape device MKA400.
20.3 – TL8nn Automated Libraries
This information applies to the TL81n, TL82n, and TL89n classes of libraries. With TL8nn tape libraries, the drives and robot units are separate. There are three parts to the naming convention for a TL8nn tape library: · The name begins with a prefix of MK for the tape device and GK for the robotic device. · The prefix is followed by a letter indicating the physical SCSI bus to which the device is connected to the host system. For devices connected to the first bus detected at boot time, the letter is A, for the second bus detected, B, and so on. · The next part is a number corresponding to the SCSI target ID. For example, with a TL810 library system with the robotic unit connected to the second bus detected at boot time at target ID 5, the name would be GKB500. When installing a TL8nn Automated Tape Library system, you need to keep track of the device names for the drives serviced by the particular robotic transport device. MRU software cannot unload a cartridge from a drive in a TL8nn Automated Tape Library system without first dismounting the cartridge. MRU software has no way of associating the drives with the robotic transport device. You must supply the device file name before unloading a cartridge.
20.4 – HSxnn Controller
When connecting a media robot to an HSJnn or HSDnn controller, you must associate the loader name with an internal passthrough name. After installing the media robot hardware, and connecting the cables between host, controller, and media robot, you can make the association at the controller console terminal. 1. Add the loader to the controller by identifying the loader name and SCSI port, target ID, and LUN. CLI> ADD LOADER loader_name p t l 2. Add the passthrough name to the controller, relating it to the loader name. CLI> ADD PASSTHROUGH pass_name loader_name 3. Add the unit name, relating it to the passthrough name. CLI> ADD UNIT unit_name pass_name This example shows the commands for connecting a TL810 Automated Tape Library system loader. The SCSI Port is 5, Target ID is 4, and LUN is 0. CLI> ADD LOADER TL810A 5 4 0 CLI> ADD PASSTHROUGH P810A TL810A CLI> ADD UNIT D810 P810A After establishing this connection, the OpenVMS system will show the device DUA810 with its allocation class. The MRU ROBOT name will be the OpenVMS allocation class name $1$DUA810.
20.5 – HSZxx Controller
[ Text to be provided later by our technical writer. ] The connection of a media changer to an HSZxx family controller is similar to the procedure used for the HSJxx and HSDxx. The main difference is that "ADD PASSTHROUGH" is used in place of the "ADD LOADER" command, but the port, target and logical numbers must be provided. The other difference is that pass- through device are associated with unit names beginning with the letter P instead of D. Example: For a four drive TL810 family library. CLI> ADD PASSTHROUGH TAPE0 5 2 0 CLI> ADD PASSTHROUGH TAPE1 5 3 0 CLI> ADD PASSTHROUGH TAPE2 5 4 0 CLI> ADD PASSTHROUGH TAPE3 5 5 0 CLI> ADD PASSTHROUGH TL810 5 6 0 CLI> ADD UNIT P0 TAPE0 CLI> ADD UNIT P100 TAPE1 CLI> ADD UNIT P200 TAPE2 CLI> ADD UNIT P300 TAPE3 CLI> ADD UNIT P1 TL810 For a single drive DLT loader with the loader at logical unit 1. CLI> ADD PASSTHROUGH DLTtape 6 1 0 CLI> ADD PASSTHROUGH LOADER 6 1 1 CLI> ADD UNIT P0 DLTtape CLI> ADD UNIT P1 LOADER
20.6 – DSSI Devices
  Command Completion Time
  Commands issued to robotic devices connected with a DSSI
  may take a minute or more to complete. The delays in
  command completion occur to properly synchronize the DSSI
  loader device.
  Manual TF8x7 Operations Can Stop Automated Operations
  The TF8x7 does not respond to Media Robot Utility system ROBOT LOAD
  and ROBOT UNLOAD operations after an operator manually unloads a
  cartridge. Other MRU status commands respond correctly.
  After a manual unload is executed, the ROBOT LOAD or ROBOT UNLOAD
  commands complete immediately and give no error messages.   The
  ROBOT SHOW DRIVE and ROBOT SHOW SLOT do properly reflect whether a
  cartridge is loaded in the drive or residing in the loader.
  The MRU software continues to provide proper status after manually
  loading and unloading various slots even though the MRU LOAD AND
  UNLOAD commands no longer execute properly.
  Restoring the communication path between the TF loader and  the
  operating system requires a complete re-initialization of the DSSI
  server embedded in the TF loader.  There are two ways in which this
  can be done.
  Cycle power to the TF loader:
      1. Turn power to the TF loader OFF
      2. Wait 10 seconds
      3. Turn power to the TF loader ON
  Execute the following command sequence either maually through DCL,
  or programatically:
      $ SET HOST/DUP/SERVER=MSCP$DUP/TASK=PARAMS xxxx
          (where xxxx is the DSSI NODE name of the TF loader)
      PARAMS> SET INITWATERMARK 100
      PARAMS> WRITE
      Parameter changes require controller initialization, ok?[Y/(N)] y
  Wait for the DSSI node to transition from HostUnavailable to Online
  (60 - 90 seconds).
20.7 – MUSL Verification
Verifying a MUSL Configuration You can use MRU to verify a successful Multi-Unit, Single LUN (MUSL) configuration. Use the SHOW ROBOT command to get information about the configuration: $robot show robot Scsi2:B0T2L2 Robot Name : Scsi2:B0T2L2 Type: SCSI Media Robot Identifier: DEC TL820 (C) DEC2A5A Slots: 176 Drives: 6 Inports: 1 Outports: 1 Transports: 2 MUSL control is available on firmware 2A5A or higher. This information appears on the Media Robot Identifier line of the SHOW ROBOT output. When MUSL is activated, the combined hardware units respond to a single medium changer unit. MRU shows this with a Transport count greater than 1.
21 – CLI Errors
When a CLI commands fails, a failure specific error status is returned. The value of this status can be interrogated in a DCL command procedure. Most of the possible errors are the result of failures in the MRU Application Programming Interface. A few errors are unique to the ROBOT command.
21.1 – CLI Specific Errors
21.1.1 – MRD_STATUS_CLI_COMMAND
Status Code %X07608282 Used when an unrecognized command is given on the command line. For example, there is no 'FRED' command. $ ROBOT FRED ROBOT $1$DUA704
21.1.2 – MRD_STATUS_CLI_PARAMETER
Status Code %X0760828A Used when an unrecognized parameter is given on the command line. For example, 'VAULT' has no relevance in this command: $ ROBOT SHOW ROBOT $1$DUA704 VAULT
21.1.3 – MRD_STATUS_CLI_BAD_ARG
Status Code %X07608292 Used for various errors where the argument to a parameter is wrong; a range where none is allowed, invalid element addresses, and similar errors. For example, 'RINGO' is a bad parameter for a slot spec- ification and the load command does not work with a range of slots or drives: $ ROBOT SHOW SLOT 7-RINGO $ ROBOT LOAD SLOT 3-4 DRIVE 1-2
21.1.4 – MRD_STATUS_CLI_NO_ROBOT
Status Code %X0760829A Used when the command does not include a robot name, and the default robot name is not known.
21.1.5 – MRD_STATUS_CLI_EXPECTS_PARAM
Status Code %X076082A2 Used when a command expects some parameter, and none was given. For example, this show command doesn't specify anything to show: $ ROBOT SHOW
21.1.6 – MRD_STATUS_CLI_EXPECTS_ARG
Status Code: %X076082AA Used when a command parameter expects some argument. For example, this show slot command does not specify which slot, or slots, to show: $ ROBOT SHOW SLOT
21.1.7 – MRD_STATUS_CLI_MANY
Status Code: %X076082B2 Used when a parameter accepts a default, but there are multiple elements that apply. The robot LOAD command allows a default drive, if there is only one drive in the robot. However, if there are two or more drives in the robot, you get this error. For example with a TL810, a robot with four drives, the following command fails with this error status: $ ROBOT LOAD SLOT 15 This error code is also used when multiple parameters are given and fewer are allowed: $ ROBOT POSITION SLOT 5 DRIVE 7
21.2 – Mapping CLI to MRD Errors
The ROBOT$_ codes translate to the listed values and the MRD_STATUS codes. The MRD_STATUS codes are documented with the MRD API calls from which they can be reported. Use HELP ROBOT MRD to find help for the calls. ROBOT$_FACILITY 1888 MRD_STATUS_FACILITY ROBOT$_INVALID %X0760800A MRD_STATUS_INVALID ROBOT$_SUCCESS %X07608011 MRD_STATUS_SUCCESS ROBOT$_NO_SENSE %X0760801A MRD_STATUS_NO_SENSE ROBOT$_RECOVERED_ERROR %X07608022 MRD_STATUS_RECOVERED_ERROR ROBOT$_ROBOT_NOT_READY %X0760802A MRD_STATUS_ROBOT_NOT_READY ROBOT$_MEDIUM_ERROR %X07608032 MRD_STATUS_MEDIUM_ERROR ROBOT$_ROBOT_HW_ERROR %X0760803A MRD_STATUS_ROBOT_HW_ERROR ROBOT$_ROBOT_ILLEGAL_REQUEST %X07608042 MRD_STATUS_ROBOT_ILLEGAL_REQUEST ROBOT$_ROBOT_ATTENTION %X0760804A MRD_STATUS_ROBOT_ATTENTION ROBOT$_DATA_PROTECT %X07608052 MRD_STATUS_DATA_PROTECT ROBOT$_BLANK_CHECK %X0760805A MRD_STATUS_BLANK_CHECK ROBOT$_VENDOR_UNIQUE_ERROR %X07608062 MRD_STATUS_VENDOR_UNIQUE_ERROR ROBOT$_COPY_ABORTED %X0760806A MRD_STATUS_COPY_ABORTED ROBOT$_SENSE_EQUAL %X07608072 MRD_STATUS_SENSE_EQUAL ROBOT$_ROBOT_CMD_ABORTED %X0760807A MRD_STATUS_ROBOT_CMD_ABORTED ROBOT$_VOLUME_OVERFLOW %X07608082 MRD_STATUS_VOLUME_OVERFLOW ROBOT$_MISCOMPARE %X0760808A MRD_STATUS_MISCOMPARE ROBOT$_SENSE_RESERVED %X07608092 MRD_STATUS_SENSE_RESERVED ROBOT$_ROBOT_COMM_ERROR %X0760809A MRD_STATUS_ROBOT_COMM_ERROR ROBOT$_ROBOT_MECH_ERROR %X076080A2 MRD_STATUS_ROBOT_MECH_ERROR ROBOT$_ROBOT_DOOR_OPENED %X076080AA MRD_STATUS_ROBOT_DOOR_OPENED ROBOT$_STARTUP_ERROR %X076080B2 MRD_STATUS_STARTUP_ERROR ROBOT$_CANCEL %X076080BA MRD_STATUS_CANCEL ROBOT$_CMD_NOT_SUPPORTED %X076080C2 MRD_STATUS_CMD_NOT_SUPPORTED ROBOT$_SOURCE_EMPTY %X076080CA MRD_STATUS_SOURCE_EMPTY ROBOT$_DESTINATION_FULL %X076080D2 MRD_STATUS_DESTINATION_FULL ROBOT$_CART_INVALID %X076080DA MRD_STATUS_CART_INVALID ROBOT$_CART_DAMAGED %X076080E2 MRD_STATUS_CART_DAMAGED ROBOT$_CART_NOT_AVAIL %X076080EA MRD_STATUS_CART_NOT_AVAIL ROBOT$_CART_ALRDY_LOADED %X076080F2 MRD_STATUS_CART_ALRDY_LOADED ROBOT$_CART_SIDE_INVALID %X076080FA MRD_STATUS_CART_SIDE_INVALID ROBOT$_DEVICE_INVALID %X07608102 MRD_STATUS_DEVICE_INVALID ROBOT$_DEVICE_DAMAGED %X0760810A MRD_STATUS_DEVICE_DAMAGED ROBOT$_DEVICE_FULL %X07608112 MRD_STATUS_DEVICE_FULL ROBOT$_DEVICE_EMPTY %X0760811A MRD_STATUS_DEVICE_EMPTY ROBOT$_VOLUME_VALID %X07608122 MRD_STATUS_VOLUME_VALID ROBOT$_VOLUME_MOUNTED %X0760812A MRD_STATUS_VOLUME_MOUNTED ROBOT$_ELEMENT_INVALID %X07608132 MRD_STATUS_ELEMENT_INVALID ROBOT$_INVALID_TYPE %X0760813A MRD_STATUS_INVALID_TYPE ROBOT$_SLOT_INVALID %X07608142 MRD_STATUS_SLOT_INVALID ROBOT$_PORT_INVALID %X0760814A MRD_STATUS_PORT_INVALID ROBOT$_CELL_INVALID %X07608152 MRD_STATUS_CELL_INVALID ROBOT$_PORT_FULL %X0760815A MRD_STATUS_PORT_FULL ROBOT$_PORT_EMPTY %X07608162 MRD_STATUS_PORT_EMPTY ROBOT$_CELL_FULL %X0760816A MRD_STATUS_CELL_FULL ROBOT$_CELL_EMPTY %X07608172 MRD_STATUS_CELL_EMPTY ROBOT$_SLOT_FULL %X0760817A MRD_STATUS_SLOT_FULL ROBOT$_SLOT_EMPTY %X07608182 MRD_STATUS_SLOT_EMPTY ROBOT$_AUTOCLEAN %X0760818A MRD_STATUS_AUTOCLEAN ROBOT$_RES_FAILED %X07608192 MRD_STATUS_RES_FAILED ROBOT$_INSFMEM %X0760819A MRD_STATUS_INSFMEM ROBOT$_NO_ELEMENTS %X076081A2 MRD_STATUS_NO_ELEMENTS ROBOT$_ACCVIO %X076081AA MRD_STATUS_ACCVIO ROBOT$_DEVOFFLINE %X076081B2 MRD_STATUS_DEVOFFLINE ROBOT$_EXQUOTA %X076081BA MRD_STATUS_EXQUOTA ROBOT$_ILLEFC %X076081C2 MRD_STATUS_ILLEFC ROBOT$_IVCHAN %X076081CA MRD_STATUS_IVCHAN ROBOT$_NOPRIV %X076081D2 MRD_STATUS_NOPRIV ROBOT$_UNASEFC %X076081DA MRD_STATUS_UNASEFC ROBOT$_MOUNTED %X076081E2 MRD_STATUS_MOUNTED ROBOT$_NO_SUCH_DEVICE %X076081EA MRD_STATUS_NO_SUCH_DEVICE ROBOT$_EBUSY %X076081F2 MRD_STATUS_EBUSY ROBOT$_EINTR %X076081FA MRD_STATUS_EINTR ROBOT$_EIO %X07608202 MRD_STATUS_EIO ROBOT$_ENOENT %X0760820A MRD_STATUS_ENOENT ROBOT$_EACCES %X07608212 MRD_STATUS_EACCES ROBOT$_EINVAL %X0760821A MRD_STATUS_EINVAL ROBOT$_EBADF %X07608222 MRD_STATUS_EBADF ROBOT$_OS_ERROR %X0760822A MRD_STATUS_OS_ERROR ROBOT$_PARAM %X07608232 MRD_STATUS_PARAM ROBOT$_TRANSPORT_INVALID %X0760823A MRD_STATUS_TRANSPORT_INVALID ROBOT$_NO_VISION %X07608242 MRD_STATUS_NO_VISION ROBOT$_RES_INVALID %X0760824A MRD_STATUS_RES_INVALID ROBOT$_SOURCE_INVALID %X07608252 MRD_STATUS_SOURCE_INVALID ROBOT$_PORT_ACCESSED %X0760825A MRD_STATUS_PORT_ACCESSED ROBOT$_CART_NOT_FOUND %X07608262 MRD_STATUS_CART_NOT_FOUND ROBOT$_BAD_DATES %X0760826A MRD_STATUS_BAD_DATES ROBOT$_PAGE_CODE %X07608272 MRD_STATUS_PAGE_CODE ROBOT$_NOT_CHANGER %X0760827A MRD_STATUS_NOT_CHANGER ROBOT$_CLI_COMMAND %X07608282 ROBOT$_CLI_PARAMETER %X0760828A ROBOT$_CLI_BAD_ARG %X07608292 ROBOT$_CLI_NO_ROBOT %X0760829A ROBOT$_CLI_EXPECTS_PARAM %X076082A2 ROBOT$_CLI_EXPECTS_ARG %X076082AA ROBOT$_CLI_MANY %X076082B2 ROBOT$_SCSI_CHECK %X076082BA MRD_STATUS_SCSI_CHECK ROBOT$_SCSI_CONDMET %X076082C2 MRD_STATUS_SCSI_CONDMET ROBOT$_SCSI_BUSY %X076082CA MRD_STATUS_SCSI_BUSY ROBOT$_SCSI_INTER %X076082D2 MRD_STATUS_SCSI_INTER ROBOT$_SCSI_INTER_CONDMET %X076082DA MRD_STATUS_SCSI_INTER_CONDMET ROBOT$_SCSI_RESCON %X076082E2 MRD_STATUS_SCSI_RESCON ROBOT$_SCSI_TERM %X076082EA MRD_STATUS_SCSI_TERM ROBOT$_SCSI_QUEUE %X076082F2 MRD_STATUS_SCSI_QUEUE ROBOT$_SCSI_RESERVED %X076082FA MRD_STATUS_SCSI_RESERVED ROBOT$_INIT_REQUIRED %X07608302 MRD_STATUS_INIT_REQUIRED ROBOT$_DIAG_FAILED %X0760830A MRD_STATUS_DIAG_FAILED ROBOT$_IDE %X07608312 MRD_STATUS_IDE ROBOT$_OPERATOR %X0760831A MRD_STATUS_OPERATOR ROBOT$_LOG_ERROR %X07608322 MRD_STATUS_LOG_ERROR ROBOT$_ELOG_OVERFLOW %X0760832A MRD_STATUS_ELOG_OVERFLOW ROBOT$_SYNC_XFER_ERROR %X07608332 MRD_STATUS_SYNC_XFER_ERROR