
  PROCEDURE [INLINE] pfp$get_rem_media_volume_list
    (    p_fmd: {^input} ^pft$fmd;
         p_volume_list: {output^} ^rmt$volume_list;
     VAR status: ost$status);

?? PUSH (LISTEXT := ON) ??
?? RIGHT := 110 ??

    VAR
      volume_list_index: integer,
      p_stored_tape_fmd: ^dmt$stored_tape_fmd,
      p_stored_tape_fmd_header: ^dmt$stored_tape_fmd_header,
      p_stored_tape_volume_list: ^rmt$volume_list;

    status.normal := TRUE;

    IF (p_volume_list <> NIL) THEN
      p_stored_tape_fmd := p_fmd;
      RESET p_stored_tape_fmd;

      NEXT p_stored_tape_fmd_header IN p_stored_tape_fmd;
      IF (p_stored_tape_fmd_header <> NIL)
{   } AND (p_stored_tape_fmd_header^.version = dmc$stored_tape_fmd_version_1) THEN
        NEXT p_stored_tape_volume_list: [1 .. UPPERBOUND (p_volume_list^)] IN p_stored_tape_fmd;
        IF p_stored_tape_volume_list <> NIL THEN
          FOR volume_list_index := 1 TO UPPERBOUND (p_volume_list^) DO
            p_volume_list^ [volume_list_index].external_vsn :=
                  p_stored_tape_volume_list^ [volume_list_index].external_vsn;
            p_volume_list^ [volume_list_index].recorded_vsn :=
                  p_stored_tape_volume_list^ [volume_list_index].recorded_vsn;
          FOREND;
        ELSE
          FOR volume_list_index := 1 TO UPPERBOUND (p_volume_list^) DO
            p_volume_list^ [volume_list_index].external_vsn := rmc$unspecified_vsn;
            p_volume_list^ [volume_list_index].recorded_vsn := rmc$unspecified_vsn;
          FOREND;
        IFEND;
      ELSE
        FOR volume_list_index := 1 TO UPPERBOUND (p_volume_list^) DO
          p_volume_list^ [volume_list_index].external_vsn := rmc$unspecified_vsn;
          p_volume_list^ [volume_list_index].recorded_vsn := rmc$unspecified_vsn;
        FOREND;
      IFEND;
    IFEND;

  PROCEND pfp$get_rem_media_volume_list;

*copyc dmt$stored_tape_fmd
*copyc dmt$stored_tape_fmd_header
*copyc dmt$stored_tape_volume_list
*copyc ost$status
*copyc pft$fmd
*copyc rmt$volume_list
?? POP ??
