?? RIGHT := 110 ??

  PROCEDURE [INLINE] dmp$get_fmd_by_index
    (    p_dfd: ^dmt$disk_file_descriptor;
         fmd_number: dmt$fmd_index;
     VAR p_fmd: ^dmt$file_medium_descriptor);

?? PUSH (LISTEXT := ON) ??

    VAR
      fmd_index: dmt$fmd_index;

    p_fmd := NIL;

{ Return NIL if the fmd_index is less than one.

    IF (fmd_number >= 1) AND (p_dfd^.p_fmd <> NIL) THEN
      p_fmd := #ADDRESS (#RING (p_dfd), #SEGMENT (p_dfd), #OFFSET (p_dfd^.p_fmd));
      fmd_index := 1;

      WHILE fmd_index < fmd_number DO
        fmd_index := fmd_index + 1;
        p_fmd := p_fmd^.p_next_fmd;
        IF p_fmd = NIL THEN
          RETURN; {----->
        ELSE
{ insure that the segment number in p_fmd is the same as the segment number in p_dfd.
          p_fmd := #ADDRESS (#RING (p_dfd), #SEGMENT (p_dfd), #OFFSET (p_fmd));
        IFEND;

      WHILEND;
    IFEND;

  PROCEND dmp$get_fmd_by_index;

*copyc dmt$disk_file_descriptor
*copyc dmt$file_medium_descriptor
*copyc dmt$fmd_index
?? POP ??
