{
{ COMMON DECK BAHSKP }
{}
{   The purpose of this request is to reposition a file which was created}
{ sequentially and opened for amc$record access.}
{   This request does not cause data movement to or from a user}
{ working_storage_area.}
{   For a file associated with tape, the file and volume are terminated}
{ according to convention, if the preceding operation was an output to the}
{ tape. If the label_type is amc$labelled(*), the standard ANSI EOF label}
{ and two tapemarks are written; then the tape volume is positioned by the}
{ access method prior to the EOF label. For an amc$unlabelled file, two}
{ tapemarks are written to terminate the file and volume; then the volume}
{ is positioned by the access method prior to the two tapemarks.}
{   The following table indicates which positioning options are available}
{ for a file opened with amc$record access_level: }
{}
{  |--------------------------------------------------------------------|  }
{  |          Block_type ->   |  System_specified  ||  User_specified   |  }
{  |                          |____________________||___________________|  }
{  |          Record_type ->  | V | F | U | S | D  || V | F | U | S | D |  }
{  |                          |   |   |   |(*)|(*) ||   |   |   |(*)|(*)|  }
{  |--------------------------------------------------------------------|  }
{  |  Forward  N records      | x | x | 2 | 1 | 1  || x | x | x | x | x |  }
{  |  Backward N records      | x | x | 2 | 1 | 1  || x | x | x | 2 | 2 |  }
{  |  Forward  N partitions   | x | 2 | 2 | 1 | 1  || x | 2 | 2 | 2 | 2 |  }
{  |  Backward N partitions   | x | 2 | 2 | 1 | 1  || x | 2 | 2 | 2 | 2 |  }
{  |--------------------------------------------------------------------|  }
{}
{   Notes on preceding table: }
{     1. This combination of record_type and block_type is not supported.}
{     2. This is an undefined operation and abnormal status will be returned.}
{}
{   The final position of the file, assuming no boundary condition was}
{ encountered before the COUNT was exhausted, is as follows:}
{}
{   Skip of UNIT = record:
{}
{     . If the file is positioned before RECORD N and}
{       a forward skip of M RECORDs is performed, the final position will}
{       be at the end of RECORD N+M-1.}
{     . If the file is positioned within or at the end of RECORD N and}
{       a forward skip of M RECORDs is performed, the final position will}
{       be at the end of RECORD N+M.}
{     . If the file is positioned before RECORD N and}
{       a backward skip of M RECORDs is performed, the final position}
{       will be at the end of RECORD N-M-1.}
{     . If the file is positioned within or at the end of RECORD N and}
{       a backward skip of M RECORDs is performed, the final position}
{       will be at the end of RECORD N-M-1.}
{}
{   Skip of UNIT = partition:
{}
{     . If the file is positioned somewhere within PARTITION N and}
{       a forward skip of M PARTITIONs is performed, the final position will}
{       be at the beginning of PARTITION N+M. A count of zero (M=0) is}
{       treated the same as if a count of one had been given (M=1).}
{     . If the file is positioned somewhere within PARTITION N and}
{       a backward skip of M PARTITIONs is performed, the final position}
{       will be at the beginning of PARTITION N-M.}
{     . If N amp$write_end_partition requests have been performed on a}
{       sequential file and the file is positioned after the Nth partition}
{       delimiter, then by definition the file is positioned within}
{       partition N+1. Therefore from this position (EOI), a backward skip}
{       of one partition would position the file at the beginning of}
{       partition N.}
{}
{   If a boundary condition is detected before the skip COUNT is
{ exhausted, then control will return to the caller with an abnormal}
{ STATUS. The actual number of UNITs skipped in this case may be}
{ determined by subtracting the residual_skip_count available via the}
{ amp$fetch_access_information request from the original skip COUNT.}
{ When a skip forward by records encounters a partition boundary condition,}
{ the final position is beyond the boundary, i.e. at the beginning of}
{ the next partition.}
{ When a skip backward by records encounters a partition boundary condition,}
{ the final position is prior to the boundary, i.e. at the end of the}
{ preceding partition.}
{}
{}
{ Boundary conditions: }
{}
{ .   Skip forward by records encounters partition/EOI.
{}
{ .   Skip forward by partitions encounters EOI.
{}
{ .   Skip backward by records encounters partition/BOI.
{}
{ .   Skip backward by partitions encounters BOI.
{}
{
{     BAP$SKIP (FILE_IDENTIFIER, CALL_BLOCK, LAYER_NUMBER, STATUS)
{
{ FILE_IDENTIFIER: (input) This parameter specifies the file access
{       identifier established when the file was opened.
{
{ CALL_BLOCK: (input, output) This parameter is a record specifying
{       values controlling the type of skip and returning a resultant
{       file position.
{
{     OPERATION: (input) This field identifies a call to this request
{           as a skip request.
{
{
{     DIRECTION: (input) This field specifies the direction of the
{           positioning operation.  Options include:
{             Forward
{             Backward
{
{     UNIT: (input) This field specifies the type of unit to be
{           skipped.  Options include:
{             Record
{             Partition
{
{     COUNT: (input) This field specifies the number of units to skip.}
{
{     FILE_POSITION: (output) This field specifies the position of the}
{           file following the request.}
{           Possible file positions resulting from a forward skip are: }
{             . amc$eor - skipping records only}
{             . amc$bop - skipping records/partitions only}
{             . amc$eoi - any UNIT}
{           Possible file positions resulting from a backward skip are: }
{             . amc$eor - skipping records only}
{             . amc$bop - skipping partitions only}
{             . amc$eop - skipping records only}
{             . amc$boi - any UNIT}
{
{ LAYER_NUMBER: (input) This parameter specifies the index into the
{   fap control information for this layer.
{
{ STATUS: (output) This parameter specifies the request status.
{       CONDITION:  ame$ring_validation_error,
{                   ame$conflicting_access_level,
{                   ame$conflicting_fo,
{                   ame$improper_file_id,
{                   ame$improper_input_attempt,
{                   ame$improper_skip_unit,
{                   ame$improper_skip_direction,
{                   ame$improper_skip_count,
{                   ame$skip_requires_read_perm,
{                   ame$unsupported_skip,
{                   ame$skip_encountered_boi,
{                   ame$skip_encountered_bop,
{                   ame$skip_encountered_eop,
{                   ame$skip_encountered_eoi,
{                   ame$unrecovered_write_error,
{                   ame$uncertain_tape_position.
{       IDENTIFIER: amc$access_method_id.
{
