?? RIGHT := 110 ??
MODULE ocm$apply_move_items;
*copyc osd$default_pragmats
?? PUSH (LISTEXT := ON) ??
*copyc oct$breaklist
*copyc oct$move_items
*copyc i#move
?? POP ??

*copyc och$apply_move_items

  PROCEDURE [XDCL] ocp$apply_move_items (first_intermediate_ol: ^SEQ ( * );
        move_items: ^oct$move_items;
        number_of_move_items: oct$breaklist_index;
    VAR second_intermediate_ol: ^SEQ ( * ));

    VAR
      i: oct$breaklist_index,
      new_address: ^cell,
      old_address: ^cell;

    FOR i := 1 TO number_of_move_items DO
      old_address := #address (#ring (first_intermediate_ol), #segment (first_intermediate_ol), move_items^
            [i].old_offset);
      new_address := #address (#ring (second_intermediate_ol), #segment (second_intermediate_ol), move_items^
            [i].new_offset);
      i#move (old_address, new_address, move_items^ [i].length);
    FOREND;
  PROCEND ocp$apply_move_items;
MODEND ocm$apply_move_items;

