DECNET DIGITAL NETWORK ARCHITECTURE DATA ACCESS PROTOCOL (DAP) Functional Specification Version 5.6 Date: 28-March-80 Doc. No. HAL-78-001-03-S DIGITAL EQUIPMENT CORPORATION MAYNARD, MASSACHUSETTS 01754 DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 2 Copyright (C) 1978 Hewlett-Packard Company This material may be copied, in whole or in part, provided that the above copyright notice is included in each copy along with an acknowledgment that the copy describes the Data Access Protocol developed by Digital Equipment Corporation. This material may be changed without notice by Digital Equipment Corporation, and Digital Equipment Corporation is not responsible for any errors which may appear herein. DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 3 PREFACE This document describes the features, message formats, and operation of the Data Access Protocol (DAP). DAP provides standardized formats and procedures for accessing and passing data between a user process and a file system existing in a network environment. It assumes a controlled conversation path provided by the network system. In DECnet, this path is created by the Network Services Protocol and its associated interface. DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 4 Table of Contents Section Title 1.0 SCOPE 2.0 FUNCTIONAL DESCRIPTION 2.1 DAP Functions 2.2 Relationship to DECnet 2.3 Generic Model 3.0 MESSAGE FORMATS 3.1 Notation 3.2 General Message Format 3.3 Configuration Message 3.4 Attributes Message 3.5 Access Message 3.6 Control Message 3.7 Continue Transfer Message 3.8 Acknowledge Message 3.9 Access Complete Message 3.10 Data Message 3.11 Status Message 3.12 Key Definition Attributes Extension Message 3.13 Allocation Attributes Extension Message 3.14 Summary Attributes Extension Message 3.15 Date and Time Attributes Extension Message 3.16 Protection Attributes Extension Message 3.17 Name Message 3.18 Access Control List Attributes Extension Message 4.0 FILE ORGANIZATION 4.1 Types of Files 4.2 Record Formats/Attributes 4.3 Data Formats 4.4 Supported Data Types 5.0 OPERATION 5.1 Setting up the Link 5.2 Transferring Data over the Link 5.3 Closing a File and Terminating Data Streams 5.4 Terminating a Logical Link 5.5 File Security and Protection 5.6 DAP Based Applications Written by DIGITAL DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 5 APPENDIX A GLOSSARY APPENDIX B User Identification Message APPENDIX C REVISION HISTORY DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 6 List of Illustrations Figure Title Page 2-1 Typical DAP Message Exchange (Sequential File Retrieval) 5-1 Setup Sequence 5-2 File Retrieval Sequence 5-3 Sequential File Storage List of Tables Table Title Page 2-1 DAP Messages 3-1 MACCODE Field Values 3-2 MICCODE Field Values for Use with MACCODE Values of 2, 10, and 11 Octal 3-3 MICCODE Field Values for Use with MACCODE Values of 0, 1, 4, 5 and 7 Octal 3-4 MICCODE Field Values with MACCODE Value of 12 Octal 5-1 Responses to Setup Message Errors DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 7 1.0 SCOPE This document describes the functions, characteristics, capabilities, and operation of the Data Access Protocol (DAP). It is primarily intended to assist developers and implementers in understanding how DAP functions within a system. The document is not intended to address specific implementations. The Data Access Protocol is specifically designed for remote file access via a file system such as Record Management Services (RMS). Unit Record Devices and terminals can be accessed if supported by a file system. When Unit Record Devices and terminals are supported by a file system in a device-dependent manner, the device control features peculiar to the individual devices are not supported by DAP. 2.0 FUNCTIONAL DESCRIPTION The Data Access Protocol is an application level protocol. Its primary purpose is to permit remote file access within the DECnet environment independently of the I/O structure of the operating system being accessed. 2.1 DAP Functions Within DECnet, DIGITAL Operating Systems can employ DAP to provide the following remote file access functions: 1. Retrieve a file from an input device; 2. Store a file on an output device; 3. Provide ASCII file transportability between nodes; 4. Provide error recovery; 5. Allow multiple data streams to be sent over a logical link; 6. Command file execution and submission; 7. Provide for random access of records in a file; 8. Provide for file deletion; 9. Rename files; and 10. List directories. DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 8 2.2 Relationship to DECnet DECnet is a family of products that create distributed networks from DIGITAL computers and their interconnecting data links. DECnet creates a general mechanism for sharing resources and providing interprocess communications within a distributed data processing environment. DECnet implementations adhere to a common network architecture which defines the structure and protocols used to communicate through the network. The DIGITAL Network Architecture provides a modular design for DECnet. Its functional components are defined within six distinct layers: the Physical Link Layer, the Data Link Layer, the Transport Layer, the Network Service Layer, the Network Application Layer, and the User Layer. Each layer performs a well-defined set of network functions (via network protocols) and presents a level of abstraction and capability to the layer above it: Physical Link Layer The Physical Link Layer, consisting of device specific modules, provides the interface to the communication hardware. Data Link Layer The Data Link Layer controls the physical link operation to ensure both data integrity and sequentiality. Transport Layer The Transport Layer provides a mechanism for the network service layer to send a unit of data (a packet) from any node in the network to any other node in the network. Network Service Layer The Network Service Layer provides the mechanism that permits node-to-node communications and process-to-process communications between processes in the same or different nodes. It provides a logical link service and a datagram service to the network. Application Layer The Application Layer supports the various user services and programs that utilize the network facilities. These services and programs must utilize the network communication mechanism provided by the Network Services Layer. DAP resides within the Application Layer. User Layer The User Layer contains all the user-supplied functions. It is the highest layer in the DNA structure. DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 9 2.3 Generic Model As an aid toward understanding the Data Access Protocol, a generic model is presented in this section. This model consists of a summary of the DAP messages and a typical DAP message exchange sequence (illustrating how DECnet Sequential File Retrieval is accomplished between two dialogue processes). For a more detailed description of the DAP message formats and the protocol operation, refer to Sections 3.0 and 5.0, respectively. DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 10 Table 2-1. DAP Messages Message Function Configuration Used to exchange system capability and Message configuration information between DAP speaking processes. This message is sent immediately after a link is established. It contains information about the operating system, the file system, protocol version, and buffering ability. Attributes Provides information on how data is struc- Message tured in the file being accessed. The message contains information on file organization, data type, format, record attributes, record length, size, and device characteristics. Access Specifies the file name and type of access Message requested. Control Used to send control information to a file Message system and to establish data streams. Continue-Transfer Allows recovery from errors. Used for Message retry, skip, and abort after an error is reported. Acknowledge Used to acknowledge access commands and Message control connect messages used to establish data streams. Access Complete Controls termination of file and stream access. Message Data Message Transfers the file data over the link. Status Used to return status and information on Message error conditions. Access Control When creating a file, this message is used List Attr. Ext. Msg. to specify the access rights users are granted for access to this file. Key Definition Used to specify key definitions for indexed Attr. Ext. Msg. files. Allocation Used when creating or explicitly extending a Attr. Ext. Msg. file to specify the character of the allocation. DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 11 Summary Used to return summary information about Attr. Ext. Msg. file. Date Time Used to specify time related information Attr. Ext. Msg. about the file. Protection Used to specify the file protection code. Attr. Ext. Msg. Name Message Used to send name information when renaming a file or obtaining a directory listing. DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 12 User Node Message Remote Node Message Description Messages Description Configuration Information Configuration Message (e.g. Buffer Size, OS, File ---------------------------> System, and DAP Version No.) Configuration Message <-------------------------- Configuration Information Attributes Message File Characteristics -------------------------> (e.g., Type, Blk Size and Record Size) Access Message Access Request -------------------------> Attributes Message <------------------------- Actual File Characteristics Returned Acknowledge Message <------------------------- File Opened Control Message Set up Data Stream -------------------------> Acknowledge Message <------------------------- Data Stream Established Request Start of Data Transfer and Mode of Control (Get) Message Transfer -------------------------> Record 1 <------------------------- Data Sent in Records . . . Record N <------------------------- Status Message <------------------------- End-of-File Indicated Access Complete Message Request to Terminate --------------------------> Access Complete Response <------------------------- Request Completed Successfully Figure 2-1. Typical DAP Message Exchange (Sequential File Retrieval) DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 13 2.4 References 1. VAX-11 Record Management Services Reference Manual, Order No. AA-D031A-TE. 2. IAS/RSX-11M RMS-11 MACRO Programmer's Reference Manual, Order No. AA-0002A-TC. 3. RMS-11 Functional Specification, 15 March 1976, Doc. No. 130-958-028-01. 4. RMS-20 Functional Specification, 1 Sept. 1976, Doc. No. 200-835-002-00. 5. RMS-32 Functional Specification, 21 Sept. 1976, Doc No. 130-958-049-00. 6. MACY11 Record Format on TOPS-20 and TOPS-10, Doc. No. SGR-78-003-00-S. DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 14 3.0 MESSAGE FORMATS 3.1 Notation The following notation is used to describe the DAP messages: field (length) : coding = description of field. where: field = the name of the field being described. length = the length of the field, which can be indicated in one of four ways: 1. A number meaning number of 8-bit bytes (octet). 2. A number followed by a "B" meaning number of bits. 3. The letters "EX" meaning extensible field. Extensible fields are of variable length consisting of 8-bit bytes in which the high-order bit of each byte denotes whether the next byte is part of the same field. A 1 means the next byte is part of this field and a 0 denotes the last byte. Extensible fields are for bit maps only. Seven bits from each octet are used as information bits. The notation EX-n means an extensible field where the maximum length of the field is n bytes. Note: The bit definitions define the information bits after removing the extension bits and compressing the remaining bits. 4. The letters "I-n" means this is an image field, with n being a number that specifies the maximum length of the field in 8-bit bytes. The image is preceded by a 1-byte count of the length of the remainder of the field. Image fields are variable in length and may be null (count=0). All 8-bits of each byte are used as information bits. The meaning and interpretation of each image field is as defined with that specific field. coding = the representation type used, where: DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 15 A = 7-bit ASCII B = binary BM = bit map (in which each bit has a specific meaning) The following rules apply to the notation: 1. If length and coding are omitted, field represents a number of subfields specified in the description. 2. Any bit or field described as "reserved" shall be zero unless otherwise specified. 3. All fields are presented to the Network Services Protocol with the least-significant byte first. In an ASCII field, the left-most character is contained in the low-order byte. 4. All numbers are in decimal unless otherwise specified. 5. When default values are defined for fields in DAP messages, the values will be used only if that field is absent from the message. There are two ways in which fields within DAP messages can be omitted so the default can be used: a. A field that appears under a MENU may be omitted by setting the corresponding MENU bit to zero. b. Trailing fields in DAP messages may be omitted if they are not needed or if the default value can be used. If a MENU field is truncated in this way, its value is zero (which means all the fields controlled by the MENU are absent, too). If a field is present with a zero value, the default value is not used. The value zero is used. 3.2 General Message Format All DAP messages have the following form: OPERATOR OPERAND where: OPERATOR = This field describes the characteristics and type of message. It is divided into seven subfields, TYPE, FLAGS, STREAMID, LENGTH, LEN256, BITCNT, and SYSPEC. TYPE(1) : B = The type of DAP message. These numbers are given DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 16 with each DAP message description. Types 128-191 are reserved for DIGITAL applications based on DAP. Types 192-255 are reserved for user extensions to DAP. FLAGS(EX-5) : BM = The DAP message flags. Bits in this extensible field are currently defined as follows: Bit(s) Meaning (when set) 0 Stream identification field present. 1 Length field present. 2 If bit 1 (length field present) is set, field LEN256 is present and the length field is in effect 2 bytes long. Illegal if bit 1 not set. 3 The BITCNT field is present. 4 Reserved (0) 5 SYSPEC field present. 6 If set, this is a segmented message and this is not the last segment of the message. The next message will contain the next segment of the full message. The next message must be of the same type as this message. Refer to the SYSCAP field of the Configuration Message to see if DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 17 this facility is supported. NOTE DAP messages can be truncated up to the point of leaving only the TYPE field provided the fields truncated are not needed or can be defaulted. This is particularly useful with the Acknowledge Message which reduces the ACK to a one byte message. STREAMID(1) : B = The stream identification field. This field is included only if bit 0 of the FLAGS field is set. This field is used to allow a single user to have multiple data streams in use for a single open file. All data streams use the same logical link (they multiplex on the STREAMID number). If the STREAMID number is omitted, it is assumed to be zero. Not all file systems are capable of supporting multiple data streams from a single file. LENGTH(1) : B = Denotes the length of the OPERAND field (number of 8-bit bytes). This field is optional. It is included only if bit 1 of the FLAGS field is set. Two or more DAP messages may be blocked together into one NSP message (usually for reasons of efficiency). If DAP messages are blocked, the LENGTH field must be present so the end of one message and start of the next can be found. Messages between 0 and 255 bytes long may be blocked using only the LENGTH field. DAP messages whose operand length is between 256 and 64K bytes may be DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 18 blocked only if both bits 1 and 2 of FLAGS are set. Lengths greater than 64K bytes are sent unblocked or as the last part of a blocked message. LEN256(1) : B = Contains the most significant byte of a two byte OPERAND length if bit 2 of FLAGS is set. LENGTH contains the least significant byte. If LEN256 is present, LENGTH must also be present. BITCNT(1) : B = This field is valid only with the Data Message. If present, it contains a number in the range 0-7 which is the number of unused bits in the final 8-bit byte of the message. It is required only when transmitting data which does not completely fill the final 8-bit frame of a Data Message. This is useful when accessing files whose byte size is not a multiple of eight. See section 4.4.3. SYSPEC(I-255) : B = This optional field is the system specific field which means that it can only be used for file access between two homogeneous systems. This field is included only if bit 5 of the FLAGS field is set. If it is used between hetrogeneous systems, it will produce a hard error and the access will be aborted. Between homogeneous systems, this field can be used for passing system specific information as defined by the system. The SYSPEC field can not be used with the Configuration Message. This field must not be used for passing information DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 19 common to more than one system. IF THIS FIELD IS USED, ALL SYSTEM SPECIFIC FUNCTIONS MUST BE REGISTERED WITH THE ARCHITECTURE GROUP WITHIN DECnet IN ADVANCE OF CERTIFICATION. OPERAND = The information field for DAP messages. It is dependent on the TYPE field. NOTE Typically, one DAP speaking process sends one or more DAP messages to a cooperating process which then responds with one or more messages, see section 5 for examples of message sequences. This pattern is repeated until the access is complete. DAP messages can be blocked in one of two ways: 1. The first process blocks and sends DAP messages up to the point where it expects a response from the cooperating process. It then waits for the response. 2. The first process blocks and sends DAP messages without regard for response from the cooperating process -- it may be way ahead of the cooperating process. This means the cooperating process must be able to receive a buffer full of DAP messages, process some of them, send a response and then continue processing DAP messages from the same buffer from where it left off before sending the response. If the response was an error, the unprocessed messages in the buffer may no longer be valid and must be discarded. The first method of blocking is the more commonly used. The type of blocking a system supports is specified in the Configuration Message. Some small systems may not support blocking at all. DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 20 3.3 Configuration Message The Configuration Message is used to pass system configuration information between the cooperating processes involved in DAP remote file access. This message is sent immediately following link establishment. The accessed process may wait to receive a Configuration Message from the accessing process before it sends a Configuration Message itself, however, this is not necessary. The Configuration Message should not be sent blocked with any other DAP message (so buffers of the appropriate size can be allocated for receiving subsequent DAP messages). The Configuration Message format is: CONFIG BUFSIZ OSTYPE FILESYS VERSION SYSCAP where: CONFIG : = The OPERATOR field with TYPE=1. BUFSIZ(2) : B = The maximum buffer size (in bytes) of the sending system for message exchange. The two cooperating DAP speaking processes will use the lesser of the two buffer sizes as the maximum size. If one of the two systems has an unlimited buffer size, it sends a 0 and the two systems will use the nonzero buffer size as the maximum. If both systems send 0, there is no limit on the length of messages which may be sent. OSTYPE(1) : B = Operating system type (the sending system). Values in the range 1-191 are reserved for DIGITAL use; 192-255 are reserved for user-specified operating systems. Value OS Type 0 Illegal 1 RT-11 2 RSTS/E 3 RSX-11S 4 RSX-11M 5 RSX-11D 6 IAS 7 VAX/VMS 8 TOPS-20 9 TOPS-10 10 RTS-8 11 OS-8 12 RSX-11M+ 13 COPOS/11 (TOPS-20 front-end) FILESYS(1) : B = File system type (of the file system being used by the process sending this message). Values in the range 1-191 are reserved for DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 21 DIGITAL use; 192-255 are reserved for user-specified file systems. Value System 0 Illegal 1 RMS-11 2 RMS-20 3 RMS-32 4 FCS-11 5 RT-11 6 No file system supported 7 TOPS-20 8 TOPS-10 9 OS-8 VERSION : = A field identifying the protocol and software version numbers. This field is subdivided as follows: VERNUM ECONUM USRNUM SOFTVER USRSOFT where: VERNUM(1) : B = DAP version number. This is the same as the first digit of the protocol version number. ECONUM(1) : B = DAP ECO (Modification) number. This is the same as the second digit of the protocol version number. USRNUM(1) : B = Customer modification level of DAP. Set to 0 by DIGITAL. SOFTVER(1) : B = DAP software version number in binary. This is the DIGITAL release number. If the software is completely user written, this field should be 0. USRSOFT(1) : B = User software version number in binary. If the user modifies DIGITAL software, he should increment this byte to reflect his modification number. Set to 0 by DIGITAL. SYSCAP(EX-12) : BM = Generic system capabilities. These are DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 22 defined as follows: Bit Meaning (When Set) 0 Supports file preallocation. 1 Supports sequential file organization. 2 Supports relative file organization. 3 Reserved - intended to support direct file organization. 4 Supports single keyed indexed file organization (reserved). 5 Supports sequential file transfer. 6 Supports random access by record number. 7 Supports random access by Virtual Block Number. 8 Supports random access by key. 9 Reserved - intended to support random access by user generated hash code. 10 Supports random access by Record File Address (RFA). 11 Supports multi-keyed indexed file organization. 12 Supports switching access mode (see RAC field in section 3.6). 13 Supports append to file access. 14 Supports command file submission and/or execution as specified in the Access Message. 15 Supports data compression (reserved). 16 Supports multiple data streams. 17 Supports status return (reserved). 18 Supports blocking of DAP messages up to response. (See note section 3.2.) 19 Supports unrestricted blocking of DAP messages. (See note section 3.2.) 20 Supports the use of two byte operand length in the DAP message header, i.e., LENGTH and LEN256. 21 Supports the file checksum option (See ACCOPT field in the Access Message and also section 5.5.2). 22 Supports the Key Definition Extended Attributes Message. 23 Supports the Allocation Extended Attributes Message. 24 Supports the Summary Extended Attributes Message. 25 Supports directory list. 26 Supports the Date and Time Extended DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 23 Attributes Message. 27 Supports the File Protection Extended Attributes Message. 28 Supports the Access Control List Extended Attributes Message (Reserved). 29 Supports spooling as specified by bit 20 of the FOP field (see Attributes and Access Complete Messages). 30 Supports command file submission as specified by bit 21 of the FOP field. 31 Supports file deletion as specified by bit 22 of the FOP field. 32 Supports the default file specification (see section 3.17) (reserved). 33 Supports sequential record access. 34 Supports the recovery option for file transfer (Reserved). 35 Supports the use of the BITCNT field in the Data Message. 36 Supports the warning Status Message (MACCODE = 6). 37 Supports the file rename operation. 38 Supports wildcard operations (see section 5.2.19). 39 Supports the Go/No-Go option (see section 3.5, ACCOPT field) (reserved). 40 Supports the Name Message. 41 Supports segmented DAP messages (see bit 6 of FLAGS field) (reserved). NOTE Bits 5 and 33 differentiate between the use of file transfer (see sections 5.2.1 and 5.2.2) and record access on sequential files (see section 5.2.3 and 5.2.4) where file transfer reduces overhead by eliminating the need for Control Messages. 3.4 Attributes Message The Attributes Message is used to describe how data is being represented in a file that is being accessed. The Attributes Message DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 24 is sent as a part of the initial set up. The Attributes Message format is as follows: ATTRIB ATTMENU DATATYPE ORG RFM RAT BLS MRS ALQ BKS FSZ MRN RUNSYS DEQ FOP BSZ DEV SDC LRL HBK EBK FFB SBN NOTES 1. Symbolic names, where supplied, refer to the corresponding RMS names. They are included here for ease of reference only; they have no meaning for DAP. 2. Values passed to the accessed system's file system may not be used literally in some cases. For example if a value of 0 is passed in the DEQ field, RMS systems will ignore the 0 and use the local default rather than return an error as might be expected. The application of defaults, as in this example, is a function of individual file systems and is in no way related to defaults as specified in DAP. If a field is present in a DAP message, no DAP specified default will be substituted in place of the value it contains. 3. Sometimes fields will be ignored if they are not applicable to the particular operation or are not supported and their omission will not affect the operation. For example, MRS is ignored by RMS as input to the OPEN operation. Also, with bit map fields, sometimes bits will be ignored where they are not applicable to the operation or not supported by that particular file system. where: ATTRIB : = The OPERATOR field with TYPE=2. ATTMENU(EX-6) : BM = The following bit map specifies which of the attributes fields will be present in the main attributes message when the corresponding bit is set. These fields and only these fields may appear in the message and they must be in the order specified. Bit Meaning (when set) 0 DATATYPE 1 ORG 2 RFM 3 RAT 4 BLS 5 MRS DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 25 6 ALQ 7 BKS 8 FSZ 9 MRN 10 RUNSYS 11 DEQ 12 FOP 13 BSZ 14 DEV 15 SDC (Reserved) 16 LRL 17 HBK 18 EBK 19 FFB 20 SBN DATATYPE(EX-2) : BM = The type of data being transferred. The default is Image. Unless a file has attributes specifying whether the file contains ASCII or Image data, the value (ASCII or Image) sent by the accessing process when opening a file, is returned by the accessed process. Bit Meaning (When Set) 0 ASCII (see Note 1). 1 IMAGE (default) (see Note 2 below). 2 EBCDIC (Reserved). 3 Compressed format. 4 Executable code. 5 Privileged code. 6 Reserved (set 0 when sending ATTRIBUTES message; ignore when receiving ATTRIBUTES message). 7 Sensitive data -- zero on delete. Data in file is to be set zero when the file is deleted for data security. NOTES 1. This is the 7-bit ASCII code set as defined in the 1968 ANSI Standard. When transmitting or receiving 7-bit ASCII in 8-bit frames, the high order bit is ignored except when using 7-bit compression. 2. Image is the mode where no code-set is specified. It is a format for sending 8-bit quantities in DAP without specifying any code representation. The DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 26 actual data may be ASCII, binary or anything else. It is up to the user process to determine how to use the data. See section 4.4.3. ORG(1) : B = Attributes of the file being accessed. These attributes are as follows: Value (octal) Meaning 0 FB$SEQ; Sequential (default). 20 FB$REL; Relative. 40 FB$IDX; Indexed. 60 FB$HSH; Hashed (Reserved). RFM(1) : B = Format of the records being transferred. These formats are as follows: Value Meaning 0 FB$UDF; Undefined record format. 1 FB$FIX; Fixed-length records (default). 2 FB$VAR; Variable-length records. 3 FB$VFC; Variable with fixed control format. 4 FB$STM; ASCII Stream Format. RAT(EX-3) : BM = Information about the attributes of individual records. The default is all bits set 0. Bit Meaning (When Set) 0 FB$FTN; Records contain FORTRAN carriage control (see Note 1). 1 FB$CR; Records have an implied LF/CR envelope. 2 FB$PRN; Print file carriage control where pre- and post-fix carriage control information is stored in the fixed header field of files in variable with fixed control (VFC) format. 3 FB$BLK; Records that do not span blocks (see Note 2). 4 Records have embedded format control (see Note 3). 5 Reserved (0) - Intended for COBOL carriage control. 6 FB$LSA; Line-sequenced ASCII Format. DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 27 7 MACY11 format (see note 4) NOTES 1. FORTRAN Carriage Control. For line printers and some terminals, the first character of each record is to be treated as a carriage control character. 2. This bit when set informs the system that the record length should not exceed the physical device blocking size. With some systems and on some I/O devices (e.g., disk and magnetic tape) this may be a factor in determining the actual format used on the device. 3. This bit, when set, informs the system that format control characters (LF, VT, etc.) may be contained in records in the file. 4. MACY11 format is a standard used on 10's and 20's to store files destined for PDP-11's. These files usually contain 8-bit data such as object code output by a cross compiler. For details of MACY11, see MACY11 Record Format on TOPS-20 and TOPS-10, document retrieval no. SGR-78-003-00-S. BLS(2) : B = Physical block size in bytes on media. The default value is 512. The actual byte size is as specified by field BSZ. MRS(2) : B = The length of each file record in number of bytes. For variable-length records, this field specifies the maximum record size. DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 28 When the accessed process receives the MRS (maximum record size), it must check it against the length of its buffer. If the buffer will not accommodate this size record, the accessed process should return an error. A zero value means no checking is performed on record size. MRS is used by the various file systems in a system dependent manner. The default is 0. ALQ(I-5) : B = This field specifies the allocation quantity in blocks. For file creation, it specifies the initial size of the new file. The actual size of the new file is returned in this field. The default is 0. NOTE On opening existing files, this value is ignored and this field is used only to return the file size. BKS(1) : B = Bucket size in blocks. Used for access to relative (not RMS-20), hashed and indexed files with RMS. The default is 0 (see Note 2 at the top of Section 3.4.) FSZ(1) : B = Size in bytes of fixed part of variable length record with fixed control format. The default is 0 (see Note 2 at the top of Section 3.4). MRN(I-5) : B = Maximum record number for file (for relative files only). If set to 0, checking is suppressed. The default is 0. RUNSYS(I-40) : A = Name of the Run-Time System environment required to execute the code contained in the file. This field is useful to operating systems that can emulate other operating system environments. The default value is accessed operating system dependent. DEQ(2) : B = File extension quantum size in virtual blocks, which is the amount of space, in blocks, added to the file each time the file is implicitly extended. The default is 0 (see Note 2 at the top of Section 3.4). FOP(EX-6) : BM = The file access options a user requires. The default is all bits set to 0. DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 29 Bit Meaning (when set) 0 FB$RWO; rewind on open. 1 FB$RWC; rewind on close. 2 Reserved (0). 3 FB$POS; position magnetic tape just past the most recently created file. 4 FB$DLK; do not lock file if not properly closed. 5 Reserved (0). 6 File Locked. 7 FB$CTG; a contiguous file creation or extension required. 8 FB$SUP; supersede existing file on create. 9 FB$NEF; do not position to EOF on opening magnetic tape file for PUT. 10 FB$TMP; create temporary file. 11 FB$MKD; create temporary file and mark for delete on close. 12 Reserved (0). 13 FB$DMO; rewind and dismount magnetic tape on close. 14 FB$WCK; Enable Write checking. 15 FB$RCK; Enable Read checking. 16 FB$CIF; create new file if one by the same name does not exist. If one does exist, open the highest version of the file. 17 FB$LKO; Override file lock on open (reserved). 18 FB$SQO; Sequential access only. 19 FB$MXV; Maximize version number. 20 FB$SPL; Spool file to line printer (one copy only) on close. 21 FB$SCF; Submit as command file on close. 22 FB$DLT; Delete file on close. May be used as a sub-option with submit or spool. 23 FB$CBT; Contiguous best try. The file will be created, but it will be contiguous only when it it possible. 24 FB$WAT; Wait for file if it is locked by another process (reserved). 25 FB$DFW; Deferred write (REL and IDX files) 26 FB$TEF; Truncate at EOF on close (write accessed SEQ files). 27 FB$OFP; Output file parse (only name type sticky) DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 30 BSZ(1) : B = Number of bits per byte for data stored in the file on the accessed node. Data is always transmitted in 8-bit frames (see Section 4.4). When a DAP Attributes Message is sent from the accessing to the accessed system, BSZ is required only when dealing with systems capable of supporting a variable byte size, e.g., TOPS-20. The default value for BSZ is the normal default for the accessed system's file system, e.g., 8 bits per byte for RSX. When the Attributes Message is returned from the accessed to the accessing system, BSZ should always be sent unless the default applies. The default for BSZ in a returned Attributes Message is 8 bits. DEV(EX-6) : BM = For attributes sent to the accessing node, this field contains the generic characteristics of the device on which a file resides. The default is all bits set to 0. Bit Meaning (When Set) 0 FB$REC ; record oriented. 1 FB$CCL ; carriage control device. 2 FB$TRM ; terminal. 3 FB$MDI ; directory structured. 4 FB$SDI ; single directory only. 5 FB$SQD ; sequential, block oriented (e.g. magnetic tape). 6 ; Null device. 7 FB$FOD ; a file-oriented device (e.g. a disk or magnetic tape). 8 ; device can be shared. 9 FB$SPL ; device is being spooled. 10 FB$MNT ; device is currently mounted. 11 FB$DMT ; device is marked for dismount. 12 FB$ALL ; device is allocated. 13 FB$IDV ; device is capable of providing input. 14 FB$ODV ; device is capable of providing output. 15 FB$SWL ; device is software write-locked. DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 31 16 FB$AVL ; device is available for use. 17 FB$ELG ; device has error logging enabled. 18 FB$MBX ; device is a mailbox. 19 FB$RTM ; device is realtime in nature, not suitable for RMS use. 20 FB$RAD ; a random access device. 21 ; device has read checking enabled. 22 ; device has write checking enabled. 23 ; device is foreign, 24 ; network device. 25 ; generic device. SDC(EX-6) : BM = Spooling device characteristics. SDC uses (Reserved for the same bit definitions as in the DEV future use) field. If the file is spooled, SDC contains the characteristics of the spooling device. The characteristics of the ultimate device are contained in DEV. The default is all bits set to 0. LRL(2) : B = Longest record length. Length of the longest record in the file. HBK(I-5) : B = Highest virtual block allocated to the file. EBK(I-5) : B = End of file virtual block number. FFB(2) : B = First free byte in end of file block -- byte size as defined in BSZ. SBN(I-5) : B = Starting logical block number for file if contiguous; else 0. 3.5 Access Message The Access Message specifies the file name and type of access requested. The format for the access message is as follows: ACCESS ACCFUNC ACCOPT FILESPEC FAC SHR DISPLAY PASSWORD NOTE Symbolic names, where supplied, refer to the corresponding RMS names. They are included here for ease of reference only. They have no meaning for DAP. DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 32 where: ACCESS : = The OPERATOR field with TYPE=3. ACCFUNC(1) : B = The request code specifying the operation to be performed is as follows: 1 - $OPEN; Open existing file. 2 - $CREATE; Open new file. 3 - $RENAME; Rename a file. 4 - $ERASE; Delete a file. 5 - Reserved. 6 - Directory List. 7 - Submit as a command (batch) file. 8 - Execute command (batch) file. If $RENAME is specified, the FILESPEC field below contains the old file specification and the new file specification is contained in the Name Message which follows the Access Message. If $CREATE is specified, but a file of that name already exists, the rules of the accessed node for file creation will be followed. For example, the file system may create a new file whose version number is one greater than the current highest version number. NOTE The Data Access Protocol (DAP) is not concerned with functions beyond remote data access. DAP should not be extended to attempt to cover RJE, Spooling, or other similar functions which, while they involve file transfer, are also concerned with command processing, parameter passing, and job queueing. The two command file submission commands are here for historical reasons, i.e. they have already been implemented in the first release of DAP-based software. However, their functionality will not be extended. two blank lines here ACCOPT(EX-5) : BM = The access options are as follows: Bit Meaning (When Set) DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 33 0 I/O errors are non-fatal. A record may be skipped or repeated as specified by the Continue Transfer Message. If not set, I/O errors are fatal and terminate the access. 1 A status message will be returned following each record sent to the accessed process in the record access mode. (Reserved.) 2 A status message is returned with each record retrieved from an accessed system. The status message should precede the Data Message so that it is always possible to block the two into one NSP message. When a user requires a Record File Address (RFA) to be returned, this option is used. (Reserved.) 3 A 16 bit file checksum will be generated by both the transmitting and receiving nodes. When closing the file, the accessing process sends the checksum it generated to the accessed process in the Access Complete (Close) Message. The accessed process closes the file if the checksums agree. If they do not agree, it returns a status message. See section 5.5.2. 4 The Go/No-Go option is to be used with this operation. Go/No-Go is valid only for the Delete, Rename and Execute Command File functions and wildcard operations using these functions. Go/No-Go operation causes the accessed process to return the name of the file to the accessing process before executing the operation. The accessing process can then choose whether or not to perform the operation on the file by sending either a CONTR(Resume) or CONTR(Skip) (see section 5.2.19.2 for state operation). FILESPEC = The file specification in the format required (I-255) : A by the remote node. A null file specification assumes the meaning of a null file specification on the target node. FAC(EX-3) : BM = The file access operations a user requires: DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 34 Bit Meaning (When Set) 0 FB$PUT; Put access. 1 FB$GET; Get access (default). 2 FB$DEL; Delete access. 3 FB$UPD; Update access. 4 FB$TRN; Truncate access. 5 FB$BIO; Block I/O acess (see Note). 6 FB$BRO; Support switching between block and record I/O. NOTE FB$REA = FB$BIO!FB$GET; Block I/O Read access. FB$WRT = FB$BIO!FB$PUT; Block I/O write access. SHR(EX-3) : BM = Operations shared with other users: Bit Meaning (When Set) 0 FB$PUT; Put access. 1 FB$GET; Get access (default). 2 FB$DEL; Delete access. 3 FB$UPD; Update access. 4 FB$MSE; Enable multi-stream access. 5 FB$UPI; User provided interlocking (allows multiple writers to SEQ files). 6 FB$NIL; No access by other users. DISPLAY(EX-4): BM = Attributes and Extended Attributes Messages which are to be returned in response to this Access Message. See note 2 section 3.6. Bit Meaning (When Set) 0 Main Attributes Message (see Note 1, Section 5.1.2) 1 Key definition Attributes Message 2 Allocation Attributes Message 3 Summary Attributes Message 4 Date and Time Attributes Message 5 File Protection Attributes Message 6 reserved (0) 7 Access Control List Attributes Message (reserved) 8 Name Message containing resultant file specification. If the file was opened using logical name(s), this will return the file specification of file opened without logical names. DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 35 NOTE When opening a file and DISPLAY requests key definition and allocation attributes for that file, the Attributes Message must be followed by Key Definition and Allocation Attributes Extension Messages specifiying for which keys and which areas this information is to be returned. If no keys or areas are specified, no key or area information will be returned. See Section 5.1.2 for the message sequence. PASSWORD(I-40): B = Password required to obtain access to file. 3.6 Control Message The Control Message is used to send control type information to a file system. The Control Message format is as follows: CONTROL CTLFUNC CTLMENU RAC KEY KRF ROP HSH DISPLAY where: CONTROL : = The OPERATOR field with TYPE=4. CTLFUNC(1) : B = Specific control information: Value Meaning 1 - $GET (or $READ for block I/O); get record (or block). If random access to a relative file is made, the KEY field contains the record number. If a random access to an indexed file is made, KEY contains the key. If sequential access is employed, get the next record. (Default). 2 - $CONNECT; initiate data stream. If multiple data streams are used, they are multiplexed on the STREAMID number. The STREAMID number in the Control Message is used to initiate a data stream. If DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 36 the STREAMID number is omitted, a default of zero is assumed. 3 - $UPDATE; update current record. Indicates to the accessed system the intent of the accessing system to update the currently positioned record with the next data transmission. 4 - $PUT (or $WRITE for block I/O); indicates to the accessed system, that the information to follow should be written into the file. one blank line here 5 - $DELETE; delete current record. 6 - $REWIND; rewind file. 7 - $TRUNCATE; truncate file. Writes end-of-file at current position. Used with sequential files only. 8 - $MODIFY; change file attributes (Reserved). 9 - $RELEASE; unlock record specified by Record File Address in KEY field. (Reserved). 10 - $FREE; unlock all locked records for this data stream. 11 - Reserved 12 - $FLUSH; write out all modified I/O buffers and attributes for this data stream. 13 - $NXTVOL; perform end-of-volume and start-of-next-volume processing. (Reserved). 14 - $FIND; find record. Same as 1, but the data is not transferred. 15 - $EXTEND; extend this file by the amount specified in the following Allocation Attributes Extension Message. (Reserved). 16 - $DISPLAY; retrieve this file's attributes as defined by the field DISPLAY. (Reserved). DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 37 17 - SPACE FORWARD; forward space the file by the number of blocks specified by KEY below. Block I/O only. 18 - SPACE BACKWARD; backward space the file by the number of blocks specified by KEY below. Block I/O only. 19 - CHECKPOINT; checkpoint the output file at the accessed node. An ACK response is returned when the checkpoint is completed. (Reserved). 20 - RECOVERY GET; restart file retrieval data transfer from the last checkpoint. The KEY field contains the input file checkpoint locater needed to restart data access from the remote input file. (Reserved). 21 - RECOVERY PUT; restart store file data transfer from last checkpoint. If the file is sequential, position remote output file to EOF before writing the data records which follow to disk. (Reserved). CTLMENU(EX-4):BM = The following bits when set, indicate the following optional fields are present. These fields and only these fields may appear in the message and they must be in the order specified. Bit Field 0 RAC 1 KEY 2 KRF 3 ROP 4 HSH (Reserved) 5 DISPLAY (Reserved) RAC(1) : B = Sets the access mode. If this field is not present, the option in force for the last access is retained. The default is 0 if not set previously. Value Meaning 0 - RB$SEQ; sequential record access. 1 - RB$KEY; keyed access. 2 - RB$RFA; Access by Record File Address (RFA -- an RMS specific access mode). 3 - sequential file access (the remainder of the file is transferred sequentially DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 38 from the current file position). 4 - block mode; access by Virtual Block Number. For retrieval, each block must be requested by a Control Message as in the record access mode. 5 - block mode file transfer. Blocks are transferred sequentially to end-of-file without need for a Control Message preceding each block transferred. An explicit Control (Get) or (Put) is required to start data moving. KEY(I-255) : B = File or Mode Key Relative Files Record Number Indexed Files Record Key Hashed Files Record Key Record File Address Access Mode Record File Address Block Mode Access Virtual Block Number (binary, range 1 to n) Recovery Input File Checkpoint Locater Non 8-bit quantities in the KEY field are right justified with the high order, unused bits set zero. If the key consists of 7-bit ASCII characters, each 7-bit character is right justified in an 8-bit frame as is usual for the transmission of ASCII characters. KRF(1) : B = Key of reference. If this field is not present, the key of reference is not changed. Default is primary if never set. 0 - primary key 1-254 - secondary key indicator ROP(EX-6) : BM = Optional record processing features. If this field is not present, the options in force for the last access are retained. Bit Meaning (When Set) 0 RB$EOF; position to EOF. 1 RB$FDL; fast delete -- mark record deleted but do not remove pointers from index. 2 RB$UIF; $PUT's update existing records in relative files. 3 RB$HSH; use hash code in HSH (Reserved). 4 RB$LOA; follow fill quantities. 5 RB$ULK; manual locking/unlocking. 6 RB$TPT; Truncate Put -- writes EOF DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 39 at current position. SEQ files only (Put also occurs). 7 RB$RAH; read ahead. 8 RB$WBH; write behind. 9 RB$KGE; key is >=. 10 RB$KGT; key is >. 11 RB$NLK; do not lock record. 12 RB$RLK; read a locked record (read only). 13 RB$BIOp block I/O. 14 RB$LIM; compare for key limit reached (reserved). 15 RB$NXR; non-existant record processing (reserved). HSH(I-5) : B = Hash code if keyed access on direct file is (Reserved for employed and the user is doing hashing. future use) DISPLAY(EX-4) : BM= Attributes Messages which are to be returned (Reserved for in response to a request to retrieve the future use) file's attributes are: Bit Meaning (When Set) 0 Main Attributes Message. 1 Key definition attributes. 2 Allocation attributes. 3 Summary Attributes Message. 4 Date and Time Attributes Message. 5 File Protection Attributes Message. 6 reserved (0) 7 Access Control List Attributes Message (reserved) 8 Name message containing resultant file specification -- if file opened using logical name(s), this will return the file specifcation of the file opened without logical names. NOTE 1. When a file's attributes and Key definition and/or allocation attributes have been requested in the DISPLAY field of a Control Message, the Control Message must have been preceded by Key Definition and/or Allocation Attributes Extension Messages specifying for which Keys and/or areas this information is to be returned. If no keys or areas are specified, no Key or area information will be returned. See section 5.2.10 for the message sequence. DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 40 2. An accessing process seeing the accessed process does not support a particular message type (as indicated in the CONFIG from the accessed process) does not request that message type in the DISPLAY field of either the ACCESS or CONTROL messages. If an unsupported message type is requested, an error is returned. 3. FAL's written to versions of DAP prior to 5.6 will not return a Status Message for successful completion with GET, PUT, FIND and DELETE operations. FAL's written to DAP version 5.6 and later will return successful status for these operations. See sections 5.2.3, 5.2.4, 5.2.20 and 5.2.21 for the operation of these functions. 3.7 Continue Transfer Message The Continue Transfer Message is used when an error is detected in the I/O transfer and the user process wishes to continue DAP transfer. The normal use of this message would be to receive an error message, take appropriate action, and then send a Continue Transfer Message to allow the DAP link to resume operation. This message is also used when the accessed process suspends to await an operator decision as with Go/No-Go operation. The format of the Continue Transfer Message is: CONTRAN CONFUNC where: CONTRAN : = The OPERATOR field with TYPE=5. CONFUNC(1) : B = This field is used to specify the recovery action to be taken: Value Meaning 1 - Try again. 2 - Skip and continue. 3 - Abort transfer (i.e., discard all records in the pipeline until an Access Complete Message is found indicating the pipeline is clear). 4 - Resume processing (used to restart accessed process processing data for this data stream if the accessed process is DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 41 suspended). 3.8 Acknowledge Message The Acknowledge Message is used to acknowledge access commands, control connects and a checkpoint having been taken. Its format is as follows: ACKNOWLEDGE where: ACKNOWLEDGE: = THE OPERATOR field with TYPE=6. 3.9 Access Complete Message The Access Complete Message is used either to terminate access or to acknowledge a request to terminate access. The Access Complete Message format is as follows: ACCOMP CMPFUNC FOP CHECK where: ACCOMP : = The OPERATOR field with TYPE=7. CMPFUNC(1) : B = The access completion functions are: Value Meaning 1 Close. Terminate access. Close a file that is currently open. When multiple data streams are in use, they are all closed ($CLOSE). 2 Response. Sent by the accessed process in response to all Access Complete messages from the accessing process unless an error occurs. 3 Purge. A file is to be purged. That is, closed and deleted ($CLOSE + $ERASE). 4 End-of-stream. Terminate the data stream associated with this STREAMID number but do not close the file ($DISCONNECT). 5 Skip. For use with a series of wildcard transfers. Close the file currently associated with this link (forcefully, if necessary -- ignore any errors that may occur in closing the file) and go on to DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 42 process the next file. NOTE FAL's written to DAP version 4.1 will not return an ACCOMP (Response) to an ACCOMP(EOS). FAL's written to later versions of DAP will return an ACCOMP (Response). The Access Complete (EOS) does not close the file. The accessed process should be in a state wherein it can accept another Control (Connect) to open another stream. two blank lines here FOP(EX-6) : BM = The file access options a user requires. Refer to Section 3.4 for option values. If any portion of the FOP field in the ACCOMP is present, the whole FOP from the ATTRIBUTES is superceded with unspecified bits being set 0. CHECK(2) : B = The 16 bit file checksum if requested in the ACCOPT field of the Access Message. See Section 5.5.2. The checksum is sent only in the Access Complete (Close) Message. A Status Message is returned if the checksum is incorrect. When this field is present, the checksums are compared by the accessed process. If this field is absent, no checksum comparision is made and the file is closed even if it is known to contain errors. 3.10 Data Message The Data Message is used to transfer the file data over a DAP link. The Data Message format is as follows: DATA RECNUM FILEDATA where: DATA : = The OPERATOR field with TYPE=8 RECNUM(I-8) : B = This field is used to send the record number when accessing relative files (or sequential files in a relative manner, i.e., by record number). For random store, this field will contain the record number (for relative files) or hash code (if the user is generating his own hash codes with hashed DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 43 files). When RECNUM is not used, the byte count is zero. When in block mode, this field will contain the VBN instead of the record number. For file retrieval with recovery, this field contains the input file checkpoint locater. FILEDATA = The file data being transferred. This field is totally transparent and uses all 8-bits of each byte. 3.11 Status Message The status message is used to return information on the status of DAP messages or data transfers. It is sent synchronously in response to another DAP message or an error during data transfer. The format is: STATUS STSCODE RFA RECNUM STV where: STATUS = The OPERATOR field with TYPE=9 STSCODE = A 2-byte status field (16 bits) subdivided as: 15 12 11 0 ------------------------ !MACCODE! MICCODE ! ------------------------ where: MACCODE(4B):B = The macro or functional group reason for the Status Message. Values for this field are specified in Table 3-1. MICCODE(12B):B= The specific type of status (by MACCODE type). Values for this field are specified in Tables 3-2, 3-3 and 3-4. one blank line here RFA(I-8) : B = Used to return the Record File Adddress of the record to which this Status Message applies. If the Access Message field ACCOPT indicates a return of status after each record is stored, then this field contains the record file address of the record in the accessed system's file. DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 44 RECNUM(I-8) : B = Used to return the record number for relative files when a status message is returned after each record is transferred (as specified in the ACCOPT field of the Access Message). Null for non-relative files. STV(I-8) : B = Secondary status. Used to return secondary status information where required (e.g., RMS uses it for device error codes). DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 45 Table 3-1. MACCODE Field Values Value (Octal) Name Meaning 0 Pending Operation in progress. 1 Successful Returns information that indicates success. 2 Unsupported This implementation of DAP does not support the specified request. For example, this is used when an unsupported bit/field or a field/value is encountered which a particular implementation does not support. 3 Reserved. 4 File Open Errors that occur before a file is successfully opened. 5 Transfer Errors that occur after opening a file Error and before closing that file. 6 Transfer For operations on open files, indicates Warning the operation completed but not with complete success. 7 Access Termination Errors associated with terminating access to a file. 10 Format Error in parsing a message. Format is not correct. 11 Invalid Field of message is invalid (e.g., bits that are meant to be mutually exclusive are set, an undefined bit is set, a field value is out of range or an illegal string is in a field). 12 Sync DAP message received out of synchronization. 13-15 Reserved. 16-17 User defined STATUS MACCODES DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 46 Table 3-2. MICCODE Field Values for Use with MACCODE Values of 2, 10, and 11 Octal Type of Error Code Reason (Octal) NOTE MICCODE Format: Bits 0-5 specify the DAP message field number. Bits 6-11 specify the DAP message type number. Miscellaneous 00 00 Unspecified DAP message error. 00 10 DAP message type field (TYPE) error. Configuration 01 00 Unknown field. Message errors by field 01 10 DAP message flags field (FLAGS). 01 11 Data stream identification field (STREAMID). 01 12 Length field (LENGTH). 01 13 Length extension field (LEN256) 01 14 BITCNT field (BITCNT) 01 20 Buffer size field (BUFSIZ). 01 21 Operating system type field (OSTYPE). 01 22 File system type field (FILESYS). 01 23 DAP version number field (VERNUM). 01 24 ECO version number field (ECONUM). 01 25 USER protocol version number field (USRNUM). 01 26 DEC software release number field (SOFTVER). 01 27 User software release number field (USRSOFT). 01 30 System capabilities field (SYSCAP). Attributes 02 00 Unknown field. Message errors by field 02 10 DAP message flags field (FLAGS). 02 11 Data stream identification field (STREAMID). 02 12 Length field (LENGTH). 02 13 Length extension field (LEN 256) 02 14 Bit count field (BITCNT) 02 15 System specific field (SYSPEC). 02 20 Attributes menu field (ATTMENU). 02 21 Data type field (DATATYPE). 02 22 File organization field (ORG). 02 23 Record format field (RFM). 02 24 Record attributes field (RAT). 02 25 Block size field (BLS). DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 47 02 26 Maximum record size field (MRS). 02 27 Allocation quantity field (ALQ). 02 30 Bucket size field (BKS). 02 31 Fixed control area size field (FSZ). 02 32 Maximum record number field (MRN). 02 33 Run-time system field (RUNSYS). 02 34 Default extension quantity field (DEQ). 02 35 File options field (FOP). 02 36 Byte size field (BSZ). 02 37 Device characteristics field (DEV). 02 40 Spooling device characteristics field (SDC); Reserved. 02 41 Longest record length field (LRL). 02 42 Highest virtual block allocated field (HBK). 02 43 End of file block field (EBK). 02 44 First free byte field (FFB). 02 45 Starting LBN for contiguous file (SBN). Access 03 00 Unknown field. Message errors by field 03 10 DAP message flags field (FLAGS). 03 11 Data stream identification field (STREAMID). 03 12 Length field (LENGTH). 03 13 Length extension field (LEN256) 03 14 Bit count field (BITCNT) 03 15 System specific field (SYSPEC). 03 20 Access function field (ACCFUNC). 03 21 Access options field (ACCOPT). 03 22 File specification field (FILESPEC). 03 23 File access field (FAC). 03 24 File sharing field (SHR). 03 25 Display attributes request field (DISPLAY). 03 26 File password field (PASSWORD). Control 04 00 Unknown field. Message errors by field 04 10 DAP message flags field (FLAGS). 04 11 Data stream identification field (STREAMID). 04 12 Length field (LENGTH). 04 13 Length extension field (LEN256) 04 14 Bit count field (BITCNT) 04 15 System specific field (SYSPEC). 04 20 Control function field (CTLFUNC). 04 21 Control menu field (CTLMENU). 04 22 Record access field (RAC). 04 23 Key field (KEY). 04 24 Key of reference field (KRF). 04 25 Record options field (ROP). 04 26 Hash code field (HSH); Reserved for DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 48 future use. 04 27 Display attributes request field (DISPLAY). Continue 05 00 Unknown field. Message errors by field 05 10 DAP message flags field (FLAGS). 05 11 Data stream identification field (STREAMID). 05 12 Length field (LENGTH). 05 13 Length extension field (LEN256) 05 14 Bit count field (BITCNT) 05 15 System specific field (SYSPEC). 05 20 Continue transfer function field (CONFUNC). Acknowledge 06 00 Unknown field. Message errors by field 06 10 DAP message flags field (FLAGS). 06 11 Data stream identification field (STREAMID). 06 12 Length field (LENGTH). 06 13 Length extension field (LEN256) 06 14 Bit count field (BITCNT) 06 15 System specific field (SYSPEC). Access Complete 07 00 Unknown field. Message errors by field 07 10 DAP message flags field (FLAGS). 07 11 Data stream identification field (STREAMID). 07 12 Length field (LENGTH). 07 13 Length extension field (LEN256) 07 14 Bit count field (BITCNT) 07 15 System specific field (SYSPEC). 07 20 Access complete function field (CMPFUNC). 07 21 File options field (FOP). 07 22 Checksum field (CHECK). Data Message 10 00 Unknown field. errors by field 10 10 DAP message flags field (FLAGS). 10 11 Data stream identification field (STREAMID). 10 12 Length field (LENGTH). 10 13 Length extension field (LEN256) 10 14 Bit count field (BITCNT) 10 15 System specific field (SYSPEC). 10 20 Record number field (RECNUM). 10 21 File data field (FILEDATA). DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 49 Status Message 11 00 Unknown field. errors by field 11 10 DAP message flags field (FLAGS). 11 11 Data stream identification field (STREAMID). 11 12 Length field (LENGTH). 11 13 Length extension field (LEN256) 11 14 Bit count field (BITCNT) 11 15 System specific field (SYSPEC). 11 20 Macro status code field (MACCODE). 11 21 Micro status code field (MICCODE). 11 22 Record file address field (RFA). 11 23 Record number field (RECNUM). 11 24 Secondary status field (STV). Key Definition 12 00 Unknown field Message errors by field: 12 10 DAP message flags field (FLAGS) 12 11 Data stream identification field (STREAMID) 12 12 Length field (LENGTH) 12 13 Length extension field (LEN256) 12 14 Bit count field (BITCNT) 12 15 System specific field (SYSPEC). 12 20 Key definition menu field (KEYMENU) 12 21 Key option flags field (FLG) 12 22 Data bucket fill quantity field (DFL) 12 23 Index bucket fill quantity field (IFL) 12 24 Key segment repeat count field (SEGCNT) 12 25 Key segment position field (POS) 12 26 Key segment size field (SIZ) 12 27 Key of reference field (REF) 12 30 Key name field (KNM) 12 31 Null key character field (NUL) 12 32 Index area number field (IAN) 12 33 Lowest level area number field (LAN) 12 34 Data level area number field (DAN) 12 35 Key data type field (DTP) 12 36 Root VBN for this key field (RVB) 12 37 Hash algorithm value field (HAL) 12 40 First data bucket VBN field (DVB). 12 41 Data bucket size field (DBS). 12 42 Index bucket size field (IBS). 12 43 Level of root bucket field (LVL). 12 44 Total key size field (TKS). 12 45 Minimum record size field (MRL). Allocation 13 00 Unknown field message errors by field: 13 10 DAP message flags field (FLAGS) 13 11 Data stream identification field (STREAMID) 13 12 Length field (LENGTH) DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 50 13 13 Length extension field (LEN256) 13 14 Bit count field (BITCNT) 13 15 System specific field (SYSPEC). 13 20 Allocation menu field (ALLMENU) 13 21 Relative volume number field (VOL) 13 22 Alignment options field (ALN) 13 23 Allocation options field (AOP) 13 24 Starting location field (LOC) 13 25 Related file identification field (RFI) 13 26 Allocation quantity field (ALQ) 13 27 Area identification field (AID) 13 30 Bucket size field (BKZ) 13 31 Default extension quantity field (DEQ) Summary 14 00 Unknown field. Message errors by field 14 10 DAP message flags field (FLAGS). 14 11 Data stream identification field (STREAMID). 14 12 Length field (LENGTH) 14 13 Length extension field (LEN256) 14 14 Bit count field (BITCNT) 14 15 System specific field (SYSPEC). 14 20 Summary menu field (SUMENU) 14 21 Number of keys field (NOK) 14 22 Number of areas field (NOA) 14 23 Number of record descriptors field (NOR) 14 24 Prologue version number (PVN) Date and Time 15 00 Unknown field Message 15 10 DAP message flags field (FLAGS) errors by field 15 11 Data stream identification field (STREAMID) 15 12 Length field (LENGTH) 15 13 Length extension field (LEN256) 15 14 Bit count field (BITCNT) 15 15 System specific field (SYSPEC). 15 20 Date and time menu field (DATMENU) 15 21 Creation date and time field (CDT) 15 22 Last update date and time field (RDT) 15 23 Deletion date and time field (EDT) 15 24 Revision number field (RVN). Protection 16 00 Unknown field Message 16 10 DAP message flags field (FLAGS) errors by field 16 11 Data stream identification field (STREAMID) 16 12 Length field (LENGTH) 16 13 Length extension field (LEN256) 16 14 Bit count field (BITCNT) 16 15 System specific field (SYSPEC). DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 51 16 20 Protection menu field (PROTMENU) 16 21 File owner field (OWNER) 16 22 System protection field (PROTSYS) 16 23 Owner protection field (PROTOWN) 16 24 Group protection field (PROTGRP) 16 25 World protection field (PROTWLD) Name Message 17 00 Unknown field errors by field 17 10 DAP message flags field (FLAGS) 17 11 Data stream identification field (STREAMID) 17 12 Length field (LENGTH) 17 13 Length extension field (LEN256) 17 14 Bit count field (BITCNT) 17 15 System specific field (SYSPEC). 17 20 Name type field (NAMETYPE) 17 21 Name field (NAMESPEC) Access Control 20 00 Unknown field List Message errors by field: 20 10 DAP message flags field (FLAGS) (Reserved for 20 11 Data stream identification field future use) (STREAMID). 20 12 Length field (LENGTH) 20 13 Length extension field (LEN256) 20 14 Bit count field (BITCNT) 20 15 System specific field (SYSPEC). 20 20 Access control list repeat count field (ACLCNT) 20 21 Access control list entry field (ACL) DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 52 Table 3-3. MICCODE Field Values for Use with MACCODE Values of 0, 1, 4, 5, 6, and 7 Octal Value Error/Reason (Octal) NOTE MICCODE Format: Bits 0-11 contain the error code number. Symbolic status codes, where supplied, refer to the corresponding RMS status codes. They are included here for ease of reference only -- they have no meaning for DAP. 0 Unspecified error. 1 ER$ABO; operation aborted. 2 ER$ACC; F11-ACP could not access file. 3 ER$ACT; "FILE" activity precludes operation. 4 ER$AID; bad area ID. 5 ER$ALN; alignment options error. 6 ER$ALQ; allocation quantity too large or 0 value. 7 ER$ANI; not ANSI "D" format. 10 ER$AOP; allocation options error. 11 ER$AST; invalid (i.e., synch) operation at AST level. 12 ER$ATR; attribute read error. 13 ER$ATW; attribute write error. 14 ER$BKS; bucket size too large. 15 ER$BKZ; bucket size too large. 16 ER$BLN; "BLN" length error. 17 ER$BOF; beginning of file detected. 20 ER$BPA; private pool address. 21 ER$BPS; private pool size. 22 ER$BUG; internal RMS error condition detected. 23 ER$CCR; cannot connect RAB. 24 ER$CHG; $UPDATE changed a key without having attribute of XB$CHG set. 25 ER$CHK; bucket format check-byte failure. 26 ER$CLS; RSTS/E close function failed. 27 ER$COD; invalid or unsupported "COD" field. 30 ER$CRE; F11-ACP could not create file (STV=sys err code). 31 ER$CUR; no current record (operation not preceded by GET/FIND). 32 ER$DAC; F11-ACP deaccess error during "CLOSE". 33 ER$DAN; data "AREA" number invalid. 34 ER$DEL; RFA-Accessed record was deleted. 35 ER$DEV; bad device, or inappropriate device type. 36 ER$DIR; error in directory name. 37 ER$DME; dynamic memory exhausted. 40 ER$DNF; directory not found. 41 ER$DNR; device not ready. 42 ER$DPE; device has positioning error. 43 ER$DTP; "DTP" field invalid. 44 ER$DUP; duplicate key detected, XB$DUP not set. 45 ER$ENT; RSX-F11ACP enter function failed. DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 53 46 ER$ENV; operation not selected in "ORG$" macro. 47 ER$EOF; end-of-file. 50 ER$ESS; expanded string area too short. 51 ER$EXP; file expiration date not yet reached. 52 ER$EXT; file extend failure. 53 ER$FAB; not a valid FAB ("BID" NOT = FB$BID). 54 ER$FAC; illegal FAC for REC-OP,0, or FB$PUT not set for "CREATE". 55 ER$FEX; file already exists. 56 ER$FID; invalid file I.D. 57 ER$FLG; invalid flag-bits combination. 60 ER$FLK; file is locked by other user. 61 ER$FND; RSX-F11ACP "FIND" function failed. 62 ER$FNF; file not found. 63 ER$FNM; error in file name. 64 ER$FOP; invalid file options. 65 ER$FUL; DEVICE/FILE full. 66 ER$IAN; index "AREA" number invalid. 67 ER$IFI; invalid IFI value or unopened file. 70 ER$IMX; maximum NUM(254) areas/key XABS exceeded. 71 ER$INI; $INIT macro never issued. 72 ER$IOP; operation illegal or invalid for file organization. 73 ER$IRC; illegal record encountered (with sequential files only). 74 ER$ISI; invalid ISI value, on unconnected RAB. 75 ER$KBF; bad KEY buffer address (KBF=0). 76 ER$KEY; invalid KEY field (KEY=0/neg). 77 ER$KRF; invalid key-of-reference ($GET/$FIND). 100 ER$KSZ; KEY size too large. 101 ER$LAN; lowest-level-index "AREA" number invalid. 102 ER$LBL; not ANSI labeled tape. 103 ER$LBY; logical channel busy. 104 ER$LCH; logical channel number too large. 105 ER$LEX; logical extend error, prior extend still valid. 106 ER$LOC; "LOC" field invalid. 107 ER$MAP; buffer mapping error. 110 ER$MKD; F11-ACP could not mark file for deletion. 111 ER$MRN; MRN value=neg or relative key>MRN. 112 ER$MRS; MRS value=0 for fixed length records. Also 0 for relative files. 113 ER$NAM; "NAM" block address invalid (NAM=0, or not accessible). 114 ER$NEF; not positioned to EOF (sequential files only). 115 ER$NID; cannot allocate internal index descriptor. 116 ER$NPK; indexed file; no primary key defined. 117 ER$OPN; RSTS/E open function failed. 120 ER$ORD; XAB'S not in correct order. 121 ER$ORG; invalid file organization value. 122 ER$PLG; error in file's prologue (reconstruct file). 123 ER$POS; "POS" field invalid (POS>MRS,STV=XAB indicator). 124 ER$PRM; bad file date field retrieved. 125 ER$PRV; privilege violation (OS denies access). 126 ER$RAB; not a valid RAB ("BID" NOT=RB$BID). 127 ER$RAC; illegal RAC value. DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 54 130 ER$RAT; illegal record attributes. 131 ER$RBF; invalid record buffer address ("ODD", or not word-aligned if BLK-IO). 132 ER$RER; file read error. 133 ER$REX; record already exists. 134 ER$RFA; bad RFA value (RFA=0). 135 ER$RFM; invalid record format. 136 ER$RLK; target bucket locked by another stream. 137 ER$RMV; RSX-F11 ACP remove function failed. 140 ER$RNF; record not found. 141 ER$RNL; record not locked. 142 ER$ROP; invalid record options. 143 ER$RPL; error while reading prologue. 144 ER$RRV; invalid RRV record encountered. 145 ER$RSA; RAB stream currently active. 146 ER$RSZ; bad record size (RSZ>MRS, or NOT=MRS if fixed length records). 147 ER$RTB; record too big for user's buffer. 150 ER$SEQ; primary key out of sequence (RAC=RB$SEQ for $PUT). 151 ER$SHR; "SHR" field invalid for file (cannot share sequential files). 152 ER$SIZ; "SIZ field invalid. 153 ER$STK; stack too big for save area. 154 ER$SYS; system directive error. 155 ER$TRE; index tree error. 156 ER$TYP; error in file type extension on FNS too big. 157 ER$UBF; invalid user buffer addr (0, odd, or if BLK-IO not word aligned). 160 ER$USZ; invalid user buffer size (USZ=0). 161 ER$VER; error in version number. 162 ER$VOL; invalid volume number. 163 ER$WER; file write error (STV=sys err code). 164 ER$WLK; device is write locked. 165 ER$WPL; error while writing prologue. 166 ER$XAB; not a valid XAB (@XAB=ODD,STV=XAB indicator). 167 BUGDDI; default directory invalid. 170 CAA ; cannot access argument list. 171 CCF ; cannot close file. 172 CDA ; cannot deliver AST. 173 CHN ; channel assignment failure (STV=sys err code). 174 CNTRLO; terminal output ignored due to (CNTRL) O. 175 CNTRLY; terminal input aborted due to (CNTRL) Y. 176 DNA ; default filename string address error. 177 DVI ; invalid device I.D. field. 200 ESA ; expanded string address error. 201 FNA ; filename string address error. 202 FSZ ; FSZ field invalid. 203 IAL ; invalid argument list. 204 KFF ; known file found. 205 LNE ; logical name error. 206 NOD ; node name error. 207 NORMAL; operation successful. 210 OK_DUP; record inserted had duplicate key. 211 OK_IDX; index update error occurred-record inserted. DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 55 212 OK_RLK; record locked but read anyway. 213 OK_RRV; record inserted in primary o.k.; may not be accessible by secondary keys or RFA. 214 CREATE; file was created, but not opened. 215 PBF ; bad prompt buffer address. 216 PNDING; async. operation pending completion. 217 QUO ; quoted string error. 220 RHB ; record header buffer invalid. 221 RLF ; invalid related file. 222 RSS ; invalid resultant string size. 223 RST ; invalid resultant string address. 224 SQO ; operation not sequential. 225 SUC ; operation successful. 226 SPRSED; created file superseded existing version. 227 SYN ; filename syntax error. 230 TMO ; time-out period expired. 231 ER$BLK; FB$BLK record attribute not supported. 232 ER$BSZ; bad byte size. 233 ER$CDR; cannot disconnect RAB. 234 ER$CGJ; cannot get JFN for file. 235 ER$COF; cannot open file. 236 ER$JFN; bad JFN value. 237 ER$PEF; cannot position to end-of-file. 240 ER$TRU; cannot truncate file. 241 ER$UDF; file is currently in an undefined state; access is denied. 242 ER$XCL; file must be opened for exclusive access. 243 ; directory full. 244 ; handler not in system. 245 ; fatal hardware error. 246 ; attempt to write beyond EOF. 247 ; hardware option not present. 250 ; device not attached. 251 ; device already attached. 252 ; device not attachable. 253 ; sharable resource in use. 254 ; illegal overlay request. 255 ; block check or CRC error. 256 ; caller's nodes exhausted. 257 ; index file full. 260 ; file header full. 261 ; accessed for write. 262 ; file header checksum failure. 263 ; attribute control list error. 264 ; file already accessed on LUN. 265 ; bad tape format. 266 ; illegal operation on file descriptor block. 267 ; rename; 2 different devices. 270 ; rename; new filename already in use. 271 ; cannot rename old file system. 272 ; file already open. 273 ; parity error on device. 274 ; end of volume detected. 275 ; data over-run. 276 ; bad block on device. DAP SPECIFICATION, Version 5.6, 28-March-1980 Page 56 277 ; end of tape detected. 300 ; no buffer space for file. 301 ; file exceeds allocated space -- no blks. 302 ; specified task not installed. 303 ; unlock error. 304 ; no file accessed on LUN. 305 ; send/receive failure. 306 SPL ; spool or submit command file failure. 307 NMF ; no more files. 310 CRC ; DAP file transfer Checksum error. 311 ; Quota exceeded 312 BUGDAP; internal network error condition detected. 313 CNTRLC; terminal input aborted due to (CNTRL) C. 314 DFL ; data bucket fill size > bucket size in XAB. 315 ESL ; invalid expanded string length. 316 IBF ; illegal bucket format. 317 IBK ; bucket size of LAN NOT = IAN in XAB. 320 IDX ; index not initialized. 321