



                  










                          Tape Mass Storage Control Protocol

                             ECO Controlled Version 2.0.2

                                    8 November 1987


                    Send all inquiries and comments to COOKIE::SSAG





               This document  defines  the  Tape  aspect  of  the  Mass
               Storage Control Protocol (MSCP).












              DIGITAL EQUIPMENT CORPORATION CONFIDENTIAL AND PROPRIETARY

               This  document  is  an  unpublished  work  and  contains
               valuable   trade  secrets  which  are  confidential  and
               proprietary to Digital Equipment  Corporation,  and  may
               only be disclosed to individuals who have entered into a
               confidentiality agreement with Digital, and may  not  be
               copied or reproduced in whole or in part.

               Copyright (c) Digital Equipment Corporation 1982,  1983,
               1984, 1985, 1986, 1987.  All Rights Reserved.





                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           CONTENTS                                                  Page ii
                                                             8 November 1987


                                           CONTENTS



           CHAPTER 1       INTRODUCTION

                   1.1     Scope  . . . . . . . . . . . . . . . . . . .  1-1
                   1.2     References . . . . . . . . . . . . . . . . .  1-1
                   1.2.1     MSCP Specification . . . . . . . . . . . .  1-1
                   1.2.1.1     Table Of Contents Abstract . . . . . . .  1-1
                   1.2.2     STI Specification  . . . . . . . . . . . .  1-3


           CHAPTER 2       TERMINOLOGY


           CHAPTER 3       TMSCP GENERAL OPERATIONAL CHARACTERISTICS

                   3.1     Unit States  . . . . . . . . . . . . . . . .  3-1
                   3.1.1     Unit Offline . . . . . . . . . . . . . . .  3-1
                   3.1.2     Unit Available . . . . . . . . . . . . . .  3-1
                   3.1.3     Unit Online  . . . . . . . . . . . . . . .  3-1
                   3.1.4     Exclusive Access Of A Unit . . . . . . . .  3-1
                   3.1.5     Unit Operating Beyond EOT  . . . . . . . .  3-1
                   3.1.6     Unit Position Lost . . . . . . . . . . . .  3-1
                   3.1.7     Unit Serious Exception Pending . . . . . .  3-2
                   3.1.8     Unit Cached Data Lost  . . . . . . . . . .  3-2
                   3.2     Command Categories And Execution Order . . .  3-2
                   3.2.1     Lengthy Command Considerations . . . . . .  3-2
                   3.2.1.1     Synchronous Vs Asynchronous  . . . . . .  3-2
                   3.2.1.2     Abort  . . . . . . . . . . . . . . . . .  3-3
                   3.3     Tape Motion Command Operation  . . . . . . .  3-6
                   3.3.1     "read" Type  . . . . . . . . . . . . . . .  3-6
                   3.3.1.1     Direction  . . . . . . . . . . . . . . .  3-6
                   3.3.1.2     BOT Handling . . . . . . . . . . . . . .  3-6
                   3.3.1.3     EOT Handling . . . . . . . . . . . . . .  3-7
                   3.3.1.4     Tape Mark Handling . . . . . . . . . . .  3-7
                   3.3.2     "write" Type . . . . . . . . . . . . . . .  3-7
                   3.3.2.1     Direction  . . . . . . . . . . . . . . .  3-7
                   3.3.2.2     BOT Handling . . . . . . . . . . . . . .  3-7
                   3.3.2.3     EOT Handling . . . . . . . . . . . . . .  3-8
                   3.3.2.4     Tape Mark Handling . . . . . . . . . . .  3-8
                   3.3.3     "ancillary" Type . . . . . . . . . . . . .  3-8
                   3.3.3.1     Direction  . . . . . . . . . . . . . . .  3-8
                   3.3.3.2     BOT Handling . . . . . . . . . . . . . .  3-8
                   3.3.3.3     EOT Handling . . . . . . . . . . . . . .  3-8
                   3.3.3.4     Tape Mark Handling . . . . . . . . . . .  3-8
                   3.4     Data Transfer Operations . . . . . . . . . .  3-8
                   3.4.1     Record Length  . . . . . . . . . . . . . .  3-9
                   3.4.2     Tape Format Employed . . . . . . . . . . .  3-9


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           CONTENTS                                                 Page iii
                                                             8 November 1987


                   3.4.3     Host Buffer Access . . . . . . . . . . . . 3-10
                   3.4.3.1     WRITE Command  . . . . . . . . . . . . . 3-10
                   3.4.3.2     READ Command . . . . . . . . . . . . . . 3-10
                   3.4.3.2.1     Forward Direction  . . . . . . . . . . 3-11
                   3.4.3.2.2     Reverse Direction  . . . . . . . . . . 3-11
                   3.4.3.3     ACCESS Command . . . . . . . . . . . . . 3-11
                   3.4.3.4     Compare Operations . . . . . . . . . . . 3-11
                   3.4.4     End Message Byte Count Fields  . . . . . . 3-12
                   3.5     General Error Processing . . . . . . . . . . 3-12
                   3.5.1     Reporting Precedence . . . . . . . . . . . 3-12
                   3.5.2     Serious Exception Handling . . . . . . . . 3-13
                   3.5.3     Position Lost Handling . . . . . . . . . . 3-16
                   3.5.4     Asynchronous Completion Handling Of 
                             Non-Data Transfer Commands . . . . . . . . 3-16
                   3.5.5     Data Error Recovery  . . . . . . . . . . . 3-17
                   3.5.5.1     Suppression  . . . . . . . . . . . . . . 3-18
                   3.5.5.2     Enhanced Write Error Recovery  . . . . . 3-18
                   3.5.6     Error Log Requirements . . . . . . . . . . 3-19
                   3.6     Tape Caching . . . . . . . . . . . . . . . . 3-19
                   3.6.1     Write-Back Caching . . . . . . . . . . . . 3-20
                   3.6.1.1     Unit Flag Conflicts  . . . . . . . . . . 3-23
                   3.6.1.2     Command Modifier Conflicts . . . . . . . 3-23
                   3.6.1.3     Error And Exception Handling . . . . . . 3-23
                   3.6.1.4     Cached Data Lost Handling  . . . . . . . 3-25
                   3.6.2     Read-Ahead Caching . . . . . . . . . . . . 3-28
                   3.6.2.1     Unit Flag Conflicts  . . . . . . . . . . 3-29
                   3.6.2.2     Command Modifier Conflicts . . . . . . . 3-29
                   3.6.2.3     Error Handling . . . . . . . . . . . . . 3-30


           CHAPTER 4       TMSCP MESSAGE OVERVIEW

                   4.1     Tape MSCP Functions Having No Disk MSCP 
                           Counterparts . . . . . . . . . . . . . . . .  4-1
                   4.2     Identical Disk And Tape MSCP Functions . . .  4-1
                   4.3     Tape Specific MSCP Commands And Responses  .  4-1
                   4.4     Generic Command Message Format . . . . . . .  4-2
                   4.4.1     Command Modifiers  . . . . . . . . . . . .  4-2
                   4.5     End Message Format . . . . . . . . . . . . .  4-3
                   4.5.1     Flags  . . . . . . . . . . . . . . . . . .  4-3
                   4.5.2     Status . . . . . . . . . . . . . . . . . .  4-3
                   4.5.3     Status Codes . . . . . . . . . . . . . . .  4-4
                   4.5.4     Byte Count (Host Transfer) . . . . . . . .  4-7
                   4.5.5     Byte Count (Tape Record) . . . . . . . . .  4-8
                   4.5.6     Position (Object Count)  . . . . . . . . .  4-8


           CHAPTER 5       TMSCP COMMAND DESCRIPTIONS

                   5.1     ACCESS Command . . . . . . . . . . . . . . .  5-1


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           CONTENTS                                                  Page iv
                                                             8 November 1987


                   5.1.1     Command Message Format . . . . . . . . . .  5-1
                   5.1.2     End Message Format . . . . . . . . . . . .  5-2
                   5.1.3     Description  . . . . . . . . . . . . . . .  5-4
                   5.2     AVAILABLE Command  . . . . . . . . . . . . .  5-5
                   5.2.1     Command Message Format . . . . . . . . . .  5-5
                   5.2.2     End Message Format . . . . . . . . . . . .  5-6
                   5.2.3     Description  . . . . . . . . . . . . . . .  5-8
                   5.3     COMPARE HOST DATA Command  . . . . . . . . .  5-9
                   5.3.1     Command Message Format . . . . . . . . . .  5-9
                   5.3.2     End Message Format . . . . . . . . . . . . 5-10
                   5.3.3     Description  . . . . . . . . . . . . . . . 5-12
                   5.4     ERASE Command  . . . . . . . . . . . . . . . 5-13
                   5.4.1     Command Message Format . . . . . . . . . . 5-13
                   5.4.2     End Message Format . . . . . . . . . . . . 5-14
                   5.4.3     Description  . . . . . . . . . . . . . . . 5-15
                   5.5     ERASE GAP Command  . . . . . . . . . . . . . 5-16
                   5.5.1     Command Message Format . . . . . . . . . . 5-16
                   5.5.2     End Message Format . . . . . . . . . . . . 5-17
                   5.5.3     Description  . . . . . . . . . . . . . . . 5-18
                   5.6     FLUSH Command  . . . . . . . . . . . . . . . 5-19
                   5.6.1     Command Message Format . . . . . . . . . . 5-19
                   5.6.2     End Message Format . . . . . . . . . . . . 5-20
                   5.6.3     Description  . . . . . . . . . . . . . . . 5-22
                   5.7     GET UNIT STATUS Command  . . . . . . . . . . 5-23
                   5.7.1     Command Message Format . . . . . . . . . . 5-23
                   5.7.2     End Message Format . . . . . . . . . . . . 5-24
                   5.7.3     Description  . . . . . . . . . . . . . . . 5-33
                   5.8     ONLINE Command . . . . . . . . . . . . . . . 5-34
                   5.8.1     Command Message Format . . . . . . . . . . 5-34
                   5.8.2     End Message Format . . . . . . . . . . . . 5-36
                   5.8.3     Description  . . . . . . . . . . . . . . . 5-39
                   5.9     READ Command . . . . . . . . . . . . . . . . 5-40
                   5.9.1     Command Message Format . . . . . . . . . . 5-40
                   5.9.2     End Message Format . . . . . . . . . . . . 5-41
                   5.9.3     Description  . . . . . . . . . . . . . . . 5-43
                   5.10    REPOSITION Command . . . . . . . . . . . . . 5-44
                   5.10.1    Command Message Format . . . . . . . . . . 5-44
                   5.10.2    End Message Format . . . . . . . . . . . . 5-46
                   5.10.3    Description  . . . . . . . . . . . . . . . 5-48
                   5.11    SET UNIT CHARACTERISTICS Command . . . . . . 5-56
                   5.11.1    Command Message Format . . . . . . . . . . 5-56
                   5.11.2    End Message Format . . . . . . . . . . . . 5-61
                   5.11.3    Description  . . . . . . . . . . . . . . . 5-64
                   5.12    WRITE Command  . . . . . . . . . . . . . . . 5-65
                   5.12.1    Command Message Format . . . . . . . . . . 5-65
                   5.12.2    End Message Format . . . . . . . . . . . . 5-67
                   5.12.3    Description  . . . . . . . . . . . . . . . 5-69
                   5.13    WRITE TAPE MARK Command  . . . . . . . . . . 5-70
                   5.13.1    Command Message Format . . . . . . . . . . 5-70
                   5.13.2    End Message Format . . . . . . . . . . . . 5-71


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           CONTENTS                                                   Page v
                                                             8 November 1987


                   5.13.3    Description  . . . . . . . . . . . . . . . 5-73


           CHAPTER 6       TMSCP ERROR LOG MESSAGES

                   6.1     TMSCP Error Log Message Format . . . . . . .  6-1
                   6.1.1     Tape Errors  . . . . . . . . . . . . . . .  6-3
                   6.1.2     STI Communication Or Command Failures  . .  6-5
                   6.1.3     STI Formatter Error Log  . . . . . . . . .  6-6
                   6.1.4     STI Drive Error Log  . . . . . . . . . . .  6-7


           APPENDIX A      OPCODE, FLAG AND OFFSET DEFINITIONS


           APPENDIX B      STATUS AND EVENT CODE DEFINITIONS


           APPENDIX C      MISCELLANEOUS TABLES

                           Table C-1: Tape Format Flag Values . . . . .  C-1
                           Table C-2: Tape Format Bitflag Values  . . .  C-2
                           Table C-3: Controller Specific Maximum Record 
                           Size . . . . . . . . . . . . . . . . . . . .  C-3
                           Table C-4: Format Specific Long Gap Values .  C-3


           APPENDIX D      REPOSITION COMMAND VARIATIONS


           APPENDIX E      WAIVERS AND EXCEPTIONS

                   E.1     TU81 . . . . . . . . . . . . . . . . . . . .  E-1
                   E.1.1     "EOT Encountered" Status Subcode . . . . .  E-1
                   E.1.2     "Serious Exception" And "EOT Encountered"   E-1
                   E.1.3     "Byte Count (Host Transfer)" On Read 
                             Reverse  . . . . . . . . . . . . . . . . .  E-1
                   E.2     TK50 . . . . . . . . . . . . . . . . . . . .  E-2
                   E.2.1     Incorrect Command Processing While Position 
                             Lost . . . . . . . . . . . . . . . . . . .  E-2
                   E.2.2     COMPARE HOST DATA Error Reporting  . . . .  E-3
                   E.2.3     Incorrect "Offline" Error Reporting  . . .  E-3
                   E.2.4     Progress Indicator Processing  . . . . . .  E-3
                   E.2.5     Multiple Error Logs Reported . . . . . . .  E-4
                   E.2.6     Invalid "Records Skipped Count"  . . . . .  E-4
                   E.2.7     Hardware Serial Number . . . . . . . . . .  E-5






                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           CONTENTS                                                  Page vi
                                                             8 November 1987
                                                                            

           APPENDIX F      REVISION HISTORY

                   F.1     Changes Since Version 1.6  . . . . . . . . .  F-1
                   F.2     Changes Since Version 1.6.4  . . . . . . . .  F-2
	|          F.3     Changes Since Version 2.0.0  . . . . . . . .  F-3


           TABLES

                   A-1     Control Message Opcodes  . . . . . . . . . .  A-1
                   A-2     Command Modifiers  . . . . . . . . . . . . .  A-3
                   A-3     End Message Flags  . . . . . . . . . . . . .  A-4
                   A-4     Controller Flags . . . . . . . . . . . . . .  A-4
                   A-5     Unit Flags . . . . . . . . . . . . . . . . .  A-5
                   A-6     Command Message Offsets  . . . . . . . . . .  A-6
                   A-7     End and Attention Message Offsets  . . . . .  A-7
                   A-8     Error Log Message Offsets  . . . . . . . . .  A-9
                   A-9     Error Log Message Format Codes . . . . . . . A-11
                   A-10    Error Log Message Flags  . . . . . . . . . . A-11
                   A-11    Access Nonvolatile Memory Command Operation 
                           Codes  . . . . . . . . . . . . . . . . . . . A-11
                   B-1     Status and Event Codes . . . . . . . . . . .  B-2
                   B-2     Status Only Subcode Values . . . . . . . . .  B-3
                   B-3     "Compare Error" Status or Event Subcode 
                           Values . . . . . . . . . . . . . . . . . . .  B-5
                   B-4     "Data Error" Status or Event Subcode Values   B-5
                   B-5     "Host Buffer Access Error" Status or Event 
                           Subcode Values . . . . . . . . . . . . . . .  B-5
                   B-6     "Controller Error" Status or Event Subcode 
                           Values . . . . . . . . . . . . . . . . . . .  B-6
                   B-7     "Drive Error" Status or Event Subcode Values  B-7
                   B-8     "Formatter Error" Status or Event Subcode 
                           Values . . . . . . . . . . . . . . . . . . .  B-7
                   B-9     "Message From An Internal Diagnostic" Event 
                           Only Subcode Values  . . . . . . . . . . . .  B-7
                   C-1     Tape Format Flag Values  . . . . . . . . . .  C-1
                   C-2     Tape Format Bitflag Values . . . . . . . . .  C-2
                   C-3     Controller Specific Maximum Record Size  . .  C-3
                   C-4     Format Specific Long Gap Values  . . . . . .  C-3
                   D-1     REPOSITION Command Variations  . . . . . . .  D-1












                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           INTRODUCTION                                             Page 1-1
                                                             8 November 1987


     1                                 CHAPTER 1

     2                               INTRODUCTION


     3     1.1  Scope

     4     This  document  defines  the  Tape  Class  Mass  Storage  Control
     5     Protocol  (TMSCP), a magnetic tape applications protocol intended
     6     for use with  intelligent  mass  storage  controllers.   Although
     7     Magnetic Tape Class Devices possess operation strategies inherent
     8     to themselves, the architecture of TMSCP is not  autonomous,  but
     9     rather  conforms  to  the overall philosophy defined in the "Mass
    10     Storage Control Protocol" specification, hereinafter referred  to
    11     as MSCP.

    12     1.2  References

    13     1.2.1  MSCP Specification

    14     The  MSCP  specification  is  necessary  to   gain   a   complete
    15     understanding  of  TMSCP  and its relationship to the overall I/O
    16     architecture.   Numerous  areas  have  been  omitted  from   this
    17     document  since they are fully defined in MSCP.  The next section
    18     contains an abstract of the Table of Contents of  ECO  controlled
    19     MSCP  Version  1.3  to aid in referencing particular subjects not
    20     fully defined in this document.

    21     1.2.1.1  Table Of Contents Abstract

    22             CHAPTER 1       INTRODUCTION
    23             1.1     Overview Of MSCP Subsystem
    24             1.2     Purpose
    25             1.3     Method Of Presentation
    26             1.4     Scope

    27             CHAPTER 2       TERMINOLOGY

    28             CHAPTER 3       CLASS DRIVER / MSCP SERVER COMMUNICATIONS
    29             3.1     Connection
    30             3.2     Flow Control
    31             3.3     Multihost Communication

    32             CHAPTER 4       ALGORITHMS AND USAGE RULES
    33             4.1     Controller States
    34             4.2     Controls And Indicators
    35             4.3     Unit States
    36             4.4     Unit Numbers
    37             4.5     Command Categories And Execution Order
    38             4.6     Class Driver / MSCP Server Synchronization


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           INTRODUCTION                                             Page 1-2
           References                                        8 November 1987


     1             4.7     Class Driver Error Recovery
     2             4.8     Serious Exceptions
     3             4.9     Host Access Timeouts
     4             4.10    Command Timeouts
     5             4.11    Disk Geometry And Format
     6             4.12    Bad Block Replacement
     7             4.13    Write Protection
     8             4.14    Compare Operations
     9             4.15    Special Drive Topologies
    10             4.16    Controller And Unit Identifiers
    11             4.17    Media Type Identifiers

    12             CHAPTER 5       MSCP CONTROL MESSAGES
    13             5.1     Generic Control Message Format
    14             5.2     Reserved And Undefined Fields
    15             5.3     Command Messages
    16             5.4     End Messages
    17             5.5     Controller Flags
    18             5.6     Unit Flags
    19             5.7     Attention Messages
    20             5.8     Error Log Messages

    21             CHAPTER 6       MINIMAL MSCP COMMAND SET
    22             6.1     Overview
    23             6.2     ABORT Command
    24             6.3     ACCESS Command
    25             6.4     AVAILABLE Command
    26             6.5     COMPARE HOST DATA Command
    27             6.6     DETERMINE ACCESS PATHS Command
    28             6.7     ERASE Command
    29             6.8     GET COMMAND STATUS Command
    30             6.9     GET UNIT STATUS Command
    31             6.10    ONLINE Command
    32             6.11    READ Command
    33             6.12    REPLACE Command
    34             6.13    SET CONTROLLER CHARACTERISTICS Command
    35             6.14    SET UNIT CHARACTERISTICS Command
    36             6.15    WRITE Command

    37             CHAPTER 7       MULTIHOST SUPPORT FUNCTIONALITY
    38             7.1     Overview
    39             7.2     Multihost ABORT Command
    40             7.3     Multihost ACCESS NONVOLATILE MEMORY Command
    41             7.4     Multihost AVAILABLE Command
    42             7.5     Multihost GET COMMAND STATUS Command
    43             7.6     Multihost GET UNIT STATUS Command
    44             7.7     Multihost ONLINE Command
    45             7.8     Multihost SET CONTROLLER CHARACTERISTICS 
    46                     Command
    47             7.9     Multihost SET UNIT CHARACTERISTICS Command


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           INTRODUCTION                                             Page 1-3
           References                                        8 November 1987


     1             CHAPTER 8       CONTROLLER INITIATED BAD BLOCK
     2             REPLACEMENT
     3             8.1     Controller Initiated Bad Block Replacement 
     4                     Overview
     5             8.2     Data Safety Write Protection
     6             8.3     Bad Block Replacement
     7             8.4     Replacement Control Table Access
     8             8.5     Atomic Bad Block Replacement
     9             8.6     Error Log Messages
    10             8.7     Unit Context Information
    11             8.8     Actions During ONLINE
    12             8.9     Actions During SET UNIT CHARACTERISTICS
    13             8.10    Actions Before First Modification
    14             8.11    MSCP Control Message Format Changes
    15             8.12    Host Support For Controller Initiated Bad 
    16                     Block Replacement

    17             APPENDIX A      OPCODE, FLAG, AND OFFSET DEFINITIONS

    18             APPENDIX B      STATUS AND EVENT CODE DEFINITIONS

    19             APPENDIX C      CONTROLLER, UNIT, AND MEDIA TYPE
    20             IDENTIFIERS

    21             APPENDIX D      BUFFER DESCRIPTOR FORMATS

    22             APPENDIX E      WAIVERS AND EXCEPTIONS

    23             APPENDIX F      REVISION HISTORY

    24     1.2.2  STI Specification

    25     The Storage Tape Interface Specification, hereinafter referred to
    26     as  STI,  defines a communications interface used between DIGITAL
    27     tape formatters and controllers.  Chapter 6  makes  reference  to
    28     various STI responses used in error log messages.
















                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TERMINOLOGY                                              Page 2-1
                                                             8 November 1987


     1                                 CHAPTER 2

     2                                TERMINOLOGY



     3     Addressable Unit:

     4         The host addressable unit in TMSCP is a tape  unit.   A  tape
     5         formatter is only visible to a controller and not to a host.


     6     Beginning-of-tape (BOT):

     7         The beginning of the usable  recording  area  of  a  magnetic
     8         tape.  There are two aspects used in defining BOT:


     9         1.  Physical BOT, the position forward  of  the  tape  leader
    10             signified by a Tape Format dependent delimiter.

    11         2.  Logical BOT, the position just before  the  first  Object
    12             recorded (i.e., object count 0) on the tape.


    13         This  distinction  is  necessary  because  the  Tape   Format
    14         Identification  Area  (TFIA)  used  in  certain  Tape Formats
    15         extends beyond Physical BOT causing a  physical  displacement
    16         of   Logical  BOT.   Depending  on  the  circumstance,  TMSCP
    17         controllers will use either physical BOT or logical BOT  when
    18         reporting BOT, as is convenient.


    19     End-of-Tape (EOT):

    20         That physical position on a magnetic tape where a Tape Format
    21         dependent delimiter signals the beginning of the tape trailer
    22         area.  Due to variations in delimiter sensing, it is possible
    23         for the sensing of EOT to vary on a given piece of media from
    24         forward to reverse direction, from drive to drive, from  read
    25         to   write,  from  caching  to  non-caching,  and  for  other
    26         device-specific reasons.  The  amount  of  variation  in  EOT
    27         reporting  is device-specific.  Thus, applications should not
    28         depend upon EOT deasserting in the reverse direction  at  the
    29         same  point  it asserted in the forward direction, nor should
    30         they depend upon EOT asserting at the same position each time
    31         the media is accessed.





                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TERMINOLOGY                                              Page 2-2
                                                             8 November 1987


     1     Logical End-of-Tape (LEOT):

     2         Two consecutive Tape  Marks  which  indicate  a  host-imposed
     3         logical  end  of  recorded  data  (i.e.,  end of volume) on a
     4         magnetic tape.  LEOT is detected and reported during  forward
     5         REPOSITION operations at the option of the host.


     6     Long Gap:

     7         An extended Record gap (usually a group of contiguous  Record
     8         gaps)  sufficient  enough  in  length or quantity to indicate
     9         that the remainder of the magnetic tape is unrecorded.   Long
    10         gap  values  are Tape Format dependent as defined in Appendix
    11         C, Table C-4.


    12     Object:

    13         An "object" is either a Record or a  Tape  Mark.   The  first
    14         tape   Object   is   recorded  forward  of  the  Tape  Format
    15         Identification Area (TFIA).  Note that the TFIA, Record Gaps,
    16         and    any    other    control   information   (e.g.,   error
    17         detection/correction  frames)  are  not  considered   to   be
    18         Objects.


    19     Physical End-of-Tape (PEOT):

    20         The end of usable recording area, located in the tape trailer
    21         area,  beginning  at  EOT and extending through a Tape Format
    22         dependent   length.    Refer   to   the   appropriate   media
    23         specification for the PEOT size of a specific media.


    24     Record:

    25         The unit of data transfer, consisting of a collection of data
    26         bytes  which  are written or read as a single entity, without
    27         regard for Tape Format dependent  physical  or  host  defined
    28         logical composition.


    29     Record Gap:

    30         A Tape Format dependent delimiter recorded on a magnetic tape
    31         which  separates  Objects  and  control  information from one
    32         another or is  used  to  by-pass  defects  on  the  recording
    33         surface.   Normal Record Gaps have no special significance to
    34         TMSCP or the host.  They are only relevant in describing tape


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TERMINOLOGY                                              Page 2-3
                                                             8 November 1987


     1         position.


     2     Tape Format:

     3         The  recording  method  used  to  store/retrieve  data  on  a
     4         magnetic tape.  Refer to Appendix C, Tables C-1 and C-2 for a
     5         list of recognized Tape Formats.


     6     Tape Format Identification Area (TFIA):

     7         The area (around physical BOT) where  Tape  Format  dependent
     8         format determination information is recorded.


     9     Tape Mark:

    10         A Tape Format dependent delimiter recorded on a magnetic tape
    11         which  usually  serves  as a separator for host defined files
    12         (i.e., end of file mark).































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS                Page 3-1
                                                             8 November 1987


     1                                 CHAPTER 3

     2                 TMSCP GENERAL OPERATIONAL CHARACTERISTICS


     3     3.1  Unit States

     4     The following subsections clarify Unit States as  they  apply  to
     5     TMSCP.  For an in depth definition of Unit States, refer to MSCP.

     6     3.1.1  Unit Offline

     7     If a formatter is offline to a  controller,  the  addressed  tape
     8     unit  connected  to  the  offline  formatter is also offline to a
     9     host.  A tape unit connected to a formatter which is online to  a
    10     controller is subsequently offline to any other controller.

    11     3.1.2  Unit Available

    12     To be Unit-Available, a tape unit must be powered up,  online  to
    13     the  formatter,  have  a  magnetic  tape  loaded, and be ready to
    14     perform I/O.

    15     3.1.3  Unit Online

    16     Same as MSCP.

    17     3.1.4  Exclusive Access Of A Unit

    18     Same as MSCP.

    19     3.1.5  Unit Operating Beyond EOT

    20     The "EOT Encountered" end flag, as described in section 4.5.1, is
    21     considered part of the tape unit state.  The current state of the
    22     "EOT encountered" end flag is returned in the end messages of all
    23     commands  which  specify  the  Unit Number field (including those
    24     defined only in MSCP).

    25     3.1.6  Unit Position Lost

    26     The "Position Lost" end flag, as described in section  4.5.1,  is
    27     considered part of the tape unit state.  The current state of the
    28     "Position Lost" end flag is returned in the end messages  of  all
    29     commands  which  specify  the  Unit Number field (including those
    30     defined only in MSCP).






                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS              Page 3-1.1
           Unit States                                       8 November 1987


     1  |                                NOTE

     2  |          It  is  important  to  distinguish  between   the
     3  |          Position Lost state, as indicated by the Position
     4  |          Lost end  flag,  and  the  Position  Lost  status
     5  |          reported  in  end messages and error logs.  Refer
     6  |          to sections 3.5.3, 4.5.1, and 4.5.3  for  further
     7  |          information.












































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS                Page 3-2
           Unit States                                       8 November 1987


     1     3.1.7  Unit Serious Exception Pending

     2     The "Serious Exception" end flag, as described in section  4.5.1,
     3     is  considered part of the tape unit state.  The current state of
     4     the "Serious Exception" end flag is returned in the end  messages
     5     of  all  commands  which specify the Unit Number field (including
     6     those defined only in MSCP).

     7     3.1.8  Unit Cached Data Lost

     8     The "Cached Data Lost" end flag, as described in  section  4.5.1,
     9     is  considered part of the tape unit state.  The current state of
    10     the "Cached Data Lost" end flag is returned in the  end  messages
    11     of  all  commands  which specify the Unit Number field (including
    12     those defined only in MSCP).

    13     3.2  Command Categories And Execution Order

    14     As noted in  MSCP,  TMSCP  only  uses  immediate  and  sequential
    15     command  types.   TMSCP  implementation  of the immediate command
    16     type and most sequential commands is identical to that  described
    17     in  MSCP.   However,  certain  tape  operations  (e.g., ERASE and
    18     REPOSITION) can take a considerable  amount  of  time  (up  to  5
    19     minutes  or  more)  to  complete, depending on the amount of tape
    20     traversed during the operation.  Special consideration of lengthy
    21     commands  is  necessary in order to reduce the impact on the host
    22     environment.   As  an  additional  performance   feature,   TMSCP
    23     provides  support  for  the  caching of data transfer operations.
    24     The remaining subsections provide a detailed description of those
    25     special considerations.

    26     3.2.1  Lengthy Command Considerations

    27     3.2.1.1  Synchronous Vs Asynchronous

    28     Treating lengthy  commands  as  purely  sequential  (synchronous)
    29     operations  can  adversely  affect  host  operation  in that host
    30     resources dedicated to the completion of the operation cannot  be
    31     relinquished until completion.  Therefore, asynchronous operation
    32     of lengthy, non-data transfer  commands  is  preferred.   On  the
    33     other  hand,  confirmation  of  successful completion may be more
    34     important to the host (e.g., data  erasure  in  a  high  security
    35     installation).

    36     TMSCP controllers accommodate both  situations  by  allowing  the
    37     host to specify, for a limited set of non-data transfer commands,
    38     whether a command is to complete in a synchronous or asynchronous
    39     manner via the "Immediate Completion" command modifier.




                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS                Page 3-3
           Command Categories And Execution Order            8 November 1987


     1     If the  "Immediate  Completion"  command  modifier  is  set,  the
     2     controller  returns  the end message with the status field set to
     3     Success (subcode "Normal") as soon as the specified operation  is
     4     initiated  on  the tape unit (for non-data transfer commands), or
     5     as soon as the data has been transferred  from  the  host  buffer
     6     (for   data   transfer  commands).   The  command  completion  is
     7     therefore  asynchronous  to  the  completion  of  the  tape  unit
     8     operation.    Until   the   tape  unit  operation  completes  the
     9     controller  must  preserve  the   sequentiality   of   subsequent
    10     sequential   commands  issued  by  the  host.   Furthermore,  the
    11     controller must also ensure that subsequent  sequential  commands
    12     appear  to  be progressing towards completion in order to satisfy
    13     command timeout requirements as defined in MSCP.

    14     If the "Immediate Completion"  command  modifier  is  clear,  the
    15     controller  will  not  return the end message until the tape unit
    16     operation is completed.

    17     The "Immediate Completion" command modifier can only be specified
    18     in   the   following   non-data  transfer  commands:   ERASE  and
    19     REPOSITION.  In the case of the REPOSITION command,  asynchronous
    20     operation  will  only  occur  if  the  "Immediate Completion" and
    21     "Rewind" command modifiers are set and  the  "record  count"  and
    22     "tape  mark  count"  fields  are  both  zero (i.e., rewind to BOT
    23     only).  The controller will  ignore  the  "Immediate  Completion"
    24     command  modifier  in  all  other  variations  of  the REPOSITION
    25     command.

    26     The AVAILABLE  command  is  always  treated  as  an  asynchronous
    27     completion command (without the need for a command modifier).

    28     Refer to section 3.5.4 for information regarding  the  occurrence
    29     of an error during asynchronous operations.

    30     3.2.1.2  Abort

    31     Host resource blockage comes into play again when the host  wants
    32     to ABORT a lengthy synchronous command.  A second concern is that
    33     the tape unit operation is ABORTED in a  controlled,  predictable
    34     manner.

    35     TMSCP controllers must ABORT  lengthy  commands  specifically  as
    36     follows:

    37           o  ERASE  command  with  "Immediate   Completion"   command
    38              modifier clear:

    39                  Abort process - end  message  returned  as  soon  as
    40                  ABORT  command  is  received,  tape motion continues
    41                  until erase is completed (ten feet  past  EOT),  and


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS                Page 3-4
           Command Categories And Execution Order            8 November 1987


     1                  tape has rewound to BOT.


     2           o  REPOSITION command with "Rewind" command  modifier  set,
     3              "Immediate  Completion"  command modifier clear, "Object
     4              Count" and "Reverse" modifiers either set or clear, zero
     5              "record  count  or  object  count" and "tape mark count"
     6              fields:

     7                  Abort process - end  message  returned  as  soon  as
     8                  ABORT  command is received; tape motion continues to
     9                  BOT.


    10           o  REPOSITION command with "Rewind" command modifier clear,
    11              "Object  Count"  and  "Reverse"  modifiers either set or
    12              clear, non-zero "record count or object count" or  "tape
    13              mark count" field(s):

    14                  Abort process - after receipt of the ABORT  command,
    15                  tape  motion  continues  to  the  first  record  gap
    16                  encountered; end message returned as  soon  as  tape
    17                  motion ceases (see exception described below).

    18                                          NOTE

    19                      Devices which support the Tape  Format  Flag
    20                      value of TF.CTP ("TK50" compatible cartridge
    21                      tapes) do not follow the exception condition
    22                      described  below when the "Reverse" modifier
    23                      is set.  Instead, they  have  the  following
    24                      behavior:


    25                  Abort Process - after receipt of the ABORT  command,
    26                  tape  motion  occurs  to the beginning of the track,
    27                  and proceeds forward  until  the  first  record  gap
    28                  encountered.  This may be closer to logical BOT than
    29                  the original target  object.   The  end  message  is
    30                  returned as soon as tape motion ceases.


    31           o  REPOSITION command with "Rewind" modifier  set,  "Object
    32              Count"  and  "Reverse"  modifiers  either  set or clear,
    33              non-zero "record count or object count"  or  "tape  mark
    34              count" field(s):

    35                  Abort process - if the rewind has not yet  completed
    36                  (BOT  has  not  been  reached),  the  end message is
    37                  returned as soon as the ABORT command  is  received,


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS                Page 3-5
           Command Categories And Execution Order            8 November 1987


     1                  and tape motion continues to BOT.  If the rewind has
     2                  completed, tape motion continues to the first record
     3                  gap  encountered  after receipt of the ABORT command
     4                  (see exception described below).  The end message is
     5                  returned as soon as tape motion ceases.



     6     In the cases listed above where the end message  is  returned  as
     7     soon as the ABORT command is received and the tape unit operation
     8     in progress is allowed to continue (i.e.,  ERASE  and  Rewind  to
     9     BOT), command completion is asynchronous to the completion of the
    10     tape unit operation.  Until the tape unit operation completes the
    11     controller   must   preserve   the  sequentiality  of  subsequent
    12     sequential  commands  issued  by  the  host.   Furthermore,   the
    13     controller  must  also ensure that subsequent sequential commands
    14     appear to be progressing towards completion in order  to  satisfy
    15     command  timeout  requirements  as  defined  in  MSCP.   Refer to
    16     Section 3.5.4 for information  regarding  the  occurrence  of  an
    17     error during asynchronous operations.

    18                  FIRST RECORD GAP ENCOUNTERED EXCEPTION


    19             As mentioned in Section 5.10.3 TMSCP  controllers
    20             are  expressly  permitted  to optimize any of the
    21             various positioning functions available  via  the
    22             REPOSITION command.

    23             If an ABORT command is received for a  REPOSITION
    24             command  while  the  controller  is  performing a
    25             positioning function optimization,  cessation  of
    26             tape  motion  at  the  next  object  (as required
    27             above) may result in a tape position outside  the
    28             range   of  objects  spanned  by  the  REPOSITION
    29             function.    If   this   condition   occurs   the
    30             controller    must   continue   the   positioning
    31             function.  During the function  continuation  the
    32             action  the  controller  must  follow  depends on
    33             whether the controller is capable of  determining
    34             when  the tape is positioned within the objective
    35             (i.e., that range of objects) of the  positioning
    36             function or not:

    37             a.  If so, the controller continues  tape  motion
    38                 until   the   first  record  gap  within  the
    39                 objective is encountered;  end  message  with
    40                 Command  Aborted  status  returned as soon as
    41                 tape motion ceases.



                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS                Page 3-6
           Command Categories And Execution Order            8 November 1987


     1             b.  If not, the controller continues tape  motion
     2                 until  the final objective of the positioning
     3                 function is found; end message  with  Success
     4                 (subcode "Normal") status returned as soon as
     5                 tape motion ceases.



     6     3.3  Tape Motion Command Operation

     7     Tape motion commands  are  classified  as  "read",  "write",  and
     8     "ancillary"  types.   The  following  subsections  describe  tape
     9     motion operations common  to  each  type.   A  separate  section,
    10     section 3.4, describes common data transfer command operation.

    11     3.3.1  "read" Type

    12     The "read" type commands are as follows:

    13           o  ACCESS
    14           o  COMPARE HOST DATA
    15           o  READ
    16           o  REPOSITION


    17     3.3.1.1  Direction

    18     "Read" type commands can be performed in either  the  forward  or
    19     reverse  direction.   Direction  is  selected  according  to  the
    20     setting of the "Reverse"  command  modifier.   When  clear,  tape
    21     motion  is away from BOT, or in the FORWARD direction.  When set,
    22     tape motion is toward BOT, or in the REVERSE direction.

    23     It is not mandatory for "non-industry standard" TMSCP devices  to
    24     support  the  "Reverse"  command  modifier on the ACCESS, COMPARE
    25     HOST DATA, and READ commands (see Appendix C, Table C-1 for those
    26     devices considered "non-industry standard").  Devices that do not
    27     implement the "Reverse" command modifier on  the  above  commands
    28     must  treat  that  modifier  as reserved, and reject a command so
    29     modified with a status of Invalid Command.

    30     All TMSCP devices are required to support the "Reverse"  modifier
    31     on the REPOSITION command.

    32     3.3.1.2  BOT Handling

    33     Any "read" type commands performed in the REVERSE  direction  can
    34     unexpectedly  encounter  BOT  (usually  Logical  BOT)  before the
    35     requested operation is completed.  The tape  cannot  be  made  to
    36     cross  BOT as a result of a REVERSE operation.  Any attempt to do


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS                Page 3-7
           Tape Motion Command Operation                     8 November 1987


     1     so  will  result  in  termination  of  the  command  with  a  BOT
     2     Encountered status when BOT is encountered.

     3     3.3.1.3  EOT Handling

     4     When EOT is  crossed  while  performing  a  FORWARD  "read"  type
     5     command  the "EOT Encountered" end flag will be set.  When EOT is
     6     encountered in this manner, tape motion will  not  be  suspended.
     7     Command  operation will continue in the normal fashion.  The "EOT
     8     Encountered" end flag remains set while the  tape  is  positioned
     9     beyond   EOT   (i.e.,  in  the  tape  trailer  area).   The  "EOT
    10     Encountered" end flag will be  cleared  only  when  the  tape  is
    11     subsequently  positioned  ahead  of EOT (i.e., on the BOT side of
    12     EOT) by any REVERSE "read" type command.

    13     3.3.1.4  Tape Mark Handling

    14     With one exception "read" type command operation is single record
    15     oriented.   The  exception is the REPOSITION command which can be
    16     Tape Mark, record, combined Tape Mark and record, or tape  object
    17     oriented (See section 5.10 for complete details).  If a Tape Mark
    18     is unexpectedly encountered before the requested record operation
    19     of  any  "read"  type  command  is  completed the command will be
    20     terminated with a Tape Mark Encountered status.   The  tape  will
    21     remain  positioned  forward of the unexpected Tape Mark, relative
    22     to the direction of travel specified in the command.

    23     3.3.2  "write" Type

    24     The "write" type commands are as follows:

    25           o  ERASE GAP
    26           o  WRITE
    27           o  WRITE TAPE MARK


    28     3.3.2.1  Direction

    29     "write"  type  commands  are  always  performed  in  the  forward
    30     direction.   The "Reverse" command modifier is not allowed in any
    31     "write" type command and  is  therefore  treated  as  a  reserved
    32     field.

    33     3.3.2.2  BOT Handling

    34     "write" type commands will never encounter BOT unexpectedly.






                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS                Page 3-8
           Tape Motion Command Operation                     8 November 1987


     1     3.3.2.3  EOT Handling

     2     When EOT is crossed while performing a "write" type  command  the
     3     "EOT  Encountered" end flag will be set.  When EOT is encountered
     4     in this manner, tape  motion  will  not  be  suspended.   Command
     5     operation will continue in the normal fashion and complete with a
     6     status  of  Success  (subcode  "EOT  encountered").    The   "EOT
     7     Encountered"  end  flag  remains set while the tape is positioned
     8     beyond  EOT  (i.e.,  in  the  tape  trailer  area).    The   "EOT
     9     Encountered"  end  flag  will  be  cleared  only when the tape is
    10     subsequently positioned ahead of EOT (i.e., on the  BOT  side  of
    11     EOT)  by any REVERSE "read" type command.  Note that encountering
    12     EOT while performing a "write"  type  command  causes  a  Serious
    13     Exception condition.  Refer to section 3.5.2 for more detail.

    14     3.3.2.4  Tape Mark Handling

    15     "write"  type  commands  will  never  encounter   a   Tape   Mark
    16     unexpectedly.

    17     3.3.3  "ancillary" Type

    18     The ERASE command is the only "ancillary" type command.

    19     3.3.3.1  Direction

    20     The  ERASE  command  always  begins  operation  in  the   forward
    21     direction.   The "Reverse" command modifier is not allowed and is
    22     therefore treated as a reserved field.

    23     3.3.3.2  BOT Handling

    24     The ERASE command will never encounter BOT unexpectedly.

    25     3.3.3.3  EOT Handling

    26     The ERASE command will never encounter EOT unexpectedly.

    27     3.3.3.4  Tape Mark Handling

    28     The ERASE command will never encounter a Tape Mark unexpectedly.

    29     3.4  Data Transfer Operations

    30     The following are considered data transfer operations:

    31           o  ACCESS
    32           o  Compare Operations (i.e., COMPARE HOST DATA command  and
    33              Compare modified READ and WRITE)



                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS                Page 3-9
           Data Transfer Operations                          8 November 1987


     1           o  READ
     2           o  WRITE


     3     The ACCESS and COMPARE HOST DATA commands  are  included  in  the
     4     data    transfer    category    since    their    operation    is
     5     characteristically the same, with the exception that no  data  is
     6     transferred to or from the host.

     7     The following subsections describe operations common to the  data
     8     transfer  commands.   A  separate section, section 3.3, describes
     9     common tape motion command operation.

    10     3.4.1  Record Length

    11     Records    and    transfer    specifications    are    inherently
    12     variable-length and are specified as an integral number of bytes,
    13     including odd byte counts.

    14     There is no  formal  minimum  record  length.   However,  certain
    15     recording   techniques   are   sufficiently  noise-prone  that  a
    16     recommended minimum record size is required.

    17     Maximum recommended record length is also required.   This  value
    18     is  a  function  of  both  tape  format  and  error detection and
    19     correction algorithms employed by a device.   Any  record  length
    20     greater  than the recommended maximum may not be reliably written
    21     and/or read.

    22     The tape unit specific minimum and maximum record  length  values
    23     are  available  to  the host in the end message of the ONLINE and
    24     SET UNIT CHARACTERISTICS commands.

    25     Although a record of greater length than the maximum  recommended
    26     can  be  read  or  written,  there exists a true absolute maximum
    27     size.  This absolute maximum  size  is  dependent  upon  specific
    28     controller  characteristics.   Refer  to  Appendix  C, Table C-3.
    29     Transfer  commands  specifying  a  byte  count  larger  than  the
    30     absolute  maximum  are  rejected with an Invalid Command (subcode
    31     "Invalid Byte Count") status.   In  addition,  transfer  commands
    32     specifying  a  byte  count  of  zero  are rejected with a Invalid
    33     Command (subcode "Invalid Byte Count") status.

    34     3.4.2  Tape Format Employed

    35     The tape format employed in data transfer operations is dependent
    36     on  the  first tape motion command issued after the the tape unit
    37     becomes "Unit Online" (the first time in the case  of  multi-host
    38     access).



                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS               Page 3-10
           Data Transfer Operations                          8 November 1987


     1     If the first tape motion command  is  a  "write"  type  operation
     2     (i.e., ERASE GAP, WRITE, or WRITE TAPE MARK) the format specified
     3     by the host via either the ONLINE  or  SET  UNIT  CHARACTERISTICS
     4     command will be employed.

     5     If the first tape motion command is a "read" type command  (i.e.,
     6     ACCESS,  COMPARE  HOST  DATA,  READ or REPOSITION) the controller
     7     will ignore host format  specifications  and  employ  the  format
     8     implied by the information recorded in the TFIA when the tape was
     9     created.  If the tape unit is unable to  determine  the  recorded
    10     format  from the TFIA information, the command is terminated with
    11     a Data Error (subcode "Unrecoverable  Read  Error")  end  message
    12     status.   If  the  TFIA  information is nonexistent, implying the
    13     tape is blank, the  command  is  terminated  with  a  Data  Error
    14     (subcode  "Long  Gap  Encountered")  end message status.  In this
    15     case the format employed in reading the TFIA information dictates
    16     the  long  gap  value used in determining the long gap condition;
    17     however, the host specified format will not be changed to reflect
    18     that format.

    19     3.4.3  Host Buffer Access

    20     The COMPARE HOST DATA, READ, and WRITE command  messages  contain
    21     byte  count  and  host  buffer  address  descriptors.  The ACCESS
    22     command only contains a byte count field.

    23     3.4.3.1  WRITE Command

    24     In the case of a WRITE command, the specified number of bytes  is
    25     written  to  tape from the host buffer, in the forward direction,
    26     beginning at the host  buffer  base  address  proceeding  through
    27     successively higher numbered addresses.

    28     3.4.3.2  READ Command

    29     For a READ command, the specified byte count is treated as advice
    30     to  the  controller.   The amount of data actually transferred is
    31     dictated by the number of bytes  contained  in  the  tape  record
    32     being  read.   A  Success end message status is returned when the
    33     tape record size is either equal to or less than  (short  record)
    34     the  specified  byte  count.  However, if the tape record size is
    35     greater  than  (long  record)  the  specified  byte   count   the
    36     controller  will  terminate  the  transfer  at the specified byte
    37     count and report a Record Data Truncated end message status.

    38     READ commands can be performed in either the forward  or  reverse
    39     direction.   "Non-industry  standard"  devices  may  reject  READ
    40     commands with the "Reverse" command modifier set with a status of
    41     Illegal  Command  (subcode  "Illegal Modifier").  See Appendix C,
    42     Table C-1 for those devices considered "non-industry standard".


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS               Page 3-11
           Data Transfer Operations                          8 November 1987


     1     3.4.3.2.1  Forward Direction

     2     If a READ in the forward direction is specified, the  data  bytes
     3     of the record are stored in the host buffer beginning at the base
     4     address,  as  specified  in  the  buffer  descriptor,  proceeding
     5     through  successively  higher-numbered  addresses.   If  the tape
     6     record is short, the host buffer contents from

     7       [base address]+[tape record byte count]

     8     through

     9       [base address]+[specified byte count]-1

    10     remain unchanged.  If the tape record is long,  the  end  of  the
    11     tape record is truncated.

    12     3.4.3.2.2  Reverse Direction

    13     If a READ in the reverse direction is specified, the  data  bytes
    14     of the record are stored in the host buffer beginning at

    15       [base address]+[specified byte count]-1,

    16     proceeding through successively lower-numbered addresses.  If the
    17     tape  record  is long, the front of the tape record is truncated.
    18     If the tape record is short the record image ends at host buffer

    19       [base address]+[specified byte count]-[tape record byte count].

    20     The host buffer contents from the base address to  the  beginning
    21     of the short record image remain unchanged.

    22     3.4.3.3  ACCESS Command

    23     The ACCESS command is performed in the same manner  as  the  READ
    24     command, described in section 3.4.3.2, with the exception that no
    25     data is transferred to the host.

    26     3.4.3.4  Compare Operations

    27     Compare operations permit comparison of data contained in a  host
    28     buffer to data contained in a tape record.

    29     The compare process is performed in the same manner as  the  READ
    30     command buffer storage process described in section 3.4.3.2.  The
    31     only difference is that instead of storing the data read from the
    32     tape record, a byte by byte comparison is performed.




                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS               Page 3-12
           Data Transfer Operations                          8 November 1987


     1     The MSCP description of compare operations is identical to  TMSCP
     2     implementation with the exceptions described below.

     3     A compare operation will not be performed by  the  controller  in
     4     the following cases:

     5          1.  If a long tape record is encountered  during  a  compare
     6              modified  READ  or  COMPARE  HOST DATA command.  In this
     7              case the  command  is  terminated  with  a  Record  Data
     8              Truncated status.

     9          2.  If any error occurs during the original data transfer of
    10              a compare modified READ or WRITE command which indicates
    11              the data was not transferred correctly or  at  all.   In
    12              the  case  of  the COMPARE HOST DATA command the compare
    13              operation  is  performed  up  to  the  point  the  error
    14              occurred.


    15     Refer to sections 4.5.4 and 4.5.5 for details on end message byte
    16     count fields.

    17     "Compare after" operations (i.e., compare modified WRITE or READ)
    18     require  positioning  in the direction opposite to that specified
    19     in the original command.  Regardless of the success or failure of
    20     the  compare operation, the tape will always be positioned in the
    21     record gap forward of the tape record being operated on, relative
    22  |  to  the  direction of the original command.  Failures not related
    23  |  to the compare  operation  may  cause  the  tape  to  not  be  so
    24  |  positioned  (see  section  3.5.3,  Position Lost Handling).  Such
    25  |  failures will result in a "Position Lost" error condition.

    26     3.4.4  End Message Byte Count Fields

    27     Refer to sections 4.5.4 and 4.5.5 for details on end message byte
    28     count fields.

    29     3.5  General Error Processing

    30     The following subsections describe  error  processing  common  to
    31     TMSCP  commands.   Refer  to  section  4.5.2  for  definition  of
    32     individual status codes.

    33     3.5.1  Reporting Precedence

    34     In  cases   where   multiple   errors   (or   conditions)   occur
    35     simultaneously,  TMSCP controllers report errors according to the
    36     following categorical precedence:




                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS               Page 3-13
           General Error Processing                          8 November 1987


     1          1.  fatal condition (e.g., Drive Error, etc.)
     2          2.  unrecoverable data error
     3          3.  conditional success (e.g., EOT encountered)
     4          4.  success


     5     3.5.2  Serious Exception Handling

     6     Tape Units are inherently sequential devices.   This  means  that
     7     the  order  in  which  tape  motion commands are executed must be
     8     identical to the order in which they are received.

     9     In traditional tape systems, sequentiality is  preserved  because
    10     the device is capable of having only one command outstanding to a
    11     tape unit at any time.  If a tape motion command terminates  with
    12     an  error, the host can take immediate action to prevent commands
    13     waiting to be executed from being presented to the  device.   The
    14     host, therefore, implicitly maintains control of sequentiality.

    15     Since TMSCP  controllers  are  required  to  provide  queuing  of
    16     multiple   commands,   control  of  sequentiality  following  the
    17     occurrence  of  an  error  becomes  the  responsibility  of   the
    18     controller.  When an error occurs and the tape unit remains "Unit
    19     Online"  to  any  host,  a  TMSCP  controller  must  ensure  that
    20     subsequent  commands  are  rejected until a host acknowledges the
    21     occurrence of the error.  This condition is known  as  a  Serious
    22     Exception condition.

    23     Any of the conditions defined by the following Status Codes cause
    24     a Serious Exception condition:

    25           o  BOT Encountered
    26           o  Compare Error
    27           o  Controller Error
    28           o  Data Error
    29           o  Drive Error
    30           o  Formatter Error
    31           o  Host Buffer Access Error
    32           o  Invalid Command, subcodes
    33               o  Invalid Byte Count
    34               o  Invalid Format
    35               o  Invalid Unit Flags
    36           o  LEOT Detected
    37           o  Position Lost, only when  Position  Lost  state  is  not
    38              already in effect (refer to section 3.5.3)
    39           o  Record Data Truncated
    40           o  Success, subcode "EOT Encountered", on  the  ERASE  GAP,
    41              WRITE, and WRITE TAPE MARK commands




                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS               Page 3-14
           General Error Processing                          8 November 1987


     1           o  Tape Mark Encountered
     2           o  Write Protected


     3     The following Status Codes will not  cause  a  Serious  Exception
     4     condition:

     5           o  Command Aborted
     6           o  Invalid Command, all subcodes except
     7               o  Invalid Byte Count
     8               o  Invalid Format
     9               o  Invalid Unit Flags

    10           o  Position Lost, while Position Lost state  exists  (refer
    11              to section 3.5.3)
    12           o  Serious Exception
    13           o  Success, all subcodes except EOT Encountered
    14           o  Unit-Available
    15           o  Unit-Offline


    16     The occurrence of a Serious Exception  condition  causes  a  tape
    17     unit  to  enter the Serious Exception state relative to all hosts
    18     to which it is currently "Unit Online", regardless of which  host
    19     issued the command encountering the error.

    20     The Serious Exception state is reflected in the Serious Exception
    21     end  flag (SEF).  Refer to section 4.5.1 for a description of End
    22     Flags.

    23     The end message of the command encountering the Serious Exception
    24     condition  will  have  SEF  set  and  the status will reflect the
    25     nature  of  the  error.   Subsequent  commands  (including  those
    26     currently queued by the controller) are rejected with SEF set and
    27     a status  of  Serious  Exception  in  their  end  messages.   The
    28     controller  continues to reject commands in that manner until the
    29     tape unit Serious Exception state is cleared by a host.

    30     The following commands are subject to rejection while  a  Serious
    31     Exception state exists:

    32           o  ACCESS
    33           o  AVAILABLE
    34           o  COMPARE HOST DATA
    35           o  ERASE
    36           o  ERASE GAP
    37           o  FLUSH
    38           o  READ




                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS               Page 3-15
           General Error Processing                          8 November 1987


     1           o  REPOSITION
     2           o  WRITE
     3           o  WRITE TAPE MARK


     4     The Clear Serious Exception Command Modifier (CSE) is  the  means
     5     by  which a host acknowledges the Serious Exception condition and
     6     signals the controller that the tape unit Serious Exception State
     7     can  be cleared and normal processing resumed.  Note that the CSE
     8     modifier is acted upon before any other part of  a  command.   It
     9     only  clears  the Serious Exception state that existed before the
    10     command was received (i.e., a  command  cannot  clear  a  Serious
    11     Exception  it  caused).  The CSE modifier is ignored if a Serious
    12     Exception state does not exist.

    13     The  CSE  modifier  can  only  be  specified  for  the  following
    14     commands:

    15           o  ACCESS
    16           o  AVAILABLE
    17           o  COMPARE HOST DATA
    18           o  ERASE
    19           o  ERASE GAP
    20           o  FLUSH
    21           o  ONLINE
    22           o  READ
    23           o  REPOSITION
    24           o  SET UNIT CHARACTERISTICS
    25           o  WRITE
    26           o  WRITE TAPE MARK


    27     The CSE modifier is reserved for all other commands.

    28     The existence of a Serious Exception state does not prevent other
    29     hosts  from bringing a tape unit into the "Unit Online" state via
    30     the ONLINE command.   The  tape  unit  will  be  in  the  Serious
    31     Exception  state relative to any host issuing a successful ONLINE
    32     command while the Serious Exception state exists, unless the  CSE
    33     modifier  was specified in that ONLINE command.  In that case the
    34     Serious Exception State is cleared for all hosts which  have  the
    35     tape unit in the "Unit Online" state.

    36     If a tape unit leaves the "Unit Online"  state  relative  to  all
    37     hosts,  for  any  reason,  the  tape unit will cease to be in the
    38     Serious Exception state.






                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS               Page 3-16
           General Error Processing                          8 November 1987


     1     3.5.3  Position Lost Handling

     2     When a "Position Lost"  error  condition  occurs  the  tape  unit
     3     enters  the Position Lost state relative to all hosts to which it
     4     is currently "Unit Online", regardless of which host  issued  the
     5     command encountering the error.

     6     The Position Lost state is reflected in  the  Position  Lost  end
     7     flag.  Refer to section 4.5.1 for a description of end flags.

     8  |  A "Position Lost" error condition includes the following:

     9  |       1.  The formatter is not certain of the unit's position.

    10  |       2.  The change in unit position reported in the end messages
    11  |           is  not  due  to  the  command corresponding to this end
    12  |           message.  This includes the following case:

    13  |            o  The unit enters the "Cached Data  Lost"  state  (see
    14  |               section   3.6.1.4).    This   effectively  "revokes"
    15  |               position that was previously reported (i.e., success
    16  |               was  reported  on  previous cached operations, which
    17  |               have subsequently failed).  The change  reported  in
    18  |               the  position  field  cannot  be  attributed  to the
    19  |               command   containing   the   "Cached   Data    Lost"
    20  |               indication, and thus a Position Lost error condition
    21  |               has occurred and the unit enters the  Position  Lost
    22  |               state.



    23     While the Position Lost state is in effect the host may issue any
    24     tape motion command in an attempt to recover position on its own.
    25     The controller must attempt to  execute  those  commands  in  the
    26     normal  manner.   During  the  execution  of  those  commands the
    27     controller will not generate a Serious  Exception  condition  for
    28     "Position  Lost"  error occurrences.  The occurrence of all other
    29     errors however, will be handled in the normal manner.

    30     The tape unit will remain in the Position Lost  state  until  the
    31     tape  is subsequently positioned to BOT, the tape unit enters the
    32     "Unit Offline" state, or the tape is unloaded  via  an  AVAILABLE
    33     command.

    34     3.5.4  Asynchronous  Completion  Handling  Of  Non-Data  Transfer
    35            Commands

    36     TMSCP controllers cannot provide host end message notification of
    37     errors  encountered  during  either  the  execution of "immediate
    38     completion" non-data transfer type  commands  (refer  to  section


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS               Page 3-17
           General Error Processing                          8 November 1987


     1     3.2.1.1)  or  tape  motion  continuation  following  the abort of
     2     certain lengthy I/O commands (refer to section  3.2.1.2)  because
     3     the  end message has already been returned to the host.  Based on
     4     the fact that all error conditions that  can  be  encountered  in
     5     either  of  those  cases  imply that the tape unit is essentially
     6     inoperable, the TMSCP controller will take the following actions:

     7          1.  Issue an error log detailing the  error  that  occurred,
     8              provided  the  error  normally requires logging and that
     9              miscellaneous error logs are enabled (refer to  Appendix
    10              B).

    11          2.  Place  the  tape  unit  into   the   "Offline   -   Unit
    12              Inoperative" state.

    13     Subsequent  tape  motion  commands  will  therefore  be  rejected
    14     because  of this "offline" state, precluding further operation of
    15     the tape unit until the host has acknowledged the condition.

    16     3.5.5  Data Error Recovery

    17     TMSCP tape unit data error recovery procedures meet or exceed the
    18     requirements  of  DEC  Standard  174  with certain qualifications
    19     described below.  Note that error  recovery  techniques  used  by
    20     block  oriented tape units differ from those used by 9-track tape
    21     units, but will provide equivalent performance.

    22     Only unrecoverable errors will be reported to the host in the end
    23     message status field.

    24     Recoverable errors are reported to the host in  error  log  form.
    25     The  controller will normally issue only one error log during the
    26     error recovery process  regardless  of  the  number  of  attempts
    27     involved  in  recovering the data.  The error log is issued after
    28     the final attempt whether recovery  was  successful  or  not.   A
    29     separate  error log will be issued for non-transfer errors (e.g.,
    30     an STI transmission error) which occur during any segment of  the
    31     recovery process.  Refer to Chapter 6 for specific information on
    32     error log content.

    33     Error recovery algorithms require unsolicited positioning in  the
    34     direction  opposite  to  that  specified in the original command.
    35     For either a successful or unsuccessful recovery  operation,  the
    36     tape  will  be  positioned  in the record gap forward of the data
    37     record, relative  to  the  direction  of  the  original  command.
    38  |  Failure  to  be  so  positioned  will result in a "Position Lost"
    39  |  error condition.





                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS               Page 3-18
           General Error Processing                          8 November 1987


     1     Note that explicit recovery sequences may  be  specified  to  the
     2     controller by a formatter.

     3     3.5.5.1  Suppression

     4     Data error recovery suppression is controlled  by  the  "Suppress
     5     Error  Recovery"  command  modifier.  This modifier is allowed in
     6     the ACCESS,  COMPARE  HOST  DATA,  READ,  REPOSITION,  and  WRITE
     7     commands.   When  set,  the  controller will inhibit "Data Error"
     8     recovery procedures.   If  a  "Data  Error"  is  encountered  the
     9     controller  reports  it to the host immediately as unrecoverable.
    10     The tape will remain positioned in the record gap forward of  the
    11     tape  object in error, relative to the direction specified in the
    12     command.

    13                                   NOTE

    14             Use of this modifier does not  prevent  the  tape
    15             unit  from  entering  the Serious Exception state
    16             when an error occurs.  Refer to section 3.5.2 for
    17             more detail.


    18     3.5.5.2  Enhanced Write Error Recovery

    19     Enhanced  Write  Error  Recovery  is  a  non-host  settable  unit
    20     characteristic  presented  only  if the TMSCP controller supports
    21     the "Enable Re-write Error Recovery" command  modifier  on  WRITE
    22     commands for the specified tape unit (see section 5.7.2).

    23     When the "Enable Re-write Error  Recovery"  command  modifier  is
    24     set,  the  unit  uses a special error recovery algorithm to write
    25     the data on the media.  The algorithm  must  guarantee  that  the
    26     probability  of  altering  or  destroying  previously written and
    27     acknowledged  data  is  no  worse  than  the  probability  of  an
    28     undetected  write  error.  It is permissible for the algorithm to
    29     leave multiple copies of the record on the media.

    30     An example algorithm that can be applied to 9-track tapes  is  as
    31     follows:

    32          1.  If the initial attempt to write a record fails, then the
    33              record will be re-written sequentially down the tape for
    34              up to three retries.

    35          2.  If the  re-writing  of  the  record  fails  after  three
    36              re-tries,  then  the TMSCP controller will institute its
    37              normal over-write error recovery algorithm to over-write
    38              the fourth copy of the record.



                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS               Page 3-19
           General Error Processing                          8 November 1987


     1     Units not utilizing the above algorithm must  document  in  their
     2     device  specification  how  the  requirements  of "Enhanced Write
     3     Error Recovery" are met.

     4     The "Enable Re-write Error Recovery" modifier may not be  set  in
     5     conjunction  with  the "Suppress Error Recovery" command modifier
     6     and  is  therefore  treated  as  a  reserved  field.   The  TMSCP
     7     controller  must  return  an  Invalid  Command  (subcode "Invalid
     8     Modifier") status code for status if  both  the  "Suppress  Error
     9     Recovery"   command  modifier  and  the  "Enable  Re-write  Error
    10     Recovery" command modifiers are set in the same WRITE command.

    11     3.5.6  Error Log Requirements

    12     Controllers should not report error logs for events which  cannot
    13     possibly be potential hardware problems.  Examples:

    14          1.  On a tape device,  a  REPOSITION  command  returns  Data
    15              Error  (subcode  "Long  Gap Encountered") as a result of
    16              reading metadata previously recorded on the tape.   Such
    17              metadata  may  be  a  result of the recording technology
    18              (e.g., block mode cartridge tape).  This situation  does
    19              not  indicate  a potential hardware problem, and thus an
    20              error log should not be returned.

    21          2.  On a tape device,  a  REPOSITION  command  returns  Data
    22              Error  (subcode  "Long  Gap Encountered") as a result of
    23              not reading a record within the required distance.  This
    24              situation  has the potential of being a hardware failure
    25              in the read electronics, and thus an error log should be
    26              returned.


    27     3.6  Tape Caching

    28     There is a broad range of mass storage caches possible, including
    29     both  one and two level caches (for large, slow, archival storage
    30     devices), write-through and write-back operations,  and  volatile
    31     and  non-volatile  caches.   Caching  may potentially be used for
    32     both disk and tape class devices.  Caching for disk class devices
    33     implies  what is normally meant by the term "cache".  Caching for
    34     tape  class  devices  is  merely  a  mechanism  for  implementing
    35     controller   based   read-ahead   and  write-behind.   Note  that
    36     write-through  caching  applied  to  a  tape  class   device   is
    37     meaningless; since the data has already been written to the tape,
    38     it won't be retained in the cache.

    39     A controller will typically only provide a subset of  this  cache
    40     functionality,  if indeed it supports caching at all.  This broad
    41     range  of  functionality  has  been  included  to  avoid  ad  hoc


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS               Page 3-20
           Tape Caching                                      8 November 1987


     1     extensions as future controllers are defined.

     2     Performing write operations  as  write-behind,  sometimes  called
     3     write-back,  operations offers the potential for greatly improved
     4     performance with a decrease  in  reliability.   The  decrease  in
     5     reliability  arises  from  the  fact that data may be lost if the
     6     controller crashes or otherwise loses context before the data  is
     7     written  back  to  the  unit.   The probability of losing data is
     8     significantly  different  depending  on  whether  the  cache   is
     9     volatile  or  non-volatile,  since  the  primary  cause of losing
    10     write-back data is power failures.  Volatile caches  always  lose
    11     data on power failures; non-volatile caches only lose data if the
    12     unit, volume, or cache is removed from the controller during  the
    13     power  failure.   For these reasons write-back operations must be
    14     explicitly enabled by the host.  Write-back operations for  TMSCP
    15     controllers with any type of cache may be enabled on either a per
    16     unit basis, using a unit flag, or on a per command basis, using a
    17     command  modifier  or both.  In addition, the FLUSH command, with
    18     or without command modifiers, may be  used  to  ensure  that  all
    19     write-back data has been written out to the specified tape unit.

    20     Tape write-back caching can be viewed  as  having  the  following
    21     three characteristics:

    22          1.  The TMSCP controller's write-back cache is viewed  as  a
    23              volatile cache.

    24          2.  The TMSCP controller may have write-back caching enabled
    25              on a per unit basis or on a per command basis or both.

    26          3.  The TMSCP controller must provide support for  "Enhanced
    27              Write Error Recovery".


    28     3.6.1  Write-Back Caching

    29     Because  normal  TMSCP  controller  data  transfer  commands  are
    30     sequential  and  depend on the completion of transferring data to
    31     the media,  write-back  caching  requires  specific  measures  to
    32     handle  the  various  error  and  exception  conditions which can
    33     occur.

    34     If write-back caching is not enabled, either on a per unit  basis
    35     or  on a per command basis, then the TMSCP controller will return
    36     the end  message  when  the  write  data  transfer  operation  is
    37     completed.

    38     If write-back caching is enabled, either on a per unit  basis  or
    39     on  a per command basis, then the TMSCP controller may return the
    40     end message as soon as the data for the write data  operation  is


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS               Page 3-21
           Tape Caching                                      8 November 1987


     1     completely  buffered  by  the  TMSCP  controller.   If write-back
     2     caching is enabled on a per command basis, the  TMSCP  controller
     3     must  preserve  the sequentiality of subsequent sequential (i.e.,
     4     non-write-back cached) commands issued by the  host  until  those
     5     operations complete.  Furthermore, the TMSCP controller must also
     6     ensure  that  subsequent  sequential  commands   appear   to   be
     7     progressing  towards  completion  in order to satisfy the command
     8     timeout requirements as defined in MSCP.  When write-back caching
     9     is enabled, either on a per unit basis or on a per command basis,
    10     then the TMSCP controller must, at all times, maintain the proper
    11     sequentiality  of  all  previous non-write-back cached sequential
    12     commands.

    13     The "Immediate Completion" command modifier can only be specified
    14     on the following data transfer "write" type commands (i.e., ERASE
    15     GAP, WRITE, and WRITE TAPE MARK commands).

    16     If write-back caching is enabled, either on a per  command  basis
    17     or  on  a  per  unit  basis,  there must be some command sequence
    18     available  to  guarantee  that  all  write-back  data  previously
    19     buffered  for  "write"  type commands has been written out to the
    20     specified tape unit.  The following  five  sections  outline  the
    21     command sequences available.

    22          1.  If write-back caching is enabled on a per command basis,
    23              subsequent  non-write-back  cached "write" type commands
    24              will  guarantee  that  all  write-back  data  previously
    25              buffered  for "write" type commands has been written out
    26              to  the  specified  tape  unit.   That  is,  the   TMSCP
    27              controller   will   return  the  end  message  when  the
    28              non-write-back  cached  "write"   type   data   transfer
    29              operation  has  completed  to  the  specified tape unit.
    30              Thus  implying  that  all  write-back  data   previously
    31              buffered  for "write" type commands has been written out
    32              to the specified tape unit.

    33          2.  If write-back caching is enabled on a  per  unit  basis,
    34              there  are  two  distinct command sequences available to
    35              guarantee that write-back data buffered for all previous
    36              "write"  type  commands  has  been  written  out  to the
    37              specified tape unit.

    38              i.  The first command sequence uses the  FLUSH  command.
    39                  This   command  sequence  will  guarantee  that  all
    40                  write-back data previously buffered for "write" type
    41                  commands  has been written out to the specified tape
    42                  unit before the TMSCP controller will return the end
    43                  message indicating the FLUSH command has completed.




                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS               Page 3-22
           Tape Caching                                      8 November 1987


     1             ii.  The second command sequence  depends  on  two  WRITE
     2                  TAPE MARK commands with no other intervening "write"
     3                  type commands.  This command sequence will guarantee
     4                  that  all  write-back  data  previously buffered for
     5                  "write" type commands has been written  out  to  the
     6                  specified  tape  unit  prior to the TMSCP controller
     7                  returning the end message indicating that the second
     8                  WRITE TAPE MARK command has completed.


     9          3.  Any command sequence that transitions from "write"  type
    10              commands  to  either "read" type commands or "ancillary"
    11              type commands will force the TMSCP controller to "flush"
    12              all  of  the write-back cached data out to the specified
    13              tape unit  prior  to  the  end  message  indicating  the
    14              completion  of  either  the  "read"  type command or the
    15              "ancillary" type command.

    16          4.  At the time a response to a non-data transfer sequential
    17              command   (i.e.,   AVAILABLE,   ONLINE,   or   SET  UNIT
    18              CHARACTERISTICS) is generated, the cache must be  empty.
    19              Thus,  any  of these commands may be used to "flush" all
    20              of the write-back cached data out to the specified  tape
    21              unit.   Note  that  although  the  Available  command is
    22              considered "immediate completion", the response must not
    23              be  generated  until  the cache on the specified unit is
    24              empty.

    25          5.  In addition to the above mechanisms available to  hosts,
    26              the TMSCP controller may, at its discretion, "flush" all
    27              of the TMSCP controller's write-back cached data out  to
    28              the specified tape unit at any time.


    29     Proper support for write-back caching requires  that  controlled,
    30     predictable   results  be  specified  for  the  handling  of  the
    31     following conditions:

    32           o  Conflicting requirements imposed by unit flags.

    33           o  Conflicting requirements imposed by command modifiers.

    34           o  Data  transfer  errors  that  occur  prior  to   command
    35              completion having been signaled to the host.

    36           o  Data transfer errors that occur after command completion
    37              has been signaled to the host.





                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS               Page 3-23
           Tape Caching                                      8 November 1987


     1     3.6.1.1  Unit Flag Conflicts

     2     The  "Compare  Writes"  unit  flag  overrides  the  enabling   of
     3     write-back  caching.   There  are no other unit flags in conflict
     4     with the enabling of write-back caching.

     5     3.6.1.2  Command Modifier Conflicts

     6     The "Compare" modifier on WRITE commands overrides  the  enabling
     7     of   write-back   caching   for  the  duration  of  the  command.
     8     Write-back caching, if enabled, may be re-established  after  the
     9     compare portion of the command if subsequent commands do not also
    10     have the "Compare" modifier set.

    11     The  "Suppress  Error  Recovery"  command  modifier  may   either
    12     override  the  enabling of write-back caching for the duration of
    13     the command, or be handled as specified in the following sections
    14     (this  approach  assumes  that  the  first  data  transfer  error
    15     terminates any further processing).

    16     Write-back  caching,  if  enabled,  may  be   re-established   if
    17     subsequent   commands  do  not  also  have  the  "Suppress  Error
    18     Recovery" command modifier set.

    19     There are  no  other  command  modifiers  in  conflict  with  the
    20     enabling of write-back caching.

    21     3.6.1.3  Error And Exception Handling

    22     In general, TMSCP controllers cannot  provide  host  end  message
    23     notification  of  errors  or  exceptions  encountered  during the
    24     execution of write-back caching data  transfer  commands  because
    25     the end message has already been returned to the host.  There are
    26     three error conditions which must be accommodated.   These  cases
    27     are:

    28          1.  Failure to transfer the specified  data  from  the  host
    29              because  of  some  type  of host bus access error (i.e.,
    30              parity error, time out, bus interface failure, etc.).

    31          2.  Failure to maintain the  specified  data  in  the  TMSCP
    32              controller's  write-back cache (i.e., parity error, EDC,
    33              or other indication of data corruption).

    34          3.  Failure to successfully transfer the  buffered  data  to
    35              the media.






                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS               Page 3-24
           Tape Caching                                      8 November 1987


     1     The first error  condition  will  be  encountered  prior  to  the
     2     signaling  of completion for the write-back caching data transfer
     3     command.  This situation implies that all of the prior data  will
     4     have been written on the media and is therefore accessible.  This
     5     condition  requires  that  the  TMSCP  controller   perform   the
     6     following steps:

     7          i.  Issue an error log detailing the  error  that  occurred,
     8              provided  the error normally requires logging, (refer to
     9              Appendix B).

    10         ii.  Position the specified tape unit immediately  after  the
    11              last  successful record written, and just prior to where
    12              the record in error would have occurred.

    13        iii.  Place the tape unit into the "Serious Exception" state.

    14         iv.  Report the specific nature of the error  as  the  status
    15              for this specific command's end packet.


    16     Subsequent tape data transfer commands will therefore be rejected
    17     because  of  the  "Serious  Exception"  state, precluding further
    18     operation  of  the  specified  tape  unit  until  the  host   has
    19     acknowledged  the  condition.   Additionally,  the  host  will be
    20     "synchronized" with the  tape  unit  and  positioned  immediately
    21     after the last good record.

    22     Based on the fact that the other error  conditions  that  can  be
    23     encountered  after  a write-back caching data transfer command is
    24     initiated  imply  that  the  data   on   media   is   essentially
    25     inaccessible,  the second and third conditions require that TMSCP
    26     controller perform the following steps:

    27          i.  Issue an error log detailing the  error  that  occurred,
    28              provided  the  error normally requires logging (refer to
    29              Appendix B).

    30         ii.  If the specified tape unit remains in the "Unit  Online"
    31              state,  then  place  the  tape  unit  into  the "Serious
    32              Exception", "Position  Lost",  and  "Cached  Data  Lost"
    33              states.

    34        iii.  Report the specific nature of the error as the status of
    35              the  immediately  subsequent sequential end packet to be
    36              returned.






                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS               Page 3-25
           Tape Caching                                      8 November 1987


     1     Subsequent tape data transfer commands will therefore be rejected
     2     because  of  the  "Serious  Exception"  state, precluding further
     3     operation of the tape unit until the host  has  acknowledged  the
     4     condition.   The  host  will  not be "synchronized" with the tape
     5     unit and data written to the media subsequent to the  last  known
     6     "synchronization" point will be effectively inaccessible.

     7     There is one exception  condition  which  must  be  accommodated.
     8     That  is  the case of encountering EOT.  This exception condition
     9     will  be  handled  by  the  TMSCP  controller  anticipating   the
    10     detection  of  EOT  through  some  "early  warning" mechanism and
    11     "winding  down"  the  write-back  caching  such  that  the  TMSCP
    12     controller  is  operating  in  a non-write-back caching mode when
    13     "true" EOT is encountered.

    14     3.6.1.4  Cached Data Lost Handling

    15     Tape Units are inherently sequential devices.   This  means  that
    16     the  order  in  which  "write"  type  data  transfer commands are
    17     executed must be  identical  to  the  order  in  which  they  are
    18     received.

    19     In traditional tape  systems,  this  sequentiality  is  preserved
    20     because  the  device  is  capable  of  having  only  one  command
    21     outstanding to a tape unit at any time.  If a "write"  type  data
    22     transfer  command  terminates  with  an  error, the host can take
    23     immediate action to prevent commands waiting to be executed  from
    24     being  presented  to the device.  The host, therefore, implicitly
    25     maintains control of sequentiality.

    26     A reliable detection mechanism for determining if write-back data
    27     has  been  lost  needs  to  be defined.  This detection mechanism
    28     needs to be hierarchical; partially implemented in the  host  and
    29     partially  implemented  in  the  TMSCP  controller.   At the host
    30     level, sufficient state needs to be maintained to  remember  that
    31     write-back  operations  are  in  progress.   This  state  may  be
    32     maintained either at the class driver level  or  the  application
    33     level  or both.  At the TMSCP controller level, there needs to be
    34     a reporting  mechanism  to  provide  information  concerning  the
    35     efficacy   of   any  pending  write-back  caching  data  transfer
    36     commands.  The effect of this detection mechanism  should  be  to
    37     facilitate  either  the  restart  of the entire application or an
    38     application dependent  restart  of  the  operations  within  some
    39     context   (i.e.,   from   the  last  known  good  host/tape  unit
    40     synchronization point).  The description of the TMSCP  controller
    41     mechanism is contained below.

    42     TMSCP controllers cannot provide host end message notification of
    43     errors   or   exceptions  encountered  during  the  execution  of
    44     write-back caching data transfer commands because the end message


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS               Page 3-26
           Tape Caching                                      8 November 1987


     1     has  already been returned to the host.  Therefore, when an error
     2     occurs and the tape unit remains "Unit Online"  to  any  host,  a
     3     TMSCP   controller  must  ensure  that  subsequent  commands  are
     4     rejected until a host acknowledges the occurrence of  the  error.
     5     This condition is known as a Cached Data Lost condition.
     6     Any of the conditions  defined  by  the  following  Status  Codes
     7     occurring  while  write-back  caching  is  enabled,  either  on a
     8     command basis or on a unit basis, will cause a Cached  Data  Lost
     9     condition:

    10           o  Controller Error
    11           o  Data Error
    12           o  Drive Error
    13           o  Formatter Error
    14           o  Position Lost, only when  Position  Lost  state  is  not
    15              already in effect (refer to section 3.5.3)
    16           o  Write Protected

    17     The following Status Codes will not  cause  a  Cached  Data  Lost
    18     condition:

    19           o  Invalid Command, all subcodes
    20           o  Success, all subcodes
    21           o  Unit-Available
    22           o  Unit-Offline


    23     Whenever one of the above error conditions occurs that causes the
    24     TMSCP controller to lose cached data for the specified tape unit,
    25     it enters the Cached Data Lost state relative  to  all  hosts  to
    26     which  it  is  currently  "Unit Online", regardless of which host
    27     issued the command encountering the error.

    28     The Cached Data Lost state is reflected in the Cached  Data  Lost
    29     end  flag (DLF).  Refer to section 4.5.1 for a description of end
    30     flags.

    31     The end message of the next sequential  command  processed  after
    32     the  occurrence  of  the Cached Data Lost condition will have its
    33     DLF set and its status will reflect  the  nature  of  the  error.
    34     Subsequent  commands  (including  those  currently  queued by the
    35     controller) are rejected with DLF set and  a  status  of  Serious
    36     Exception  in  their  end  messages.  The controller continues to
    37     reject commands in that manner until the tape  unit  Cached  Data
    38     Lost  state  is  cleared by a host.  Immediate commands processed
    39     prior to the  reporting  to  the  host  of  a  Cached  Data  Lost
    40     condition will reflect the previous state of the Cached Data Lost
    41     flag.




                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS               Page 3-27
           Tape Caching                                      8 November 1987


     1     The following commands are subject to rejection  while  a  Cached
     2     Data Lost state exists:

     3           o  ACCESS
     4           o  COMPARE HOST DATA
     5           o  ERASE
     6           o  ERASE GAP
     7           o  FLUSH
     8           o  READ
     9           o  REPOSITION
    10           o  WRITE
    11           o  WRITE TAPE MARK


    12     The Clear Cached Data Lost modifier (CDL) is the means by which a
    13     host  acknowledges the Cached Data Lost condition and signals the
    14     controller that the tape unit  Cached  Data  Lost  State  can  be
    15     cleared  and  normal  processing  resumed.   Note  that  the  CDL
    16     modifier is acted upon before any other part of  a  command.   It
    17     only  clears  the  Cached Data Lost state that existed before the
    18     command was received (i.e., a command cannot clear a Cached  Data
    19     Lost  it  caused).   The  TMSCP controller must return an Invalid
    20     Command (subcode "Invalid  Modifier")  status  code  if  the  CDL
    21     modifier  is  specified  and  a  Cached  Data Lost state does not
    22     currently exist.

    23     The  CDL  modifier  can  only  be  specified  for  the  following
    24     commands:

    25           o  ACCESS
    26           o  AVAILABLE
    27           o  COMPARE HOST DATA
    28           o  ERASE
    29           o  ERASE GAP
    30           o  FLUSH
    31           o  ONLINE
    32           o  READ
    33           o  REPOSITION
    34           o  SET UNIT CHARACTERISTICS
    35           o  WRITE
    36           o  WRITE TAPE MARK


    37     The CDL modifier is reserved for all other commands.

    38     The existence of a Cached Data Lost state does not prevent  other
    39     hosts  from bringing a tape unit into the "Unit Online" state via
    40     the ONLINE command.  The tape unit will be  in  the  Cached  Data
    41     Lost  state  relative  to  any  host  issuing a successful ONLINE
    42     command while the Cached Data Lost state exists, unless  the  CDL


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS               Page 3-28
           Tape Caching                                      8 November 1987


     1     modifier  was specified in that ONLINE command.  In that case the
     2     Cached Data Lost State is cleared for all hosts  which  have  the
     3     tape unit in the "Unit Online" state.

     4     If a tape unit leaves the "Unit Online"  state  relative  to  all
     5     hosts,  for  any  reason,  the  tape unit will cease to be in the
     6     Cached Data Lost state.

     7     3.6.2  Read-Ahead Caching

     8  |  TMSCP controllers should normally read-ahead and cache data  from
     9  |  the  media  in anticipation of host read requests.  However, each
    10  |  read request must  be  satisfied  by  a  distinct  physical  read
    11  |  operation.   If  the  host  issues multiple read requests for the
    12  |  same data, then the TMSCP controller must use a separate physical
    13  |  read  operation  to  satisfy  each request.  If the host issues a
    14  |  read request for data  that  has  been  invalidated  by  a  write
    15  |  operation  subsequent  to  the  read-ahead  operation,  the TMSCP
    16  |  controller must physically read the tape again.

    17  |  Hosts can request that data be read from tape in one of two ways:

    18  |        o  Issuing a "read" type command (ACCESS, COMPARE, READ).

    19  |        o  Issuing a command with an explicit or  implicit  compare
    20  |           operation.   That  is,  either  a command with a compare
    21  |           modifier or a command  to  which  a  compare  unit  flag
    22  |           applies.


    23  |  Note that a read-compare operation is two distinct read requests.

    24  |  A "write" type operation invalidates  all  read-ahead  data  read
    25  |  from tape objects at positions (object count) equal to or greater
    26  |  than the position (object count) of the "write" type operation.

    27  |  This effectively means that  a  TMSCP  controller  must  use  the
    28  |  following policies to manage its read-ahead cache:

    29  |       1.  Only  data  physically  read  from   tape   enters   the
    30  |           read-ahead  cache.   In  particular,  write  data  never
    31  |           enters the read-ahead cache.

    32  |       2.  Any data in the read-ahead cache that is used to satisfy
    33  |           a  host  read  request  is  immediately deleted from the
    34  |           cache,  and  is  not  available  to  satisfy  subsequent
    35  |           requests.   If  multiple  physical  read operations have
    36  |           entered multiple copies of the same data in  the  cache,
    37  |           then only one copy need be deleted.



                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS               Page 3-29
           Tape Caching                                      8 November 1987


     1  |       3.  A  "write"  type  operation  causes  any  data  in   the
     2  |           read-ahead  cache  read  from  objects  with  a position
     3  |           (object count) greater than or  equal  to  the  position
     4  |           (object  count)  of  the  "write"  type  operation to be
     5  |           immediately deleted from the cache.

     6  |       4.  In addition to the above, the TMSCP controller  may,  at
     7  |           its   discretion,   delete  any  or  all  of  the  TMSCP
     8  |           controller's read-ahead cached data.


     9     Proper support for read-ahead caching requires  that  controlled,
    10     predictable   results  be  specified  for  the  handling  of  the
    11     following conditions:


    12           o  Conflicting requirements imposed by unit flags.

    13           o  Conflicting requirements imposed by command modifiers.

    14           o  Data transfer errors during read ahead operations.


    15     3.6.2.1  Unit Flag Conflicts

    16     The  "Compare  Reads"  and  the  "Suppress  Caching"  unit  flags
    17     override  the enabling of read-ahead caching.  There are no other
    18     unit flags in conflict with the enabling of read-ahead caching.

    19     3.6.2.2  Command Modifier Conflicts

    20     The "Compare" modifier on READ commands overrides the enabling of
    21     read-ahead  caching  for the duration of the command.  Read-ahead
    22     caching may be re-established after the compare  portion  of  the
    23     command  if  subsequent  commands  do not also have the "Compare"
    24     modifier set.

    25     The "Suppress Caching" modifier on "read" type commands overrides
    26     the  enabling  of  read-ahead  caching  for  the  duration of the
    27     specified command.   Read-ahead  caching  may  be  re-established
    28     after  the  completion  of  the  specified  command if subsequent
    29     "read" type commands do not  also  have  the  "Suppress  Caching"
    30     modifier set.

    31     The  "Suppress  Error  Recovery"  command  modifier  may   either
    32     override  the  enabling of read-ahead caching for the duration of
    33     the command, or be handled as specified in the following sections
    34     (this approach assumes that the first unrecoverable or suppressed
    35     error  recovery  data  transfer  error  terminates  any   further
    36     processing).


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP GENERAL OPERATIONAL CHARACTERISTICS               Page 3-30
           Tape Caching                                      8 November 1987


     1     Read-ahead caching may be re-established if  subsequent  commands
     2     do  not  also have the "Suppress Error Recovery" command modifier
     3     set.

     4     There are  no  other  command  modifiers  in  conflict  with  the
     5     enabling of read-ahead caching.

     6     3.6.2.3  Error Handling

     7     TMSCP controllers are responsible for handling  all  errors  that
     8     occur  during  read-ahead  caching.   TMSCP  controllers issue an
     9     error log detailing the error that occurred (provided that  error
    10     normally  requires  logging  [refer  to  Appendix  B]), when data
    11     associated with the specific data record  causing  the  error  is
    12     requested  by  the  host.  In order to accomplish this objective,
    13     the TMSCP controller must make a reasonable assumption about  the
    14     format  of  data  records  and tape marks written on the magnetic
    15     tape.  This assumption about tape format will  be  formalized  in
    16     the  definition  of  a properly formatted tape segment which is a
    17     portion of magnetic  tape  starting  at  BOT  which  contains  an
    18     arbitrary  number  of  data  records  and tape marks in arbitrary
    19     order,  terminating  in  two  consecutive  tape  marks  with   no
    20     intervening data records.  A properly formatted tape segment must
    21     be written from BOT or may result from the arbitrary appending of
    22     additional  data  records  and tape marks to a properly formatted
    23     tape segment which also results  in  a  properly  formatted  tape
    24     segment.   The TMSCP controller must terminate read-ahead caching
    25     upon detection of the end of a properly  formatted  tape  segment
    26     while  reading  in the forward direction.  Subsequent Host issued
    27     "read" type commands  in  the  forward  direction  may  re-enable
    28     read-ahead  caching.   In  addition,  TMSCP controllers may apply
    29     other recording technology or implementation dependent mechanisms
    30     in  order  to  properly  control  read-ahead caching and minimize
    31     their error handling requirements.


















                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP MESSAGE OVERVIEW                                   Page 4-1
                                                             8 November 1987


     1                                 CHAPTER 4

     2                          TMSCP MESSAGE OVERVIEW


     3     4.1  Tape MSCP Functions Having No Disk MSCP Counterparts

     4           o  ERASE GAP
     5           o  FLUSH
     6           o  REPOSITION
     7           o  WRITE TAPE MARK


     8     4.2  Identical Disk And Tape MSCP Functions

     9     The following functions are identical in both Disk MSCP and  Tape
    10     MSCP.  Their descriptions have been omitted from this document.

    11           o  ABORT  (Refer  to  section   3.2.1.2   for   operational
    12              clarifications)
    13           o  ACCESS NON-VOLATILE MEMORY
    14           o  DETERMINE ACCESS PATHS
    15           o  GET COMMAND STATUS
    16           o  SET CONTROLLER CHARACTERISTICS
    17           o  INVALID COMMAND End Message
    18           o  ACCESS PATH Attention Message
    19           o  AVAILABLE Attention Message
    20           o  DUPLICATE UNIT NUMBER Attention Message


    21     4.3  Tape Specific MSCP Commands And Responses

    22     Following is a list of Tape specific  MSCP  commands,  which  are
    23     described in Chapter 5.

    24           o  ACCESS
    25           o  AVAILABLE
    26           o  COMPARE HOST DATA
    27           o  ERASE
    28           o  ERASE GAP
    29           o  GET UNIT STATUS
    30           o  ONLINE
    31           o  READ
    32           o  REPOSITION
    33           o  SET UNIT CHARACTERISTICS
    34           o  WRITE
    35           o  WRITE TAPE MARK





                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP MESSAGE OVERVIEW                                   Page 4-2
           Generic Command Message Format                    8 November 1987


     1     4.4  Generic Command Message Format

     2     Refer to MSCP  for  a  general  description  of  command  message
     3     formats.

     4     4.4.1  Command Modifiers

     5     Refer to MSCP for  a  general  description  of  command  modifier
     6     operations.

     7     The following  command  modifiers  are  supported  by  TMSCP  but
     8     described in MSCP:

     9           o  All Class Drivers
    10           o  Enable Set Write Protect
    11           o  Exclusive Access
    12           o  Next Unit
    13           o  Suppress Error Correction


    14     The following command modifiers apply to a single TMSCP  command.
    15     Their  operation  is  described  within  the  identified  command
    16     description:

    17           o  Detect LEOT - REPOSITION
    18           o  Enable Re-write Error Recovery - WRITE
    19           o  Object Count - REPOSITION
    20           o  Rewind - REPOSITION
    21           o  Unload - AVAILABLE


    22     The following command modifiers apply to various TMSCP  commands.
    23     Their  operation  is  described  within  the  identified  general
    24     operation sections:

    25           o  Clear Cached Data Lost - 3.6.1.4
    26           o  Clear Serious Exception - 3.5.2
    27           o  Compare - 3.4.3.4
    28           o  Immediate  Completion  -  3.2  for   non-data   transfer
    29              commands
    30           o  Immediate Completion - 3.6 for data transfer commands
    31           o  Reverse - 3.3
    32           o  Suppress Caching - 3.6.2.2
    33           o  Suppress Error Recovery - 3.5.5.1








                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP MESSAGE OVERVIEW                                   Page 4-3
           End Message Format                                8 November 1987


     1     4.5  End Message Format

     2     Refer to MSCP for  a  general  description  of  the  end  message
     3     format.

     4     4.5.1  Flags

     5     The following end flag is supported by TMSCP but defined in MSCP:

     6           o  Error Log Generated

     7     End flags specific to TMSCP  and  common  to  many  commands  are
     8     defined here:

     9           o  Cached Data Lost

    10                  Set when cached data is lost  because  a  tape  unit
    11                  entered the Serious Exception state while write-back
    12                  caching is enabled.  Refer to  section  3.6.1.4  for
    13                  further details.


    14           o  EOT Encountered

    15                  Set whenever the magnetic tape loaded on a drive  is
    16                  currently  positioned  at  or  beyond EOT.  Refer to
    17                  section 3.3 for further details.


    18           o  Position Lost

    19                  Set when a tape unit is in the Position Lost  state.
    20                  Refer to section 3.5.3 for further details.


    21           o  Serious Exception

    22                  Set when a tape unit is  in  the  Serious  Exception
    23                  state.  Refer to section 3.5.2 for further details.



    24     4.5.2  Status

    25     Refer to MSCP for a complete  description  of  the  status  field
    26     format.






                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP MESSAGE OVERVIEW                                   Page 4-4
           End Message Format                                8 November 1987


     1     4.5.3  Status Codes

     2     The following status codes are common to  both  MSCP  and  TMSCP.
     3     Refer to MSCP for a complete description:

     4           o  Command Aborted
     5           o  Controller Error
     6           o  Drive Error
     7           o  Host Buffer Access Error
     8           o  Invalid Command (subcode "Invalid Unit Flags")
     9           o  Unit-Available
    10           o  Unit-Offline


    11     Major status codes that are TMSCP specific  are  described  here.
    12     Status  codes  specific  to  a single TMSCP command are described
    13     with the associated command.

    14           o  BOT Encountered

    15                  This status code will be returned  whenever  BOT  is
    16                  unexpectedly  encountered  during the execution of a
    17                  reverse read type command.  See section 3.3.1.2  for
    18                  more details.


    19           o  Compare Error

    20                  This  status  code  will  be  returned  whenever   a
    21                  difference is found between the tape record data and
    22                  the host buffer data during a compare operation.  It
    23                  will  also  be  returned  if  a short tape record is
    24                  encountered during a COMPARE HOST  DATA  or  compare
    25                  modified READ command.


    26           o  Data Error (subcode "Long Gap Encountered")

    27                  This status code will be returned when a long gap is
    28                  detected  while  attempting  to  execute a read type
    29                  command (i.e., ACCESS, COMPARE HOST  DATA,  READ  or
    30                  REPOSITION).    Tape  motion  ceases  and  the  tape
    31                  remains positioned at  the  end  of  the  long  gap.
    32                  Refer  to  Appendix  C,  Table  C-4  for tape format
    33                  dependent long gap values.


    34           o  Data Error (subcode "Unrecoverable Read Error")




                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP MESSAGE OVERVIEW                                   Page 4-5
           End Message Format                                8 November 1987


     1                  This status code will be returned:  1) if  the  tape
     2                  format   cannot   be   determined   from   the  TFIA
     3                  information during first read density selection; or,
     4                  2) if invalid or uncorrectable data is obtained from
     5                  the tape  unit,  as  determined  by  internal  error
     6                  detecting or correcting codes.


     7           o  Formatter Error

     8                  This  status  will  be  returned  when  a  formatter
     9                  reports   an   internally   detected  error  to  the
    10                  controller.  The subcode  will  identify  the  exact
    11                  cause of the error.


    12           o  Invalid Command (subcode "Invalid Byte Count")

    13                  The command specified a byte count greater than  the
    14                  absolute  maximum  allowed by the controller.  Refer
    15                  to Appendix C, Table C-3 for specifics.


    16           o  Media Format Error

    17                  This status code will be returned whenever the media
    18                  is  formatted in a manner that cannot be written nor
    19                  read by the controller (i.e., if  a  disk  formatted
    20                  media   is   accessed  by  TMSCP  on  a  combination
    21                  TMSCP/MSCP device).


    22           o  Position Lost

    23                  This status  code  will  be  returned  whenever  the
    24                  controller, formatter, or tape unit loses context of
    25                  the tape position (object count).

    26  |                                       NOTE

    27  |                   The intent of this status code is to  report
    28  |                   the  loss of tape position when further tape
    29  |                   motion  operations  are   believed   to   be
    30  |                   possible  by  the  unit.  If an error occurs
    31  |                   that is not recoverable and prevents further
    32  |                   tape   motion   commands   (i.e.,  the  tape
    33  |                   breaks), then the appropriate drive or  data
    34  |                   error  should  be  reported as the status of
    35  |                   the  command,  rather  than  a   status   of
    36  |                   Position  Lost.   The Position Lost end flag


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP MESSAGE OVERVIEW                                   Page 4-6
           End Message Format                                8 November 1987


     1  |                   should still be used as appropriate.



     2           o  Record Data Truncated

     3                  This error code will be returned whenever the length
     4                  of  a  tape  record  read  is greater than the value
     5                  supplied  in  the  "byte   count"   field   of   the
     6                  corresponding command message.


     7           o  Serious Exception

     8                  The command is rejected because  the  tape  unit  is
     9                  currently  in  the  Serious  Exception  state or the
    10                  Cached Data Lost state.  Refer to section 3.5.2  and
    11                  section 3.6.1.4 for further details.


    12           o  Success (subcode "EOT Encountered")

    13                  This status code will be returned  whenever  EOT  is
    14                  encountered  during  the  execution  of a write type
    15                  command (i.e.,  ERASE  GAP,  WRITE,  or  WRITE  TAPE
    16                  MARK).   The  command  will  complete  in the normal
    17                  fashion after EOT is encountered.


    18           o  Tape Mark Encountered

    19                  This status code will be returned  whenever  a  tape
    20                  mark   is   unexpectedly   encountered   during  the
    21                  execution of a  read  type  command.   See  sections
    22                  3.3.1.4 and 5.10.3 for more details.


    23           o  Write Protected
    24                  (subcode "Unit is Hardware Write Protected")
    25                  (subcode "Unit is Software Write Protected")
    26                  (subcode "Unit is Data Safety Write Protected")

    27                      This status will be returned if the tape unit is
    28                      found  to  be hardware, software, or data safety
    29                      Write Protected when a command requiring a write
    30                      operation  is  issued.   The command is rejected
    31                      immediately and no tape motion will occur.   The
    32                      subcode   reflects   the   tape  unit  hardware,
    33                      software and data safety write protect state(s),
    34                      maintained by the controller.


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP MESSAGE OVERVIEW                                   Page 4-7
           End Message Format                                8 November 1987


     1     The status codes that may be returned for each  command  and  any
     2     special  meaning  that  they  have  are listed in the command end
     3     message descriptions in Chapter 5.

     4     4.5.4  Byte Count (Host Transfer)

     5     This field, returned in the COMPARE HOST DATA,  READ,  and  WRITE
     6     command  end  messages, reflects the number of bytes SUCCESSFULLY
     7     compared or transferred.  The count begins with  the  first  byte
     8     transferred to/from the tape record and ceases at either the byte
     9     count specified in the command message or the byte count  of  the
    10     first error encountered, if any.

    11     If the controller cannot initiate the command for any reason  the
    12     value returned in this field is zero.

    13     If  an  error  occurs,  the  controller  must  have  SUCCESSFULLY
    14     compared  or  transferred  all data up to the point identified by
    15     "byte count".  Furthermore, the error identified by "status" must
    16     have  actually  occurred at the byte position identified by "byte
    17     count".

    18     READ or WRITE commands  that  include  a  compare  operation  are
    19     special  cases.   Such  a command makes two passes over the data:
    20     one for  the  original  transfer  and  another  for  the  compare
    21     operation.   For  most  errors,  there  is no way to determine in
    22     which pass the error was detected.  Therefore, the only guarantee
    23     is  that  error-free  transfer  was  performed  up  to  the point
    24     identified by "byte count".  The compare operation may or may not
    25     have  been  performed  up to that point.  If a "Compare Error" is
    26     reported, both the original transfer and  the  compare  operation
    27     have  been  successfully  performed up to the point identified by
    28     "byte count".

    29                                   NOTE

    30             The state of a compare or transfer following  the
    31             byte  position  identified  by  "byte  count"  is
    32             undefined, since:

    33             1.  None of the transfer following  "byte  count"
    34                 may have been performed or attempted.

    35             2.  All of  it  may  have  been  attempted  (with
    36                 unknown success).

    37             3.  Some parts may have been attempted and others
    38                 not.




                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP MESSAGE OVERVIEW                                   Page 4-8
           End Message Format                                8 November 1987


     1             This implies that the compare pass of a  transfer
     2             command may be performed for the entire transfer,
     3             or portions thereof.


     4     4.5.5  Byte Count (Tape Record)

     5     This field, returned in the ACCESS, COMPARE HOST DATA, READ,  and
     6     WRITE   command  end  messages,  reflects  the  number  of  bytes
     7     contained in the tape record.  This field is only  valid  if  the
     8     controller  can determine the actual size of the tape record.  If
     9     the controller is unable to determine the tape record  size,  the
    10     value returned in this field is zero.

    11     4.5.6  Position (Object Count)

    12     This field, returned in the ACCESS, COMPARE HOST DATA, ERASE GAP,
    13     FLUSH,  READ,  REPOSITION,  WRITE and WRITE TAPE MARK command end
    14     messages, reflects the current position of the tape in  terms  of
    15     object  counts  forward  of  BOT.   Because  of the potential for
    16     command  pipelining  within  the  controller  and/or   the   tape
    17     formatter,  the  most  currently  reported "object count" may lag
    18     behind the actual physical drive  position.   Nevertheless,  this
    19     information is sufficient for host recovery from power failure or
    20     position lost situations.

    21     All caching units must report Position in a manner that makes the
    22     caching  transparent to higher levels.  Thus, the contents of the
    23     Position field is the position  on  tape,  in  terms  of  objects
    24     forward of BOT, of the object whose end message has most recently
    25     been generated for the indicated unit.  I.e.,  a  unit  caches  a
    26     WRITE  command,  and  sends  an end message indicating successful
    27     completion.  In  that  and  subsequent  end  messages,  the  unit
    28     reports position as if the WRITE had already taken place, when in
    29     reality the WRITE may still be waiting in the cache.

    30     When a "position lost" condition is encountered or the tape  unit
    31     is  in  the  Position  Lost  state  (refer to section 3.5.3), the
    32     controller will return its  "best  guess"  object  count  in  the
    33     Position  field.  The "best guess" can be obtained by setting the
    34     object count to be the last known (good) position when  the  unit
    35     first  enters the Position Lost state.  Subsequent positioning of
    36     the drive causes corresponding changes to the "best guess" object
    37     count.

    38     This field must be valid when the tape unit is "Unit Online"  and
    39     not  in  the  Position  Lost  state.  This field must contain the
    40     unit's "best guess" object count when  the  tape  unit  is  "Unit
    41     Online" and in the Position Lost state.



                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                               Page 5-1
                                                             8 November 1987


     1                                 CHAPTER 5

     2                        TMSCP COMMAND DESCRIPTIONS


     3     5.1  ACCESS Command

     4     Command Category:

     5              Sequential


     6     5.1.1  Command Message Format

     7                     31                             0 
     8                     +-------------------------------+
     9                     |    command reference number   |
    10                     +---------------+---------------+
    11                     |    reserved   |  unit number  |
    12                     +---------------+-------+-------+
    13                     |   modifiers   |  rsvd | opcode|
    14                     +---------------+-------+-------+
    15                     |           byte count          |
    16                     +-------------------------------+


    17     Allowable Modifiers:

    18              Clear Cached Data Lost
    19              Clear Serious Exception
    20              Reverse (see section 3.3.1.1)
    21              Suppress Caching
    22              Suppress Error Correction
    23              Suppress Error Recovery


















                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                               Page 5-2
           ACCESS Command                                    8 November 1987


     1     5.1.2  End Message Format

     2                     31                             0 
     3                     +-------------------------------+
     4                     |    command reference number   |
     5                     +---------------+---------------+
     6                     |sequence number|  unit number  |
     7                     +---------------+-------+-------+
     8                     |     status    | flags |endcode|
     9                     +---------------+-------+-------+
    10                     |                               |
    11                     +----                       ----+
    12                     |                               |
    13                     +----       undefined       ----+
    14                     |                               |
    15                     +----                       ----+
    16                     |                               |
    17                     +-------------------------------+
    18                     |    position  (object count)   |
    19                     +-------------------------------+
    20                     |    byte count (tape record)   |
    21                     +-------------------------------+


    22     Status Codes:

    23              Success
    24                  (subcode "Normal")

    25              BOT Encountered
    26              Command Aborted
    27              Controller Error
    28              Data Error
    29              Drive Error
    30              Formatter Error

    31              Invalid Command
    32                  (subcode "Invalid Byte Count")
    33                  (subcode "Illegal Modifier") (see section 3.3.1.1)

    34              Position Lost
    35              Record Data Truncated
    36              Serious Exception
    37              Tape Mark Encountered
    38              Unit-Available
    39              Unit-Offline






                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                               Page 5-3
           ACCESS Command                                    8 November 1987


     1     Flags:

     2              Cached Data Lost
     3              EOT Encountered
     4              Error Log Generated
     5              Position Lost
     6              Serious Exception













































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                               Page 5-4
           ACCESS Command                                    8 November 1987


     1     5.1.3  Description

     2     Beginning at the current position, data is read from the magnetic
     3     tape  loaded  on the specified unit, checked for errors, and then
     4     discarded.

     5     Refer to sections 3.3, 3.4, and 3.5 for additional detail.













































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                               Page 5-5
           AVAILABLE Command                                 8 November 1987


     1     5.2  AVAILABLE Command

     2     Command Category:

     3              Sequential - Immediate Completion


     4     5.2.1  Command Message Format

     5                     31                             0 
     6                     +-------------------------------+
     7                     |    command reference number   |
     8                     +---------------+---------------+
     9                     |    reserved   |  unit number  |
    10                     +---------------+-------+-------+
    11                     |   modifiers   |  rsvd | opcode|
    12                     +---------------+-------+-------+


    13     Allowable Modifiers:

    14              All Class Drivers (ignored in single host case)
    15              Clear Cached Data Lost
    16              Clear Serious Exception
    17              Exclusive Access
    18              Unload


























                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                               Page 5-6
           AVAILABLE Command                                 8 November 1987


     1     5.2.2  End Message Format

     2                     31                             0 
     3                     +-------------------------------+
     4                     |    command reference number   |
     5                     +---------------+---------------+
     6                     |sequence number|  unit number  |
     7                     +---------------+-------+-------+
     8                     |     status    | flags |endcode|
     9                     +---------------+-------+-------+


    10     Status Codes:

    11              Success

    12                  (subcode "Normal")

    13                  (subcode "Still Connected")

    14                      The "still connected" subcode is returned if the
    15                      tape   unit  may  potentially  be  accessed  via
    16                      another controller  but  some  other  tape  unit
    17                      which  shares  the  same  access  path  is still
    18                      "Unit-Online" to another host.

                           
    19                  (subcode "Still Online")

    20                      The "still online" subcode  indicates  that  the
    21                      tape   unit   is  now  "Unit-Available"  to  the
    22                      requesting Host, but  the  tape  unit  is  still
    23                      "Unit-Online" to another Host.


    24                  (subcode "Still Online/Unload Ignored")

    25                      The "Still  Online/Unload  Ignored"  subcode  is
    26                      returned if the "Unload" modifier was set in the
    27                      command message and  the  unload  was  inhibited
    28                      because  the tape unit is still "Unit Online" to
    29                      another host.


    30              Command Aborted
    31              Controller Error
    32              Drive Error
    33              Exclusive Access




                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                               Page 5-7
           AVAILABLE Command                                 8 November 1987


     1              Formatter Error
     2              Serious Exception
     3              Unit-Offline

     4     Flags:

     5              Cached Data Lost
     6              EOT Encountered
     7              Error Log Generated
     8              Position Lost
     9              Serious Exception









































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                               Page 5-8
           AVAILABLE Command                                 8 November 1987


     1     5.2.3  Description

     2     All outstanding host commands are completed after which the  tape
     3     unit  is  placed  in  the  "Unit Available" state relative to the
     4     host.

     5     If the tape unit is not "Unit Online" to any other host, the tape
     6     is rewound to BOT.

     7     If the "Unload" command modifier is set and the tape unit is  not
     8     "Unit  Online" to any other host (i.e., "Still Online"), the tape
     9     will be unloaded, rendering the tape unit  "Unit-Offline".   Note
    10     that   a  "Still  Connected"  condition  will  not  inhibit  tape
    11     unloading, if unload was requested.

    12     If the "Unload" command modifier was not set, the  tape  unit  is
    13     not  already "Unit-Available" and no other tape units sharing the
    14     same access path are "Unit-Online" (i.e., the  "Still  Connected"
    15     status  subcode  flag  is  clear),  then  an  AVAILABLE attention
    16     message is sent by any other controller to which the tape unit is
    17     connected.   The  controller  to which this command was sent need
    18     not send an AVAILABLE attention message.

    19     This command will be accepted if the tape unit is  "Unit  Online"
    20     or  "Unit  Available".  There is no point in issuing this command
    21     to a "Unit Available" tape unit without specifying  the  "Unload"
    22     modifier.

    23     Refer to section 3.2 for additional information.

    24     The actions of this command with the  Exclusive  Access  modifier
    25     are described in the MSCP specification.




















                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                               Page 5-9
           COMPARE HOST DATA Command                         8 November 1987


     1     5.3  COMPARE HOST DATA Command

     2     Command Category:

     3              Sequential


     4     5.3.1  Command Message Format

     5                     31                             0 
     6                     +-------------------------------+
     7                     |    command reference number   |
     8                     +---------------+---------------+
     9                     |    reserved   |  unit number  |
    10                     +---------------+-------+-------+
    11                     |   modifiers   |  rsvd | opcode|
    12                     +---------------+-------+-------+
    13                     |           byte count          |
    14                     +-------------------------------+
    15                     |                               |
    16                     +---          buffer         ---+
    17                     |                               |
    18                     +---        descriptor       ---+
    19                     |                               |
    20                     +-------------------------------+


    21     Allowable Modifiers:

    22              Clear Cached Data Lost
    23              Clear Serious Exception
    24              Reverse (see section 3.3.1.1)
    25              Suppress Caching
    26              Suppress Error Correction
    27              Suppress Error Recovery

















                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-10
           COMPARE HOST DATA Command                         8 November 1987


     1     5.3.2  End Message Format

     2                     31                             0 
     3                     +-------------------------------+
     4                     |    command reference number   |
     5                     +---------------+---------------+
     6                     |sequence number|  unit number  |
     7                     +---------------+-------+-------+
     8                     |     status    | flags |endcode|
     9                     +---------------+-------+-------+
    10                     |   byte count (host transfer)  |
    11                     +-------------------------------+
    12                     |                               |
    13                     +----                       ----+
    14                     |           undefined           |
    15                     +----                       ----+
    16                     |                               |
    17                     +-------------------------------+
    18                     |    position  (object count)   |
    19                     +-------------------------------+
    20                     |    byte count (tape record)   |
    21                     +-------------------------------+


    22     Status Codes:

    23              Success
    24                  (subcode "Normal")

    25              BOT Encountered
    26              Command Aborted
    27              Compare Error
    28              Controller Error
    29              Data Error
    30              Drive Error
    31              Formatter Error
    32              Host Buffer Access Error

    33              Invalid Command
    34                  (subcode "Invalid Byte Count")
    35                  (subcode "Illegal Modifier") (see section 3.3.1.1)

    36              Position Lost
    37              Record Data Truncated
    38              Serious Exception
    39              Tape Mark Encountered
    40              Unit-Available
    41              Unit-Offline




                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-11
           COMPARE HOST DATA Command                         8 November 1987


     1     Flags:

     2              Cached Data Lost
     3              EOT Encountered
     4              Error Log Generated
     5              Position Lost
     6              Serious Exception













































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-12
           COMPARE HOST DATA Command                         8 November 1987


     1     5.3.3  Description

     2     Beginning at the current position, data is read from a record  on
     3     the  magnetic tape and compared to the data in the specified host
     4     buffer.

     5     Refer to sections 3.3, 3.4, and 3.5 for additional detail.













































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-13
           ERASE Command                                     8 November 1987


     1     5.4  ERASE Command

     2     Command Category:

     3              Sequential (optionally Immediate Completion)


     4     5.4.1  Command Message Format

     5                     31                             0 
     6                     +-------------------------------+
     7                     |    command reference number   |
     8                     +---------------+---------------+
     9                     |    reserved   |  unit number  |
    10                     +---------------+-------+-------+
    11                     |   modifiers   | rsvd  | opcode|
    12                     +---------------+-------+-------+


    13     Allowable Modifiers:

    14              Clear Cached Data Lost
    15              Clear Serious Exception

    16              Immediate Completion

    17                  If this  modifier  is  set,  this  command  will  be
    18                  executed   in  an  asynchronous  manner.   Refer  to
    19                  section 3.2 for complete details.























                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-14
           ERASE Command                                     8 November 1987


     1     5.4.2  End Message Format

     2                     31                             0 
     3                     +-------------------------------+
     4                     |    command reference number   |
     5                     +---------------+---------------+
     6                     |sequence number|  unit number  |
     7                     +---------------+-------+-------+
     8                     |     status    | flags |endcode|
     9                     +---------------+-------+-------+


    10     Status Codes:

    11              Success
    12                  (subcode "Normal")

    13              Command Aborted
    14              Controller Error
    15              Drive Error
    16              Formatter Error
    17              Serious Exception
    18              Unit-Available
    19              Unit-Offline

    20              Write Protected
    21                  (subcode "Unit is Hardware Write Protected")
    22                  (subcode "Unit is Software Write Protected")
    23                  (subcode "Unit is Data Safety Write Protected")



    24     Flags:

    25              Cached Data Lost
    26              EOT Encountered
    27              Error Log Generated
    28              Position Lost
    29              Serious Exception













                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-15
           ERASE Command                                     8 November 1987


     1     5.4.3  Description

     2     Tape objects are erased starting at  the  current  tape  position
     3     through  PEOT  (see  chapter  2).  The tape is then positioned to
     4     BOT.

     5     Refer to sections 3.3 and 3.5 for additional detail.













































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-16
           ERASE GAP Command                                 8 November 1987


     1     5.5  ERASE GAP Command

     2     Command Category:

     3              Sequential (optionally Immediate Completion)


     4     5.5.1  Command Message Format

     5                     31                             0 
     6                     +-------------------------------+
     7                     |    command reference number   |
     8                     +---------------+---------------+
     9                     |    reserved   |  unit number  |
    10                     +---------------+-------+-------+
    11                     |   modifiers   |  rsvd | opcode|
    12                     +---------------+-------+-------+


    13     Allowable Modifiers:

    14              Clear Cached Data Lost
    15              Clear Serious Exception

    16              Immediate Completion

    17                  If  this  modifier  is  set,  this  command  may  be
    18                  executed  as  a "write-back" caching enabled "write"
    19                  type command.  Refer to section 3.6.1  for  complete
    20                  details.






















                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-17
           ERASE GAP Command                                 8 November 1987


     1     5.5.2  End Message Format

     2                     31                             0 
     3                     +-------------------------------+
     4                     |    command reference number   |
     5                     +---------------+---------------+
     6                     |sequence number|  unit number  |
     7                     +---------------+-------+-------+
     8                     |     status    | flags |endcode|
     9                     +---------------+-------+-------+


    10     Status Codes:

    11              Success
    12                  (subcode "Normal")
    13                  (subcode "EOT Encountered")

    14              Command Aborted
    15              Controller Error
    16              Drive Error
    17              Formatter Error
    18              Position Lost
    19              Serious Exception
    20              Unit-Available
    21              Unit-Offline
                           
    22              Write Protected
    23                  (subcode "Unit is Hardware Write Protected")
    24                  (subcode "Unit is Software Write Protected")
    25                  (subcode "Unit is Data Safety Write Protected")



    26     Flags:

    27              Cached Data Lost
    28              EOT Encountered
    29              Error Log Generated
    30              Position Lost
    31              Serious Exception











                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-18
           ERASE GAP Command                                 8 November 1987


     1     5.5.3  Description

     2     Beginning at the current tape position, a format dependent record
     3     gap is recorded on the magnetic tape loaded on the specified tape
     4     unit.  This command is useful for  bypassing  tape  defects  when
     5     write error recovery is host controlled.

     6     Refer to sections 3.3 and 3.5 for additional detail.

     7                                  WARNING

     8             The use of this  command  may  cause  undesirable
     9             interaction   with   formatter   directed   error
    10             recovery  sequences  resulting  in   non-standard
    11             record  gaps.  Affected tapes may not be readable
    12             on all systems.




































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-19
           FLUSH Command                                     8 November 1987


     1     5.6  FLUSH Command

     2     Command Category:

     3              Sequential


     4     5.6.1  Command Message Format

     5                     31                             0 
     6                     +-------------------------------+
     7                     |    command reference number   |
     8                     +---------------+---------------+
     9                     |    reserved   |  unit number  |
    10                     +---------------+-------+-------+
    11                     |   modifiers   |  rsvd | opcode|
    12                     +---------------+-------+-------+


    13     Allowable Modifiers:

    14              Clear Cached Data Lost
    15              Clear Serious Exception





























                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-20
           FLUSH Command                                     8 November 1987


     1     5.6.2  End Message Format

     2                     31                             0 
     3                     +-------------------------------+
     4                     |    command reference number   |
     5                     +---------------+---------------+
     6                     |sequence number|  unit number  |
     7                     +---------------+-------+-------+
     8                     |     status    | flags |endcode|
     9                     +---------------+-------+-------+
    10                     |                               |
    11                     +----                       ----+
    12                     |                               |
    13                     +----       undefined       ----+
    14                     |                               |
    15                     +----                       ----+
    16                     |                               |
    17                     +-------------------------------+
    18                     |    position  (object count)   |
    19                     +-------------------------------+


    20     Status Codes:

    21              Success
    22                  (subcode "Normal")
    23                  (subcode "EOT Encountered")

    24              Command Aborted
    25              Controller Error
    26              Data Error
    27              Formatter Error
    28              Position Lost
    29              Serious Exception
    30              Unit-Available
    31              Unit-Offline

    32              Write Protected
    33                  (subcode "Unit is Hardware Write Protected")
    34                  (subcode "Unit is Software Write Protected")
    35                  (subcode "Unit is Data Safety Write Protected")



    36     Flags:

    37              Cached Data Lost
    38              EOT Encountered




                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-21
           FLUSH Command                                     8 November 1987


     1              Error Log Generated
     2              Position Lost
     3              Serious Exception


     4     Position (Object Count):

     5              This field, returned in the FLUSH command  end  message,
     6              reflects  the  current  position of the tape in terms of
     7              object counts forward of BOT.  Because of the  potential
     8              for  command pipelining within the controller and/or the
     9              tape formatter,  the  most  currently  reported  "object
    10              count"   may   lag  behind  the  actual  physical  drive
    11              position.  Nevertheless, this information is  sufficient
    12              for  host  recovery  from power failure or position lost
    13              situations when write-back caching is enabled.

    14              When a "position lost" condition is encountered  or  the
    15              tape  unit  is  in  the  Position  Lost  state (refer to
    16              3.5.3), the controller will return the last known (good)
    17              "object count".































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-22
           FLUSH Command                                     8 November 1987


     1     5.6.3  Description

     2  |  The FLUSH command is used to ensure that  all  previously  issued
     3  |  cached  "write"  type commands have fully completed.  Hosts would
     4     normally   use   this   command   to   establish   or    maintain
     5     synchronization  with  "write"  type commands being issued to the
     6     specified tape unit.

     7  |  The end  message  to  FLUSH  command  is  not  issued  until  all
     8  |  previously issued sequential commands have fully completed.  This
     9  |  means that the data for all previous "write"  type  commands  has
    10  |  been  successfully  written  to  media,  or  a  Cached  Data Lost
    11  |  condition has caused the write-back cache  to  be  cleared.   The
    12     order  in  which the write-back cached data is transferred to the
    13     specified tape unit is the exactly the same as the order in which
    14  |  the  write-back  cached  "write"  type  commands occurred.  TMSCP
    15  |  controllers should continue to fetch and  buffer  host  data  for
    16  |  subsequent  "write"  type  commands, provided that such action is
    17  |  required in order to ensure high performance (i.e.,  required  to
    18  |  keep  the unit streaming).  The TMSCP controller must be prepared
    19  |  to take the appropriate action with such pre-fetched data in  the
    20  |  event  of  a  Cached  Data  Lost  condition or similar unexpected
    21  |  event.  The TMSCP controller must also preserve sequentiality  of
    22  |  such  subsequent  "write" type commands with the FLUSH command as
    23  |  well as all other sequential commands.

    24     Refer to sections 3.3, 3.4, 3.5, and 3.6 for additional detail.












        












                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-23
           GET UNIT STATUS Command                           8 November 1987


     1     5.7  GET UNIT STATUS Command

     2     Command Category:

     3              Immediate


     4     5.7.1  Command Message Format

     5                     31                             0 
     6                     +-------------------------------+
     7                     |    command reference number   |
     8                     +---------------+---------------+
     9                     |    reserved   |  unit number  |
    10                     +---------------+-------+-------+
    11                     |   modifiers   |  rsvd | opcode|
    12                     +---------------+-------+-------+


    13     Allowable Modifiers:

    14              Next Unit


























                           



                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-24
           GET UNIT STATUS Command                           8 November 1987


     1     5.7.2  End Message Format

     2                     31                             0 
     3                     +-------------------------------+
     4                     |    command reference number   |
     5                     +---------------+---------------+
     6                     |sequence number|  unit number  |
     7                     +---------------+-------+-------+
     8                     |     status    | flags |endcode|
     9                     +---------------+-------+-------+
    10                     |   unit flags  |multi-unit code|
    11                     +-------------------------------+
    12                     |            reserved           |
    13                     +-------------------------------+
    14                     |                               |
    15                     +---     unit identifier     ---+
    16                     |                               |
    17                     +-------------------------------+
    18                     |     media type identifier     |
    19                     +---------------+---------------+
    20                     |     speed     |     format    |
    21                     +-------+-------+---------------+
    22                     |  rsvd |freecap|  format menu  |
    23                     +-------+-----------------------+
    24                     | uhvrsn| usvrsn| fhvrsn| fsvrsn|
    25                     +-------+-------+-------+-------+


    26     Status Codes:

    27              Success

    28                  (subcode "Normal") = Unit is "UNIT ON-LINE"

    29                  (subcode "Duplicate Unit Number")

    30                      Implies that the tape unit is "Unit-Online", but
    31                      that  its  unit  number  is identical to that of
    32                      some other unit known to  the  controller.   The
    33                      tape unit will become "Unit-Offline", due to the
    34                      duplicate Unit Number, as soon as it  ceases  to
    35                      be "Unit-Online".


    36                  (subcode "Read-only Volume Format")

    37                      The unit only implements  read  access  for  the
    38                      format  of  the volume mounted in the unit.  For
    39                      example, a single-density volume is mounted in a
    40                      double-density drive that can read but not write


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-25
           GET UNIT STATUS Command                           8 November 1987


     1                      it.  Note that the  unit  will  be  Data  Safety
     2                      Write   Protected   whenever   this  subcode  is
     3                      returned.


     4              Unit-Available
     5              Unit-Offline


     6     Flags:

     7              Cached Data Lost
     8              Exclusive Access
     9              EOT Encountered
    10              Position Lost
    11              Serious Exception


    12     Multi-Unit code:

    13              The low byte of this field identifies  the  access  path
    14              between the controller and the tape unit.  The high byte
    15              identifies the particular tape unit on the access path.

    16              This  field  must  be  valid  when  the  returned   Unit
    17              Identifier is non-zero.

    18     Unit Flags:

    19              Caching Support

    20                  A non-host settable characteristic, set only if  the
    21                  tape unit supports tape write-back caching.

    22                  This flag must  be  valid  when  the  returned  Unit
    23                  Identifier is non-zero.


    24              Compare Reads

    25                  A host settable characteristic, enabled either  with
    26                  ONLINE  or  SET  UNIT  CHARACTERISTICS commands.  If
    27                  set, all READ  commands  will  be  verified  with  a
    28                  compare  operation  (equivalent  to  specifying  the
    29                  compare modifier on each command).

    30                  This flag must  be  valid  when  the  tape  unit  is
    31                  "Unit-Online".




                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-26
           GET UNIT STATUS Command                           8 November 1987


     1              Compare Writes

     2                  A host settable characteristic, enabled either  with
     3                  ONLINE  or  SET  UNIT  CHARACTERISTICS Commands.  If
     4                  set, all WRITE operations will be compare verified.

     5                  This flag must  be  valid  when  the  tape  unit  is
     6                  "Unit-Online".


     7              Data Safety Write Protect

     8                  A non-host  settable  characteristic,  set  whenever
     9                  some  condition  in  the  unit  or  volume  prevents
    10                  reliable  modification  of  data  on   the   volume.
    11                  Possible causes include:

    12                   o  An invalid volume format.

    13                   o  The unit is only capable of reading the volume's
    14                      format.   I.e.,  a  single-density  volume  in a
    15                      double-density drive.


    16                  Note that there can be multiple causes  for  a  unit
    17                  being  Data  Safety  Write  Protected.  Furthermore,
    18                  some causes represent errors while others  represent
    19                  normal occurrences.

    20                  Each individual cause can only be established when a
    21                  unit   is  brought  "Unit-Online".   Causes  can  be
    22                  eliminated - possibly allowing  the  unit  to  cease
    23                  being  Data  Safety Write Protected - while the unit
    24                  remains "Unit-Online".  However, the server can only
    25                  establish a new cause for the unit to be Data Safety
    26                  Write  Protected  by  forcing   the   unit   to   be
    27                  "Unit-Available"  to  all class drivers.  Thus class
    28                  drivers  are  guaranteed  that  a  unit   will   not
    29                  spontaneously  become  Data  Safety  Write Protected
    30                  while the unit is "Unit-Online".

    31                  This flag must  be  valid  when  the  tape  unit  is
    32                  "Unit-Online".


    33              Enhanced Write Error Recovery

    34                  A non-host settable characteristic, set only if  the
    35                  tape   unit  supports  the  "Enable  Re-write  Error
    36                  Recovery" command modifier on WRITE commands.


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-27
           GET UNIT STATUS Command                           8 November 1987


     1                  This flag must  be  valid  when  the  returned  Unit
     2                  Identifier is non-zero.


     3              Hardware Write Protect

     4                  A non-host settable characteristic, set if the  tape
     5                  unit's write protect mechanism is activated, causing
     6                  the tape unit to be hardware write protected.

     7                  This flag must be valid when the tape unit is either
     8                  "Unit-Available" or "Unit-Online".


     9              Software Write Protect

    10                  A host settable characteristic, enabled or  disabled
    11                  either  with  the ONLINE or SET UNIT CHARACTERISTICS
    12                  commands.  If set, the tape unit will act as  though
    13                  it  were  hardware  write  protected.  If clear, the
    14                  tape unit is virtually  write  enabled.   This  flag
    15                  cannot override hardware write protection.

    16                  This flag must  be  valid  when  the  tape  unit  is
    17                  "Unit-Online".


    18              Suppress Caching

    19                  A host settable characteristic, enabled or disabled,
    20                  either  with  an  ONLINE or SET UNIT CHARACTERISTICS
    21                  command.   If   set,   caching   using   the   TMSCP
    22                  controller's  volatile  cache  is  disabled for this
    23                  unit.  If clear, read-ahead caching using the  TMSCP
    24                  controller's  volatile  cache  is  enabled  for this
    25                  unit.   Equivalent  to  specifying   the   "Suppress
    26                  Caching"  modifier  on  all "read" type commands for
    27                  which it is legal.

    28                  This flag must  be  valid  when  the  tape  unit  is
    29                  "Unit-Online".


    30              Variable Speed Mode Suppression

    31                  A host settable characteristic, enabled or  disabled
    32                  either  with  an  ONLINE or SET UNIT CHARACTERISTICS
    33                  command.  If set, a variable speed tape unit's speed
    34                  change  algorithm  is  disabled,  the tape unit will
    35                  operate at a fixed  speed.   If  clear,  a  variable


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-28
           GET UNIT STATUS Command                           8 November 1987


     1                  speed tape unit's speed change algorithm is enabled,
     2                  the tape unit's operating speed may vary.  This flag
     3                  is always clear for a fixed speed tape unit.

     4                  This flag must  be  valid  when  the  tape  unit  is
     5                  "Unit-Online".


     6              Variable Speed Unit

     7                  A non-host settable characteristic, set only if  the
     8                  tape   unit   has   variable  speed  capability.   A
     9                  controller or  formatter  directed  automatic  speed
    10                  change  algorithm (based on host data throughput) is
    11                  employed for tape units with this capability.

    12                  This flag must  be  valid  when  the  returned  Unit
    13                  Identifier is non-zero.


    14              Write Back

    15                  A host settable characteristic, enabled or  disabled
    16                  either  with  an  ONLINE or SET UNIT CHARACTERISTICS
    17                  command.   If  set,  write-back  caching  using  the
    18                  controller's  volatile  cache  is  enabled  for this
    19                  unit.   Equivalent  to  specifying  the   "Immediate
    20                  Completion"  modifier  on  all "write" type commands
    21                  for which it is legal.

    22                  This flag must  be  valid  when  the  tape  unit  is
    23                  "Unit-Online".


    24     Unit Identifier:

    25              This field identifies a unique  device  number  for  the
    26              tape  unit  as  defined in the MSCP specification.  This
    27              field must be valid and non-zero when the unit is in any
    28              of the following states:

    29                  "Unit-Available", all sub-states.
    30                  "Unit-Online", all sub-states.
    31                  "Unit-Offline", the following sub-states:
    32                      "Duplicate unit number"
    33                      "Exclusive use"
    34                      "No  media  mounted  or  disabled   via   switch
    35                      setting"




                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-29
           GET UNIT STATUS Command                           8 November 1987


     1     Media Type Identifier:

     2              This field identifies the type of  media  used  by  this
     3              tape  unit,  for  use  by Host Generic device allocation
     4              mechanisms.

     5              This  field  must  be  valid  when  the  returned   Unit
     6              Identifier is non-zero.

     7     Format:

     8              The tape format currently employed  on  the  tape  unit.
     9              The  value in the low byte of this field is a binary bit
    10              representing the nominal or formatted density  of  tape.
    11              The  high byte is a code value associated with the media
    12              type.  The high byte always has the  same  value  for  a
    13              given unit.  (Refer to Appendix C, Tables C-1 and C-2.)

    14              This  field  must  be  valid  when  the  tape  unit   is
    15              "Unit-Online".

    16     Speed:

    17              The  value  in  this   field   is   expressed   as   the
    18              instantaneous data rate in kilo-bytes per second.

    19              For 9-track tape units it is computed, without rounding,
    20              as follows:

    21                  Speed = ( ips * bpi) / 1000

    22                  where:

    23                  ips = Tape Transport speed in Inches per Second

    24                  bpi = nominal  recording  format  frame  density  in
    25                  linear bits per inch


    26              For a fixed speed tape unit,  the  value  returned  will
    27              indicate the speed at which the tape unit operates.

    28              The value returned for a variable  speed  tape  unit  is
    29              dependent  upon  the  state  of the "variable speed mode
    30              suppression" unit flag.  If that flag is set, the  value
    31              returned  will  indicate the tape unit's fixed speed set
    32              via an ONLINE or SET UNIT CHARACTERISTICS  command.   If
    33              clear,  the  value  returned  will  indicate the highest
    34              speed for the current density, unless the tape  unit  is
    35              actively  performing I/O.  Then the value is the current


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-30
           GET UNIT STATUS Command                           8 November 1987


     1              operating speed, set by the speed change algorithm.

     2              This  field  must  be  valid  when  the  tape  unit   is
     3              "Unit-Online".

     4     Format Menu:

     5              The high byte of this field is a code  value  associated
     6              with the media type.  This value is constant for a given
     7              device.  The low byte of this field contains a  menu  of
     8              available  tape  unit  operating  formats  expressed  as
     9              binary bit values.  Each bit in the low byte  represents
    10              unique  nominal  or formatted density in bits per linear
    11              inch of tape.  (Refer to  Appendix  C,  Tables  C-1  and
    12              C-2.)

    13              This  field  must  be  valid  when  the  returned   Unit
    14              Identifier is non-zero.

    15     Freecap:

    16              This field  indicates  the  amount  of  media  currently
    17              available  for  writing as a function of the total media
    18              size.

    19              The following values of this field have special meaning.
    20              If  the  value is reported, it must be for that meaning.
    21              If one of the meanings is to be  reported,  it  must  be
    22              with  the  corresponding  value.  Devices are allowed to
    23              always report zero in this field.

    24              0       The amount of media available is unknown.   This
    25                      is  for  backwards  compatibility  with existing
    26                      TMSCP devices.

    27              1       There is no space available before PEOT.

    28              251     The entire media is available (i.e., new tape).

    29              252-255 Reserved.

    30              Values from  2  to  251  have  an  approximately  linear
    31              relationship to the fraction of free capacity available.
    32              A larger value indicates a larger free capacity.

    33                                        NOTE

    34                  Due  to  bad  spots,  extended   gaps   due   to
    35                  streaming,  or other format and device dependent
    36                  anomalies, the value of  this  field  is  almost


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-31
           GET UNIT STATUS Command                           8 November 1987


     1                  certainly    optimistic.    Because   of   these
     2                  anomalies, the controller may,  at  its  option,
     3                  choose  not to use the full 8 bits of resolution
     4                  in reporting free capacity.  The controller  may
     5                  also,  at  its  option,  attempt  to account for
     6                  these anomalies.


     7              Devices reporting values other than zero in  this  field
     8              must   document   in   their  device  specification  the
     9              algorithm that is used to generate the value.

    10              It is strongly recommended that all new devices  support
    11              this feature.

    12              This  field  must  be  valid  when  the  tape  unit   is
    13              "Unit-Online".

    14     Fsvrsn:

    15              The  formatter's  software,   firmware,   or   microcode
    16              revision   number.    Always   zero   if  the  product's
    17              development and maintainability  groups  determine  that
    18              there  is  no  benefit  from supporting machine readable
    19              revision numbers.

    20              This  field  must  be  valid  when  the  returned   Unit
    21              Identifier is non-zero.

    22     Fhvrsn:

    23              The formatter's hardware revision number.   Always  zero
    24              if  the product's development and maintainability groups
    25              determine that  there  is  no  benefit  from  supporting
    26              machine readable revision numbers.

    27              This  field  must  be  valid  when  the  returned   Unit
    28              Identifier is non-zero.

    29     Usvrsn:

    30              The unit's software,  firmware,  or  microcode  revision
    31              number.   Always  zero  if the product's development and
    32              maintainability  groups  determine  that  there  is   no
    33              benefit   from   supporting  machine  readable  revision
    34              numbers.

    35              This  field  must  be  valid  when  the  returned   Unit
    36              Identifier is non-zero.



                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-32
           GET UNIT STATUS Command                           8 November 1987


     1     Uhvrsn:

     2              The unit's hardware revision number.  Always zero if the
     3              product's   development   and   maintainability   groups
     4              determine that  there  is  no  benefit  from  supporting
     5              machine readable revision numbers.

     6              This  field  must  be  valid  when  the  returned   Unit
     7              Identifier is non-zero.











































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-33
           GET UNIT STATUS Command                           8 November 1987


     1     5.7.3  Description

     2     The GET UNIT STATUS command returns the current connection  state
     3     of  a  tape  unit as well as unit characteristics.  Note that the
     4     validity of the unit characteristics is dependent on the  current
     5     connection state.














































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-34
           ONLINE Command                                    8 November 1987


     1     5.8  ONLINE Command

     2     Command Category:

     3              Sequential


     4     5.8.1  Command Message Format

     5                     31                             0 
     6                     +-------------------------------+
     7                     |    command reference number   |
     8                     +---------------+---------------+
     9                     |    reserved   |  unit number  |
    10                     +---------------+-------+-------+
    11                     |   modifiers   |  rsvd | opcode|
    12                     +---------------+-------+-------+
    13                     |   unit flags  |    reserved   |
    14                     +---------------+---------------+
    15                     |                               |
    16                     +---                         ---+
    17                     |            reserved           |
    18                     +---                         ---+
    19                     |                               |
    20                     +-------------------------------+
    21                     |  device dependent parameters  |
    22                     +---------------+---------------+
    23                     |     speed     |     format    |
    24                     +---------------+---------------+


    25     Allowable Modifiers:

    26              Clear Cached Data Lost
    27              Clear Serious Exception

    28              Enable Set Write Protect

    29                  Causes the "Write Protect"  unit  flag  to  be  host
    30                  settable.   This  modifier  causes  the state of the
    31                  "Software Write Protect" unit flag to be  copied  to
    32                  the  controller's  software  write  protect flag for
    33                  this tape unit.

    34              Exclusive Access



                           



                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-35
           ONLINE Command                                    8 November 1987


     1     Unit Flags:

     2              If the tape unit is already "Unit-Online" to  any  class
     3              driver,  then  the  class  driver  must specify the same
     4              values for controller supported host settable unit flags
     5              as  are  currently  in  effect  on  the  tape unit.  The
     6              controller may or may not, at its option, check that the
     7              flag  values  are  the  same.  If it does check, then it
     8              must return an Invalid Command  (subcode  "Invalid  Unit
     9              Flags")  status  code  if  they  are  different.  If the
    10              controller does not check that they are the  same,  then
    11              it  must  ignore  the  unit flags specified by the class
    12              driver and  preserve  the  flag  settings  currently  in
    13              effect  on  the  tape  unit.   Note  that  this checking
    14              becomes  mandatory,  rather  than   optional,   if   the
    15              controller provides Multi-Host Support.

    16              Refer to section 5.11.1 for a description of  individual
    17              flag usage.


    18     Device Dependent Parameters:
    19     Format:
    20     Speed:

    21              Refer to section 5.11.1 for a description of  the  usage
    22              of these fields.

























                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-36
           ONLINE Command                                    8 November 1987


     1     5.8.2  End Message Format

     2                     31                             0 
     3                     +-------------------------------+
     4                     |    command reference number   |
     5                     +---------------+---------------+
     6                     |sequence number|  unit number  |
     7                     +---------------+-------+-------+
     8                     |     status    | flags |endcode|
     9                     +---------------+-------+-------+
    10                     |   unit flags  |multi-unit code|
    11                     +---------------+---------------+
    12                     |            reserved           |
    13                     +-------------------------------+
    14                     |                               |
    15                     +---     unit identifier     ---+
    16                     |                               |
    17                     +-------------------------------+
    18                     |     media type identifier     |
    19                     +---------------+---------------+
    20                     |     speed     |     format    |
    21                     +---------------+---------------+
    22                     |    maximum write byte count   |
    23                     +---------------+---------------+
    24                     |    reserved   |  noise record |
    25                     +---------------+---------------+


    26     Status Codes:

    27              Success

    28                  (subcode "Normal") - tape unit brought online.

    29                  (subcode "Already Online")

    30                      tape  unit  is   already   online,   state   and
    31                      characteristics  are not altered.  When the tape
    32                      unit is already  "Unit-Online",  the  controller
    33                      merely  returns  the Unit Characteristics in the
    34                      End message  with  this  status  flag  bit  set,
    35                      without performing any other actions.


    36                  (subcode "Read-only Volume Format")

    37                      The unit only implements  read  access  for  the
    38                      format  of  the volume mounted in the unit.  For
    39                      example, a single-density volume is mounted in a
    40                      double-density drive that can read but not write


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-37
           ONLINE Command                                    8 November 1987


     1                      it.  Note that the  unit  will  be  Data  Safety
     2                      Write   Protected   whenever   this  subcode  is
     3                      returned.


     4              Command Aborted

     5                  The tape unit's state is unchanged.  The  host  must
     6                  assume  that the return characteristics are invalid,
     7                  since the tape unit may be "Unit-Offline".

     8              Controller Error
     9              Drive Error
    10              Exclusive Access
    11              Formatter Error

    12              Invalid Command

    13                  (subcode "Invalid Unit Flags")

    14                      The tape unit is already "Unit-Online" and those
    15                      host settable characteristics that are supported
    16                      by  the  controller  are  different  from  those
    17                      currently  in effect on the tape unit.  The tape
    18                      unit remains "Unit-Online" and the host settable
    19                      Unit  Flags  are  NOT  changed.   Note  that the
    20                      controller  returns  an  Invalid   Command   End
    21                      message if a reserved Unit Flag is set.


    22                  (subcode "Invalid Format")

    23                      More than  one  Format  was  specified,  or  the
    24                      Format  specified  is  not supported by the tape
    25                      unit, or the tape unit is already  "Unit-Online"
    26                      and  the  value supplied in the Format field was
    27                      neither a zero nor the Format specified  by  the
    28                      host  that  initially brought the tape unit into
    29                      the "Unit-Online" state.   The  original  format
    30                      selected remains unchanged.


    31              Media Format Error
    32              Unit-Offline

    33     Flags:

    34              Cached Data Lost




                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-38
           ONLINE Command                                    8 November 1987


     1              EOT Encountered
     2              Error Log Generated
     3              Position Lost
     4              Serious Exception

     5     Multi-Unit code:
     6     Unit Flags:
     7     Unit Identifier:
     8     Media Type Identifier:
     9     Format:
    10     Speed:

    11              Refer to section 5.7.2 for descriptions of these fields.

    12     Recommended Maximum WRITE Byte Count:

    13              The largest size record likely to have  acceptable  data
    14              reliability   statistics,   considering   the   selected
    15              recording mode.  This  limit  is  not  enforced  by  the
    16              controller   although  the  controller  does  enforce  a
    17              maximum controller dependent limit.

    18              This  field  must  be  valid  when  the  tape  unit   is
    19              "Unit-Online".

    20     Noise Record:

    21              A non-host-settable characteristic advising the host  of
    22              the  record  length  at  or  below which legitimate data
    23              records are subject to confusion with noise records.  If
    24              zero,  the tape unit's recording technology is immune to
    25              noise records.

    26              This  field  must  be  valid  when  the  tape  unit   is
    27              "Unit-Online".

















                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-39
           ONLINE Command                                    8 November 1987


     1     5.8.3  Description

     2     The ONLINE Command  is  used  to  bring  a  tape  unit  into  the
     3     "Unit-Online"  state, set host settable unit characteristics, and
     4     obtain those unit characteristics that are essential  for  proper
     5     class driver operation.

     6     Host settable characteristics are set exactly as if  a  SET  UNIT
     7     CHARACTERISTICS command was issued (refer to section 5.11).  Host
     8     settable characteristics are not set  until  tape  unit  specific
     9     validity checks have succeeded, if applicable.  The host settable
    10     characteristics are not altered  if  the  tape  unit  is  already
    11     "Unit-Online".

    12     If the tape unit is not already "Unit-Online"  to  another  host,
    13     then  a  successful ONLINE command will position the tape to BOT,
    14     if it is  not  already  there.   If  the  tape  unit  is  already
    15     "Unit-Online"  to  another host, then a successful ONLINE command
    16     will not alter the position of the tape.

    17     The actions of this command with the  Exclusive  Access  modifier
    18     are described in the MSCP specification.






























                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-40
           READ Command                                      8 November 1987


     1     5.9  READ Command

     2     Command Category:

     3              Sequential


     4     5.9.1  Command Message Format

     5                     31                             0 
     6                     +-------------------------------+
     7                     |    command reference number   |
     8                     +---------------+---------------+
     9                     |    reserved   |  unit number  |
    10                     +---------------+-------+-------+
    11                     |   modifiers   |  rsvd | opcode|
    12                     +---------------+-------+-------+
    13                     |           byte count          |
    14                     +-------------------------------+
    15                     |                               |
    16                     +---          buffer         ---+
    17                     |                               |
    18                     +---        descriptor       ---+
    19                     |                               |
    20                     +-------------------------------+


    21     Allowable Modifiers:

    22              Clear Cached Data Lost
    23              Clear Serious Exception
    24              Compare
    25              Reverse (see section 3.3.1.1)
    26              Suppress Caching
    27              Suppress Error Correction
    28              Suppress Error Recovery
















                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-41
           READ Command                                      8 November 1987


     1     5.9.2  End Message Format

     2                     31                             0 
     3                     +-------------------------------+
     4                     |    command reference number   |
     5                     +---------------+---------------+
     6                     |sequence number|  unit number  |
     7                     +---------------+-------+-------+
     8                     |     status    | flags |endcode|
     9                     +---------------+-------+-------+
    10                     |   byte count (host transfer)  |
    11                     +-------------------------------+
    12                     |                               |
    13                     +----                       ----+
    14                     |           undefined           |
    15                     +----                       ----+
    16                     |                               |
    17                     +-------------------------------+
    18                     |    position  (object count)   |
    19                     +-------------------------------+
    20                     |    byte count (tape record)   |
    21                     +-------------------------------+


    22     Status Codes:

    23              Success
    24                  (subcode "Normal")

    25              BOT Encountered
    26              Command Aborted
    27              Compare Error
    28              Controller Error
    29              Data Error
    30              Drive Error
    31              Formatter Error
    32              Host Buffer Access Error

    33              Invalid Command
    34                  (subcode "Invalid Byte Count")
    35                  (subcode "Illegal Modifier") (see section 3.3.1.1)

    36              Position Lost
    37              Record Data Truncated
    38              Serious Exception
    39              Tape Mark Encountered
    40              Unit-Available
    41              Unit-Offline




                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-42
           READ Command                                      8 November 1987


     1     Flags:

     2              Cached Data Lost
     3              EOT Encountered
     4              Error Log Generated
     5              Position Lost
     6              Serious Exception













































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-43
           READ Command                                      8 November 1987


     1     5.9.3  Description

     2     Beginning at the current position, data is read from a record  on
     3     the magnetic tape loaded on the specified unit and transferred to
     4     the specified host buffer.

     5     Refer to sections 3.3, 3.4, and 3.5 for additional detail.













































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-44
           REPOSITION Command                                8 November 1987


     1     5.10  REPOSITION Command

     2     Command Category:

     3              Sequential  (REWIND  to  BOT  variation  is   optionally
     4              Immediate Completion)


     5     5.10.1  Command Message Format

     6                     31                             0 
     7                     +-------------------------------+
     8                     |    command reference number   |
     9                     +---------------+---------------+
    10                     |    reserved   |  unit number  |
    11                     +---------------+-------+-------+
    12                     |   modifiers   |  rsvd | opcode|
    13                     +---------------+-------+-------+
    14                     |  record count or object count |
    15                     +-------------------------------+
    16                     |        tape mark count        |
    17                     +-------------------------------+


    18     Allowable Modifiers:

    19              Clear Cached Data Lost
    20              Clear Serious Exception

    21              Detect LEOT

    22                  If this modifier is set, and the "Reverse"  modifier
    23                  is  clear,  and either or both a Skip Tape Mark or a
    24                  Skip Record positioning function  is  also  enabled,
    25                  the  automatic detection of LEOT (i.e., two adjacent
    26                  tape  marks  with  no   intervening   records),   as
    27                  described in section 5.10.3, is enabled.

    28              Immediate Completion

    29                  If this modifier is set, and only the Rewind to  BOT
    30                  positioning  function  is enabled, the Rewind to BOT
    31                  will be executed in an asynchronous  manner.   Refer
    32                  to section 3.2.1.1 for additional detail.

    33              Object Count

    34                  The setting of this modifier and the value specified
    35                  in  the "record count or object count" and the "tape
    36                  mark  count"  command  message  fields  selects  the


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-45
           REPOSITION Command                                8 November 1987


     1                  skipping operation to be performed:

     2                   o  If set, and the "record count or  object  count"
     3                      field  is  non-zero,  the Skip Tape Object (both
     4                      records and tape marks) positioning function  is
     5                      enabled.

     6                   o  If clear, and the "record count or object count"
     7                      field  is  non-zero, the Skip Record positioning
     8                      function is enabled.

     9                   o  If clear, and the "tape  mark  count"  field  is
    10                      non-zero,   the   Skip   Tape  Mark  positioning
    11                      function is enabled.


    12                  All of the positioning functions mentioned above are
    13                  described in section 5.10.3.

    14              Reverse

    15              Rewind

    16                  If  this  modifier  is  set,  the  rewind   to   BOT
    17                  positioning  function,  described in section 5.10.3,
    18                  is enabled.

    19              Suppress Caching
    20              Suppress Error Correction
    21              Suppress Error Recovery






















                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-46
           REPOSITION Command                                8 November 1987


     1     5.10.2  End Message Format

     2                     31                             0 
     3                     +-------------------------------+
     4                     |    command reference number   |
     5                     +---------------+---------------+
     6                     |sequence number|  unit number  |
     7                     +---------------+-------+-------+
     8                     |     status    | flags |endcode|
     9                     +---------------+-------+-------+
    10                     |   records skipped/undefined   |
    11                     +-------------------------------+
    12                     |  tape marks skipped/undefined |
    13                     +-------------------------------+
    14                     |                               |
    15                     +----       undefined       ----+
    16                     |                               |
    17                     +-------------------------------+
    18                     |    position (object count)    |
    19                     +-------------------------------+


    20     Status Codes:

    21              Success
    22                  (subcode "Normal")

    23              BOT Encountered
    24              Command Aborted
    25              Controller Error

    26              Data Error
    27                  (subcode "Long Gap Encountered")

    28              Drive Error
    29              Formatter Error
    30              LEOT Encountered
    31              Position Lost
    32              Serious Exception
    33              Tape Mark Encountered
    34              Unit-Available
    35              Unit-Offline

    36     Flags:

    37              Cached Data Lost
    38              EOT Encountered
    39              Error Log Generated




                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-47
           REPOSITION Command                                8 November 1987


     1              Position Lost
     2              Serious Exception


















































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-48
           REPOSITION Command                                8 November 1987


     1     5.10.3  Description

     2     This command is used to position the tape from  one  location  to
     3     another.

     4     For additional  information  related  to  the  operation  of  the
     5     REPOSITION command refer to the following:

     6           o  Chapter 2 Terminology, especially the definitions of:

     7               >  Record
     8               >  Tape Mark
     9               >  Object
    10               >  Record Gap
    11               >  Beginning-of-Tape (BOT)
    12               >  End-of-Tape (EOT)
    13               >  Logical End-of-Tape (LEOT)


    14           o  Sections 3.2 Command  Categories  And  Execution  Order,
    15              3.2.1    Lengthy    Command    Considerations,   3.2.1.1
    16              Synchronous Vs Asynchronous, and 3.2.1.2 Abort.

    17           o  Sections 3.3.1 (Tape Motion  Command  Operation)  "read"
    18              Type,  3.3.1.1  Direction, 3.3.1.2 BOT Handling, 3.3.1.3
    19              EOT Handling, and 3.3.1.4 Tape Mark Handling.

    20           o  Section 3.4.2 Tape Format Employed.

    21           o  Section 3.5 General Error Processing and all  associated
    22              sub-sections.

    23           o  Sections 4.5.1 (End Message Format) Flags, 4.5.2 Status,
    24              4.5.3  Status  Codes; especially those listed in Section
    25              5.10.2, and 4.5.6 Position (Object Count).


    26     The manner in which the positioning operation is to be  performed
    27     is dictated by the state of the following command modifiers:

    28           o  "Object Count"
    29           o  "Rewind"
    30           o  "Reverse"

    31     and the values supplied in the  "tape  mark  count"  and  "record
    32     count or object count" command message fields.

    33     In addition, the following two special case modifiers affect  the
    34     manner in which the positioning operation will complete:



                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-49
           REPOSITION Command                                8 November 1987


     1           o  "Immediate Completion"
     2           o  "Detect LEOT"


     3     Four positioning functions are available for use:

     4           o  Rewind to BOT
     5           o  Skip Tape Mark
     6           o  Skip Record
     7           o  Skip Tape Object (i.e., both records and tape marks).


     8     Either of the  following  mutually  exclusive  sets  of  combined
     9     positioning  functions  can  be  specified  in  a  single command
    10     message:

    11           o  Rewind to BOT
    12           o  Skip Tape Mark
    13           o  Skip Record

    14              or

    15           o  Rewind to BOT
    16           o  Skip Tape Object


    17     When combined, the controller must execute the set of positioning
    18     functions synchronously as a single atomic command.  Furthermore,
    19     the functions within a set must be  executed  in  the  sequential
    20     order shown above, with the following conditional exceptions:

    21          1.  If the function which is next in line for  execution  is
    22              not  enabled the controller must continue execution with
    23              the next function which is enabled (if any).

    24          2.  If a function is terminated due to the detection  of  an
    25              error   or   a   special   condition  (e.g.,  tape  mark
    26              unexpectedly encountered, LEOT condition satisfied,  BOT
    27              unexpectedly  encountered, etc.) the controller must not
    28              attempt to execute any remaining enabled functions.

    29          3.  If none of the functions are enabled the controller,  as
    30              implied, must take no positioning action.

    31              The  last  case  listed  is   actually   considered   an
    32              additional function, a sequential no-operation.






                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-50
           REPOSITION Command                                8 November 1987


     1     A model of operation for  each  of  the  available  functions  is
     2     described below.  Controller dependent algorithms formulated with
     3     the intent of optimizing the positioning functions are  expressly
     4     permitted,  provided the models of operation are not perturbed in
     5     any manner.

     6                                   NOTE

     7             Occurrence of an  error  which  prevents  further
     8             continuation  of  tape  unit  operation while the
     9             controller is performing a  positioning  function
    10             optimization   may  result  in  a  tape  position
    11             outside the  range  of  objects  spanned  by  the
    12             REPOSITION function.  In this case the controller
    13             must first report the error in the normal  manner
    14             and  then  place  the  tape unit in the "Position
    15             Lost" state, if appropriate.


    16     Table D-1 shows all the possible  variations  of  the  REPOSITION
    17     command  which  can  be  specified.   Table  D-1 also depicts the
    18     conditions under which the modifiers and count field  values  are
    19     ignored.   Those  conditions  are  not  addressed in the model of
    20     operation descriptions.

    21           o  Rewind to BOT

    22                  The Rewind to BOT positioning  function  is  enabled
    23                  when the "Rewind" modifier is set.

    24                  When this function is enabled and the  tape  is  not
    25                  already  resting  at BOT, the controller starts tape
    26                  motion in the reverse direction  and  continues  the
    27                  tape  motion until either BOT is reached or an error
    28                  occurs.

    29                  If the "Immediate Completion" modifier is set and no
    30                  other  positioning function is enabled the rewind to
    31                  BOT  is  completed  in  an  asynchronous  manner  as
    32                  described in Section 3.2.1.1.


    33           o  Skip Tape Mark

    34                  The Skip Tape Mark positioning function  is  enabled
    35                  when  the  "Object  Count" modifier is clear and the
    36                  "tape mark count" command message field is non-zero.





                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-51
           REPOSITION Command                                8 November 1987


     1                  When this function is enabled the controller  starts
     2                  tape  motion,  in  the  direction  indicated  by the
     3                  "Reverse" modifier, and  begins  searching  for  the
     4                  occurrence of tape marks.

     5                  The controller continues the search until one of the
     6                  following occurs:

     7                  1.  An   error   is    detected    (including    BOT
     8                      Encountered).

     9                  2.  A tape mark which satisfies the LEOT  condition,
    10                      if  LEOT  detection  was enabled (see discussion
    11                      below) is detected.

    12                  3.  The number of tape marks specified in the  "tape
    13                      mark  count"  command  message  field  have been
    14                      found.


    15                  During the tape mark search the controller will keep
    16                  a  count  of  the  number of tape marks found (Note:
    17                  records found are not counted during the  tape  mark
    18                  search).

    19                  LEOT detection is  enabled  only  if  the  "Reverse"
    20                  modifier is clear.  If LEOT detection is enabled the
    21                  controller will determine that the  tape  mark  just
    22                  found  satisfies the LEOT condition if either of the
    23                  following is true:

    24                  1.  The previous object  found  during  the  current
    25                      search was also a tape mark.

    26                  2.  Based  on   context   (the   controller)   saved
    27                      following  execution  of  the last command which
    28                      caused tape motion, the tape was left positioned
    29                      forward (i.e., on the EOT side of BOT) of a tape
    30                      mark.

    31                      In  the  latter  case  the  saved  context  must
    32                      specifically  indicate that the last tape motion
    33                      command was one of the following:

    34                      a.  An  ACCESS,  COMPARE  HOST  DATA,  READ,  or
    35                          REPOSITION  (with  Skip  Record  positioning
    36                          function enabled) command performed  in  the
    37                          forward  direction,  which terminated with a
    38                          status of Tape Mark Encountered.



                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-52
           REPOSITION Command                                8 November 1987


     1                      b.  A REPOSITION (with Skip Tape  Mark  function
     2                          enabled   and   the   Skip  Record  function
     3                          disabled) command performed in  the  forward
     4                          direction  which completed successfully when
     5                          that tape mark was found.



     6                  The controller performs the following  actions  upon
     7                  detecting LEOT:

     8                  1.  Stops tape motion.

     9                  2.  Resumes tape motion in the reverse direction and
    10                      positions  the tape to the record gap separating
    11                      the two adjacent tape marks.

    12                  3.  Stops tape motion once again.


    13                  The controller must not  add  the  tape  mark  which
    14                  satisfies  the  LEOT condition to the number of tape
    15                  marks found count.


    16           o  Skip Record

    17                  The Skip Record positioning function is enabled when
    18                  the "Object Count" modifier is clear and the "record
    19                  count or object  count"  command  message  field  is
    20                  non-zero.

    21                  When this function is enabled the controller  starts
    22                  tape  motion  (or  continues tape motion if the Skip
    23                  Tape Mark  function  was  just  completed),  in  the
    24                  direction  indicated  by the "Reverse" modifier, and
    25                  begins searching for the occurrence of records.

    26                  The controller continues the search until one of the
    27                  following occurs:

    28                  1.  An   error   is    detected    (including    BOT
    29                      Encountered).

    30                  2.  A tape mark is detected.

    31                  3.  The number of records specified in  the  "record
    32                      count  or  object  count"  command message field
    33                      have been found.



                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-53
           REPOSITION Command                                8 November 1987


     1                  During the record search the controller will keep  a
     2                  count of the number of records found.

     3                  The action the  controller  follows  if  the  record
     4                  search  is  terminated  by  detecting  a  tape  mark
     5                  depends on whether  LEOT  detection  is  enabled  or
     6                  disabled:

     7                   o  If LEOT Detection  is  disabled  (i.e.,  "Detect
     8                      LEOT"  modifier  clear  or "Reverse" modifier is
     9                      set, regardless of the setting  of  the  "Detect
    10                      LEOT"  modifier)  the tape mark is considered as
    11                      having been unexpectedly encountered.   In  this
    12                      case the controller must add the unexpected tape
    13                      mark to the number of tape marks counted  during
    14                      the   immediately   preceding   Skip  Tape  Mark
    15                      function, or, set the tape mark count to one  if
    16                      the Skip Tape Mark function was not enabled.

    17                   o  If LEOT detection is enabled (i.e., the  "Detect
    18                      LEOT" modifier is set and the "Reverse" modifier
    19                      is clear) the controller must determine  whether
    20                      or   not   the  tape  mark  satisfies  the  LEOT
    21                      condition as described in  the  Skip  Tape  Mark
    22                      function  above.   If  LEOT  was  satisfied  the
    23                      controller performs the LEOT  detected  actions,
    24                      again,  as  described  in  the  Skip  Tape  Mark
    25                      function above.  Otherwise,  the  tape  mark  is
    26                      unexpected   and  the  controller  performs  the
    27                      unexpected   tape   mark    actions    described
    28                      immediately above.



    29           o  Skip Tape Object (i.e., both records and tape marks)

    30                  The Skip Tape Object positioning function is enabled
    31                  when  the  "Object  Count"  modifier  is set and the
    32                  "record count or object count" command message field
    33                  is non-zero.

    34                  When this function is enabled the controller  starts
    35                  tape  motion,  in  the  direction  indicated  by the
    36                  "Reverse" modifier, and  begins  searching  for  the
    37                  occurrence of tape objects.

    38                  The controller continues the search until one of the
    39                  following occurs:




                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-54
           REPOSITION Command                                8 November 1987


     1                  1.  An   error   is    detected    (including    BOT
     2                      Encountered).

     3                  2.  The number of  tape  objects  specified  in  the
     4                      "record  count  or object count" command message
     5                      field have been found.


     6                  During the tape object search  the  controller  need
     7                  not  keep  a count of the number of records and tape
     8                  marks found.


     9           o  Sequential No-operation

    10                  The Sequential No-operation is enabled when none  of
    11                  the positioning functions are enabled.

    12                  The controller must not initiate any tape motion.



    13     After executing the  enabled  functions  to  the  fullest  extent
    14     possible  (i.e.,  terminate  execution due to the detection of an
    15     error or special condition, or complete execution successfully by
    16     satisfying  the  count  value(s) etc.), the controller prepares a
    17     REPOSITION command end message in  standard  MSCP/TMSCP  fashion,
    18     with exception of the following specific actions:

    19           o  Where a Rewind to BOT function with no other positioning
    20              function enabled and the "immediate completion" modifier
    21              clear was executed, the controller  will  set  both  the
    22              "tape  marks  skipped"  and  "records skipped" fields to
    23              zero.

    24           o  Where a Rewind to BOT function with no other positioning
    25              function enabled and the "immediate completion" modifier
    26              set was executed, the controller will set both the "tape
    27              marks  skipped" and "records skipped" fields to zero and
    28              set the "status" field to Success (subcode "Normal").

    29           o  Where  a  Skip  Tape  Mark  positioning   function   was
    30              executed,  the  controller  will  set  the  "tape  marks
    31              skipped" field equal to the number of tape  marks  found
    32              during  execution of the Skip Tape Mark function or as a
    33              result  of   the   subsequent   Skip   Record   function
    34              unexpectedly encountering a tape mark.  If the Skip Tape
    35              Mark function was not executed and a tape mark  was  not
    36              unexpectedly  encountered  in the subsequent Skip Record
    37              function the controller will set the "tape marks"  field


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-55
           REPOSITION Command                                8 November 1987


     1              to zero.

     2           o  Where a Skip Record positioning  function  was  executed
     3              the  controller  will  set  the  "records skipped" field
     4              equal to the number of records found  value  accumulated
     5              during  execution  of  the function.  If the Skip Record
     6              function was not executed the controller  will  set  the
     7              "records skipped" field to zero.

     8           o  If either a Skip Tape Mark or  Skip  Record  positioning
     9              function  terminated due to detecting LEOT (as described
    10              above) the controller will set the "status" field  equal
    11              to LEOT Detected.

    12           o  Where a Skip Object positioning  function  was  executed
    13              the  controller  may set the "records skipped" and "tape
    14              marks skipped" fields to any value it  chooses.   (Those
    15              fields are undefined in this case.)

    16           o  For a Sequential No-operation the  controller  will  set
    17              the  "status"  field  to  Success (subcode "Normal") and
    18              both the "tape  marks  skipped"  and  "records  skipped"
    19              fields to zero.





























                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-56
           SET UNIT CHARACTERISTICS Command                  8 November 1987


     1     5.11  SET UNIT CHARACTERISTICS Command

     2     Command Category:

     3              Sequential


     4     5.11.1  Command Message Format

     5                     31                             0 
     6                     +-------------------------------+
     7                     |    command reference number   |
     8                     +---------------+---------------+
     9                     |    reserved   |  unit number  |
    10                     +---------------+-------+-------+
    11                     |   modifiers   |  rsvd | opcode|
    12                     +---------------+-------+-------+
    13                     |   unit flags  |    reserved   |
    14                     +---------------+---------------+
    15                     |                               |
    16                     +---                         ---+
    17                     |            reserved           |
    18                     +---                         ---+
    19                     |                               |
    20                     +-------------------------------+
    21                     |  device dependent parameters  |
    22                     +---------------+---------------+
    23                     |     speed     |     format    |
    24                     +---------------+---------------+


    25     Allowable Modifiers:

    26              Clear Cached Data Lost
    27              Clear Serious Exception
    28              Enable Set Write Protect
    29              Exclusive Access

    30     Unit Flags:

    31              Caching Support

    32                  A non-host settable characteristic, set only if  the
    33                  tape unit supports tape write-back caching.

    34                  This  flag  is  invalid  when  the   returned   Unit
    35                  Identifier is zero.

                           



                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-57
           SET UNIT CHARACTERISTICS Command                  8 November 1987


     1              Compare Reads

     2                  If set, all READ commands will be  verified  with  a
     3                  compare  operation.   Equivalent  to  specifying the
     4                  compare modifier on each such command.


     5              Compare Writes

     6                  If set, then all WRITE  commands  will  be  verified
     7                  with  a compare operation.  Equivalent to specifying
     8                  the Compare modifier on each such command.


     9              Enhanced Write Error Recovery

    10                  A non-host settable characteristic, set only if  the
    11                  tape   unit  supports  the  "Enable  Re-write  Error
    12                  Recovery" command modifier on WRITE commands.

    13                  This  flag  is  invalid  when  the   returned   Unit
    14                  Identifier is zero.


    15              Software Write Protect (SWP)

    16                  If the SWP unit flag is  set  and  the  "Enable  Set
    17                  Write  Protect"  command  modifier  is also set, the
    18                  tape unit will act as though it were Hardware  Write
    19                  Protected.

    20                  If the SWP unit flag is clear and  the  "Enable  Set
    21                  Write  Protect"  command  modifier  is set, the tape
    22                  unit is virtually write enabled.

    23                  This flag cannot override hardware write protection.


    24              Suppress Caching

    25                  If  set,  caching  using  the   TMSCP   controller's
    26                  volatile cache is disabled for this unit.  If clear,
    27                  read-ahead  caching  using  the  TMSCP  controller's
    28                  volatile cache is enabled for this unit.  Equivalent
    29                  to  specifying  the   "Suppress   Caching"   command
    30                  modifier on all "read" type commands for which it is
    31                  legal.





                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-58
           SET UNIT CHARACTERISTICS Command                  8 November 1987


     1              Variable Speed Mode Suppression

     2                  If set, a variable speed tape  unit's  speed  change
     3                  algorithm is disabled.  The tape unit speed is fixed
     4                  at  the  speed  specified  in  the   "speed"   field
     5                  (described  below).  If clear, a variable speed tape
     6                  unit's speed change algorithm is enabled,  the  tape
     7                  unit's  operating  speed  may  vary.   This  flag is
     8                  ignored for a fixed speed tape unit.


     9              Write Back

    10                  If set, write-back caching  using  the  controller's
    11                  volatile  cache is enabled for this unit.  If clear,
    12                  write-back caching using the  controller's  volatile
    13                  cache  is  disabled  for  this  unit.  Equivalent to
    14                  specifying the "Immediate  Completion"  modifier  on
    15                  all "write" type commands for which it is legal.



    16     Device Dependent Parameters:

    17              Device  and/or  controller   dependent   device   tuning
    18              parameters.   The  value  zero  in this field means that
    19              default or normal  tuning  parameters  should  be  used.
    20              Non-zero  values  for  this  field  should  normally  be
    21              established through system-dependent appropriate  means.
    22              Examples  of  the  use  of  this field include selecting
    23              alternative  optimization  algorithms  or  enabling  and
    24              disabling automatic (online) diagnosis of the tape unit.


    25     Format:

    26              Assuming that the tape is positioned at BOT,  the  value
    27              supplied  in  this field is the host suggested format to
    28              be employed for tape unit operations (Refer  to  section
    29              3.4.2  for  related information).  It can be a zero or a
    30              binary bit  value  in  the  low  byte  representing  the
    31              density  of the tape.  If the value is zero, the highest
    32              density format  supported  by  the  tape  unit  will  be
    33              employed.   If  the  low byte is non-zero, then the high
    34              byte must have the value corresponding to the media used
    35              by  the  unit.   See  Appendix C, Tables C-1 and C-2 for
    36              details.





                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-59
           SET UNIT CHARACTERISTICS Command                  8 November 1987


     1              If the value is non-zero, but  the  high  byte  has  the
     2              wrong  value,  the  command  will  be  rejected  with an
     3              Invalid Command (subcode "Invalid Format") status code.

     4              If the tape is not positioned at BOT, a zero value  will
     5              not  cause  the  format  to  change  from  the currently
     6              selected density.  Furthermore, if the value is non-zero
     7              the  command  will  be  rejected with an Invalid Command
     8              (subcode  "Invalid  Format")  status  code.   Refer   to
     9              sections 5.8.2 and 5.11.2 for additional Invalid Command
    10              (subcode "Invalid Format") information.


    11     Speed:

    12              The speed field value  is  used  to  select  the  "fixed
    13              speed"  at which a variable speed tape unit will operate
    14              when the "Variable Speed  Mode  Suppression"  unit  flag
    15              (described  above)  is  set  in the command packet.  The
    16              speed field is ignored if that flag is clear or the tape
    17              unit is not capable of variable speed operation.

    18              The  value  supplied  in  this  field  is   the   host's
    19              prediction  of  the  maximum  data  transfer  rate it is
    20              capable of sustaining during data transfers to  or  from
    21              the  tape  unit.   It  is  expressed as the maximum data
    22              transfer rate, in kilo-bytes per  second,  that  can  be
    23              achieved using a particular tape speed and format.  (For
    24              9-track  tape  units,  the  actual  data  transfer  rate
    25              approaches  this  value  as  the  record  length becomes
    26              arbitrarily large.)

    27              For 9-track tape units it is computed, without rounding,
    28              as follows:

    29                  Speed = ( ips * bpi ) / 1000

    30                  where:

    31                  ips = nominal tape transport  speed  in  Inches  per
    32                  Second

    33                  bpi = nominal  recording  format  frame  density  in
    34                  linear Bits Per Inch (for nine track, actually Bytes
    35                  Per Inch)


    36              The controller will automatically select the  tape  unit
    37              speed, from those available on the tape unit, which best
    38              accommodates the host's data transfer  rate  prediction.


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-60
           SET UNIT CHARACTERISTICS Command                  8 November 1987


     1              The following rules govern speed selection:

     2              1.  The tape unit speed will be set equal to  the  speed
     3                  which   is  closest  to  providing  a  maximum  data
     4                  transfer rate  at  the  currently  employed  format,
     5                  which is less than or equal to the value supplied.

     6              2.  The lowest possible tape unit speed will be selected
     7                  if  the  maximum data transfer rate at the currently
     8                  employed format of all available tape unit speeds is
     9                  greater than the value supplied.









































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-61
           SET UNIT CHARACTERISTICS Command                  8 November 1987


     1     5.11.2  End Message Format

     2                     31                             0 
     3                     +-------------------------------+
     4                     |    command reference number   |
     5                     +---------------+---------------+
     6                     |sequence number|  unit number  |
     7                     +---------------+-------+-------+
     8                     |     status    | flags |endcode|
     9                     +---------------+-------+-------+
    10                     |   unit flags  |multi-unit code|
    11                     +---------------+---------------+
    12                     |            reserved           |
    13                     +-------------------------------+
    14                     |                               |
    15                     +----    unit identifier    ----+
    16                     |                               |
    17                     +-------------------------------+
    18                     |     media type identifier     |
    19                     +---------------+---------------+
    20                     |     speed     |     format    |
    21                     +---------------+---------------+
    22                     |    maximum write byte count   |
    23                     +---------------+---------------+
    24                     |    reserved   |  noise record |
    25                     +---------------+---------------+


    26     Status Codes:

    27              Success

    28                  (subcode "Normal")

    29                      The tape unit is "Unit-Online".


    30                  (subcode "Duplicate Unit Number")

    31                      Implies that the tape unit is "Unit-Online"  but
    32                      that  its  unit  number  is identical to that of
    33                      some other tape unit known  to  the  controller.
    34                      The tape unit will become "Unit-Offline", due to
    35                      the duplicate Unit Number, as soon as it  ceases
    36                      to be "Unit-Online".







                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-62
           SET UNIT CHARACTERISTICS Command                  8 November 1987


     1                  (subcode "Read-only Volume Format")

     2                      The unit only implements  read  access  for  the
     3                      format  of  the volume mounted in the unit.  For
     4                      example, a single-density volume is mounted in a
     5                      double-density drive that can read but not write
     6                      it.  Note that the  unit  will  be  Data  Safety
     7                      Write   Protected   whenever   this  subcode  is
     8                      returned.


     9              Command Aborted

    10                  The tape unit state is  unchanged.   The  host  must
    11                  assume  that  the  returned unit characteristics are
    12                  invalid, since the unit may be "Unit-Offline".

    13              Controller Error
    14              Drive Error
    15              Formatter Error

    16              Invalid Command
    17                  (subcode "Invalid Format")

    18                      More than  one  Format  was  specified,  or  the
    19                      Format   specified   is  not  supported  by  the
    20                      specified unit, or the magnetic tape  loaded  on
    21                      the tape unit was not positioned at BOT.


    22              Unit-Available
    23              Unit-Offline


    24     Flags:

    25              Cached Data Lost
    26              EOT Encountered
    27              Error Log Generated
    28              Exclusive Access
    29              Position Lost
    30              Serious Exception


    31     Multi-Unit code:
    32     Unit Flags:
    33     Unit Identifier:
    34     Media Type Identifier:
    35     Format:
    36     Speed:


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-63
           SET UNIT CHARACTERISTICS Command                  8 November 1987


     1              Refer to  section  5.7.2  for  a  description  of  these
     2              fields.

     3     Recommended Maximum WRITE Byte Count:
     4     Noise Record:

     5              Refer to  section  5.8.2  for  a  description  of  these
     6              fields.












































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-64
           SET UNIT CHARACTERISTICS Command                  8 November 1987


     1     5.11.3  Description

     2     The SET UNIT CHARACTERISTICS Command is used to set host-settable
     3     unit  characteristics  and  to  obtain those unit characteristics
     4     essential for proper class driver operation.

     5     Successful execution of this command never alters the tape unit's
     6     host-relative    connection    state    ("Unit-Online",    etc.).
     7     Unsuccessful  execution  leaves  the  tape  unit  in  either  the
     8     "Unit-Available" or "Unit-Offline" states.

     9     Setting host settable characteristics for a  tape  unit  that  is
    10     "Unit-Offline" or "Unit Available" has no effect.







































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-65
           WRITE Command                                     8 November 1987


     1     5.12  WRITE Command

     2     Command Category:

     3              Sequential (optionally Immediate Completion)


     4     5.12.1  Command Message Format

     5                     31                             0 
     6                     +-------------------------------+
     7                     |    command reference number   |
     8                     +---------------+---------------+
     9                     |    reserved   |  unit number  |
    10                     +---------------+-------+-------+
    11                     |   modifiers   |  rsvd | opcode|
    12                     +---------------+-------+-------+
    13                     |           byte count          |
    14                     +-------------------------------+
    15                     |                               |
    16                     +---          buffer         ---+
    17                     |                               |
    18                     +---        descriptor       ---+
    19                     |                               |
    20                     +-------------------------------+


    21     Allowable Modifiers:

    22              Clear Cached Data Lost
    23              Clear Serious Exception
    24              Compare

    25              Enable Re-write Error Recovery

    26                  This modifier may not be set in conjunction with the
    27                  "Suppress  Error  Recovery"  command modifier and is
    28                  therefore treated as a reserved  field.   The  TMSCP
    29                  controller  must  return an Invalid Command (subcode
    30                  "Invalid  Modifiers")  status  code  if   both   the
    31                  "Suppress  Error  Recovery" command modifier and the
    32                  "Enable Re-write Error  Recovery"  command  modifier
    33                  are set in the same command (see section 3.5.5.2).

    34              Immediate Completion

    35                  If  this  modifier  is  set,  this  command  may  be
    36                  executed  as  a "write-back" caching enabled "write"
    37                  type command.  Refer to section 3.6.1  for  complete
    38                  details.


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-66
           WRITE Command                                     8 November 1987


     1              Suppress Error Correction

     2              Suppress Error Recovery

     3                  This modifier may not be set in conjunction with the
     4                  "Enable  Re-write  Error  Recovery" command modifier
     5                  and is therefore treated as a reserved  field.   The
     6                  TMSCP  controller  must  return  an  Invalid Command
     7                  (subcode "Invalid Modifiers") status  code  if  both
     8                  the  "Suppress  Error Recovery" command modifier and
     9                  the  "Enable  Re-write   Error   Recovery"   command
    10                  modifier  are  set  in the same command (see section
    11                  3.5.5.2).







































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-67
           WRITE Command                                     8 November 1987


     1     5.12.2  End Message Format

     2                     31                             0 
     3                     +-------------------------------+
     4                     |    command reference number   |
     5                     +---------------+---------------+
     6                     |sequence number|  unit number  |
     7                     +---------------+-------+-------+
     8                     |     status    | flags |endcode|
     9                     +---------------+-------+-------+
    10                     |   byte count (host transfer)  |
    11                     +-------------------------------+
    12                     |                               |
    13                     +----                       ----+
    14                     |           undefined           |
    15                     +----                       ----+
    16                     |                               |
    17                     +-------------------------------+
    18                     |    position  (object count)   |
    19                     +-------------------------------+
    20                     |    byte count (tape record)   |
    21                     +-------------------------------+


    22     Status Codes:

    23              Success
    24                  (subcode "Normal")
    25                  (subcode "EOT Encountered")

    26              Command Aborted
    27              Compare Error
    28              Controller Error
    29              Data Error
    30              Drive Error
    31              Formatter Error
    32              Host Buffer Access Error

    33              Invalid Command
    34                  (subcode "Invalid Byte Count")

    35              Position Lost
    36              Serious Exception
    37              Unit-Available
    38              Unit-Offline

    39              Write-Protected
    40                  (subcode "Unit is Hardware Write Protected")




                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-68
           WRITE Command                                     8 November 1987


     1                  (subcode "Unit is Software Write Protected")
     2                  (subcode "Unit is Data Safety Write Protected")



     3     Flags:

     4              Cached Data Lost
     5              EOT Encountered
     6              Error Log Generated
     7              Position Lost
     8              Serious Exception








































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-69
           WRITE Command                                     8 November 1987


     1     5.12.3  Description

     2     Beginning at the current position, data is written from the  host
     3     buffer to the magnetic tape in record form.

     4     Refer to sections 3.3, 3.4, and 3.5 for additional detail.














































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-70
           WRITE TAPE MARK Command                           8 November 1987


     1     5.13  WRITE TAPE MARK Command

     2     Command Category:

     3              Sequential (optionally Immediate Completion)


     4     5.13.1  Command Message Format

     5                     31                             0 
     6                     +-------------------------------+
     7                     |    command reference number   |
     8                     +---------------+---------------+
     9                     |    reserved   |  unit number  |
    10                     +---------------+-------+-------+
    11                     |   modifiers   |  rsvd | opcode|
    12                     +---------------+-------+-------+


    13     Allowable Modifiers:

    14              Clear Cached Data Lost
    15              Clear Serious Exception

    16              Immediate Completion

    17                  If  this  modifier  is  set,  this  command  may  be
    18                  executed  as  a "write-back" caching enabled "write"
    19                  type command.  Refer to section 3.6.1  for  complete
    20                  details.






















                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-71
           WRITE TAPE MARK Command                           8 November 1987


     1     5.13.2  End Message Format

     2                     31                             0 
     3                     +-------------------------------+
     4                     |    command reference number   |
     5                     +---------------+---------------+
     6                     |sequence number|  unit number  |
     7                     +---------------+-------+-------+
     8                     |     status    | flags |endcode|
     9                     +---------------+-------+-------+
    10                     |                               |
    11                     +----                       ----+
    12                     |                               |
    13                     +---        undefined        ---+
    14                     |                               |
    15                     +----                       ----+
    16                     |                               |
    17                     +-------------------------------+
    18                     |    position  (object count)   |
    19                     +-------------------------------+


    20     Status Codes:

    21              Success
    22                  (subcode "Normal")
    23                  (subcode "EOT Encountered")

    24              Command Aborted
    25              Controller Error
    26              Data Error
    27              Drive Error
    28  |           Formatter Error  
    29              Position Lost
    30              Serious Exception
    31              Unit-Available
    32              Unit-Offline

    33              Write-Protected
    34                  (subcode "Unit is Hardware Write Protected")
    35                  (subcode "Unit is Software Write Protected")
    36                  (subcode "Unit is Data Safety Write Protected")


    37     Flags:

    38              Cached Data Lost
    39              EOT Encountered




                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-72
           WRITE TAPE MARK Command                           8 November 1987


     1              Error Log Generated
     2              Position Lost
     3              Serious Exception

















































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP COMMAND DESCRIPTIONS                              Page 5-73
           WRITE TAPE MARK Command                           8 November 1987


     1     5.13.3  Description

     2     A tape mark is written to the specified  unit  beginning  at  the
     3     current position.

     4     Refer to sections 3.3 and 3.5 for additional detail.














































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP ERROR LOG MESSAGES                                 Page 6-1
                                                             8 November 1987


     1                                 CHAPTER 6

     2                         TMSCP ERROR LOG MESSAGES


     3     6.1  TMSCP Error Log Message Format

     4     For a detailed description of error log message  handling,  refer
     5     to MSCP.

     6     The "volume serial number" field of the MSCP  generic  error  log
     7     message  format is used as the "Position (object count)" field in
     8     TMSCP.

     9     The following error log message formats are supported  by  TMSCP,
    10     but described in MSCP:

    11           o  Controller Errors
    12           o  Memory Errors


    13     The subsections which follow describe TMSCP  specific  error  log
    14     formats.   Note  that  where  an  STI response is included in the
    15     error log format the response code  and  checksum  bytes  of  the
    16     response  are  not  returned by the controller.  Refer to the STI
    17     specification for a description of the individual STI responses.

    18     Fields common to the TMSCP error log messages are described here:

    19           o  position (object count)

    20                  "position  (object  count)"  at  which   the   error
    21                  occurred.   This  value  may not necessarily reflect
    22                  the actual object count  since  certain  errors  can
    23                  result  in a position lost condition.  In that case,
    24                  the last known good object count will be specified.


    25           o  fsvrsn

    26                  Formatter software, firmware, or microcode  revision
    27                  number.    Always   zero   if  the  development  and
    28                  maintainability groups for a product determine  that
    29                  there is no benefit from supporting machine readable
    30                  revision numbers.







                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP ERROR LOG MESSAGES                                 Page 6-2
           TMSCP Error Log Message Format                    8 November 1987


     1           o  fhvrsn

     2                  Formatter hardware revision number.  Always zero  if
     3                  the  development  and  maintainability  groups for a
     4                  product determine that  there  is  no  benefit  from
     5                  supporting machine readable revision numbers.














































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP ERROR LOG MESSAGES                                 Page 6-3
           TMSCP Error Log Message Format                    8 November 1987


     1     6.1.1  Tape Errors

     2     The following format is  used  to  report  generic  tape  errors,
     3     including   errors   that  occur  during  a  tape  data  transfer
     4     operation.


     5                     31                             0 
     6                     +-------------------------------+
     7                     |    command reference number   |
     8                     +---------------+---------------+
     9                     |sequence number|  unit number  |
    10                     +---------------+-------+-------+
    11                     |   event code  | flags | format|
    12                     +---------------+-------+-------+
    13                     |                               |
    14                     +---  controller identifier  ---+
    15                     |                               |
    16                     +---------------+-------+-------+
    17                     |multi-unit code| chvrsn| csvrsn|
    18                     +---------------+-------+-------+
    19                     |                               |
    20                     +---     unit identifier     ---+
    21                     |                               |
    22                     +-------+-------+-------+-------+
    23                     | retry | level | uhvrsn| usvrsn|
    24                     +-------+-------+-------+-------+
    25                     |    position (object count)    |
    26                     +---------------+-------+-------+
    27                     |    reserved   | fhvrsn| fsvrsn|
    28                     +---------------+-------+-------+
    29                     |                               |
    30                     /             device            /
    31                     /     dependent information     /
    32                     /           (optional)          /
    33                     |                               |
    34                     +-------------------------------+

    35     Level/Retry:

    36              The error recovery level and retry  count  of  the  most
    37              recent  attempt at the transfer.  Note that these values
    38              always identify the last attempt --  i.e.,  the  attempt
    39              that  succeeded  or  the  last attempt before giving up.
    40              Refer to MSCP for more detail on  the  Level  and  Retry
    41              fields.
                           





                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP ERROR LOG MESSAGES                                 Page 6-4
           TMSCP Error Log Message Format                    8 November 1987


     1     Device Dependent Information:

     2              An optional, variable  length  field  containing  device
     3              dependent  information.   The  length  of  this field is
     4              implied by the total length of the  error  log  message,
     5              passed  to  the  class  driver  by the port driver.  The
     6              contents  of  the  field  must  be  described   in   the
     7              functional  specification  of  any device providing this
     8              field.











































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP ERROR LOG MESSAGES                                 Page 6-5
           TMSCP Error Log Message Format                    8 November 1987


     1     6.1.2  STI Communication Or Command Failures

     2     The following format is used by STI Tape  Controllers  to  report
     3     STI  communication or command failures.  Note that the controller
     4     may attempt several retries.  A separate error log  message  will
     5     be generated for each attempt that fails.


     6                     31                             0 
     7                     +-------------------------------+
     8                     |    command reference number   |
     9                     +---------------+---------------+
    10                     |sequence number|  unit number  |
    11                     +---------------+-------+-------+
    12                     |   event code  | flags | format|
    13                     +---------------+-------+-------+
    14                     |                               |
    15                     +---  controller identifier  ---+
    16                     |                               |
    17                     +---------------+-------+-------+
    18                     |multi-unit code| chvrsn| csvrsn|
    19                     +---------------+-------+-------+
    20                     |                               |
    21                     +---     unit identifier     ---+
    22                     |                               |
    23                     +---------------+-------+-------+
    24                     |    reserved   | uhvrsn| usvrsn|
    25                     +---------------+-------+-------+
    26                     |    position (object count)    |
    27                     +---------------+-------+-------+
    28                     |    reserved   | fhvrsn| fsvrsn|
    29                     +---------------+-------+-------+
    30                     |                               |
    31                     +---     STI UNSUCCESSFUL    ---+
    32                     |            Response           |
    33                     +---         12 bytes        ---+
    34                     |                               |
    35                     +-------------------------------+

    36     STI UNSUCCESSFUL Response:

    37              Twelve bytes of information received from the  formatter
    38              as  an  UNSUCCESSFUL  response, or in response to an STI
    39              GET SUMMARY STATUS command (the format is identical).








                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP ERROR LOG MESSAGES                                 Page 6-6
           TMSCP Error Log Message Format                    8 November 1987


     1     6.1.3  STI Formatter Error Log

     2     The following format is used by STI Tape  Controllers  to  return
     3     formatter requested error logs.


     4                     31                             0 
     5                     +-------------------------------+
     6                     |    command reference number   |
     7                     +---------------+---------------+
     8                     |sequence number|  unit number  |
     9                     +---------------+-------+-------+
    10                     |   event code  | flags | format|
    11                     +---------------+-------+-------+
    12                     |                               |
    13                     +---  controller identifier  ---+
    14                     |                               |
    15                     +---------------+-------+-------+
    16                     |multi-unit code| chvrsn| csvrsn|
    17                     +---------------+-------+-------+
    18                     |                               |
    19                     +---     unit identifier     ---+
    20                     |                               |
    21                     +---------------+-------+-------+
    22                     |    reserved   | uhvrsn| usvrsn|
    23                     +---------------+-------+-------+
    24                     |    position (object count)    |
    25                     +---------------+-------+-------+
    26                     |    reserved   | fhvrsn| fsvrsn|
    27                     +---------------+-------+-------+
    28                     |                               |
    29                     +---    STI GET FORMATTER    ---+
    30                     /       ERROR LOG Response      /
    31                     +---         20 bytes        ---+
    32                     |                               |
    33                     +-------------------------------+



    34     STI GET FORMATTER ERROR LOG Response:

    35              Twenty bytes of information received from the  formatter
    36              in  response  to an STI GET FORMATTER ERROR LOG command.
    37              Note that the format of this  information  is  formatter
    38              and  error  type  dependent,  and will therefore vary in
    39              length and content.  If the  information  received  from
    40              the  formatter is less than twenty bytes, the controller
    41              will zero fill the remaining unused bytes of  the  error
    42              log message.



                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           TMSCP ERROR LOG MESSAGES                                 Page 6-7
           TMSCP Error Log Message Format                    8 November 1987


     1     6.1.4  STI Drive Error Log

     2     The following format is used by STI Tape  Controllers  to  return
     3     drive requested error logs.


     4                     31                             0 
     5                     +-------------------------------+
     6                     |    command reference number   |
     7                     +---------------+---------------+
     8                     |sequence number|  unit number  |
     9                     +---------------+-------+-------+
    10                     |   event code  | flags | format|
    11                     +---------------+-------+-------+
    12                     |                               |
    13                     +---  controller identifier  ---+
    14                     |                               |
    15                     +---------------+-------+-------+
    16                     |multi-unit code| chvrsn| csvrsn|
    17                     +---------------+-------+-------+
    18                     |                               |
    19                     +---     unit identifier     ---+
    20                     |                               |
    21                     +---------------+-------+-------+
    22                     |    reserved   | uhvrsn| usvrsn|
    23                     +---------------+-------+-------+
    24                     |    position (object count)    |
    25                     +---------------+-------+-------+
    26                     |    reserved   | fhvrsn| fsvrsn|
    27                     +---------------+-------+-------+
    28                     |                               |
    29                     +---     STI GET EXTENDED    ---+
    30                     /     DRIVE STATUS Response     /
    31                     +---         62 bytes        ---+
    32                     |                               |
    33                     +-------------------------------+



    34     STI GET EXTENDED DRIVE STATUS Response:

    35              Sixty  two  bytes  of  information  received  from   the
    36              formatter  in  response  to  an  STI  GET EXTENDED DRIVE
    37              STATUS  command.   Note  that   the   format   of   this
    38              information  is drive and error type dependent, and will
    39              therefore  vary  in  length   and   content.    If   the
    40              information  received  from the drive is less than sixty
    41              two bytes, the controller will zero fill  the  remaining
    42              unused bytes of the error log message.



                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           OPCODE, FLAG AND OFFSET DEFINITIONS                                                Page A-1
                                                                                       8 November 1987


     1                                             APPENDIX A

     2                                 OPCODE, FLAG AND OFFSET DEFINITIONS


     3                                Table A-1:  Control Message Opcodes

     4     +--------------------+--------------------------+-----------------------------------------+
     5     |    Opcode Value    |                          |                                         |
     6     |    (See note 1)    |   Preferred Mnemonics    |                                         |
     7     |------+------+------+--------+-----------------+     Control Message Type                |
     8     | Dec. | Oct. | Hex. | 16 bit |     32 bit      |                                         |
     9     +------+------+------+--------+-----------------+-----------------------------------------+
    10     |   0  |  00  |  00  |    -   |        -        | reserved - must not be assigned         |
    11     +------+------+------+--------+-----------------+-----------------------------------------+
    12     | Standard Command Messages (See note 2):       |                                         |
    13     |   1  |  01  |  01  | OP.ABO | MSCP$K_OP_ABORT | ABORT                                   |
    14     |  16  |  20  |  10  | OP.ACC | MSCP$K_OP_ACCES | ACCESS                                  |
    15     |   8  |  10  |  08  | OP.AVL | MSCP$K_OP_AVAIL | AVAILABLE                               |
    16     |  32  |  40  |  20  | OP.CMP | MSCP$K_OP_COMP  | COMPARE HOST DATA                       |
    17     |  11  |  13  |  0B  | OP.DAP | MSCP$K_OP_DTACP | DETERMINE ACCESS PATHS                  |
    18     |  18  |  22  |  12  | OP.ERS | MSCP$K_OP_ERASE | ERASE                                   |
    19     |   2  |  02  |  02  | OP.GCS | MSCP$K_OP_GTCMD | GET COMMAND STATUS                      |
    20     |   3  |  03  |  03  | OP.GUS | MSCP$K_OP_GTUNT | GET UNIT STATUS                         |
    21     |   9  |  11  |  09  | OP.ONL | MSCP$K_OP_ONLIN | ONLINE                                  |
    22     |  33  |  41  |  21  | OP.RD  | MSCP$K_OP_READ  | READ                                    |
    23     |   4  |  04  |  04  | OP.SCC | MSCP$K_OP_STCON | SET CONTROLLER CHARACTERISTICS          |
    24     |  10  |  12  |  0A  | OP.SUC | MSCP$K_OP_STUNT | SET UNIT CHARACTERISTICS                |
    25     |  34  |  42  |  22  | OP.WR  | MSCP$K_OP_WRITE | WRITE                                   |
    26     +------+------+------+--------+-----------------+-----------------------------------------+
    27     | Optional Command Messages:  |                 |                                         |
    28     |   5  |  05  |  05  | OP.ANM | MSCP$K_OP_ACCNM | ACCESS NON-VOLATILE MEMORY              |
    29     +------+------+------+--------+-----------------+-----------------------------------------+
    30     | Implementation Specific Command Messages (See note 4):                                  |
    31     |  40  |  50  |  28  | OP.SP1 | MSCP$K_OP_SPEC1 | # 1                                     |
    32     |  41  |  51  |  29  | OP.SP2 | MSCP$K_OP_SPEC2 | # 2                                     |
    33     |  42  |  52  |  2A  | OP.SP3 | MSCP$K_OP_SPEC3 | # 3                                     |
    34     |  43  |  53  |  2B  | OP.SP4 | MSCP$K_OP_SPEC4 | # 4                                     |
    35     |  44  |  54  |  2C  | OP.SP5 | MSCP$K_OP_SPEC5 | # 5                                     |
    36     |  45  |  55  |  2D  | OP.SP6 | MSCP$K_OP_SPEC6 | # 6                                     |
    37     |  46  |  56  |  2E  | OP.SP7 | MSCP$K_OP_SPEC7 | # 7                                     |
    38     |  47  |  57  |  2F  | OP.SP8 | MSCP$K_OP_SPEC8 | # 8                                     |
    39     +------+------+------+--------+-----------------+-----------------------------------------+
    40     | Tape MSCP Specific Command Messages:          |                                         |
    41     |  22  |  26  |  16  | OP.ERG | MSCP$K_OP_ERGAP | ERASE GAP                               |
    42     |  19  |  23  |  13  | OP.FLU | MSCP$K_OP_FLUSH | FLUSH                                   |
    43     |  37  |  45  |  25  | OP.REP | MSCP$K_OP_REPOS | REPOSITION                              |
    44     |  36  |  44  |  24  | OP.WTM | MSCP$K_OP_WRITM | WRITE TAPE MARK                         |
    45     +------+------+------+--------+-----------------+-----------------------------------------+



                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           OPCODE, FLAG AND OFFSET DEFINITIONS                                                Page A-2
                                                                                       8 November 1987



     1                             Table A-1: Control Message Opcodes (cont.)

     2     +--------------------+--------------------------+-----------------------------------------+
     3     |    Opcode Value    |                          |                                         |
     4     |    (See note 1)    |   Preferred Mnemonics    |                                         |
     5     |------+------+------+--------+-----------------+     Control Message Type                |
     6     | Dec. | Oct. | Hex. | 16 bit |     32 bit      |                                         |
     7     +------+------+------+--------+-----------------+-----------------------------------------+
     8     | End Messages (See note 3):                    |                                         |
     9     | 128  | 200  |  80  | OP.END | MSCP$K_OP_END   | END message flag                        |
    10     +------+------+------+--------+-----------------+-----------------------------------------+
    11     | Attention Messages:|        |                 |                                         |
    12     |  64  | 100  |  40  | OP.AVA | MSCP$K_OP_AVATN | AVAILABLE                               |
    13     |  65  | 101  |  41  | OP.DUP | MSCP$K_OP_DUPUN | DUPLICATE UNIT NUMBER                   |
    14     |  66  | 102  |  42  | OP.ACP | MSCP$K_OP_APATH | ACCESS PATH                             |
    15     +------+------+------+--------+-----------------+-----------------------------------------+
    16     | Notes: 1. Message  opcode  bits 6 and 7 indicate the type of message (command, end,  or |
    17     |           attention).                                                                   |
    18     |                                                                                         |
    19     |        2. Standard  command  opcode  bits  3 through 5 indicate  the  command  category |
    20     |           (Immediate,  Sequential,  or Non-Sequential) and whether or not  the  command |
    21     |           includes a buffer descriptor.                                                 |
    22     |                                                                                         |
    23     |        3. End message endcodes are formed by adding the end message flag to the command |
    24     |           opcode.   For  example, a READ command's end message contains (using  16  bit |
    25     |           mnemonics)  the value OP.RD+OP.END in its endcode field.  As described in the |
    26     |           MSCP  specification,  an MSCP protocol violation produces an Invalid  Command |
    27     |           end  message which contains just the end message flag (OP.END) in its endcode |
    28     |           field.                                                                        |
    29     |                                                                                         |
    30     |        4. The implementation specific command opcodes may be used by manufacturing test |
    31     |           equipment to verify controller operation. They must never be issued by normal |
    32     |           host  software,  or  when a host is running anything other  than  stand-alone |
    33     |           diagnostics.  The operation of these commands when issued under anything  but |
    34     |           the expected manufacturing and/or diagnostic environment is UNDEFINED.        |
    35     +-----------------------------------------------------------------------------------------+















                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           OPCODE, FLAG AND OFFSET DEFINITIONS                                                Page A-3
                                                                                       8 November 1987


     1                                   Table A-2:  Command Modifiers

     2     +------+--------------+--------------------------+----------------------------------------+
     3     | Bit  |   Bit Mask   |   Preferred Mnemonics    |                                        |
     4     |Number+-------+------+--------+-----------------+     Command Modifier                   |
     5     |      | Octal | Hex. | 16 bit |     32 bit      |                                        |
     6     |      |       |      |        |   (See note 1)  |                                        |
     7     +------+-------+------+--------+-----------------+----------------------------------------+
     8     | ACCESS, AVAILABLE, COMPARE HOST DATA, ERASE, ERASE GAP, FLUSH, ONLINE, READ,           |
     9     | REPOSITION, SET UNIT CHARACTERISTICS, WRITE and WRITE TAPE MARK Command Modifiers:      |
    10     |  13  | 20000 | 2000 | MD.CSE | MSCP$x_MD_CLSEX | Clear Serious Exception                |
    11     |  12  | 10000 | 1000 | MD.CDL | MSCP$x_MD_CDATL | Clear Cached Data Lost                 |
    12     +------+-------+------+--------+-----------------+----------------------------------------+
    13     | ACCESS, COMPARE HOST DATA, READ, and REPOSITION Command Modifiers:                      |
    14     |  11  |  4000 |  800 | MD.SCH | MSCP$x_MD_SCCHH | Suppress Caching                       |
    15     |   3  |    10 |    8 | MD.REV | MSCP$x_MD_REVRS | Reverse                                |
    16     +------+-------+------+--------+-----------------+----------------------------------------+
    17     | ACCESS, COMPARE HOST DATA, READ, REPOSITION, and WRITE Command Modifiers:               |
    18     |   9  |  1000 |  200 | MD.SEC | MSCP$x_MD_SECOR | Suppress Error Correction              |
    19     |   8  |   400 |  100 | MD.SER | MSCP$x_MD_SEREC | Suppress Error Recovery                |
    20     +------+-------+------+--------+-----------------+----------------------------------------+
    21     | AVAILABLE Command Modifiers: |                 |                                        |
    22     |   4  |    20 |   10 | MD.UNL | MSCP$x_MD_UNLOD | Unload                                 |
    23     |   1  |     2 |    2 | MD.ALL | MSCP$x_MD_ALLCD | All Class Drivers                      |
    24     +------+-------+------+--------+-----------------+----------------------------------------+
    25     | AVAILABLE, ONLINE, and SET UNIT CHARACTERISTICS Command Modifiers:                      |
    26     |   5  |    40 |   20 | MD.EXC | MSCP$x_MD_EXCAC | Exclusive Access                       |
    27     +------+-------+------+--------+-----------------+----------------------------------------+
    28     | ERASE, ERASE GAP, REPOSITION, WRITE and WRITE TAPE MARK Command Modifier:               |
    29     |   6  |   100 |   40 | MD.IMM | MSCP$x_MD_IMMED | Immediate Completion                   |
    30     +------+-------+------+--------+-----------------+----------------------------------------+
    31     | GET UNIT STATUS Command Modifier:              |                                        |
    32     |   0  |     1 |    1 | MD.NXU | MSCP$x_MD_NXUNT | Next Unit                              |
    33     +------+-------+------+--------+-----------------+----------------------------------------+
    34     | ONLINE and SET UNIT CHARACTERISTICS Command Modifier:                                   |
    35     |   2  |     4 |    4 | MD.SWP | MSCP$x_MD_STWRP | Enable Set Write Protect               |
    36     +------+-------+------+--------+-----------------+----------------------------------------+
    37     | READ and WRITE Command Modifier:               |                                        |
    38     |  14  | 40000 | 4000 | MD.CMP | MSCP$x_MD_COMP  | Compare                                |
    39     +------+-------+------+--------+-----------------+----------------------------------------+
    40     | REPOSITION Command Modifiers:|                 |                                        |
    41     |   7  |   200 |   80 | MD.DLE | MSCP$x_MD_DLEOT | Detect LEOT                            |
    42     |   2  |     4 |    4 | MD.OBC | MSCP$x_MD_OBJCT | Object Count                           |
    43     |   1  |     2 |    2 | MD.RWD | MSCP$x_MD_REWND | Rewind                                 |
    44     +------+-------+------+--------+-----------------+----------------------------------------+







                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           OPCODE, FLAG AND OFFSET DEFINITIONS                                                Page A-4
                                                                                       8 November 1987



     1                                Table A-2: Command Modifiers (cont.)

     2     +------+--------------+--------------------------+----------------------------------------+
     3     | Bit  |   Bit Mask   |   Preferred Mnemonics    |                                        |
     4     |Number+-------+------+--------+-----------------+     Command Modifier                   |
     5     |      | Octal | Hex. | 16 bit |     32 bit      |                                        |
     6     |      |       |      |        |   (See note 1)  |                                        |
     7     +------+-------+------+--------+-----------------+----------------------------------------+
     8     | WRITE Command Modifier:      |                 |                                        |
     9     |   4  |    20 |   10 | MD.ERW | MSCP$x_MD_ENRWR | Enable Re-Write Error Recovery         |
    10     +------+-------+------+--------+-----------------+----------------------------------------+
    11     | Notes: 1. The  "x" in  the 32 bit mnemonic for a bit flag will be "V" if the symbol  is |
    12     |           defined as a bit number (offset) or an "M" if defined as a mask.              |
    13     +-----------------------------------------------------------------------------------------+


    14                                   Table A-3:  End Message Flags

    15     +------+--------------+--------------------------+----------------------------------------+
    16     | Bit  |   Bit Mask   |   Preferred Mnemonics    |                                        |
    17     |Number+-------+------+--------+-----------------+     End Message Flag                   |
    18     |      | Octal | Hex. | 16 bit |     32 bit      |                                        |
    19     |      |       |      |        |   (See note 1)  |                                        |
    20     +------+-------+------+--------+-----------------+----------------------------------------+
    21     |   5  |    40 |   20 | EF.LOG | MSCP$x_EF_ERLOG | Error Log Generated                    |
    22     |   4  |    20 |   10 | EF.SEX | MSCP$x_EF_SEREX | Serious Exception                      |
    23     |   3  |    10 |    8 | EF.EOT | MSCP$x_EF_EOT   | End of Tape encountered                |
    24     |   2  |     4 |    4 | EF.PLS | MSCP$x_EF_PLS   | Position Lost                          |
    25     |   1  |     2 |    2 | EF.DLS | MSCP$x_EF_DLS   | Cached Data Lost                       |
    26     +------+-------+------+--------+-----------------+----------------------------------------+
    27     | Notes: 1. The  "x" in  the 32 bit mnemonic for a bit flag will be "V" if the symbol  is |
    28     |           defined as a bit number (offset) or an "M" if defined as a mask.              |
    29     +-----------------------------------------------------------------------------------------+


    30                                    Table A-4:  Controller Flags

    31     +------+--------------+--------------------------+----------------------------------------+
    32     | Bit  |   Bit Mask   |   Preferred Mnemonics    |                                        |
    33     |Number+-------+------+--------------------------+     Controller Flag                    |
    34     |      | Octal | Hex. | 16 bit |     32 bit      |     (See note 2)                       |
    35     |      |       |      |        |   (See note 1)  |                                        |
    36     +------+-------+------+--------+-----------------+----------------------------------------+
    37     |   7  |   200 |   80 | CF.ATN | MSCP$x_CF_ATTN  | Enable Attention Messages              |
    38     |   6  |   100 |   40 | CF.MSC | MSCP$x_CF_MISC  | Enable Miscellaneous Error Log Messages|
    39     |   5  |    40 |   20 | CF.OTH | MSCP$x_CF_OTHER | Enable Other Host's Error Log Messages |
    40     |   4  |    20 |   10 | CF.THS | MSCP$x_CF_THIS  | Enable This Host's Error Log Messages  |
    41     |   2  |     4 |    4 | CF.MLH | MSCP$x_CF_MLHT  | Multi-Host Support                     |
    42     +------+-------+------+--------+-----------------+----------------------------------------+


                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           OPCODE, FLAG AND OFFSET DEFINITIONS                                                Page A-5
                                                                                       8 November 1987



     1                                 Table A-4: Controller Flags (cont.)

     2     +------+--------------+--------------------------+----------------------------------------+
     3     | Bit  |   Bit Mask   |   Preferred Mnemonics    |                                        |
     4     |Number+-------+------+--------------------------+     Controller Flag                    |
     5     |      | Octal | Hex. | 16 bit |     32 bit      |                                        |
     6     |      |       |      |        |   (See note 1)  |                                        |
     7     +------+-------+------+--------+-----------------+----------------------------------------+
     8     | Notes: 1. The  "x" in  the 32 bit mnemonic for a bit flag will be "V" if the symbol  is |
     9     |           defined as a bit number (offset) or an "M" if defined as a mask.              |
    10     +------+-------+------+--------+-----------------+----------------------------------------+


    11                                       Table A-5:  Unit Flags

    12     +------+--------------+--------------------------+----------------------------------------+
    13     | Bit  |   Bit Mask   |   Preferred Mnemonics    |                                        |
    14     |Number+-------+------+--------+-----------------+     Unit Flag                          |
    15     |      | Octal | Hex. | 16 bit |     32 bit      |                                        |
    16     |      |       |      |        |   (See note 1)  |                                        |
    17     +------+-------+------+--------+-----------------+----------------------------------------+
    18     |  15  |100000 | 8000 | UF.CAC | MSCP$x_UF_CACH  | Tape Write-back caching                |
    19     |  13  | 20000 | 2000 | UF.WPH | MSCP$x_UF_WRTPH | Hardware Write protect                 |
    20     |  12  | 10000 | 1000 | UF.WPS | MSCP$x_UF_WRTPS | Software Write protect                 |
    21     |  11  |  4000 |  800 | UF.SCH | MSCP$x_UF_SCCHH | Suppress Caching                       |
    22     |  10  |  2000 |  400 | UF.EXA | MSCP$x_UF_EXACC | Exclusive Access                       |
    23     |   8  |   400 |  100 | UF.WPD | MSCP$x_UF_WRTPD | Data Safety Write Protect              |
    24     |   6  |   100 |   40 | UF.WBN | MSCP$x_UF_WBKNV | Write-back                             |
    25     |   5  |    40 |   20 | UF.VSS | MSCP$x_UF_VSMSU | Variable Speed Mode Suppression        |
    26     |   4  |    20 |   10 | UF.VSU | MSCP$x_UF_VARSP | Variable Speed Unit                    |
    27     |   3  |    10 |    8 | UF.EWR | MSCP$x_UF_EWRER | Enhanced Write Error Recovery          |
    28     |   1  |     2 |    2 | UF.CMW | MSCP$x_UF_CMPWR | Compare Writes                         |
    29     |   0  |     1 |    1 | UF.CMR | MSCP$x_UF_CMPRD |                                        |
    30     +------+-------+------+--------+-----------------+----------------------------------------+
    31     | Notes: 1. The  "x" in  the 32 bit mnemonic for a bit flag will be "V" if the symbol  is |
    32     |           defined as a bit number (offset) or an "M" if defined as a mask.              |
    33     +------+-------+------+--------+-----------------+----------------------------------------+














                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           OPCODE, FLAG AND OFFSET DEFINITIONS                                                Page A-6
                                                                                       8 November 1987


     1                                Table A-6:  Command Message Offsets

     2     +--------------------+--------------------------+-------+---------------------------------+
     3     |    Offset Value    |   Preferred Mnemonics    | Field |                                 |
     4     +------+------+------+--------+-----------------+ Size  | Field Description               |
     5     | Dec. | Oct. | Hex. | 16 bit |      32 bit     |(bytes)|                                 |
     6     +------+------+------+--------+-----------------+-------+---------------------------------+
     7     | Generic Command Message Offsets:              |       |                                 |
     8     |   0  |   0  |   0  | P.CRF  | MSCP$L_CMD_REF  |   4   | Command reference number        |
     9     |   4  |   4  |   4  | P.UNIT | MSCP$W_UNIT     |   2   | Unit number                     |
    10     |   6  |   6  |   6  |        |                 |   2   | Reserved                        |
    11     |   8  |  10  |   8  | P.OPCD | MSCP$B_OPCODE   |   1   | Opcode                          |
    12     |   9  |  11  |   9  |        |                 |   1   | Reserved                        |
    13     |  10  |  12  |   A  | P.MOD  | MSCP$W_MODIFIER |   2   | Modifiers                       |
    14     |  12  |  14  |   C  | P.BCNT | MSCP$L_BYTE_CNT |   4   | Byte count                      |
    15     |  16  |  20  |  10  | P.BUFF | MSCP$B_BUFFER   |  12   | Buffer descriptor               |
    16     +------+------+------+--------+-----------------+-------+---------------------------------+
    17     | ABORT and GET COMMAND STATUS Command Message Offsets: |                                 |
    18     |  12  |  14  |   C  | P.OTRF | MSCP$L_OUT_REF  |   4   | Outstanding reference number    |
    19     +------+------+------+--------+-----------------+-------+---------------------------------+
    20     | ACCESS NON-VOLATILE MEMORY Command Message Offsets:   |                                 |
    21     |   4  |   4  |   4  |        |                 |   2   | Reserved                        |
    22     |  12  |  14  |   C  |        |                 |   4   | Reserved                        |
    23     |  16  |  20  |  10  | P.ANOF | MSCP$L_ANM_OFFS |   4   | Offset                          |
    24     |  20  |  24  |  14  | P.ANOP | MSCP$W_ANM_OPER |   2   | Operation (See Table A-11)      |
    25     |  22  |  26  |  16  | P.ANDL | MSCP$W_ANM_DLGH |   2   | Data length                     |
    26     |  24  |  30  |  18  | P.ANMD | MSCP$T_ANM_MEMD |   *   | Memory data                     |
    27     +------+------+------+--------+-----------------+-------+---------------------------------+
    28     | ONLINE and SET UNIT CHARACTERISTICS Command Message Offsets:                            |
    29     |  12  |  14  |   C  |        |                 |   2   | Reserved                        |
    30     |  14  |  16  |   E  | P.UNFL | MSCP$W_UNT_FLGS |   2   | Unit flags                      |
    31     |  16  |  20  |  10  |        |                 |  12   | Reserved                        |
    32     |  28  |  34  |  1C  | P.DVPM | MSCP$L_DEV_PARM |   4   | Device dependent parameters     |
    33     |  32  |  40  |  20  | P.FORM | MSCP$W_FORMAT   |   2   | Format                          |
    34     |  34  |  42  |  22  | P.SPED | MSCP$L_SPEED    |   2   | Speed                           |
    35     +------+------+------+--------+-----------------+-------+---------------------------------+
    36     | REPOSITION Command Message Offsets:           |       |                                 |
    37     |  12  |  14  |   C  | P.RECC | MSCP$L_REC_CNT  |   4   | Record/Object Count             |
    38     |  16  |  20  |  10  | P.TMGC | MSCP$L_TMGP_CNT |   4   | Tape Mark Count or N/A          |
    39     +------+------+------+--------+-----------------+-------+---------------------------------+












                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           OPCODE, FLAG AND OFFSET DEFINITIONS                                                Page A-7
                                                                                       8 November 1987



     1                             Table A-6: Command Message Offsets (cont.)

     2     +--------------------+--------------------------+-------+---------------------------------+
     3     |    Offset Value    |   Preferred Mnemonics    | Field |                                 |
     4     +------+------+------+--------+-----------------+ Size  | Field Description               |
     5     | Dec. | Oct. | Hex. | 16 bit |      32 bit     |(bytes)|                                 |
     6     +------+------+------+--------+-----------------+-------+---------------------------------+
     7     | SET CONTROLLER CHARACTERISTICS Command Message Offsets:                                 |
     8     |   4  |   4  |   4  |        |                 |   2   | Reserved                        |
     9     |  12  |  14  |   C  | P.VRSN | MSCP$W_VERSION  |   2   | MSCP version                    |
    10     |  14  |  16  |   E  | P.CNTF | MSCP$W_CNT_FLGS |   2   | Controller flags                |
    11     |  16  |  20  |  10  | P.HTMO | MSCP$W_HST_TMO  |   2   | Host timeout                    |
    12     |  18  |  22  |  12  |        |                 |   2   | Reserved                        |
    13     |  20  |  24  |  14  | P.TIME | MSCP$Q_TIME     |   8   | Quad-word time and date         |
    14     |  28  |  34  |  1C  | P.CNPM | MSCP$L_CNT_PARM |   4   | Controller dependent parameters |
    15     +------+------+------+--------+-----------------+-------+---------------------------------+
    16     | Notes: 1. An asterisk (*) in the field size indicates that the size varies.             |
    17     +-----------------------------------------------------------------------------------------+


    18                           Table A-7:  End and Attention Message Offsets

    19     +--------------------+--------------------------+-------+---------------------------------+
    20     |    Offset Value    |   Preferred Mnemonics    | Field |                                 |
    21     +------+------+------+--------+-----------------+ Size  | Field Description               |
    22     | Dec. | Oct. | Hex. | 16 bit |      32 bit     |(bytes)|                                 |
    23     +------+------+------+--------+-----------------+-------+---------------------------------+
    24     | Generic End Message Offsets:|                 |       |                                 |
    25     |   0  |   0  |   0  | P.CRF  | MSCP$L_CMD_REF  |   4   | Command reference number        |
    26     |   4  |   4  |   4  | P.UNIT | MSCP$W_UNIT     |   2   | Unit number                     |
    27     |   6  |   6  |   6  | P.SEQ  | MSCP$W_SEQ_NUM  |   2   | Sequence Number (LAST error log)|
    28     |   8  |  10  |   8  | P.OPCD | MSCP$B_OPCODE   |   1   | Opcode (also called endcode)    |
    29     |   9  |  11  |   9  | P.FLGS | MSCP$B_FLAGS    |   1   | End message flags               |
    30     |  10  |  12  |   A  | P.STS  | MSCP$W_STATUS   |   2   | Status                          |
    31     |  12  |  14  |   C  | P.BCNT | MSCP$L_BYTE_CNT |   4   | Byte count (host transfer)      |
    32     +------+------+------+--------+-----------------+-------+---------------------------------+
    33     | ABORT and GET COMMAND STATUS End Message Offsets:     |                                 |
    34     |  12  |  14  |   C  | P.OTRF | MSCP$L_OUT_REF  |   4   | Outstanding reference number    |
    35     +------+------+------+--------+-----------------+-------+---------------------------------+
    36     | ACCESS NON-VOLATILE MEMORY End Message Offsets:       |                                 |
    37     |   4  |   4  |   4  |        |                 |   2   | Reserved                        |
    38     |  12  |  14  |   C  | P.ANSZ | MSCP$L_ANM_SIZE |   4   | Memory Size                     |
    39     |  16  |  20  |  10  | P.ANOF | MSCP$L_ANM_OFFS |   4   | Offset                          |
    40     |  20  |  24  |  14  | P.ANOP | MSCP$W_ANM_OPER |   2   | Operation (See Table A-11)      |
    41     |  22  |  26  |  16  | P.ANDL | MSCP$W_ANM_DLGH |   2   | Data length                     |
    42     |  24  |  30  |  18  | P.ANMD | MSCP$T_ANM_MEMD |   *   | Memory data                     |
    43     +------+------+------+--------+-----------------+-------+---------------------------------+




                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           OPCODE, FLAG AND OFFSET DEFINITIONS                                                Page A-8
                                                                                       8 November 1987



     1                        Table A-7: End and Attention Message Offsets (cont.)

     2     +--------------------+--------------------------+-------+---------------------------------+
     3     |    Offset Value    |   Preferred Mnemonics    | Field |                                 |
     4     +------+------+------+--------+-----------------+ Size  | Field Description               |
     5     | Dec. | Oct. | Hex. | 16 bit |      32 bit     |(bytes)|                                 |
     6     +------+------+------+--------+-----------------+-------+---------------------------------+
     7     | GET COMMAND STATUS End Message Offsets:       |       |                                 |
     8     |  16  |  20  |  10  | P.CMST | MSCP$L_CMD_STS  |   4   | Command status                  |
     9     +------+------+------+--------+-----------------+-------+---------------------------------+
    10     | GET UNIT STATUS End Message Offsets:          |       |                                 |
    11     |  12  |  14  |   C  | P.MLUN | MSCP$W_MULT_UNT |   2   | Multiunit code                  |
    12     |  14  |  16  |   E  | P.UNFL | MSCP$W_UNT_FLGS |   2   | Unit flags                      |
    13     |  16  |  20  |  10  |        |                 |   4   | Reserved                        |
    14     |  20  |  24  |  14  | P.UNTI | MSCP$Q_UNIT_ID  |   8   | Unit identifier                 |
    15     |  28  |  34  |  1C  | P.MEDI | MSCP$L_MEDIA_ID |   4   | Media type identifier           |
    16     |  32  |  40  |  20  | P.FORM | MSCP$W_FORMAT   |   2   | Tape Format                     |
    17     |  34  |  42  |  22  | P.SPED | MSCP$W_SPEED    |   2   | Speed                           |
    18     |  36  |  44  |  24  | P.FMEN | MSCP$W_FORMENU  |   2   | Format Menu                     |
    19     |  38  |  46  |  26  | P.FCAP | MSCP$B_FREECAP  |   1   | Free capacity                   |
    20     |  39  |  47  |  27  |        |                 |   1   | Reserved                        |
    21     |  40  |  50  |  28  | P.FSVR | MSCP$B_FMTR_SVR |   1   | Formatter software version      |
    22     |  41  |  51  |  29  | P.FHVR | MSCP$B_FMTR_HVR |   1   | Formatter hardware version      |
    23     |  42  |  52  |  2A  | P.USVR | MSCP$B_UNIT_SVR |   1   | Unit software version           |
    24     |  43  |  53  |  2B  | P.UHVR | MSCP$B_UNIT_HVR |   1   | Unit hardware version           |
    25     +------+------+------+--------+-----------------+-------+---------------------------------+
    26     | ONLINE and SET UNIT CHARACTERISTICS End Message and AVAILABLE Attention Message offsets:|
    27     |  12  |  14  |   C  | P.MLUN | MSCP$W_MULT_UNT |   2   | Multiunit code                  |
    28     |  14  |  16  |   E  | P.UNFL | MSCP$W_UNT_FLGS |   2   | Unit flags                      |
    29     |  16  |  20  |  10  |        |                 |   4   | Reserved                        |
    30     |  20  |  24  |  14  | P.UNTI | MSCP$Q_UNIT_ID  |   8   | Unit identifier                 |
    31     |  28  |  34  |  1C  | P.MEDI | MSCP$L_MEDIA_ID |   4   | Media type identifier           |
    32     |  32  |  40  |  20  | P.FORM | MSCP$W_FORMAT   |   2   | Tape Format                     |
    33     |  34  |  42  |  22  | P.SPED | MSCP$W_SPEED    |   2   | Speed                           |
    34     |  36  |  44  |  24  | P.MXWR | MSCP$L_MAXWRREC |   4   | Maximum WRITE record size       |
    35     |  40  |  50  |  28  | P.NREC | MSCP$W_NOISEREC |   2   | Noise Record                    |
    36     |  42  |  52  |  2A  |        |                 |   2   | Reserved                        |
    37     +------+------+------+--------+-----------------+-------+---------------------------------+
    38     | SET CONTROLLER CHARACTERISTICS End Message Offsets:   |                                 |
    39     |   4  |   4  |   4  |        |                 |   2   | Reserved                        |
    40     |  12  |  14  |   C  | P.VRSN | MSCP$W_VERSION  |   2   | MSCP version                    |
    41     |  14  |  16  |   E  | P.CNTF | MSCP$W_CNT_FLGS |   2   | Controller flags                |
    42     |  16  |  20  |  10  | P.CTMO | MSCP$W_CNT_TMO  |   2   | Controller timeout              |
    43     |  18  |  22  |  12  | P.CSVR | MSCP$B_CNT_SVR  |   1   | Controller software version     |
    44     |  19  |  23  |  13  | P.CHVR | MSCP$B_CNT_HVR  |   1   | Controller hardware version     |
    45     |  20  |  24  |  14  | P.CNTI | MSCP$Q_CNT_ID   |   8   | Controller ID                   |
    46     |  28  |  34  |  1C  | P.CMBC | MSCP$L_MAXBCNT  |   4   | Controller  maximum  byte count |
    47     |      |      |      |        |                 |       | (optional)                      |
    48     +------+------+------+--------+-----------------+-------+---------------------------------+


                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           OPCODE, FLAG AND OFFSET DEFINITIONS                                                Page A-9
                                                                                       8 November 1987



     1                        Table A-7: End and Attention Message Offsets (cont.)

     2     +--------------------+--------------------------+-------+---------------------------------+
     3     |    Offset Value    |   Preferred Mnemonics    | Field |                                 |
     4     +------+------+------+--------+-----------------+ Size  | Field Description               |
     5     | Dec. | Oct. | Hex. | 16 bit |      32 bit     |(bytes)|                                 |
     6     +------+------+------+--------+-----------------+-------+---------------------------------+
     7     | ACCESS, COMPARE HOST DATA, FLUSH, READ, REPOSITION, WRITE, and WRITE TAPE MARK end      |
     8     | message offsets:   |        |                 |       |                                 |
     9     |  28  |  34  |  1C  | P.POS  | MSCP$L_POSITION |   4   | Position (Object Count)         |
    10     +------+------+------+--------+-----------------+-------+---------------------------------+
    11     | ACCESS, COMPARE HOST DATA, READ and WRITE end message offsets:                          |
    12     |  32  |  40  |  20  | P.TRBC | MSCP$L_TAPEREC  |   4   | Tape Record Byte Count          |
    13     +------+------+------+--------+-----------------+-------+---------------------------------+
    14     | REPOSITION end message offsets:               |       |                                 |
    15     |  12  |  14  |   C  | P.RCSK | MSCP$L_RCSKIPED |   4   | Records Skipped / Undefined     |
    16     |  16  |  20  |  10  | P.TMSK | MSCP$L_TMSKIPED |   4   | Tape Marks Skipped / Undefined  |
    17     +------+------+------+--------+-----------------+-------+---------------------------------+
    18     | Notes: 1. An asterisk (*) in the field size indicates that the size varies.             |
    19     +-----------------------------------------------------------------------------------------+


    20                               Table A-8:  Error Log Message Offsets

    21     +--------------------+--------------------------+-------+---------------------------------+
    22     |    Offset Value    |   Preferred Mnemonics    | Field |                                 |
    23     +------+------+------+--------+-----------------+ Size  | Field Description               |
    24     | Dec. | Oct. | Hex. | 16 bit |      32 bit     |(bytes)|                                 |
    25     +------+------+------+--------+-----------------+-------+---------------------------------+
    26     | Generic Error Log Message Offsets:            |       |                                 |
    27     |   0  |   0  |   0  | L.CRF  | MSLG$L_CMD_REF  |   4   | Command reference number        |
    28     |   4  |   4  |   4  | L.UNIT | MSLG$W_UNIT     |   2   | Unit number                     |
    29     |   6  |   6  |   6  | L.SEQ  | MSLG$W_SEQ_NUM  |   2   | Sequence number                 |
    30     |   8  |  10  |   8  | L.FMT  | MSLG$B_FORMAT   |   1   | Format                          |
    31     |   9  |  11  |   9  | L.FLGS | MSLG$B_FLAGS    |   1   | Error log message flags         |
    32     |  10  |  12  |   A  | L.EVNT | MSLG$W_EVENT    |   2   | Event code                      |
    33     |  12  |  14  |   C  | L.CNTI | MSLG$Q_CNT_ID   |   8   | Controller ID                   |
    34     |  20  |  24  |  14  | L.CSVR | MSLG$B_CNT_SVR  |   1   | Controller software version     |
    35     |  21  |  25  |  15  | L.CHVR | MSLG$B_CNT_HVR  |   1   | Controller hardware version     |
    36     |  22  |  26  |  16  | L.MLUN | MSLG$W_MULT_UNT |   2   | Multiunit code                  |
    37     |  24  |  30  |  18  | L.UNTI | MSLG$Q_UNIT_ID  |   8   | Unit ID                         |
    38     |  32  |  40  |  20  | L.USVR | MSLG$B_UNIT_SVR |   1   | Unit software version           |
    39     |  33  |  41  |  21  | L.UHVR | MSLG$B_UNIT_HVR |   1   | Unit hardware version           |
    40     |  34  |  42  |  22  |        |                 |   2   | Reserved                        |
    41     |  36  |  44  |  24  | L.GPCT | MSLG$L_GAP_CNT  |   4   | Position (object count)         |
    42     |  40  |  50  |  28  | L.FSVR | MSLG$B_FMTR_SVR |   1   | Formatter software version      |
    43     |  41  |  51  |  29  | L.FHVR | MSLG$B_FMTR_HVR |   1   | Formatter hardware version      |
    44     +------+------+------+--------+-----------------+-------+---------------------------------+



                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           OPCODE, FLAG AND OFFSET DEFINITIONS                                               Page A-10
                                                                                       8 November 1987



     1                            Table A-8: Error Log Message Offsets (cont.)

     2     +--------------------+--------------------------+-------+---------------------------------+
     3     |    Offset Value    |   Preferred Mnemonics    | Field |                                 |
     4     +------+------+------+--------+-----------------+ Size  | Field Description               |
     5     | Dec. | Oct. | Hex. | 16 bit |      32 bit     |(bytes)|                                 |
     6     +------+------+------+--------+-----------------+-------+---------------------------------+
     7     | Controller Error with Controller Dependent Information Offsets:                         |
     8     |  22  |  26  |  16  |        |                 |   *   | Controller dependent information|
     9     |      |      |      |        |                 |       | (optional)                      |
    10     +------+------+------+--------+-----------------+-------+---------------------------------+
    11     | Memory Errors with Host Bus Address Error Log Message Offsets:                          |
    12     |  22  |  26  |  16  |        |                 |   2   | Reserved                        |
    13     |  24  |  30  |  18  | L.BADR | MSLG$L_BUS_ADDR |   4   | Host bus memory address         |
    14     |  28  |  34  |  1C  |        |                 |   *   | Controller dependent information|
    15     |      |      |      |        |                 |       | (optional)                      |
    16     +------+------+------+--------+-----------------+-------+---------------------------------+
    17     | Memory Errors with Controller Memory Address Error Log Message Offsets:                 |
    18     |  22  |  26  |  16  |        |                 |   2   | Reserved                        |
    19     |  24  |  30  |  18  | L.BADR | MSLG$L_BUS_ADDR |   4   | Host bus memory address         |
    20     |  28  |  34  |  1C  |        |                 |   *   | Controller dependent information|
    21     |      |      |      |        |                 |       | (optional)                      |
    22     +------+------+------+--------+-----------------+-------+---------------------------------+
    23     | Tape Errors Error Log Message Offsets:        |       |                                 |
    24     |  34  |  42  |  22  | L.LVL  | MSLG$B_LEVEL    |   1   | Level                           |
    25     |  35  |  43  |  23  | L.RTRY | MSLG$B_RETRY    |   1   | Retry                           |
    26     |  42  |  52  |  2A  |        |                 |   2   | Reserved                        |
    27     |  44  |  54  |  2C  |        |                 |   *   | Device Dependent Information    |
    28     +------+------+------+--------+-----------------+-------+---------------------------------+
    29     | STI Communication Error Error Log Message Offsets:    |                                 |
    30     |  42  |  52  |  2A  |        |                 |   2   | Reserved                        |
    31     |  44  |  54  |  2C  | L.STI  | MSLG$Z_STI      |  12   | STI UNSUCCESSFUL Response       |
    32     +------+------+------+--------+-----------------+-------+---------------------------------+
    33     | STI Formatter Error Error Log Message Offsets:|       |                                 |
    34     |  42  |  52  |  2A  |        |                 |   2   | Reserved                        |
    35     |  44  |  54  |  2C  | L.STI  | MSLG$Z_STI      |  20   | STI GET EXTENDED FORMATTER      |
    36     |      |      |      |        |                 |       | STATUS Response                 |
    37     +------+------+------+--------+-----------------+-------+---------------------------------+
    38     | STI Drive Error Error Log Message Offsets:    |       |                                 |
    39     |  42  |  52  |  2A  |        |                 |   2   | Reserved                        |
    40     |  44  |  54  |  2C  | L.STI  | MSLG$Z_STI      |  62   | STI GET EXTENDED DRIVE STATUS   |
    41     |      |      |      |        |                 |       | Response                        |
    42     +------+------+------+--------+-----------------+-------+---------------------------------+
    43     | Note: An asterisk (*) in the field size indicates that the size varies.                 |
    44     +-----------------------------------------------------------------------------------------+






                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           OPCODE, FLAG AND OFFSET DEFINITIONS                                               Page A-11
                                                                                       8 November 1987


     1                             Table A-9:  Error Log Message Format Codes

     2     +--------------------+--------------------------+-----------------------------------------+
     3     |    Format Code     |   Preferred Mnemonics    |                                         |
     4     +------+------+------+--------+-----------------+   Format Description                    |
     5     | Dec. | Oct. | Hex. | 16 bit |      32 bit     |                                         |
     6     +------+------+------+--------+-----------------+-----------------------------------------+
     7     |   0  |   0  |   0  | FM.CNT | MSLG$K_CNT_ERR  | Controller Errors                       |
     8     |   1  |   1  |   1  | FM.BAD | MSLG$K_BUS_ADDR | Memory Errors with (host/controller)    |
     9     |      |      |      |        |                 | Memory Address                          |
    10     |   5  |   5  |   5  | FM.TPE | MSLG$K_TAPE_ERR | Tape Errors                             |
    11     |   6  |   6  |   6  | FM.STI | MSLG$K_STI_ERR  | STI Communication or Command Failure    |
    12     |   7  |   7  |   7  | FM.DEL | MSLG$K_STI_DEL  | STI Drive Error Log                     |
    13     |   8  |  10  |   8  | FM.FEL | MSLG$K_STI_FEL  | STI Formatter Error Log                 |
    14     +------+------+------+--------+-----------------+-----------------------------------------+


    15                                Table A-10:  Error Log Message Flags

    16     +------+--------------+--------------------------+----------------------------------------+
    17     | Bit  |   Bit Mask   |   Preferred Mnemonics    |                                        |
    18     |Number+-------+------+--------+-----------------+   Format Description                   |
    19     |      | Octal | Hex. | 16 bit |32 bit (See note)|                                        |
    20     +------+-------+------+--------+-----------------+----------------------------------------+
    21     |   7  |   200 |   80 | LF.SUC | MSLG$x_LF_SUCC  | Operation Successful                   |
    22     |   6  |   100 |   40 | LF.CON | MSLG$x_LF_CONT  | Operation Continuing                   |
    23     |   0  |     1 |    1 | LF.SNR | MSLG$x_LF_SQNRS | Sequence Number Reset                  |
    24     +------+-------+------+--------+-----------------+----------------------------------------+
    25     | Notes: 1. The  "x" in  the 32 bit mnemonic for a bit flag will be "V" if the symbol  is |
    26     |           defined as a bit number (offset) or an "M" if defined as a mask.              |
    27     +-----------------------------------------------------------------------------------------+


    28                   Table A-11:  Access Nonvolatile Memory Command Operation Codes

    29     +--------------------+--------------------------+-----------------------------------------+
    30     |    Opcode Value    |   Preferred Mnemonics    |                                         |
    31     +------+------+------+--------+-----------------+   Operation                             |
    32     | Dec. | Oct. | Hex. | 16 bit |     32 bit      |                                         |
    33     +------+------+------+--------+-----------------+-----------------------------------------+
    34     |   0  |   0  |   0  | ANM.RD | MSCP$K_ANM_READ | Read                                    |
    35     |   1  |   1  |   1  | ANM.EX | MSCP$K_ANM_EXCG | Exchange                                |
    36     |   2  |   2  |   2  | ANM.TS | MSCP$K_ANM_TSST | Test and Set                            |
    37     +------+------+------+--------+-----------------+-----------------------------------------+








                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           STATUS AND EVENT CODE DEFINITIONS                                                  Page B-1
                                                                                       8 November 1987
                           

     1                                             APPENDIX B

     2                                  STATUS AND EVENT CODE DEFINITIONS



     3                                                NOTES


     4             1.  The combination of a status or event code  with  a  subcode  should  be
     5                 expressed (assuming 16 bit symbols) as:

     6                                        (subcode * ST.SUB) + code

     7             2.  The subcode values shown in Table B-2 are only returned as status codes
     8                 in  end  messages.  They are never returned as event codes in error log
     9                 messages.  In addition, the references to other tables within Table B-2
    10                 indicates that those tables contain subcodes which are only returned as
    11                 status codes in end messages.

    12             3.  The subcode values shown in Tables B-3 through B-7 may be returned  (as
    13                 indicated in the "EV" and "ST" columns) as status codes, event codes or
    14                 both.  In those tables, an asterisk in the "EV" column  indicates  that
    15                 the  code and subcode may be returned as an event code.  An asterisk in
    16                 the "ST" column indicates that the code and subcode may be returned  as
    17                 a status code.


























                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           STATUS AND EVENT CODE DEFINITIONS                                                  Page B-2
                                                                                       8 November 1987


     1                                 Table B-1:  Status and Event Codes

     2     +--------------------+--------------------------+-----------------------------------------+
     3     |       Value        |   Preferred Mnemonics    |                                         |
     4     +------+------+------+--------+-----------------+     Status or Event Code                |
     5     | Dec. | Oct. | Hex. | 16 bit |     32 bit      |                                         |
     6     +------+------+------+--------+-----------------+-----------------------------------------+
     7     |   31 |   37 |   1F | ST.MSK | MSCP$M_ST_MASK  | Status / event code mask                |
     8     |   32 |   40 |   20 | ST.SUB | MSCP$M_ST_SUBCD | Subcode multiplier                      |
     9     |      |      |      |        |                 |                                         |
    10     |    0 |    0 |    0 | ST.SUC | MSCP$K_ST_SUCC  | Success                                 |
    11     |    1 |    1 |    1 | ST.CMD | MSCP$K_ST_ICMD  | Invalid command                         |
    12     |    2 |    2 |    2 | ST.ABO | MSCP$K_ST_ABRTD | Command Aborted                         |
    13     |    3 |    3 |    3 | ST.OFL | MSCP$K_ST_OFFLN | Unit-Offline                            |
    14     |    4 |    4 |    4 | ST.AVL | MSCP$K_ST_AVLBL | Unit-Available                          |
    15     |    5 |    5 |    5 | ST.MFE | MSCP$K_ST_MFMTE | Media Format Error                      |
    16     |    6 |    6 |    6 | ST.WPR | MSCP$K_ST_WRTPR | Write Protected                         |
    17     |    7 |    7 |    7 | ST.CMP | MSCP$K_ST_COMP  | Compare Error                           |
    18     |    8 |   10 |    8 | ST.DAT | MSCP$K_ST_DATA  | Data Error                              |
    19     |    9 |   11 |    9 | ST.HST | MSCP$K_ST_HSTBF | Host Buffer Access Error                |
    20     |   10 |   12 |    A | ST.CNT | MSCP$K_ST_CNTLR | Controller Error                        |
    21     |   11 |   13 |    B | ST.DRV | MSCP$K_ST_DRIVE | Drive Error                             |
    22     |   12 |   14 |    C | ST.FMT | MSCP$K_ST_FMTER | Formatter Error                         |
    23     |   13 |   15 |    D | ST.BOT | MSCP$K_ST_BOT   | BOT Encountered                         |
    24     |   14 |   16 |    E | ST.TM  | MSCP$K_ST_TAPEM | Tape Mark Encountered                   |
    25     |   15 |   17 |    F |   -    |        -        | unassigned                              |
    26     |   16 |   20 |   10 | ST.RDT | MSCP$K_ST_RDTRN | Record Data Truncated                   |
    27     |   17 |   21 |   11 | ST.POL | MSCP$K_ST_PLOST | Position Lost                           |
    28     |   18 |   22 |   12 | ST.SEX | MSCP$K_ST_SEX   | Serious Exception                       |
    29     |   19 |   23 |   13 | ST.LED | MSCP$K_ST_LED   | LEOT Detection                          |
    30     | 20-30| 24-36| 14-1E|    -   |        -        | unassigned                              |
    31     |   31 |   37 |   1F | ST.DIA | MSCP$K_ST_DIAG  | Message from an internal diagnostic     |
    32     +------+------+------+--------+-----------------+-----------------------------------------+







           











                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           STATUS AND EVENT CODE DEFINITIONS                                                  Page B-3
                                                                                       8 November 1987


     1                               Table B-2:  Status Only Subcode Values

     2      +------+---------------------+---------------------------------------------------------+
     3      | Sub- |   Code + Subcode    |                                                         |
     4      | code +------+-------+------+                 Status Subcode                          |
     5      |      | Dec. |  Oct. | Hex. |                                                         |
     6      +------+------+-------+------+---------------------------------------------------------+
     7      | "Success" Subcode values:  |                                                         |
     8      |    0 |    0 |     0 |    0 | Normal                                                  |
     9      |    1 |   32 |    40 |   20 | Unload Ignored                                          |
    10      |    2 |   64 |   100 |   40 | Still Connected                                         |
    11      |    4 |  128 |   200 |   80 | Duplicate Unit Number                                   |
    12      |    8 |  256 |   400 |  100 | Already Online                                          |
    13      |   16 |  512 |  1000 |  200 | Still Online                                            |
    14      |   32 | 1024 |  2000 |  400 | EOT Encountered                                         |
    15      |  128 | 4096 | 10000 | 1000 | Read Only Volume Format                                 |
    16      +------+------+-------+------+---------------------------------------------------------+
    17      | "Invalid Command" Subcode values:                                                    |
    18      |    0 |    1 |     1 |    1 | Invalid Message Length                                  |
    19      | many |      |       |      | Other  "Invalid  Command"  subcodes  values  should  be |
    20      |      |      |       |      | referenced  as  follows  (note  that  this  is combined |
    21      |      |      |       |      | with the status code):                                  |
    22      |      |      |       |      |                                                         |
    23      |      |      |       |      |      offset*256.+code                                   |
    24      |      |      |       |      |                                                         |
    25      |      |      |       |      | where "offset" is the command message offset symbol for |
    26      |      |      |       |      | the  field  in  error  and "code" is the symbol for the |
    27      |      |      |       |      | "Invalid Command" status code.                          |
    28      +------+------+-------+------+---------------------------------------------------------+
    29      | "Command Aborted" Subcode values:                                                    |
    30      |    0 |    2 |     2 |    2 | Subcodes are not used.                                  |
    31      +------+------+-------+------+---------------------------------------------------------+
    32      | "Unit-Offline" Subcode values:                                                       |
    33      |    0 |    3 |     3 |    3 | Unit unknown or online to another controller.           |
    34      |    1 |   35 |    43 |   23 | No media mounted or drive disabled via switch setting   |
    35      |    2 |   67 |   103 |   43 | Unit is inoperative                                     |
    36      |    4 |  131 |   203 |   83 | Duplicate unit number                                   |
    37      |    8 |  259 |   403 |  103 | Unit disabled by field service or diagnostic.           |
    38      |   16 |  515 |  1003 |  203 | Exclusive Use                                           |
    39      +------+------+-------+------+---------------------------------------------------------+
    40      | "Unit-Available" Subcode values:                                                     |
    41      |    0 |    4 |     4 |    4 | Available                                               |
    42      |   32 | 1028 |  2004 |  404 | Already In use                                          |
    43      +------+------+-------+------+---------------------------------------------------------+
    44      | "Media Format Error" Subcode values:                                                 |
    45      |    5 |  165 |   245 |   A5 | Block mode device not formatted for tape operations.    |
    46      +------+------+-------+------+---------------------------------------------------------+





                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           STATUS AND EVENT CODE DEFINITIONS                                                  Page B-4
                                                                                       8 November 1987



     1                            Table B-2: Status Only Subcode Values (cont.)

     2      +------+---------------------+---------------------------------------------------------+
     3      | Sub- |   Code + Subcode    |                                                         |
     4      | code +------+-------+------+                 Status Subcode                          |
     5      |      | Dec. |  Oct. | Hex. |                                                         |
     6      +------+------+-------+------+---------------------------------------------------------+
     7      | "Write Protected" Subcode values:                                                    |
     8      |    8 |  262 |   406 |  106 | Unit is Data Safety Write Protected                     |
     9      |  128 | 4102 | 10006 | 1006 | Unit is Software Write Protected                        |
    10      |  256 | 8198 | 20006 | 2006 | Unit is Hardware Write Protected                        |
    11      +------+------+-------+------+---------------------------------------------------------+
    12      | "Compare Error" Subcode values - see Table B-3                                       |
    13      +------+------+-------+------+---------------------------------------------------------+
    14      | "Data Error" Subcode values - see Table B-4                                          |
    15      +------+------+-------+------+---------------------------------------------------------+
    16      | "Host Buffer Access Error" Subcode values - see Table B-5                            |
    17      +------+------+-------+------+---------------------------------------------------------+
    18      | "Controller Error" Subcode values - see Table B-6                                    |
    19      +------+------+-------+------+---------------------------------------------------------+
    20      | "Drive Error" Subcode values - see Table B-7                                         |
    21      +------+------+-------+------+---------------------------------------------------------+
    22      | "Formatter Error" Subcode values - see Table B-8                                     |
    23      +------+------+-------+------+---------------------------------------------------------+
    24      | "BOT Encountered" Subcode values:                                                    |
    25      |    0 |   13 |    15 |    D | Subcodes are not used                                   |
    26      +------+------+-------+------+---------------------------------------------------------+
    27      | "Tape Mark Encountered" Subcode values:                                              |
    28      |    0 |   14 |    16 |    E | Subcodes are not used                                   |
    29      +------+------+-------+------+---------------------------------------------------------+
    30      | "Record Data Truncated" Subcode values:                                              |
    31      |    0 |   16 |    20 |   10 | Subcodes are not used.                                  |
    32      +------+------+-------+------+---------------------------------------------------------+
    33      | "Position Lost" Subcode values:                                                      |
    34      |    0 |   17 |    21 |   11 | Subcodes are not used.                                  |
    35      +------+------+-------+------+---------------------------------------------------------+
    36      | "Serious Exception" Subcode values:                                                  |
    37      |    0 |   18 |    22 |   12 | Subcodes are not used.                                  |
    38      +------+------+-------+------+---------------------------------------------------------+
    39      | "LEOT Encountered" Subcode values:                                                   |
    40      |    0 |   19 |    23 |   13 | Subcodes are not used.                                  |
    41      +------+------+-------+------+---------------------------------------------------------+
    42      | "Message from an internal diagnostic" Subcode values - see Table B-9                 |
    43      +------+------+-------+------+---------------------------------------------------------+







                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           STATUS AND EVENT CODE DEFINITIONS                                                  Page B-5
                                                                                       8 November 1987


     1                     Table B-3:  "Compare Error" Status or Event Subcode Values

     2      +------+---------------------+-+-+-----------------------------------------------------+
     3      | Sub- |   Code + Subcode    |E|S|                                                     |
     4      | code +------+-------+------+V|T|     Status or Event Subcode                         |
     5      |      | Dec. |  Oct. | Hex. | | |                                                     |
     6      +------+------+-------+------+-+-+-----------------------------------------------------+
     7      |    0 |    7 |    7  |    7 |*|*| Subcodes  are  not  used.  Note: the  compare error |
     8      |      |      |       |      | | | code  is only used  as an event code when the error |
     9      |      |      |       |      | | | occurs   during   a read-compare  or  write-compare |
    10      |      |      |       |      | | | operation.                                          |
    11      +------+------+-------+------+-+-+-----------------------------------------------------+


    12                      Table B-4:  "Data Error" Status or Event Subcode Values

    13      +------+---------------------+-+-+-----------------------------------------------------+
    14      | Sub- |   Code + Subcode    |E|S|                                                     |
    15      | code +------+-------+------+V|T|     Status or Event Subcode                         |
    16      |      | Dec. |  Oct. | Hex. | | |                                                     |
    17      +------+------+-------+------+-+-+-----------------------------------------------------+
    18      |    0 |    8 |    10 |    8 |*|*| Long Gap Encountered                                |
    19      |    7 |  232 |   350 |   E8 |*|*| Unrecoverable Read Error                            |
    20      | many |   -  |   -   |   -  |*|*| controller and/or driver/formatter type dependent   |
    21      +------+------+-------+------+-+-+-----------------------------------------------------+


    22               Table B-5:  "Host Buffer Access Error" Status or Event Subcode Values

    23      +------+---------------------+-+-+-----------------------------------------------------+
    24      | Sub- |   Code + Subcode    |E|S|                                                     |
    25      | code +------+-------+------+V|T|     Status or Event Subcode                         |
    26      |      | Dec. |  Oct. | Hex. | | |                                                     |
    27      +------+------+-------+------+-+-+-----------------------------------------------------+
    28      |    0 |    9 |    11 |    9 | |*| Host Buffer Access error, cause not available.      |
    29      |      |      |       |      | | |   The controller was unable to access a host buffer |
    30      |      |      |       |      | | |   to perform a transfer, but has no visibility into |
    31      |      |      |       |      | | |   the cause of the error.                           |
    32      +------+------+-------+------+-+-+-----------------------------------------------------+
    33      |    3 |  105 |   151 |   69 |*|*| Nonexistent memory error                            |
    34      +------+------+-------+------+-+-+-----------------------------------------------------+
    35      |    4 |  137 |   211 |   89 |*|*| Host memory parity error                            |
    36      +------+------+-------+------+-+-+-----------------------------------------------------+
    37      |    5 |  169 |   251 |   A9 |*|*| Invalid page  table entry                           |
    38      |      |      |       |      | | |   (See    UNIBUS/QBUS    Storage    Systems    Port |
    39      |      |      |       |      | | |   Specification for  additional detail.)            |
    40      +------+------+-------+------+-+-+-----------------------------------------------------+





                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           STATUS AND EVENT CODE DEFINITIONS                                                  Page B-6
                                                                                       8 November 1987



     1            Table B-5: "Host Buffer Access Error" Status or Event Subcode Values (cont.)

     2      +------+---------------------+-+-+-----------------------------------------------------+
     3      | Sub- |   Code + Subcode    |E|S|                                                     |
     4      | code +------+-------+------+V|T|     Status or Event Subcode                         |
     5      |      | Dec. |  Oct. | Hex. | | |                                                     |
     6      +------+------+-------+------+-+-+-----------------------------------------------------+
     7      |    6 |  201 |   311 |   C9 |*|*| Invalid buffer name                                 |
     8      |      |      |       |      | | |   The key in the buffer name does not match the key |
     9      |      |      |       |      | | |   in the buffer descriptor, the V bit in the buffer |
    10      |      |      |       |      | | |   descriptor is clear, or the index into the Buffer |
    11      |      |      |       |      | | |   Descriptor  Table  is  too large. (See the BI Vax |
    12      |      |      |       |      | | |   Port Specification for additional detail.)        |
    13      +------+------+-------+------+-+-+-----------------------------------------------------+
    14      |    7 |  233 |   351 |   E9 |*|*| Buffer length violation                             |
    15      |      |      |       |      | | |   The  number  of  bytes  requested  in  the  TMSCP |
    16      |      |      |       |      | | |   command   exceeds  the buffer length as specified |
    17      |      |      |       |      | | |   in   the  buffer  descriptor.  (See  the  BI  Vax |
    18      |      |      |       |      | | |   Port Specification for additional detail.)        |
    19      +------+------+-------+------+-+-+-----------------------------------------------------+
    20      |    8 |  265 |   411 |  109 |*|*| Access control violation                            |
    21      |      |      |       |      | | |   The   access   mode  specified  in   the   buffer |
    22      |      |      |       |      | | |   descriptor is protected against by the PROT field |
    23      |      |      |       |      | | |   in  the PTE.  (See the BI Vax Port  Specification |
    24      |      |      |       |      | | |   for additional detail.)                           |
    25      +------+------+-------+------+-+-+-----------------------------------------------------+


    26                   Table B-6:  "Controller Error" Status or Event Subcode Values

    27      +------+---------------------+-+-+-----------------------------------------------------+
    28      | Sub- |   Code + Subcode    |E|S|                                                     |
    29      | code +------+-------+------+V|T|     Status or Event Subcode                         |
    30      |      | Dec. |  Oct. | Hex. | | |                                                     |
    31      +------+------+-------+------+-+-+-----------------------------------------------------+
    32      |    0 |   10 |    12 |    A |-|-| Reserved  for host  detected command  timeout error |
    33      |      |      |       |      | | | logging.  This  subcode  is  never  reported  by  a |
    34      |      |      |       |      | | | controller.                                         |
    35      +------+------+-------+------+-+-+-----------------------------------------------------+
    36      | many |   -  |   -   |   -  |*|*| controller and/or drive/formatter type dependent    |
    37      +------+------+-------+------+-+-+-----------------------------------------------------+










                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           STATUS AND EVENT CODE DEFINITIONS                                                  Page B-7
                                                                                       8 November 1987


     1                      Table B-7:  "Drive Error" Status or Event Subcode Values

     2      +------+---------------------+-+-+-----------------------------------------------------+
     3      | Sub- |   Code + Subcode    |E|S|                                                     |
     4      | code +------+-------+------+V|T|     Status or Event Subcode                         |
     5      |      | Dec. |  Oct. | Hex. | | |                                                     |
     6      +------+------+-------+------+-+-+-----------------------------------------------------+
     7      | many |   -  |   -   |   -  |*|*| controller and/or drive/formatter type dependent    |
     8      +------+------+-------+------+-+-+-----------------------------------------------------+


     9                    Table B-8:  "Formatter Error" Status or Event Subcode Values

    10      +------+---------------------+-+-+-----------------------------------------------------+
    11      | Sub- |   Code + Subcode    |E|S|                                                     |
    12      | code +------+-------+------+V|T|     Status or Event Subcode                         |
    13      |      | Dec. |  Oct. | Hex. | | |                                                     |
    14      +------+------+-------+------+-+-+-----------------------------------------------------+
    15      | many |   -  |   -   |   -  |*|*| controller and/or drive/formatter type dependent    |
    16      +------+------+-------+------+-+-+-----------------------------------------------------+


    17            Table B-9:  "Message From An Internal Diagnostic" Event Only Subcode Values

    18      +------+---------------------+---------------------------------------------------------+
    19      | Sub- |   Code + Subcode    |                                                         |
    20      | code +------+-------+------+         Event Subcode                                   |
    21      |      | Dec. |  Oct. | Hex. |                                                         |
    22      +------+------+-------+------+---------------------------------------------------------+
    23      | many |   -  |   -   |   -  | controller and/or drive/formatter type dependent        |
    24      +------+------+-------+------+---------------------------------------------------------+





















                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           MISCELLANEOUS TABLES                                                               Page C-1
                                                                                       8 November 1987


     1                                             APPENDIX C

     2                                        MISCELLANEOUS TABLES


     3                                Table C-1:  Tape Format Flag Values

     4     +---------------------+--------------------------+-+--------------------------------------+
     5     |        Value        |  Preferred Code Mnemonic |N|                                      |
     6     |-------+------+------+--------+-----------------+I|    Tape Format Flag                  |
     7     |  Dec. | Oct. | Hex. | 16 bit |      32 bit     |S|                                      |
     8     +-------+------+------+--------+-----------------+-+--------------------------------------+
     9     |  255  |  377 |   FF | TF.MSK | MSCP$M_TF_MASK  | | Bitflag mask                         |
    10     |  256  |  400 |  100 | TF.COD | MSCP$K_TF_CODE  | | Format code multiplier               |
    11     +-------+------+------+--------+-----------------+-+--------------------------------------+
    12     |    0  |    0 |    0 | TC.OLD | MSCP$K_TC_OLD   | | Old value (See notes 1, 4)           |
    13     |  256  |  400 |  100 | TC.9TR | MSCP$K_TC_9TRACK| | New "9 track" devices                |
    14     |  512  | 1000 |  200 | TC.CTP | MSCP$K_TC_CTP   |*| "TK50" compatible cart tapes (note 3)|
    15     |  768  | 1400 |  300 | TC.348 | MSCP$K_TC_3480  | | "IBM 3480" compatible cartridge tapes|
    16     | 1024  | 2000 |  400 | TC.W1  | MSCP$K_TC_W1    |*| "RV80" compatible write once cart.   |
    17     +-------+------+------+--------+-----------------+----------------------------------------+
    18     | Note:  1. The  TC.OLD value is for backwards compatibility with existing products.  New |
    19     |           devices  are  prohibited from using the TC.OLD value.  Products having  media |
    20     |           different  from those associated with the above TC.xxx values must  ECO  this |
    21     |           specification to include a new TC.xxx value for their media.  Products having |
    22     |           media  identical to one of those associated with the above TC.xxx value  must |
    23     |           use that TC.xxx value.                                                        |
    24     |                                                                                         |
    25     |        2. Formats  with  an asterisk in the "NIS" column are  considered  "non-industry |
    26     |           standard".  Devices  which  utilize these formats thus need not  support  the |
    27     |           "Reverse"  command modifier on ACCESS, COMPARE HOST DATA, and READ  commands. |
    28     |           Whether  or  not  a  device  supporting one of  these  formats  supports  the |
    29     |           "Reverse"  command modifier on the above commands must be documented in  that |
    30     |           device's  functional  specification  (See section 3.3.1.1).                   |
    31     |                                                                                         |
    32     |        3. Devices  that support this format may not follow the normal ABORT process for |
    33     |           REPOSITION commands with the "Reverse" modifier set.  See section 3.2.1.2.    |
    34     |                                                                                         |
    35     |        4. Some  devices  that  report  a  tape code of  TC.OLD  are  considered  to  be |
    36     |           equivalent to devices that report a tape code of TC.CTP with respect to notes |
    37     |           2 and 3 (see Table C-2).                                                      |
    38     +-----------------------------------------------------------------------------------------+










                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           MISCELLANEOUS TABLES                                                               Page C-2
           Table C-1: Tape Format Flag Values                                          8 November 1987


     1                               Table C-2:  Tape Format Bitflag Values

     2     +------+---------------------+--------------------------+---------------------------------+
     3     |      |    Code + Bitflag   |Preferred Bitflag Mnemonic|                                 |
     4     | Bit- +-------+------+------+--------+-----------------+    Tape Format Bitflag          |
     5     | flag |  Dec. | Oct. | Hex. | 16 bit |32 bit (see note)|                                 |
     6     +------+-------+------+------+--------+-----------------+---------------------------------+
     7     | "OLD" bitflag values:      |        |                 |                                 |
     8     |   0  |     1 |    1 |    1 | TF.800 | MSCP$x_TF_800   | NRZI 800 bpi                    |
     9     |   1  |     2 |    2 |    2 | TF.PE  | MSCP$x_TF_PE    | Phase Encoded 1600 bpi          |
    10     |   2  |     4 |    4 |    4 | TF.GCR | MSCP$x_TF_GCR   | Group Code Recording 6250 bpi   |
    11     |   3  |     8 |   10 |    8 | TF.BLK | MSCP$x_TF_BLOCK | Cartridge Block Mode (note 3)   |
    12     +------+-------+------+------+--------+-----------------+---------------------------------+
    13     | "9TR" bitflag values:      |        |                 |                                 |
    14     |   0  |   257 |  401 |  101 | TF.800 | MSCP$x_TF_800   | NRZI 800 bpi                    |
    15     |   1  |   258 |  402 |  102 | TF.PE  | MSCP$x_TF_PE    | Phase Encoded 1600 bpi          |
    16     |   2  |   260 |  404 |  104 | TF.GCR | MSCP$x_TF_GCR   | Group Code Recording 6250 bpi   |
    17     +------+-------+------+------+--------+-----------------+---------------------------------+
    18     | "CTP" bitflag values:      |        |                 |                                 |
    19     |   0  |   513 | 1001 |  201 | TF.NOR | MSCP$x_TF_NORML | Normal (low) density            |
    20     |   1  |   514 | 1002 |  202 | TF.BHD | MSCP$x_TF_BLKHD | High density                    |
    21     +------+-------+------+------+--------+-----------------+---------------------------------+
    22     | "IBM 3480" bitflag values: |        |                 |                                 |
    23     |   0  |   769 | 1401 |  301 | TF.NOR | MSCP$x_TF_NORML | Normal density                  |
    24     +------+-------+------+------+--------+-----------------+---------------------------------+
    25     | "W1" bitflag values:       |        |                 |                                 |
    26     |   0  |  1025 | 2001 |  401 | TF.NOR | MSCP$x_TF_NORML | Normal density                  |
    27     +------+-------+------+------+--------+-----------------+---------------------------------+
    28     | Notes: 1. The  "x" in  the 32 bit mnemonic for a bit flag will be "V" if the symbol  is |
    29     |           defined as a bit number (offset) or an "M" if defined as a mask.              |
    30     |                                                                                         |
    31     |        2. The  "Preferred Bitflag Mnemonic" is the mnemonic for the bitflag  only.  The |
    32     |           "Code + Bitflag" values are the sum of the tape format flag from the previous |
    33     |           table  and  the bitflag from this table.  Thus, bitflags that have  the  same |
    34     |           meaning  and  bit  value for different tape formats have  the  same  mnemonic |
    35     |           (i.e., TF.800 for the TC.OLD and TC.9TR tape formats).                        |
    36     |                                                                                         |
    37     |        3. A  code + bitflag value of TC.OLD + TF.BLK is equivalent to a  code + bitflag |
    38     |           value of TC.CTP + TF.NOR with respect to functional behavior of devices.      |
    39     +-----------------------------------------------------------------------------------------+












                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           MISCELLANEOUS TABLES                                                               Page C-3
           Table C-2: Tape Format Bitflag Values                                       8 November 1987


     1                        Table C-3:  Controller Specific Maximum Record Size

     2     +----------------------------------------------------------+------------------------------+
     3     | Controller Type                                          | Maximum Record Size in Bytes |
     4     |                                                          |                              |
     5     +----------------------------------------------------------+------------------------------+
     6     | U/Q Bus Direct Access Controllers                        | 64K (preferred)              |
     7     | HSC50                                                    | 64K                          |
     8     | TU81                                                     | 64K-1                        |
     9     | TK50                                                     | 64K-1                        |
    10     +----------------------------------------------------------+------------------------------+


    11                            Table C-4:  Format Specific Long Gap Values

    12     +-----------------------------------------+-----------------------------------------------+
    13     | Encoding Format Descriptor              | Log Gap Value                                 |
    14     |                                         |                                               |
    15     +-----------------------------------------+-----------------------------------------------+
    16     | Phase Encoding (PE) 1600 bpi            | 25 linear feet                                |
    17     | Group Code Recording (GCR) 6250 bpi     | 15 linear feet                                |
    18     | Cartridge Block Format                  | device dependent, see device spec for details |
    19     +-----------------------------------------+-----------------------------------------------+





























                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           REPOSITION COMMAND VARIATIONS                                                      Page D-1
                                                                                       8 November 1987


     1                                             APPENDIX D

     2                                    REPOSITION COMMAND VARIATIONS



     3                                                NOTES


     4             1.  Square brackets ([]) indicate optional setting.

     5             2.  An asterisk (*) indicates that the  modifier  setting  or  count  field
     6                 value  is  ignored  by  the controller due to an interdependence on the
     7                 setting of another modifier or the value of the count fields.

     8             3.  See Section 5.10.3 specific information related to controller execution
     9                 of combined basic functions.

    10             4.  Certain  combinations  of   the   repositioning   functions,   although
    11                 permissible,  are  illogical  since the result is always termination of
    12                 the command with a status of BOT Encountered.



    13                             Table D-1:  REPOSITION Command Variations

    14     +------------------------------+----------------------------------------+--------+-------+
    15     |                              |                                        |        |       |
    16     |          REPOSITION          |                Modifiers               | Record | Tape  |
    17     |          Command             +----------+-------+------+------+-------+   or   | Mark  |
    18     |          Variation           |Immediate |Detect |Object|Rewind|Reverse| Object | Count |
    19     |                              |Completion|LEOT   |Count |      |       | Count  |       |
    20     +------------------------------+----------+-------+------+------+-------+--------+-------+
    21     |   a. sequential no-operation |     *    |   *   |  0   |  0   |   *   |    0   |   0   |
    22     |                              |     *    |   *   |  1   |  0   |   *   |    0   |   *   |
    23     +------------------------------+----------+-------+------+------+-------+--------+-------+
    24     |   a. rewind to BOT           |   0 [1]  |   *   |  0   |  1   |   *   |    0   |   0   |
    25     |                              |   0 [1]  |   *   |  1   |  1   |   *   |    0   |   *   |
    26     +------------------------------+----------+-------+------+------+-------+--------+-------+
    27     |   a. rewind to BOT           |     *    |   *   |  1   |  1   |   0   |   >0   |   *   |
    28     |   b. skip   "object   count" |          |       |      |      |       |        |       |
    29     |      tape    objects   (both |          |       |      |      |       |        |       |
    30     |      records and tape marks) |          |       |      |      |       |        |       |
    31     |      in      the     forward |          |       |      |      |       |        |       |
    32     |      direction               |          |       |      |      |       |        |       |
    33     +------------------------------+----------+-------+------+------+-------+--------+-------+






                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           REPOSITION COMMAND VARIATIONS                                                      Page D-2
                                                                                       8 November 1987



     1                          Table D-1: REPOSITION Command Variations (cont.)

     2     +------------------------------+----------------------------------------+--------+-------+
     3     |                              |                                        |        |       |
     4     |          REPOSITION          |                Modifiers               | Record | Tape  |
     5     |          Command             +----------+-------+------+------+-------+   or   | Mark  |
     6     |          Variation           |Immediate |Detect |Object|Rewind|Reverse| Object | Count |
     7     |                              |Completion|LEOT   |Count |      |       | Count  |       |
     8     +------------------------------+----------+-------+------+------+-------+--------+-------+
     9     |   a. rewind to BOT           |     *    |   *   |  1   |  1   |   1   |   >0   |   *   |
    10     |   b. attempt to skip "object |          |       |      |      |       |        |       |
    11     |      count"   tape   objects |          |       |      |      |       |        |       |
    12     |      (both records and  tape |          |       |      |      |       |        |       |
    13     |      marks) in  the  reverse |          |       |      |      |       |        |       |
    14     |      direction               |          |       |      |      |       |        |       |
    15     |   (See Note 4 above)         |          |       |      |      |       |        |       |
    16     +------------------------------+----------+-------+------+------+-------+--------+-------+
    17     |   a. rewind to BOT           |     *    | 0 [1] |  0   |  1   |   0   |    0   |  >0   |
    18     |   b. skip "tape mark  count" |          |       |      |      |       |        |       |
    19     |      tape   marks   in   the |          |       |      |      |       |        |       |
    20     |      forward direction       |          |       |      |      |       |        |       |
    21     +------------------------------+----------+-------+------+------+-------+--------+-------+
    22     |   a. rewind to BOT           |     *    |   *   |  0   |  1   |   1   |    0   |  >0   |
    23     |   b. attempt to  skip  "tape |          |       |      |      |       |        |       |
    24     |      mark count" tape  marks |          |       |      |      |       |        |       |
    25     |      in      the     reverse |          |       |      |      |       |        |       |
    26     |      direction               |          |       |      |      |       |        |       |
    27     |   (See Note 4 above)         |          |       |      |      |       |        |       |
    28     +------------------------------+----------+-------+------+------+-------+--------+-------+
    29     |   a. rewind to BOT           |     *    | 0 [1] |  0   |  1   |   0   |   >0   |   0   |
    30     |   b. skip   "record   count" |          |       |      |      |       |        |       |
    31     |      records in the  forward |          |       |      |      |       |        |       |
    32     |      direction               |          |       |      |      |       |        |       |
    33     +------------------------------+----------+-------+------+------+-------+--------+-------+
    34     |   a. rewind to BOT           |     *    |   *   |  0   |  1   |   1   |   >0   |   0   |
    35     |   b. attempt to skip "record |          |       |      |      |       |        |       |
    36     |      count" records  in  the |          |       |      |      |       |        |       |
    37     |      reverse direction       |          |       |      |      |       |        |       |
    38     |   (See Note 4 above)         |          |       |      |      |       |        |       |
    39     +------------------------------+----------+-------+------+------+-------+--------+-------+
    40     |   a. rewind to BOT           |     *    | 0 [1] |  0   |  1   |   0   |   >0   |  >0   |
    41     |   b. skip "tape mark  count" |          |       |      |      |       |        |       |
    42     |      tape   marks   in   the |          |       |      |      |       |        |       |
    43     |      forward direction       |          |       |      |      |       |        |       |
    44     |   c. skip   "record   count" |          |       |      |      |       |        |       |
    45     |      records  in  that  same |          |       |      |      |       |        |       |
    46     |      direction               |          |       |      |      |       |        |       |
    47     +------------------------------+----------+-------+------+------+-------+--------+-------+



                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           REPOSITION COMMAND VARIATIONS                                                      Page D-3
                                                                                       8 November 1987



     1                          Table D-1: REPOSITION Command Variations (cont.)

     2     +------------------------------+----------------------------------------+--------+-------+
     3     |                              |                                        |        |       |
     4     |          REPOSITION          |                Modifiers               | Record | Tape  |
     5     |          Command             +----------+-------+------+------+-------+   or   | Mark  |
     6     |          Variation           |Immediate |Detect |Object|Rewind|Reverse| Object | Count |
     7     |                              |Completion|LEOT   |Count |      |       | Count  |       |
     8     +------------------------------+----------+-------+------+------+-------+--------+-------+
     9     |   a. rewind to BOT           |     *    |   *   |  0   |  1   |   1   |   >0   |  >0   |
    10     |   b. attempt to  skip  "tape |          |       |      |      |       |        |       |
    11     |      mark count" tape  marks |          |       |      |      |       |        |       |
    12     |      in      the     reverse |          |       |      |      |       |        |       |
    13     |      direction               |          |       |      |      |       |        |       |
    14     |   c. attempt to skip "record |          |       |      |      |       |        |       |
    15     |      count" records in  that |          |       |      |      |       |        |       |
    16     |      same direction          |          |       |      |      |       |        |       |
    17     |   (See Note 4 above)         |          |       |      |      |       |        |       |
    18     +------------------------------+----------+-------+------+------+-------+--------+-------+
    19     |   a. skip   "object   count" |     *    |   *   |  1   |  0   |   0   |   >0   |   *   |
    20     |      tape  objects  in   the |          |       |      |      |       |        |       |
    21     |      forward direction       |          |       |      |      |       |        |       |
    22     +------------------------------+----------+-------+------+------+-------+--------+-------+
    23     |   a. skip   "object   count" |     *    |   *   |  1   |  0   |   1   |   >0   |   *   |
    24     |      tape  objects  in   the |          |       |      |      |       |        |       |
    25     |      reverse direction       |          |       |      |      |       |        |       |
    26     +------------------------------+----------+-------+------+------+-------+--------+-------+
    27     |   a. skip "tape mark  count" |     *    | 0 [1] |  0   |  0   |   0   |    0   |  >0   |
    28     |      tape   marks   in   the |          |       |      |      |       |        |       |
    29     |      forward direction       |          |       |      |      |       |        |       |
    30     +------------------------------+----------+-------+------+------+-------+--------+-------+
    31     |   a. skip "tape mark  count" |     *    |   *   |  0   |  0   |   1   |    0   |  >0   |
    32     |      tape   marks   in   the |          |       |      |      |       |        |       |
    33     |      reverse direction       |          |       |      |      |       |        |       |
    34     +------------------------------+----------+-------+------+------+-------+--------+-------+
    35     |   a. skip   "record   count" |     *    | 0 [1] |  0   |  0   |   0   |   >0   |   0   |
    36     |      records in the  forward |          |       |      |      |       |        |       |
    37     |      direction               |          |       |      |      |       |        |       |
    38     +------------------------------+----------+-------+------+------+-------+--------+-------+
    39     |   a. skip   "record   count" |     *    |   *   |  0   |  0   |   1   |   >0   |   0   |
    40     |      records in the  reverse |          |       |      |      |       |        |       |
    41     |      direction               |          |       |      |      |       |        |       |
    42     +------------------------------+----------+-------+------+------+-------+--------+-------+








                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation                                  Confidential And Proprietary
           Tape Mass Storage Control Protocol                                            Version 2.0.0
           REPOSITION COMMAND VARIATIONS                                                      Page D-4
                                                                                       8 November 1987



     1                          Table D-1: REPOSITION Command Variations (cont.)

     2     +------------------------------+----------------------------------------+--------+-------+
     3     |                              |                                        |        |       |
     4     |          REPOSITION          |                Modifiers               | Record | Tape  |
     5     |          Command             +----------+-------+------+------+-------+   or   | Mark  |
     6     |          Variation           |Immediate |Detect |Object|Rewind|Reverse| Object | Count |
     7     |                              |Completion|LEOT   |Count |      |       | Count  |       |
     8     +------------------------------+----------+-------+------+------+-------+--------+-------+
     9     |   a. skip "tape mark  count" |     *    | 0 [1] |  0   |  0   |   0   |   >0   |  >0   |
    10     |      tape   marks   in   the |          |       |      |      |       |        |       |
    11     |      forward direction       |          |       |      |      |       |        |       |
    12     |   b. skip   "record   count" |          |       |      |      |       |        |       |
    13     |      records  in  that  same |          |       |      |      |       |        |       |
    14     |      direction               |          |       |      |      |       |        |       |
    15     +------------------------------+----------+-------+------+------+-------+--------+-------+
    16     |   a. skip "tape mark  count" |     *    |   *   |  0   |  0   |   1   |   >0   |  >0   |
    17     |      tape   marks   in   the |          |       |      |      |       |        |       |
    18     |      reverse direction       |          |       |      |      |       |        |       |
    19     |   b. skip   "record   count" |          |       |      |      |       |        |       |
    20     |      records  in  that  same |          |       |      |      |       |        |       |
    21     |      direction               |          |       |      |      |       |        |       |
    22     +------------------------------+----------+-------+------+------+-------+--------+-------+




























                              *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           WAIVERS AND EXCEPTIONS                                   Page E-1
                                                             8 November 1987


     1                                APPENDIX E

     2                          WAIVERS AND EXCEPTIONS


     3     E.1  TU81

     4     E.1.1  "EOT Encountered" Status Subcode

     5     Waiver:

     6         Early  serial  number  TU81  integrated  controllers   return
     7         "Success (subcode EOT Encountered)" status in the end message
     8         of all WRITE commands executed while the tape  is  positioned
     9         on  the  trailer side of the EOT marker.  That status is only
    10         supposed to be returned when the EOT  marker  is  encountered
    11         during  the  execution of a "write" type command.  WRITE TAPE
    12         MARK and ERASE GAP commands operate properly, only the  WRITE
    13         command is affected.


    14     Justification:

    15         This waiver is required to allow the shipment  of  the  first
    16         200  units  to  customers.   The  microcode  fixes  for these
    17         problems are extensive and would delay the shipments of TU81s
    18         for a quarter.

    19     E.1.2  "Serious Exception" And "EOT Encountered"

    20     Waiver:

    21         "Serious exception" end message flag  and  "EOT  encountered"
    22         are  not  reported  in  the  end messages of ABORT, DETERMINE
    23         ACCESS PATHS, and GET COMMAND STATUS commands.


    24     Justification:

    25         This waiver is required to allow the shipment  of  the  first
    26         200  units  to  customers.   The  microcode  fixes  for these
    27         problems are extensive and would delay the shipments of TU81s
    28         for a quarter.

    29     E.1.3  "Byte Count (Host Transfer)" On Read Reverse

    30     Wavier:

    31         The "byte count (host transfer)" end message field of reverse
    32         (i.e., "reverse" modifier set) COMPARE HOST DATA commands and


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           WAIVERS AND EXCEPTIONS                                   Page E-2
           TU81                                              8 November 1987


     1         reverse READ with compare  after  (i.e.,  "compare"  modifier
     2         set) commands are erroneous under certain conditions.

     3         The general problem is that the TU81 can not do a  real  read
     4         reverse.   The  TU81  emulates  the  read  reverse by doing a
     5         series of position and read forwards.  When attempting to  do
     6         the  host  data compare operation the compare is taking place
     7         in the wrong direction.  This causes the  TU81  to  flag  the
     8         wrong byte in error if there are two or more errors.


     9     Justification:

    10         This problem has little system impact because the command  is
    11         not  used  by  any  DEC operating system.  The command can be
    12         issued by a user program.  In most cases the program  is  not
    13         interested  in  the byte in error, just the fact there was an
    14         error or not.

    15         The change  to  conform  to  the  specification  is  a  major
    16         hardware  and  micro  code  change  (the  compare  is done in
    17         hardware).  The redesign  effort  would  take  at  least  one
    18         quarter.

    19         The point is best summed up by the following quote  from  Jim
    20         Zahrobsky:   "What  is  described in the specification is the
    21         ideal.  Traditional usage shows that there is no  clear  need
    22         for  devices  to  conform to that ideal (TE16 and TU77 do not
    23         meet the ideal.  The TU78 on the other hand does)." The  TU81
    24         doesn't meet the ideal, but it does come very close.

    25         Zahrobsky also went on to say that we will strive to meet the
    26         ideal on all future devices.

    27     E.2  TK50

    28     E.2.1  Incorrect Command Processing While Position Lost

    29     Waiver:

    30         Whenever the TK50 is in the "Position Lost" state, it rejects
    31         further   read/write/position   commands  until  one  of  the
    32         following takes place:

    33          o  The tape is returned to BOT;
    34          o  The tape unit enters the "Unit Offline" state;
    35          o  The tape is unloaded via the AVAILABLE command.





                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           WAIVERS AND EXCEPTIONS                                   Page E-3
           TK50                                              8 November 1987


     1         The intention of the TMSCP specification in the case  of  the
     2         "Position  Lost" condition is to allow the host to attempt to
     3         recover positioning of the tape behind and/or  ahead  of  the
     4         object  where  the  "Position Lost" condition occurred.  This
     5         implies that the  host  can  issue  any  I/O  or  positioning
     6         command  while  the  unit is in the "Position Lost" state and
     7         expect reasonable operation of those  commands  provided  the
     8         unit  is  still  able  to  read  the  tape  (i.e.,  its  read
     9         electronics are still in good shape).


    10     Justification:

    11         Corrective action would have prevented FRS with MicroVAX  II.
    12         This waiver only applies to early serial number TK50s.

    13     E.2.2  COMPARE HOST DATA Error Reporting

    14     Waiver:

    15         While performing a COMPARE HOST DATA command, the  TK50  will
    16         report  a  "Record  Data  Truncated"  error  subordinate to a
    17         "Compare" error.  The operating systems indicated  that  this
    18         was not a major error but that it must be fixed.


    19     Justification:

    20         Corrective action would have prevented FRS with MicroVAX  II.
    21         This waiver only applies to early serial number TK50s.

    22     E.2.3  Incorrect "Offline" Error Reporting

    23     Wavier:

    24         When the TK50 drive is powered off after the  controller  has
    25         been  initialized the status reported is Offline (subcode "No
    26         Media Loaded").


    27     Justification:

    28         Corrective action would have prevented FRS with MicroVAX  II.
    29         This waiver only applies to early serial number TK50s.

    30     E.2.4  Progress Indicator Processing

    31     Waiver:

    32         The Progress Indicator stops  indicating  progress  after  11


                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           WAIVERS AND EXCEPTIONS                                   Page E-4
           TK50                                              8 November 1987


     1         minutes  and  20 seconds following the execution of the ERASE
     2         command with the  "Immediate"  qualifier  set.   One  of  the
     3         consequences  of  this is that 2/3 of the data may be left on
     4         the tape.  Another consequence is that the host may flag  the
     5         device  as  broken.  All of the operating systems agreed that
     6         this is a problem that must be fixed.


     7     Justification:

     8         Corrective action would have prevented FRS with MicroVAX  II.
     9         This waiver only applies to early serial number TK50s.

    10     E.2.5  Multiple Error Logs Reported

    11     Waiver:

    12         The TK50 returns individual error logs for each of the  retry
    13         attempts  when  a  "Long Gap Encountered" situation occurs at
    14         BOT.  Also, the Event Code contained in the error log differs
    15         from the value reported in the command's end message.

    16         These situations only occur at BOT since other tests  perform
    17         correctly when positioned away from BOT.


    18     Justification:

    19         Corrective action would have prevented FRS with MicroVAX  II.
    20         This waiver only applies to early serial number TK50s.

    21     E.2.6  Invalid "Records Skipped Count"

    22     Waiver:

    23         The "Records Skipped Count" field (P.RCSK) is set to all ones
    24         in  the end message of a REPOSITION command that encounters a
    25         "Long Gap" condition.  The value should be  zero.   The  spec
    26         was ambiguous on this point.  The operating systems indicated
    27         that this was not a major problem.


    28     Justification:

    29         Corrective action would have prevented FRS with MicroVAX  II.
    30         This waiver only applies to early serial number TK50s.






                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           WAIVERS AND EXCEPTIONS                                   Page E-5
           TK50                                              8 November 1987


     1     E.2.7  Hardware Serial Number

     2     Waiver:

     3         Early TK50 controllers and drives do not implement a Hardware
     4         Serial Number that is unique to each component.


     5     Justification:

     6         Corrective action would have prevented FRS with MicroVAX  II.
     7         This waiver only applies to early serial number TK50s.








































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           REVISION HISTORY                                         Page F-1
                                                             8 November 1987


     1                                APPENDIX F

     2                             REVISION HISTORY


     3     F.1  Changes Since Version 1.6

     4     The following changes were made from TMSCP Version 1.6  to  TMSCP
     5     Version 1.6.4:

     6              The following approved ECOs to V1.6 were incorporated.

     7               o  TMSCP16-1   BOT   and    Tape    Mark    Encountered
     8                  Clarification
     9               o  TMSCP16-5 STI Formatter Error Log Changed
    10               o  TMSCP16-6 Eliminate Command Aborted as SE Cause
    11               o  TMSCP16-8 64kb Transfer ECO
    12               o  TMSCP16-9 ONL and SUC Speed Field Clarification
    13               o  TMSCP16-10 Expanded Transfer Error Log
    14               o  TMSCP16-12 Byte Count Equals Zero is Invalid
    15               o  TMSCP16-13  TMSCP  Extension  to  Get  Unit   Status
    16                  Command
    17               o  TMSCP16-17 TU81 "EOT Encountered" Waiver
    18               o  TMSCP16-19 TU81 Reverse Compare Byte Count Waiver
    19               o  TMSCP16-21 Tape Caching
    20               o  TMSCP16-22 "Non-industry standard" Read Reverse
    21               o  TMSCP16-25 TK50 Maximum Record Length
    22               o  TMSCP16-26 TK50 Various Temporary Waivers
    23               o  TMSCP16-28 TK50 Hardware Serial Number
    24               o  TMSCP16-29 CTP ABORT during REPOSITION
    25               o  TMSCP16-31    REPOSITION     Command     Description
    26                  Clarification
    27               o  TMSCP16-32 Lengthy I/O Command Abort Clarification
    28               o  TMSCP16-33    Asynchronous    Command     Completion
    29                  Clarification
    30               o  TMSCP16-34    Position    Lost    Error     Handling
    31                  Clarification
    32               o  TMSCP16-36 Error Log Generation Clarification
    33               o  TMSCP16-37 Media Format Error Status Code
    34               o  TMSCP16-42 GET UNIT STATUS Modification
    35               o  TMSCP16-43 Tape Format Flag Redefinition
    36               o  TMSCP16-44    End    Message    Field     Validation
    37                  Clarification
    38               o  TMSCP16-45 "Position" Field Clarification
    39               o  TMSCP16-46 PEOT Redefinition
    40               o  TMSCP16-47 "Position" Field Clarification
    41               o  TMSCP16-49 TA90 Density Flag
    42               o  TMSCP16-52 Sequential  Command  Clarification  while
    43                  Caching



                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           REVISION HISTORY                                         Page F-2
           Changes Since Version 1.6                         8 November 1987


     1               o  TMSCP16-56 "Position" Field Changes
     2               o  TMSCP16-57 EOT Can Move
     3               o  TMSCP16-58 TAPE TRANSFER ERRORS Errorlog Renamed
     4               o  TMSCP16-60 Enhanced Write Error Recovery Changes


     5              The  following  approved  ECOs   to   MSCP   V1.2   were
     6              incorporated.

     7               o  MSCP12-2 Error Log Sequence Numbers
     8               o  MSCP12-9 Reserve OPCODE Zero
     9               o  MSCP12-16 Error Log Format Generalization
    10               o  MSCP12-27 Read-Only Device Write Protect
    11               o  MSCP12-34 Exclusive Access [Multi-Host]
    12               o  MSCP12-35 ACCESS NON-VOLATILE MEMORY Command
    13               o  MSCP12-39 TU81 Waiver Request
    14               o  MSCP12-53 Diagnostic Opcodes
    15               o  MSCP12-56 Multi-Host Flag Definition
    16               o  MSCP12-57 Minor Errors in ECOs


    17              The following editorial changes were performed  (on  the
    18              original and ECO text):

    19               o  Table and  "picture"  formats  changed  to  be  more
    20                  readable.

    21               o  Spelling and grammatical errors corrected.

    22               o  List and item formats changed to be consistent.

    23               o  List items were placed in alphabetical order.

    24               o  Wording changes were made to increase readability.



    25  |  F.2  Changes Since Version 1.6.4

    26  |  The following changes were made from TMSCP Version 1.6.4 to TMSCP
    27  |  Version 2.0.0:

    28  |           The following approved ECOs to V1.6 were incorporated.

    29  |            o  TMSCP16-65 Position Lost Clarification
    30  |            o  TMSCP16-68 No Host Buffer Access Error for WTM






                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
           Digital Equipment Corporation        Confidential And Proprietary
           Tape Mass Storage Control Protocol                  Version 2.0.0
           REVISION HISTORY                                         Page F-3
           Changes Since Version 2.0.0                       8 November 1987


     1  |  F.3  Changes Since Version 2.0.0

     2  |  The following changes were made from TMSCP Version 2.0.0 to TMSCP
     3  |  Version 2.0.2:

     4  |           The following approved ECOs to V2.0.0 were incorporated.


     5  |            o  TMSCP20-1 Discarding Read-Ahead Cache Contents

     6  |            o  TMSCP20-4 Position Lost Terminology

     7  |            o  TMSCP20-5 FLUSH Should Not Block Further Caching







































                 *** R E S T R I C T E D   D I S T R I B U T I O N ***
