{
{   The purpose of this request is to initialize a pointer to the virtual}
{ memory segment which was assigned by the system when the file}
{ was opened.}
{   It is necessary to obtain a pointer to the segment so that the file}
{ can be accessed as memory using machine instructions.}
{   This request returns a pointer of type cell, adaptable heap, or adaptable}
{ sequence.}
{   The access_mode specified when the file was opened determines the}
{ manner in which the virtual memory segment may be accessed.  If the file}
{ does not contain data, the access_mode must include pfc$append.  If any}
{ combination of pfc$append, pfc$modify or pfc$shorten are specified for a}
{ file, then write access is granted to the virtual memory segment.}
{   NOS/VE does not guarantee that the process segment number that is}
{ associated with the segment will be the same for each task accessing}
{ the segment; therefore process virtual addresses (PVA's) created by one}
{ task should not be used directly by another task. A linked structure that}
{ is to be shared between multiple tasks can be created by only storing the}
{ offset portion of the PVA in the structure and building a full PVA from}
{ it each time the structure is referenced.}
{   The content of the pointer variable is initialized as follows:}
{
{      amc$cell_pointer:}
{        .The byte offset portion of the PVA is set to the}
{         current_byte_address of the file.  The current_byte_address of the}
{         file will be determined based on the value specified for the}
{         private_read file attachment option for this instance of open.}
{         If true was specified, then the current_byte_address will be the}
{         position last attained by this instance of open.  If false was}
{         specified, then the current_byte_address will be the last position}
{         attained by any concurrent instances of open of this file.}
{}
{      amc$heap_pointer - pointer to adaptable heap:}
{        .The byte offset portion of the heap_pointer is set to the}
{         address of the first byte in the segment.}
{        .If the file is null in length, the LIMIT portion of the}
{         heap_pointer is set to the file_limit. The heap must be RESET}
{         by the CYBIL program.}
{        .If the file contains data the LIMIT portion of the heap_pointer}
{         is determined as follows:}
{           .If the file has an access_mode which includes pfc$read,}
{            pfc$modify or pfc$shorten but not pfc$append, the LIMIT}
{            is set to the eoi_byte_address of the file.}
{           .If the file has an access_mode which includes pfc$append,}
{            the LIMIT is set to the file_limit.}
{}
{      amc$sequence_pointer - pointer to adaptable sequence:}
{        .The byte offset portion of the sequence_pointer is set to the}
{         address of the first byte in the segment.}
{        .The NEXT portion of the sequence_pointer is set to the}
{         current_byte_address.}
{        .If the file is null in length, the LIMIT portion of the}
{         sequence_pointer is set to file_limit.}
{        .If the file contains data, the LIMIT portion of the}
{         sequence_pointer is determined as follows:}
{           .If the file has an access_mode which includes pfc$read,}
{            pfc$modify or pfc$shorten but not pfc$append, the LIMIT}
{            is set to the eoi_byte_address of the file.}
{           .If the file has an access_mode which includes pfc$append,}
{            the LIMIT is set to the file_limit.}
{
{   This request does not change the contents of the segment access file.}
{
{       AMP$GET_SEGMENT_POINTER (FILE_IDENTIFIER, POINTER_KIND,
{         SEGMENT_POINTER, STATUS)
{
{ FILE_IDENTIFIER: (input) This parameter specifies the file access
{       identifier established when the file was opened.
{
{ POINTER_KIND: (input) This parameter specifies the type of the pointer}
{       to be returned in the segment_pointer variable.}
{
{ SEGMENT_POINTER: (output) This parameter specifies a pointer to the}
{       segment associated with a file opened for segment access.}
{
{ STATUS: (output) This parameter specifies the request status.
{       CONDITION:  ame$ring_validation_error,
{                   ame$improper_file_id,
{                   ame$improper_pointer_kind,
{                   ame$read_of_empty_segment,
{                   ame$write_of_empty_segment.
{       IDENTIFIER: amc$access_method_id.
{
