1  ROBOT

   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. 

2  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.

2  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.

2  INJECT

   The INJECT command moves a cartridge from a port to a slot.

   Format

   INJECT [PORT port_number] SLOT slot_number [ROBOT robot_name]
 

3  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.
 

3  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


2  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]

3  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.
 

3  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

   
2  LOAD

   The LOAD command moves a cartridge from a slot into a drive.

   Format

    LOAD SLOT slot_num [DRIVE drv_num] [ROBOT robot_name] 

3  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.
 

3  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
 

2  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]
 

3  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.
 

3  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


2  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]

3  Parameters

      port_number - An integer value indicating the robot port.

      robot_name - The name for the media robot.

3  Example

   The following MRU example enables the inport of a TL820 Automated
   Tape Library:

   $ ROBOT READY PORT 0 ROBOT $1$DUA0
   
2  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]

3  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.

3  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


2  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}

3  Parameter

   robot_name - The name for the media robot.   

3  Example

   The following MRU example places the mechanism to the home position
   in a tape library.

   $ ROBOT HOME ROBOT $1$DUA0

2  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]

3  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.   
   

3  Example

   The following MRU example places the mechanism slot 157 in 
   a tape library.

   $ ROBOT POSITION SLOT 157 ROBOT $1$DUA1


2  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]

3  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.   

3  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.


2  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]

3  Parameter

   robot_name - The name for the media robot.   

3  Example

   The following MRU example locks the door on a TLZ07 tape loader:

   $ ROBOT LOCK ROBOT GKA401


2  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]

3  Parameter

   robot_name - The name for the media robot.   

3  Example

   The following MRU example unlocks the door on a TLZ07 tape loader:

   $ ROBOT UNLOCK ROBOT GKA401


2  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]


3  Parameter

   robot_name - The name for the media robot.

3  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:


2  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]


3  Parameter

   robot_name - The name for the media robot.

3  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:
   

2  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]

3  Parameter

   robot_name - The name for the media robot.   

3  Example

   The following MRU example inventories a TLZ07 tape loader:

   $ ROBOT INITIALIZE ROBOT GKA401


2  SHOW

   The SHOW command displays information about a robot,and also
   displays specific information about slots, drives, ports, and the
   current version of MRU.


3  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]
 

4  Parameters

   robot_name - The name for the media robot.
 

4  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


3  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]],...]
 

4  Parameters

   robot_name - The name for the media robot.

   port_number - An integer value indicating the robot port.

4  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


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]],...]
 

4  Parameters

   robot_name - The name for the media robot.

   slot_number - An integer value indicating the robot slot.

4  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

3  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]],...] 
 

4  Parameters

   robot_name - The name for the media robot.

   drv_number - An integer value indicating the physical drive in the robot.

4  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  

3  VERSION

   The SHOW VERSION command displays the software version of the
   Media Robot Utility software.

   Format

   SHOW VERSION
 

4  Example

   The following example shows the version of the currently
   accessible MRU program:

   $ ROBOT SHOW VERSION
   StorageWorks Media Robot Utility V1.4-1

2  HELP

   The HELP command displays information about the Media Robot
   Utility commands.

   Format

   HELP
 

3  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

2 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.

3 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.

3 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.

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.

3 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.

3 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
 
3 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).

3 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.
 
2 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.

3 CLI_Specific_Errors

4 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

4 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

4 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

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.

4 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

4 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 

4 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

3 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