?? RIGHT := 110 ??
MODULE ram$move_correction;
*copyc osd$default_pragmats
?? PUSH (LISTEXT := ON) ??
*copyc rav$corp
*copyc rav$elements
?? POP ??

*copyc rah$move_correction

  PROCEDURE [XDCL] rap$move_correction (add_package: ^SEQ ( * );
        ordinal: rat$element_index);

    VAR
      add_correction: ^SEQ ( * ),
      add_psrs: ^array [1 .. * ] of rat$psr_ident,
      correction: ^SEQ ( * ),
      psrs: ^array [1 .. * ] of rat$psr_ident;

    add_correction := #PTR (rav$elements^ [ordinal].correction_package, add_package^);
    NEXT correction: [[REP rav$elements^ [ordinal].size OF cell]] IN rav$corp.sequence_pointer;
    rav$elements^ [ordinal].correction_package := #REL (correction, rav$corp.sequence_pointer^);
    correction^ := add_correction^;
    IF rav$elements^ [ordinal].number_of_psrs > 0 THEN
      add_psrs := #PTR (rav$elements^ [ordinal].psr_info, add_package^);
      NEXT psrs: [1 .. rav$elements^ [ordinal].number_of_psrs] IN rav$corp.sequence_pointer;
      rav$elements^ [ordinal].psr_info := #REL (psrs, rav$corp.sequence_pointer^);
      psrs^ := add_psrs^;
    IFEND;
  PROCEND rap$move_correction;
MODEND ram$move_correction;
