{}
{   The purpose of this request is to unpack a block header located in}
{ the user's buffer_area. The buffer_area itself may be located within}
{ a file opened with amc$segment access_level or in a space allocated}
{ by the program.}
{   This request may be used to unpack block headers built by the access}
{ method when an amc$user_specified blocked file was created using}
{ amp$put requests or using amp$pack_block_header.}
{   The file must be opened with amc$segment or amc$physical access_level}
{ and amc$user_specified block_type.}
{   This request performs a NEXT in the buffer_area sequence. When this}
{ request completes, the buffer_area variable contains a pointer to}
{ the first byte beyond the block header in the buffer. If insufficient}
{ space existed in the buffer for the block header, a NIL pointer is}
{ returned in the buffer_area variable along with abnormal status.}
{}
{       AMP$UNPACK_BLOCK_HEADER (FILE_IDENTIFIER, BUFFER_AREA, HEADER, STATUS)
{}
{ FILE_IDENTIFIER: (input) This parameter specifies the file access}
{       identifier established when the file was opened.}
{}
{ BUFFER_AREA: (input-output) This parameter specifies the location within}
{       the user buffer of the block header which is to be unpacked. This}
{       request returns the address of the first byte beyond the block}
{       header in the buffer. A NIL pointer and abnormal status are}
{       returned if a full block header was not available in the buffer.}
{       This request assumes that the block header and the block have been}
{       contiguously stored in the buffer prior to this request.}
{}
{ HEADER: (output) This parameter specifies the contents of the unpacked}
{       block header. This parameter is a record which includes the}
{       fields: }
{        Header_type - specifies the type of the block header which was}
{                      unpacked.}
{        Block_length_as_read - specifies the number of bytes in the data}
{                               block as reported by the equipment driver.}
{        Block_length_as_written - specifies the number of bytes of data}
{                                  which were originally written to the}
{                                  device in the block. If block headers}
{                                  are not recorded on the tape volume or}
{                                  if this is a mass storage file, this}
{                                  field is set equal to block_length_as_read.}
{                                  It is the user's responsibility to}
{                                  interpret any discrepancy between the}
{                                  block_length_as_written and the block_}
{                                  length_as_read.}
{        Block_number - specifies the ordinal position of this block in}
{                       the file.}
{        Unused_bit_count - specifies the number of bits in the last}
{                           byte of the block which do not contain valid}
{                           information. If block headers are not recorded}
{                           on the tape volume or if this is a mass storage}
{                           file, this field is undefined.}
{        Block_status - specifies if an error was detected while reading}
{                       the block and if so, whether or not the error}
{                       was recoverable.}
{}
{ STATUS: (output) This parameter specifies request status.}
{       CONDITION:  ame$ring_validation_error,
{       IDENTIFIER: amc$access_method_id.
{}
