Ultrix-3.1/src/cmd/ltf/README.1

Compare this file to the similar file:
Show the results in this format:

#if 0
			---------------
			R E A D M E . 1
			---------------

/-------\
| NOTES |
\-------/

  The term  "LTF"  (Labeled Tape Facility)  will be used to refer
to  the  suite  of  programs  directly or indirectly indicated as
being required to  fulfill  the  features/functionality  outlined
herein.

  References for the substance of this document are based on:

        1)  The publication:

                American National Standard
                 magnetic tape labels and file structure
                 for information interchange
                 ANSI  X3.27-1978

        published by:   American National Standards Institute
                        1430 Broadway, New York, New York  10018


        2)  The document/working paper:

                Draft Propsed Revision to ANSI X3.27-1978
                 Public Review Comment on ANSI X3L5/83-28T 15-Oct-84
                 (describes the proposed version 4 ANSI standard)


        received from:  Howard Kaikow
                        ZK01-3/C23
                        Digital Equipment Co.


        3)  The publication:

                The Small Buffer Supplement
                VAX/VMS  ANSI Labeled Magnetic Tapes Supported by
                the VAX/VMS  MTAACP.


        Published by:   Software Services  COG/TSG
                        April 81
                        Digital Equipment Co.
                         for INTERNAL USE ONLY

/**/
/-------------------------------\
|                               |
|     ARCHITECTUAL  STATEMENT   |
|                               |
\-------------------------------/

  This proposed implementation of the  LTF  does not claim to  be
100% ANSI standard in all cases. That is, the Ultrix LTF does not
support the entirety of the functionality and/or format capabili-
ties outlined in the documents/publications cited as references.

  It should be understood that the functionality and formats  for
Ultrix  labeled  tapes  is/are  simply based on the standards and
formats referred to, and described in, the publications/documents
listed above.

  The  LTF  will attempt to follow  these  documents  as  working
precepts  as  accurately  as  it  can  while meeting the needs of
Ultrix systems.

  It should be further understood that where the cited  documents
specifiy procedures and/or operational constricts that would con-
flict with those  features/functionality  normally  found  in  an
Ultrix system, that said procedures and/or operational constricts
will, by necessity, have been omitted from  the  LTF  implementa-
tion.

/**/
/--------------\
| GOALS of LTF |
\--------------/

  The primary goal of the  LTF  is the  exchange  of  information
between   an   Ultrix  system  and  a  non-Ultrix  system  as  an
import/export facility by providing a means to  read/write  tapes
in  format  generally acceptable (ie. compatable) to most systems
providing support of ANSI labeled tapes.

  The  LTF,  as an import/export utility,  should  be  compatable
with  the  ANSI specifications (cited above) regarding a Magnetic
Tape Volume in the following  respects  (exceptions  noted  under
NON-GOALS):

  The  LTF, is an import/export program for which DEC Ultrix cus-
tomers  may purchase a source licence and modify it at their dis-
cretion.  This specification is not intended to imply  an  imple-
mentation  of ANSI standards for magnetic tape interchange within
an Ultrix operating system  (ie.  not  subject  to  installation
modification).

/**/
/------------------\
| NON-GOALS of LTF |
\------------------/

  It is not a goal of the  LTF  to provide the entirety  of  ser-
vices and features outlined in the various documents/publications
cited previously. Items specifically omitted  (see  LTF(5))  from
further processing:

        1. Multi-volume File sets
        2. Label Fields not proccessed:

                a. VOL1
                        Accessibility
                b. VOL2 thru VOL9
                c. User Volume Labels (UVL1 thru UVL9)
                d. HDR1, EOV1, EOF1
                        File-Set Identifier
                        Expiration Date
                        Accessibility
                        Block Count
                e. HDR2
                        Buffer Offset Content
                f. HDR8, HDR9
                g. User Header Labels (UHL1 thru UHL9)
                h. End of Volume Labels (EOV3 thru EOV9)
                i. End of File Labels (EOF3 thru EOF9)
                j. User Trailer Labels (ULT1 thru UTL9)


/**/
/----------------------\
| IMPLEMENTATION NOTES |
\----------------------/

  This implementation provides for a user level interface to  the
system  for the purpose of exchanging information with non-Ultrix
systems via ANSI compatable  labeled  volumes.  "User  level"  is
intended  to imply a person interfacing to the system at the ter-
minal level.


/--------------------------------------\
| MAJOR FUNCTIONALITY of LTF (summary) |
\--------------------------------------/

  This version of the  LTF  will provide  for  the  creation  and
interpretation  of  "ANSI  Version  3 and 4 (Level 4)" compatable
volumes.  The ANSI version 4 specification is not  yet  finalized
but  is expected to not differ substantially from the preliminary
copy I have received.

  When transfer  of  information  to  another  Ultrix  system  is
desired, the LTF will provide the mechansim necessary to preserve
Ultrix file names, modes, directories, links, etc..


/-----------------------------\
| LTF  USER  INTERFACE  NOTES |
\-----------------------------/

See the document -->  ltf.mp


/------------------\
| FUTURE  FEATURES |
\------------------/

  Provide support/implementation for market demand items not pro-
vided in this version of the LTF.


#endif  0

/**/
*		-----------------------------------------
*		GENERAL  ANSI  VOLUME  and  LABEL FORMATS 
*
* 			PROCESSED BY THE  LTF
*		-----------------------------------------
*
*	/=======================================================\
*	|	ANSI Compatible  volume labels ...		|
*	|	Each label consists of 80 bytes of ASCII data	|
*	|	as specified below.				|
*	\=======================================================/
*
*			*-*  NOTE  *-*
*			     ----
*		Items enclosed in () indicate OPTIONAL
*		fields that may be present according to
*		to the ANSI standard. 
*
*	The Ultrix  LTF  only supports SINGLE-VOLUME file sets.
*
*			TERMS
*			------
*	"a"characters - Refers to the set of characters consisting of:
*
*		Uppercase  A-Z,  numerals  0-9, & the following 
*		special characters:
*
*			space  !  "  %  &  '  (  )  *  +  ,  - _
*			. /  :  ;  <  =  >  ?
*
*
*		BLOCK -	A group of consecutive bytes of data treated as
*			unit by the storage medium.
*			Blocks are separated by an interblock gap. 
*			A Block may contain part of a record, all of the
*			record, all many records.
*
*		BLOCK-LENGTH -	ANSI standard for version 3 says that
*				the maximum size is 2048 bytes. Item
*				D4.5 in appendix "D". Page 26 refers
*				the reader to further standards.
*				Page 6 of the ANSI standard for version
*				4 refers you to "relevant" (but unamed)
*				standards for recorded magnetic tape.
*				The small buffer supplement on page 2-2
*				indicates that the minimum block size is
*				18 bytes and the maximum is 2048.
*
*		RECORD - A set of related data treated as a unit 
*			 of information.
*
*		TAPE MARK - The DC3 character (crtl/s) =>  ?? octal
*/
/**/
/*
/*
* Type 1 -> ANSI VERSION 3/4  -  SINGLE FILE / SINGLE VOLUME
* ------
*
*	+-------+
*	|  bot	| <- Beginning of tape marker
*	+-------+
*	| VOL1	| <- Volume Label (only 1 permitted for ANSI version 3, ANSI
*	|	|    version 4 OPTIONALLY permits Volume Labels 2 thru 9)
*	+-------+
*	|(UVLn) | <- OPTIONAL User Volume labels ('n' varies from 1 - 9)
*	+-------+
*	| HDR1	| <- First File Header Label
*	+-------+
*	| HDR2	| <- Second File Header Label
*	+-------+
*	|(HDRn)	| <- OPTIONAL File Header Labels ('n' varies 3-9)
*	+-------+
*	|(UHLa) | <- OPTIONAL User File Header Labels (unspecified number of)
*	+-------+
*	|  tm	| <- Tape Mark
*	+-------+
*	|	|
*	| DATA  | <- 'n' Data blocks...
*	|	|
*	+-------+
*	|  tm	| <- Tape Mark
*	+-------+
*	| EOF1	| <- First End of File Label
*	+-------+
*	| EOF2	| <- Second End of File Label
*	+-------+
*	|(EOFn) | <- OPTIONAL End of File Labels (n ~ 3 thru 9)
*	+-------+
*	|(UTLn) | <- OPTIONAL User Trailer Labels
*	+-------+
*	|  tm   | <- Tape Mark
*	+-------+
*	|  tm   | <- Tape Mark (double tape marks == end of all data)
*	+-------+
*	| eot	| <- End of TAPE marker
*	+-------+
*/
/**/
/*
* Type 2 -> ANSI VERSION 3/4  -  MULTI-FILE / SINGLE VOLUME
* ------
*
*	+-------+
*	|  bot	| <- Beginning of tape marker
*	+-------+
*	| VOL1	| <- Volume Label (only 1 permitted for ANSI version 3, ANSI
*	|	|    version 4 OPTIONALLY permits Volume Labels 2 thru 9)
*	+-------+
*	|(UVLn)	| <- OPTIONAL User Volume labels ('n' varies from 1 - 9)
*	+-------+
*	| HDR1	| <- First File Header Label
*	+-------+
*	| HDR2	| <- Second File Header Label
*	+-------+
*	|(HDRn)	| <- OPTIONAL File Header Labels ('n' varies 3-9)
*	+-------+
*	|(UHLa)	| <- OPTIONAL User File Header Labels (quantity unspecified)
*	+-------+
*	|  tm	| <- Tape Mark
*	+-------+
*	|	|
*	| DATA  | <- 'n' Data blocks... of first file
*	|	|
*	+-------+
*	|  tm	| <- Tape Mark
*	+-------+
*	| EOF1	| <- First End of File Label
*	+-------+
*	| EOF2	| <- Second End of File Label
*	+-------+
*	|(EOFn)	| <- OPTIONAL End of File Labels (n ~ 3 thru 9)
*	+-------+
*	|(UTLn)	| <- OPTIONAL User Trailer Labels
*	+-------+
*	|  tm   | <- Tape Mark
*	+-------+
*	| HDR1	| <- First File Header Label
*	+-------+
*	| HDR2	| <- Second File Header Label
*	+-------+
*	|(HDRn)	| <- OPTIONAL File Header Labels ('n' varies 3-9)
*	+-------+
*	|(UHLa)	| <- OPTIONAL User File Header Labels (number undefined)
*	+-------+
*	|  tm   | <- Tape Mark
*	+-------+
*	|	|
*	| DATA  | <- 'n' Data blocks... of next file
*	|	|
*	+-------+
*	\   t 	\+------+------+--------+--------+----+------+-- - - +----+----+
*	 \   m   | EOF1 | EOF2 | (EOFn) | (UTLn) | tm | HDR1 | .etc. | tm | tm |
*	  +------+------+------+--------+--------+----+------+ -- -- +----+----+
*/
/**/
*
*
*+--> VOL1 - LABEL FORMAT - ANSI VERSION 3		(1st 37 of 80 bytes)
*     ----
*	     Identifies the volume & supplies volume security information
*
*		    1		        2		    3		  3
* 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 
*+-----+-+-----------+-+---------------------------------------------------+
*|     | |           | |                                                   |
*| VOL |1| vol id    | | 	reserved by ANSI  (spaces)		   |
*|     | |           | |                                                   |
*+-----+-+-----------+-+---------------------------------------------------+
*   ^   ^    ^        ^
*   !   !    !        !
*   !   !    !        \-> Accessibility / Volume security
*   !   !    !		  Space on output, field ignored on input.
*   !   !    !
*   !   !    \-> Volume Identifier - user specifiable "a"characters
*   !   !	 Output default = Ultrix, input content displayed on request
*   !   !
*   !   \-> Label Number - the constant 1	(verified on volume read)
*   !
*   \-> Label Identifier - the constant VOL	(verified on volume read)
*
*
*+--> VOL1 - LABEL FORMAT (cont)			(LAST 43 of 80 bytes)
*     ----
*
* 3   4			  5   5				7 8
* 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 ........................9 0
*+---------------------------+---------------------------+-+
*|                           |				 | |
*|  Owner  ID                | reserved by ANSI (spaces) |3|
*|                           |				 | |
*+---------------------------+---------------------------+-+
*	^						  ^
*	!						  !
*	!			   Label Standard Version /
*	!			   The constant 3 for ANSI version 3 volumes
*	!
*	\--> User defined "a"characters on output  (default = spaces)
*	     Input content displayed if requested
*
*	If present, User Volume Labels (UVL1 thru UVL9) are
*	ignored by the LTF.
*
*			*-*  NOTE  *-*
*			     ----
*	Some systems use bytes 38-40 to contain implementation
*	specific information. If not an Ultrix volume, this field
*	is not utilized.
*/
/**/
/*+--> VOL1 - LABEL FORMAT - ANSI VERSION 4		(1st 37 of 80 bytes)
*      ----
*
*	Identifies the volume & supplies volume security information
*
*		    1		        2		    3		  3
* 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 
*+-----+-+-----------+-+-------------------------+-------------------------+
*|     | |           | |                         |                         |
*| VOL |1| vol id    | | reserved by ANSI(spaces)| Implementation ID       |	
*|     | |           | |                         |                         |
*+-----+-+-----------+-+---------------------------------------------------+
*   ^   ^    ^        ^				    ^
*   !   !    !        !				    !
*   !   !    !        !				    \--> Output = DECULTRIXnnnn
*   !   !    !        !			"a"characters - nnnn <- digits 0000 thru
*   !	!    !	      !			9999 which serve to identify the version
*   !   !    !        !			of the LTF which created this volume.
*   !   !    !        !			(on input, content displayed on request)
*   !   !    !	      !
*   !   !    !        \-> Accessibility / Volume security
*   !   !    !	  	  Space on output, ignored on input.
*   !   !    !
*   !   !    \-> Volume Identifier - user specifiable "a"characters
*   !   !	 Output default = Ultrix, input content displayed on request
*   !   !
*   !   \-> Label Number - the constant 1	(verified on volume read)
*   !
*   \-> Label Identifier - the constant VOL	(verified on volume read)
*
*
*+--> VOL1 - LABEL FORMAT	(cont)			(LAST 43 of 80 bytes)
*     ----
*
* 3   4			  5   5				7 8
* 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 ........................9 0
*+---------------------------+---------------------------+-+
*|                           |				 | |
*|  Owner  ID                | reserved by ANSI (spaces) |4|
*|                           |				 | |
*+---------------------------+---------------------------+-+
*	^						  ^
*	!						  !
*	!			   Label Standard Version /
*	!			   The constant 4 for ANSI version 4 volumes
*	!
*	\--> User defined "a"characters on output. (default = spaces)
*	     Input content displayed if requested
*
*			*-*  NOTE  *-*
*			     ----
*	If present, VOL2 thru VOL9 labels are ignored by the LTF.
*	If present, User Volume labels (UVL1 thru UVL9) are
*	also ignored by the LTF.
*/
/**/
/*+--> HDR1 - LABEL FORMAT - ANSI VERSION 3/4	(1st 39 of 80 bytes)
*      ----
*
*	File header label  HDR1  Identifies and describes the file
*
*			*-*  NOTE  *-*
*			     ----
*	Information in this label is limited to "a"characters only.
*
*		    1		        2		    3		3     3
* 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
*+-----+-+---------------------------------+-----------+-------+-------+-------+
*|     | |				   | file      | file  | file  | gen   |
*| HDR |1|	file id			   |  set      |  sec  |  seq  | num   |
*|     | |				   |   id      |   num |   num |       |
*+-----+-+---------------------------------+-----------+-------+-------+-------+
*   ^   ^    ^					^	  ^	  ^	  ^
*   !   !    !					!	  !	  !	  !
*   !   !    !					!	  !	  !	  /
*   !   !    !					!	  !	  !	0001 on
*   !   !    !					!	  !	  !	output
*   !   !    !					!	  !	  !	ignored 
*   !   !    !					!	  !	  !	on input
*   !   !    !					!	  !	  !
*   !   !    !					!	  !	  \-> Starts at
*   !   !    !					!	  !	        0001 
*   !   !    !					!	  !	   incremented
*   !   !    !					!	  !	   once for each
*   !   !    !					!	  !	   file on the 
*   !   !    !					!	  !	   volume 
*   !   !    !					!	  !
*   !   !    !					!	  \-> The constant 1
*   !   !    !					!	      on output
*   !   !    !					!	      ignored on input
*   !   !    !					!
*   !   !    !					\-> Matches VOL1 label of the
*   !   !    !					    first volume (in a set)
*   !   !    !
*   !   !    \-> Interchange ("a"character) file name
*   !   !
*   !   \->  The constant 1
*   !
*   \-> The constant  HDR
*/
/**/
/*+--> HDR1 - LABEL FORMAT (cont)  ANSI VERSION 3/4  (LAST 41 of 80 bytes)
*      ----
*
*	File header label  HDR1	Identifies and describes the file
*
*
* 4		      5			  6		      7	      7       8
* 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 ..... 0
*+---+-----------+-----------+-+-----------+-------------------------+---------+
*|gen| creation  |expiration | | block	   |  implementation	     | ANSI    |
*|ver|  date	 | date      | |  count    |  identifier     	     |reserved |
*|num|		 |	     | |	   |        		     |(spaces) |
*+---+-----------+-----------+-+-----------+-------------------------+---------+
*  ^     ^		^     ^     ^		^
*  !	 !		!     !	    !		!
*  !	 !		!     !	    !		\-> "a"characters. DECULTRIXnnnn
*  !	 !		!     !	    !	on output. nnnn <- digits 0000 thru 9999
*  !	 !		!     !	    !	which serve to identify the version of
*  !	 !		!     !	    !	the LTF which created this file.
*  !	 !		!     !	    !	(input content displayed on request)
*  !	 !		!     !	    !
*  !	 !		!     !	    \-> Always 000000 for  HDR1
*  !	 !		!     !
*  !	 !		!     \-> File security. Space on output,
*  !	 !		!    	  ignored on input
*  !	 !		! 
*  !	 !		\-> Julian date at which time the file may be
*  !	 !		    overwritten. (differs for ANSI version 3/4 -
*  !	 !		    see appropriate ANSI standard)
*  !	 !
*  !	 \-> Julian date of file creation (differs for ANSI version 3/4
*  !	     see appropriate ANSI standard)
*  !
*  \-> The constant 00 on output, ignored on input
*/
/**/
/*+--> HDR2 - LABEL FORMAT - ANSI VERSION 3/4	(80 bytes)
*      ----
*
*	File header label  HDR2	 describes the record format,
*	maximum record size, and maximum block length of the file.
*
*			*-*  NOTE  *-*
*			     ----
*	Information in this label is limited to "a"characters, except
*	for the content of bytes 16 thru 50 if volume is ANSI version 4.
*
*		    1	 	1		            5     5	      8
* 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 ......................... 0 1 2 3 ......... 0
*+-----+-+-+---------+---------+-----------------------------+---+-------------+
*|     | | | block   | record  |    SYSTEM		     |buf|    ANSI     |
*| HDR |2| | length  | length  |	DEPENDANT USE	     |off|  reserved   |
*|     | | |	     |	       | (see below for Ultrix use)  |set|  (spaces)   |
*+-----+-+-+---------+---------+-----------------------------+---+-------------+
*   ^   ^ ^    ^	^				       ^
*   !   ! !    !	!				       !
*   !   ! !    !	!			 Buffer Offset /
*   !   ! !    !	!		  Specifies the number of bytes of any
*   !   ! !    !	!		  additional field inserted before the
*   !   ! !    !        !		  first record in a data block by the
*   !   ! !    !        !		  implementation. Content of any field
*   !   ! !    !	!		  defined is ignored on input.
*   !   ! !    !        !		  Reserved for future use by the LTF.
*   !   ! !    !        !
*   !	! !    !	!_ Record length (5 digit decimal number) definition
*   !   ! !    !	!  for the supported record types:
*   !   ! !    !        !
*   !   ! !    !        \-> 'F' format - Specifies length of each data record
*   !   ! !    !            'D' format - Specifies maximum length of a data
*   !   ! !    !            		 record length including the count field
*   !   ! !    !	    'S' format - Specifies maximum length of a data
*   !   ! !    !	   		 record NOT including the segment 
*   !	! !    !			 control bytes. A value of 00000 implies
*   !   ! !    !	    		 the maximum record length may exceed
*   !   ! !    !	     		 99999 bytes.
*   !   ! !    !
*   !   ! !    \-> Block length specifies the maximum allowed length of a data
*   !   ! !	   block in the file. (default = 2048 bytes)
*   !   ! !
*   !   ! \-> Record Format. Specifies the record structure as follows:
*   !   !	F = Fixed-length records 
*   !   !	D = Variable-length records
*   !   !	S = Segmented/Spanned records
*   !   !
*   !   \-> The constant 2
*   !
*   \-> The constant  HDR
*/
/**/
/*+--> HDR2 (cont)	Label Format for Ultrix use of bytes 16-50
*      ----		    (system dependant information)
*
*			*-*  NOTE  *-*
*			     ----
*  Content of this field (16-50) is ignored if not an Ultrix volume.
*
* 1	  2		      3		    3	  4		      5
* 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
*+-----------+-------+-------+-------+-----+-+-------------------+-+-+-+
*| file      | file  | owner | link  | true| | file size	 | | | |
*|  status   | owner | group | id    |file | | in bytes on	 | | | |
*| (st_mode) |  id   | numbr | seq # | type| | output		 | | | |
*+-----------+-------+-------+-------+-----+-+-------------------+-+-+-+
*	^ 	^	^	^        ^  ^   ^		  ^ ^  \->Ultrix
*	!	!	!	!        !  !   !		  ! !      rsrvd
*	!	!	!	!        !  !   !	    HDR <-/ \-> EOF
*	!	!	!	!        !  !   !  Bytes 48 and 49 define the
*	!	!	!	!        !  !   !  last HDR and/or EOF label
*	!	!	!	!        !  !   !  containing Ultrix path name
*	!	!	!	!        !  !   !  characters for this file.
*	!	!	!	!        !  !   !  Byte 48 = digit 3 thru 9
*	!	!	!	!        !  !   !  Byte 49 = 0 = no path name
*	!	!	!	!        !  !   !  component in EOF labels,
*	!	!	!	!        !  !   !  else digit 3 thru 9
*	!	!	!	!        !  !   !
*	!	!	!	!        !  !	\-> If known, else spaces
*	!	!	!	!        !  !
*	!	!	!	!        !  \-> Carriage control to be applied
*	!	!	!	!        !  	to the records of the file.
*	!	!	!	!        !  	A = 1st byte of record contains
*	!	!	!	!        !  	    FORTRAN carriage cntrl chctr
*	!	!	!	!        !  	M = Record contains all required
*	!	!	!	!        !  	    forms control
*	!	!	!	!        !     | |= Space = Insert  crlf
*	!	!	!	!        !  	    between records (Intention
*	!	!	!	!        !  	    is to be compatible with
*	!	!	!	!        !  	    other systems that use this
*	!	!	!	!        !  	    convention)
*	!	!	!	!        !
*	!	!	!	!        \-> Three character representation of
*	!	!	!	!	     the Ultrix disk file type.
*	!	!	!	!	     (see below)
*	!	!	!	!
*	!	!	!	\-> Zeroes if file is not a hard link to another
*	!	!	!	    file on this volume, else contains the file
*	!	!	!	    sequence number of the file this file is
*	!	!	!	    linked to.
*	!	!	!
*	!	!	\-> Group number (gid) of file owner
*	!	!
*	!	\-> File owner ID (uid)
*	!
*	\-> Ultrix file status returned by a "stat" call [st_mode p/o STAT(2)]
*/
/**/
*	-------------------------------------------------
*	Ultrix disk file type described by HDR2  bp 34-36
*	-------------------------------------------------
*
*	adf	- ASCII data file
*	asc	- ASCII text
*	arc	- Archive
*	arl	- Archive Random Library
*	asm	- Assembly language text
*	bin	- Binary data
*	bsp	- Block special file
*	cc 	- 'C' program text
*	cmp	- Compressed text file
*	com	- Command text file
*	cpi	- CPIO file
*	csp	- Character special file
*	dir	- Directory
*	eng	- English text
*	exe	- Executable binary
*	for	- Fortran program source
*	fuf	- Fortran Unformatted File
*	nul	- Null/empty file
*	oar	- Old Archive
*	pip	- Named pipe
*	rof	- roff, nroff, troff, or eqn input text
*	soc	- Socket
*	sym	- Symbolic Link
*	???	- Content of file not determined
*
*
*	-------------------------------------------------	
*	Record formats defined and described by HDR2 bp 4
*	-------------------------------------------------	
*
*	'F' -	Fixed length records. All records in the file have the
*		same length. Minimum length is at least one byte,
*		maximum length shall not exceed the assigned block length
*		(less the length of any Buffer Offset Field). At least 1 byte
*		of the record must NOT be the circumflex padding character.
*
*
*	 |--  max block length --|
*	 |-   max record length -|
*	 | actual  record length |
*	 v			 v
*	+-------------------------+-------------------------+
*	| fixed length record 1	  | fixed length record  n  |
*	+-------------------------+-------------------------+
*
*			*-*  NOTE  *-*
*			     ----
*		Records smaller than the block length
*		will be padded by addition of the
*		circumflex character.
*/
/**/
*
*	--------------------------------------------	
*	Record formats defined and described by HDR2  (continued)
*	--------------------------------------------	
*
*	'D' -	Variable length records. ie. The records in a file may be of
*		different lengths.
*
*	A variable length record consists of a Record Control Word (RCW)
*	of 4 "digit" characters which expresses the sum of the lengths of
*	the record AND the RCW as a decimal number.
*
*
*  |------------------------ max block length --------------------------|
*  |									|
*  |---    record length one ---|---  second record length -------------|
*  v     		 	v 					|
* +----+-------------------------+----+---------------------------------+
* |1234| variable length record 1|4321|  variable length record  n	|
* +----+-------------------------+----+---------------------------------+
*   ^		^		    ^		^
*   !		!		    !		!
*   !		!		    !		\-> Data for record 'n'
*   !		!		    !
*   !		!		    \-> Record control word for record 'n'
*   !	        !
*   !	        \-> Data for first variable length record
*   !
*   \-> First record control word
*
*	A variable length record may not exceed the assigned block length,
*	minus the length of the Buffer Offset Field and minus the length
*	of the record control word. Additionally, a maximum record length
*	shall be assigned to the file. The length of any record in the
*	file shall not exceed this value.
*
*	The minimum length of a variable length record may be zero.
*/
**/
*
*	--------------------------------------------	
*	Record formats defined and described by HDR2  (concluded)
*	--------------------------------------------	
*
*	'S' -	Segmented/Spanned records.
*
*		(ANSI version 4 refers to records of the following type
*		as "segmented" while ANSI version 3 refers to the same
*		records structure as "spanned").
*
*	The LTF will use this format for TEXT files containing character 
*	string sequences of greater than 512 bytes without an imbedded
*	cr/lf or newline character.
*
*	A segmented record consists of a Segment Control Word (SCW) of 5
*	characters. The first character of the SCW is the Segment Indicator.
*	This value has one of the following values and associated meaning.
*
*		Character		DEFINITION
*		--------	-----------------------------------------------
*		  0		Record begins and ends in this segment
*		  1		Record begins but does not end in this segment
*		  2		Record nether begins nor ends in this segment
*		  3		Record ends but does not begin in this segment
*
*	The last four characters of the SCW express, in decimal, the length
*	of the current record segment NOT including the length of the SCW.
*
*  |----- max block length -------|
*  |				  |
*  |     |-- max record length  --|
*  v     v		 	  v
* +-----+--------------------------+-----+------------------------------+
* |11234| Sart spanned record	   |34321|  End segment of the		|
* |	|			   |	 |  spanned record		|	
* +-----+--------------------------+-----+------------------------------+
*   ^		^		    ^		^
*   !		!		    !		!
*   !		!		    !		\-> LAST 4321 Bytes of record
*   !		!		    !
*   !		!		    \-> Segment control word
*   !	        !
*   !	        \-> First 1234 Bytes of data for segmented record
*   !
*   \-> Segment control word
*
*	A segmented record may not exceed the assigned block length,
*	minus the length of the Buffer Offset Field and minus the length
*	of the segment control word. Additionally, a maximum record length
*	shall be assigned to the file. The length of any record in the
*	file shall not exceed this value.
*
*	The minimum length of a segmented record may be zero.
*/
/**/
/*+--> HDR3 -	OPTIONAL file header label.		(1st 44 bytes of 80)
*      ----
*
*  Presence & content ignored if the volume was not created by an Ultrix system.
*  Content limited to "a"chatacters if VOL1 bp 80 = 3.
*
*		    1	                2		    3		     4
* 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 .............. 4
*+-----+-+-------------------+-------------------+----------------------------+
*|     | | time of last      | file  owner	 |			      |
*| HDR |3|  change to file   |   name		 |	hostname	      |
*|     | |		     |			 |			      |
*+-----+-+-------------------+-------------------+----------------------------+
*   ^   ^	^		  ^			^
*   !   !	!		  !			!
*   !   !	!		  !			\-> If this file was
*   !   !	!		  !	written by an Ultrix system, this field
*   !   !	!		  !	will contain the name of that system.
*   !   !	!		  !	(truncated to 20 of possible 23 chctrs)
*   !   !	!		  !     Displayed on user request, ignored if
*   !   !	!		  !	not an Ultrix created volume.
*   !   !	!		  !
*   !   !	!		  \-> Printable ASCII characters indentifying
*   !   !	!		      the owner of this file.
*   !	!	!
*   !   !	\-> Ultrix standard time format defining the time of the last
*   !   !	    change made to this file.
*   !   !
*   !   \-> The constant 3
*   !
*   \-> The constant HDR
*/
/**/
/*+--> HDR3 - LABEL FORMAT (cont)  ANSI VERSION 3/4  (LAST 36 of 80 bytes)
*      ----
*
*
* 4	    5			6		    7			8 
* 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
*+-----------------------------------------------------------------------+
*|									 |
*|	First 36 characters of Ultrix File Path Name			 |
*|									 |
*+-----------------------------------------------------------------------+
*	^
*	!
*	\-> This field, and if required, the fields in HDR4 thru HDR7
*	    contain the complete Ultrix Path Name of this file. If further
*	    characters are required to define the path name, OPTIONAL EOF
*	    labels EOF3 thru EOF9 will contain the remainder of the path
*	    name. A space character terminates the path name. 
*	    Only as many HDRx, and EOFx, labels are used to complete the
*	    path name as are required. See also HDR2 bytes 48 & 49.
*	    (a path name may be MAXPATHLEN number of characters)
*
*				*-*  NOTE  *-*
*			     	     ----
*		Imbedded spaces in the path name are not permitted.
*/
/**/
/*+--> HDR4 thru HDR9	 LABEL FORMATS - ANSI VERSION 3/4	(80 bytes)
*      ----      ---	
*
*	OPTIONAL  ANSI  file header labels used by the LTF to express some
*	fractional component of the file's complete path name.
*
*				*-*  NOTE  *-*
*				     ----
*		The presence and content of these labels will be ignored
*		if the volume was not created by an Ultrix system.
*
*							           8
* 1 2 3 4 5 ...................................................... 0
*+-----+-+----------------------------------------------------------+
*|     | |	nth  76 character component of an Ultrix path name  |
*| HDR |n|	Limited to "a" characters if VOL1 bp 80 = 3.	    |
*|     | |							    |
*+-----+-+----------------------------------------------------------+
*   ^   ^	^
*   !   !       !
*   !   !       \-> Left-justified, unused character positions in the final
*   !   !	    label used are space filled.
*   !   !
*   !   !                 	  *-*  NOTE  *-*
*   !   !			       ----
*   !   !                 The above convention implies that an Ultrix
*   !   !                 path name may not contain IMBEDDED spaces.
*   !   !
*   !   \-> The character identifying the label. ie. 4 thru 9.
*   !
*   \-> The constant  HDR
*/
/**/
/*+--> UHLa -	OPTIONAL  ANSI VERSION 3/4			(80 bytes)
*      ----		User File Header Labels		
*
*		Not supported by the LTF. They are not output & if present
*		on an input volume, their presence & content is ignored.
*
*							       8
* 1 2 3 4 5 .................................................. 0
*+-----+-+------------------------------------------------------+
*|     | |							|
*| UHL |a|		application dependant			|
*|     | |							|
*+-----+-+------------------------------------------------------+
*   ^   ^
*   !   !
*   !   \-> Any valid "a"character identifying this label
*   !
*   \-> The constant  UHL
*/
/**/
/*+--> EOV1 - LABEL FORMAT - ANSI VERSION 3/4	(80 bytes)
*      ----
*
*	First End-Of-Volume label.
*
*	If read before the first  End-Of-File label  (EOF1) this
*	label indicates that the file is continued on the next volume.
*
*			*-*  NOTE  *-*
*			     ----
*	For valid hardware and software technical limitations,
*	the Ultrix LTF does not support multi-volume file sets
*	and therefore does not output these labels.
*
*	If present on an input volume, they shall be interpreted
*	as indicating an error condition due to the fact that
*	some portion of the file will not be processed.
*
*	The fields of this label shall be identical to the contents of
*	the corresponding fields in the First File Header Label (HDR1)
*	with the exceptions noted below.
*
*
* The following diagrams of  EOV  labels is intended for
* reference purposes only.
*
*		    1			   5           6		8
* 1 2 3 4 5 6 7 8 9 0 .....................4 5 6 7 8 9 0 1 ............ 0
*+-----+-+----------------------------------+-----------+----------------+
*|     | |                                  | block     | same as the	 |
*| EOV |1| same as the corresponding fields | count     | corresponding	 |	
*|     | | 	in HDR1			    |	        | fields in HDR1 |
*+-----+-+----------------------------------+-----------+----------------+
*   ^   ^					^
*   !   !					!
*   !   !					\-> Six-digit decimal number
*   !   !					    specifying the number of
*   !   !					    blocks in which the file
*   !   !					    was recorded.
*   !   !
*   !   \-> The constant  1
*   !
*   \-> The constant  EOV
*/
/**/
/*+--> EOV2 - LABEL FORMAT - ANSI VERSION 3/4			(80 bytes)
*      ----
*
*	Second End-Of-Volume label.
*
*	The fields of this label shall be identical to the contents of
*	the corresponding fields in the Second File Header Label (HDR2)
*	with the exceptions noted below.
*
*			*-*  NOTE  *-*
*			     ----
*		The LTF does not support the use of EOV
*		labels. See NOTES above for  EOV1.
*
*		    1							  8
* 1 2 3 4 5 6 7 8 9 0 ................................................... 0
*+-----+-+-----------------------------------------------------------------+
*|     | |								   |
*| EOV |2| same as the corresponding fields in HDR2			   |
*|     | |								   |
*+-----+-+-----------------------------------------------------------------+
*   ^   ^
*   !   !
*   !   \-> The constant 2
*   !
*   \-> The constant EOV
*
*			*-*  NOTE  *-*
*			     ----
*	OPTIONAL End-Of-Volume labels 3 thru 9  (EOV3 - EOV9) are not
*	used by the LTF. If present on an input volume, their presence
*	and content is ignored by the LTf. See NOTES above for EOV1.
*/
/**/
/*+--> EOF1 - LABEL FORMAT - ANSI VERSION 3/4			(80 bytes)
*      ----
*
*	First End-Of-File label.
*
*	The fields of this label shall be identical to the contents of
*	the corresponding fields in the First File Header Label (HDR1)
*	with the exceptions noted below.
*
*
*		    1			   5 5         6		  8
* 1 2 3 4 5 6 7 8 9 0 .....................4 5 6 7 8 9 0 1 .............. 0
*+-----+-+----------------------------------+-----------+------------------+
*|     | |                                  | block     | same as the	   |
*| EOF |1| same as the corresponding fields | count	| corresponding	   |	
*|     | | 	in HDR1			    |		| fields in HDR1   |
*+-----+-+----------------------------------+-----------+------------------+
*   ^   ^					^
*   !   !					!
*   !   !					\-> Six-digit decimal number
*   !   !			specifying the number of blocks in which the
*   !   !			file was recorded. Value is used to verify
*   !	!			that the correct amount of data was read for
*   !	!			this file.
*   !   !
*   !   \-> The constant  1
*   !
*   \-> The constant  EOF
*/
/*/*
/*+--> EOF2 - LABEL FORMAT - ANSI VERSION 3/4			(80 bytes)
*      ----
*
*	Second End-Of-File label.
*
*	The fields of this label shall be identical to the contents of
*	the corresponding fields in the Second File Header Label (HDR2)
*	with the exceptions noted below.
*
*
*		    1							  8
* 1 2 3 4 5 6 7 8 9 0 ................................................... 0
*+-----+-+-----------------------------------------------------------------+
*|     | |								   |
*| EOF |2| same as the corresponding fields in HDR2			   |
*|     | |								   |
*+-----+-+-----------------------------------------------------------------+
*   ^   ^
*   !   !
*   !   \-> The constant 2
*   !
*   \-> The constant EOF
*
*/
/*/*
/*+--> EOF3 - EOF9  OPTIONAL END OF FILE LABELS - ANSI VERSION 3/4  (80 bytes)
*      ----   ---
*
*	OPTIONAL  ANSI  end of file labels used by the LTF to express some
*	fractional component of the file's complete path name.
*
*				*-*  NOTE  *-*
*				     ----
*		The presence and content of these labels will be ignored
*		if the volume was not created by an Ultrix system.
*
*							           8
* 1 2 3 4 5 ...................................................... 0
*+-----+-+----------------------------------------------------------+
*|     | |	nth  76 character component of an Ultrix path name  |
*| EOF |n|	Limited to "a" characters if VOL1 bp 80 = 3.	    |
*|     | |							    |
*+-----+-+----------------------------------------------------------+
*   ^   ^	^
*   !   !       !
*   !   !       \-> Left-justified, unused character positions in the final
*   !   !	    label used are space filled.
*   !   !
*   !   !                 	  *-*  NOTE  *-*
*   !   !			       ----
*   !   !                 The above convention implies that an Ultrix
*   !   !                 path name may not contain IMBEDDED spaces.
*   !   !
*   !   \-> The character identifying the label. ie. 4 thru 9.
*   !
*   \-> The constant  EOF
*/
/**/
/*+-->	UTLa - UTLa   OPTIONAL User File Trailer Labels		(80 bytes)
*	---    ----		ANSI VERSION 3/4
*
*	A user File Trailer Label Set is optional. If present on an
*	input volume, their presence and content is ignored by the LTF.
*	User File Trailer Labels are not output by the LTF.
*
*	If present, they take the form described below. Their use is
*	application dependant but not supported by the LTF.
*
*
*		    1						  8
* 1 2 3 4 5 6 7 8 9 0 ........................................... 0
*+-----+-+---------------------------------------------------------+
*|     | |							   |
*| UTL |a| reserved for application use  - Not specified	   | 
*|     | |							   |
*+-----+-+---------------------------------------------------------+
*   ^   ^
*   !   !
*   !   \-> Any valid "a"character
*   !
*   \-> The constant  UTL
*/